@rryando/arcs 3.9.2 → 3.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +172 -146
- package/dist/cli/agent-registry.d.ts +12 -0
- package/dist/cli/agent-registry.d.ts.map +1 -0
- package/dist/cli/agent-registry.js +67 -0
- package/dist/cli/agent-registry.js.map +1 -0
- package/dist/cli/arcs-flash.d.ts +2 -0
- package/dist/cli/arcs-flash.d.ts.map +1 -0
- package/dist/cli/arcs-flash.js +68 -0
- package/dist/cli/arcs-flash.js.map +1 -0
- package/dist/cli/arcs-orchestrate-caveman.d.ts +2 -14
- package/dist/cli/arcs-orchestrate-caveman.d.ts.map +1 -1
- package/dist/cli/arcs-orchestrate-caveman.js +6 -97
- package/dist/cli/arcs-orchestrate-caveman.js.map +1 -1
- package/dist/cli/arcs-orchestrate.d.ts +1 -1
- package/dist/cli/arcs-orchestrate.d.ts.map +1 -1
- package/dist/cli/arcs-orchestrate.js +40 -373
- package/dist/cli/arcs-orchestrate.js.map +1 -1
- package/dist/cli/bundle-installer.d.ts +10 -4
- package/dist/cli/bundle-installer.d.ts.map +1 -1
- package/dist/cli/bundle-installer.js +168 -15
- package/dist/cli/bundle-installer.js.map +1 -1
- package/dist/cli/commands/batch.js +4 -0
- package/dist/cli/commands/batch.js.map +1 -1
- package/dist/cli/commands/hooks.d.ts +36 -0
- package/dist/cli/commands/hooks.d.ts.map +1 -0
- package/dist/cli/commands/hooks.js +298 -0
- package/dist/cli/commands/hooks.js.map +1 -0
- package/dist/cli/commands/index.d.ts +2 -0
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +2 -0
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/project.js +27 -0
- package/dist/cli/commands/project.js.map +1 -1
- package/dist/cli/commands/task.js +16 -1
- package/dist/cli/commands/task.js.map +1 -1
- package/dist/cli/commands/web.d.ts +2 -0
- package/dist/cli/commands/web.d.ts.map +1 -0
- package/dist/cli/commands/web.js +56 -0
- package/dist/cli/commands/web.js.map +1 -0
- package/dist/cli/config.d.ts +32 -0
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +56 -0
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/instructions.d.ts +19 -6
- package/dist/cli/instructions.d.ts.map +1 -1
- package/dist/cli/instructions.js +62 -32
- package/dist/cli/instructions.js.map +1 -1
- package/dist/cli/orchestrator-shared-blocks.d.ts +31 -0
- package/dist/cli/orchestrator-shared-blocks.d.ts.map +1 -0
- package/dist/cli/orchestrator-shared-blocks.js +148 -0
- package/dist/cli/orchestrator-shared-blocks.js.map +1 -0
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +159 -85
- package/dist/cli/setup.js.map +1 -1
- package/dist/retrieval/index-builder.d.ts.map +1 -1
- package/dist/retrieval/index-builder.js +29 -1
- package/dist/retrieval/index-builder.js.map +1 -1
- package/dist/utils/claude-code-hook-install.d.ts +80 -0
- package/dist/utils/claude-code-hook-install.d.ts.map +1 -0
- package/dist/utils/claude-code-hook-install.js +146 -0
- package/dist/utils/claude-code-hook-install.js.map +1 -0
- package/dist/utils/claude-transcript.d.ts +127 -0
- package/dist/utils/claude-transcript.d.ts.map +1 -0
- package/dist/utils/claude-transcript.js +353 -0
- package/dist/utils/claude-transcript.js.map +1 -0
- package/dist/utils/diagram-generator.d.ts +1 -1
- package/dist/utils/diagram-generator.d.ts.map +1 -1
- package/dist/utils/diagram-generator.js +3 -2
- package/dist/utils/diagram-generator.js.map +1 -1
- package/dist/utils/errors.d.ts +6 -2
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +12 -0
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/hook-token-store.d.ts +22 -0
- package/dist/utils/hook-token-store.d.ts.map +1 -0
- package/dist/utils/hook-token-store.js +43 -0
- package/dist/utils/hook-token-store.js.map +1 -0
- package/dist/utils/json-schemas.d.ts +186 -2
- package/dist/utils/json-schemas.d.ts.map +1 -1
- package/dist/utils/json-schemas.js +48 -4
- package/dist/utils/json-schemas.js.map +1 -1
- package/dist/utils/knowledge-store.d.ts +7 -1
- package/dist/utils/knowledge-store.d.ts.map +1 -1
- package/dist/utils/knowledge-store.js +97 -65
- package/dist/utils/knowledge-store.js.map +1 -1
- package/dist/utils/plan-store.d.ts +8 -0
- package/dist/utils/plan-store.d.ts.map +1 -1
- package/dist/utils/plan-store.js +98 -59
- package/dist/utils/plan-store.js.map +1 -1
- package/dist/utils/project-resolver.d.ts +8 -0
- package/dist/utils/project-resolver.d.ts.map +1 -1
- package/dist/utils/project-resolver.js +7 -2
- package/dist/utils/project-resolver.js.map +1 -1
- package/dist/utils/session-store.d.ts +113 -0
- package/dist/utils/session-store.d.ts.map +1 -0
- package/dist/utils/session-store.js +312 -0
- package/dist/utils/session-store.js.map +1 -0
- package/dist/utils/storage-utils.d.ts +31 -0
- package/dist/utils/storage-utils.d.ts.map +1 -1
- package/dist/utils/storage-utils.js +116 -5
- package/dist/utils/storage-utils.js.map +1 -1
- package/dist/utils/task-store.d.ts +7 -0
- package/dist/utils/task-store.d.ts.map +1 -1
- package/dist/utils/task-store.js +73 -23
- package/dist/utils/task-store.js.map +1 -1
- package/dist/web-client/assets/GraphCanvas-dNyZ458L.js +1 -0
- package/dist/web-client/assets/MarkdownEditor-BmU9mdkN.js +77 -0
- package/dist/web-client/assets/abnfDiagram-VRR7QNED-D1BFBoeF.js +1 -0
- package/dist/web-client/assets/arc-Bfaogrm1.js +1 -0
- package/dist/web-client/assets/architecture-TIHT7OUA-CJqI5wNI.js +1 -0
- package/dist/web-client/assets/architectureDiagram-ZJ3FMSHR-CA8hTWUK.js +36 -0
- package/dist/web-client/assets/array-BifhSqXX.js +1 -0
- package/dist/web-client/assets/blockDiagram-677ZJIJ3-CQpb_KwX.js +132 -0
- package/dist/web-client/assets/c4Diagram-LMCZKHZV-BhpHX84V.js +10 -0
- package/dist/web-client/assets/channel-C8DlmyVe.js +1 -0
- package/dist/web-client/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
- package/dist/web-client/assets/chunk-32BRIVSS-BUusQQa_.js +1 -0
- package/dist/web-client/assets/chunk-52WLFC77-nNYwlftl.js +10 -0
- package/dist/web-client/assets/chunk-5VM5RSS4-ZNzvKenW.js +15 -0
- package/dist/web-client/assets/chunk-7BUUIJ7U-Bb538aSH.js +1 -0
- package/dist/web-client/assets/chunk-C7G6YPKG-D0a-yqnK.js +1 -0
- package/dist/web-client/assets/chunk-EX3LRPZG-IDuRMN-4.js +231 -0
- package/dist/web-client/assets/chunk-FWX5IMBZ-D_spTcqi.js +2 -0
- package/dist/web-client/assets/chunk-HOUHSVGY-C-bcxwZS.js +1 -0
- package/dist/web-client/assets/chunk-ICXQ74PX-CjmK2bAM.js +2 -0
- package/dist/web-client/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
- package/dist/web-client/assets/chunk-KEIR6QF5-DEvma7oi.js +161 -0
- package/dist/web-client/assets/chunk-MOJQB5TN-Bkc08KWY.js +88 -0
- package/dist/web-client/assets/chunk-OGEWGWER-BAAYYvG9.js +1 -0
- package/dist/web-client/assets/chunk-PUDLZKDR-WXbPY7NM.js +156 -0
- package/dist/web-client/assets/chunk-Q4XR5HBZ-DcbnjxQE.js +70 -0
- package/dist/web-client/assets/chunk-RYQCIY6F-np2RyIY1.js +1 -0
- package/dist/web-client/assets/chunk-V7JOEXUC-C6t75PAp.js +206 -0
- package/dist/web-client/assets/chunk-VAUOI2AC-DVrJ0Ic7.js +1 -0
- package/dist/web-client/assets/chunk-VR4S4FIN-MOOFvGS0.js +1 -0
- package/dist/web-client/assets/chunk-WYO6CB5R-sK7Y2NZD.js +125 -0
- package/dist/web-client/assets/chunk-XXDRQBXY-BvKO0v-W.js +1 -0
- package/dist/web-client/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
- package/dist/web-client/assets/chunk-ZGVPDNZ5-a13RQsku.js +62 -0
- package/dist/web-client/assets/chunk-ZIRB5QZD-BpeS1aZ7.js +32 -0
- package/dist/web-client/assets/classDiagram-OUVF2IWQ-p32N1P_G.js +1 -0
- package/dist/web-client/assets/classDiagram-v2-EOCWNBFH-p32N1P_G.js +1 -0
- package/dist/web-client/assets/cose-bilkent-JH36ORCC-BebHqzgp.js +1 -0
- package/dist/web-client/assets/cynefin-VYW2F7L2-D8xaH-wO.js +1 -0
- package/dist/web-client/assets/cynefinDiagram-TSTJHNR4-Bt__EqJW.js +62 -0
- package/dist/web-client/assets/cytoscape-fcose-peAzqedC.js +1 -0
- package/dist/web-client/assets/cytoscape.esm-C3UvhD5t.js +321 -0
- package/dist/web-client/assets/dagre-Buvkdvvj.js +1 -0
- package/dist/web-client/assets/dagre-VKFMJZFB-Bwgjwflz.js +4 -0
- package/dist/web-client/assets/defaultLocale-BFoDCU3G.js +1 -0
- package/dist/web-client/assets/diagram-FQU43EPY-CaPDVUq2.js +3 -0
- package/dist/web-client/assets/diagram-G47NLZAW-BQLB9YYA.js +24 -0
- package/dist/web-client/assets/diagram-NH7WQ7WH-BWo84w8Y.js +24 -0
- package/dist/web-client/assets/diagram-OA4YK3LP-bKn6Pz5s.js +30 -0
- package/dist/web-client/assets/diagram-WEI45ONY-BRqV5Oy6.js +41 -0
- package/dist/web-client/assets/dist-B_J_HbC0.js +1 -0
- package/dist/web-client/assets/ebnfDiagram-CCIWWBDH-DhUXL1-7.js +1 -0
- package/dist/web-client/assets/erDiagram-Q63AITRT-HXAQQ-_F.js +85 -0
- package/dist/web-client/assets/eventmodeling-45OFAUF4-Bj5P8mZJ.js +1 -0
- package/dist/web-client/assets/flowDiagram-23GEKE2U-37BztFri.js +1 -0
- package/dist/web-client/assets/ganttDiagram-NO4QXBWP-D-Ddf_Ii.js +292 -0
- package/dist/web-client/assets/gitGraph-TEB2WS4Q-BmHzs0uF.js +1 -0
- package/dist/web-client/assets/gitGraphDiagram-IHSO6WYX-YnQWrlh_.js +106 -0
- package/dist/web-client/assets/graphlib-DS17s2tU.js +1 -0
- package/dist/web-client/assets/index-3mNPVkix.css +2 -0
- package/dist/web-client/assets/index-DCWxuIeQ.js +58 -0
- package/dist/web-client/assets/info-DKCQHKI2-DCT_B7RN.js +1 -0
- package/dist/web-client/assets/infoDiagram-FWYZ7A6U-D-le1Zhq.js +2 -0
- package/dist/web-client/assets/init-C-OQMol4.js +1 -0
- package/dist/web-client/assets/ishikawaDiagram-FXEZZL3T-Jr1x2VJB.js +70 -0
- package/dist/web-client/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2 +0 -0
- package/dist/web-client/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2 +0 -0
- package/dist/web-client/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2 +0 -0
- package/dist/web-client/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 +0 -0
- package/dist/web-client/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2 +0 -0
- package/dist/web-client/assets/journeyDiagram-5HDEW3XC-BF9ELxj-.js +139 -0
- package/dist/web-client/assets/kanban-definition-HUTT4EX6-C4fJqAxu.js +89 -0
- package/dist/web-client/assets/katex-DolUETbr.js +257 -0
- package/dist/web-client/assets/line-7N7ikFxa.js +1 -0
- package/dist/web-client/assets/linear-DeUiD2wj.js +1 -0
- package/dist/web-client/assets/map-BaFkSB1l.js +1 -0
- package/dist/web-client/assets/mermaid-parser.core-QbC1icPt.js +7 -0
- package/dist/web-client/assets/mermaid.core-C26d_UJm.js +11 -0
- package/dist/web-client/assets/mindmap-definition-LN4V7U3C-D6TV1JDf.js +96 -0
- package/dist/web-client/assets/ordinal-BDEzSJ7C.js +1 -0
- package/dist/web-client/assets/packet-7NZHBO7P-CR1vrGj3.js +1 -0
- package/dist/web-client/assets/path-COt_16Va.js +1 -0
- package/dist/web-client/assets/pegDiagram-2B236MQR-xOMBBtfV.js +1 -0
- package/dist/web-client/assets/pie-RZYD4A2V-BbWuhjwy.js +1 -0
- package/dist/web-client/assets/pieDiagram-ENE6RG2P-MsfnsqgW.js +39 -0
- package/dist/web-client/assets/quadrantDiagram-ABIIQ3AL-BoI7zKXF.js +7 -0
- package/dist/web-client/assets/radar-I7S5WNFK-CbYXKToJ.js +1 -0
- package/dist/web-client/assets/railroad-3IZDKUUU-6LxHDkLe.js +1 -0
- package/dist/web-client/assets/railroad-abnf-AHOZXSZD-2Dg9wu0J.js +1 -0
- package/dist/web-client/assets/railroad-ebnf-EBAXGLYW-C_E2ot0R.js +1 -0
- package/dist/web-client/assets/railroad-peg-LSFZ7HO6-Bs9UQR1b.js +1 -0
- package/dist/web-client/assets/railroadDiagram-RFXS5EU6-D6RUoUki.js +1 -0
- package/dist/web-client/assets/requirementDiagram-TGXJPOKE-B6k4BDpE.js +84 -0
- package/dist/web-client/assets/rolldown-runtime-Dd_uD5pT.js +1 -0
- package/dist/web-client/assets/rough.esm-By172zw-.js +1 -0
- package/dist/web-client/assets/sankeyDiagram-HTMAVEWB-BUDF-UFr.js +40 -0
- package/dist/web-client/assets/sequenceDiagram-DBY2YBRQ-D6GqcsUi.js +162 -0
- package/dist/web-client/assets/sizeCapture-X5ZJPWSS-B0uUizjq.js +1 -0
- package/dist/web-client/assets/src-oBChb5qS.js +1 -0
- package/dist/web-client/assets/stateDiagram-2N3HPSRC-WfJCQAK5.js +1 -0
- package/dist/web-client/assets/stateDiagram-v2-6OUMAXLB-BCMWGnsJ.js +1 -0
- package/dist/web-client/assets/swimlanes-5IMT3BWC-BtMo82mC.js +2 -0
- package/dist/web-client/assets/swimlanesDiagram-G3AALYLV-DmudmLcK.js +8 -0
- package/dist/web-client/assets/timeline-definition-FHXFAJF6-CoAmv2Sn.js +120 -0
- package/dist/web-client/assets/treeView-QDETBFTQ-BWsKzE1s.js +1 -0
- package/dist/web-client/assets/treemap-6X3UGDF4-i_qGtB3o.js +1 -0
- package/dist/web-client/assets/vennDiagram-L72KCM5P-DYkiLe-P.js +34 -0
- package/dist/web-client/assets/wardley-OPB4EBWU-Daaqr1Vp.js +1 -0
- package/dist/web-client/assets/wardleyDiagram-EHGQE667-Bofbsg3J.js +78 -0
- package/dist/web-client/assets/xychartDiagram-FW5EYKEG-KNF4VTfL.js +7 -0
- package/dist/web-client/index.html +15 -0
- package/dist/web-server/app.d.ts +13 -0
- package/dist/web-server/app.d.ts.map +1 -0
- package/dist/web-server/app.js +58 -0
- package/dist/web-server/app.js.map +1 -0
- package/dist/web-server/claude-runner.d.ts +86 -0
- package/dist/web-server/claude-runner.d.ts.map +1 -0
- package/dist/web-server/claude-runner.js +320 -0
- package/dist/web-server/claude-runner.js.map +1 -0
- package/dist/web-server/hook-auth.d.ts +12 -0
- package/dist/web-server/hook-auth.d.ts.map +1 -0
- package/dist/web-server/hook-auth.js +36 -0
- package/dist/web-server/hook-auth.js.map +1 -0
- package/dist/web-server/index.d.ts +23 -0
- package/dist/web-server/index.d.ts.map +1 -0
- package/dist/web-server/index.js +49 -0
- package/dist/web-server/index.js.map +1 -0
- package/dist/web-server/opencode-client.d.ts +123 -0
- package/dist/web-server/opencode-client.d.ts.map +1 -0
- package/dist/web-server/opencode-client.js +514 -0
- package/dist/web-server/opencode-client.js.map +1 -0
- package/dist/web-server/respond.d.ts +33 -0
- package/dist/web-server/respond.d.ts.map +1 -0
- package/dist/web-server/respond.js +79 -0
- package/dist/web-server/respond.js.map +1 -0
- package/dist/web-server/routes/collections.d.ts +11 -0
- package/dist/web-server/routes/collections.d.ts.map +1 -0
- package/dist/web-server/routes/collections.js +217 -0
- package/dist/web-server/routes/collections.js.map +1 -0
- package/dist/web-server/routes/discovery.d.ts +7 -0
- package/dist/web-server/routes/discovery.d.ts.map +1 -0
- package/dist/web-server/routes/discovery.js +159 -0
- package/dist/web-server/routes/discovery.js.map +1 -0
- package/dist/web-server/routes/events.d.ts +6 -0
- package/dist/web-server/routes/events.d.ts.map +1 -0
- package/dist/web-server/routes/events.js +25 -0
- package/dist/web-server/routes/events.js.map +1 -0
- package/dist/web-server/routes/hook-events.d.ts +19 -0
- package/dist/web-server/routes/hook-events.d.ts.map +1 -0
- package/dist/web-server/routes/hook-events.js +135 -0
- package/dist/web-server/routes/hook-events.js.map +1 -0
- package/dist/web-server/routes/projects.d.ts +7 -0
- package/dist/web-server/routes/projects.d.ts.map +1 -0
- package/dist/web-server/routes/projects.js +272 -0
- package/dist/web-server/routes/projects.js.map +1 -0
- package/dist/web-server/routes/sessions.d.ts +16 -0
- package/dist/web-server/routes/sessions.d.ts.map +1 -0
- package/dist/web-server/routes/sessions.js +442 -0
- package/dist/web-server/routes/sessions.js.map +1 -0
- package/dist/web-server/security.d.ts +7 -0
- package/dist/web-server/security.d.ts.map +1 -0
- package/dist/web-server/security.js +41 -0
- package/dist/web-server/security.js.map +1 -0
- package/dist/web-server/static.d.ts +10 -0
- package/dist/web-server/static.d.ts.map +1 -0
- package/dist/web-server/static.js +36 -0
- package/dist/web-server/static.js.map +1 -0
- package/dist/web-server/storage.d.ts +17 -0
- package/dist/web-server/storage.d.ts.map +1 -0
- package/dist/web-server/storage.js +42 -0
- package/dist/web-server/storage.js.map +1 -0
- package/dist/web-server/watcher.d.ts +37 -0
- package/dist/web-server/watcher.d.ts.map +1 -0
- package/dist/web-server/watcher.js +181 -0
- package/dist/web-server/watcher.js.map +1 -0
- package/opencode/arcs/bundle-runtime.json +5 -14
- package/opencode/arcs/manifest.json +213 -149
- package/opencode/arcs/prompts/arcs-docs.txt +53 -47
- package/opencode/arcs/prompts/arcs-flash.txt +190 -0
- package/opencode/arcs/prompts/arcs-orchestrate-caveman.txt +116 -412
- package/opencode/arcs/prompts/arcs-orchestrate.txt +114 -331
- package/opencode/arcs/prompts/code-reviewer.txt +37 -98
- package/opencode/arcs/prompts/devil-advocate.txt +44 -115
- package/opencode/arcs/prompts/graph-explorer.txt +31 -179
- package/opencode/arcs/prompts/software-engineer.txt +24 -6
- package/opencode/arcs/prompts/tech-architect.txt +28 -12
- package/opencode/arcs/skills/brainstorming/SKILL.md +65 -105
- package/opencode/arcs/skills/brainstorming/scripts/server.js +37 -10
- package/opencode/arcs/skills/brainstorming/scripts/start-server.sh +20 -3
- package/opencode/arcs/skills/brainstorming/scripts/stop-server.sh +25 -6
- package/opencode/arcs/skills/brainstorming/visual-companion.md +3 -10
- package/opencode/arcs/skills/deep-pr-review/SKILL.md +5 -5
- package/opencode/arcs/skills/deep-pr-review/review-template.md +1 -1
- package/opencode/arcs/skills/enriching-codegraph-proposals/SKILL.md +17 -18
- package/opencode/arcs/skills/executing-plans/SKILL.md +26 -234
- package/opencode/arcs/skills/implementation/SKILL.md +61 -0
- package/opencode/arcs/skills/init-project/SKILL.md +16 -15
- package/opencode/arcs/skills/install-claude-code-hook/SKILL.md +143 -0
- package/opencode/arcs/skills/systematic-debugging/SKILL.md +16 -15
- package/opencode/arcs/skills/test-driven-development/SKILL.md +1 -1
- package/opencode/arcs/skills/to-diagram/SKILL.md +10 -29
- package/opencode/arcs/skills/writing-knowledge/SKILL.md +7 -6
- package/opencode/arcs/skills/writing-plans/SKILL.md +80 -130
- package/opencode/arcs/skills/writing-plans/plan-document-reviewer-prompt.md +38 -30
- package/package.json +14 -6
- package/scripts/build-opencode-bundle.mjs +23 -11
- package/scripts/claude-code-session-hook.mjs +125 -0
- package/scripts/deploy-claudecode-bundle.mjs +185 -132
- package/scripts/deploy-opencode-bundle.mjs +207 -6
- package/scripts/lib/bundle-helpers.mjs +29 -3
- package/scripts/lint-bundle.mjs +123 -3
- package/skills/explore-dag.md +5 -3
- package/skills/init-project.md +27 -26
- package/skills/orchestrate.md +29 -13
- package/skills/update-docs.md +8 -13
- package/opencode/arcs/prompts/docs-researcher.txt +0 -79
- package/opencode/arcs/prompts/oncall-ops.txt +0 -85
- package/opencode/arcs/skills/brainstorming/spec-document-reviewer-prompt.md +0 -56
- package/opencode/arcs/skills/code-agent/SKILL.md +0 -63
- package/opencode/arcs/skills/executing-plans/code-quality-reviewer-prompt.md +0 -57
- package/opencode/arcs/skills/executing-plans/implementer-prompt.md +0 -152
- package/opencode/arcs/skills/executing-plans/spec-reviewer-prompt.md +0 -91
- package/opencode/arcs/skills/quick-dev/SKILL.md +0 -52
- package/opencode/arcs/skills/requesting-code-review/SKILL.md +0 -59
- package/opencode/arcs/skills/requesting-code-review/code-reviewer.md +0 -139
- package/opencode/arcs/skills/the-ladder/SKILL.md +0 -54
|
@@ -732,6 +732,75 @@ export declare const proposalsFileSchema: z.ZodObject<{
|
|
|
732
732
|
}[];
|
|
733
733
|
}[];
|
|
734
734
|
}>;
|
|
735
|
+
export declare const agentTierSchema: z.ZodEnum<["heavy", "standard", "light"]>;
|
|
736
|
+
export declare const agentStatusSchema: z.ZodEnum<["active", "retired"]>;
|
|
737
|
+
export declare const agentKindSchema: z.ZodEnum<["primary", "subagent"]>;
|
|
738
|
+
export declare const agentModeSchema: z.ZodEnum<["opencode", "claudecode"]>;
|
|
739
|
+
export declare const agentRegistryRecordSchema: z.ZodObject<{
|
|
740
|
+
id: z.ZodString;
|
|
741
|
+
status: z.ZodEnum<["active", "retired"]>;
|
|
742
|
+
kind: z.ZodEnum<["primary", "subagent"]>;
|
|
743
|
+
tier: z.ZodEnum<["heavy", "standard", "light"]>;
|
|
744
|
+
modes: z.ZodArray<z.ZodEnum<["opencode", "claudecode"]>, "many">;
|
|
745
|
+
source: z.ZodEffects<z.ZodString, string, string>;
|
|
746
|
+
destination: z.ZodEffects<z.ZodString, string, string>;
|
|
747
|
+
description: z.ZodString;
|
|
748
|
+
permissions: z.ZodObject<{
|
|
749
|
+
edit: z.ZodEnum<["allow", "deny"]>;
|
|
750
|
+
bash: z.ZodEnum<["allow", "deny"]>;
|
|
751
|
+
webfetch: z.ZodEnum<["allow", "deny"]>;
|
|
752
|
+
mcp: z.ZodEnum<["allow", "deny"]>;
|
|
753
|
+
task: z.ZodEnum<["allow", "deny"]>;
|
|
754
|
+
}, "strip", z.ZodTypeAny, {
|
|
755
|
+
task: "allow" | "deny";
|
|
756
|
+
edit: "allow" | "deny";
|
|
757
|
+
bash: "allow" | "deny";
|
|
758
|
+
webfetch: "allow" | "deny";
|
|
759
|
+
mcp: "allow" | "deny";
|
|
760
|
+
}, {
|
|
761
|
+
task: "allow" | "deny";
|
|
762
|
+
edit: "allow" | "deny";
|
|
763
|
+
bash: "allow" | "deny";
|
|
764
|
+
webfetch: "allow" | "deny";
|
|
765
|
+
mcp: "allow" | "deny";
|
|
766
|
+
}>;
|
|
767
|
+
replacementId: z.ZodOptional<z.ZodString>;
|
|
768
|
+
}, "strip", z.ZodTypeAny, {
|
|
769
|
+
status: "active" | "retired";
|
|
770
|
+
id: string;
|
|
771
|
+
description: string;
|
|
772
|
+
kind: "primary" | "subagent";
|
|
773
|
+
tier: "heavy" | "standard" | "light";
|
|
774
|
+
modes: ("opencode" | "claudecode")[];
|
|
775
|
+
source: string;
|
|
776
|
+
destination: string;
|
|
777
|
+
permissions: {
|
|
778
|
+
task: "allow" | "deny";
|
|
779
|
+
edit: "allow" | "deny";
|
|
780
|
+
bash: "allow" | "deny";
|
|
781
|
+
webfetch: "allow" | "deny";
|
|
782
|
+
mcp: "allow" | "deny";
|
|
783
|
+
};
|
|
784
|
+
replacementId?: string | undefined;
|
|
785
|
+
}, {
|
|
786
|
+
status: "active" | "retired";
|
|
787
|
+
id: string;
|
|
788
|
+
description: string;
|
|
789
|
+
kind: "primary" | "subagent";
|
|
790
|
+
tier: "heavy" | "standard" | "light";
|
|
791
|
+
modes: ("opencode" | "claudecode")[];
|
|
792
|
+
source: string;
|
|
793
|
+
destination: string;
|
|
794
|
+
permissions: {
|
|
795
|
+
task: "allow" | "deny";
|
|
796
|
+
edit: "allow" | "deny";
|
|
797
|
+
bash: "allow" | "deny";
|
|
798
|
+
webfetch: "allow" | "deny";
|
|
799
|
+
mcp: "allow" | "deny";
|
|
800
|
+
};
|
|
801
|
+
replacementId?: string | undefined;
|
|
802
|
+
}>;
|
|
803
|
+
export type AgentRegistryRecord = z.infer<typeof agentRegistryRecordSchema>;
|
|
735
804
|
export declare const opencodeSourceManifestSchema: z.ZodObject<{
|
|
736
805
|
bundleId: z.ZodString;
|
|
737
806
|
installMode: z.ZodString;
|
|
@@ -748,14 +817,68 @@ export declare const opencodeSourceManifestSchema: z.ZodObject<{
|
|
|
748
817
|
destination: string;
|
|
749
818
|
}>;
|
|
750
819
|
agents: z.ZodArray<z.ZodObject<{
|
|
751
|
-
|
|
752
|
-
|
|
820
|
+
id: z.ZodString;
|
|
821
|
+
status: z.ZodEnum<["active", "retired"]>;
|
|
822
|
+
kind: z.ZodEnum<["primary", "subagent"]>;
|
|
823
|
+
tier: z.ZodEnum<["heavy", "standard", "light"]>;
|
|
824
|
+
modes: z.ZodArray<z.ZodEnum<["opencode", "claudecode"]>, "many">;
|
|
825
|
+
source: z.ZodEffects<z.ZodString, string, string>;
|
|
826
|
+
destination: z.ZodEffects<z.ZodString, string, string>;
|
|
827
|
+
description: z.ZodString;
|
|
828
|
+
permissions: z.ZodObject<{
|
|
829
|
+
edit: z.ZodEnum<["allow", "deny"]>;
|
|
830
|
+
bash: z.ZodEnum<["allow", "deny"]>;
|
|
831
|
+
webfetch: z.ZodEnum<["allow", "deny"]>;
|
|
832
|
+
mcp: z.ZodEnum<["allow", "deny"]>;
|
|
833
|
+
task: z.ZodEnum<["allow", "deny"]>;
|
|
834
|
+
}, "strip", z.ZodTypeAny, {
|
|
835
|
+
task: "allow" | "deny";
|
|
836
|
+
edit: "allow" | "deny";
|
|
837
|
+
bash: "allow" | "deny";
|
|
838
|
+
webfetch: "allow" | "deny";
|
|
839
|
+
mcp: "allow" | "deny";
|
|
840
|
+
}, {
|
|
841
|
+
task: "allow" | "deny";
|
|
842
|
+
edit: "allow" | "deny";
|
|
843
|
+
bash: "allow" | "deny";
|
|
844
|
+
webfetch: "allow" | "deny";
|
|
845
|
+
mcp: "allow" | "deny";
|
|
846
|
+
}>;
|
|
847
|
+
replacementId: z.ZodOptional<z.ZodString>;
|
|
753
848
|
}, "strip", z.ZodTypeAny, {
|
|
849
|
+
status: "active" | "retired";
|
|
850
|
+
id: string;
|
|
851
|
+
description: string;
|
|
852
|
+
kind: "primary" | "subagent";
|
|
853
|
+
tier: "heavy" | "standard" | "light";
|
|
854
|
+
modes: ("opencode" | "claudecode")[];
|
|
754
855
|
source: string;
|
|
755
856
|
destination: string;
|
|
857
|
+
permissions: {
|
|
858
|
+
task: "allow" | "deny";
|
|
859
|
+
edit: "allow" | "deny";
|
|
860
|
+
bash: "allow" | "deny";
|
|
861
|
+
webfetch: "allow" | "deny";
|
|
862
|
+
mcp: "allow" | "deny";
|
|
863
|
+
};
|
|
864
|
+
replacementId?: string | undefined;
|
|
756
865
|
}, {
|
|
866
|
+
status: "active" | "retired";
|
|
867
|
+
id: string;
|
|
868
|
+
description: string;
|
|
869
|
+
kind: "primary" | "subagent";
|
|
870
|
+
tier: "heavy" | "standard" | "light";
|
|
871
|
+
modes: ("opencode" | "claudecode")[];
|
|
757
872
|
source: string;
|
|
758
873
|
destination: string;
|
|
874
|
+
permissions: {
|
|
875
|
+
task: "allow" | "deny";
|
|
876
|
+
edit: "allow" | "deny";
|
|
877
|
+
bash: "allow" | "deny";
|
|
878
|
+
webfetch: "allow" | "deny";
|
|
879
|
+
mcp: "allow" | "deny";
|
|
880
|
+
};
|
|
881
|
+
replacementId?: string | undefined;
|
|
759
882
|
}>, "many">;
|
|
760
883
|
ownedPaths: z.ZodArray<z.ZodString, "many">;
|
|
761
884
|
plugin: z.ZodObject<{
|
|
@@ -808,8 +931,22 @@ export declare const opencodeSourceManifestSchema: z.ZodObject<{
|
|
|
808
931
|
destination: string;
|
|
809
932
|
};
|
|
810
933
|
agents: {
|
|
934
|
+
status: "active" | "retired";
|
|
935
|
+
id: string;
|
|
936
|
+
description: string;
|
|
937
|
+
kind: "primary" | "subagent";
|
|
938
|
+
tier: "heavy" | "standard" | "light";
|
|
939
|
+
modes: ("opencode" | "claudecode")[];
|
|
811
940
|
source: string;
|
|
812
941
|
destination: string;
|
|
942
|
+
permissions: {
|
|
943
|
+
task: "allow" | "deny";
|
|
944
|
+
edit: "allow" | "deny";
|
|
945
|
+
bash: "allow" | "deny";
|
|
946
|
+
webfetch: "allow" | "deny";
|
|
947
|
+
mcp: "allow" | "deny";
|
|
948
|
+
};
|
|
949
|
+
replacementId?: string | undefined;
|
|
813
950
|
}[];
|
|
814
951
|
ownedPaths: string[];
|
|
815
952
|
plugin: {
|
|
@@ -834,8 +971,22 @@ export declare const opencodeSourceManifestSchema: z.ZodObject<{
|
|
|
834
971
|
destination: string;
|
|
835
972
|
};
|
|
836
973
|
agents: {
|
|
974
|
+
status: "active" | "retired";
|
|
975
|
+
id: string;
|
|
976
|
+
description: string;
|
|
977
|
+
kind: "primary" | "subagent";
|
|
978
|
+
tier: "heavy" | "standard" | "light";
|
|
979
|
+
modes: ("opencode" | "claudecode")[];
|
|
837
980
|
source: string;
|
|
838
981
|
destination: string;
|
|
982
|
+
permissions: {
|
|
983
|
+
task: "allow" | "deny";
|
|
984
|
+
edit: "allow" | "deny";
|
|
985
|
+
bash: "allow" | "deny";
|
|
986
|
+
webfetch: "allow" | "deny";
|
|
987
|
+
mcp: "allow" | "deny";
|
|
988
|
+
};
|
|
989
|
+
replacementId?: string | undefined;
|
|
839
990
|
}[];
|
|
840
991
|
ownedPaths: string[];
|
|
841
992
|
plugin: {
|
|
@@ -858,9 +1009,35 @@ export declare const opencodeInstalledManifestSchema: z.ZodObject<{
|
|
|
858
1009
|
sourceBundleHash: z.ZodString;
|
|
859
1010
|
installedAt: z.ZodString;
|
|
860
1011
|
ownedPaths: z.ZodArray<z.ZodString, "many">;
|
|
1012
|
+
agents: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1013
|
+
id: z.ZodString;
|
|
1014
|
+
promptDestination: z.ZodEffects<z.ZodString, string, string>;
|
|
1015
|
+
sourceHash: z.ZodString;
|
|
1016
|
+
configKey: z.ZodOptional<z.ZodString>;
|
|
1017
|
+
configHash: z.ZodOptional<z.ZodString>;
|
|
1018
|
+
}, "strip", z.ZodTypeAny, {
|
|
1019
|
+
id: string;
|
|
1020
|
+
promptDestination: string;
|
|
1021
|
+
sourceHash: string;
|
|
1022
|
+
configKey?: string | undefined;
|
|
1023
|
+
configHash?: string | undefined;
|
|
1024
|
+
}, {
|
|
1025
|
+
id: string;
|
|
1026
|
+
promptDestination: string;
|
|
1027
|
+
sourceHash: string;
|
|
1028
|
+
configKey?: string | undefined;
|
|
1029
|
+
configHash?: string | undefined;
|
|
1030
|
+
}>, "many">>>;
|
|
861
1031
|
}, "strip", z.ZodTypeAny, {
|
|
862
1032
|
bundleId: string;
|
|
863
1033
|
installMode: string;
|
|
1034
|
+
agents: {
|
|
1035
|
+
id: string;
|
|
1036
|
+
promptDestination: string;
|
|
1037
|
+
sourceHash: string;
|
|
1038
|
+
configKey?: string | undefined;
|
|
1039
|
+
configHash?: string | undefined;
|
|
1040
|
+
}[];
|
|
864
1041
|
ownedPaths: string[];
|
|
865
1042
|
sourceBundleVersion: string;
|
|
866
1043
|
sourceBundleHash: string;
|
|
@@ -872,5 +1049,12 @@ export declare const opencodeInstalledManifestSchema: z.ZodObject<{
|
|
|
872
1049
|
sourceBundleVersion: string;
|
|
873
1050
|
sourceBundleHash: string;
|
|
874
1051
|
installedAt: string;
|
|
1052
|
+
agents?: {
|
|
1053
|
+
id: string;
|
|
1054
|
+
promptDestination: string;
|
|
1055
|
+
sourceHash: string;
|
|
1056
|
+
configKey?: string | undefined;
|
|
1057
|
+
configHash?: string | undefined;
|
|
1058
|
+
}[] | undefined;
|
|
875
1059
|
}>;
|
|
876
1060
|
//# sourceMappingURL=json-schemas.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-schemas.d.ts","sourceRoot":"","sources":["../../src/utils/json-schemas.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,iBAAiB;;;;;;;;;EAG5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAM5D,eAAO,MAAM,eAAe;;;;;;;;;EAG1B,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAMxD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;EAKxB,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGzB,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAM1D,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;gCASZ,CAAC;AAEjB,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAad,CAAC;AAEjB,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAWhE,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWzB,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE1B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAY9B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE/B,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASzB,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE1B,CAAC;AAMH,eAAO,MAAM,kBAAkB,4DAA0D,CAAC;AAE1F,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAazB,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK9B,CAAC;AAYH,eAAO,MAAM,4BAA4B
|
|
1
|
+
{"version":3,"file":"json-schemas.d.ts","sourceRoot":"","sources":["../../src/utils/json-schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -138,6 +138,43 @@ const configMergeSchema = z.object({
|
|
|
138
138
|
value: z.unknown().transform((v) => v),
|
|
139
139
|
mode: z.enum(["overwrite", "if-absent", "merge"]).optional(),
|
|
140
140
|
});
|
|
141
|
+
export const agentTierSchema = z.enum(["heavy", "standard", "light"]);
|
|
142
|
+
export const agentStatusSchema = z.enum(["active", "retired"]);
|
|
143
|
+
export const agentKindSchema = z.enum(["primary", "subagent"]);
|
|
144
|
+
export const agentModeSchema = z.enum(["opencode", "claudecode"]);
|
|
145
|
+
const agentPermissionSchema = z.enum(["allow", "deny"]);
|
|
146
|
+
function isPromptPath(value) {
|
|
147
|
+
const segments = value.split("/");
|
|
148
|
+
return (segments.length >= 2 &&
|
|
149
|
+
segments[0] === "prompts" &&
|
|
150
|
+
segments.slice(1).every((segment) => segment !== "" && segment !== "." && segment !== "..") &&
|
|
151
|
+
!value.includes("\\") &&
|
|
152
|
+
(segments.at(-1)?.endsWith(".txt") ?? false));
|
|
153
|
+
}
|
|
154
|
+
const agentPromptPathSchema = z
|
|
155
|
+
.string()
|
|
156
|
+
.refine(isPromptPath, "must be a safe relative .txt path under prompts/");
|
|
157
|
+
export const agentRegistryRecordSchema = z.object({
|
|
158
|
+
id: z.string().regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/),
|
|
159
|
+
status: agentStatusSchema,
|
|
160
|
+
kind: agentKindSchema,
|
|
161
|
+
tier: agentTierSchema,
|
|
162
|
+
modes: z.array(agentModeSchema).min(1),
|
|
163
|
+
source: agentPromptPathSchema,
|
|
164
|
+
destination: agentPromptPathSchema,
|
|
165
|
+
description: z.string().min(1),
|
|
166
|
+
permissions: z.object({
|
|
167
|
+
edit: agentPermissionSchema,
|
|
168
|
+
bash: agentPermissionSchema,
|
|
169
|
+
webfetch: agentPermissionSchema,
|
|
170
|
+
mcp: agentPermissionSchema,
|
|
171
|
+
task: agentPermissionSchema,
|
|
172
|
+
}),
|
|
173
|
+
replacementId: z
|
|
174
|
+
.string()
|
|
175
|
+
.regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/)
|
|
176
|
+
.optional(),
|
|
177
|
+
});
|
|
141
178
|
export const opencodeSourceManifestSchema = z.object({
|
|
142
179
|
bundleId: z.string(),
|
|
143
180
|
installMode: z.string(),
|
|
@@ -147,10 +184,7 @@ export const opencodeSourceManifestSchema = z.object({
|
|
|
147
184
|
source: z.string(),
|
|
148
185
|
destination: z.string(),
|
|
149
186
|
}),
|
|
150
|
-
agents: z.array(
|
|
151
|
-
source: z.string(),
|
|
152
|
-
destination: z.string(),
|
|
153
|
-
})),
|
|
187
|
+
agents: z.array(agentRegistryRecordSchema),
|
|
154
188
|
ownedPaths: z.array(z.string()),
|
|
155
189
|
plugin: z.object({
|
|
156
190
|
required: z.boolean(),
|
|
@@ -168,5 +202,15 @@ export const opencodeInstalledManifestSchema = z.object({
|
|
|
168
202
|
sourceBundleHash: z.string(),
|
|
169
203
|
installedAt: z.string(),
|
|
170
204
|
ownedPaths: z.array(z.string()),
|
|
205
|
+
agents: z
|
|
206
|
+
.array(z.object({
|
|
207
|
+
id: z.string(),
|
|
208
|
+
promptDestination: agentPromptPathSchema,
|
|
209
|
+
sourceHash: z.string(),
|
|
210
|
+
configKey: z.string().optional(),
|
|
211
|
+
configHash: z.string().optional(),
|
|
212
|
+
}))
|
|
213
|
+
.optional()
|
|
214
|
+
.default([]),
|
|
171
215
|
});
|
|
172
216
|
//# sourceMappingURL=json-schemas.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-schemas.js","sourceRoot":"","sources":["../../src/utils/json-schemas.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,8EAA8E;AAC9E,wCAAwC;AACxC,8EAA8E;AAE9E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAC;AAIH,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IACvB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAC1B,CAAC,CAAC;AAIH,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAC/B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC;CACjC,CAAC,CAAC;AAIH,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC;KAC7B,MAAM,CAAC;IACN,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC/C,uBAAuB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC3D,uBAAuB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC3D,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACrD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChD,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACpD,CAAC;KACD,WAAW,EAAE,CAAC;AAIjB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC;IACN,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1D,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC9C,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC,aAAa,EAAE,eAAe,CAAC,QAAQ,EAAE;CAC1C,CAAC;KACD,WAAW,EAAE,CAAC;AAIjB,8EAA8E;AAC9E,2DAA2D;AAC3D,8EAA8E;AAE9E,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE;IACnD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC;CAC/B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE;IACnD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC;CACtC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE;IACnD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC;CAC/B,CAAC,CAAC;AAEH,8EAA8E;AAC9E,qFAAqF;AACrF,8EAA8E;AAE9E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAE1F,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,kBAAkB;IACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,mEAAmE;IACnE,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACtC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC;IACxC,wBAAwB,EAAE,CAAC,CAAC,KAAK,CAC/B,CAAC,CAAC,MAAM,CAAC;QACP,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;QACd,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KAC7B,CAAC,CACH;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACrB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC5B,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC;CACnC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,gDAAgD;AAChD,8EAA8E;AAE9E,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACzB,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAY,CAAC;IACjD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC7D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"json-schemas.js","sourceRoot":"","sources":["../../src/utils/json-schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,14 +34,20 @@ export interface UpdateKnowledgeInput {
|
|
|
34
34
|
id: string;
|
|
35
35
|
title?: string;
|
|
36
36
|
kind?: import("./storage-utils.js").KnowledgeKind;
|
|
37
|
-
audience?: import("./storage-utils.js").KnowledgeAudience;
|
|
37
|
+
audience?: import("./storage-utils.js").KnowledgeAudience | null;
|
|
38
38
|
summary?: string;
|
|
39
39
|
keywords?: string[];
|
|
40
40
|
sourceFiles?: import("./storage-utils.js").FileRef[];
|
|
41
|
+
content?: string;
|
|
41
42
|
now?: string;
|
|
42
43
|
}
|
|
44
|
+
export interface KnowledgeDocument {
|
|
45
|
+
meta: KnowledgeMeta;
|
|
46
|
+
body: string;
|
|
47
|
+
}
|
|
43
48
|
export declare function createKnowledgeEntry(projectDir: string, input: CreateKnowledgeInput): Promise<KnowledgeMeta>;
|
|
44
49
|
export declare function updateKnowledgeEntry(projectDir: string, input: UpdateKnowledgeInput): Promise<KnowledgeMeta>;
|
|
50
|
+
export declare function updateKnowledgeDocument(projectDir: string, input: UpdateKnowledgeInput): Promise<KnowledgeDocument>;
|
|
45
51
|
export declare function deleteKnowledgeEntry(projectDir: string, id: string): Promise<void>;
|
|
46
52
|
export declare function readKnowledgeIndex(projectDir: string): Promise<{
|
|
47
53
|
entries: KnowledgeMeta[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge-store.d.ts","sourceRoot":"","sources":["../../src/utils/knowledge-store.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA+BH,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAM1E,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,oBAAoB,EAAE,aAAa,CAAC;IACjD,QAAQ,CAAC,EAAE,OAAO,oBAAoB,EAAE,iBAAiB,CAAC;IAC1D,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,oBAAoB,EAAE,OAAO,EAAE,CAAC;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAUD,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,oBAAoB,EAAE,aAAa,CAAC;IACjD,QAAQ,CAAC,EAAE,OAAO,oBAAoB,EAAE,iBAAiB,CAAC;IAC1D,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,oBAAoB,EAAE,OAAO,EAAE,CAAC;IACrD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,oBAAoB,EAAE,aAAa,CAAC;IAClD,QAAQ,CAAC,EAAE,OAAO,oBAAoB,EAAE,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"knowledge-store.d.ts","sourceRoot":"","sources":["../../src/utils/knowledge-store.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA+BH,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAM1E,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,oBAAoB,EAAE,aAAa,CAAC;IACjD,QAAQ,CAAC,EAAE,OAAO,oBAAoB,EAAE,iBAAiB,CAAC;IAC1D,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,oBAAoB,EAAE,OAAO,EAAE,CAAC;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAUD,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,oBAAoB,EAAE,aAAa,CAAC;IACjD,QAAQ,CAAC,EAAE,OAAO,oBAAoB,EAAE,iBAAiB,CAAC;IAC1D,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,oBAAoB,EAAE,OAAO,EAAE,CAAC;IACrD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,oBAAoB,EAAE,aAAa,CAAC;IAClD,QAAQ,CAAC,EAAE,OAAO,oBAAoB,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,oBAAoB,EAAE,OAAO,EAAE,CAAC;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AA2ED,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,aAAa,CAAC,CA4CxB;AAwED,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,aAAa,CAAC,CAExB;AAED,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,CAE5B;AAED,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBxF;AAED,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,OAAO,EAAE,aAAa,EAAE,CAAA;CAAE,CAAC,CAmBvC"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Provides create, update, delete, and index-read operations for knowledge
|
|
5
5
|
* entries, with automatic index maintenance and rebuild-on-read resilience.
|
|
6
6
|
*/
|
|
7
|
-
import { readdir,
|
|
7
|
+
import { readdir, readFile } from "node:fs/promises";
|
|
8
8
|
import { basename, join } from "node:path";
|
|
9
9
|
import { invalidateGraphCache } from "../retrieval/graph-invalidate.js";
|
|
10
10
|
import { indexRebuildFailed, invalidFileFormat, itemNotFound, normalizedIdCollision, } from "./errors.js";
|
|
@@ -12,7 +12,7 @@ import { withLock } from "./file-lock.js";
|
|
|
12
12
|
import { readJsonSafe } from "./json.js";
|
|
13
13
|
import { knowledgeMetaSchema } from "./json-schemas.js";
|
|
14
14
|
import { normalizeIdentifier } from "./slug.js";
|
|
15
|
-
import { buildBody, ensureDir, fileExists, nowISO,
|
|
15
|
+
import { buildBody, ensureDir, fileExists, nowISO, sanitizeFileRefs, sanitizeKeywords, validateKnowledgeKind, writeFilesTransaction, writeJson, } from "./storage-utils.js";
|
|
16
16
|
export { KNOWLEDGE_AUDIENCES, KNOWLEDGE_KINDS } from "./storage-utils.js";
|
|
17
17
|
// ---------------------------------------------------------------------------
|
|
18
18
|
// Index helpers
|
|
@@ -61,15 +61,19 @@ async function isKnowledgeIndexStale(knowledgeDir, index) {
|
|
|
61
61
|
}
|
|
62
62
|
return false;
|
|
63
63
|
}
|
|
64
|
-
async function writeKnowledgeIndex(knowledgeDir, index) {
|
|
65
|
-
const indexPath = join(knowledgeDir, "index.json");
|
|
66
|
-
await withLock(indexPath, async () => {
|
|
67
|
-
await writeJson(indexPath, index);
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
64
|
// ---------------------------------------------------------------------------
|
|
71
65
|
// Public API
|
|
72
66
|
// ---------------------------------------------------------------------------
|
|
67
|
+
function rewriteBodyTitle(body, title) {
|
|
68
|
+
if (body.startsWith("# ")) {
|
|
69
|
+
const newline = body.indexOf("\n");
|
|
70
|
+
return newline === -1 ? `# ${title}\n` : `# ${title}${body.slice(newline)}`;
|
|
71
|
+
}
|
|
72
|
+
return `# ${title}\n\n${body}`;
|
|
73
|
+
}
|
|
74
|
+
function knowledgeStoreLockPath(knowledgeDir) {
|
|
75
|
+
return join(knowledgeDir, ".store");
|
|
76
|
+
}
|
|
73
77
|
export async function createKnowledgeEntry(projectDir, input) {
|
|
74
78
|
validateKnowledgeKind(input.kind);
|
|
75
79
|
const keywords = sanitizeKeywords(input.keywords);
|
|
@@ -77,39 +81,40 @@ export async function createKnowledgeEntry(projectDir, input) {
|
|
|
77
81
|
const normalizedId = normalizeIdentifier(input.id);
|
|
78
82
|
const knowledgeDir = join(projectDir, "knowledge");
|
|
79
83
|
await ensureDir(knowledgeDir);
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
entries: []
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
84
|
+
return withLock(knowledgeStoreLockPath(knowledgeDir), async () => {
|
|
85
|
+
const metaPath = join(knowledgeDir, `${normalizedId}.meta.json`);
|
|
86
|
+
if (await fileExists(metaPath)) {
|
|
87
|
+
throw normalizedIdCollision("knowledge entry", input.id, normalizedId);
|
|
88
|
+
}
|
|
89
|
+
const ts = nowISO(input.now);
|
|
90
|
+
const bodyFile = join("knowledge", `${normalizedId}.md`);
|
|
91
|
+
const bodyPath = join(projectDir, bodyFile);
|
|
92
|
+
const indexPath = join(knowledgeDir, "index.json");
|
|
93
|
+
const meta = {
|
|
94
|
+
id: normalizedId,
|
|
95
|
+
normalizedId,
|
|
96
|
+
title: input.title,
|
|
97
|
+
kind: input.kind,
|
|
98
|
+
...(input.audience && { audience: input.audience }),
|
|
99
|
+
keywords,
|
|
100
|
+
summary: input.summary ?? "",
|
|
101
|
+
...(sourceFiles && sourceFiles.length > 0 && { sourceFiles }),
|
|
102
|
+
file: bodyFile,
|
|
103
|
+
createdAt: ts,
|
|
104
|
+
updatedAt: ts,
|
|
105
|
+
};
|
|
106
|
+
const index = (await readJsonSafe(indexPath)) ?? { entries: [] };
|
|
107
|
+
index.entries.push(meta);
|
|
108
|
+
await writeFilesTransaction([
|
|
109
|
+
{ path: metaPath, content: `${JSON.stringify(meta, null, 2)}\n` },
|
|
110
|
+
{ path: bodyPath, content: buildBody(input.title, input.content) },
|
|
111
|
+
{ path: indexPath, content: `${JSON.stringify(index, null, 2)}\n` },
|
|
112
|
+
]);
|
|
113
|
+
invalidateGraphCache(basename(projectDir));
|
|
114
|
+
return meta;
|
|
115
|
+
});
|
|
108
116
|
}
|
|
109
|
-
|
|
110
|
-
if (input.kind !== undefined) {
|
|
111
|
-
validateKnowledgeKind(input.kind);
|
|
112
|
-
}
|
|
117
|
+
async function updateKnowledgeEntryUnlocked(projectDir, input) {
|
|
113
118
|
const normalizedId = normalizeIdentifier(input.id);
|
|
114
119
|
const knowledgeDir = join(projectDir, "knowledge");
|
|
115
120
|
const metaPath = join(knowledgeDir, `${normalizedId}.meta.json`);
|
|
@@ -117,13 +122,21 @@ export async function updateKnowledgeEntry(projectDir, input) {
|
|
|
117
122
|
if (!meta) {
|
|
118
123
|
throw itemNotFound("knowledge entry", input.id);
|
|
119
124
|
}
|
|
125
|
+
const bodyPath = join(projectDir, meta.file);
|
|
126
|
+
let body = await readFile(bodyPath, "utf-8").catch(() => "");
|
|
120
127
|
if (input.kind !== undefined)
|
|
121
128
|
meta.kind = input.kind;
|
|
122
|
-
if (input.audience !== undefined)
|
|
123
|
-
|
|
129
|
+
if (input.audience !== undefined) {
|
|
130
|
+
if (input.audience === null) {
|
|
131
|
+
delete meta.audience;
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
meta.audience = input.audience;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
124
137
|
if (input.title !== undefined && input.title !== meta.title) {
|
|
125
|
-
|
|
126
|
-
|
|
138
|
+
if (input.content === undefined)
|
|
139
|
+
body = rewriteBodyTitle(body, input.title);
|
|
127
140
|
meta.title = input.title;
|
|
128
141
|
}
|
|
129
142
|
if (input.summary !== undefined)
|
|
@@ -138,11 +151,11 @@ export async function updateKnowledgeEntry(projectDir, input) {
|
|
|
138
151
|
meta.sourceFiles = sanitizeFileRefs(input.sourceFiles);
|
|
139
152
|
}
|
|
140
153
|
}
|
|
154
|
+
if (input.content !== undefined)
|
|
155
|
+
body = input.content;
|
|
141
156
|
meta.updatedAt = nowISO(input.now);
|
|
142
|
-
|
|
143
|
-
const index = (await readJsonSafe(
|
|
144
|
-
entries: [],
|
|
145
|
-
};
|
|
157
|
+
const indexPath = join(knowledgeDir, "index.json");
|
|
158
|
+
const index = (await readJsonSafe(indexPath)) ?? { entries: [] };
|
|
146
159
|
const idx = index.entries.findIndex((e) => e.normalizedId === normalizedId);
|
|
147
160
|
if (idx >= 0) {
|
|
148
161
|
index.entries[idx] = meta;
|
|
@@ -150,28 +163,47 @@ export async function updateKnowledgeEntry(projectDir, input) {
|
|
|
150
163
|
else {
|
|
151
164
|
index.entries.push(meta);
|
|
152
165
|
}
|
|
153
|
-
await
|
|
166
|
+
await writeFilesTransaction([
|
|
167
|
+
{ path: metaPath, content: `${JSON.stringify(meta, null, 2)}\n` },
|
|
168
|
+
{ path: bodyPath, content: body },
|
|
169
|
+
{ path: indexPath, content: `${JSON.stringify(index, null, 2)}\n` },
|
|
170
|
+
]);
|
|
154
171
|
invalidateGraphCache(basename(projectDir));
|
|
155
|
-
return meta;
|
|
172
|
+
return { meta, body };
|
|
173
|
+
}
|
|
174
|
+
async function updateKnowledgeDocumentLocked(projectDir, input) {
|
|
175
|
+
if (input.kind !== undefined)
|
|
176
|
+
validateKnowledgeKind(input.kind);
|
|
177
|
+
const knowledgeDir = join(projectDir, "knowledge");
|
|
178
|
+
await ensureDir(knowledgeDir);
|
|
179
|
+
return withLock(knowledgeStoreLockPath(knowledgeDir), () => updateKnowledgeEntryUnlocked(projectDir, input));
|
|
180
|
+
}
|
|
181
|
+
export async function updateKnowledgeEntry(projectDir, input) {
|
|
182
|
+
return (await updateKnowledgeDocumentLocked(projectDir, input)).meta;
|
|
183
|
+
}
|
|
184
|
+
export async function updateKnowledgeDocument(projectDir, input) {
|
|
185
|
+
return updateKnowledgeDocumentLocked(projectDir, input);
|
|
156
186
|
}
|
|
157
187
|
export async function deleteKnowledgeEntry(projectDir, id) {
|
|
158
188
|
const normalizedId = normalizeIdentifier(id);
|
|
159
189
|
const knowledgeDir = join(projectDir, "knowledge");
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
await
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
190
|
+
await ensureDir(knowledgeDir);
|
|
191
|
+
await withLock(knowledgeStoreLockPath(knowledgeDir), async () => {
|
|
192
|
+
const metaPath = join(knowledgeDir, `${normalizedId}.meta.json`);
|
|
193
|
+
const meta = await readJsonSafe(metaPath);
|
|
194
|
+
if (!meta)
|
|
195
|
+
throw itemNotFound("knowledge entry", id);
|
|
196
|
+
const bodyPath = join(projectDir, meta.file);
|
|
197
|
+
const indexPath = join(knowledgeDir, "index.json");
|
|
198
|
+
const index = (await readJsonSafe(indexPath)) ?? { entries: [] };
|
|
199
|
+
index.entries = index.entries.filter((entry) => entry.normalizedId !== normalizedId);
|
|
200
|
+
await writeFilesTransaction([
|
|
201
|
+
{ path: metaPath, content: null },
|
|
202
|
+
{ path: bodyPath, content: null },
|
|
203
|
+
{ path: indexPath, content: `${JSON.stringify(index, null, 2)}\n` },
|
|
204
|
+
]);
|
|
205
|
+
invalidateGraphCache(basename(projectDir));
|
|
206
|
+
});
|
|
175
207
|
}
|
|
176
208
|
export async function readKnowledgeIndex(projectDir) {
|
|
177
209
|
const knowledgeDir = join(projectDir, "knowledge");
|