@nanonets/graft 0.23.1 → 0.24.1
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 +4 -4
- package/dist/ai/crux.d.ts +31 -3
- package/dist/ai/crux.d.ts.map +1 -1
- package/dist/ai/crux.js +88 -10
- package/dist/ai/crux.js.map +1 -1
- package/dist/ai/llm/openai.d.ts +101 -0
- package/dist/ai/llm/openai.d.ts.map +1 -1
- package/dist/ai/llm/openai.js +396 -6
- package/dist/ai/llm/openai.js.map +1 -1
- package/dist/ai/llm/recover-tool.d.ts +2 -0
- package/dist/ai/llm/recover-tool.d.ts.map +1 -1
- package/dist/ai/llm/recover-tool.js +1 -1
- package/dist/ai/llm/recover-tool.js.map +1 -1
- package/dist/ai/synthesize.d.ts.map +1 -1
- package/dist/ai/synthesize.js +100 -1
- package/dist/ai/synthesize.js.map +1 -1
- package/dist/ask/ask.d.ts +8 -0
- package/dist/ask/ask.d.ts.map +1 -1
- package/dist/ask/ask.js +33 -12
- package/dist/ask/ask.js.map +1 -1
- package/dist/claude/format.js +1 -1
- package/dist/claude/format.js.map +1 -1
- package/dist/claude/hook-io.d.ts +44 -0
- package/dist/claude/hook-io.d.ts.map +1 -0
- package/dist/claude/hook-io.js +144 -0
- package/dist/claude/hook-io.js.map +1 -0
- package/dist/claude/hooks.d.ts +0 -18
- package/dist/claude/hooks.d.ts.map +1 -1
- package/dist/claude/hooks.js +24 -77
- package/dist/claude/hooks.js.map +1 -1
- package/dist/claude/init.js +3 -3
- package/dist/claude/init.js.map +1 -1
- package/dist/claude/note-signals.d.ts +28 -0
- package/dist/claude/note-signals.d.ts.map +1 -0
- package/dist/claude/note-signals.js +325 -0
- package/dist/claude/note-signals.js.map +1 -0
- package/dist/claude/shim-template.d.ts.map +1 -1
- package/dist/claude/shim-template.js +10 -4
- package/dist/claude/shim-template.js.map +1 -1
- package/dist/claude/skill-template.d.ts.map +1 -1
- package/dist/claude/skill-template.js +49 -18
- package/dist/claude/skill-template.js.map +1 -1
- package/dist/claude/skills-hook-util.d.ts +25 -0
- package/dist/claude/skills-hook-util.d.ts.map +1 -0
- package/dist/claude/skills-hook-util.js +71 -0
- package/dist/claude/skills-hook-util.js.map +1 -0
- package/dist/claude/state.d.ts +4 -3
- package/dist/claude/state.d.ts.map +1 -1
- package/dist/claude/state.js.map +1 -1
- package/dist/claude/sync-run.js +1 -1
- package/dist/claude/sync-run.js.map +1 -1
- package/dist/cli-picker.d.ts +36 -5
- package/dist/cli-picker.d.ts.map +1 -1
- package/dist/cli-picker.js +60 -13
- package/dist/cli-picker.js.map +1 -1
- package/dist/cli.d.ts +2 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +406 -64
- package/dist/cli.js.map +1 -1
- package/dist/cloud/lookup-activity.d.ts +16 -0
- package/dist/cloud/lookup-activity.d.ts.map +1 -0
- package/dist/cloud/lookup-activity.js +56 -0
- package/dist/cloud/lookup-activity.js.map +1 -0
- package/dist/cloud/nudge.d.ts.map +1 -1
- package/dist/cloud/nudge.js +3 -0
- package/dist/cloud/nudge.js.map +1 -1
- package/dist/cloud/onboarding.d.ts +237 -0
- package/dist/cloud/onboarding.d.ts.map +1 -0
- package/dist/cloud/onboarding.js +536 -0
- package/dist/cloud/onboarding.js.map +1 -0
- package/dist/cloud/pair.d.ts +76 -0
- package/dist/cloud/pair.d.ts.map +1 -0
- package/dist/cloud/pair.js +249 -0
- package/dist/cloud/pair.js.map +1 -0
- package/dist/cloud/workspace-sync.d.ts +10 -2
- package/dist/cloud/workspace-sync.d.ts.map +1 -1
- package/dist/cloud/workspace-sync.js +119 -7
- package/dist/cloud/workspace-sync.js.map +1 -1
- package/dist/cloud/workspace.d.ts +22 -1
- package/dist/cloud/workspace.d.ts.map +1 -1
- package/dist/cloud/workspace.js +16 -1
- package/dist/cloud/workspace.js.map +1 -1
- package/dist/context/batches.d.ts +29 -0
- package/dist/context/batches.d.ts.map +1 -0
- package/dist/context/batches.js +130 -0
- package/dist/context/batches.js.map +1 -0
- package/dist/context/build.d.ts +7 -2
- package/dist/context/build.d.ts.map +1 -1
- package/dist/context/build.js +84 -50
- package/dist/context/build.js.map +1 -1
- package/dist/context/node-file.d.ts.map +1 -1
- package/dist/context/node-file.js +41 -4
- package/dist/context/node-file.js.map +1 -1
- package/dist/engine.d.ts +2 -0
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +1 -0
- package/dist/engine.js.map +1 -1
- package/dist/graph/cards.d.ts.map +1 -1
- package/dist/graph/cards.js +9 -4
- package/dist/graph/cards.js.map +1 -1
- package/dist/graph/enrich.d.ts.map +1 -1
- package/dist/graph/enrich.js +8 -3
- package/dist/graph/enrich.js.map +1 -1
- package/dist/graph/generic.d.ts.map +1 -1
- package/dist/graph/generic.js +207 -6
- package/dist/graph/generic.js.map +1 -1
- package/dist/graph/lsp/client.d.ts +18 -0
- package/dist/graph/lsp/client.d.ts.map +1 -1
- package/dist/graph/lsp/client.js +40 -2
- package/dist/graph/lsp/client.js.map +1 -1
- package/dist/graph/lsp/enrich.d.ts.map +1 -1
- package/dist/graph/lsp/enrich.js +9 -1
- package/dist/graph/lsp/enrich.js.map +1 -1
- package/dist/graph/lsp/registry.d.ts +7 -0
- package/dist/graph/lsp/registry.d.ts.map +1 -1
- package/dist/graph/lsp/registry.js +27 -2
- package/dist/graph/lsp/registry.js.map +1 -1
- package/dist/graph/native.d.ts +2 -0
- package/dist/graph/native.d.ts.map +1 -1
- package/dist/graph/native.js +29 -4
- package/dist/graph/native.js.map +1 -1
- package/dist/graph/queries/gleam.scm +51 -0
- package/dist/graph/resolve.d.ts.map +1 -1
- package/dist/graph/resolve.js +65 -3
- package/dist/graph/resolve.js.map +1 -1
- package/dist/graph/workspace-cli.d.ts +2 -0
- package/dist/graph/workspace-cli.d.ts.map +1 -1
- package/dist/graph/workspace-cli.js +1 -1
- package/dist/graph/workspace-cli.js.map +1 -1
- package/dist/hosts/claude-global.d.ts +14 -0
- package/dist/hosts/claude-global.d.ts.map +1 -1
- package/dist/hosts/claude-global.js +38 -3
- package/dist/hosts/claude-global.js.map +1 -1
- package/dist/init/install-record.d.ts +21 -0
- package/dist/init/install-record.d.ts.map +1 -0
- package/dist/init/install-record.js +144 -0
- package/dist/init/install-record.js.map +1 -0
- package/dist/init/plain-file.d.ts +11 -0
- package/dist/init/plain-file.d.ts.map +1 -0
- package/dist/init/plain-file.js +80 -0
- package/dist/init/plain-file.js.map +1 -0
- package/dist/mcp/brains.d.ts +72 -0
- package/dist/mcp/brains.d.ts.map +1 -0
- package/dist/mcp/brains.js +220 -0
- package/dist/mcp/brains.js.map +1 -0
- package/dist/mcp/server.d.ts +3 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +40 -5
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +7 -2
- package/dist/mcp/tools.js.map +1 -1
- package/dist/notes/branches.d.ts +7 -1
- package/dist/notes/branches.d.ts.map +1 -1
- package/dist/notes/branches.js +31 -3
- package/dist/notes/branches.js.map +1 -1
- package/dist/notes/cold-start.d.ts +42 -3
- package/dist/notes/cold-start.d.ts.map +1 -1
- package/dist/notes/cold-start.js +144 -24
- package/dist/notes/cold-start.js.map +1 -1
- package/dist/notes/credit.d.ts +37 -0
- package/dist/notes/credit.d.ts.map +1 -0
- package/dist/notes/credit.js +78 -0
- package/dist/notes/credit.js.map +1 -0
- package/dist/notes/every-repo.d.ts +18 -0
- package/dist/notes/every-repo.d.ts.map +1 -0
- package/dist/notes/every-repo.js +86 -0
- package/dist/notes/every-repo.js.map +1 -0
- package/dist/notes/find-notes.d.ts +17 -0
- package/dist/notes/find-notes.d.ts.map +1 -0
- package/dist/notes/find-notes.js +48 -0
- package/dist/notes/find-notes.js.map +1 -0
- package/dist/notes/flatten.d.ts +31 -0
- package/dist/notes/flatten.d.ts.map +1 -0
- package/dist/notes/flatten.js +73 -0
- package/dist/notes/flatten.js.map +1 -0
- package/dist/notes/git-facts.d.ts +2 -0
- package/dist/notes/git-facts.d.ts.map +1 -1
- package/dist/notes/git-facts.js +6 -0
- package/dist/notes/git-facts.js.map +1 -1
- package/dist/notes/guardrails.d.ts +8 -0
- package/dist/notes/guardrails.d.ts.map +1 -0
- package/dist/notes/guardrails.js +38 -0
- package/dist/notes/guardrails.js.map +1 -0
- package/dist/notes/home.d.ts +24 -6
- package/dist/notes/home.d.ts.map +1 -1
- package/dist/notes/home.js +82 -15
- package/dist/notes/home.js.map +1 -1
- package/dist/notes/learning-fields.d.ts +102 -0
- package/dist/notes/learning-fields.d.ts.map +1 -0
- package/dist/notes/learning-fields.js +214 -0
- package/dist/notes/learning-fields.js.map +1 -0
- package/dist/notes/lesson-index.d.ts +13 -0
- package/dist/notes/lesson-index.d.ts.map +1 -0
- package/dist/notes/lesson-index.js +135 -0
- package/dist/notes/lesson-index.js.map +1 -0
- package/dist/notes/linked-learnings.d.ts +8 -0
- package/dist/notes/linked-learnings.d.ts.map +1 -0
- package/dist/notes/linked-learnings.js +113 -0
- package/dist/notes/linked-learnings.js.map +1 -0
- package/dist/notes/memory-notes.d.ts +71 -0
- package/dist/notes/memory-notes.d.ts.map +1 -0
- package/dist/notes/memory-notes.js +239 -0
- package/dist/notes/memory-notes.js.map +1 -0
- package/dist/notes/note-gate.d.ts +42 -0
- package/dist/notes/note-gate.d.ts.map +1 -0
- package/dist/notes/note-gate.js +181 -0
- package/dist/notes/note-gate.js.map +1 -0
- package/dist/notes/notes.d.ts +29 -85
- package/dist/notes/notes.d.ts.map +1 -1
- package/dist/notes/notes.js +69 -254
- package/dist/notes/notes.js.map +1 -1
- package/dist/notes/pr-reviews.d.ts +35 -7
- package/dist/notes/pr-reviews.d.ts.map +1 -1
- package/dist/notes/pr-reviews.js +156 -46
- package/dist/notes/pr-reviews.js.map +1 -1
- package/dist/notes/replace.d.ts +14 -0
- package/dist/notes/replace.d.ts.map +1 -0
- package/dist/notes/replace.js +38 -0
- package/dist/notes/replace.js.map +1 -0
- package/dist/notes/repo-notes-dir.d.ts +2 -0
- package/dist/notes/repo-notes-dir.d.ts.map +1 -0
- package/dist/notes/repo-notes-dir.js +16 -0
- package/dist/notes/repo-notes-dir.js.map +1 -0
- package/dist/notes/secrets.d.ts +28 -0
- package/dist/notes/secrets.d.ts.map +1 -0
- package/dist/notes/secrets.js +362 -0
- package/dist/notes/secrets.js.map +1 -0
- package/dist/notes/targets.d.ts +37 -0
- package/dist/notes/targets.d.ts.map +1 -0
- package/dist/notes/targets.js +108 -0
- package/dist/notes/targets.js.map +1 -0
- package/dist/notes/team-check.d.ts +22 -0
- package/dist/notes/team-check.d.ts.map +1 -0
- package/dist/notes/team-check.js +130 -0
- package/dist/notes/team-check.js.map +1 -0
- package/dist/notes/trail-home.d.ts +3 -0
- package/dist/notes/trail-home.d.ts.map +1 -0
- package/dist/notes/trail-home.js +12 -0
- package/dist/notes/trail-home.js.map +1 -0
- package/dist/skills/anchors-cli.d.ts +33 -0
- package/dist/skills/anchors-cli.d.ts.map +1 -0
- package/dist/skills/anchors-cli.js +274 -0
- package/dist/skills/anchors-cli.js.map +1 -0
- package/dist/skills/anchors-git.d.ts +29 -0
- package/dist/skills/anchors-git.d.ts.map +1 -0
- package/dist/skills/anchors-git.js +241 -0
- package/dist/skills/anchors-git.js.map +1 -0
- package/dist/skills/anchors-wide.d.ts +25 -0
- package/dist/skills/anchors-wide.d.ts.map +1 -0
- package/dist/skills/anchors-wide.js +481 -0
- package/dist/skills/anchors-wide.js.map +1 -0
- package/dist/skills/anchors.d.ts +32 -0
- package/dist/skills/anchors.d.ts.map +1 -0
- package/dist/skills/anchors.js +485 -0
- package/dist/skills/anchors.js.map +1 -0
- package/dist/skills/answers-prompt.d.ts +13 -0
- package/dist/skills/answers-prompt.d.ts.map +1 -0
- package/dist/skills/answers-prompt.js +83 -0
- package/dist/skills/answers-prompt.js.map +1 -0
- package/dist/skills/check-result.d.ts +26 -0
- package/dist/skills/check-result.d.ts.map +1 -0
- package/dist/skills/check-result.js +46 -0
- package/dist/skills/check-result.js.map +1 -0
- package/dist/skills/codex-sandbox.d.ts +6 -0
- package/dist/skills/codex-sandbox.d.ts.map +1 -0
- package/dist/skills/codex-sandbox.js +55 -0
- package/dist/skills/codex-sandbox.js.map +1 -0
- package/dist/skills/compile-split.d.ts +57 -0
- package/dist/skills/compile-split.d.ts.map +1 -0
- package/dist/skills/compile-split.js +532 -0
- package/dist/skills/compile-split.js.map +1 -0
- package/dist/skills/compile-version.d.ts +37 -0
- package/dist/skills/compile-version.d.ts.map +1 -0
- package/dist/skills/compile-version.js +56 -0
- package/dist/skills/compile-version.js.map +1 -0
- package/dist/skills/compile-waits.d.ts +12 -0
- package/dist/skills/compile-waits.d.ts.map +1 -0
- package/dist/skills/compile-waits.js +52 -0
- package/dist/skills/compile-waits.js.map +1 -0
- package/dist/skills/compile-words.d.ts +82 -0
- package/dist/skills/compile-words.d.ts.map +1 -0
- package/dist/skills/compile-words.js +385 -0
- package/dist/skills/compile-words.js.map +1 -0
- package/dist/skills/compile.d.ts +35 -0
- package/dist/skills/compile.d.ts.map +1 -0
- package/dist/skills/compile.js +488 -0
- package/dist/skills/compile.js.map +1 -0
- package/dist/skills/credit-facts.d.ts +8 -0
- package/dist/skills/credit-facts.d.ts.map +1 -0
- package/dist/skills/credit-facts.js +32 -0
- package/dist/skills/credit-facts.js.map +1 -0
- package/dist/skills/directive-words.d.ts +11 -0
- package/dist/skills/directive-words.d.ts.map +1 -0
- package/dist/skills/directive-words.js +33 -0
- package/dist/skills/directive-words.js.map +1 -0
- package/dist/skills/fidelity.d.ts +42 -0
- package/dist/skills/fidelity.d.ts.map +1 -0
- package/dist/skills/fidelity.js +138 -0
- package/dist/skills/fidelity.js.map +1 -0
- package/dist/skills/forget-notice.d.ts +44 -0
- package/dist/skills/forget-notice.d.ts.map +1 -0
- package/dist/skills/forget-notice.js +131 -0
- package/dist/skills/forget-notice.js.map +1 -0
- package/dist/skills/found-skill.d.ts +35 -0
- package/dist/skills/found-skill.d.ts.map +1 -0
- package/dist/skills/found-skill.js +66 -0
- package/dist/skills/found-skill.js.map +1 -0
- package/dist/skills/front-version.d.ts +12 -0
- package/dist/skills/front-version.d.ts.map +1 -0
- package/dist/skills/front-version.js +87 -0
- package/dist/skills/front-version.js.map +1 -0
- package/dist/skills/host-facts.d.ts +51 -0
- package/dist/skills/host-facts.d.ts.map +1 -0
- package/dist/skills/host-facts.js +134 -0
- package/dist/skills/host-facts.js.map +1 -0
- package/dist/skills/ledger.d.ts +43 -0
- package/dist/skills/ledger.d.ts.map +1 -0
- package/dist/skills/ledger.js +336 -0
- package/dist/skills/ledger.js.map +1 -0
- package/dist/skills/lessons.d.ts +60 -0
- package/dist/skills/lessons.d.ts.map +1 -0
- package/dist/skills/lessons.js +396 -0
- package/dist/skills/lessons.js.map +1 -0
- package/dist/skills/never-save.d.ts +5 -0
- package/dist/skills/never-save.d.ts.map +1 -0
- package/dist/skills/never-save.js +158 -0
- package/dist/skills/never-save.js.map +1 -0
- package/dist/skills/offer-answers.d.ts +20 -0
- package/dist/skills/offer-answers.d.ts.map +1 -0
- package/dist/skills/offer-answers.js +51 -0
- package/dist/skills/offer-answers.js.map +1 -0
- package/dist/skills/own-folder.d.ts +9 -0
- package/dist/skills/own-folder.d.ts.map +1 -0
- package/dist/skills/own-folder.js +36 -0
- package/dist/skills/own-folder.js.map +1 -0
- package/dist/skills/params.d.ts +39 -0
- package/dist/skills/params.d.ts.map +1 -0
- package/dist/skills/params.js +275 -0
- package/dist/skills/params.js.map +1 -0
- package/dist/skills/person.d.ts +34 -0
- package/dist/skills/person.d.ts.map +1 -0
- package/dist/skills/person.js +102 -0
- package/dist/skills/person.js.map +1 -0
- package/dist/skills/probe-clean.d.ts +9 -0
- package/dist/skills/probe-clean.d.ts.map +1 -0
- package/dist/skills/probe-clean.js +48 -0
- package/dist/skills/probe-clean.js.map +1 -0
- package/dist/skills/probes.d.ts +26 -0
- package/dist/skills/probes.d.ts.map +1 -0
- package/dist/skills/probes.js +225 -0
- package/dist/skills/probes.js.map +1 -0
- package/dist/skills/ran-less.d.ts +5 -0
- package/dist/skills/ran-less.d.ts.map +1 -0
- package/dist/skills/ran-less.js +51 -0
- package/dist/skills/ran-less.js.map +1 -0
- package/dist/skills/recall.d.ts +119 -0
- package/dist/skills/recall.d.ts.map +1 -0
- package/dist/skills/recall.js +370 -0
- package/dist/skills/recall.js.map +1 -0
- package/dist/skills/receipts.d.ts +44 -0
- package/dist/skills/receipts.d.ts.map +1 -0
- package/dist/skills/receipts.js +223 -0
- package/dist/skills/receipts.js.map +1 -0
- package/dist/skills/risk-delta.d.ts +32 -0
- package/dist/skills/risk-delta.d.ts.map +1 -0
- package/dist/skills/risk-delta.js +56 -0
- package/dist/skills/risk-delta.js.map +1 -0
- package/dist/skills/risk.d.ts +73 -0
- package/dist/skills/risk.d.ts.map +1 -0
- package/dist/skills/risk.js +396 -0
- package/dist/skills/risk.js.map +1 -0
- package/dist/skills/run-checkout.d.ts +4 -0
- package/dist/skills/run-checkout.d.ts.map +1 -0
- package/dist/skills/run-checkout.js +37 -0
- package/dist/skills/run-checkout.js.map +1 -0
- package/dist/skills/runblock.d.ts +45 -0
- package/dist/skills/runblock.d.ts.map +1 -0
- package/dist/skills/runblock.js +222 -0
- package/dist/skills/runblock.js.map +1 -0
- package/dist/skills/save-parse.d.ts +42 -0
- package/dist/skills/save-parse.d.ts.map +1 -0
- package/dist/skills/save-parse.js +172 -0
- package/dist/skills/save-parse.js.map +1 -0
- package/dist/skills/save-store.d.ts +12 -0
- package/dist/skills/save-store.d.ts.map +1 -0
- package/dist/skills/save-store.js +22 -0
- package/dist/skills/save-store.js.map +1 -0
- package/dist/skills/settings.d.ts +38 -0
- package/dist/skills/settings.d.ts.map +1 -0
- package/dist/skills/settings.js +133 -0
- package/dist/skills/settings.js.map +1 -0
- package/dist/skills/skill-diff.d.ts +40 -0
- package/dist/skills/skill-diff.d.ts.map +1 -0
- package/dist/skills/skill-diff.js +191 -0
- package/dist/skills/skill-diff.js.map +1 -0
- package/dist/skills/skill-file.d.ts +24 -0
- package/dist/skills/skill-file.d.ts.map +1 -0
- package/dist/skills/skill-file.js +97 -0
- package/dist/skills/skill-file.js.map +1 -0
- package/dist/skills/skill-rebuild.d.ts +27 -0
- package/dist/skills/skill-rebuild.d.ts.map +1 -0
- package/dist/skills/skill-rebuild.js +85 -0
- package/dist/skills/skill-rebuild.js.map +1 -0
- package/dist/skills/skillmd.d.ts +17 -0
- package/dist/skills/skillmd.d.ts.map +1 -0
- package/dist/skills/skillmd.js +219 -0
- package/dist/skills/skillmd.js.map +1 -0
- package/dist/skills/skills.d.ts +2 -0
- package/dist/skills/skills.d.ts.map +1 -1
- package/dist/skills/skills.js +1 -1
- package/dist/skills/skills.js.map +1 -1
- package/dist/skills/staleness.d.ts +27 -0
- package/dist/skills/staleness.d.ts.map +1 -0
- package/dist/skills/staleness.js +178 -0
- package/dist/skills/staleness.js.map +1 -0
- package/dist/skills/state.d.ts +36 -0
- package/dist/skills/state.d.ts.map +1 -0
- package/dist/skills/state.js +259 -0
- package/dist/skills/state.js.map +1 -0
- package/dist/skills/store-fs.d.ts +77 -0
- package/dist/skills/store-fs.d.ts.map +1 -0
- package/dist/skills/store-fs.js +194 -0
- package/dist/skills/store-fs.js.map +1 -0
- package/dist/skills/store-held.d.ts +44 -0
- package/dist/skills/store-held.d.ts.map +1 -0
- package/dist/skills/store-held.js +147 -0
- package/dist/skills/store-held.js.map +1 -0
- package/dist/skills/store.d.ts +73 -0
- package/dist/skills/store.d.ts.map +1 -0
- package/dist/skills/store.js +279 -0
- package/dist/skills/store.js.map +1 -0
- package/dist/skills/types.d.ts +422 -0
- package/dist/skills/types.d.ts.map +1 -0
- package/dist/skills/types.js +2 -0
- package/dist/skills/types.js.map +1 -0
- package/dist/skills/validate.d.ts +11 -0
- package/dist/skills/validate.d.ts.map +1 -0
- package/dist/skills/validate.js +112 -0
- package/dist/skills/validate.js.map +1 -0
- package/dist/skills/versions-fs.d.ts +45 -0
- package/dist/skills/versions-fs.d.ts.map +1 -0
- package/dist/skills/versions-fs.js +234 -0
- package/dist/skills/versions-fs.js.map +1 -0
- package/dist/skills/versions.d.ts +56 -0
- package/dist/skills/versions.d.ts.map +1 -0
- package/dist/skills/versions.js +351 -0
- package/dist/skills/versions.js.map +1 -0
- package/dist/telemetry/contract.d.ts.map +1 -1
- package/dist/telemetry/contract.js +8 -6
- package/dist/telemetry/contract.js.map +1 -1
- package/dist/telemetry/notice.d.ts.map +1 -1
- package/dist/telemetry/notice.js +3 -1
- package/dist/telemetry/notice.js.map +1 -1
- package/dist/trace/check-reads.d.ts +36 -0
- package/dist/trace/check-reads.d.ts.map +1 -0
- package/dist/trace/check-reads.js +57 -0
- package/dist/trace/check-reads.js.map +1 -0
- package/dist/trace/checks.d.ts +63 -0
- package/dist/trace/checks.d.ts.map +1 -0
- package/dist/trace/checks.js +487 -0
- package/dist/trace/checks.js.map +1 -0
- package/dist/trace/claude.d.ts +124 -0
- package/dist/trace/claude.d.ts.map +1 -0
- package/dist/trace/claude.js +303 -0
- package/dist/trace/claude.js.map +1 -0
- package/dist/trace/codex-exec.d.ts +22 -0
- package/dist/trace/codex-exec.d.ts.map +1 -0
- package/dist/trace/codex-exec.js +129 -0
- package/dist/trace/codex-exec.js.map +1 -0
- package/dist/trace/codex-meta.d.ts +23 -0
- package/dist/trace/codex-meta.d.ts.map +1 -0
- package/dist/trace/codex-meta.js +112 -0
- package/dist/trace/codex-meta.js.map +1 -0
- package/dist/trace/codex.d.ts +33 -0
- package/dist/trace/codex.d.ts.map +1 -0
- package/dist/trace/codex.js +485 -0
- package/dist/trace/codex.js.map +1 -0
- package/dist/trace/cursor.d.ts +16 -0
- package/dist/trace/cursor.d.ts.map +1 -0
- package/dist/trace/cursor.js +133 -0
- package/dist/trace/cursor.js.map +1 -0
- package/dist/trace/dialect.d.ts +43 -0
- package/dist/trace/dialect.d.ts.map +1 -0
- package/dist/trace/dialect.js +95 -0
- package/dist/trace/dialect.js.map +1 -0
- package/dist/trace/epochs.d.ts +10 -0
- package/dist/trace/epochs.d.ts.map +1 -0
- package/dist/trace/epochs.js +16 -0
- package/dist/trace/epochs.js.map +1 -0
- package/dist/trace/failure.d.ts +15 -0
- package/dist/trace/failure.d.ts.map +1 -0
- package/dist/trace/failure.js +69 -0
- package/dist/trace/failure.js.map +1 -0
- package/dist/trace/gate-file.d.ts +71 -0
- package/dist/trace/gate-file.d.ts.map +1 -0
- package/dist/trace/gate-file.js +329 -0
- package/dist/trace/gate-file.js.map +1 -0
- package/dist/trace/guard-fast.d.ts +22 -0
- package/dist/trace/guard-fast.d.ts.map +1 -0
- package/dist/trace/guard-fast.js +213 -0
- package/dist/trace/guard-fast.js.map +1 -0
- package/dist/trace/host.d.ts +40 -0
- package/dist/trace/host.d.ts.map +1 -0
- package/dist/trace/host.js +84 -0
- package/dist/trace/host.js.map +1 -0
- package/dist/trace/housekeeping.d.ts +5 -0
- package/dist/trace/housekeeping.d.ts.map +1 -0
- package/dist/trace/housekeeping.js +93 -0
- package/dist/trace/housekeeping.js.map +1 -0
- package/dist/trace/jobs.d.ts +52 -0
- package/dist/trace/jobs.d.ts.map +1 -0
- package/dist/trace/jobs.js +182 -0
- package/dist/trace/jobs.js.map +1 -0
- package/dist/trace/known-repo.d.ts +3 -0
- package/dist/trace/known-repo.d.ts.map +1 -0
- package/dist/trace/known-repo.js +55 -0
- package/dist/trace/known-repo.js.map +1 -0
- package/dist/trace/pool.d.ts +40 -0
- package/dist/trace/pool.d.ts.map +1 -0
- package/dist/trace/pool.js +154 -0
- package/dist/trace/pool.js.map +1 -0
- package/dist/trace/redact.d.ts +8 -0
- package/dist/trace/redact.d.ts.map +1 -0
- package/dist/trace/redact.js +63 -0
- package/dist/trace/redact.js.map +1 -0
- package/dist/trace/repairs.d.ts +27 -0
- package/dist/trace/repairs.d.ts.map +1 -0
- package/dist/trace/repairs.js +303 -0
- package/dist/trace/repairs.js.map +1 -0
- package/dist/trace/run-calls.d.ts +82 -0
- package/dist/trace/run-calls.d.ts.map +1 -0
- package/dist/trace/run-calls.js +331 -0
- package/dist/trace/run-calls.js.map +1 -0
- package/dist/trace/run-join.d.ts +20 -0
- package/dist/trace/run-join.d.ts.map +1 -0
- package/dist/trace/run-join.js +99 -0
- package/dist/trace/run-join.js.map +1 -0
- package/dist/trace/run-sheets.d.ts +26 -0
- package/dist/trace/run-sheets.d.ts.map +1 -0
- package/dist/trace/run-sheets.js +145 -0
- package/dist/trace/run-sheets.js.map +1 -0
- package/dist/trace/run-turns.d.ts +24 -0
- package/dist/trace/run-turns.d.ts.map +1 -0
- package/dist/trace/run-turns.js +67 -0
- package/dist/trace/run-turns.js.map +1 -0
- package/dist/trace/run-verdict.d.ts +24 -0
- package/dist/trace/run-verdict.d.ts.map +1 -0
- package/dist/trace/run-verdict.js +176 -0
- package/dist/trace/run-verdict.js.map +1 -0
- package/dist/trace/runs.d.ts +54 -0
- package/dist/trace/runs.d.ts.map +1 -0
- package/dist/trace/runs.js +501 -0
- package/dist/trace/runs.js.map +1 -0
- package/dist/trace/seen-cache.d.ts +9 -0
- package/dist/trace/seen-cache.d.ts.map +1 -0
- package/dist/trace/seen-cache.js +46 -0
- package/dist/trace/seen-cache.js.map +1 -0
- package/dist/trace/shell-scan.d.ts +52 -0
- package/dist/trace/shell-scan.d.ts.map +1 -0
- package/dist/trace/shell-scan.js +318 -0
- package/dist/trace/shell-scan.js.map +1 -0
- package/dist/trace/shell-words.d.ts +91 -0
- package/dist/trace/shell-words.d.ts.map +1 -0
- package/dist/trace/shell-words.js +558 -0
- package/dist/trace/shell-words.js.map +1 -0
- package/dist/trace/shell.d.ts +91 -0
- package/dist/trace/shell.d.ts.map +1 -0
- package/dist/trace/shell.js +435 -0
- package/dist/trace/shell.js.map +1 -0
- package/dist/trace/skill-session.d.ts +64 -0
- package/dist/trace/skill-session.d.ts.map +1 -0
- package/dist/trace/skill-session.js +232 -0
- package/dist/trace/skill-session.js.map +1 -0
- package/dist/trace/state.d.ts +27 -0
- package/dist/trace/state.d.ts.map +1 -0
- package/dist/trace/state.js +98 -0
- package/dist/trace/state.js.map +1 -0
- package/dist/trace/tamper-code.d.ts +9 -0
- package/dist/trace/tamper-code.d.ts.map +1 -0
- package/dist/trace/tamper-code.js +174 -0
- package/dist/trace/tamper-code.js.map +1 -0
- package/dist/trace/tamper-git.d.ts +12 -0
- package/dist/trace/tamper-git.d.ts.map +1 -0
- package/dist/trace/tamper-git.js +77 -0
- package/dist/trace/tamper-git.js.map +1 -0
- package/dist/trace/tamper.d.ts +12 -0
- package/dist/trace/tamper.d.ts.map +1 -0
- package/dist/trace/tamper.js +405 -0
- package/dist/trace/tamper.js.map +1 -0
- package/dist/trace/typed.d.ts +30 -0
- package/dist/trace/typed.d.ts.map +1 -0
- package/dist/trace/typed.js +132 -0
- package/dist/trace/typed.js.map +1 -0
- package/dist/trace/types.d.ts +477 -0
- package/dist/trace/types.d.ts.map +1 -0
- package/dist/trace/types.js +12 -0
- package/dist/trace/types.js.map +1 -0
- package/dist/trace/wall-state.d.ts +86 -0
- package/dist/trace/wall-state.d.ts.map +1 -0
- package/dist/trace/wall-state.js +279 -0
- package/dist/trace/wall-state.js.map +1 -0
- package/dist/trace/walls-glob.d.ts +11 -0
- package/dist/trace/walls-glob.d.ts.map +1 -0
- package/dist/trace/walls-glob.js +264 -0
- package/dist/trace/walls-glob.js.map +1 -0
- package/dist/trace/walls-quoted.d.ts +25 -0
- package/dist/trace/walls-quoted.d.ts.map +1 -0
- package/dist/trace/walls-quoted.js +81 -0
- package/dist/trace/walls-quoted.js.map +1 -0
- package/dist/trace/walls.d.ts +40 -0
- package/dist/trace/walls.d.ts.map +1 -0
- package/dist/trace/walls.js +318 -0
- package/dist/trace/walls.js.map +1 -0
- package/dist/upkeep.d.ts +1 -1
- package/dist/upkeep.d.ts.map +1 -1
- package/dist/upkeep.js +4 -1
- package/dist/upkeep.js.map +1 -1
- package/dist/util/actions-folder.d.ts +2 -0
- package/dist/util/actions-folder.d.ts.map +1 -0
- package/dist/util/actions-folder.js +9 -0
- package/dist/util/actions-folder.js.map +1 -0
- package/dist/util/front-matter.d.ts +31 -4
- package/dist/util/front-matter.d.ts.map +1 -1
- package/dist/util/front-matter.js +95 -3
- package/dist/util/front-matter.js.map +1 -1
- package/dist/util/private-file.d.ts +14 -0
- package/dist/util/private-file.d.ts.map +1 -0
- package/dist/util/private-file.js +82 -0
- package/dist/util/private-file.js.map +1 -0
- package/dist/util/private-fs.d.ts +25 -0
- package/dist/util/private-fs.d.ts.map +1 -0
- package/dist/util/private-fs.js +253 -0
- package/dist/util/private-fs.js.map +1 -0
- package/dist/util/state.d.ts.map +1 -1
- package/dist/util/state.js +3 -0
- package/dist/util/state.js.map +1 -1
- package/dist/vendor/tree-sitter-swift/LICENSE +21 -0
- package/dist/vendor/tree-sitter-swift/node-types.json +30694 -0
- package/dist/vendor/tree-sitter-swift/prebuilds/darwin-arm64/tree-sitter-swift.node +0 -0
- package/dist/vendor/tree-sitter-swift/prebuilds/darwin-x64/tree-sitter-swift.node +0 -0
- package/dist/vendor/tree-sitter-swift/prebuilds/linux-arm64/tree-sitter-swift.node +0 -0
- package/dist/vendor/tree-sitter-swift/prebuilds/linux-x64/tree-sitter-swift.node +0 -0
- package/dist/vendor/tree-sitter-swift/prebuilds/win32-arm64/tree-sitter-swift.node +0 -0
- package/dist/vendor/tree-sitter-swift/prebuilds/win32-x64/tree-sitter-swift.node +0 -0
- package/dist/viewer/app.js +2 -2
- package/package.json +10 -7
- package/scripts/run-tests.mjs +14 -2
- package/scripts/stamp-telemetry-key.mjs +8 -5
- package/scripts/vendor-grammars.mjs +35 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"person.js","sourceRoot":"","sources":["../../src/skills/person.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
type Git = (args: string[], cwd: string, timeoutMs: number) => {
|
|
2
|
+
code: number | null;
|
|
3
|
+
out: string;
|
|
4
|
+
timedOut: boolean;
|
|
5
|
+
};
|
|
6
|
+
/** Whether every change `git status --porcelain` printed is a path init wrote here and nobody changed since. */
|
|
7
|
+
export declare function onlyTrailChanges(out: string, checkout: string, git: Git, timeoutMs: number, env?: NodeJS.ProcessEnv): boolean;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=probe-clean.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"probe-clean.d.ts","sourceRoot":"","sources":["../../src/skills/probe-clean.ts"],"names":[],"mappings":"AAcA,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK;IAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAC;AAYvH,gHAAgH;AAChH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAiB1I"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* D120 (2), replacing D116 item 4's pattern: the clean-tree ready probe leaves
|
|
3
|
+
* out exactly the paths `trail init` recorded writing in this checkout (its
|
|
4
|
+
* install record, src/init/install-record.ts), and only while each still holds
|
|
5
|
+
* what init wrote. So a repo whose wiring isn't committed yet doesn't open every
|
|
6
|
+
* run block with "Uncommitted changes here", and any later edit to one of those
|
|
7
|
+
* files, the person's own settings changes included, blocks again. Anything
|
|
8
|
+
* init never wrote blocks, in `.trail/` too. No record: nothing is left out.
|
|
9
|
+
* Read only: `git status --porcelain` output, one more `git status` per
|
|
10
|
+
* untracked folder (to list its files the way git sees them), the record, and
|
|
11
|
+
* the hashes of the files it names.
|
|
12
|
+
*/
|
|
13
|
+
import { initLeftIt, readInstallRecord } from '../init/install-record.js';
|
|
14
|
+
/** The paths of `git status --porcelain` lines (both sides of a rename, quotes left on: such a path is never init's). */
|
|
15
|
+
function statusPaths(out) {
|
|
16
|
+
const paths = [];
|
|
17
|
+
for (const line of out.split('\n')) {
|
|
18
|
+
if (line.length < 4)
|
|
19
|
+
continue;
|
|
20
|
+
paths.push(...line.slice(3).split(' -> '));
|
|
21
|
+
}
|
|
22
|
+
return paths;
|
|
23
|
+
}
|
|
24
|
+
/** Whether every change `git status --porcelain` printed is a path init wrote here and nobody changed since. */
|
|
25
|
+
export function onlyTrailChanges(out, checkout, git, timeoutMs, env = process.env) {
|
|
26
|
+
const paths = statusPaths(out);
|
|
27
|
+
if (!paths.length)
|
|
28
|
+
return false;
|
|
29
|
+
const files = readInstallRecord(checkout, env);
|
|
30
|
+
if (!files)
|
|
31
|
+
return false;
|
|
32
|
+
for (const p of paths) {
|
|
33
|
+
if (!p.endsWith('/')) {
|
|
34
|
+
if (!initLeftIt(files, checkout, p))
|
|
35
|
+
return false;
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
// An untracked folder is shown whole: list its files as git sees them (ignored ones left out).
|
|
39
|
+
const inside = git(['status', '--porcelain', '--untracked-files=all', '--', p], checkout, timeoutMs);
|
|
40
|
+
if (inside.timedOut || inside.code !== 0)
|
|
41
|
+
return false;
|
|
42
|
+
const rels = statusPaths(inside.out);
|
|
43
|
+
if (!rels.length || rels.length > 64 || rels.some((r) => !initLeftIt(files, checkout, r)))
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=probe-clean.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"probe-clean.js","sourceRoot":"","sources":["../../src/skills/probe-clean.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAI1E,yHAAyH;AACzH,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAC9B,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,gHAAgH;AAChH,MAAM,UAAU,gBAAgB,CAAC,GAAW,EAAE,QAAgB,EAAE,GAAQ,EAAE,SAAiB,EAAE,MAAyB,OAAO,CAAC,GAAG;IAC/H,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAChC,MAAM,KAAK,GAAG,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC/C,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;YAClD,SAAS;QACX,CAAC;QACD,+FAA+F;QAC/F,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,aAAa,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QACrG,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACvD,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1G,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ParsedSkill } from './types.js';
|
|
2
|
+
export interface ProbeResult {
|
|
3
|
+
probe: string;
|
|
4
|
+
ok: boolean;
|
|
5
|
+
why?: string;
|
|
6
|
+
fix?: string;
|
|
7
|
+
}
|
|
8
|
+
/** What runs git for a probe; tests stub it. `code` null when it didn't finish. */
|
|
9
|
+
export type ProbeGit = (args: string[], cwd: string, timeoutMs: number) => {
|
|
10
|
+
code: number | null;
|
|
11
|
+
out: string;
|
|
12
|
+
timedOut: boolean;
|
|
13
|
+
};
|
|
14
|
+
export interface ProbeOpts {
|
|
15
|
+
/** At most 300; the prompt hook passes what its deadline leaves. */
|
|
16
|
+
budgetMs?: number;
|
|
17
|
+
git?: ProbeGit;
|
|
18
|
+
}
|
|
19
|
+
export declare const PROBE_BUDGET_MS = 300;
|
|
20
|
+
/** The probes of a skill's `ready` line, in order. */
|
|
21
|
+
export declare function readyProbes(s: Pick<ParsedSkill, 'meta'>): string[];
|
|
22
|
+
/** A passed probe in words, for the run block's ready line; null for a form that never runs. */
|
|
23
|
+
export declare function probePassWords(probe: string): string | null;
|
|
24
|
+
/** Allowlisted local probes only, without a shell, 300 ms total, cached 10 min in <home>/state/probes.json keyed by checkout+probe. */
|
|
25
|
+
export declare function runProbes(s: ParsedSkill, checkout: string, now?: Date, env?: NodeJS.ProcessEnv, opts?: ProbeOpts): ProbeResult[];
|
|
26
|
+
//# sourceMappingURL=probes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"probes.d.ts","sourceRoot":"","sources":["../../src/skills/probes.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAM9C,MAAM,WAAW,WAAW;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE;AAEvF,mFAAmF;AACnF,MAAM,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK;IAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAC;AACnI,MAAM,WAAW,SAAS;IACxB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,QAAQ,CAAC;CAChB;AAED,eAAO,MAAM,eAAe,MAAM,CAAC;AAgCnC,sDAAsD;AACtD,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,CAElE;AAID,gGAAgG;AAChG,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAU3D;AA6GD,uIAAuI;AACvI,wBAAgB,SAAS,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,GAAE,IAAiB,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,EAAE,IAAI,GAAE,SAAc,GAAG,WAAW,EAAE,CA4B7J"}
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ready probes (design 4.15, 4.5 step 11, spec 11): before a run block goes
|
|
3
|
+
* in, the hook checks what the skill needs locally, so the block can say
|
|
4
|
+
* "Uncommitted changes here" or "This checkout is on fix/x, not beta" up
|
|
5
|
+
* front instead of the agent finding out at step 4.
|
|
6
|
+
*
|
|
7
|
+
* Only these forms ever run, each without a shell:
|
|
8
|
+
* command -v NAME a PATH lookup, nothing executed
|
|
9
|
+
* test -[SfdeE] PATH, [ -S PATH ] a stat
|
|
10
|
+
* git status --porcelain passes on empty output, or only trail init's own files (D116)
|
|
11
|
+
* git rev-parse --verify REF
|
|
12
|
+
* git rev-parse --abbrev-ref HEAD = B passes when the branch is B
|
|
13
|
+
* Anything else in a skill's `ready` line is never run, whoever wrote it:
|
|
14
|
+
* a SKILL.md can be edited by hand. Git runs with optional locks and the
|
|
15
|
+
* fsmonitor off, so a probe never writes the repo and starts nothing else.
|
|
16
|
+
* Nothing here touches the network (`check-first` lines are the agent's).
|
|
17
|
+
*
|
|
18
|
+
* 300 ms in all. A probe not done in time is left out, never reported
|
|
19
|
+
* failed. Results are cached 10 minutes in `state/probes.json`, keyed by a
|
|
20
|
+
* hash of checkout and probe.
|
|
21
|
+
*/
|
|
22
|
+
import { execFileSync } from 'node:child_process';
|
|
23
|
+
import { createHash } from 'node:crypto';
|
|
24
|
+
import { accessSync, constants, statSync } from 'node:fs';
|
|
25
|
+
import { homedir } from 'node:os';
|
|
26
|
+
import { isAbsolute, join, resolve } from 'node:path';
|
|
27
|
+
import { flatLine } from '../notes/flatten.js';
|
|
28
|
+
import { readJsonSafe, trailPath, writePrivate } from '../util/private-fs.js';
|
|
29
|
+
import { onlyTrailChanges } from './probe-clean.js';
|
|
30
|
+
import { pathDirs, programFiles } from '../trace/guard-fast.js';
|
|
31
|
+
export const PROBE_BUDGET_MS = 300;
|
|
32
|
+
const GIT_MS = 150;
|
|
33
|
+
const CACHE_MS = 10 * 60_000;
|
|
34
|
+
const MAX_PROBES = 6;
|
|
35
|
+
const NAME = /^[A-Za-z0-9._+-]+$/;
|
|
36
|
+
const PATH_TOKEN = /^(?:\$HOME\/|\$\{HOME\}\/|~\/)?[A-Za-z0-9._@%+,:=/-]+$/;
|
|
37
|
+
const REF = /^(?!-)[A-Za-z0-9._/@^~-]+$/;
|
|
38
|
+
const BRANCH = /^(?!-)[A-Za-z0-9._/-]+$/;
|
|
39
|
+
/** The allowlisted form of a probe, or null: never run. */
|
|
40
|
+
function formOf(probe) {
|
|
41
|
+
const p = probe.trim().replace(/\s+/g, ' ');
|
|
42
|
+
let m = /^command -v (\S+)$/.exec(p);
|
|
43
|
+
if (m)
|
|
44
|
+
return NAME.test(m[1]) ? { kind: 'which', name: m[1] } : null;
|
|
45
|
+
m = /^test -([SfdeE]) (\S+)$/.exec(p) ?? /^\[ -([SfdeE]) (\S+) \]$/.exec(p);
|
|
46
|
+
if (m)
|
|
47
|
+
return PATH_TOKEN.test(m[2]) && !m[2].includes('..') ? { kind: 'stat', flag: m[1], path: m[2] } : null;
|
|
48
|
+
if (p === 'git status --porcelain')
|
|
49
|
+
return { kind: 'clean' };
|
|
50
|
+
m = /^git rev-parse --verify (\S+)$/.exec(p);
|
|
51
|
+
if (m)
|
|
52
|
+
return REF.test(m[1]) ? { kind: 'verify', ref: m[1] } : null;
|
|
53
|
+
m = /^git rev-parse --abbrev-ref HEAD = (\S+)$/.exec(p);
|
|
54
|
+
if (m)
|
|
55
|
+
return BRANCH.test(m[1]) ? { kind: 'branch', branch: m[1] } : null;
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
/** The probes of a skill's `ready` line, in order. */
|
|
59
|
+
export function readyProbes(s) {
|
|
60
|
+
return String(s.meta.ready ?? '').split(' ; ').map((x) => x.trim()).filter(Boolean).slice(0, MAX_PROBES);
|
|
61
|
+
}
|
|
62
|
+
const shown = (t) => flatLine(t, 80);
|
|
63
|
+
/** A passed probe in words, for the run block's ready line; null for a form that never runs. */
|
|
64
|
+
export function probePassWords(probe) {
|
|
65
|
+
const f = formOf(probe);
|
|
66
|
+
if (!f)
|
|
67
|
+
return null;
|
|
68
|
+
switch (f.kind) {
|
|
69
|
+
case 'which': return `${shown(f.name)} installed`;
|
|
70
|
+
case 'stat': return `${shown(f.path)} there`;
|
|
71
|
+
case 'clean': return 'no uncommitted changes';
|
|
72
|
+
case 'verify': return `${shown(f.ref)} exists`;
|
|
73
|
+
case 'branch': return `on ${shown(f.branch)}`;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
function socketWords(path) {
|
|
77
|
+
if (/\.colima\b/i.test(path))
|
|
78
|
+
return { why: "Colima's socket isn't there", fix: 'Start it first: colima start' };
|
|
79
|
+
if (/docker/i.test(path))
|
|
80
|
+
return { why: "Docker's socket isn't there", fix: 'Start Docker first, or ask the person.' };
|
|
81
|
+
return { why: `${shown(path)} isn't there`, fix: 'Start what it belongs to first, or ask the person.' };
|
|
82
|
+
}
|
|
83
|
+
const defaultGit = (args, cwd, timeoutMs) => {
|
|
84
|
+
try {
|
|
85
|
+
const out = execFileSync('git', ['--no-optional-locks', '-c', 'core.fsmonitor=false', ...args], {
|
|
86
|
+
cwd, timeout: timeoutMs, encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'], maxBuffer: 1 << 20,
|
|
87
|
+
env: { ...process.env, GIT_OPTIONAL_LOCKS: '0', GIT_TERMINAL_PROMPT: '0' },
|
|
88
|
+
});
|
|
89
|
+
return { code: 0, out, timedOut: false };
|
|
90
|
+
}
|
|
91
|
+
catch (e) {
|
|
92
|
+
const timedOut = e?.code === 'ETIMEDOUT' || e?.signal === 'SIGTERM';
|
|
93
|
+
return { code: timedOut ? null : typeof e?.status === 'number' ? e.status : null, out: String(e?.stdout ?? ''), timedOut };
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
function statOf(path) {
|
|
97
|
+
try {
|
|
98
|
+
return statSync(path);
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
/** A path token with $HOME and ~ expanded; relative to the checkout. null when it can't be placed. */
|
|
105
|
+
function placed(token, checkout, env) {
|
|
106
|
+
const home = env.HOME || homedir();
|
|
107
|
+
const t = token.replace(/^(?:\$HOME|\$\{HOME\}|~)\//, `${home}/`);
|
|
108
|
+
if (isAbsolute(t))
|
|
109
|
+
return t;
|
|
110
|
+
return checkout ? resolve(checkout, t) : null;
|
|
111
|
+
}
|
|
112
|
+
/** On PATH: an executable file of that name, or on Windows git.exe, npm.cmd and the like (PATHEXT; no exec bit there). */
|
|
113
|
+
function which(name, env) {
|
|
114
|
+
const names = programFiles(name, env);
|
|
115
|
+
for (const dir of pathDirs(env)) {
|
|
116
|
+
for (const n of names) {
|
|
117
|
+
const p = join(dir, n);
|
|
118
|
+
if (!statOf(p)?.isFile())
|
|
119
|
+
continue;
|
|
120
|
+
try {
|
|
121
|
+
accessSync(p, constants.X_OK);
|
|
122
|
+
return true;
|
|
123
|
+
}
|
|
124
|
+
catch { /* not executable: look further */ }
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
/** One probe: a result, or null when it was left out (no time, no checkout, an answer git couldn't give). */
|
|
130
|
+
function runOne(probe, f, checkout, env, gitRun, left) {
|
|
131
|
+
switch (f.kind) {
|
|
132
|
+
case 'which':
|
|
133
|
+
return which(f.name, env) ? { probe, ok: true }
|
|
134
|
+
: { probe, ok: false, why: `${shown(f.name)} isn't installed here`, fix: "Tell the person; don't install it for them." };
|
|
135
|
+
case 'stat': {
|
|
136
|
+
const p = placed(f.path, checkout, env);
|
|
137
|
+
if (!p)
|
|
138
|
+
return null;
|
|
139
|
+
const st = statOf(p);
|
|
140
|
+
const ok = !!st && (f.flag === 'S' ? st.isSocket() : f.flag === 'f' ? st.isFile() : f.flag === 'd' ? st.isDirectory() : true);
|
|
141
|
+
if (ok)
|
|
142
|
+
return { probe, ok: true };
|
|
143
|
+
return f.flag === 'S' ? { probe, ok: false, ...socketWords(f.path) } : { probe, ok: false, why: `${shown(f.path)} isn't there`, fix: 'Tell the person before going on.' };
|
|
144
|
+
}
|
|
145
|
+
default: {
|
|
146
|
+
if (!checkout)
|
|
147
|
+
return null;
|
|
148
|
+
const ms = Math.min(GIT_MS, left());
|
|
149
|
+
if (ms <= 0)
|
|
150
|
+
return null;
|
|
151
|
+
const args = f.kind === 'clean' ? ['status', '--porcelain'] : f.kind === 'verify' ? ['rev-parse', '--verify', '--quiet', f.ref] : ['rev-parse', '--abbrev-ref', 'HEAD'];
|
|
152
|
+
const r = gitRun(args, checkout, ms);
|
|
153
|
+
if (r.timedOut || r.code === null)
|
|
154
|
+
return null;
|
|
155
|
+
if (f.kind === 'clean') {
|
|
156
|
+
if (r.code !== 0)
|
|
157
|
+
return null;
|
|
158
|
+
// D120 (2): the paths `trail init` recorded writing here, still as it left them, are not the person's.
|
|
159
|
+
const clean = r.out.trim() === '' || onlyTrailChanges(r.out, checkout, gitRun, Math.max(1, Math.min(GIT_MS, left())), env);
|
|
160
|
+
return clean ? { probe, ok: true } : { probe, ok: false, why: 'Uncommitted changes here', fix: "Tell the person; don't commit or stash for them." };
|
|
161
|
+
}
|
|
162
|
+
if (f.kind === 'verify') {
|
|
163
|
+
if (r.code === 0)
|
|
164
|
+
return { probe, ok: true };
|
|
165
|
+
return r.code === 1 ? { probe, ok: false, why: `${shown(f.ref)} isn't here`, fix: 'Fetch it first, or ask the person.' } : null;
|
|
166
|
+
}
|
|
167
|
+
if (r.code !== 0)
|
|
168
|
+
return null;
|
|
169
|
+
const cur = r.out.trim();
|
|
170
|
+
if (cur === f.branch)
|
|
171
|
+
return { probe, ok: true };
|
|
172
|
+
return { probe, ok: false, why: `This checkout is on ${cur === 'HEAD' ? 'a detached commit' : shown(cur)}, not ${shown(f.branch)}`, fix: 'Ask the person before switching.' };
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
const cachePath = (env) => trailPath(env, 'state', 'probes.json');
|
|
177
|
+
const cacheKey = (checkout, probe) => createHash('sha256').update(`${checkout}\0${probe}`).digest('hex').slice(0, 24);
|
|
178
|
+
function readCache(env) {
|
|
179
|
+
const raw = readJsonSafe(cachePath(env));
|
|
180
|
+
const entries = raw && typeof raw === 'object' && raw.entries && typeof raw.entries === 'object' && !Array.isArray(raw.entries) ? raw.entries : {};
|
|
181
|
+
return { v: 1, entries };
|
|
182
|
+
}
|
|
183
|
+
const fresh = (e, now) => {
|
|
184
|
+
const at = e ? Date.parse(e.at) : NaN;
|
|
185
|
+
return !Number.isNaN(at) && now.getTime() - at < CACHE_MS && at - now.getTime() < 60_000;
|
|
186
|
+
};
|
|
187
|
+
/** Allowlisted local probes only, without a shell, 300 ms total, cached 10 min in <home>/state/probes.json keyed by checkout+probe. */
|
|
188
|
+
export function runProbes(s, checkout, now = new Date(), env = process.env, opts = {}) {
|
|
189
|
+
const budget = Math.max(0, Math.min(PROBE_BUDGET_MS, opts.budgetMs ?? PROBE_BUDGET_MS));
|
|
190
|
+
const deadline = Date.now() + budget;
|
|
191
|
+
const left = () => deadline - Date.now();
|
|
192
|
+
const probes = readyProbes(s).map((p) => ({ probe: p, form: formOf(p) })).filter((x) => x.form !== null);
|
|
193
|
+
if (!probes.length)
|
|
194
|
+
return [];
|
|
195
|
+
const cache = readCache(env);
|
|
196
|
+
const out = [];
|
|
197
|
+
let changed = false;
|
|
198
|
+
for (const { probe, form } of probes) {
|
|
199
|
+
const key = cacheKey(checkout, probe);
|
|
200
|
+
const hit = cache.entries[key];
|
|
201
|
+
if (hit && fresh(hit, now)) {
|
|
202
|
+
out.push({ probe, ok: hit.ok, ...(hit.why ? { why: hit.why } : {}), ...(hit.fix ? { fix: hit.fix } : {}) });
|
|
203
|
+
continue;
|
|
204
|
+
}
|
|
205
|
+
if (left() <= 0)
|
|
206
|
+
continue;
|
|
207
|
+
const r = runOne(probe, form, checkout, env, opts.git ?? defaultGit, left);
|
|
208
|
+
if (!r)
|
|
209
|
+
continue;
|
|
210
|
+
out.push(r);
|
|
211
|
+
cache.entries[key] = { at: now.toISOString(), ok: r.ok, ...(r.why ? { why: r.why } : {}), ...(r.fix ? { fix: r.fix } : {}) };
|
|
212
|
+
changed = true;
|
|
213
|
+
}
|
|
214
|
+
if (changed) {
|
|
215
|
+
for (const [k, e] of Object.entries(cache.entries))
|
|
216
|
+
if (!fresh(e, now))
|
|
217
|
+
delete cache.entries[k];
|
|
218
|
+
try {
|
|
219
|
+
writePrivate(cachePath(env), JSON.stringify(cache));
|
|
220
|
+
}
|
|
221
|
+
catch { /* the next prompt probes again */ }
|
|
222
|
+
}
|
|
223
|
+
return out;
|
|
224
|
+
}
|
|
225
|
+
//# sourceMappingURL=probes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"probes.js","sourceRoot":"","sources":["../../src/skills/probes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** Whether `ran` did less than `step`: see the header. Reads only the simple commands running the step's own (program and verb). */
|
|
2
|
+
export declare function doesLess(step: string, ran: string): boolean;
|
|
3
|
+
/** A call that can't be a step of its own for a fold: it hides its failure, or only rehearsed (`--dry-run`, `-n`). */
|
|
4
|
+
export declare function onlyRehearsed(ran: string): boolean;
|
|
5
|
+
//# sourceMappingURL=ran-less.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ran-less.d.ts","sourceRoot":"","sources":["../../src/skills/ran-less.ts"],"names":[],"mappings":"AA4BA,oIAAoI;AACpI,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAY3D;AAED,sHAAsH;AACtH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOlD"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* D138 (2): a call that ran a skill's step but made it do less is not that step for credit: it added a flag that
|
|
3
|
+
* stops the work (`--dry-run`, `-n`, a `-qn` bundle, `--no-...`) the step lacked, or a trailing `; exit 0`,
|
|
4
|
+
* `|| true`, `|| :` (or `|| exit 0`) that hides the step's failure. Output-only `--no-` flags (colour, progress,
|
|
5
|
+
* pager, fund, audit, update notices) change nothing the step does, so they still count. Pure.
|
|
6
|
+
*/
|
|
7
|
+
import { simpleCommands } from '../trace/shell.js';
|
|
8
|
+
import { unquote, words } from '../trace/shell-scan.js';
|
|
9
|
+
const LESS = /^(?:--dry-?run|-n|--no-[\w-]+)$/i;
|
|
10
|
+
const OUTPUT_ONLY = /^--no-(?:colou?rs?|progress|pager|fund|audit|update-notifier|emoji|spin(?:ner)?|banner)$/i;
|
|
11
|
+
const HIDES_FAILURE = /(?:;\s*exit\s+0|\|\|\s*(?:true|:|exit\s+0))\s*;?\s*$/;
|
|
12
|
+
/** The do-less flags in one simple command: `--x=y` as `--x`, a short bundle letter by letter. */
|
|
13
|
+
function lessIn(simple) {
|
|
14
|
+
return words(simple).map((w) => unquote(w)).flatMap((w) => {
|
|
15
|
+
const f = /^-[A-Za-z]{2,}$/.test(w) ? [...w.slice(1)].map((c) => `-${c}`) : w.startsWith('-') ? [w.split('=')[0]] : [];
|
|
16
|
+
return f.filter((x) => LESS.test(x) && !OUTPUT_ONLY.test(x));
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
/** What a simple command runs: its program and first word that isn't a flag (`npm run`, `git push`), env assignments off. */
|
|
20
|
+
function head(simple) {
|
|
21
|
+
const ws = words(simple).map((w) => unquote(w)).filter((w) => !/^[A-Za-z_]\w*=/.test(w));
|
|
22
|
+
const verb = ws.slice(1).find((w) => !w.startsWith('-'));
|
|
23
|
+
return ws.length ? `${ws[0]} ${verb ?? ''}` : '';
|
|
24
|
+
}
|
|
25
|
+
/** Whether `ran` did less than `step`: see the header. Reads only the simple commands running the step's own (program and verb). */
|
|
26
|
+
export function doesLess(step, ran) {
|
|
27
|
+
try {
|
|
28
|
+
const s = String(step ?? '').trim();
|
|
29
|
+
const r = String(ran ?? '').trim();
|
|
30
|
+
if (HIDES_FAILURE.test(r) && !HIDES_FAILURE.test(s))
|
|
31
|
+
return true;
|
|
32
|
+
const stepParts = simpleCommands(s);
|
|
33
|
+
const progs = new Set(stepParts.map(head).filter(Boolean));
|
|
34
|
+
const had = new Set(stepParts.flatMap(lessIn));
|
|
35
|
+
return simpleCommands(r).filter((x) => progs.has(head(x))).flatMap(lessIn).some((f) => !had.has(f));
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/** A call that can't be a step of its own for a fold: it hides its failure, or only rehearsed (`--dry-run`, `-n`). */
|
|
42
|
+
export function onlyRehearsed(ran) {
|
|
43
|
+
try {
|
|
44
|
+
const r = String(ran ?? '').trim();
|
|
45
|
+
return HIDES_FAILURE.test(r) || simpleCommands(r).flatMap(lessIn).some((f) => !/^--no-/i.test(f));
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=ran-less.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ran-less.js","sourceRoot":"","sources":["../../src/skills/ran-less.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bringing skills back (design 4.6, 4.7, spec 11): which skill, if any, a
|
|
3
|
+
* typed prompt asks for, and the one line a session starts with.
|
|
4
|
+
*
|
|
5
|
+
* The cue matcher reads only the person's own words (`askText`: no pasted
|
|
6
|
+
* code, quoted lines or very long lines) and picks at most one skill:
|
|
7
|
+
* - a name cue: the prompt names the skill;
|
|
8
|
+
* - a job cue: the prompt is the skill's job (its class of ask, or one of
|
|
9
|
+
* the asks it was saved with, word for word with at most one word between);
|
|
10
|
+
* - a check cue: a status question ("is it live?") about the skill used
|
|
11
|
+
* most recently here, answered with its check line only.
|
|
12
|
+
* Any other status or history question, a problem report, or an ask of
|
|
13
|
+
* more than 25 words matches nothing (up to 60 when it names the skill's
|
|
14
|
+
* place and its job verb, D71 a). Only candidate and active skills in
|
|
15
|
+
* scope are candidates: held items, retired, needs-fix and skills the person
|
|
16
|
+
* turned off never are.
|
|
17
|
+
*
|
|
18
|
+
* Only the words go into the match; nothing typed is stored.
|
|
19
|
+
*/
|
|
20
|
+
import type { PromptParams } from '../trace/types.js';
|
|
21
|
+
import type { ParsedSkill, SkillRef, SkillState } from './types.js';
|
|
22
|
+
import { type ScopeCtx } from './store.js';
|
|
23
|
+
export interface NormPrompt {
|
|
24
|
+
raw: string;
|
|
25
|
+
words: string[];
|
|
26
|
+
content: string[];
|
|
27
|
+
params: PromptParams;
|
|
28
|
+
status: boolean;
|
|
29
|
+
problem: boolean;
|
|
30
|
+
wordCount: number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* 1b: `here` is where candidatesHere found it (the checkout and env), so the block can check its anchors at
|
|
34
|
+
* injection (4.18); `phraseSha` is set on the candidate a job cue picked by one of its asks phrases (R30).
|
|
35
|
+
*/
|
|
36
|
+
export interface Candidate {
|
|
37
|
+
ref: SkillRef;
|
|
38
|
+
skill: ParsedSkill;
|
|
39
|
+
state: SkillState | null;
|
|
40
|
+
here?: {
|
|
41
|
+
checkout: string;
|
|
42
|
+
env?: NodeJS.ProcessEnv;
|
|
43
|
+
};
|
|
44
|
+
phraseSha?: string | null;
|
|
45
|
+
}
|
|
46
|
+
/** 1b: `phraseSha` is the asks phrase a job cue hit (8 hex, R30), null otherwise; the same value rides on `cand`. */
|
|
47
|
+
export interface CueResult {
|
|
48
|
+
kind: 'job' | 'name' | 'check';
|
|
49
|
+
cand: Candidate;
|
|
50
|
+
score: number;
|
|
51
|
+
values: Record<string, string>;
|
|
52
|
+
notes: string[];
|
|
53
|
+
phraseSha?: string | null;
|
|
54
|
+
}
|
|
55
|
+
/** 4.6: the ask's words, its shape values as params and placeholders, its content words, and its kind. */
|
|
56
|
+
export declare function normalizePrompt(typed: string): NormPrompt;
|
|
57
|
+
/**
|
|
58
|
+
* Where a phrase hits the prompt's words: every phrase word in order, with at most one extra word in total
|
|
59
|
+
* between them. The indexes of the words it covered, or null. Greedy is exact here: taking the next word when it
|
|
60
|
+
* matches never costs the one skip.
|
|
61
|
+
*/
|
|
62
|
+
export declare function phraseHit(words: string[], phrase: string[]): number[] | null;
|
|
63
|
+
/** 4.6 job cue for one skill: its class matched, an ask hit word for word, and how much of the prompt the asks cover. */
|
|
64
|
+
export declare function scoreJobCue(np: NormPrompt, s: ParsedSkill): {
|
|
65
|
+
score: number;
|
|
66
|
+
hits: number;
|
|
67
|
+
classMatch: boolean;
|
|
68
|
+
exact: boolean;
|
|
69
|
+
phrase: string | null;
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* D118 b: the cue's values with the run's own bound ones under this prompt's: a version (or sha, PR, ...) an
|
|
73
|
+
* earlier ask of the same run named holds for the run's life, across turns and re-sent blocks; one this prompt
|
|
74
|
+
* names wins.
|
|
75
|
+
*/
|
|
76
|
+
export declare function withRunParams(cue: CueResult, runParams: Record<string, unknown>, np: NormPrompt): CueResult;
|
|
77
|
+
/** 4.6. Ignores once-per-epoch: the caller decides between a block and a re-arm (3.2 step 8). */
|
|
78
|
+
export declare function matchCue(np: NormPrompt, cands: Candidate[], lastUsed: {
|
|
79
|
+
id: string;
|
|
80
|
+
at: string;
|
|
81
|
+
} | null, now?: Date): CueResult | null;
|
|
82
|
+
/**
|
|
83
|
+
* The risk rules again at recall time, on what a block would show: a SKILL.md can be edited by hand after Trail
|
|
84
|
+
* wrote it, so a step, the check or a check-first line the rules refuse (a download piped into a shell, `rm -rf ~`,
|
|
85
|
+
* sudo, a credential file, Trail itself) keeps the whole skill out. `values`: the block's values, filled in first
|
|
86
|
+
* (a param default can be edited too). The reason in words ("step 3 runs sudo"), or null.
|
|
87
|
+
*/
|
|
88
|
+
export declare function refusedAtRecall(s: ParsedSkill, values?: Record<string, string>): string | null;
|
|
89
|
+
/**
|
|
90
|
+
* A skill the index line names as not used: needs-fix by its record, or refused at recall (`why`). 1b:
|
|
91
|
+
* `correctedStep`, for a skill corrected twice, is the step both corrected uses ended at, else null (4.17).
|
|
92
|
+
*/
|
|
93
|
+
export type NotUsed = Candidate & {
|
|
94
|
+
why?: string;
|
|
95
|
+
correctedStep?: number | null;
|
|
96
|
+
};
|
|
97
|
+
/** Candidate and active skills in scope; needs-fix ones, and ones the risk rules refuse now, come back separately for the index line. */
|
|
98
|
+
export declare function candidatesHere(ctx: ScopeCtx): {
|
|
99
|
+
cands: Candidate[];
|
|
100
|
+
needsFix: NotUsed[];
|
|
101
|
+
adopted: string[];
|
|
102
|
+
};
|
|
103
|
+
/** The name a skill goes by in anything Trail says or an agent runs: its folder's, never a name edited into the file. */
|
|
104
|
+
export declare const nameOf: (c: Pick<Candidate, "ref" | "skill">) => string;
|
|
105
|
+
/**
|
|
106
|
+
* Why a needs-fix skill isn't used, in the index's words (4.17, J14a): 1a's failed words as they are; two
|
|
107
|
+
* corrections as `step {n} was corrected on {d1} and {d2}`, or `corrected on {d1} and {d2}` when they touched no
|
|
108
|
+
* one step.
|
|
109
|
+
*/
|
|
110
|
+
export declare function needsFixWords(c: NotUsed): string | undefined;
|
|
111
|
+
/**
|
|
112
|
+
* The SessionStart index line (4.7), '' when none. 1b (4.18, 4.19): with `now`, a skill unused for 60 days is left
|
|
113
|
+
* out (its cues still fire); `gone` says which listed skills may be out of date (checked for the 5 listed only).
|
|
114
|
+
*/
|
|
115
|
+
export declare function indexLine(cands: Candidate[], needsFix: NotUsed[], opts?: {
|
|
116
|
+
now?: Date;
|
|
117
|
+
gone?: (c: Candidate) => boolean;
|
|
118
|
+
}): string;
|
|
119
|
+
//# sourceMappingURL=recall.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recall.d.ts","sourceRoot":"","sources":["../../src/skills/recall.ts"],"names":[],"mappings":"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"}
|