{"schema":"careervector.execution-cell-lab/v1","status":"experiment","grid":{"columns":21,"rows":21,"routeResolution":0.5,"coordinateMeaning":"nodes occupy one-based cells; routes use zero-based cell lines"},"principles":["The PDF is the visual specification; the grid is an invisible construction system.","Rounded boxes preserve the PDF stage hierarchy and semantic color vocabulary.","Orthogonal arrows use empty grid corridors, shared buses, and perimeter feedback.","The machine source retains state, authority, contracts, technology, and artifact paths.","No projection may add actors, visual chrome, or hierarchy absent from the reference diagram."],"cells":[{"id":"jobcache-ingestion-21","title":"JobCache — public corpus ingestion","subtitle":"One control plane, one durable deposit boundary, one-node CrateDB","summary":"Solid = live collection path · amber dashed = proposed enrichment executor.","status":"mixed","focusNodeId":"sporewright","sources":["wiki/content/architecture/INGESTION-AND-CONSUMER-AI.md","architecture/modules/ingestion.md","architecture/modules/internals.md"],"zones":[{"id":"as-built","label":"AS BUILT","detail":"Resilient pull-based collection","kind":"frame","state":"as-built","tone":"neutral","rect":{"column":1,"row":1,"columnSpan":21,"rowSpan":12}},{"id":"target-extension","label":"TARGET EXTENSION — AFTER THE CANONICAL FOLD","detail":"Content hash + model epoch make enrichment reusable and idempotent.","kind":"target","state":"target","tone":"amber","rect":{"column":1,"row":14,"columnSpan":21,"rowSpan":8}}],"nodes":[{"id":"operator-policy","label":"Operator policy","detail":"weights · budgets","kind":"policy","state":"as-built","tone":"blue","lineStyle":"solid","rect":{"column":1,"row":3,"columnSpan":3,"rowSpan":3},"authority":"Platform operator","technology":["catalogue · curiosity"],"artifacts":[]},{"id":"sporewright","label":"Sporewright","detail":"rank due work","kind":"process","state":"as-built","tone":"teal","lineStyle":"solid","rect":{"column":5,"row":3,"columnSpan":4,"rowSpan":3},"authority":"JobCache ingestion","technology":["mint lease + receipt"],"artifacts":["crates/sporewright-server/src"]},{"id":"rabbitmq","label":"Private RabbitMQ","detail":"priority lanes","kind":"store","state":"as-built","tone":"neutral","lineStyle":"solid","rect":{"column":10,"row":3,"columnSpan":4,"rowSpan":3},"authority":"Sporewright server","technology":["no actor credentials"],"artifacts":["crates/sporewright-server/src/rabbitmq.rs"]},{"id":"sources","label":"Public job sources","detail":"portals · feeds · APIs","kind":"service","state":"as-built","tone":"neutral","lineStyle":"solid","rect":{"column":1,"row":7,"columnSpan":3,"rowSpan":3},"authority":"External sources","technology":["discover + fetch"],"artifacts":[]},{"id":"execution-pool","label":"Execution pool","detail":"browser · Tauri · container","kind":"actor","state":"as-built","tone":"teal","lineStyle":"solid","rect":{"column":5,"row":7,"columnSpan":4,"rowSpan":3},"authority":"Participant and operator devices","technology":["adapter parse + local protest"],"artifacts":[]},{"id":"s3-mailbox","label":"Corbet S3 mailbox","detail":"scoped transient deposit","kind":"store","state":"as-built","tone":"grey","lineStyle":"solid","rect":{"column":10,"row":7,"columnSpan":4,"rowSpan":3},"authority":"JobCache ingestion","technology":["raw archive · B2 overflow"],"artifacts":["crates/sporewright-server/src/object_store.rs"]},{"id":"copy-fold","label":"COPY fold","detail":"validate receipt","kind":"process","state":"as-built","tone":"teal","lineStyle":"solid","rect":{"column":15,"row":7,"columnSpan":3,"rowSpan":3},"authority":"JobCache ingestion","technology":["staging → idempotent upsert"],"artifacts":["crates/sporewright-server/src/ingest.rs"]},{"id":"cratedb","label":"CrateDB","detail":"ads · facts · trust","kind":"store","state":"as-built","tone":"grey","lineStyle":"solid","rect":{"column":19,"row":7,"columnSpan":3,"rowSpan":3},"authority":"JobCache Core","technology":["tasks · outcomes · vectors"],"artifacts":["jobcache/migrations/cratedb/schema.sql"]},{"id":"task-ledger","label":"Crate task ledger","detail":"embed-text work","kind":"store","state":"target","tone":"amber","lineStyle":"dashed","rect":{"column":1,"row":16,"columnSpan":3,"rowSpan":3},"authority":"JobCache Core","technology":["cache hit before execution"],"artifacts":[]},{"id":"operator-ai","label":"Operator AI worker","detail":"pull + batch leases","kind":"actor","state":"target","tone":"amber","lineStyle":"dashed","rect":{"column":5,"row":16,"columnSpan":3,"rowSpan":3},"authority":"Platform operator","technology":["owns shared token"],"artifacts":[]},{"id":"workers-ai","label":"Workers AI","detail":"asynchronous Batch API","kind":"service","state":"target","tone":"amber","lineStyle":"dashed","rect":{"column":9,"row":16,"columnSpan":3,"rowSpan":3},"authority":"Cloudflare AI","technology":["pinned model epoch"],"artifacts":[]},{"id":"result-deposit","label":"Standard result deposit","detail":"same receipt envelope","kind":"store","state":"target","tone":"amber","lineStyle":"dashed","rect":{"column":13,"row":16,"columnSpan":3,"rowSpan":3},"authority":"JobCache ingestion","technology":["same S3 mailbox"],"artifacts":[]},{"id":"same-fold","label":"Same COPY fold","detail":"vectors + enrichment facts","kind":"process","state":"target","tone":"amber","lineStyle":"dashed","rect":{"column":17,"row":16,"columnSpan":3,"rowSpan":3},"authority":"JobCache ingestion","technology":["back into one-node CrateDB"],"artifacts":[]}],"annotations":[{"id":"staging-choice","text":"No D1 or Durable Object staging: S3 mailbox + Crate ledger already provide durable ingress and replay.","tone":"grey","rect":{"column":5,"row":20,"columnSpan":13,"rowSpan":1}}],"ports":[],"edges":[{"id":"policy-sporewright","from":{"type":"node","id":"operator-policy"},"to":{"type":"node","id":"sporewright"},"label":"policy","kind":"work","state":"as-built","lineStyle":"solid","direction":"one-way","contract":"Weights, budgets, catalogue, and curiosity","route":[{"x":3,"y":3.5},{"x":4,"y":3.5}]},{"id":"sporewright-rabbit","from":{"type":"node","id":"sporewright"},"to":{"type":"node","id":"rabbitmq"},"label":"publish","kind":"work","state":"as-built","lineStyle":"solid","direction":"one-way","contract":"Priority execution-class lease","route":[{"x":8,"y":3.5},{"x":9,"y":3.5}]},{"id":"rabbit-pool","from":{"type":"node","id":"rabbitmq"},"to":{"type":"node","id":"execution-pool"},"label":"lease","kind":"work","state":"as-built","lineStyle":"solid","direction":"one-way","contract":"Pull-based lease without queue credentials","route":[{"x":11,"y":5},{"x":11,"y":5.5},{"x":6,"y":5.5},{"x":6,"y":6}]},{"id":"sources-pool","from":{"type":"node","id":"sources"},"to":{"type":"node","id":"execution-pool"},"label":"fetch","kind":"data","state":"as-built","lineStyle":"solid","direction":"one-way","contract":"Public source response","route":[{"x":3,"y":7.5},{"x":4,"y":7.5}]},{"id":"pool-mailbox","from":{"type":"node","id":"execution-pool"},"to":{"type":"node","id":"s3-mailbox"},"label":"deposit","kind":"data","state":"as-built","lineStyle":"solid","direction":"one-way","contract":"Receipt-bound structured observation","route":[{"x":8,"y":7.5},{"x":9,"y":7.5}]},{"id":"mailbox-fold","from":{"type":"node","id":"s3-mailbox"},"to":{"type":"node","id":"copy-fold"},"label":"fold","kind":"data","state":"as-built","lineStyle":"solid","direction":"one-way","contract":"Exact object key and routing receipt","route":[{"x":13,"y":7.5},{"x":14,"y":7.5}]},{"id":"fold-crate","from":{"type":"node","id":"copy-fold"},"to":{"type":"node","id":"cratedb"},"label":"upsert","kind":"data","state":"as-built","lineStyle":"solid","direction":"one-way","contract":"Canonical current-corpus mutation","route":[{"x":17,"y":7.5},{"x":18,"y":7.5}]},{"id":"task-worker","from":{"type":"node","id":"task-ledger"},"to":{"type":"node","id":"operator-ai"},"label":"lease","kind":"work","state":"target","lineStyle":"dashed","direction":"one-way","contract":"Content-hashed enrichment work","route":[{"x":3,"y":16.5},{"x":4,"y":16.5}]},{"id":"worker-ai","from":{"type":"node","id":"operator-ai"},"to":{"type":"node","id":"workers-ai"},"label":"batch","kind":"work","state":"target","lineStyle":"dashed","direction":"one-way","contract":"Pinned-model batch request","route":[{"x":7,"y":16.5},{"x":8,"y":16.5}]},{"id":"ai-deposit","from":{"type":"node","id":"workers-ai"},"to":{"type":"node","id":"result-deposit"},"label":"deposit","kind":"data","state":"target","lineStyle":"dashed","direction":"one-way","contract":"Standard receipt envelope","route":[{"x":11,"y":16.5},{"x":12,"y":16.5}]},{"id":"deposit-fold","from":{"type":"node","id":"result-deposit"},"to":{"type":"node","id":"same-fold"},"label":"fold","kind":"data","state":"target","lineStyle":"dashed","direction":"one-way","contract":"Same S3 and COPY protocol","route":[{"x":15,"y":16.5},{"x":16,"y":16.5}]}]},{"id":"careervector-ai-21","title":"CareerVector — private consumer AI routing","subtitle":"Operator and workspace policy shape one addressed field; executors realise provider/model options","summary":"Feedback follows the original receipt path; it updates bounded belief, never declared human policy.","status":"mixed","focusNodeId":"addressed-field","sources":["wiki/content/architecture/INGESTION-AND-CONSUMER-AI.md","architecture/modules/careervector.md","sporewright/router"],"zones":[{"id":"privacy-boundary","label":"KEY + PRIVACY BOUNDARY","detail":"BYOK remains workspace-scoped · Included AI keys remain server-side · learning events contain no private content","kind":"privacy","state":"mixed","tone":"red","rect":{"column":1,"row":12,"columnSpan":21,"rowSpan":2}}],"nodes":[{"id":"d1","label":"CareerVector D1","detail":"declared policy + budget","kind":"store","state":"as-built","tone":"grey","lineStyle":"solid","rect":{"column":2,"row":1,"columnSpan":4,"rowSpan":3},"authority":"CareerVector workspace","technology":["bounded learned evidence","no prompts · CV · output · keys"],"artifacts":[]},{"id":"platform-policy","label":"Platform operator","detail":"zero-spend gate · allowlist","kind":"policy","state":"mixed","tone":"blue","lineStyle":"solid","rect":{"column":7,"row":1,"columnSpan":5,"rowSpan":3},"authority":"Platform operator","technology":["shared quotas · quality floor"],"artifacts":[]},{"id":"workspace-policy","label":"Workspace owner","detail":"fixed · preferred · never","kind":"policy","state":"as-built","tone":"blue","lineStyle":"solid","rect":{"column":13,"row":1,"columnSpan":5,"rowSpan":3},"authority":"Workspace capability holder","technology":["BYOK · consent · curiosity"],"artifacts":[]},{"id":"addressed-field","label":"Sporewright addressed field","detail":"workspace → capability → stage → consumer → instance?","kind":"process","state":"as-built","tone":"purple","lineStyle":"solid","rect":{"column":7,"row":5,"columnSpan":9,"rowSpan":4},"authority":"CareerVector routing","technology":["root policy + workspace residuals + learned belief + live gates","provider/model routes are options; attempts are receipt-bound evidence"],"artifacts":["sporewright/router"]},{"id":"decision","label":"Ranked decision + causal receipt","detail":"selected route · fallbacks · hard gates","kind":"process","state":"as-built","tone":"purple","lineStyle":"solid","rect":{"column":8,"row":10,"columnSpan":7,"rowSpan":2},"authority":"CareerVector routing","technology":["short user-facing reason"],"artifacts":[]},{"id":"local-ai","label":"Local AI executor","detail":"consented WebLLM","kind":"actor","state":"as-built","tone":"teal","lineStyle":"solid","rect":{"column":2,"row":15,"columnSpan":4,"rowSpan":3},"authority":"Participant device","technology":["device-owned · bounded work"],"artifacts":[]},{"id":"peer-ai","label":"Workspace peer executor","detail":"trusted P2P WebLLM","kind":"actor","state":"target","tone":"teal","lineStyle":"solid","rect":{"column":7,"row":15,"columnSpan":4,"rowSpan":3},"authority":"Workspace peer","technology":["same workspace only"],"artifacts":[]},{"id":"byok","label":"Your AI executor","detail":"workspace BYOK connector","kind":"actor","state":"as-built","tone":"amber","lineStyle":"solid","rect":{"column":12,"row":15,"columnSpan":4,"rowSpan":3},"authority":"Workspace capability holder","technology":["user policy + user budget"],"artifacts":[]},{"id":"included-ai","label":"Included AI broker","detail":"server-side connectors","kind":"boundary","state":"target","tone":"amber","lineStyle":"solid","rect":{"column":17,"row":15,"columnSpan":4,"rowSpan":3},"authority":"Platform operator","technology":["authorized free allowances"],"artifacts":[]},{"id":"pipeline","label":"CareerVector task pipeline","detail":"extract · evaluate · tailor · explain","kind":"service","state":"as-built","tone":"teal","lineStyle":"solid","rect":{"column":7,"row":19,"columnSpan":8,"rowSpan":3},"authority":"CareerVector product","technology":["result returns only to the private workspace"],"artifacts":[]},{"id":"outcome","label":"Outcome projector","detail":"failure · quality loss · latency · tokens","kind":"process","state":"as-built","tone":"purple","lineStyle":"solid","rect":{"column":16,"row":19,"columnSpan":5,"rowSpan":3},"authority":"CareerVector routing","technology":["dedupe · age · compact · message upward"],"artifacts":[]}],"annotations":[],"ports":[],"edges":[{"id":"d1-field","from":{"type":"node","id":"d1"},"to":{"type":"node","id":"addressed-field"},"label":"policy + evidence","kind":"control","state":"as-built","lineStyle":"solid","direction":"one-way","contract":"Declared policy, budget, and bounded learned evidence","route":[{"x":5,"y":1.5},{"x":5.5,"y":1.5},{"x":5.5,"y":6},{"x":6,"y":6}]},{"id":"platform-field","from":{"type":"node","id":"platform-policy"},"to":{"type":"node","id":"addressed-field"},"label":"root policy","kind":"control","state":"mixed","lineStyle":"solid","direction":"one-way","contract":"Zero-spend, allowlist, quota, and quality floors","route":[{"x":7.5,"y":3},{"x":7.5,"y":4}]},{"id":"workspace-field","from":{"type":"node","id":"workspace-policy"},"to":{"type":"node","id":"addressed-field"},"label":"workspace policy","kind":"control","state":"as-built","lineStyle":"solid","direction":"one-way","contract":"Authoritative user preference, consent, BYOK, and curiosity","route":[{"x":14.5,"y":3},{"x":14.5,"y":4}]},{"id":"field-decision","from":{"type":"node","id":"addressed-field"},"to":{"type":"node","id":"decision"},"label":"rank + receipt","kind":"data","state":"as-built","lineStyle":"solid","direction":"one-way","contract":"Ranked route, fallbacks, hard gates, and causal receipt","route":[{"x":10.5,"y":8},{"x":10.5,"y":9}]},{"id":"decision-local","from":{"type":"node","id":"decision"},"to":{"type":"node","id":"local-ai"},"label":"realise local route","kind":"work","state":"as-built","lineStyle":"solid","direction":"one-way","contract":"Consented local execution option","route":[{"x":10.5,"y":11},{"x":10.5,"y":13.5},{"x":3,"y":13.5},{"x":3,"y":14}]},{"id":"decision-peer","from":{"type":"node","id":"decision"},"to":{"type":"node","id":"peer-ai"},"label":"realise peer route","kind":"work","state":"target","lineStyle":"solid","direction":"one-way","contract":"Trusted same-workspace peer option","route":[{"x":10.5,"y":11},{"x":10.5,"y":13.5},{"x":8,"y":13.5},{"x":8,"y":14}]},{"id":"decision-byok","from":{"type":"node","id":"decision"},"to":{"type":"node","id":"byok"},"label":"realise BYOK route","kind":"work","state":"as-built","lineStyle":"solid","direction":"one-way","contract":"Workspace-owned provider/model option","route":[{"x":10.5,"y":11},{"x":10.5,"y":13.5},{"x":13,"y":13.5},{"x":13,"y":14}]},{"id":"decision-included","from":{"type":"node","id":"decision"},"to":{"type":"node","id":"included-ai"},"label":"realise included route","kind":"work","state":"target","lineStyle":"solid","direction":"one-way","contract":"Opaque server-executable route","route":[{"x":10.5,"y":11},{"x":10.5,"y":13.5},{"x":18,"y":13.5},{"x":18,"y":14}]},{"id":"local-pipeline","from":{"type":"node","id":"local-ai"},"to":{"type":"node","id":"pipeline"},"label":"private result","kind":"data","state":"as-built","lineStyle":"solid","direction":"one-way","contract":"Receipt-bound private task result","route":[{"x":3,"y":17},{"x":3,"y":17.5},{"x":10,"y":17.5},{"x":10,"y":18}]},{"id":"peer-pipeline","from":{"type":"node","id":"peer-ai"},"to":{"type":"node","id":"pipeline"},"label":"private result","kind":"data","state":"target","lineStyle":"solid","direction":"one-way","contract":"Encrypted same-workspace result and receipt","route":[{"x":8,"y":17},{"x":8,"y":17.5},{"x":10,"y":17.5},{"x":10,"y":18}]},{"id":"byok-pipeline","from":{"type":"node","id":"byok"},"to":{"type":"node","id":"pipeline"},"label":"private result","kind":"data","state":"as-built","lineStyle":"solid","direction":"one-way","contract":"Workspace-provider result and usage evidence","route":[{"x":13,"y":17},{"x":13,"y":17.5},{"x":10,"y":17.5},{"x":10,"y":18}]},{"id":"included-pipeline","from":{"type":"node","id":"included-ai"},"to":{"type":"node","id":"pipeline"},"label":"private result","kind":"data","state":"target","lineStyle":"solid","direction":"one-way","contract":"Result without operator credential disclosure","route":[{"x":18,"y":17},{"x":18,"y":17.5},{"x":10,"y":17.5},{"x":10,"y":18}]},{"id":"pipeline-outcome","from":{"type":"node","id":"pipeline"},"to":{"type":"node","id":"outcome"},"label":"classify outcome","kind":"feedback","state":"as-built","lineStyle":"solid","direction":"one-way","contract":"Normalized failure, quality, latency, and token evidence","route":[{"x":14,"y":19.5},{"x":15,"y":19.5}]},{"id":"outcome-d1","from":{"type":"node","id":"outcome"},"to":{"type":"node","id":"d1"},"label":"message upward","kind":"feedback","state":"as-built","lineStyle":"solid","direction":"one-way","contract":"Receipt-bound, compacted evidence; never declared human policy","route":[{"x":17.5,"y":21},{"x":0.5,"y":21},{"x":0.5,"y":1.5},{"x":1,"y":1.5}]}]}]}