@nanonets/graft 0.24.1 → 0.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -21
- package/dist/blast/render.js +1 -1
- package/dist/blast/render.js.map +1 -1
- package/dist/brand.js +1 -1
- package/dist/brand.js.map +1 -1
- package/dist/check/learning-edits.d.ts +18 -3
- package/dist/check/learning-edits.d.ts.map +1 -1
- package/dist/check/learning-edits.js +54 -10
- package/dist/check/learning-edits.js.map +1 -1
- package/dist/check/local-check.d.ts +7 -3
- package/dist/check/local-check.d.ts.map +1 -1
- package/dist/check/local-check.js +55 -11
- package/dist/check/local-check.js.map +1 -1
- package/dist/check/types.d.ts +11 -2
- package/dist/check/types.d.ts.map +1 -1
- package/dist/claude/format.d.ts +11 -7
- package/dist/claude/format.d.ts.map +1 -1
- package/dist/claude/format.js +50 -28
- package/dist/claude/format.js.map +1 -1
- package/dist/claude/hook-io.js +1 -1
- package/dist/claude/hook-io.js.map +1 -1
- package/dist/claude/hook-layers.d.ts +4 -2
- package/dist/claude/hook-layers.d.ts.map +1 -1
- package/dist/claude/hook-layers.js +21 -4
- package/dist/claude/hook-layers.js.map +1 -1
- package/dist/claude/hooks.d.ts +9 -32
- package/dist/claude/hooks.d.ts.map +1 -1
- package/dist/claude/hooks.js +154 -350
- package/dist/claude/hooks.js.map +1 -1
- package/dist/claude/init.d.ts.map +1 -1
- package/dist/claude/init.js +56 -18
- package/dist/claude/init.js.map +1 -1
- package/dist/claude/note-signals.d.ts +6 -0
- package/dist/claude/note-signals.d.ts.map +1 -1
- package/dist/claude/note-signals.js +14 -3
- package/dist/claude/note-signals.js.map +1 -1
- package/dist/claude/post-bash.d.ts +26 -0
- package/dist/claude/post-bash.d.ts.map +1 -0
- package/dist/claude/post-bash.js +191 -0
- package/dist/claude/post-bash.js.map +1 -0
- package/dist/claude/pre-bash-skills.d.ts +21 -0
- package/dist/claude/pre-bash-skills.d.ts.map +1 -0
- package/dist/claude/pre-bash-skills.js +253 -0
- package/dist/claude/pre-bash-skills.js.map +1 -0
- package/dist/claude/pre-bash.d.ts +50 -0
- package/dist/claude/pre-bash.d.ts.map +1 -0
- package/dist/claude/pre-bash.js +245 -0
- package/dist/claude/pre-bash.js.map +1 -0
- package/dist/claude/prompt-consent.d.ts +19 -0
- package/dist/claude/prompt-consent.d.ts.map +1 -0
- package/dist/claude/prompt-consent.js +14 -0
- package/dist/claude/prompt-consent.js.map +1 -0
- package/dist/claude/prompt-hook.d.ts +76 -0
- package/dist/claude/prompt-hook.d.ts.map +1 -0
- package/dist/claude/prompt-hook.js +303 -0
- package/dist/claude/prompt-hook.js.map +1 -0
- package/dist/claude/prompt-skills.d.ts +19 -0
- package/dist/claude/prompt-skills.d.ts.map +1 -0
- package/dist/claude/prompt-skills.js +305 -0
- package/dist/claude/prompt-skills.js.map +1 -0
- package/dist/claude/session-metrics.js +4 -4
- package/dist/claude/session-metrics.js.map +1 -1
- package/dist/claude/settings-merge.d.ts +10 -0
- package/dist/claude/settings-merge.d.ts.map +1 -1
- package/dist/claude/settings-merge.js +46 -17
- package/dist/claude/settings-merge.js.map +1 -1
- package/dist/claude/shim-template.d.ts.map +1 -1
- package/dist/claude/shim-template.js +86 -28
- package/dist/claude/shim-template.js.map +1 -1
- package/dist/claude/skill-template.d.ts +2 -0
- package/dist/claude/skill-template.d.ts.map +1 -1
- package/dist/claude/skill-template.js +53 -34
- package/dist/claude/skill-template.js.map +1 -1
- package/dist/claude/skill-use.d.ts +16 -0
- package/dist/claude/skill-use.d.ts.map +1 -0
- package/dist/claude/skill-use.js +78 -0
- package/dist/claude/skill-use.js.map +1 -0
- package/dist/claude/skills-wiring.d.ts +26 -0
- package/dist/claude/skills-wiring.d.ts.map +1 -0
- package/dist/claude/skills-wiring.js +110 -0
- package/dist/claude/skills-wiring.js.map +1 -0
- package/dist/claude/start-init.d.ts +13 -0
- package/dist/claude/start-init.d.ts.map +1 -0
- package/dist/claude/start-init.js +75 -0
- package/dist/claude/start-init.js.map +1 -0
- package/dist/claude/start-skills.d.ts +31 -0
- package/dist/claude/start-skills.d.ts.map +1 -0
- package/dist/claude/start-skills.js +274 -0
- package/dist/claude/start-skills.js.map +1 -0
- package/dist/claude/state.d.ts +19 -7
- package/dist/claude/state.d.ts.map +1 -1
- package/dist/claude/state.js +59 -4
- package/dist/claude/state.js.map +1 -1
- package/dist/claude/stop-skills.d.ts +23 -0
- package/dist/claude/stop-skills.d.ts.map +1 -0
- package/dist/claude/stop-skills.js +233 -0
- package/dist/claude/stop-skills.js.map +1 -0
- package/dist/claude/stop.d.ts +23 -0
- package/dist/claude/stop.d.ts.map +1 -0
- package/dist/claude/stop.js +219 -0
- package/dist/claude/stop.js.map +1 -0
- package/dist/claude/tally.d.ts +29 -41
- package/dist/claude/tally.d.ts.map +1 -1
- package/dist/claude/tally.js +111 -165
- package/dist/claude/tally.js.map +1 -1
- package/dist/claude/walls-hook.d.ts +52 -0
- package/dist/claude/walls-hook.d.ts.map +1 -0
- package/dist/claude/walls-hook.js +279 -0
- package/dist/claude/walls-hook.js.map +1 -0
- package/dist/cli-epilogue.d.ts.map +1 -1
- package/dist/cli-epilogue.js +24 -14
- package/dist/cli-epilogue.js.map +1 -1
- package/dist/cli-meta.js +3 -3
- package/dist/cli-meta.js.map +1 -1
- package/dist/cli-picker.d.ts.map +1 -1
- package/dist/cli-picker.js +8 -6
- package/dist/cli-picker.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +238 -402
- package/dist/cli.js.map +1 -1
- package/dist/cloud/head-learnings.d.ts +13 -0
- package/dist/cloud/head-learnings.d.ts.map +1 -0
- package/dist/cloud/head-learnings.js +84 -0
- package/dist/cloud/head-learnings.js.map +1 -0
- package/dist/cloud/lookup-activity.d.ts +5 -3
- package/dist/cloud/lookup-activity.d.ts.map +1 -1
- package/dist/cloud/lookup-activity.js +8 -8
- package/dist/cloud/lookup-activity.js.map +1 -1
- package/dist/cloud/nudge.d.ts +15 -7
- package/dist/cloud/nudge.d.ts.map +1 -1
- package/dist/cloud/nudge.js +42 -33
- package/dist/cloud/nudge.js.map +1 -1
- package/dist/cloud/onboarding.d.ts +37 -1
- package/dist/cloud/onboarding.d.ts.map +1 -1
- package/dist/cloud/onboarding.js +77 -1
- package/dist/cloud/onboarding.js.map +1 -1
- package/dist/cloud/other-repos.d.ts +39 -0
- package/dist/cloud/other-repos.d.ts.map +1 -0
- package/dist/cloud/other-repos.js +137 -0
- package/dist/cloud/other-repos.js.map +1 -0
- package/dist/cloud/pair.d.ts +17 -7
- package/dist/cloud/pair.d.ts.map +1 -1
- package/dist/cloud/pair.js +81 -60
- package/dist/cloud/pair.js.map +1 -1
- package/dist/cloud/workspace-sync.d.ts +67 -11
- package/dist/cloud/workspace-sync.d.ts.map +1 -1
- package/dist/cloud/workspace-sync.js +299 -55
- package/dist/cloud/workspace-sync.js.map +1 -1
- package/dist/cloud/workspace.d.ts +74 -10
- package/dist/cloud/workspace.d.ts.map +1 -1
- package/dist/cloud/workspace.js +96 -8
- package/dist/cloud/workspace.js.map +1 -1
- package/dist/hosts/claude-global.js +1 -1
- package/dist/hosts/claude-global.js.map +1 -1
- package/dist/hosts/codex-hooks.d.ts +6 -0
- package/dist/hosts/codex-hooks.d.ts.map +1 -1
- package/dist/hosts/codex-hooks.js +89 -16
- package/dist/hosts/codex-hooks.js.map +1 -1
- package/dist/hosts/codex-trust.d.ts +28 -0
- package/dist/hosts/codex-trust.d.ts.map +1 -0
- package/dist/hosts/codex-trust.js +280 -0
- package/dist/hosts/codex-trust.js.map +1 -0
- package/dist/hosts/cursor-hooks.d.ts.map +1 -1
- package/dist/hosts/cursor-hooks.js +3 -1
- package/dist/hosts/cursor-hooks.js.map +1 -1
- package/dist/init/candidates.d.ts +60 -0
- package/dist/init/candidates.d.ts.map +1 -0
- package/dist/init/candidates.js +202 -0
- package/dist/init/candidates.js.map +1 -0
- package/dist/init/claude-call.d.ts +51 -0
- package/dist/init/claude-call.d.ts.map +1 -0
- package/dist/init/claude-call.js +199 -0
- package/dist/init/claude-call.js.map +1 -0
- package/dist/init/discover-worker.d.ts +18 -0
- package/dist/init/discover-worker.d.ts.map +1 -0
- package/dist/init/discover-worker.js +111 -0
- package/dist/init/discover-worker.js.map +1 -0
- package/dist/init/handover.d.ts +16 -0
- package/dist/init/handover.d.ts.map +1 -0
- package/dist/init/handover.js +92 -0
- package/dist/init/handover.js.map +1 -0
- package/dist/init/howtos.d.ts +20 -0
- package/dist/init/howtos.d.ts.map +1 -0
- package/dist/init/howtos.js +90 -0
- package/dist/init/howtos.js.map +1 -0
- package/dist/init/init-record.d.ts +134 -0
- package/dist/init/init-record.d.ts.map +1 -0
- package/dist/init/init-record.js +339 -0
- package/dist/init/init-record.js.map +1 -0
- package/dist/init/install-paths.d.ts +6 -0
- package/dist/init/install-paths.d.ts.map +1 -0
- package/dist/init/install-paths.js +87 -0
- package/dist/init/install-paths.js.map +1 -0
- package/dist/init/keep-answer.d.ts +43 -0
- package/dist/init/keep-answer.d.ts.map +1 -0
- package/dist/init/keep-answer.js +118 -0
- package/dist/init/keep-answer.js.map +1 -0
- package/dist/init/keep-gate.d.ts +30 -0
- package/dist/init/keep-gate.d.ts.map +1 -0
- package/dist/init/keep-gate.js +178 -0
- package/dist/init/keep-gate.js.map +1 -0
- package/dist/init/keep-list.d.ts +67 -0
- package/dist/init/keep-list.d.ts.map +1 -0
- package/dist/init/keep-list.js +232 -0
- package/dist/init/keep-list.js.map +1 -0
- package/dist/init/keep.d.ts +52 -0
- package/dist/init/keep.d.ts.map +1 -0
- package/dist/init/keep.js +393 -0
- package/dist/init/keep.js.map +1 -0
- package/dist/init/look-back-mine.d.ts +37 -0
- package/dist/init/look-back-mine.d.ts.map +1 -0
- package/dist/init/look-back-mine.js +215 -0
- package/dist/init/look-back-mine.js.map +1 -0
- package/dist/init/look-back.d.ts +81 -0
- package/dist/init/look-back.d.ts.map +1 -0
- package/dist/init/look-back.js +170 -0
- package/dist/init/look-back.js.map +1 -0
- package/dist/init/miners.d.ts +46 -0
- package/dist/init/miners.d.ts.map +1 -0
- package/dist/init/miners.js +141 -0
- package/dist/init/miners.js.map +1 -0
- package/dist/init/name-call.d.ts +37 -0
- package/dist/init/name-call.d.ts.map +1 -0
- package/dist/init/name-call.js +151 -0
- package/dist/init/name-call.js.map +1 -0
- package/dist/init/plain-file.d.ts.map +1 -1
- package/dist/init/plain-file.js +3 -0
- package/dist/init/plain-file.js.map +1 -1
- package/dist/init/prefs.d.ts +70 -0
- package/dist/init/prefs.d.ts.map +1 -0
- package/dist/init/prefs.js +282 -0
- package/dist/init/prefs.js.map +1 -0
- package/dist/init/relay.d.ts +15 -0
- package/dist/init/relay.d.ts.map +1 -0
- package/dist/init/relay.js +15 -0
- package/dist/init/relay.js.map +1 -0
- package/dist/init/replay-runs.d.ts +121 -0
- package/dist/init/replay-runs.d.ts.map +1 -0
- package/dist/init/replay-runs.js +457 -0
- package/dist/init/replay-runs.js.map +1 -0
- package/dist/init/replay-tamper.d.ts +18 -0
- package/dist/init/replay-tamper.d.ts.map +1 -0
- package/dist/init/replay-tamper.js +87 -0
- package/dist/init/replay-tamper.js.map +1 -0
- package/dist/init/review-screen.d.ts +74 -0
- package/dist/init/review-screen.d.ts.map +1 -0
- package/dist/init/review-screen.js +258 -0
- package/dist/init/review-screen.js.map +1 -0
- package/dist/init/review-tty.d.ts +29 -0
- package/dist/init/review-tty.d.ts.map +1 -0
- package/dist/init/review-tty.js +218 -0
- package/dist/init/review-tty.js.map +1 -0
- package/dist/init/review.d.ts +12 -0
- package/dist/init/review.d.ts.map +1 -0
- package/dist/init/review.js +12 -0
- package/dist/init/review.js.map +1 -0
- package/dist/init/run.d.ts +87 -0
- package/dist/init/run.d.ts.map +1 -0
- package/dist/init/run.js +347 -0
- package/dist/init/run.js.map +1 -0
- package/dist/init/sessions.d.ts +63 -0
- package/dist/init/sessions.d.ts.map +1 -0
- package/dist/init/sessions.js +377 -0
- package/dist/init/sessions.js.map +1 -0
- package/dist/init/transcript.d.ts +81 -0
- package/dist/init/transcript.d.ts.map +1 -0
- package/dist/init/transcript.js +216 -0
- package/dist/init/transcript.js.map +1 -0
- package/dist/init/types.d.ts +139 -0
- package/dist/init/types.d.ts.map +1 -0
- package/dist/init/types.js +2 -0
- package/dist/init/types.js.map +1 -0
- package/dist/notes/cold-start.d.ts +5 -213
- package/dist/notes/cold-start.d.ts.map +1 -1
- package/dist/notes/cold-start.js +5 -654
- package/dist/notes/cold-start.js.map +1 -1
- package/dist/notes/edit-overlap.d.ts.map +1 -1
- package/dist/notes/edit-overlap.js +4 -1
- package/dist/notes/edit-overlap.js.map +1 -1
- package/dist/notes/notes.d.ts +8 -4
- package/dist/notes/notes.d.ts.map +1 -1
- package/dist/notes/notes.js +9 -7
- package/dist/notes/notes.js.map +1 -1
- package/dist/notes/pr-reviews.d.ts +4 -0
- package/dist/notes/pr-reviews.d.ts.map +1 -1
- package/dist/notes/pr-reviews.js +6 -5
- package/dist/notes/pr-reviews.js.map +1 -1
- package/dist/notes/repo-trail.d.ts +1 -1
- package/dist/notes/repo-trail.d.ts.map +1 -1
- package/dist/notes/repo-trail.js +24 -4
- package/dist/notes/repo-trail.js.map +1 -1
- package/dist/search/grep.d.ts.map +1 -1
- package/dist/search/grep.js +4 -2
- package/dist/search/grep.js.map +1 -1
- package/dist/search/user-regexp.d.ts +26 -0
- package/dist/search/user-regexp.d.ts.map +1 -0
- package/dist/search/user-regexp.js +150 -0
- package/dist/search/user-regexp.js.map +1 -0
- package/dist/skills/anchors-cli.d.ts +5 -0
- package/dist/skills/anchors-cli.d.ts.map +1 -1
- package/dist/skills/anchors-cli.js +7 -2
- package/dist/skills/anchors-cli.js.map +1 -1
- package/dist/skills/anchors-wide.js +2 -2
- package/dist/skills/anchors-wide.js.map +1 -1
- package/dist/skills/cli-skills-1b.d.ts +17 -0
- package/dist/skills/cli-skills-1b.d.ts.map +1 -0
- package/dist/skills/cli-skills-1b.js +166 -0
- package/dist/skills/cli-skills-1b.js.map +1 -0
- package/dist/skills/cli-skills-2.d.ts +35 -0
- package/dist/skills/cli-skills-2.d.ts.map +1 -0
- package/dist/skills/cli-skills-2.js +129 -0
- package/dist/skills/cli-skills-2.js.map +1 -0
- package/dist/skills/cli-skills-report-1b.d.ts +49 -0
- package/dist/skills/cli-skills-report-1b.d.ts.map +1 -0
- package/dist/skills/cli-skills-report-1b.js +191 -0
- package/dist/skills/cli-skills-report-1b.js.map +1 -0
- package/dist/skills/cli-skills-report.d.ts +86 -0
- package/dist/skills/cli-skills-report.d.ts.map +1 -0
- package/dist/skills/cli-skills-report.js +121 -0
- package/dist/skills/cli-skills-report.js.map +1 -0
- package/dist/skills/cli-skills.d.ts +30 -0
- package/dist/skills/cli-skills.d.ts.map +1 -0
- package/dist/skills/cli-skills.js +379 -0
- package/dist/skills/cli-skills.js.map +1 -0
- package/dist/skills/compile-split.d.ts.map +1 -1
- package/dist/skills/compile-split.js +18 -0
- package/dist/skills/compile-split.js.map +1 -1
- package/dist/skills/compile-words.d.ts +4 -1
- package/dist/skills/compile-words.d.ts.map +1 -1
- package/dist/skills/compile-words.js +68 -8
- package/dist/skills/compile-words.js.map +1 -1
- package/dist/skills/compile.d.ts +7 -0
- package/dist/skills/compile.d.ts.map +1 -1
- package/dist/skills/compile.js +17 -0
- package/dist/skills/compile.js.map +1 -1
- package/dist/skills/credit.d.ts +86 -0
- package/dist/skills/credit.d.ts.map +1 -0
- package/dist/skills/credit.js +259 -0
- package/dist/skills/credit.js.map +1 -0
- package/dist/skills/fold-gated.d.ts +3 -0
- package/dist/skills/fold-gated.d.ts.map +1 -0
- package/dist/skills/fold-gated.js +78 -0
- package/dist/skills/fold-gated.js.map +1 -0
- package/dist/skills/fold.d.ts +87 -0
- package/dist/skills/fold.d.ts.map +1 -0
- package/dist/skills/fold.js +348 -0
- package/dist/skills/fold.js.map +1 -0
- package/dist/skills/follow-learnings.d.ts +128 -0
- package/dist/skills/follow-learnings.d.ts.map +1 -0
- package/dist/skills/follow-learnings.js +278 -0
- package/dist/skills/follow-learnings.js.map +1 -0
- package/dist/skills/learning-steps.d.ts +43 -0
- package/dist/skills/learning-steps.d.ts.map +1 -0
- package/dist/skills/learning-steps.js +294 -0
- package/dist/skills/learning-steps.js.map +1 -0
- package/dist/skills/lesson-gate.d.ts +25 -0
- package/dist/skills/lesson-gate.d.ts.map +1 -0
- package/dist/skills/lesson-gate.js +316 -0
- package/dist/skills/lesson-gate.js.map +1 -0
- package/dist/skills/offer-drift.d.ts +35 -0
- package/dist/skills/offer-drift.d.ts.map +1 -0
- package/dist/skills/offer-drift.js +98 -0
- package/dist/skills/offer-drift.js.map +1 -0
- package/dist/skills/offer-lesson.d.ts +31 -0
- package/dist/skills/offer-lesson.d.ts.map +1 -0
- package/dist/skills/offer-lesson.js +123 -0
- package/dist/skills/offer-lesson.js.map +1 -0
- package/dist/skills/offer-lines.d.ts +40 -0
- package/dist/skills/offer-lines.d.ts.map +1 -0
- package/dist/skills/offer-lines.js +80 -0
- package/dist/skills/offer-lines.js.map +1 -0
- package/dist/skills/offer-moment.d.ts +102 -0
- package/dist/skills/offer-moment.d.ts.map +1 -0
- package/dist/skills/offer-moment.js +260 -0
- package/dist/skills/offer-moment.js.map +1 -0
- package/dist/skills/offer-repair.d.ts +36 -0
- package/dist/skills/offer-repair.d.ts.map +1 -0
- package/dist/skills/offer-repair.js +212 -0
- package/dist/skills/offer-repair.js.map +1 -0
- package/dist/skills/offer-retire.d.ts +53 -0
- package/dist/skills/offer-retire.d.ts.map +1 -0
- package/dist/skills/offer-retire.js +149 -0
- package/dist/skills/offer-retire.js.map +1 -0
- package/dist/skills/offer-update.d.ts +54 -0
- package/dist/skills/offer-update.d.ts.map +1 -0
- package/dist/skills/offer-update.js +115 -0
- package/dist/skills/offer-update.js.map +1 -0
- package/dist/skills/offer-words-1b.d.ts +32 -0
- package/dist/skills/offer-words-1b.d.ts.map +1 -0
- package/dist/skills/offer-words-1b.js +80 -0
- package/dist/skills/offer-words-1b.js.map +1 -0
- package/dist/skills/offer-words-2.d.ts +123 -0
- package/dist/skills/offer-words-2.d.ts.map +1 -0
- package/dist/skills/offer-words-2.js +194 -0
- package/dist/skills/offer-words-2.js.map +1 -0
- package/dist/skills/offer-words.d.ts +65 -0
- package/dist/skills/offer-words.d.ts.map +1 -0
- package/dist/skills/offer-words.js +205 -0
- package/dist/skills/offer-words.js.map +1 -0
- package/dist/skills/offers.d.ts +66 -0
- package/dist/skills/offers.d.ts.map +1 -0
- package/dist/skills/offers.js +284 -0
- package/dist/skills/offers.js.map +1 -0
- package/dist/skills/runblock.d.ts +2 -0
- package/dist/skills/runblock.d.ts.map +1 -1
- package/dist/skills/runblock.js +11 -6
- package/dist/skills/runblock.js.map +1 -1
- package/dist/skills/save-gate.d.ts +64 -0
- package/dist/skills/save-gate.d.ts.map +1 -0
- package/dist/skills/save-gate.js +354 -0
- package/dist/skills/save-gate.js.map +1 -0
- package/dist/skills/save-verify.d.ts +59 -0
- package/dist/skills/save-verify.d.ts.map +1 -0
- package/dist/skills/save-verify.js +390 -0
- package/dist/skills/save-verify.js.map +1 -0
- package/dist/skills/settings.d.ts +12 -2
- package/dist/skills/settings.d.ts.map +1 -1
- package/dist/skills/settings.js +24 -2
- package/dist/skills/settings.js.map +1 -1
- package/dist/skills/skills.d.ts +26 -8
- package/dist/skills/skills.d.ts.map +1 -1
- package/dist/skills/skills.js +105 -52
- package/dist/skills/skills.js.map +1 -1
- package/dist/skills/types.d.ts +8 -0
- package/dist/skills/types.d.ts.map +1 -1
- package/dist/skills/update-gate.d.ts +36 -0
- package/dist/skills/update-gate.d.ts.map +1 -0
- package/dist/skills/update-gate.js +357 -0
- package/dist/skills/update-gate.js.map +1 -0
- package/dist/skills/update-plan.d.ts +40 -0
- package/dist/skills/update-plan.d.ts.map +1 -0
- package/dist/skills/update-plan.js +196 -0
- package/dist/skills/update-plan.js.map +1 -0
- package/dist/skills/value-line.d.ts +94 -0
- package/dist/skills/value-line.d.ts.map +1 -0
- package/dist/skills/value-line.js +355 -0
- package/dist/skills/value-line.js.map +1 -0
- package/dist/telemetry/contract.d.ts +15 -1
- package/dist/telemetry/contract.d.ts.map +1 -1
- package/dist/telemetry/contract.js +80 -11
- package/dist/telemetry/contract.js.map +1 -1
- package/dist/telemetry/gate.js +4 -4
- package/dist/telemetry/gate.js.map +1 -1
- package/dist/telemetry/index.d.ts +1 -1
- package/dist/telemetry/index.d.ts.map +1 -1
- package/dist/telemetry/index.js +1 -1
- package/dist/telemetry/index.js.map +1 -1
- package/dist/telemetry/notice.js +5 -5
- package/dist/telemetry/notice.js.map +1 -1
- package/dist/telemetry/queue.d.ts.map +1 -1
- package/dist/telemetry/queue.js +7 -7
- package/dist/telemetry/queue.js.map +1 -1
- package/dist/telemetry/track.d.ts.map +1 -1
- package/dist/telemetry/track.js +4 -3
- package/dist/telemetry/track.js.map +1 -1
- package/dist/trace/checks.d.ts.map +1 -1
- package/dist/trace/checks.js +10 -2
- package/dist/trace/checks.js.map +1 -1
- package/dist/trace/gate-file.d.ts +1 -1
- package/dist/trace/gate-file.d.ts.map +1 -1
- package/dist/trace/gate-file.js +3 -3
- package/dist/trace/gate-file.js.map +1 -1
- package/dist/upkeep-run.d.ts.map +1 -1
- package/dist/upkeep-run.js +2 -23
- package/dist/upkeep-run.js.map +1 -1
- package/dist/upkeep.d.ts.map +1 -1
- package/dist/upkeep.js +2 -3
- package/dist/upkeep.js.map +1 -1
- package/dist/util/private-fs.d.ts +6 -0
- package/dist/util/private-fs.d.ts.map +1 -1
- package/dist/util/private-fs.js +9 -1
- package/dist/util/private-fs.js.map +1 -1
- package/dist/util/state.d.ts.map +1 -1
- package/dist/util/state.js +17 -3
- package/dist/util/state.js.map +1 -1
- package/package.json +1 -1
- package/dist/skills/found-skill.d.ts +0 -35
- package/dist/skills/found-skill.d.ts.map +0 -1
- package/dist/skills/found-skill.js +0 -66
- package/dist/skills/found-skill.js.map +0 -1
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
import { readJsonSafe } from '../util/private-fs.js';
|
|
2
|
+
import { housekeeping, skillsGate, withSkillSession } from '../trace/skill-session.js';
|
|
3
|
+
import { checkedSuccess, cutAtCompaction, runHelpers, writeRunSheet } from '../trace/runs.js';
|
|
4
|
+
import { sessionPath } from '../trace/gate-file.js';
|
|
5
|
+
import { childCheckouts, repoPlace } from '../notes/home.js';
|
|
6
|
+
import { hostFacts } from '../skills/host-facts.js';
|
|
7
|
+
import { creditCalls, creditRun } from '../skills/ledger.js';
|
|
8
|
+
import { listHeld, markHeldShown } from '../skills/store-held.js';
|
|
9
|
+
import { candidatesHere, indexLine, refusedAtRecall } from '../skills/recall.js';
|
|
10
|
+
import { injectionFor, runBlock, runProbes, withReadyFailed } from '../skills/runblock.js';
|
|
11
|
+
import { recallMarks, stepLearnings, withFixes } from '../skills/follow-learnings.js';
|
|
12
|
+
import { flatLine } from '../notes/flatten.js';
|
|
13
|
+
import { FROM_TRAIL } from '../skills/directive-words.js';
|
|
14
|
+
import { canAsk, hookError, syncGate, trimInjected } from './skills-hook-util.js';
|
|
15
|
+
import { goneAnchors } from '../skills/anchors.js';
|
|
16
|
+
import { markMissingSaid, markUnusedSaid, unusedSince } from '../skills/staleness.js';
|
|
17
|
+
import { initHandover } from '../init/handover.js';
|
|
18
|
+
import { compactWallLines, wallsAtStop } from './walls-hook.js';
|
|
19
|
+
import { refreshLessonIndex } from '../notes/lesson-index.js';
|
|
20
|
+
import { startValue } from '../skills/value-line.js';
|
|
21
|
+
import { CODEX_COPY } from '../hosts/codex-trust.js';
|
|
22
|
+
const MAX_CHILD_KEYS = 8;
|
|
23
|
+
const MAX_HELD_SHOWN = 2;
|
|
24
|
+
const HOSTS = { claude: 'Claude Code', cursor: 'Cursor', copilot: 'Copilot', codex: 'Codex', gemini: 'Gemini' };
|
|
25
|
+
/**
|
|
26
|
+
* D101: with skills on, the session's first words about skills, so a later `trail skills add` directive is not the
|
|
27
|
+
* first the agent hears of them (an agent refused one as injection when the session had only described learnings).
|
|
28
|
+
* D117 (1): the third line names the other commands Trail may ask for (a lesson at moments 3 and 4, init's relay);
|
|
29
|
+
* phase 2 (1.8), the fourth (c8; each line stays at most 320 characters): a change to a skill at moments 5 and 6, the
|
|
30
|
+
* draft a "show me" prints, and the person-only restore.
|
|
31
|
+
*/
|
|
32
|
+
export const SKILLS_INTRO = [
|
|
33
|
+
'[trail] Trail, the tool this person installed, keeps commands that worked here as skills, and keeps one only after the person says yes.',
|
|
34
|
+
'[trail] So Trail may ask you to run trail skills add <name> --run <id>, but only after the person typed yes to its offer or asked to save a job; that message quotes what they typed.',
|
|
35
|
+
"[trail] Trail may also ask you to run trail skills lesson [<skill>] --offer <id> after the person typed yes to keeping a lesson, or to run trail keep <numbers> with the numbers they typed after trail init's list. Trail checks their answer in this session before it keeps anything.",
|
|
36
|
+
"[trail] Trail may also ask you to run trail skills update <name> --offer <id> after the person typed yes to a change it showed, or trail skills draft <id> --print to show it first. It checks their answer before it changes a skill. An older version (trail skills restore <name> --version <n>) is theirs to bring back.",
|
|
37
|
+
];
|
|
38
|
+
/** 3.1. */
|
|
39
|
+
export function sessionStartSkills(input, dir, env = process.env, deps = {}) {
|
|
40
|
+
return sessionStartSkillsRun(input, dir, env, deps).out;
|
|
41
|
+
}
|
|
42
|
+
/** 3.1, with the telemetry it collected (1b's `skill_stale`), for the caller to send after it. */
|
|
43
|
+
export function sessionStartSkillsRun(input, dir, env = process.env, deps = {}) {
|
|
44
|
+
const sent = [];
|
|
45
|
+
try {
|
|
46
|
+
const g = (deps.gate ?? skillsGate)(input, dir, env);
|
|
47
|
+
if (!g.ok || g.ctx.subagent)
|
|
48
|
+
return { out: {}, sent };
|
|
49
|
+
const ctx = g.ctx;
|
|
50
|
+
const source = typeof input?.source === 'string' && input.source ? input.source : 'startup';
|
|
51
|
+
const cwd = typeof input?.cwd === 'string' && input.cwd ? input.cwd : dir;
|
|
52
|
+
const out = withSkillSession(ctx, { catchUp: ctx.fold && source === 'compact' }, (st, fold) => inside(ctx, st, fold, source, cwd, deps.probes ?? {}, sent));
|
|
53
|
+
if (!out)
|
|
54
|
+
return { out: {}, sent };
|
|
55
|
+
try {
|
|
56
|
+
housekeeping(ctx.now, env);
|
|
57
|
+
}
|
|
58
|
+
catch { /* next hour */ }
|
|
59
|
+
return { out, sent };
|
|
60
|
+
}
|
|
61
|
+
catch (e) {
|
|
62
|
+
hookError('session-start', e, env);
|
|
63
|
+
return { out: {}, sent: [] };
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/** 3.1 step 8 (4.18, 4.19): the index's gone-anchor check, and `skill_stale` once per skill for missing (a day) and unused. */
|
|
67
|
+
function staleChecks(ctx, cands, sent) {
|
|
68
|
+
const { env, now } = ctx;
|
|
69
|
+
for (const c of cands) {
|
|
70
|
+
try {
|
|
71
|
+
if (c.state && unusedSince(c.state, now) && markUnusedSaid(c.ref.id, env, now))
|
|
72
|
+
sent.push(['skill_stale', { reason: 'unused' }]);
|
|
73
|
+
}
|
|
74
|
+
catch { /* said next time */ }
|
|
75
|
+
}
|
|
76
|
+
return (c) => {
|
|
77
|
+
if (!ctx.checkout)
|
|
78
|
+
return false;
|
|
79
|
+
const gone = goneAnchors(c.skill, ctx.checkout, env).length > 0;
|
|
80
|
+
try {
|
|
81
|
+
if (gone && markMissingSaid(c.ref.id, env, now))
|
|
82
|
+
sent.push(['skill_stale', { reason: 'missing' }]);
|
|
83
|
+
}
|
|
84
|
+
catch { /* said next time */ }
|
|
85
|
+
return gone;
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
function inside(ctx, st, fold, source, cwd, probes, sent) {
|
|
89
|
+
const { env, now } = ctx;
|
|
90
|
+
// 3. The epoch. Read before anything is written: the stored file still has what came before this hook.
|
|
91
|
+
const had = readJsonSafe(sessionPath(ctx.sessionId, '.json', env))?.skills != null;
|
|
92
|
+
let openAtBoundary = [];
|
|
93
|
+
let liveBefore = null;
|
|
94
|
+
const closedNow = [...(fold?.closed ?? [])];
|
|
95
|
+
if (source === 'compact' || (source === 'clear' && had)) {
|
|
96
|
+
if (fold && fold.compactions > 0) {
|
|
97
|
+
// The fold met the compaction line and bumped the epoch: the runs it cut are the closed epoch's last open ones.
|
|
98
|
+
const last = [...st.runs].reverse().find((r) => r.epoch === st.epoch - 1);
|
|
99
|
+
if (last && fold.closed.includes(last))
|
|
100
|
+
openAtBoundary = [last.id];
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
liveBefore = new Set(st.injected.filter((i) => i.live).map((i) => i.injId));
|
|
104
|
+
// b2: repairs in the runs it closes read repo paths as ./ and the home as $HOME.
|
|
105
|
+
const closed = cutAtCompaction(st, { home: env.HOME || undefined, root: ctx.checkout || undefined });
|
|
106
|
+
closedNow.push(...closed);
|
|
107
|
+
writeSheets(ctx, closed);
|
|
108
|
+
openAtBoundary = closed.map((r) => r.id);
|
|
109
|
+
st.epoch += 1;
|
|
110
|
+
// A clear writes no compaction line, so the fold has nothing to skip (g3 open issue 4).
|
|
111
|
+
st.pendingBoundary = source === 'compact';
|
|
112
|
+
}
|
|
113
|
+
if (st.pendingOffer && st.pendingOffer.shownAt === null)
|
|
114
|
+
st.pendingOffer = null;
|
|
115
|
+
for (const inj of st.injected)
|
|
116
|
+
if (inj.epoch < st.epoch)
|
|
117
|
+
inj.live = false;
|
|
118
|
+
}
|
|
119
|
+
// b7 review: an auto-compaction mid-turn closes the runs, and their calls go when this state is written, before any
|
|
120
|
+
// Stop: the walls they hit are noted now, as Stop notes them (3.5 step 1; idempotent with the Stop that follows).
|
|
121
|
+
if (ctx.learn && closedNow.some((r) => r.calls.some((c) => c.wall))) {
|
|
122
|
+
try {
|
|
123
|
+
wallsAtStop(st, ctx);
|
|
124
|
+
}
|
|
125
|
+
catch (e) {
|
|
126
|
+
hookError('session-start', e, env);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
// D117 (4): the lesson index the wall fix reads, warm from the session's first command.
|
|
130
|
+
refreshLessonIndex(ctx.repoKey, env);
|
|
131
|
+
// 5. Scope keys: this repo, or the checkouts inside a folder that isn't one.
|
|
132
|
+
const keys = ctx.repoKey ? [ctx.repoKey] : [];
|
|
133
|
+
if (!ctx.checkout) {
|
|
134
|
+
for (const p of childCheckouts(cwd).slice(0, MAX_CHILD_KEYS)) {
|
|
135
|
+
const k = repoPlace(p, env).key;
|
|
136
|
+
if (k && !keys.includes(k))
|
|
137
|
+
keys.push(k);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
st.scopeKeys = keys;
|
|
141
|
+
// 6. The index line.
|
|
142
|
+
const { cands, needsFix, adopted } = candidatesHere({ repoKeys: keys, checkout: ctx.checkout, env });
|
|
143
|
+
// Phase 2 (4.6): a proposal the person copied over their file is Trail's own again.
|
|
144
|
+
for (const _ of adopted)
|
|
145
|
+
sent.push(['skill_changed', { op: 'adopted' }]);
|
|
146
|
+
const context = [...SKILLS_INTRO];
|
|
147
|
+
let gone;
|
|
148
|
+
try {
|
|
149
|
+
gone = staleChecks(ctx, cands, sent);
|
|
150
|
+
}
|
|
151
|
+
catch (e) {
|
|
152
|
+
hookError('session-start', e, env);
|
|
153
|
+
}
|
|
154
|
+
const index = indexLine(cands, needsFix, { now, gone });
|
|
155
|
+
if (index)
|
|
156
|
+
context.push(index);
|
|
157
|
+
// Phase 2 (D137, 4.17): on Codex, why Trail only brings skills back here, once, in the intro (never after a compaction).
|
|
158
|
+
if (ctx.host === 'codex' && source !== 'compact') {
|
|
159
|
+
const why = ctx.learnOff === 'ephemeral' ? CODEX_COPY.ephemeral : ctx.learnOff === 'host' ? CODEX_COPY.notTierA : null;
|
|
160
|
+
if (why)
|
|
161
|
+
context.push(`[trail] ${why}`);
|
|
162
|
+
}
|
|
163
|
+
// 7. Held items, once each (interactive only), at a startup or resume of another session than the one that held
|
|
164
|
+
// them (D93): a compaction or a clear of the holding session never spends the notice.
|
|
165
|
+
let notice;
|
|
166
|
+
if (ctx.entry === 'interactive' && (source === 'startup' || source === 'resume')) {
|
|
167
|
+
const lines = heldLines(env, now, ctx.sessionHash);
|
|
168
|
+
if (lines.length && hostFacts(env, ctx.host).startNotice)
|
|
169
|
+
notice = lines.join('\n');
|
|
170
|
+
else
|
|
171
|
+
for (const l of lines)
|
|
172
|
+
context.push(heldContext(l));
|
|
173
|
+
}
|
|
174
|
+
// Phase 2 (3.1 step 3, 4.14, D134): the weekly value line, at a startup or resume only. `startValue` claims the week
|
|
175
|
+
// under the lock, so two sessions that start together say it once (c5 review R1).
|
|
176
|
+
try {
|
|
177
|
+
const v = startValue({ source, learn: ctx.learn, subagent: ctx.subagent, host: ctx.host, repoKey: ctx.repoKey }, env, now);
|
|
178
|
+
if (v?.context)
|
|
179
|
+
context.push(v.context);
|
|
180
|
+
if (v?.notice)
|
|
181
|
+
notice = notice ? `${notice}\n${v.notice}` : v.notice;
|
|
182
|
+
if (v)
|
|
183
|
+
sent.push(['skill_value', { channel: v.channel }]);
|
|
184
|
+
}
|
|
185
|
+
catch (e) {
|
|
186
|
+
hookError('session-start', e, env);
|
|
187
|
+
}
|
|
188
|
+
// 8. The block a compaction cut short.
|
|
189
|
+
if (source === 'compact') {
|
|
190
|
+
const block = reinject(ctx, st, openAtBoundary, liveBefore, cands, probes);
|
|
191
|
+
if (block)
|
|
192
|
+
context.push(block);
|
|
193
|
+
// 1b (3.1 step 9, R38): the fixes of the walls hit in the epoch just closed, at most 2.
|
|
194
|
+
try {
|
|
195
|
+
context.push(...compactWallLines(st, ctx));
|
|
196
|
+
}
|
|
197
|
+
catch (e) {
|
|
198
|
+
hookError('session-start', e, env);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
// 1b (3.1 step 10, J02 leg C): an init list still waiting for the person, handed over once.
|
|
202
|
+
if (ctx.learn && ctx.repoKey) {
|
|
203
|
+
const handover = initHandover(ctx.repoKey, { id: ctx.sessionId, transcriptPath: ctx.transcriptPath }, env, now);
|
|
204
|
+
if (handover)
|
|
205
|
+
context.push(handover);
|
|
206
|
+
}
|
|
207
|
+
trimInjected(st);
|
|
208
|
+
syncGate(ctx, st);
|
|
209
|
+
const out = {};
|
|
210
|
+
if (context.length)
|
|
211
|
+
out.context = context.join('\n');
|
|
212
|
+
if (notice)
|
|
213
|
+
out.notice = notice;
|
|
214
|
+
return out;
|
|
215
|
+
}
|
|
216
|
+
/** As the catch-up does for the runs it closes: a sheet for each with steps. */
|
|
217
|
+
function writeSheets(ctx, closed) {
|
|
218
|
+
for (const run of closed) {
|
|
219
|
+
if (run.stepCalls <= 0 || !run.calls.length || run.sheet !== 'none')
|
|
220
|
+
continue;
|
|
221
|
+
try {
|
|
222
|
+
writeRunSheet(run, checkedSuccess(run, null), { host: ctx.host, tier: ctx.tier, sessionHash: ctx.sessionHash, helpers: runHelpers(run) }, ctx.env);
|
|
223
|
+
}
|
|
224
|
+
catch {
|
|
225
|
+
/* the calls stay, so the next catch-up writes it */
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
function heldLines(env, now, sessionHash) {
|
|
230
|
+
const items = listHeld(env, now).filter((h) => h.shownAt === null && h.session !== sessionHash).slice(0, MAX_HELD_SHOWN);
|
|
231
|
+
return items.map((h) => {
|
|
232
|
+
markHeldShown(h.name, env, now);
|
|
233
|
+
return heldLine(h);
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
export function heldLine(h) {
|
|
237
|
+
const host = HOSTS[h.host] ?? 'Another agent';
|
|
238
|
+
const name = flatLine(h.name, 60);
|
|
239
|
+
return h.why === 'host'
|
|
240
|
+
? `trail: ${host} started a skill ${name} in your last session. Trail can't check which steps ran there, so it wasn't kept. Keep it: trail skills keep ${name}`
|
|
241
|
+
: `trail: ${host} started a skill ${name} in your last session without your yes, so it wasn't kept. Keep it: trail skills keep ${name}`;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* A held item where the host shows no start notice (D101): from Trail, why the agent is the one to say it, and the
|
|
245
|
+
* line for the person. No words of theirs to quote: nobody asked; the reason is Trail's own.
|
|
246
|
+
*/
|
|
247
|
+
export function heldContext(line) {
|
|
248
|
+
return `[trail] ${FROM_TRAIL} Trail held a skill from their last session instead of keeping it, and it can't show them a message in this app itself. `
|
|
249
|
+
+ `So they know, tell them once, at the start of your first reply: "${flatLine(line, 400).replace(/^trail: /, '')}"`;
|
|
250
|
+
}
|
|
251
|
+
const BLOCK_CUES = new Set(['job', 'name', 'compact']);
|
|
252
|
+
/** 3.1 step 8. */
|
|
253
|
+
function reinject(ctx, st, openAtBoundary, liveBefore, cands, probes) {
|
|
254
|
+
const inj = [...st.injected].reverse().find((i) => i.epoch === st.epoch - 1 && BLOCK_CUES.has(i.cue));
|
|
255
|
+
if (!inj || !inj.runId || !openAtBoundary.includes(inj.runId))
|
|
256
|
+
return null;
|
|
257
|
+
if (liveBefore && !liveBefore.has(inj.injId))
|
|
258
|
+
return null;
|
|
259
|
+
// Its check passed: by the credit already settled, or by the calls the boundary cut (no Stop may have run since).
|
|
260
|
+
if (st.credit.some((c) => c.injId === inj.injId && c.check === 'passed'))
|
|
261
|
+
return null;
|
|
262
|
+
if (creditRun(inj, creditCalls(inj, st.runs, ctx.env)).check === 'passed')
|
|
263
|
+
return null;
|
|
264
|
+
const c = cands.find((x) => x.ref.id === inj.skillId);
|
|
265
|
+
if (!c || refusedAtRecall(c.skill, inj.params))
|
|
266
|
+
return null;
|
|
267
|
+
const results = runProbes(c.skill, ctx.checkout, ctx.now, ctx.env, probes);
|
|
268
|
+
// Part 7: the same say of the person's learnings as the block it re-sends.
|
|
269
|
+
const marks = recallMarks(c.skill.steps, stepLearnings({ repoKeys: st.scopeKeys, checkout: ctx.checkout, env: ctx.env }));
|
|
270
|
+
const block = runBlock(c, { values: inj.params, notes: [], probes: results, canAsk: canAsk(ctx), header: 'compact', lastFail: null, marks });
|
|
271
|
+
st.injected.push(withReadyFailed(injectionFor({ ...c, skill: withFixes(c.skill, marks) }, inj.params, 'compact', st.epoch, ctx.now), results));
|
|
272
|
+
return block;
|
|
273
|
+
}
|
|
274
|
+
//# sourceMappingURL=start-skills.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"start-skills.js","sourceRoot":"","sources":["../../src/claude/start-skills.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAgB,MAAM,2BAA2B,CAAC;AACrG,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,aAAa,EAAmB,MAAM,kBAAkB,CAAC;AAC/G,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAiB,MAAM,yBAAyB,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,eAAe,EAAkB,MAAM,qBAAqB,CAAC;AACjG,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAkB,MAAM,uBAAuB,CAAC;AAC3G,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AACtF,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAa,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,MAAM,cAAc,GAAG,CAAC,CAAC;AACzB,MAAM,cAAc,GAAG,CAAC,CAAC;AACzB,MAAM,KAAK,GAA2B,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAExI;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,YAAY,GAA8C;IACrE,yIAAyI;IACzI,uLAAuL;IACvL,0RAA0R;IAC1R,8TAA8T;CAC/T,CAAC;AAOF,WAAW;AACX,MAAM,UAAU,kBAAkB,CAAC,KAAU,EAAE,GAAW,EAAE,MAAyB,OAAO,CAAC,GAAG,EAAE,OAA2B,EAAE;IAC7H,OAAO,qBAAqB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC;AAC1D,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,qBAAqB,CAAC,KAAU,EAAE,GAAW,EAAE,MAAyB,OAAO,CAAC,GAAG,EAAE,OAA2B,EAAE;IAChI,MAAM,IAAI,GAAS,EAAE,CAAC;IACtB,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACrD,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ;YAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACtD,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;QAClB,MAAM,MAAM,GAAG,OAAO,KAAK,EAAE,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5F,MAAM,GAAG,GAAG,OAAO,KAAK,EAAE,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAC1E,MAAM,GAAG,GAAG,gBAAgB,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;QAC5J,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC;YAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC;QAC7D,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IACvB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,SAAS,CAAC,eAAe,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QACnC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,+HAA+H;AAC/H,SAAS,WAAW,CAAC,GAAY,EAAE,KAAkB,EAAE,IAAU;IAC/D,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;IACzB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,IAAI,CAAC,CAAC,KAAK,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QACnI,CAAC;QAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,CAAC,CAAY,EAAE,EAAE;QACtB,IAAI,CAAC,GAAG,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAChC,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAChE,IAAI,CAAC;YACH,IAAI,IAAI,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QACrG,CAAC;QAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CAAC,GAAY,EAAE,EAAqB,EAAE,IAAuB,EAAE,MAAc,EAAE,GAAW,EAAE,MAAiB,EAAE,IAAU;IACtI,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;IACzB,uGAAuG;IACvG,MAAM,GAAG,GAAG,YAAY,CAAuB,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,EAAE,MAAM,IAAI,IAAI,CAAC;IACzG,IAAI,cAAc,GAAa,EAAE,CAAC;IAClC,IAAI,UAAU,GAAuB,IAAI,CAAC;IAC1C,MAAM,SAAS,GAAe,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;IACxD,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,KAAK,OAAO,IAAI,GAAG,CAAC,EAAE,CAAC;QACxD,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YACjC,gHAAgH;YAChH,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAC1E,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,cAAc,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrE,CAAC;aAAM,CAAC;YACN,UAAU,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5E,iFAAiF;YACjF,MAAM,MAAM,GAAG,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,IAAI,SAAS,EAAE,CAAC,CAAC;YACrG,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;YAC1B,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACzB,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzC,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC;YACd,wFAAwF;YACxF,EAAE,CAAC,eAAe,GAAG,MAAM,KAAK,SAAS,CAAC;QAC5C,CAAC;QACD,IAAI,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,YAAY,CAAC,OAAO,KAAK,IAAI;YAAE,EAAE,CAAC,YAAY,GAAG,IAAI,CAAC;QAChF,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,QAAQ;YAAE,IAAI,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK;gBAAE,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC;IAC5E,CAAC;IACD,oHAAoH;IACpH,kHAAkH;IAClH,IAAI,GAAG,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACpE,IAAI,CAAC;YAAC,WAAW,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAAC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YAAC,SAAS,CAAC,eAAe,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QAAC,CAAC;IACjF,CAAC;IAED,wFAAwF;IACxF,kBAAkB,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAErC,6EAA6E;IAC7E,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAClB,KAAK,MAAM,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,EAAE,CAAC;YAC7D,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IACD,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC;IAEpB,qBAAqB;IACrB,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;IACrG,oFAAoF;IACpF,KAAK,MAAM,CAAC,IAAI,OAAO;QAAE,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IACzE,MAAM,OAAO,GAAa,CAAC,GAAG,YAAY,CAAC,CAAC;IAC5C,IAAI,IAA6C,CAAC;IAClD,IAAI,CAAC;QAAC,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAAC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QAAC,SAAS,CAAC,eAAe,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IAAC,CAAC;IAC/F,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,IAAI,KAAK;QAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAE/B,yHAAyH;IACzH,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACjD,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;QACvH,IAAI,GAAG;YAAE,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,gHAAgH;IAChH,sFAAsF;IACtF,IAAI,MAA0B,CAAC;IAC/B,IAAI,GAAG,CAAC,KAAK,KAAK,aAAa,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,QAAQ,CAAC,EAAE,CAAC;QACjF,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;QACnD,IAAI,KAAK,CAAC,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,IAAY,CAAC,CAAC,WAAW;YAAE,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;YACvF,KAAK,MAAM,CAAC,IAAI,KAAK;gBAAE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,qHAAqH;IACrH,kFAAkF;IAClF,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,IAAY,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACnI,IAAI,CAAC,EAAE,OAAO;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,EAAE,MAAM;YAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACrE,IAAI,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC5D,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QAAC,SAAS,CAAC,eAAe,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IAAC,CAAC;IAEnD,uCAAuC;IACvC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3E,IAAI,KAAK;YAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,wFAAwF;QACxF,IAAI,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;QAAC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YAAC,SAAS,CAAC,eAAe,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QAAC,CAAC;IACvG,CAAC;IAED,4FAA4F;IAC5F,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,SAAS,EAAE,cAAc,EAAE,GAAG,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAChH,IAAI,QAAQ;YAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,YAAY,CAAC,EAAE,CAAC,CAAC;IACjB,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAClB,MAAM,GAAG,GAAY,EAAE,CAAC;IACxB,IAAI,OAAO,CAAC,MAAM;QAAE,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,IAAI,MAAM;QAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;IAChC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,gFAAgF;AAChF,SAAS,WAAW,CAAC,GAAY,EAAE,MAAkB;IACnD,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,GAAG,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK,KAAK,MAAM;YAAE,SAAS;QAC9E,IAAI,CAAC;YACH,aAAa,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QACrJ,CAAC;QAAC,MAAM,CAAC;YACP,oDAAoD;QACtD,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,GAAsB,EAAE,GAAS,EAAE,WAAmB;IACvE,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,OAAO,KAAK,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;IACzH,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACrB,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAChC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,CAA0C;IACjE,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC;IAC9C,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,CAAC,GAAG,KAAK,MAAM;QACrB,CAAC,CAAC,UAAU,IAAI,oBAAoB,IAAI,iHAAiH,IAAI,EAAE;QAC/J,CAAC,CAAC,UAAU,IAAI,oBAAoB,IAAI,yFAAyF,IAAI,EAAE,CAAC;AAC5I,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,WAAW,UAAU,0HAA0H;UAClJ,oEAAoE,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,CAAC;AACzH,CAAC;AAED,MAAM,UAAU,GAAG,IAAI,GAAG,CAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;AAE9E,kBAAkB;AAClB,SAAS,QAAQ,CAAC,GAAY,EAAE,EAAqB,EAAE,cAAwB,EAAE,UAA8B,EAAE,KAAkB,EAAE,MAAiB;IACpJ,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,KAAK,GAAG,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACtG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3E,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1D,kHAAkH;IAClH,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IACtF,IAAI,SAAS,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACvF,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC;IACtD,IAAI,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5D,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC3E,2EAA2E;IAC3E,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC1H,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7I,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/I,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/dist/claude/state.d.ts
CHANGED
|
@@ -2,8 +2,12 @@ import type { AgentHost } from '../telemetry/contract.js';
|
|
|
2
2
|
export { LOCK_STALE_MS, acquireLock, acquireLockIn, releaseLockIn, cacheDir, emptyStats, patchStats, readStats, releaseLock, resolveContextDir, writeJsonAtomic, writeStats, } from '../util/state.js';
|
|
3
3
|
export type { Stats } from '../util/state.js';
|
|
4
4
|
export interface SessionState {
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
/** Prompts the prompt hook asked the graph about this session. A count:
|
|
6
|
+
* nothing the person typed is kept (spec section 6). Optional so files
|
|
7
|
+
* written before it still parse. */
|
|
8
|
+
promptAsks?: number;
|
|
9
|
+
/** The repo skills this session used, by name, to when it last went to the workspace as a run (skill-use.ts). */
|
|
10
|
+
skillsUsed?: Record<string, number>;
|
|
7
11
|
graftReads: number;
|
|
8
12
|
sourceReads: number;
|
|
9
13
|
/** Cumulative tokens saved this session via `ask --source` retrieval (est.). */
|
|
@@ -42,10 +46,10 @@ export interface SessionState {
|
|
|
42
46
|
* host that exposes no transcript, and on turn one of every session. */
|
|
43
47
|
inputCostMicros?: number;
|
|
44
48
|
inputTokensBilled?: number;
|
|
45
|
-
/** `uuid` of the last assistant entry already billed
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
+
/** `uuid` of the last assistant entry already billed. Each response is
|
|
50
|
+
* billed once, by the Stop read that first sees it (claude/tally.ts); a read
|
|
51
|
+
* that has to start over (no cursor, a lost one, a replaced transcript)
|
|
52
|
+
* bills nothing up to this entry again. */
|
|
49
53
|
lastBillingUuid?: string;
|
|
50
54
|
/** The signs the Stop hook has asked the agent to save a learning about
|
|
51
55
|
* this session (note-signals.ts keys), so each is asked about once and a
|
|
@@ -53,7 +57,7 @@ export interface SessionState {
|
|
|
53
57
|
noteAsks?: string[];
|
|
54
58
|
/** Set once this session has been rolled up into a `session_summary`
|
|
55
59
|
* telemetry event, so a resumed or long-lived session is counted once.
|
|
56
|
-
* A flag rather than deleting the file: the file still holds
|
|
60
|
+
* A flag rather than deleting the file: the file still holds
|
|
57
61
|
* `injectedPointers`, which a resumed session needs. */
|
|
58
62
|
summarized?: boolean;
|
|
59
63
|
/** Which host recorded this session, stamped on the first tool use. Lets the
|
|
@@ -70,4 +74,12 @@ export declare function sessionDir(d: string): string;
|
|
|
70
74
|
export declare function listSessionIds(d: string): string[];
|
|
71
75
|
export declare function readSession(d: string, id: string): SessionState;
|
|
72
76
|
export declare function writeSession(d: string, id: string, s: SessionState): void;
|
|
77
|
+
/**
|
|
78
|
+
* Take the prompt out of every session file an older version wrote here.
|
|
79
|
+
* Once per repo: the marker skips the read of every file on later session
|
|
80
|
+
* starts. Each file keeps its mtime, since the idle sweep that rolls sessions
|
|
81
|
+
* up into telemetry judges a session closed by it. Best-effort: a file that
|
|
82
|
+
* can't be read or written is tried again next time.
|
|
83
|
+
*/
|
|
84
|
+
export declare function dropStoredPrompts(d: string): void;
|
|
73
85
|
//# sourceMappingURL=state.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/claude/state.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EACL,aAAa,EACb,WAAW,EACX,aAAa,EACb,aAAa,EACb,QAAQ,EACR,UAAU,EACV,UAAU,EACV,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,UAAU,GACX,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,WAAW,YAAY;IAC3B,
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/claude/state.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EACL,aAAa,EACb,WAAW,EACX,aAAa,EACb,aAAa,EACb,QAAQ,EACR,UAAU,EACV,UAAU,EACV,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,UAAU,GACX,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,WAAW,YAAY;IAC3B;;wCAEoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iHAAiH;IACjH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IACxC,gFAAgF;IAChF,WAAW,EAAE,MAAM,CAAC;IACpB;;8DAE0D;IAC1D,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B;sEACkE;IAClE,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,wIAAwI;IACxI,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B;wEACoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;sFAEkF;IAClF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;iFAC6E;IAC7E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;yEACqE;IACrE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;gFAC4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;4EAMwE;IACxE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;+CAG2C;IAC3C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;sDAEkD;IAClD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB;;;4DAGwD;IACxD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;wBAIoB;IACpB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAkBD,gFAAgF;AAChF,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAyC;AAItF;iFACiF;AACjF,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAIlD;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,YAAY,CAK/D;AACD,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,GAAG,IAAI,CAIzE;AAKD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAmBjD"}
|
package/dist/claude/state.js
CHANGED
|
@@ -4,12 +4,25 @@
|
|
|
4
4
|
* pre-query auto-refresh can take the same lock; they are re-exported here so
|
|
5
5
|
* every existing import path keeps working.
|
|
6
6
|
*/
|
|
7
|
-
import { readdirSync } from 'node:fs';
|
|
7
|
+
import { existsSync, readdirSync, statSync, utimesSync, writeFileSync } from 'node:fs';
|
|
8
8
|
import { join } from 'node:path';
|
|
9
9
|
import { cacheDir, readJson, writeJsonAtomic } from '../util/state.js';
|
|
10
10
|
export { LOCK_STALE_MS, acquireLock, acquireLockIn, releaseLockIn, cacheDir, emptyStats, patchStats, readStats, releaseLock, resolveContextDir, writeJsonAtomic, writeStats, } from '../util/state.js';
|
|
11
11
|
function emptySession() {
|
|
12
|
-
return {
|
|
12
|
+
return { graftReads: 0, sourceReads: 0, savedTokens: 0, injectedPointers: [], nudges: 0 };
|
|
13
|
+
}
|
|
14
|
+
/** Where versions before 0.23 kept the prompt itself (`lastQuery`, and `perAgentQuery` by agent name). */
|
|
15
|
+
const PROMPT_KEYS = ['lastQuery', 'perAgentQuery'];
|
|
16
|
+
/** `s` without the prompt an older version stored in it. True when there was one. */
|
|
17
|
+
function withoutPrompts(s) {
|
|
18
|
+
let had = false;
|
|
19
|
+
for (const key of PROMPT_KEYS) {
|
|
20
|
+
if (key in s) {
|
|
21
|
+
delete s[key];
|
|
22
|
+
had = true;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return had;
|
|
13
26
|
}
|
|
14
27
|
/** The per-repo session directory holding one `<id>.json` per agent session. */
|
|
15
28
|
export function sessionDir(d) { return join(cacheDir(d), 'session'); }
|
|
@@ -25,9 +38,51 @@ export function listSessionIds(d) {
|
|
|
25
38
|
}
|
|
26
39
|
}
|
|
27
40
|
export function readSession(d, id) {
|
|
28
|
-
|
|
41
|
+
const s = readJson(sessionPath(d, id));
|
|
42
|
+
if (!s || typeof s !== 'object')
|
|
43
|
+
return emptySession();
|
|
44
|
+
withoutPrompts(s);
|
|
45
|
+
return s;
|
|
29
46
|
}
|
|
30
47
|
export function writeSession(d, id, s) {
|
|
31
|
-
|
|
48
|
+
const out = { ...s };
|
|
49
|
+
withoutPrompts(out);
|
|
50
|
+
writeJsonAtomic(sessionPath(d, id), out);
|
|
51
|
+
}
|
|
52
|
+
/** Left in the session dir once every file there is free of prompts. Not `.json`, so never read as a session. */
|
|
53
|
+
const PROMPTS_DROPPED = '.prompts-dropped';
|
|
54
|
+
/**
|
|
55
|
+
* Take the prompt out of every session file an older version wrote here.
|
|
56
|
+
* Once per repo: the marker skips the read of every file on later session
|
|
57
|
+
* starts. Each file keeps its mtime, since the idle sweep that rolls sessions
|
|
58
|
+
* up into telemetry judges a session closed by it. Best-effort: a file that
|
|
59
|
+
* can't be read or written is tried again next time.
|
|
60
|
+
*/
|
|
61
|
+
export function dropStoredPrompts(d) {
|
|
62
|
+
const dir = sessionDir(d);
|
|
63
|
+
const marker = join(dir, PROMPTS_DROPPED);
|
|
64
|
+
if (existsSync(marker))
|
|
65
|
+
return;
|
|
66
|
+
let clean = true;
|
|
67
|
+
for (const id of listSessionIds(d)) {
|
|
68
|
+
const path = sessionPath(d, id);
|
|
69
|
+
try {
|
|
70
|
+
const s = readJson(path);
|
|
71
|
+
if (!s || typeof s !== 'object' || !withoutPrompts(s))
|
|
72
|
+
continue;
|
|
73
|
+
const { atime, mtime } = statSync(path);
|
|
74
|
+
writeJsonAtomic(path, s);
|
|
75
|
+
utimesSync(path, atime, mtime);
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
clean = false;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
if (!clean || !existsSync(dir))
|
|
82
|
+
return;
|
|
83
|
+
try {
|
|
84
|
+
writeFileSync(marker, '');
|
|
85
|
+
}
|
|
86
|
+
catch { /* swept again next time */ }
|
|
32
87
|
}
|
|
33
88
|
//# sourceMappingURL=state.js.map
|
package/dist/claude/state.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/claude/state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/claude/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { HookOut } from '../skills/types.js';
|
|
2
|
+
import type { RunState } from '../trace/types.js';
|
|
3
|
+
import { type GateCtx } from '../trace/skill-session.js';
|
|
4
|
+
import { type OfferLinesIn } from '../skills/offer-lines.js';
|
|
5
|
+
import { type Sent } from './skills-hook-util.js';
|
|
6
|
+
import { type DialectUse } from '../trace/dialect.js';
|
|
7
|
+
export interface StopResult {
|
|
8
|
+
out: HookOut;
|
|
9
|
+
sent: Sent;
|
|
10
|
+
}
|
|
11
|
+
/** 3.5. Never throws. */
|
|
12
|
+
export declare function stopSkills(input: any, dir: string, env?: NodeJS.ProcessEnv): HookOut;
|
|
13
|
+
/** 3.5, with the telemetry it collected inside the lock, for the caller to send after it. */
|
|
14
|
+
export declare function stopSkillsRun(input: any, dir: string, env?: NodeJS.ProcessEnv): StopResult;
|
|
15
|
+
/**
|
|
16
|
+
* The reply as judged for the turn's end (4.3): without the offer's own 2 lines when it ends with them. Line 1
|
|
17
|
+
* counts what failed on the way ("17 commands this time, 3 failed"), which would read as a turn that failed, and
|
|
18
|
+
* the job was judged done before the offer was made. A reply that is only the offer reads as done.
|
|
19
|
+
*/
|
|
20
|
+
export declare function withoutOffer(reply: string | null, offer: OfferLinesIn | null, transcriptPath?: string | null, use?: DialectUse): string | null;
|
|
21
|
+
/** 3.5 step 8 for one run: a job of a moment-2 family with a step call; idempotent per (day, session), costly OR-ed. */
|
|
22
|
+
export declare function notePool(run: RunState, ctx: Pick<GateCtx, 'sessionHash' | 'env' | 'now'> & Partial<Pick<GateCtx, 'repoKey' | 'checkout'>>): void;
|
|
23
|
+
//# sourceMappingURL=stop-skills.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stop-skills.d.ts","sourceRoot":"","sources":["../../src/claude/stop-skills.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAgB,QAAQ,EAAqB,MAAM,mBAAmB,CAAC;AACnF,OAAO,EAA4C,KAAK,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAWnG,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAG3E,OAAO,EAAuB,KAAK,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAGvE,OAAO,EAAU,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAQ9D,MAAM,WAAW,UAAU;IAAG,GAAG,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE;AAKxD,yBAAyB;AACzB,wBAAgB,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAEjG;AAED,6FAA6F;AAC7F,wBAAgB,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,UAAU,CAgBvG;AAuHD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,EAAE,cAAc,GAAE,MAAM,GAAG,IAAW,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAoBpJ;AAOD,wHAAwH;AACxH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,KAAK,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,GAAG,UAAU,CAAC,CAAC,GAAG,IAAI,CAMhJ"}
|