@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,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase 0's init review, as 1b leaves it (design 0.1): the v2 record
|
|
3
|
+
* (init-record.ts), the screen and relay (review-screen.ts, review-tty.ts)
|
|
4
|
+
* and the keep (keep.ts) replaced its pending list, picker and
|
|
5
|
+
* `trail keep`. Phase 0's quotes on disk are gone with it (P4, B3).
|
|
6
|
+
*/
|
|
7
|
+
export { KEEP_LINE, RELAY_LINE } from "./relay.js";
|
|
8
|
+
/** Where a phase 0 item went, in words (kept for its callers; 1b's items use review-screen.ts scopeWords). */
|
|
9
|
+
export declare function scopeWords(item: {
|
|
10
|
+
scope: "personal" | "repo";
|
|
11
|
+
}): string;
|
|
12
|
+
//# sourceMappingURL=review.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../src/init/review.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEnD,8GAA8G;AAC9G,wBAAgB,UAAU,CAAC,IAAI,EAAE;IAAE,KAAK,EAAE,UAAU,GAAG,MAAM,CAAA;CAAE,GAAG,MAAM,CAEvE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase 0's init review, as 1b leaves it (design 0.1): the v2 record
|
|
3
|
+
* (init-record.ts), the screen and relay (review-screen.ts, review-tty.ts)
|
|
4
|
+
* and the keep (keep.ts) replaced its pending list, picker and
|
|
5
|
+
* `trail keep`. Phase 0's quotes on disk are gone with it (P4, B3).
|
|
6
|
+
*/
|
|
7
|
+
export { KEEP_LINE, RELAY_LINE } from "./relay.js";
|
|
8
|
+
/** Where a phase 0 item went, in words (kept for its callers; 1b's items use review-screen.ts scopeWords). */
|
|
9
|
+
export function scopeWords(item) {
|
|
10
|
+
return item.scope === "personal" ? "just for you, in this repo" : "added to this repo";
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=review.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review.js","sourceRoot":"","sources":["../../src/init/review.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEnD,8GAA8G;AAC9G,MAAM,UAAU,UAAU,CAAC,IAAoC;IAC7D,OAAO,IAAI,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,oBAAoB,CAAC;AACzF,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { type ReviewFinding, type ReviewRead, type ReviewResult } from '../notes/pr-reviews.js';
|
|
2
|
+
import { type MemoryCandidate } from '../notes/memory-notes.js';
|
|
3
|
+
import type { Note } from '../notes/notes.js';
|
|
4
|
+
import { type PersonCheck, type PersonDeps } from '../skills/store.js';
|
|
5
|
+
import type { LookBackResult } from './look-back-mine.js';
|
|
6
|
+
/** An agent ran init: CLAUDECODE set, or a claude or pty-wrapper ancestor. A script the person runs with no TTY is !agentRun(env) (R17). */
|
|
7
|
+
export declare function agentRun(env: NodeJS.ProcessEnv, deps?: PersonDeps, person?: PersonCheck): boolean;
|
|
8
|
+
/** 0 rule 4: the person at their own terminal, the look-back on, and no `--plain`. Never starts anything itself. */
|
|
9
|
+
export declare function mayCallClaude(env: NodeJS.ProcessEnv, flags: {
|
|
10
|
+
plain: boolean;
|
|
11
|
+
}, deps?: PersonDeps, person?: PersonCheck): boolean;
|
|
12
|
+
export interface LookBackReads {
|
|
13
|
+
lb: Promise<LookBackResult> | null;
|
|
14
|
+
reviews: ReviewRead | null;
|
|
15
|
+
/** #662: Claude Code's memory notes about the repo, fit for the team. Read with no model, look-back due or not. */
|
|
16
|
+
memory: MemoryCandidate[];
|
|
17
|
+
person: PersonCheck;
|
|
18
|
+
agent: boolean;
|
|
19
|
+
model: boolean;
|
|
20
|
+
plain: boolean;
|
|
21
|
+
skills: boolean;
|
|
22
|
+
env: NodeJS.ProcessEnv;
|
|
23
|
+
started: number;
|
|
24
|
+
}
|
|
25
|
+
/** Start the look-back and the PR-review read; the lines to print now, before anything finishes. */
|
|
26
|
+
export declare function beginLookBack(repo: string, opts?: {
|
|
27
|
+
env?: NodeJS.ProcessEnv;
|
|
28
|
+
plain?: boolean;
|
|
29
|
+
again?: boolean;
|
|
30
|
+
deps?: PersonDeps;
|
|
31
|
+
}): {
|
|
32
|
+
reads: LookBackReads;
|
|
33
|
+
lines: string[];
|
|
34
|
+
};
|
|
35
|
+
/** What #662's keeps saved with no screen, for init to say in #662's words (cli.ts). */
|
|
36
|
+
export interface TeamKept {
|
|
37
|
+
fromReviews: {
|
|
38
|
+
result: ReviewResult;
|
|
39
|
+
saved: Note[];
|
|
40
|
+
kept: ReviewFinding[];
|
|
41
|
+
offered: number;
|
|
42
|
+
} | null;
|
|
43
|
+
fromMemory: {
|
|
44
|
+
saved: Note[];
|
|
45
|
+
offered: number;
|
|
46
|
+
} | null;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* `team`: #662's team rows saved into `.trail/learnings/`, for the agent's commit ask; `teamKept`: what they were, with
|
|
50
|
+
* no screen. `read`: what was looked at, for `init --pair` and `--connect` to count: the past sessions, and the merged
|
|
51
|
+
* PRs (null when the PR reviews weren't read). `skills`: the skills the look-back found this run, each kept (or not) on
|
|
52
|
+
* this machine only, for the pair page to list by name and day count: never their steps.
|
|
53
|
+
*/
|
|
54
|
+
export interface LookBackDone {
|
|
55
|
+
kept: number;
|
|
56
|
+
inRepo: boolean;
|
|
57
|
+
team: number;
|
|
58
|
+
teamKept?: TeamKept;
|
|
59
|
+
read?: {
|
|
60
|
+
sessions: number;
|
|
61
|
+
prs: number | null;
|
|
62
|
+
};
|
|
63
|
+
skills?: FoundSkill[];
|
|
64
|
+
}
|
|
65
|
+
/** A skill the look-back found, as `init --pair` names it to Trail's page: its name and title, and on how many days it came up. */
|
|
66
|
+
export interface FoundSkill {
|
|
67
|
+
id: string;
|
|
68
|
+
name: string;
|
|
69
|
+
title: string;
|
|
70
|
+
days: number;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Wait for the reads, show what they found (screen, relay or the script's list), keep what the person picks, and
|
|
74
|
+
* write the init record. `io` is the person's terminal for the screen. #662's team rows come first on the screen;
|
|
75
|
+
* with no screen they are kept as #662 keeps them.
|
|
76
|
+
*/
|
|
77
|
+
export declare function finishLookBack(repo: string, reads: LookBackReads, mode: {
|
|
78
|
+
yes: boolean;
|
|
79
|
+
say: (line: string) => void;
|
|
80
|
+
io?: {
|
|
81
|
+
stdin: NodeJS.ReadStream;
|
|
82
|
+
stdout: NodeJS.WriteStream;
|
|
83
|
+
};
|
|
84
|
+
now?: Date;
|
|
85
|
+
verbose?: boolean;
|
|
86
|
+
}): Promise<LookBackDone>;
|
|
87
|
+
//# sourceMappingURL=run.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/init/run.ts"],"names":[],"mappings":"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"}
|
package/dist/init/run.js
ADDED
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `trail init`'s look-back, start to end (design 4.1 to 4.9): start the
|
|
3
|
+
* no-model look-back in a worker while init wires the repo, then show what
|
|
4
|
+
* it found and keep only what the person picks.
|
|
5
|
+
*
|
|
6
|
+
* - The person at their own terminal (`personAtTerminal().ok`): the naming
|
|
7
|
+
* call (and phase 0's PR-review read) may run, unless `--plain` or
|
|
8
|
+
* `TRAIL_NO_LOOK_BACK` (0 rule 4); then the review screen, whose keys keep.
|
|
9
|
+
* - An agent (`agentRun`: CLAUDECODE, or a claude or pty-wrapper ancestor):
|
|
10
|
+
* never a `claude` process, even a stand-in; the relay with plain names
|
|
11
|
+
* for the agent to show as written, and `pending` for `trail keep` (P2).
|
|
12
|
+
* - The person's own script (no TTY, not an agent): the same list without
|
|
13
|
+
* the agent's line (B9). `--yes` there keeps only the person's own typed
|
|
14
|
+
* preferences; an agent's `--yes` keeps nothing (R25, P37).
|
|
15
|
+
*
|
|
16
|
+
* Phase 0's find call, which sent typed messages to the model, is gone
|
|
17
|
+
* (R60, D87): `lookBackOffThread` replaces it, skills on or off.
|
|
18
|
+
*
|
|
19
|
+
* #662's team rows share the screen, first and ticked: what reviewers made
|
|
20
|
+
* authors change on merged PRs, tied to code that exists, and what Claude
|
|
21
|
+
* Code keeps about the repo on this machine (no model). With no screen they
|
|
22
|
+
* are kept as #662 keeps them, and the agent is told to ask about the commit
|
|
23
|
+
* (D184).
|
|
24
|
+
*/
|
|
25
|
+
import { createHash } from 'node:crypto';
|
|
26
|
+
import { anchoredReviews, finishReviewRead, beginReviewRead } from '../notes/pr-reviews.js';
|
|
27
|
+
import { finishMemoryRead, memoryCandidates, offeredBefore } from '../notes/memory-notes.js';
|
|
28
|
+
import { repoPlace } from '../notes/home.js';
|
|
29
|
+
import { readSettings } from '../skills/settings.js';
|
|
30
|
+
import { nameTaken, personAtTerminal } from '../skills/store.js';
|
|
31
|
+
import { countBucket, durationBucket } from '../telemetry/contract.js';
|
|
32
|
+
import { track } from '../telemetry/track.js';
|
|
33
|
+
import { candidateId, pickFive } from './candidates.js';
|
|
34
|
+
import { whyLine } from './claude-call.js';
|
|
35
|
+
import { lookBackOffThread } from './discover-worker.js';
|
|
36
|
+
import { newRunId, readInitRecord, uncompiledOf, updateInitRecord } from './init-record.js';
|
|
37
|
+
import { keepItems, prefLine } from './keep.js';
|
|
38
|
+
import { leadWords } from './keep-answer.js';
|
|
39
|
+
import { lookBackDue, lookBackOff, markLookedBack, norm } from './look-back.js';
|
|
40
|
+
import { NAME_MODEL, nameItems } from './name-call.js';
|
|
41
|
+
import { afterKeepLines, INIT_COPY, numbered, relayLines, repoNameOf, yesLine } from './review-screen.js';
|
|
42
|
+
import { runScreen } from './review-tty.js';
|
|
43
|
+
/** An agent ran init: CLAUDECODE set, or a claude or pty-wrapper ancestor. A script the person runs with no TTY is !agentRun(env) (R17). */
|
|
44
|
+
export function agentRun(env, deps = {}, person) {
|
|
45
|
+
if (env.CLAUDECODE !== undefined)
|
|
46
|
+
return true;
|
|
47
|
+
return (person ?? personAtTerminal(env, deps)).claudeAncestor;
|
|
48
|
+
}
|
|
49
|
+
/** 0 rule 4: the person at their own terminal, the look-back on, and no `--plain`. Never starts anything itself. */
|
|
50
|
+
export function mayCallClaude(env, flags, deps = {}, person) {
|
|
51
|
+
if (flags.plain || lookBackOff(env))
|
|
52
|
+
return false;
|
|
53
|
+
return (person ?? personAtTerminal(env, deps)).ok;
|
|
54
|
+
}
|
|
55
|
+
/** Agent runs stop reading at 100 s so the tool call ends inside Claude Code's 120 s; the person's at 300 s (3.6). */
|
|
56
|
+
const AGENT_CAP_MS = 100_000;
|
|
57
|
+
const PERSON_CAP_MS = 300_000;
|
|
58
|
+
/** Start the look-back and the PR-review read; the lines to print now, before anything finishes. */
|
|
59
|
+
export function beginLookBack(repo, opts = {}) {
|
|
60
|
+
const env = opts.env ?? process.env;
|
|
61
|
+
const person = personAtTerminal(env, opts.deps ?? {});
|
|
62
|
+
const agent = agentRun(env, opts.deps ?? {}, person);
|
|
63
|
+
const plain = opts.plain === true;
|
|
64
|
+
const model = !agent && mayCallClaude(env, { plain }, opts.deps ?? {}, person);
|
|
65
|
+
const skills = readSettings(env).skills === 'on';
|
|
66
|
+
const memory = memoryRows(repo, env.HOME);
|
|
67
|
+
const reads = { lb: null, reviews: null, memory, person, agent, model, plain, skills, env, started: Date.now() };
|
|
68
|
+
if (lookBackOff(env) || !(opts.again || lookBackDue(repo, env)))
|
|
69
|
+
return { reads, lines: [] };
|
|
70
|
+
reads.lb = lookBackOffThread(repo, { env, capMs: agent ? AGENT_CAP_MS : PERSON_CAP_MS, skills });
|
|
71
|
+
const lines = ['· looking back at your past Claude Code sessions here (about a minute)'];
|
|
72
|
+
// The PR-review read is phase 0's second call: only where the naming call may run (0 rule 4).
|
|
73
|
+
reads.reviews = model ? beginReviewRead(repo, env) : null;
|
|
74
|
+
if (reads.reviews)
|
|
75
|
+
lines.push("· reading review comments on this repo's merged PRs for what reviewers keep flagging");
|
|
76
|
+
return { reads, lines };
|
|
77
|
+
}
|
|
78
|
+
/** #662's memory candidates, or none when they can't be read: init never stops for them. */
|
|
79
|
+
function memoryRows(repo, home) {
|
|
80
|
+
try {
|
|
81
|
+
return memoryCandidates(repo, { ...(home ? { home } : {}), offered: offeredBefore(repo) });
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
return [];
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
const GUARD_DESC = { 'timeout-missing': 'this Mac has no timeout', 'git-https-auth': 'push to this repo over SSH' };
|
|
88
|
+
/**
|
|
89
|
+
* A PR-review finding (D24) as a team row: its words are model text, so it is shown on the screen only, never
|
|
90
|
+
* relayed. Only the findings tied to code that exists (#662's anchoredReviews), ticked: the team's start ticked.
|
|
91
|
+
*/
|
|
92
|
+
function reviewItems(anchored, repoKey, closed) {
|
|
93
|
+
return anchored.map((f, n) => {
|
|
94
|
+
const key = `review:${createHash('sha256').update(norm(f.title)).digest('hex').slice(0, 16)}`;
|
|
95
|
+
return {
|
|
96
|
+
id: candidateId('review', key), kind: 'review', key, plainName: '', nameWords: leadWords(f.title),
|
|
97
|
+
count: { days: f.prs.length, from: f.last, to: f.last }, scope: 'repo', applies: repoKey, typed: false, ticked: true,
|
|
98
|
+
review: { prs: f.prs }, evidence: [], rank: n + 1, n: 0, title: f.title, description: '',
|
|
99
|
+
};
|
|
100
|
+
}).filter((c) => !closed.has(c.id));
|
|
101
|
+
}
|
|
102
|
+
/** #662's memory candidates as team rows, ticked. Never relayed: with no screen, #662 keeps them itself. */
|
|
103
|
+
function memoryItems(memory, repoKey) {
|
|
104
|
+
return memory.map((c, n) => {
|
|
105
|
+
const key = `claude:${createHash('sha256').update(c.path).digest('hex').slice(0, 16)}`;
|
|
106
|
+
return {
|
|
107
|
+
id: candidateId('claude', key), kind: 'claude', key, plainName: '', nameWords: leadWords(c.title),
|
|
108
|
+
count: { days: 0, from: c.updated, to: c.updated }, scope: 'repo', applies: repoKey, typed: false, ticked: true,
|
|
109
|
+
memory: { path: c.path }, evidence: [], rank: n + 1, n: 0, title: c.title, description: '',
|
|
110
|
+
};
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
const isTeam = (i) => i.kind === 'review' || i.kind === 'claude';
|
|
114
|
+
/** For a run with no look-back (not due, or off), so #662's team rows can still be shown. */
|
|
115
|
+
const NO_LOOK_BACK = {
|
|
116
|
+
sessions: [], skipped: [], days: 0, from: null, to: null, parent: 0, candidates: [], alreadyKept: { here: 0, elsewhere: [] }, howtos: [], ms: 0, errors: [],
|
|
117
|
+
};
|
|
118
|
+
/** The shown items with their titles: the naming call's or the plain name, a guardrail's fixed words, the person's line read now. */
|
|
119
|
+
function itemsOf(picked, named, env) {
|
|
120
|
+
const out = [];
|
|
121
|
+
for (const c of picked) {
|
|
122
|
+
if (c.kind === 'skill') {
|
|
123
|
+
const nm = named.names[c.id];
|
|
124
|
+
out.push({ ...c, title: nm?.title ?? c.plainName, description: nm?.description ?? c.skill?.compiled.description ?? '' });
|
|
125
|
+
}
|
|
126
|
+
else if (c.kind === 'guardrail') {
|
|
127
|
+
out.push({ ...c, title: c.plainName, description: GUARD_DESC[c.guardrail?.cls ?? ''] ?? '' });
|
|
128
|
+
}
|
|
129
|
+
else if (c.kind === 'preference') {
|
|
130
|
+
const line = prefLine(c, env);
|
|
131
|
+
if (line)
|
|
132
|
+
out.push({ ...c, title: line, description: '' });
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
// Numbers stay 1..k with no gap, by kind (a preference whose line is gone drops out).
|
|
136
|
+
return out.map((i, k) => ({ ...i, n: k + 1 }));
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Wait for the reads, show what they found (screen, relay or the script's list), keep what the person picks, and
|
|
140
|
+
* write the init record. `io` is the person's terminal for the screen. #662's team rows come first on the screen;
|
|
141
|
+
* with no screen they are kept as #662 keeps them.
|
|
142
|
+
*/
|
|
143
|
+
export async function finishLookBack(repo, reads, mode) {
|
|
144
|
+
const none = { kept: 0, inRepo: false, team: 0 };
|
|
145
|
+
if (!reads.lb && !reads.memory.length)
|
|
146
|
+
return none;
|
|
147
|
+
const { env, agent, person } = reads;
|
|
148
|
+
const say = mode.say;
|
|
149
|
+
const now = mode.now ?? new Date();
|
|
150
|
+
const looked = reads.lb !== null;
|
|
151
|
+
let lb = NO_LOOK_BACK;
|
|
152
|
+
if (reads.lb) {
|
|
153
|
+
let settled = false;
|
|
154
|
+
void reads.lb.then(() => (settled = true));
|
|
155
|
+
await Promise.resolve();
|
|
156
|
+
if (!settled)
|
|
157
|
+
say('· still looking back at your past sessions…');
|
|
158
|
+
lb = await reads.lb;
|
|
159
|
+
}
|
|
160
|
+
const repoKey = repoPlace(repo, env).key;
|
|
161
|
+
const record = readInitRecord(repoKey, env);
|
|
162
|
+
const deferred = new Set(record.deferred);
|
|
163
|
+
// An agent's init never shows what the person put off in their own terminal (4.5, B5).
|
|
164
|
+
const found = lb.candidates.filter((c) => !(agent && deferred.has(c.id)));
|
|
165
|
+
const first = pickFive(found);
|
|
166
|
+
const skillsToName = first.filter((c) => c.kind === 'skill');
|
|
167
|
+
const modelWhy = agent ? 'agent' : reads.plain ? 'plain' : !person.tty ? 'no-tty' : lookBackOff(env) ? 'off' : !person.ok ? 'not-person' : !skillsToName.length ? 'no-skills' : null;
|
|
168
|
+
const namedP = reads.model && skillsToName.length
|
|
169
|
+
? nameItems(skillsToName, env, { taken: (n) => nameTaken(n, { repoKeys: [repoKey], checkout: repo, env }) !== null })
|
|
170
|
+
: Promise.resolve({ names: {}, model: 'none', why: null, sentItems: 0, tokens: 0 });
|
|
171
|
+
let reviewResult = null;
|
|
172
|
+
if (reads.reviews) {
|
|
173
|
+
if (!reads.reviews.done)
|
|
174
|
+
say('· still reading PR reviews…');
|
|
175
|
+
reviewResult = await reads.reviews.result.catch(() => null);
|
|
176
|
+
}
|
|
177
|
+
const named = await namedP;
|
|
178
|
+
const read = { sessions: lb.sessions.length, prs: reviewResult ? reviewResult.prs : null };
|
|
179
|
+
// The look-back's own five, numbered 1..k for the relay and `trail keep`.
|
|
180
|
+
const items = itemsOf(numbered(first), named, env);
|
|
181
|
+
const skills = items.filter((i) => i.kind === 'skill').map((i) => ({ id: i.id, name: i.plainName, title: i.title, days: i.count.days }));
|
|
182
|
+
// #662's team rows: only findings tied to code that exists, and the memory notes; never relayed.
|
|
183
|
+
const anchored = reviewResult ? anchoredReviews(repo, reviewResult.findings) : [];
|
|
184
|
+
const team = [...reviewItems(anchored, repoKey, new Set([...record.closed, ...record.runs.flatMap((r) => r.kept)])), ...memoryItems(reads.memory, repoKey)];
|
|
185
|
+
const s = readSettings(env);
|
|
186
|
+
const facts = {
|
|
187
|
+
lookBack: lb, model: named.model, why: named.why, tokens: named.tokens, calls: (named.sentItems ? 1 : 0) + (reads.reviews ? 1 : 0),
|
|
188
|
+
offers: s.offers, offersOffAt: s.offersOffAt, repoName: repoNameOf(repoKey), agent, skills: reads.skills,
|
|
189
|
+
sentSkills: named.sentItems, reviewsRead: reviewResult?.read ?? 0, ...(named.said ? { whySaid: named.said } : {}),
|
|
190
|
+
...(looked ? {} : { lookedBack: false }),
|
|
191
|
+
};
|
|
192
|
+
if (reviewResult?.why && reviewResult.why !== named.why)
|
|
193
|
+
say(`· ${whyLine({ why: reviewResult.why, ...(reviewResult.said ? { said: reviewResult.said } : {}) }, 'PR reviews')}`);
|
|
194
|
+
// D135 (3): jobs that met the bar but didn't compile, as codes; said with --verbose.
|
|
195
|
+
const uncompiled = uncompiledOf((lb.refused ?? []).map((u) => ({ job: u.job, days: u.days, why: u.why.split(', ') })));
|
|
196
|
+
if (mode.verbose)
|
|
197
|
+
for (const u of uncompiled)
|
|
198
|
+
say(`· not offered as a skill: ${u.job}, on ${u.days} day${u.days === 1 ? '' : 's'} (${u.why.join(', ')})`);
|
|
199
|
+
// One screen: the team rows first, then the look-back's items, numbered on from them.
|
|
200
|
+
const shown = [...team, ...items].map((i, k) => ({ ...i, n: k + 1 }));
|
|
201
|
+
const screen = person.ok && !agent && !mode.yes && !!mode.io && shown.length > 0;
|
|
202
|
+
const run = {
|
|
203
|
+
id: newRunId(), at: now.toISOString(), by: agent ? 'agent' : person.ok ? 'person' : 'script', screen: screen ? 'tty' : agent ? 'relay' : 'list',
|
|
204
|
+
reads: { sessions: lb.sessions.length, days: lb.days, from: lb.from, to: lb.to, parent: lb.parent, read: lb.sessions.map((x) => x.sh), skipped: lb.skipped,
|
|
205
|
+
...(uncompiled.length ? { uncompiled } : {}) },
|
|
206
|
+
model: named.sentItems ? NAME_MODEL : 'none', modelWhy: named.why ?? modelWhy, calls: facts.calls, tokens: named.tokens, ms: lb.ms,
|
|
207
|
+
shown: (screen ? shown : items).filter((i) => i.kind !== 'claude').map((i) => i.id), kept: [], closed: [], deferred: [],
|
|
208
|
+
};
|
|
209
|
+
if (looked) {
|
|
210
|
+
updateInitRecord(repoKey, (r) => {
|
|
211
|
+
r.runs.push(run);
|
|
212
|
+
}, env);
|
|
213
|
+
}
|
|
214
|
+
const place = { dir: repo, repoKey, runId: run.id };
|
|
215
|
+
const tele = (outcome, picked) => {
|
|
216
|
+
if (!looked)
|
|
217
|
+
return;
|
|
218
|
+
track('cold_start', {
|
|
219
|
+
source: 'sessions', outcome, sessions_bucket: countBucket(lb.sessions.length), offered_bucket: countBucket(items.length),
|
|
220
|
+
picked_bucket: countBucket(picked), duration_bucket: durationBucket(Date.now() - reads.started), model: run.model,
|
|
221
|
+
}, { repo });
|
|
222
|
+
};
|
|
223
|
+
/** #662's two keeps, each with its own answer: the review rows and the memory rows picked, none, or null (asked again). */
|
|
224
|
+
const keepTeam = async (pick) => {
|
|
225
|
+
const choose = (rows) => (pick === null ? null : pick === 'auto' ? undefined : pick(rows));
|
|
226
|
+
const reviewRows = team.filter((i) => i.kind === 'review');
|
|
227
|
+
const memoryRows = team.filter((i) => i.kind === 'claude');
|
|
228
|
+
let fromReviews = null;
|
|
229
|
+
if (reads.reviews) {
|
|
230
|
+
const chosen = choose(reviewRows);
|
|
231
|
+
const titles = new Set((chosen ?? []).map((i) => i.title));
|
|
232
|
+
// anchoredReviews gives the same findings for the same repo: matched by title, as shown.
|
|
233
|
+
const r = await finishReviewRead(repo, reads.reviews, chosen === undefined ? undefined : async (f) => (chosen === null ? null : f.filter((x) => titles.has(x.title))));
|
|
234
|
+
fromReviews = { ...r, offered: anchored.length };
|
|
235
|
+
}
|
|
236
|
+
let fromMemory = null;
|
|
237
|
+
if (reads.memory.length) {
|
|
238
|
+
const chosen = choose(memoryRows);
|
|
239
|
+
const paths = new Set((chosen ?? []).map((i) => i.memory?.path));
|
|
240
|
+
const r = await finishMemoryRead(repo, reads.memory, chosen === undefined ? undefined : async (c) => (chosen === null ? null : c.filter((x) => paths.has(x.path))));
|
|
241
|
+
fromMemory = { saved: r.saved, offered: reads.memory.length };
|
|
242
|
+
}
|
|
243
|
+
const saved = [...(fromReviews?.saved ?? []), ...(fromMemory?.saved ?? [])];
|
|
244
|
+
return { fromReviews, fromMemory, team: saved.filter((n) => n.scope === 'repo').length };
|
|
245
|
+
};
|
|
246
|
+
if (!shown.length) {
|
|
247
|
+
if (looked) {
|
|
248
|
+
for (const l of relayLines([], facts))
|
|
249
|
+
say(l);
|
|
250
|
+
if (!reads.skills)
|
|
251
|
+
say(INIT_COPY.skillsOff);
|
|
252
|
+
if (!lb.errors.length)
|
|
253
|
+
markLookedBack(repo, now, env);
|
|
254
|
+
}
|
|
255
|
+
if (reads.reviews)
|
|
256
|
+
await finishReviewRead(repo, reads.reviews, async () => []);
|
|
257
|
+
tele('none_found', 0);
|
|
258
|
+
return { ...none, read, skills };
|
|
259
|
+
}
|
|
260
|
+
if (screen) {
|
|
261
|
+
const answer = await runScreen(shown, facts, mode.io, { repoKey, env });
|
|
262
|
+
const final = shown.map((i) => ({ ...i, ...(answer.scopes[i.n] ?? {}) }));
|
|
263
|
+
let result = { kept: [], notKept: [], refused: [] };
|
|
264
|
+
let teamSaved = 0;
|
|
265
|
+
if (answer.how === 'esc') {
|
|
266
|
+
if (looked) {
|
|
267
|
+
updateInitRecord(repoKey, (r) => {
|
|
268
|
+
const ids = items.map((i) => i.id);
|
|
269
|
+
r.deferred = [...new Set([...r.deferred, ...ids])];
|
|
270
|
+
const me = r.runs.find((x) => x.id === run.id);
|
|
271
|
+
if (me)
|
|
272
|
+
me.deferred = ids;
|
|
273
|
+
r.pending = [];
|
|
274
|
+
r.pendingFrom = null;
|
|
275
|
+
r.handedAt = null;
|
|
276
|
+
r.handover = null;
|
|
277
|
+
}, env);
|
|
278
|
+
}
|
|
279
|
+
await keepTeam(null);
|
|
280
|
+
tele('cancelled', 0);
|
|
281
|
+
}
|
|
282
|
+
else {
|
|
283
|
+
const ticked = new Set(answer.how === 'enter' ? answer.ticked : []);
|
|
284
|
+
const picked = final.filter((i) => ticked.has(i.n));
|
|
285
|
+
const own = final.filter((i) => !isTeam(i));
|
|
286
|
+
result = own.length ? keepItems(picked.filter((i) => !isTeam(i)), own, 'tty', env, now, place) : result;
|
|
287
|
+
const keptTeam = picked.filter(isTeam);
|
|
288
|
+
teamSaved = (await keepTeam((rows) => rows.filter((r) => keptTeam.some((k) => k.id === r.id)))).team;
|
|
289
|
+
result = { ...result, kept: [...keptTeam, ...result.kept], notKept: final.filter((i) => !picked.includes(i)) };
|
|
290
|
+
const keptReviews = keptTeam.filter((i) => i.kind === 'review');
|
|
291
|
+
if (keptReviews.length || final.some((i) => i.kind === 'review' && !picked.includes(i))) {
|
|
292
|
+
updateInitRecord(repoKey, (r) => {
|
|
293
|
+
r.closed = [...new Set([...r.closed, ...final.filter((i) => i.kind === 'review' && !picked.includes(i)).map((i) => i.id)])];
|
|
294
|
+
const me = r.runs.find((x) => x.id === run.id);
|
|
295
|
+
if (me)
|
|
296
|
+
me.kept = [...new Set([...me.kept, ...keptReviews.map((i) => i.id)])];
|
|
297
|
+
}, env);
|
|
298
|
+
}
|
|
299
|
+
if (looked)
|
|
300
|
+
markLookedBack(repo, now, env);
|
|
301
|
+
tele('found', result.kept.filter((i) => !isTeam(i)).length);
|
|
302
|
+
}
|
|
303
|
+
for (const l of afterKeepLines({ ...result, how: answer.how }, facts))
|
|
304
|
+
say(l);
|
|
305
|
+
return { kept: result.kept.length, inRepo: result.kept.some((i) => i.scope === 'repo' || isTeam(i)), team: teamSaved, read, skills };
|
|
306
|
+
}
|
|
307
|
+
// No screen: the relay (agent) or the script's list for the look-back's items. A PR-review finding is model text
|
|
308
|
+
// and is never relayed; #662 keeps the team rows itself and says what it kept.
|
|
309
|
+
let list = items;
|
|
310
|
+
let kept = 0;
|
|
311
|
+
if (mode.yes && !agent && list.length) {
|
|
312
|
+
const own = list.filter((i) => i.kind === 'preference' && i.typed && !deferred.has(i.id));
|
|
313
|
+
const r = keepItems(own, list, 'yes', env, now, place);
|
|
314
|
+
kept = r.kept.length;
|
|
315
|
+
say(yesLine(list, false));
|
|
316
|
+
const gone = new Set(r.kept.map((i) => i.id));
|
|
317
|
+
list = list.filter((i) => !gone.has(i.id)).map((i, k) => ({ ...i, n: k + 1 }));
|
|
318
|
+
}
|
|
319
|
+
else if (mode.yes && agent && list.length) {
|
|
320
|
+
say(yesLine(list, true));
|
|
321
|
+
}
|
|
322
|
+
// The look-back found nothing to keep: its found line and why, as with no team rows.
|
|
323
|
+
if (looked && !items.length) {
|
|
324
|
+
for (const l of relayLines([], facts))
|
|
325
|
+
say(l);
|
|
326
|
+
if (!lb.errors.length)
|
|
327
|
+
markLookedBack(repo, now, env);
|
|
328
|
+
}
|
|
329
|
+
const fromTeam = await keepTeam('auto');
|
|
330
|
+
if (list.length) {
|
|
331
|
+
updateInitRecord(repoKey, (r) => {
|
|
332
|
+
r.pending = list.map((i) => ({ ...i }));
|
|
333
|
+
r.pendingFrom = run.id;
|
|
334
|
+
r.shownAt = now.toISOString();
|
|
335
|
+
r.handedAt = null;
|
|
336
|
+
r.handover = null;
|
|
337
|
+
}, env);
|
|
338
|
+
for (const l of relayLines(list, facts))
|
|
339
|
+
say(l);
|
|
340
|
+
}
|
|
341
|
+
if (looked && !reads.skills)
|
|
342
|
+
say(INIT_COPY.skillsOff);
|
|
343
|
+
tele('relayed', kept);
|
|
344
|
+
const teamKept = (fromTeam.fromReviews?.saved.length ?? 0) + (fromTeam.fromMemory?.saved.length ?? 0);
|
|
345
|
+
return { kept: kept + teamKept, inRepo: fromTeam.team > 0, team: fromTeam.team, teamKept: { fromReviews: fromTeam.fromReviews, fromMemory: fromTeam.fromMemory }, read, skills };
|
|
346
|
+
}
|
|
347
|
+
//# sourceMappingURL=run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/init/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { type PastSession, type SessionSource } from "./transcript.js";
|
|
2
|
+
export { ownWords, readSession, type PastPrompt, type PastSession, type SessionSource } from "./transcript.js";
|
|
3
|
+
/** Share of an above-the-repo session's tool calls that must be in the repo for it to count. */
|
|
4
|
+
export declare const ANCESTOR_SHARE = 0.3;
|
|
5
|
+
/** A transcript last written longer ago than this is not read (design 4.1). */
|
|
6
|
+
export declare const TOO_OLD_DAYS = 400;
|
|
7
|
+
/** Why discovery left a transcript out (design 4.1, `LookBack.skipped`). */
|
|
8
|
+
export type SkipWhy = "headless" | "ancestor-under-30" | "unreadable" | "too-old" | "scratch";
|
|
9
|
+
/**
|
|
10
|
+
* The checkout `repo` belongs to and every worktree of it git still lists:
|
|
11
|
+
* sessions run in any of them, or in a folder under one, are this repo's.
|
|
12
|
+
* Worktrees git has forgotten were usually under the main checkout
|
|
13
|
+
* (`.claude/worktrees/…`), so their sessions are still found under it.
|
|
14
|
+
*/
|
|
15
|
+
export declare function repoRoots(repo: string): string[];
|
|
16
|
+
/**
|
|
17
|
+
* {@link repoRoots}, plus every other checkout on this machine whose remote is
|
|
18
|
+
* the same repo: a fresh clone at `~/trail-demo/me` of github.com/acme/api
|
|
19
|
+
* finds the sessions and Claude memory of `~/src/api`. Claude Code keeps each
|
|
20
|
+
* project's folder under ~/.claude/projects; each folder's first transcript
|
|
21
|
+
* says where it ran, and that folder's git config names its remote (#662).
|
|
22
|
+
*/
|
|
23
|
+
export declare function sameRepoRoots(repo: string, home?: string): string[];
|
|
24
|
+
/** Whether `path` is one of `roots` or inside one. */
|
|
25
|
+
export declare function within(path: string, roots: string[]): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Transcript files for sessions run inside `roots`, by folder name and then
|
|
28
|
+
* each file's own `cwd`. Kept for callers that only know roots;
|
|
29
|
+
* `discoverSessions` is what init uses.
|
|
30
|
+
*/
|
|
31
|
+
export declare function sessionFiles(roots: string[], home?: string): string[];
|
|
32
|
+
/** Absolute paths a shell command names: quoted ones (spaces kept), bare ones, and `cd` targets resolved against `cwd`. */
|
|
33
|
+
export declare function commandPaths(command: string, cwd: string): string[];
|
|
34
|
+
/** What discovery found, for init to read and to say. */
|
|
35
|
+
export interface Discovery {
|
|
36
|
+
/** Sessions with something the person typed, newest first. */
|
|
37
|
+
sessions: PastSession[];
|
|
38
|
+
bySource: Record<SessionSource, number>;
|
|
39
|
+
/** Sessions started in a folder above the repo that left out for spending under 30% of their tool calls in it. */
|
|
40
|
+
skippedAncestor: number;
|
|
41
|
+
/** One per session per day it was typed into. */
|
|
42
|
+
sessionDays: number;
|
|
43
|
+
/** Different days, across all sessions. */
|
|
44
|
+
days: number;
|
|
45
|
+
/** YYYY-MM-DD of the first and last of them. */
|
|
46
|
+
from?: string;
|
|
47
|
+
to?: string;
|
|
48
|
+
/** Transcripts left out, and why (design 4.1). */
|
|
49
|
+
skipped?: Array<{
|
|
50
|
+
path: string;
|
|
51
|
+
why: SkipWhy;
|
|
52
|
+
}>;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Every past session that is the repo's (see the top of this file), each with its transcript path and the byte
|
|
56
|
+
* range its repo work is in (`stretch`), and what was left out and why: files last written over 400 days before
|
|
57
|
+
* `now`, sessions in a scratch folder, headless runs, ancestor sessions under the share, files that can't be
|
|
58
|
+
* read. Reads only; never throws.
|
|
59
|
+
*/
|
|
60
|
+
export declare function discoverSessions(repo: string, home?: string, now?: Date, env?: NodeJS.ProcessEnv): Discovery;
|
|
61
|
+
/** Every past session of the repo with something the person wrote, newest first. */
|
|
62
|
+
export declare function pastSessions(repo: string, home?: string): PastSession[];
|
|
63
|
+
//# sourceMappingURL=sessions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/init/sessions.ts"],"names":[],"mappings":"AA2BA,OAAO,EAA8C,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEnH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE/G,gGAAgG;AAChG,eAAO,MAAM,cAAc,MAAM,CAAC;AAClC,+EAA+E;AAC/E,eAAO,MAAM,YAAY,MAAM,CAAC;AAEhC,4EAA4E;AAC5E,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,mBAAmB,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,CAAC;AAyB9F;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAQhD;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAkB,GAAG,MAAM,EAAE,CA0B9E;AAED,sDAAsD;AACtD,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAQ7D;AAOD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,GAAE,MAAkB,GAAG,MAAM,EAAE,CAOhF;AAwED,2HAA2H;AAC3H,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CASnE;AAiBD,yDAAyD;AACzD,MAAM,WAAW,SAAS;IACxB,8DAA8D;IAC9D,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACxC,kHAAkH;IAClH,eAAe,EAAE,MAAM,CAAC;IACxB,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,kDAAkD;IAClD,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACjD;AAGD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAkB,EAAE,GAAG,GAAE,IAAiB,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,SAAS,CAsGhJ;AAED,oFAAoF;AACpF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE,CAEvE"}
|