@iowarp/clio-coder 0.3.1 → 0.3.2
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/CHANGELOG.md +90 -2
- package/CONTRIBUTING.md +23 -23
- package/README.md +284 -613
- package/dist/{acp-FPR54DGL.js → acp-BIYHVZIM.js} +43 -53
- package/dist/{agents-OGPIHPJH.js → agents-YT6SSRIT.js} +43 -26
- package/dist/assets/codewiki.json +1 -1
- package/dist/{auth-IC3K6NIZ.js → auth-5TWEIYDN.js} +20 -12
- package/dist/{chunk-PV4JUBVJ.js → chunk-2EHAIA3X.js} +40 -21
- package/dist/{chunk-IS3ONKU3.js → chunk-2IR2NMPA.js} +6 -4
- package/dist/chunk-2SFS6XQE.js +122 -0
- package/dist/chunk-2VTFPG5O.js +48 -0
- package/dist/{chunk-MAR7Y6HW.js → chunk-3ZXDFGR5.js} +23 -16
- package/dist/chunk-4BJ5BYCE.js +61 -0
- package/dist/{chunk-474KN5II.js → chunk-4BPJXDWC.js} +111 -181
- package/dist/chunk-4KLWL3UC.js +18 -0
- package/dist/chunk-4VP4KH3K.js +962 -0
- package/dist/chunk-4ZG3XFUR.js +77 -0
- package/dist/chunk-5B2AEOW5.js +5407 -0
- package/dist/{chunk-K2ITRMHZ.js → chunk-5TSRNF4G.js} +6 -138
- package/dist/{chunk-OLBBMFRD.js → chunk-5UUP6MWO.js} +24 -62
- package/dist/chunk-65DEGPJ6.js +52 -0
- package/dist/chunk-6EJMN2Y3.js +17 -0
- package/dist/chunk-6EJV5X2W.js +16405 -0
- package/dist/chunk-6N5PTWMY.js +136 -0
- package/dist/chunk-6XLNIQDB.js +27 -0
- package/dist/{chunk-TEKV33Q5.js → chunk-77VKQEHF.js} +65 -33
- package/dist/chunk-7CR24IG7.js +242 -0
- package/dist/{chunk-M5T5VO65.js → chunk-7EYHLWU7.js} +837 -635
- package/dist/chunk-7MNJORFF.js +22 -0
- package/dist/{chunk-KY56HMHH.js → chunk-A3CYT5EX.js} +125 -31
- package/dist/chunk-AGYYIBLL.js +1069 -0
- package/dist/chunk-AO4RKG4M.js +277 -0
- package/dist/{chunk-GB6QRBXN.js → chunk-APJ265NV.js} +54 -1187
- package/dist/chunk-ARBGF5F7.js +174 -0
- package/dist/{chunk-673JJUWJ.js → chunk-BMEMKKIT.js} +2 -2
- package/dist/chunk-CBCAPZAA.js +229 -0
- package/dist/chunk-CMZWFGD2.js +352 -0
- package/dist/chunk-ECH6PKUQ.js +39 -0
- package/dist/chunk-ED4KHGC3.js +143 -0
- package/dist/chunk-EKMEHE4H.js +340 -0
- package/dist/{chunk-RPTR2H26.js → chunk-EPVUXGXG.js} +21 -15
- package/dist/chunk-FCSXB6T2.js +338 -0
- package/dist/chunk-FJ3H4MN5.js +48 -0
- package/dist/chunk-FQ4SKYE4.js +29 -0
- package/dist/chunk-G2DE3C7R.js +644 -0
- package/dist/chunk-G4BMMOKF.js +182 -0
- package/dist/{chunk-ZPY3JZ5E.js → chunk-GGXXDWE4.js} +183 -1233
- package/dist/chunk-HC4CLZ2Y.js +68 -0
- package/dist/{chunk-LU4TK2PR.js → chunk-HFSBBKSQ.js} +5 -56
- package/dist/{chunk-PIUMUEMV.js → chunk-HKIYEGME.js} +10 -6
- package/dist/chunk-I4HZDVNP.js +73 -0
- package/dist/{chunk-4QKXUHSR.js → chunk-IGLFWIYI.js} +70 -20
- package/dist/chunk-IKCO5N3L.js +162 -0
- package/dist/chunk-IR4CFBFN.js +56 -0
- package/dist/{chunk-PFEFKVGL.js → chunk-J5HN4RYU.js} +13 -11
- package/dist/{chunk-R5KLMSBV.js → chunk-J5Q24KAG.js} +2 -2
- package/dist/{chunk-K5XEMXTI.js → chunk-JVCV3ICN.js} +1 -1
- package/dist/chunk-KJ5LWLOE.js +1077 -0
- package/dist/chunk-LBMZMYH2.js +285 -0
- package/dist/{chunk-G34LV2PF.js → chunk-LBNRH5WM.js} +84 -170
- package/dist/{chunk-H6F6BYOH.js → chunk-LZSJBIVT.js} +7003 -7434
- package/dist/{chunk-HQQID6OA.js → chunk-M6SHUN7Q.js} +5 -5
- package/dist/chunk-MAW544W2.js +1882 -0
- package/dist/chunk-MBS4V7ZP.js +217 -0
- package/dist/{chunk-FST4FYJB.js → chunk-MFFY33HR.js} +99 -140
- package/dist/chunk-MNA4JGU4.js +255 -0
- package/dist/chunk-MQSRRFWA.js +3428 -0
- package/dist/{chunk-BSU2YIWB.js → chunk-MVVUPGPW.js} +131 -136
- package/dist/chunk-OAO4GE4M.js +619 -0
- package/dist/chunk-OHHN2SO4.js +5135 -0
- package/dist/chunk-OKGUZO2U.js +34 -0
- package/dist/{chunk-GAEBEQVI.js → chunk-OOJYHWRB.js} +32 -346
- package/dist/{chunk-Q5WJOSJ7.js → chunk-OQ33BKR3.js} +2 -1
- package/dist/chunk-OQE5J4C6.js +73 -0
- package/dist/{chunk-KKNLWXI6.js → chunk-ORBHGJC5.js} +8 -8
- package/dist/chunk-POHLU5DW.js +1186 -0
- package/dist/chunk-QKMUKYO7.js +4961 -0
- package/dist/{chunk-ASND7OZK.js → chunk-QTYWRVRA.js} +13 -13
- package/dist/{chunk-EYOKLTMF.js → chunk-SRF2PJNW.js} +17 -3
- package/dist/chunk-SST6Z5JA.js +80 -0
- package/dist/chunk-STBPMHSX.js +2456 -0
- package/dist/chunk-T6YILFSB.js +80 -0
- package/dist/chunk-TZTZS7QK.js +227 -0
- package/dist/chunk-UOV2BYIW.js +107 -0
- package/dist/{chunk-Q3RUPKEJ.js → chunk-V4RXGQ5Q.js} +58 -189
- package/dist/chunk-VAKQQHWR.js +434 -0
- package/dist/chunk-VG7TBQIY.js +128 -0
- package/dist/chunk-VJWL6YS5.js +244 -0
- package/dist/chunk-WEH5XRJQ.js +32 -0
- package/dist/chunk-WMSVI4G2.js +2095 -0
- package/dist/chunk-WVO7V2QY.js +797 -0
- package/dist/chunk-X4RCMKVQ.js +641 -0
- package/dist/chunk-X75S7HFS.js +374 -0
- package/dist/chunk-XN3L4EYL.js +46 -0
- package/dist/{chunk-RDLVBZEO.js → chunk-YCWGATWI.js} +6 -4
- package/dist/chunk-YHZX5GEU.js +193 -0
- package/dist/chunk-YXLYO42X.js +91 -0
- package/dist/{chunk-NMOX6HFD.js → chunk-ZDOOVTXZ.js} +29 -77
- package/dist/chunk-ZI647VB5.js +37 -0
- package/dist/{chunk-C4PTHK7P.js → chunk-ZWLZP4ZT.js} +5 -5
- package/dist/cli/index.js +62 -54
- package/dist/clio-4LY5K2AC.js +25 -0
- package/dist/code-nav-7AX6FYE6.js +600 -0
- package/dist/codewiki/build-worker.js +66 -0
- package/dist/compile-cache-CVJMMODC.js +18 -0
- package/dist/{components-DMAOEKFB.js → components-KELWS457.js} +11 -6
- package/dist/{config-IRUQ7SE4.js → config-GTLUW2PR.js} +92 -55
- package/dist/configure-R6A64DHX.js +42 -0
- package/dist/context-5VKGUVJJ.js +866 -0
- package/dist/{context-3KWFLHJG.js → context-JFZEJ7W5.js} +15 -13
- package/dist/{context-5RADCKTR.js → context-RW5HC47S.js} +71 -35
- package/dist/{context-clear-7TSNPAAI.js → context-clear-6ZHBAZZT.js} +54 -28
- package/dist/{context-index-W4RLWOQH.js → context-index-BZ4UYMTC.js} +30 -24
- package/dist/dispatch-runner-VKBRCWQC.js +1997 -0
- package/dist/{docs-5AWSPS37.js → docs-2C2LTVT2.js} +23 -10
- package/dist/{doctor-UC5NAJYQ.js → doctor-KI767GSN.js} +27 -17
- package/dist/{eval-U6TJHRLX.js → eval-XSSNATB4.js} +29 -16
- package/dist/{evidence-YEGUW4L3.js → evidence-UA6AWDQQ.js} +46 -26
- package/dist/{evolve-TXARCTPG.js → evolve-QNTFGV6Z.js} +45 -25
- package/dist/{extensions-OZFJ3A3G.js → extensions-QVDOHDGJ.js} +16 -7
- package/dist/{fleet-6G3DHNYE.js → fleet-Q7UOMUSG.js} +163 -54
- package/dist/{fleet-preflight-DSNT37JK.js → fleet-preflight-DDN536IT.js} +7 -4
- package/dist/{init-KZ5QTF6M.js → init-WBB65ZHQ.js} +69 -32
- package/dist/{memory-73ESV5YC.js → memory-MD3O64RI.js} +48 -27
- package/dist/{models-A4PVNWJK.js → models-BZU34YWD.js} +39 -25
- package/dist/monitor-MEQA5C3I.js +661 -0
- package/dist/{chunk-FCIH3BIZ.js → orchestrator-CGFKEP27.js} +11832 -8687
- package/dist/{paths-C4H6IV77.js → paths-UXLN5YYZ.js} +10 -5
- package/dist/{preload-6WVMHX3A.js → preload-P6DGH2PZ.js} +2 -2
- package/dist/{reset-BGW6OGMV.js → reset-L2FQEE3E.js} +16 -10
- package/dist/{run-YTPEYQOH.js → run-IV4Q6RLN.js} +101 -61
- package/dist/{share-YIFFV4NQ.js → share-S5BZQC5I.js} +15 -8
- package/dist/{skills-2V6RA3OQ.js → skills-LQEKRDTN.js} +34 -14
- package/dist/{skills-eval-S2TVJO4F.js → skills-eval-3DC4HEWS.js} +70 -34
- package/dist/steer-GGWFUJUD.js +77 -0
- package/dist/{targets-TYXLPB23.js → targets-C4SSGQOB.js} +43 -27
- package/dist/terminal-lease-IT5JW2NR.js +395 -0
- package/dist/{trace-GGOJ6Q6Z.js → trace-PNCASAXC.js} +41 -16
- package/dist/{chunk-N6F52NLF.js → tree-sitter-HGKH6LG4.js} +28 -2306
- package/dist/{uninstall-LLLT4F4W.js → uninstall-FZCQCDKC.js} +10 -5
- package/dist/{upgrade-33G2LMM5.js → upgrade-7TT7SQ3G.js} +45 -25
- package/dist/{usage-ZAFSXKKG.js → usage-GV4PKT3M.js} +62 -31
- package/dist/verify-G6V4D2G7.js +716 -0
- package/dist/web-fetch-2YHJ3KTG.js +638 -0
- package/dist/{wiki-generate-NUQCVOQ3.js → wiki-generate-DQF6Z66B.js} +74 -34
- package/dist/worker/entry.js +221 -36
- package/dist/workspace-G4ZWUIPR.js +22 -0
- package/docs/README.md +22 -17
- package/docs/acp.md +168 -16
- package/docs/alcf-provider.md +1 -1
- package/docs/architecture.md +136 -7
- package/docs/artifact-versions.md +1 -1
- package/docs/built-in-agents.md +1 -1
- package/docs/capacity-and-scheduling.md +1 -1
- package/docs/commands-and-modes.md +114 -71
- package/docs/config-knobs-audit.md +1 -3
- package/docs/configuration-and-targets.md +174 -46
- package/docs/context-engine.md +29 -6
- package/docs/development-pipeline.md +26 -1
- package/docs/dispatch-architecture-rationale.md +1 -1
- package/docs/documentation-coverage.md +2 -2
- package/docs/documentation-guide.md +1 -1
- package/docs/environment-variables.md +13 -5
- package/docs/eval-runner.md +1 -1
- package/docs/evals-internal.md +1 -1
- package/docs/evidence-and-memory.md +6 -2
- package/docs/evolution.md +2 -2
- package/docs/exit-codes-and-output.md +15 -9
- package/docs/extensions-and-sharing.md +9 -9
- package/docs/fleet-dispatch.md +7 -5
- package/docs/git-commit-provenance.md +120 -0
- package/docs/glossary.md +1 -1
- package/docs/installation-and-lifecycle.md +34 -27
- package/docs/middleware-and-components.md +1 -1
- package/docs/model-catalog.md +45 -14
- package/docs/observability.md +8 -5
- package/docs/performance-methodology.md +491 -0
- package/docs/pi-boundary.md +72 -0
- package/docs/proactive-memory.md +3 -3
- package/docs/prompt-envelope-and-tools.md +24 -3
- package/docs/provider-adapter-cookbook.md +57 -4
- package/docs/release-cut-checklist.md +129 -115
- package/docs/safety-model.md +9 -5
- package/docs/scientific-validation.md +3 -3
- package/docs/session-lifecycle.md +55 -12
- package/docs/skills-marketplace.md +12 -8
- package/docs/time-conventions.md +1 -1
- package/docs/tool-usage.md +3 -3
- package/docs/trace-store.md +1 -1
- package/docs/troubleshooting.md +10 -7
- package/docs/tui-design.md +47 -10
- package/docs/worker-dispatch-mechanics.md +1 -1
- package/package.json +19 -22
- package/skills/coding/ast-grep/SKILL.md +136 -0
- package/skills/coding/ast-grep/evals.md +56 -0
- package/skills/coding/ast-grep/references/rule_reference.md +297 -0
- package/skills/coding/coding-standards/SKILL.md +113 -0
- package/skills/coding/coding-standards/evals.md +34 -0
- package/skills/coding/prototype/SKILL.md +86 -0
- package/skills/coding/prototype/evals.md +42 -0
- package/skills/coding/prototype/references/LOGIC.md +67 -0
- package/skills/coding/prototype/references/UI.md +112 -0
- package/skills/coding/tdd/SKILL.md +101 -0
- package/skills/coding/tdd/evals.md +41 -0
- package/skills/coding/tdd/references/mocking.md +59 -0
- package/skills/coding/tdd/references/tests.md +77 -0
- package/skills/context/context-handoff/SKILL.md +126 -0
- package/skills/context/context-handoff/evals.md +57 -0
- package/skills/context/context-handoff/scripts/new-handoff.sh +26 -0
- package/skills/context/context-prime/SKILL.md +95 -0
- package/skills/context/context-prime/evals.md +54 -0
- package/skills/meta/clio-dev/SKILL.md +91 -0
- package/skills/meta/clio-dev/evals.md +45 -0
- package/skills/meta/clio-test/SKILL.md +130 -0
- package/skills/meta/clio-test/evals.md +43 -0
- package/skills/meta/clio-test/references/harness.md +97 -0
- package/skills/meta/clio-test/references/test-map.md +59 -0
- package/skills/meta/credentials/SKILL.md +125 -0
- package/skills/meta/credentials/evals.md +104 -0
- package/skills/meta/find-skills/SKILL.md +72 -0
- package/skills/meta/find-skills/evals.md +47 -0
- package/skills/meta/herdr/SKILL.md +127 -0
- package/skills/meta/herdr/evals.md +38 -0
- package/skills/meta/skill-craft/SKILL.md +102 -0
- package/skills/meta/skill-craft/evals.md +41 -0
- package/skills/planning/architecture/SKILL.md +129 -0
- package/skills/planning/architecture/evals.md +36 -0
- package/skills/planning/backlog/SKILL.md +90 -0
- package/skills/planning/backlog/evals.md +43 -0
- package/skills/planning/prd/SKILL.md +82 -0
- package/skills/planning/prd/evals.md +49 -0
- package/skills/planning/product-intent/SKILL.md +112 -0
- package/skills/planning/product-intent/evals.md +36 -0
- package/skills/planning/tech-spec/SKILL.md +115 -0
- package/skills/planning/tech-spec/evals.md +47 -0
- package/skills/registry.yaml +136 -0
- package/skills/research/arxiv-literature/SKILL.md +104 -0
- package/skills/research/arxiv-literature/evals.md +58 -0
- package/skills/research/experiment-protocol/SKILL.md +122 -0
- package/skills/research/experiment-protocol/evals.md +91 -0
- package/skills/research/scientific-debugging/SKILL.md +119 -0
- package/skills/research/scientific-debugging/evals.md +138 -0
- package/skills/research/scientific-modernization/SKILL.md +138 -0
- package/skills/research/scientific-modernization/evals.md +84 -0
- package/skills/workflow/design-council/SKILL.md +139 -0
- package/skills/workflow/design-council/evals.md +97 -0
- package/skills/workflow/grill-me/SKILL.md +186 -0
- package/skills/workflow/grill-me/evals.md +78 -0
- package/skills/workflow/workflow-distiller/SKILL.md +136 -0
- package/skills/workflow/workflow-distiller/evals.md +107 -0
- package/src/cli/acp.ts +31 -4
- package/src/cli/clio.ts +68 -6
- package/src/cli/config-inspect.ts +28 -22
- package/src/cli/configure.ts +47 -9
- package/src/cli/context-clear.ts +2 -2
- package/src/cli/context-index.ts +21 -23
- package/src/cli/context.ts +13 -8
- package/src/cli/default-target.ts +9 -17
- package/src/cli/docs.ts +11 -5
- package/src/cli/evidence.ts +4 -1
- package/src/cli/extensions.ts +10 -1
- package/src/cli/fleet.ts +47 -6
- package/src/cli/index.ts +55 -26
- package/src/cli/memory.ts +3 -1
- package/src/cli/models.ts +1 -1
- package/src/cli/modes/json-stream.ts +37 -1
- package/src/cli/modes/print.ts +24 -9
- package/src/cli/run.ts +2 -2
- package/src/cli/skills-eval.ts +23 -8
- package/src/cli/skills.ts +19 -4
- package/src/cli/targets.ts +4 -0
- package/src/cli/text-layout.ts +15 -5
- package/src/cli/trace.ts +62 -14
- package/src/cli/upgrade.ts +18 -2
- package/src/cli/usage.ts +10 -3
- package/src/cli/wiki-generate.ts +2 -1
- package/src/core/agent-environment.ts +7 -0
- package/src/core/bash-exec.ts +72 -1
- package/src/core/boot-trace.ts +9 -4
- package/src/core/bus-events.ts +20 -4
- package/src/core/commit-attribution.ts +157 -0
- package/src/core/compile-cache.ts +159 -0
- package/src/core/config.ts +131 -2
- package/src/core/defaults.ts +39 -5
- package/src/core/domain-loader.ts +12 -5
- package/src/core/git-commit-attribution.ts +362 -0
- package/src/core/incomplete-installation.ts +45 -0
- package/src/core/response-schema.ts +1 -1
- package/src/core/safe-exec.ts +13 -1
- package/src/core/settings-layers.ts +155 -21
- package/src/core/skill-activation.ts +1 -1
- package/src/core/startup-timer.ts +3 -3
- package/src/core/state-file-lock.ts +13 -1
- package/src/core/termination.ts +78 -5
- package/src/domains/config/classify.ts +15 -3
- package/src/domains/config/extension.ts +19 -13
- package/src/domains/config/index.ts +10 -0
- package/src/domains/config/keybindings.ts +42 -6
- package/src/domains/context/bootstrap-prompt.ts +1 -1
- package/src/domains/context/bootstrap.ts +111 -18
- package/src/domains/context/clear.ts +16 -11
- package/src/domains/context/clio-md.ts +111 -9
- package/src/domains/context/codewiki/artifact.ts +400 -0
- package/src/domains/context/codewiki/build-worker-protocol.ts +24 -0
- package/src/domains/context/codewiki/build-worker.ts +54 -0
- package/src/domains/context/codewiki/coordinator.ts +182 -0
- package/src/domains/context/codewiki/indexer.ts +59 -144
- package/src/domains/context/codewiki/paths.ts +67 -0
- package/src/domains/context/codewiki/schema.ts +80 -0
- package/src/domains/context/codewiki/tree-sitter.ts +1 -1
- package/src/domains/context/contract.ts +11 -5
- package/src/domains/context/extension.ts +94 -143
- package/src/domains/context/fingerprint.ts +3 -1
- package/src/domains/context/index.ts +12 -22
- package/src/domains/context/project-metadata.ts +19 -0
- package/src/domains/context/prompt-context.ts +9 -10
- package/src/domains/context/refresh.ts +29 -21
- package/src/domains/context/runtime.ts +17 -0
- package/src/domains/context/wiki/generate.ts +39 -34
- package/src/domains/context/wiki/plan.ts +1 -1
- package/src/domains/context/wiki/prompts.ts +21 -8
- package/src/domains/dispatch/code-step.ts +20 -1
- package/src/domains/dispatch/extension.ts +158 -21
- package/src/domains/dispatch/failure-classification.ts +6 -0
- package/src/domains/dispatch/fleet-commit-attribution.ts +56 -0
- package/src/domains/dispatch/orphan-recovery.ts +50 -8
- package/src/domains/dispatch/receipt-integrity.ts +5 -0
- package/src/domains/dispatch/state.ts +31 -6
- package/src/domains/dispatch/transport.ts +2 -1
- package/src/domains/dispatch/types.ts +14 -0
- package/src/domains/dispatch/worker-spawn.ts +21 -2
- package/src/domains/eval/metrics/context.ts +1 -1
- package/src/domains/eval/types.ts +0 -1
- package/src/domains/evidence/build.ts +41 -1
- package/src/domains/lifecycle/migrations/2026-08-18-lmstudio-runtime-id.ts +52 -0
- package/src/domains/lifecycle/migrations/index.ts +24 -4
- package/src/domains/middleware/hooks-io.ts +12 -0
- package/src/domains/middleware/skills-reminder.ts +30 -15
- package/src/domains/prompts/compiler.ts +142 -84
- package/src/domains/prompts/contract.ts +18 -2
- package/src/domains/prompts/extension.ts +39 -7
- package/src/domains/prompts/fragment-loader.ts +0 -1
- package/src/domains/prompts/fragments/identity/clio.md +2 -4
- package/src/domains/prompts/fragments/identity/docs-routing.md +10 -0
- package/src/domains/prompts/fragments/identity/self-awareness.md +1 -45
- package/src/domains/prompts/fragments/operating/contract.md +4 -50
- package/src/domains/prompts/fragments/operating/delegation.md +42 -0
- package/src/domains/prompts/fragments/operating/skills.md +26 -0
- package/src/domains/prompts/fragments/operating/worker.md +16 -0
- package/src/domains/prompts/fragments/safety/auto-edit.md +5 -5
- package/src/domains/prompts/fragments/safety/full-auto.md +3 -3
- package/src/domains/prompts/fragments/safety/read-only.md +4 -4
- package/src/domains/prompts/fragments/safety/suggest.md +2 -2
- package/src/domains/prompts/fragments/wiki/page.md +10 -0
- package/src/domains/prompts/fragments/wiki/plan.md +10 -0
- package/src/domains/prompts/preload.ts +3 -3
- package/src/domains/providers/auth/api-key.ts +1 -1
- package/src/domains/providers/auth/backend-file.ts +20 -10
- package/src/domains/providers/auth/backend-memory.ts +59 -4
- package/src/domains/providers/auth/boot-status.ts +65 -0
- package/src/domains/providers/auth/oauth.ts +2 -1
- package/src/domains/providers/auth/storage.ts +97 -38
- package/src/domains/providers/capabilities.ts +12 -4
- package/src/domains/providers/contract.ts +15 -4
- package/src/domains/providers/extension.ts +18 -6
- package/src/domains/providers/model-runtime-capabilities.ts +15 -4
- package/src/domains/providers/models/local-models/clio-local-coding-targets.yaml +118 -35
- package/src/domains/providers/plugins.ts +5 -3
- package/src/domains/providers/probe/fingerprint.ts +25 -5
- package/src/domains/providers/registry.ts +31 -10
- package/src/domains/providers/runtimes/boot-manifest.ts +55 -0
- package/src/domains/providers/runtimes/builtins.ts +2 -2
- package/src/domains/providers/runtimes/common/lmstudio-http.ts +423 -0
- package/src/domains/providers/runtimes/common/local-synth.ts +6 -7
- package/src/domains/providers/runtimes/local-native/lmstudio.ts +241 -0
- package/src/domains/providers/support.ts +6 -3
- package/src/domains/providers/types/local-model-quirks.ts +7 -9
- package/src/domains/providers/types/runtime-descriptor.ts +12 -1
- package/src/domains/providers/types/target-descriptor.ts +22 -0
- package/src/domains/resources/contract.ts +0 -1
- package/src/domains/resources/extension.ts +1 -3
- package/src/domains/resources/loader.ts +3 -4
- package/src/domains/resources/prompts/loader.ts +16 -2
- package/src/domains/resources/prompts/substitute.ts +1 -65
- package/src/domains/resources/skills/content-hash.ts +2 -0
- package/src/domains/resources/skills/install.ts +17 -0
- package/src/domains/resources/skills/loader.ts +17 -10
- package/src/domains/resources/skills/marketplace.ts +55 -9
- package/src/domains/safety/action-classifier.ts +4 -2
- package/src/domains/safety/audit.ts +8 -2
- package/src/domains/safety/extension.ts +1 -1
- package/src/domains/session/compaction/branch-summary.ts +3 -2
- package/src/domains/session/compaction/cut-point.ts +2 -1
- package/src/domains/session/compaction/tokens.ts +2 -1
- package/src/domains/session/context-ledger.ts +14 -0
- package/src/domains/session/contract.ts +15 -0
- package/src/domains/session/decision-board.ts +190 -0
- package/src/domains/session/entries.ts +66 -3
- package/src/domains/session/extension.ts +93 -12
- package/src/domains/session/retry.ts +10 -18
- package/src/domains/session/session-artifacts.ts +107 -0
- package/src/domains/session/task-board.ts +207 -13
- package/src/domains/session/tree/active-path.ts +44 -5
- package/src/domains/session/tree/fork.ts +26 -27
- package/src/domains/session/tree/preview.ts +2 -2
- package/src/domains/session/workspace/git-probe.ts +17 -11
- package/src/domains/user-tasks/store.ts +297 -0
- package/src/engine/acp/errors.ts +96 -0
- package/src/engine/acp/server.ts +1728 -146
- package/src/engine/acp/transport.ts +135 -14
- package/src/engine/acp/types.ts +26 -0
- package/src/engine/agent.ts +3 -3
- package/src/engine/ai.ts +32 -27
- package/src/engine/alcf-oauth.ts +26 -19
- package/src/engine/api-registry.ts +223 -0
- package/src/engine/apis/index.ts +3 -7
- package/src/engine/apis/llamacpp-residency.ts +49 -9
- package/src/engine/apis/lmstudio-residency.ts +5 -21
- package/src/engine/apis/lmstudio.ts +243 -0
- package/src/engine/apis/ollama-native.ts +24 -3
- package/src/engine/apis/openai-completions.ts +170 -91
- package/src/engine/apis/residency.ts +139 -3
- package/src/engine/apis/types.ts +16 -0
- package/src/engine/env-api-keys.ts +98 -0
- package/src/engine/gemma-channel-filter.ts +223 -0
- package/src/engine/instrumented-tui.ts +192 -0
- package/src/engine/messages.ts +14 -0
- package/src/engine/models.ts +42 -0
- package/src/engine/oauth.ts +16 -12
- package/src/engine/prompt-templates.ts +1 -0
- package/src/engine/provider-payload.ts +16 -59
- package/src/engine/strip-tokenizer-sentinels.ts +1 -1
- package/src/engine/truncate.ts +9 -0
- package/src/engine/tui.ts +17 -9
- package/src/engine/types.ts +3 -6
- package/src/engine/worker-runtime-capabilities.ts +5 -0
- package/src/engine/worker-runtime.ts +1 -1
- package/src/engine/worker-tools.ts +9 -4
- package/src/entry/boot-options.ts +50 -0
- package/src/entry/orchestrator.ts +288 -150
- package/src/interactive/application-controller.ts +89 -2
- package/src/interactive/chat-loop.ts +266 -41
- package/src/interactive/chat-panel.ts +173 -47
- package/src/interactive/chat-renderer.ts +262 -72
- package/src/interactive/clio-editor.ts +3 -8
- package/src/interactive/command-fallbacks.ts +2 -2
- package/src/interactive/context-overlay.ts +27 -1
- package/src/interactive/editor-submit.ts +228 -24
- package/src/interactive/export-html/ansi-to-html.ts +161 -0
- package/src/interactive/export-html/index.ts +51 -0
- package/src/interactive/export-html/template.ts +45 -0
- package/src/interactive/export-html/tool-renderer.ts +54 -0
- package/src/interactive/footer/dashboard.ts +4 -0
- package/src/interactive/footer/notifications.ts +1 -1
- package/src/interactive/footer/widgets.ts +20 -2
- package/src/interactive/footer-panel.ts +2 -2
- package/src/interactive/format-time.ts +14 -2
- package/src/interactive/interactive-application.ts +201 -17
- package/src/interactive/interactive-event-projection.ts +6 -1
- package/src/interactive/interactive-input-runtime.ts +50 -4
- package/src/interactive/interactive-presentation.ts +151 -19
- package/src/interactive/interactive-shell.ts +268 -14
- package/src/interactive/interactive-slash-runtime.ts +176 -114
- package/src/interactive/interactive-tickers.ts +38 -7
- package/src/interactive/keybinding-manager.ts +1 -1
- package/src/interactive/layout.ts +40 -3
- package/src/interactive/overlay-frame.ts +1 -1
- package/src/interactive/overlay-general-openers.ts +58 -1
- package/src/interactive/overlay-key-routing.ts +3 -0
- package/src/interactive/overlay-lifecycle.ts +13 -0
- package/src/interactive/overlay-permission-lifecycle.ts +2 -1
- package/src/interactive/overlay-session-lifecycle.ts +69 -12
- package/src/interactive/overlays/decisions.ts +300 -0
- package/src/interactive/overlays/help-reference.ts +15 -10
- package/src/interactive/overlays/model-selector.ts +34 -16
- package/src/interactive/overlays/session-selector.ts +18 -0
- package/src/interactive/overlays/settings.ts +105 -17
- package/src/interactive/overlays/skills-hub.ts +4 -4
- package/src/interactive/overlays/tree-selector.ts +41 -6
- package/src/interactive/render-trace.ts +499 -90
- package/src/interactive/renderers/compaction-summary.ts +2 -2
- package/src/interactive/renderers/diff.ts +115 -104
- package/src/interactive/renderers/mermaid.ts +53 -0
- package/src/interactive/renderers/tool-execution.ts +386 -133
- package/src/interactive/renderers/worker-entry.ts +20 -4
- package/src/interactive/session-switch-settlement.ts +10 -0
- package/src/interactive/slash-autocomplete.ts +6 -114
- package/src/interactive/slash-commands.ts +135 -47
- package/src/interactive/slash-spec.ts +9 -38
- package/src/interactive/status/controller.ts +5 -1
- package/src/interactive/stdout-backpressure.ts +99 -0
- package/src/interactive/stream-pacer.ts +530 -0
- package/src/interactive/stream-pacing-policy.ts +66 -0
- package/src/interactive/tasks-overlay.ts +368 -14
- package/src/interactive/terminal-lease.ts +485 -0
- package/src/interactive/theme/tokens.ts +1 -1
- package/src/interactive/turn-context.ts +4 -3
- package/src/interactive/turn-persistence.ts +30 -13
- package/src/interactive/turn-queues.ts +12 -0
- package/src/interactive/turn-recovery.ts +25 -8
- package/src/interactive/turn-runtime.ts +79 -12
- package/src/interactive/turn-state.ts +10 -0
- package/src/interactive/view/artifacts.ts +114 -4
- package/src/interactive/view/view-overlay.ts +3 -0
- package/src/interactive/welcome-dashboard.ts +17 -16
- package/src/interactive/worker-receipts.ts +52 -3
- package/src/interactive/worker-stream.ts +5 -1
- package/src/tools/agent-tools.ts +23 -3
- package/src/tools/artifact.ts +2 -2
- package/src/tools/ask-user.ts +23 -13
- package/src/tools/bash.ts +30 -2
- package/src/tools/bootstrap.ts +34 -431
- package/src/tools/builtin-tool-catalog.ts +265 -0
- package/src/tools/codewiki/code-nav-surface.ts +29 -0
- package/src/tools/codewiki/code-nav.ts +8 -22
- package/src/tools/codewiki/shared.ts +41 -38
- package/src/tools/context/docs-engine.ts +14 -3
- package/src/tools/context/index.ts +107 -28
- package/src/tools/context/surface.ts +19 -0
- package/src/tools/core-bootstrap.ts +168 -0
- package/src/tools/credential-present.ts +5 -5
- package/src/tools/dispatch-admission.ts +533 -0
- package/src/tools/dispatch-background.ts +54 -0
- package/src/tools/dispatch-event-text.ts +6 -0
- package/src/tools/dispatch-plan.ts +9 -4
- package/src/tools/dispatch-run-events.ts +238 -0
- package/src/tools/dispatch-runner.ts +2370 -0
- package/src/tools/dispatch-scout-admission.ts +295 -0
- package/src/tools/dispatch-types.ts +77 -0
- package/src/tools/dispatch.ts +67 -3161
- package/src/tools/find.ts +4 -2
- package/src/tools/grep.ts +2 -2
- package/src/tools/lazy-tool.ts +60 -0
- package/src/tools/ledger.ts +3 -3
- package/src/tools/monitor-surface.ts +36 -0
- package/src/tools/monitor.ts +2 -32
- package/src/tools/observers.ts +2 -2
- package/src/tools/registry.ts +39 -27
- package/src/tools/safe-exec.ts +2 -2
- package/src/tools/steer-surface.ts +17 -0
- package/src/tools/steer.ts +2 -13
- package/src/tools/tasks.ts +108 -11
- package/src/tools/truncate.ts +25 -184
- package/src/tools/verify/frontend.ts +3 -1
- package/src/tools/verify/index.ts +3 -38
- package/src/tools/verify/surface.ts +46 -0
- package/src/tools/web-fetch-surface.ts +23 -0
- package/src/tools/web-fetch.ts +2 -20
- package/src/tools/write.ts +7 -2
- package/src/worker/entry.ts +39 -2
- package/src/worker/spec-contract.ts +26 -5
- package/dist/chunk-7SS2CTV2.js +0 -61361
- package/dist/chunk-DKGKUHFA.js +0 -924
- package/dist/chunk-GEP36Y4X.js +0 -12796
- package/dist/chunk-XYWBQRDM.js +0 -137
- package/dist/clio-BZVGEUFJ.js +0 -58
- package/dist/configure-S7S6F6CL.js +0 -32
- package/docs/html/agents_blueprint.html +0 -936
- package/docs/html/alcf_blueprint.html +0 -324
- package/docs/html/architecture_blueprint.html +0 -850
- package/docs/html/commands_blueprint.html +0 -939
- package/docs/html/config_knobs_audit_blueprint.html +0 -178
- package/docs/html/configuration_blueprint.html +0 -1080
- package/docs/html/context_blueprint.html +0 -603
- package/docs/html/documentation_blueprint.html +0 -832
- package/docs/html/environment_blueprint.html +0 -404
- package/docs/html/eval_blueprint.html +0 -743
- package/docs/html/evals_internal_blueprint.html +0 -190
- package/docs/html/evolution_blueprint.html +0 -674
- package/docs/html/extensions_blueprint.html +0 -2065
- package/docs/html/fleet_dispatch_blueprint.html +0 -286
- package/docs/html/index.html +0 -919
- package/docs/html/lifecycle_blueprint.html +0 -723
- package/docs/html/memory_blueprint.html +0 -699
- package/docs/html/middleware_blueprint.html +0 -664
- package/docs/html/models_blueprint.html +0 -2366
- package/docs/html/observability_blueprint.html +0 -683
- package/docs/html/provider_adapter_blueprint.html +0 -245
- package/docs/html/safety_blueprint.html +0 -1386
- package/docs/html/shared.css +0 -571
- package/docs/html/shared.js +0 -143
- package/docs/html/skills_blueprint.html +0 -671
- package/docs/html/soak_blueprint.html +0 -182
- package/docs/html/tool_usage_blueprint.html +0 -350
- package/docs/html/tools_blueprint.html +0 -2249
- package/docs/html/trace_blueprint.html +0 -235
- package/docs/html/tui_design_blueprint.html +0 -374
- package/docs/html/validation_blueprint.html +0 -961
- package/docs/html/worker_dispatch_blueprint.html +0 -231
- package/src/core/release.ts +0 -2
- package/src/domains/providers/runtimes/common/lmstudio-logger.ts +0 -32
- package/src/domains/providers/runtimes/local-native/lmstudio-native.ts +0 -491
- package/src/engine/apis/lmstudio-native.ts +0 -1438
- package/src/engine/apis/thinking-replay.ts +0 -11
- package/src/tools/string-enum.ts +0 -15
|
@@ -5,74 +5,52 @@ import { dirname, join, relative, resolve } from "node:path";
|
|
|
5
5
|
import { classifyCHeaderLanguage, isAmbiguousHeaderPath } from "../../../core/c-header-language.js";
|
|
6
6
|
import { safeResourceWrite } from "../../../core/safe-resource-write.js";
|
|
7
7
|
import { enumerateWorkspaceFilesAsync, filterWorkspaceFileCandidates } from "../../../core/workspace-files.js";
|
|
8
|
-
import type { ProjectType
|
|
8
|
+
import type { ProjectType } from "../../session/workspace/project-type.js";
|
|
9
9
|
import { EXCLUDED_DIRS } from "../excluded-dirs.js";
|
|
10
10
|
import { extractCMake, isCMakePath } from "./cmake.js";
|
|
11
11
|
import { type CooperativeSlicer, createSlicer } from "./cooperative.js";
|
|
12
|
-
import {
|
|
12
|
+
import { isIndexablePath, languageForPath } from "./paths.js";
|
|
13
|
+
import {
|
|
14
|
+
type BuildCodewikiInput,
|
|
15
|
+
CODEWIKI_VERSION,
|
|
16
|
+
type Codewiki,
|
|
17
|
+
type CodewikiEdge,
|
|
18
|
+
type CodewikiEntry,
|
|
19
|
+
type CodewikiExternalEdge,
|
|
20
|
+
type CodewikiFile,
|
|
21
|
+
type CodewikiFileRole,
|
|
22
|
+
type CodewikiInternalEdge,
|
|
23
|
+
type CodewikiLanguage,
|
|
24
|
+
type CodewikiReadFile,
|
|
25
|
+
type CodewikiSymbol,
|
|
26
|
+
type CodewikiSymbolKind,
|
|
27
|
+
type ExtractedSymbol,
|
|
28
|
+
type LanguageExtraction,
|
|
29
|
+
type LanguageExtractor,
|
|
30
|
+
} from "./schema.js";
|
|
31
|
+
import type { TreeSitterExtractor } from "./tree-sitter.js";
|
|
32
|
+
|
|
33
|
+
export {
|
|
34
|
+
type BuildCodewikiInput,
|
|
35
|
+
CODEWIKI_VERSION,
|
|
36
|
+
type Codewiki,
|
|
37
|
+
type CodewikiEdge,
|
|
38
|
+
type CodewikiEntry,
|
|
39
|
+
type CodewikiExternalEdge,
|
|
40
|
+
type CodewikiFile,
|
|
41
|
+
type CodewikiFileRole,
|
|
42
|
+
type CodewikiInternalEdge,
|
|
43
|
+
type CodewikiLanguage,
|
|
44
|
+
type CodewikiReadFile,
|
|
45
|
+
type CodewikiSymbol,
|
|
46
|
+
type CodewikiSymbolKind,
|
|
47
|
+
type ExtractedSymbol,
|
|
48
|
+
type LanguageExtraction,
|
|
49
|
+
type LanguageExtractor,
|
|
50
|
+
} from "./schema.js";
|
|
13
51
|
|
|
14
|
-
export type CodewikiLanguage = SourceProjectType | "config";
|
|
15
|
-
export type CodewikiFileRole = "entry" | "test" | "module" | "config";
|
|
16
|
-
export type CodewikiSymbolKind = "func" | "class" | "method" | "type" | "const" | "var" | "trait" | "iface";
|
|
17
52
|
const CODEWIKI_SYMBOL_KINDS_WITH_SIG = new Set<CodewikiSymbolKind>(["func", "class", "method", "type"]);
|
|
18
53
|
|
|
19
|
-
export interface CodewikiFile {
|
|
20
|
-
id: string;
|
|
21
|
-
path: string;
|
|
22
|
-
lang: CodewikiLanguage;
|
|
23
|
-
loc: number;
|
|
24
|
-
role: CodewikiFileRole;
|
|
25
|
-
hash: string;
|
|
26
|
-
imports: string[];
|
|
27
|
-
summary?: string;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export interface CodewikiSymbol {
|
|
31
|
-
name: string;
|
|
32
|
-
kind: CodewikiSymbolKind;
|
|
33
|
-
fileId: string;
|
|
34
|
-
line: number;
|
|
35
|
-
sig?: string;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export interface CodewikiInternalEdge {
|
|
39
|
-
fileId: string;
|
|
40
|
-
toFileId: string;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
export interface CodewikiExternalEdge {
|
|
44
|
-
fileId: string;
|
|
45
|
-
externalModule: string;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
export type CodewikiEdge = CodewikiInternalEdge | CodewikiExternalEdge;
|
|
49
|
-
|
|
50
|
-
export const CODEWIKI_VERSION = 5 as const;
|
|
51
|
-
|
|
52
|
-
export interface Codewiki {
|
|
53
|
-
version: typeof CODEWIKI_VERSION;
|
|
54
|
-
language: ProjectType;
|
|
55
|
-
files: CodewikiFile[];
|
|
56
|
-
symbols: CodewikiSymbol[];
|
|
57
|
-
edges: CodewikiEdge[];
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
export interface CodewikiEntry {
|
|
61
|
-
path: string;
|
|
62
|
-
exports: string[];
|
|
63
|
-
imports: string[];
|
|
64
|
-
kind: "entry-point" | "test" | "module";
|
|
65
|
-
summary?: string;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
export interface BuildCodewikiInput {
|
|
69
|
-
cwd: string;
|
|
70
|
-
language: ProjectType;
|
|
71
|
-
generatedAt?: string;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
export type CodewikiReadFile = (path: string) => string | null;
|
|
75
|
-
|
|
76
54
|
export interface CodewikiBuildOptions {
|
|
77
55
|
readFile?: CodewikiReadFile;
|
|
78
56
|
/**
|
|
@@ -83,71 +61,15 @@ export interface CodewikiBuildOptions {
|
|
|
83
61
|
slicer?: CooperativeSlicer;
|
|
84
62
|
}
|
|
85
63
|
|
|
86
|
-
export interface ExtractedSymbol {
|
|
87
|
-
name: string;
|
|
88
|
-
kind: CodewikiSymbolKind;
|
|
89
|
-
line: number;
|
|
90
|
-
sig?: string;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
export interface LanguageExtraction {
|
|
94
|
-
symbols: ExtractedSymbol[];
|
|
95
|
-
imports: string[];
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
export interface LanguageExtractor {
|
|
99
|
-
langs: ReadonlyArray<CodewikiLanguage>;
|
|
100
|
-
extractImports?(path: string, text: string): string[];
|
|
101
|
-
extract(path: string, text: string): LanguageExtraction;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
64
|
let treeSitterExtractorPromise: Promise<TreeSitterExtractor> | null = null;
|
|
105
65
|
|
|
106
66
|
function loadTreeSitterExtractor(): Promise<TreeSitterExtractor> {
|
|
107
|
-
treeSitterExtractorPromise ??=
|
|
67
|
+
treeSitterExtractorPromise ??= import("./tree-sitter.js").then(({ createTreeSitterExtractor }) =>
|
|
68
|
+
createTreeSitterExtractor(),
|
|
69
|
+
);
|
|
108
70
|
return treeSitterExtractorPromise;
|
|
109
71
|
}
|
|
110
72
|
|
|
111
|
-
const SOURCE_EXTENSIONS = new Map<string, SourceProjectType>([
|
|
112
|
-
[".ts", "typescript"],
|
|
113
|
-
[".tsx", "typescript"],
|
|
114
|
-
[".mts", "typescript"],
|
|
115
|
-
[".cts", "typescript"],
|
|
116
|
-
[".js", "javascript"],
|
|
117
|
-
[".jsx", "javascript"],
|
|
118
|
-
[".mjs", "javascript"],
|
|
119
|
-
[".cjs", "javascript"],
|
|
120
|
-
[".py", "python"],
|
|
121
|
-
[".pyw", "python"],
|
|
122
|
-
[".rs", "rust"],
|
|
123
|
-
[".go", "go"],
|
|
124
|
-
[".c", "c"],
|
|
125
|
-
[".h", "c"],
|
|
126
|
-
[".cc", "c++"],
|
|
127
|
-
[".cpp", "c++"],
|
|
128
|
-
[".cxx", "c++"],
|
|
129
|
-
[".hpp", "c++"],
|
|
130
|
-
[".hh", "c++"],
|
|
131
|
-
[".hxx", "c++"],
|
|
132
|
-
[".cu", "c++"],
|
|
133
|
-
[".cuh", "c++"],
|
|
134
|
-
[".java", "java"],
|
|
135
|
-
[".rb", "ruby"],
|
|
136
|
-
[".cs", "c#"],
|
|
137
|
-
]);
|
|
138
|
-
|
|
139
|
-
const CONFIG_FILE_NAMES = new Set([
|
|
140
|
-
"package.json",
|
|
141
|
-
"pyproject.toml",
|
|
142
|
-
"setup.py",
|
|
143
|
-
"Cargo.toml",
|
|
144
|
-
"go.mod",
|
|
145
|
-
"pom.xml",
|
|
146
|
-
"CMakeLists.txt",
|
|
147
|
-
"compile_commands.json",
|
|
148
|
-
"Gemfile",
|
|
149
|
-
]);
|
|
150
|
-
|
|
151
73
|
const RESOLUTION_EXTENSIONS = [
|
|
152
74
|
".ts",
|
|
153
75
|
".tsx",
|
|
@@ -195,11 +117,6 @@ function defaultReadFile(path: string): string | null {
|
|
|
195
117
|
}
|
|
196
118
|
}
|
|
197
119
|
|
|
198
|
-
function extensionOf(name: string): string {
|
|
199
|
-
const index = name.lastIndexOf(".");
|
|
200
|
-
return index === -1 ? "" : name.slice(index);
|
|
201
|
-
}
|
|
202
|
-
|
|
203
120
|
function normalizeRel(cwd: string, filePath: string): string {
|
|
204
121
|
return relative(cwd, filePath).split("\\").join("/");
|
|
205
122
|
}
|
|
@@ -208,24 +125,7 @@ function normalizeInputPath(path: string): string {
|
|
|
208
125
|
return path.split("\\").join("/").replace(/^\.\//, "");
|
|
209
126
|
}
|
|
210
127
|
|
|
211
|
-
|
|
212
|
-
if (relPath.endsWith(".d.ts")) return null;
|
|
213
|
-
return SOURCE_EXTENSIONS.get(extensionOf(relPath)) ?? null;
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
function languageForPath(relPath: string): CodewikiLanguage | null {
|
|
217
|
-
const source = sourceLanguageForPath(relPath);
|
|
218
|
-
if (source) return source;
|
|
219
|
-
const name = relPath.split("/").pop() ?? relPath;
|
|
220
|
-
return CONFIG_FILE_NAMES.has(name) || name.endsWith(".csproj") || name.toLowerCase().endsWith(".cmake")
|
|
221
|
-
? "config"
|
|
222
|
-
: null;
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
export function isIndexablePath(relPath: string): boolean {
|
|
226
|
-
if (relPath.split("/").some((segment) => EXCLUDED_DIRS.has(segment))) return false;
|
|
227
|
-
return languageForPath(relPath) !== null;
|
|
228
|
-
}
|
|
128
|
+
export { isIndexablePath } from "./paths.js";
|
|
229
129
|
|
|
230
130
|
function lineCount(text: string): number {
|
|
231
131
|
if (text.length === 0) return 0;
|
|
@@ -856,6 +756,20 @@ export function fallbackExtraction(language: CodewikiLanguage, relPath: string,
|
|
|
856
756
|
return extractWithExtractors(fallbackExtractors, language, relPath, text);
|
|
857
757
|
}
|
|
858
758
|
|
|
759
|
+
/**
|
|
760
|
+
* Largest source text handed to tree-sitter. The cooperative slicer yields
|
|
761
|
+
* between files, never inside one, so a single parse is the longest stretch the
|
|
762
|
+
* event loop can be held for; measured on this machine that is roughly 0.5 ms
|
|
763
|
+
* per KiB of ordinary source and 2 to 3 ms per KiB of a minified bundle, which
|
|
764
|
+
* made one 9 MiB vendored bundle a 25 s freeze that no shutdown budget could
|
|
765
|
+
* interrupt (issue #99). Nothing hand-written is this big; anything above the
|
|
766
|
+
* cap is generated or vendored, and the regex extractor covers it in tens of
|
|
767
|
+
* milliseconds. Under the cap one parse of ordinary source is a few hundred
|
|
768
|
+
* milliseconds at most; a minified file right at the cap can still take about a
|
|
769
|
+
* second, which is bounded, and the loop gets its turn at the next file.
|
|
770
|
+
*/
|
|
771
|
+
export const MAX_TREE_SITTER_SOURCE_CHARS = 512 * 1024;
|
|
772
|
+
|
|
859
773
|
function extractSourceFile(
|
|
860
774
|
language: CodewikiLanguage,
|
|
861
775
|
relPath: string,
|
|
@@ -863,6 +777,7 @@ function extractSourceFile(
|
|
|
863
777
|
treeSitterExtractor: LanguageExtractor,
|
|
864
778
|
): LanguageExtraction {
|
|
865
779
|
if (!treeSitterExtractor.langs.includes(language)) return fallbackExtraction(language, relPath, text);
|
|
780
|
+
if (text.length > MAX_TREE_SITTER_SOURCE_CHARS) return fallbackExtraction(language, relPath, text);
|
|
866
781
|
try {
|
|
867
782
|
return mergeTreeSitterWithRegexImports(language, relPath, text, treeSitterExtractor.extract(relPath, text));
|
|
868
783
|
} catch {
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { SourceProjectType } from "../../session/workspace/project-type.js";
|
|
2
|
+
import { EXCLUDED_DIRS } from "../excluded-dirs.js";
|
|
3
|
+
import type { CodewikiLanguage } from "./schema.js";
|
|
4
|
+
|
|
5
|
+
const SOURCE_EXTENSIONS = new Map<string, SourceProjectType>([
|
|
6
|
+
[".ts", "typescript"],
|
|
7
|
+
[".tsx", "typescript"],
|
|
8
|
+
[".mts", "typescript"],
|
|
9
|
+
[".cts", "typescript"],
|
|
10
|
+
[".js", "javascript"],
|
|
11
|
+
[".jsx", "javascript"],
|
|
12
|
+
[".mjs", "javascript"],
|
|
13
|
+
[".cjs", "javascript"],
|
|
14
|
+
[".py", "python"],
|
|
15
|
+
[".pyw", "python"],
|
|
16
|
+
[".rs", "rust"],
|
|
17
|
+
[".go", "go"],
|
|
18
|
+
[".c", "c"],
|
|
19
|
+
[".h", "c"],
|
|
20
|
+
[".cc", "c++"],
|
|
21
|
+
[".cpp", "c++"],
|
|
22
|
+
[".cxx", "c++"],
|
|
23
|
+
[".hpp", "c++"],
|
|
24
|
+
[".hh", "c++"],
|
|
25
|
+
[".hxx", "c++"],
|
|
26
|
+
[".cu", "c++"],
|
|
27
|
+
[".cuh", "c++"],
|
|
28
|
+
[".java", "java"],
|
|
29
|
+
[".rb", "ruby"],
|
|
30
|
+
[".cs", "c#"],
|
|
31
|
+
]);
|
|
32
|
+
|
|
33
|
+
const CONFIG_FILE_NAMES = new Set([
|
|
34
|
+
"package.json",
|
|
35
|
+
"pyproject.toml",
|
|
36
|
+
"setup.py",
|
|
37
|
+
"Cargo.toml",
|
|
38
|
+
"go.mod",
|
|
39
|
+
"pom.xml",
|
|
40
|
+
"CMakeLists.txt",
|
|
41
|
+
"compile_commands.json",
|
|
42
|
+
"Gemfile",
|
|
43
|
+
]);
|
|
44
|
+
|
|
45
|
+
function extensionOf(name: string): string {
|
|
46
|
+
const index = name.lastIndexOf(".");
|
|
47
|
+
return index === -1 ? "" : name.slice(index);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function sourceLanguageForPath(relPath: string): SourceProjectType | null {
|
|
51
|
+
if (relPath.endsWith(".d.ts")) return null;
|
|
52
|
+
return SOURCE_EXTENSIONS.get(extensionOf(relPath)) ?? null;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export function languageForPath(relPath: string): CodewikiLanguage | null {
|
|
56
|
+
const source = sourceLanguageForPath(relPath);
|
|
57
|
+
if (source) return source;
|
|
58
|
+
const name = relPath.split("/").pop() ?? relPath;
|
|
59
|
+
return CONFIG_FILE_NAMES.has(name) || name.endsWith(".csproj") || name.toLowerCase().endsWith(".cmake")
|
|
60
|
+
? "config"
|
|
61
|
+
: null;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export function isIndexablePath(relPath: string): boolean {
|
|
65
|
+
if (relPath.split("/").some((segment) => EXCLUDED_DIRS.has(segment))) return false;
|
|
66
|
+
return languageForPath(relPath) !== null;
|
|
67
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import type { ProjectType, SourceProjectType } from "../../session/workspace/project-type.js";
|
|
2
|
+
|
|
3
|
+
export type CodewikiLanguage = SourceProjectType | "config";
|
|
4
|
+
export type CodewikiFileRole = "entry" | "test" | "module" | "config";
|
|
5
|
+
export type CodewikiSymbolKind = "func" | "class" | "method" | "type" | "const" | "var" | "trait" | "iface";
|
|
6
|
+
|
|
7
|
+
export interface CodewikiFile {
|
|
8
|
+
id: string;
|
|
9
|
+
path: string;
|
|
10
|
+
lang: CodewikiLanguage;
|
|
11
|
+
loc: number;
|
|
12
|
+
role: CodewikiFileRole;
|
|
13
|
+
hash: string;
|
|
14
|
+
imports: string[];
|
|
15
|
+
summary?: string;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export interface CodewikiSymbol {
|
|
19
|
+
name: string;
|
|
20
|
+
kind: CodewikiSymbolKind;
|
|
21
|
+
fileId: string;
|
|
22
|
+
line: number;
|
|
23
|
+
sig?: string;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export interface CodewikiInternalEdge {
|
|
27
|
+
fileId: string;
|
|
28
|
+
toFileId: string;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export interface CodewikiExternalEdge {
|
|
32
|
+
fileId: string;
|
|
33
|
+
externalModule: string;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export type CodewikiEdge = CodewikiInternalEdge | CodewikiExternalEdge;
|
|
37
|
+
|
|
38
|
+
export const CODEWIKI_VERSION = 5 as const;
|
|
39
|
+
|
|
40
|
+
export interface Codewiki {
|
|
41
|
+
version: typeof CODEWIKI_VERSION;
|
|
42
|
+
language: ProjectType;
|
|
43
|
+
files: CodewikiFile[];
|
|
44
|
+
symbols: CodewikiSymbol[];
|
|
45
|
+
edges: CodewikiEdge[];
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export interface CodewikiEntry {
|
|
49
|
+
path: string;
|
|
50
|
+
exports: string[];
|
|
51
|
+
imports: string[];
|
|
52
|
+
kind: "entry-point" | "test" | "module";
|
|
53
|
+
summary?: string;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export interface BuildCodewikiInput {
|
|
57
|
+
cwd: string;
|
|
58
|
+
language: ProjectType;
|
|
59
|
+
generatedAt?: string;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export type CodewikiReadFile = (path: string) => string | null;
|
|
63
|
+
|
|
64
|
+
export interface ExtractedSymbol {
|
|
65
|
+
name: string;
|
|
66
|
+
kind: CodewikiSymbolKind;
|
|
67
|
+
line: number;
|
|
68
|
+
sig?: string;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export interface LanguageExtraction {
|
|
72
|
+
symbols: ExtractedSymbol[];
|
|
73
|
+
imports: string[];
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export interface LanguageExtractor {
|
|
77
|
+
langs: ReadonlyArray<CodewikiLanguage>;
|
|
78
|
+
extractImports?(path: string, text: string): string[];
|
|
79
|
+
extract(path: string, text: string): LanguageExtraction;
|
|
80
|
+
}
|
|
@@ -9,10 +9,16 @@ export interface ProjectPromptContext {
|
|
|
9
9
|
text: string;
|
|
10
10
|
clioMd: ParsedClioMd | null;
|
|
11
11
|
warnings: string[];
|
|
12
|
+
/**
|
|
13
|
+
* Absolute paths of the effective project handbooks, ancestor to nearest.
|
|
14
|
+
* An override resets the inherited chain, so this names exactly the files
|
|
15
|
+
* whose content is in `text`; empty when no selected handbook parsed.
|
|
16
|
+
*/
|
|
17
|
+
handbookFiles: string[];
|
|
12
18
|
}
|
|
13
19
|
|
|
14
20
|
/**
|
|
15
|
-
* Structured
|
|
21
|
+
* Structured fields from the effective layered project handbook for bounded injection into worker prompts.
|
|
16
22
|
* Deliberately excludes the identity paragraph and any raw handbook prose.
|
|
17
23
|
*/
|
|
18
24
|
export interface ProjectStructuredContext {
|
|
@@ -20,7 +26,7 @@ export interface ProjectStructuredContext {
|
|
|
20
26
|
conventions: ReadonlyArray<string>;
|
|
21
27
|
invariants: ReadonlyArray<string>;
|
|
22
28
|
/**
|
|
23
|
-
*
|
|
29
|
+
* Bodies of effective handbook H2 sections titled exactly "Verification expectations"
|
|
24
30
|
* (case-insensitive). The only custom section ever projected to workers;
|
|
25
31
|
* dispatch includes it for verification-class runs only. Absent when the
|
|
26
32
|
* handbook has no such section.
|
|
@@ -37,7 +43,7 @@ export interface ContextContract extends DomainContract {
|
|
|
37
43
|
runBootstrap(input?: RunBootstrapInput): Promise<RunBootstrapResult>;
|
|
38
44
|
runContextClear(input?: RunContextClearInput): Promise<RunContextClearResult>;
|
|
39
45
|
/**
|
|
40
|
-
* Rebuild the codewiki index and `.clio-coder` state without touching
|
|
46
|
+
* Rebuild the codewiki index and `.clio-coder` state without touching project handbooks.
|
|
41
47
|
* Markdown wiki updates require the explicit refresh input flag.
|
|
42
48
|
* Backs `/context refresh` and `clio-coder context refresh`.
|
|
43
49
|
*/
|
|
@@ -45,8 +51,8 @@ export interface ContextContract extends DomainContract {
|
|
|
45
51
|
runWikiGenerate(input?: RunWikiGenerateInput): Promise<RunWikiGenerateResult>;
|
|
46
52
|
renderPromptContext(cwd: string): ProjectPromptContext;
|
|
47
53
|
/**
|
|
48
|
-
*
|
|
49
|
-
* or null when
|
|
54
|
+
* Effective project handbook fields (project name, conventions, invariants)
|
|
55
|
+
* or null when no selected handbook parses. Never returns raw handbook
|
|
50
56
|
* text; used by dispatch to give workers bounded project context.
|
|
51
57
|
*/
|
|
52
58
|
projectStructuredContext(cwd?: string): ProjectStructuredContext | null;
|