opentasks 0.0.5 → 0.0.7
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 +108 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +217 -8
- package/dist/cli.js.map +1 -1
- package/dist/client/client.d.ts +47 -1
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/client.js +71 -0
- package/dist/client/client.js.map +1 -1
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/config/schema.d.ts +232 -4
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +161 -7
- package/dist/config/schema.js.map +1 -1
- package/dist/context-files/context-files.d.ts +72 -0
- package/dist/context-files/context-files.d.ts.map +1 -0
- package/dist/context-files/context-files.js +145 -0
- package/dist/context-files/context-files.js.map +1 -0
- package/dist/context-files/index.d.ts +16 -0
- package/dist/context-files/index.d.ts.map +1 -0
- package/dist/context-files/index.js +14 -0
- package/dist/context-files/index.js.map +1 -0
- package/dist/context-files/resolver.d.ts +43 -0
- package/dist/context-files/resolver.d.ts.map +1 -0
- package/dist/context-files/resolver.js +127 -0
- package/dist/context-files/resolver.js.map +1 -0
- package/dist/context-files/types.d.ts +94 -0
- package/dist/context-files/types.d.ts.map +1 -0
- package/dist/context-files/types.js +10 -0
- package/dist/context-files/types.js.map +1 -0
- package/dist/context-files/watcher-integration.d.ts +47 -0
- package/dist/context-files/watcher-integration.d.ts.map +1 -0
- package/dist/context-files/watcher-integration.js +47 -0
- package/dist/context-files/watcher-integration.js.map +1 -0
- package/dist/core/merge-driver.d.ts +11 -2
- package/dist/core/merge-driver.d.ts.map +1 -1
- package/dist/core/merge-driver.js +46 -7
- package/dist/core/merge-driver.js.map +1 -1
- package/dist/core/worktree.js +1 -1
- package/dist/core/worktree.js.map +1 -1
- package/dist/daemon/index.d.ts +6 -4
- package/dist/daemon/index.d.ts.map +1 -1
- package/dist/daemon/index.js +3 -2
- package/dist/daemon/index.js.map +1 -1
- package/dist/daemon/ipc.d.ts.map +1 -1
- package/dist/daemon/ipc.js +12 -2
- package/dist/daemon/ipc.js.map +1 -1
- package/dist/daemon/lifecycle.d.ts.map +1 -1
- package/dist/daemon/lifecycle.js +143 -25
- package/dist/daemon/lifecycle.js.map +1 -1
- package/dist/daemon/location-state.d.ts +12 -6
- package/dist/daemon/location-state.d.ts.map +1 -1
- package/dist/daemon/location-state.js +50 -20
- package/dist/daemon/location-state.js.map +1 -1
- package/dist/daemon/methods/context-files.d.ts +14 -0
- package/dist/daemon/methods/context-files.d.ts.map +1 -0
- package/dist/daemon/methods/context-files.js +95 -0
- package/dist/daemon/methods/context-files.js.map +1 -0
- package/dist/daemon/methods/provider.d.ts.map +1 -1
- package/dist/daemon/methods/provider.js +15 -0
- package/dist/daemon/methods/provider.js.map +1 -1
- package/dist/daemon/methods/tools.d.ts +1 -1
- package/dist/daemon/methods/tools.d.ts.map +1 -1
- package/dist/daemon/methods/tools.js +3 -2
- package/dist/daemon/methods/tools.js.map +1 -1
- package/dist/daemon/sessionlog-linker.d.ts +71 -0
- package/dist/daemon/sessionlog-linker.d.ts.map +1 -0
- package/dist/daemon/sessionlog-linker.js +472 -0
- package/dist/daemon/sessionlog-linker.js.map +1 -0
- package/dist/daemon/sessionlog-watcher.d.ts +79 -0
- package/dist/daemon/sessionlog-watcher.d.ts.map +1 -0
- package/dist/daemon/sessionlog-watcher.js +289 -0
- package/dist/daemon/sessionlog-watcher.js.map +1 -0
- package/dist/graph/git-graph-syncer.js +1 -1
- package/dist/graph/git-graph-syncer.js.map +1 -1
- package/dist/graph/index.d.ts +1 -1
- package/dist/graph/index.d.ts.map +1 -1
- package/dist/graph/index.js.map +1 -1
- package/dist/graph/provider-store.d.ts +78 -4
- package/dist/graph/provider-store.d.ts.map +1 -1
- package/dist/graph/provider-store.js +579 -55
- package/dist/graph/provider-store.js.map +1 -1
- package/dist/graph/store.d.ts.map +1 -1
- package/dist/graph/store.js +3 -0
- package/dist/graph/store.js.map +1 -1
- package/dist/graph/types.d.ts +16 -0
- package/dist/graph/types.d.ts.map +1 -1
- package/dist/graph/types.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -3
- package/dist/index.js.map +1 -1
- package/dist/materialization/git-archive-store.js +2 -2
- package/dist/materialization/git-archive-store.js.map +1 -1
- package/dist/materialization/git-remote-store.js +2 -2
- package/dist/materialization/git-remote-store.js.map +1 -1
- package/dist/materialization/snapshot.js +4 -4
- package/dist/materialization/snapshot.js.map +1 -1
- package/dist/mcp/index.d.ts +8 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +8 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/server.d.ts +39 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +677 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/stdio.d.ts +14 -0
- package/dist/mcp/stdio.d.ts.map +1 -0
- package/dist/mcp/stdio.js +19 -0
- package/dist/mcp/stdio.js.map +1 -0
- package/dist/providers/beads.d.ts.map +1 -1
- package/dist/providers/beads.js +17 -1
- package/dist/providers/beads.js.map +1 -1
- package/dist/providers/claude-tasks-fs.d.ts +22 -0
- package/dist/providers/claude-tasks-fs.d.ts.map +1 -0
- package/dist/providers/claude-tasks-fs.js +158 -0
- package/dist/providers/claude-tasks-fs.js.map +1 -0
- package/dist/providers/claude-tasks.d.ts +13 -4
- package/dist/providers/claude-tasks.d.ts.map +1 -1
- package/dist/providers/claude-tasks.js +318 -5
- package/dist/providers/claude-tasks.js.map +1 -1
- package/dist/providers/from-config.d.ts +3 -0
- package/dist/providers/from-config.d.ts.map +1 -1
- package/dist/providers/from-config.js +64 -17
- package/dist/providers/from-config.js.map +1 -1
- package/dist/providers/global.d.ts.map +1 -1
- package/dist/providers/global.js +5 -0
- package/dist/providers/global.js.map +1 -1
- package/dist/providers/index.d.ts +9 -4
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +10 -3
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/map-client-factory.d.ts +55 -0
- package/dist/providers/map-client-factory.d.ts.map +1 -0
- package/dist/providers/map-client-factory.js +123 -0
- package/dist/providers/map-client-factory.js.map +1 -0
- package/dist/providers/map-event-bridge.d.ts +146 -0
- package/dist/providers/map-event-bridge.d.ts.map +1 -0
- package/dist/providers/map-event-bridge.js +208 -0
- package/dist/providers/map-event-bridge.js.map +1 -0
- package/dist/providers/map.d.ts +115 -0
- package/dist/providers/map.d.ts.map +1 -0
- package/dist/providers/map.js +381 -0
- package/dist/providers/map.js.map +1 -0
- package/dist/providers/materialization.d.ts +23 -5
- package/dist/providers/materialization.d.ts.map +1 -1
- package/dist/providers/materialization.js +95 -4
- package/dist/providers/materialization.js.map +1 -1
- package/dist/providers/native.d.ts.map +1 -1
- package/dist/providers/native.js +5 -0
- package/dist/providers/native.js.map +1 -1
- package/dist/providers/sessionlog.d.ts +81 -0
- package/dist/providers/sessionlog.d.ts.map +1 -0
- package/dist/providers/sessionlog.js +478 -0
- package/dist/providers/sessionlog.js.map +1 -0
- package/dist/providers/sudocode.d.ts.map +1 -1
- package/dist/providers/sudocode.js +17 -1
- package/dist/providers/sudocode.js.map +1 -1
- package/dist/providers/traits/Reconcilable.d.ts +57 -0
- package/dist/providers/traits/Reconcilable.d.ts.map +1 -0
- package/dist/providers/traits/Reconcilable.js +18 -0
- package/dist/providers/traits/Reconcilable.js.map +1 -0
- package/dist/providers/traits/index.d.ts +2 -0
- package/dist/providers/traits/index.d.ts.map +1 -1
- package/dist/providers/traits/index.js +1 -0
- package/dist/providers/traits/index.js.map +1 -1
- package/dist/providers/types.d.ts +63 -0
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/types.js +22 -0
- package/dist/providers/types.js.map +1 -1
- package/dist/schema/edges.d.ts +3 -3
- package/dist/schema/edges.d.ts.map +1 -1
- package/dist/sessionlog/agent/agents/claude-code.d.ts +76 -0
- package/dist/sessionlog/agent/agents/claude-code.d.ts.map +1 -0
- package/dist/sessionlog/agent/agents/claude-code.js +759 -0
- package/dist/sessionlog/agent/agents/claude-code.js.map +1 -0
- package/dist/sessionlog/agent/agents/cursor.d.ts +35 -0
- package/dist/sessionlog/agent/agents/cursor.d.ts.map +1 -0
- package/dist/sessionlog/agent/agents/cursor.js +294 -0
- package/dist/sessionlog/agent/agents/cursor.js.map +1 -0
- package/dist/sessionlog/agent/agents/gemini-cli.d.ts +62 -0
- package/dist/sessionlog/agent/agents/gemini-cli.d.ts.map +1 -0
- package/dist/sessionlog/agent/agents/gemini-cli.js +462 -0
- package/dist/sessionlog/agent/agents/gemini-cli.js.map +1 -0
- package/dist/sessionlog/agent/agents/opencode.d.ts +100 -0
- package/dist/sessionlog/agent/agents/opencode.d.ts.map +1 -0
- package/dist/sessionlog/agent/agents/opencode.js +423 -0
- package/dist/sessionlog/agent/agents/opencode.js.map +1 -0
- package/dist/sessionlog/agent/registry.d.ts +54 -0
- package/dist/sessionlog/agent/registry.d.ts.map +1 -0
- package/dist/sessionlog/agent/registry.js +123 -0
- package/dist/sessionlog/agent/registry.js.map +1 -0
- package/dist/sessionlog/agent/session-types.d.ts +45 -0
- package/dist/sessionlog/agent/session-types.d.ts.map +1 -0
- package/dist/sessionlog/agent/session-types.js +50 -0
- package/dist/sessionlog/agent/session-types.js.map +1 -0
- package/dist/sessionlog/agent/types.d.ts +126 -0
- package/dist/sessionlog/agent/types.d.ts.map +1 -0
- package/dist/sessionlog/agent/types.js +39 -0
- package/dist/sessionlog/agent/types.js.map +1 -0
- package/dist/sessionlog/commands/clean.d.ts +40 -0
- package/dist/sessionlog/commands/clean.d.ts.map +1 -0
- package/dist/sessionlog/commands/clean.js +105 -0
- package/dist/sessionlog/commands/clean.js.map +1 -0
- package/dist/sessionlog/commands/disable.d.ts +23 -0
- package/dist/sessionlog/commands/disable.d.ts.map +1 -0
- package/dist/sessionlog/commands/disable.js +57 -0
- package/dist/sessionlog/commands/disable.js.map +1 -0
- package/dist/sessionlog/commands/doctor.d.ts +43 -0
- package/dist/sessionlog/commands/doctor.d.ts.map +1 -0
- package/dist/sessionlog/commands/doctor.js +97 -0
- package/dist/sessionlog/commands/doctor.js.map +1 -0
- package/dist/sessionlog/commands/enable.d.ts +31 -0
- package/dist/sessionlog/commands/enable.d.ts.map +1 -0
- package/dist/sessionlog/commands/enable.js +102 -0
- package/dist/sessionlog/commands/enable.js.map +1 -0
- package/dist/sessionlog/commands/explain.d.ts +69 -0
- package/dist/sessionlog/commands/explain.d.ts.map +1 -0
- package/dist/sessionlog/commands/explain.js +185 -0
- package/dist/sessionlog/commands/explain.js.map +1 -0
- package/dist/sessionlog/commands/reset.d.ts +23 -0
- package/dist/sessionlog/commands/reset.d.ts.map +1 -0
- package/dist/sessionlog/commands/reset.js +68 -0
- package/dist/sessionlog/commands/reset.js.map +1 -0
- package/dist/sessionlog/commands/resume.d.ts +42 -0
- package/dist/sessionlog/commands/resume.d.ts.map +1 -0
- package/dist/sessionlog/commands/resume.js +134 -0
- package/dist/sessionlog/commands/resume.js.map +1 -0
- package/dist/sessionlog/commands/rewind.d.ts +40 -0
- package/dist/sessionlog/commands/rewind.d.ts.map +1 -0
- package/dist/sessionlog/commands/rewind.js +155 -0
- package/dist/sessionlog/commands/rewind.js.map +1 -0
- package/dist/sessionlog/commands/status.d.ts +54 -0
- package/dist/sessionlog/commands/status.d.ts.map +1 -0
- package/dist/sessionlog/commands/status.js +95 -0
- package/dist/sessionlog/commands/status.js.map +1 -0
- package/dist/sessionlog/config.d.ts +40 -0
- package/dist/sessionlog/config.d.ts.map +1 -0
- package/dist/sessionlog/config.js +126 -0
- package/dist/sessionlog/config.js.map +1 -0
- package/dist/sessionlog/git-operations.d.ts +173 -0
- package/dist/sessionlog/git-operations.d.ts.map +1 -0
- package/dist/sessionlog/git-operations.js +399 -0
- package/dist/sessionlog/git-operations.js.map +1 -0
- package/dist/sessionlog/hooks/git-hooks.d.ts +22 -0
- package/dist/sessionlog/hooks/git-hooks.d.ts.map +1 -0
- package/dist/sessionlog/hooks/git-hooks.js +145 -0
- package/dist/sessionlog/hooks/git-hooks.js.map +1 -0
- package/dist/sessionlog/hooks/lifecycle.d.ts +21 -0
- package/dist/sessionlog/hooks/lifecycle.d.ts.map +1 -0
- package/dist/sessionlog/hooks/lifecycle.js +179 -0
- package/dist/sessionlog/hooks/lifecycle.js.map +1 -0
- package/dist/sessionlog/index.d.ts +69 -0
- package/dist/sessionlog/index.d.ts.map +1 -0
- package/dist/sessionlog/index.js +154 -0
- package/dist/sessionlog/index.js.map +1 -0
- package/dist/sessionlog/security/redaction.d.ts +35 -0
- package/dist/sessionlog/security/redaction.d.ts.map +1 -0
- package/dist/sessionlog/security/redaction.js +221 -0
- package/dist/sessionlog/security/redaction.js.map +1 -0
- package/dist/sessionlog/session/state-machine.d.ts +90 -0
- package/dist/sessionlog/session/state-machine.d.ts.map +1 -0
- package/dist/sessionlog/session/state-machine.js +347 -0
- package/dist/sessionlog/session/state-machine.js.map +1 -0
- package/dist/sessionlog/store/checkpoint-store.d.ts +47 -0
- package/dist/sessionlog/store/checkpoint-store.d.ts.map +1 -0
- package/dist/sessionlog/store/checkpoint-store.js +309 -0
- package/dist/sessionlog/store/checkpoint-store.js.map +1 -0
- package/dist/sessionlog/store/native-store.d.ts +21 -0
- package/dist/sessionlog/store/native-store.d.ts.map +1 -0
- package/dist/sessionlog/store/native-store.js +162 -0
- package/dist/sessionlog/store/native-store.js.map +1 -0
- package/dist/sessionlog/store/provider-types.d.ts +78 -0
- package/dist/sessionlog/store/provider-types.d.ts.map +1 -0
- package/dist/sessionlog/store/provider-types.js +12 -0
- package/dist/sessionlog/store/provider-types.js.map +1 -0
- package/dist/sessionlog/store/session-store.d.ts +28 -0
- package/dist/sessionlog/store/session-store.d.ts.map +1 -0
- package/dist/sessionlog/store/session-store.js +187 -0
- package/dist/sessionlog/store/session-store.js.map +1 -0
- package/dist/sessionlog/strategy/attribution.d.ts +39 -0
- package/dist/sessionlog/strategy/attribution.d.ts.map +1 -0
- package/dist/sessionlog/strategy/attribution.js +227 -0
- package/dist/sessionlog/strategy/attribution.js.map +1 -0
- package/dist/sessionlog/strategy/common.d.ts +60 -0
- package/dist/sessionlog/strategy/common.d.ts.map +1 -0
- package/dist/sessionlog/strategy/common.js +162 -0
- package/dist/sessionlog/strategy/common.js.map +1 -0
- package/dist/sessionlog/strategy/content-overlap.d.ts +33 -0
- package/dist/sessionlog/strategy/content-overlap.d.ts.map +1 -0
- package/dist/sessionlog/strategy/content-overlap.js +168 -0
- package/dist/sessionlog/strategy/content-overlap.js.map +1 -0
- package/dist/sessionlog/strategy/manual-commit.d.ts +35 -0
- package/dist/sessionlog/strategy/manual-commit.d.ts.map +1 -0
- package/dist/sessionlog/strategy/manual-commit.js +732 -0
- package/dist/sessionlog/strategy/manual-commit.js.map +1 -0
- package/dist/sessionlog/strategy/types.d.ts +163 -0
- package/dist/sessionlog/strategy/types.d.ts.map +1 -0
- package/dist/sessionlog/strategy/types.js +49 -0
- package/dist/sessionlog/strategy/types.js.map +1 -0
- package/dist/sessionlog/summarize/claude-generator.d.ts +25 -0
- package/dist/sessionlog/summarize/claude-generator.d.ts.map +1 -0
- package/dist/sessionlog/summarize/claude-generator.js +87 -0
- package/dist/sessionlog/summarize/claude-generator.js.map +1 -0
- package/dist/sessionlog/summarize/summarize.d.ts +52 -0
- package/dist/sessionlog/summarize/summarize.d.ts.map +1 -0
- package/dist/sessionlog/summarize/summarize.js +335 -0
- package/dist/sessionlog/summarize/summarize.js.map +1 -0
- package/dist/sessionlog/types.d.ts +298 -0
- package/dist/sessionlog/types.d.ts.map +1 -0
- package/dist/sessionlog/types.js +104 -0
- package/dist/sessionlog/types.js.map +1 -0
- package/dist/sessionlog/utils/chunk-files.d.ts +25 -0
- package/dist/sessionlog/utils/chunk-files.d.ts.map +1 -0
- package/dist/sessionlog/utils/chunk-files.js +47 -0
- package/dist/sessionlog/utils/chunk-files.js.map +1 -0
- package/dist/sessionlog/utils/commit-message.d.ts +11 -0
- package/dist/sessionlog/utils/commit-message.d.ts.map +1 -0
- package/dist/sessionlog/utils/commit-message.js +54 -0
- package/dist/sessionlog/utils/commit-message.js.map +1 -0
- package/dist/sessionlog/utils/detect-agent.d.ts +19 -0
- package/dist/sessionlog/utils/detect-agent.d.ts.map +1 -0
- package/dist/sessionlog/utils/detect-agent.js +34 -0
- package/dist/sessionlog/utils/detect-agent.js.map +1 -0
- package/dist/sessionlog/utils/hook-managers.d.ts +24 -0
- package/dist/sessionlog/utils/hook-managers.d.ts.map +1 -0
- package/dist/sessionlog/utils/hook-managers.js +87 -0
- package/dist/sessionlog/utils/hook-managers.js.map +1 -0
- package/dist/sessionlog/utils/ide-tags.d.ts +12 -0
- package/dist/sessionlog/utils/ide-tags.d.ts.map +1 -0
- package/dist/sessionlog/utils/ide-tags.js +30 -0
- package/dist/sessionlog/utils/ide-tags.js.map +1 -0
- package/dist/sessionlog/utils/paths.d.ts +32 -0
- package/dist/sessionlog/utils/paths.d.ts.map +1 -0
- package/dist/sessionlog/utils/paths.js +55 -0
- package/dist/sessionlog/utils/paths.js.map +1 -0
- package/dist/sessionlog/utils/preview-rewind.d.ts +23 -0
- package/dist/sessionlog/utils/preview-rewind.d.ts.map +1 -0
- package/dist/sessionlog/utils/preview-rewind.js +63 -0
- package/dist/sessionlog/utils/preview-rewind.js.map +1 -0
- package/dist/sessionlog/utils/rewind-conflict.d.ts +52 -0
- package/dist/sessionlog/utils/rewind-conflict.d.ts.map +1 -0
- package/dist/sessionlog/utils/rewind-conflict.js +79 -0
- package/dist/sessionlog/utils/rewind-conflict.js.map +1 -0
- package/dist/sessionlog/utils/shadow-branch.d.ts +53 -0
- package/dist/sessionlog/utils/shadow-branch.d.ts.map +1 -0
- package/dist/sessionlog/utils/shadow-branch.js +97 -0
- package/dist/sessionlog/utils/shadow-branch.js.map +1 -0
- package/dist/sessionlog/utils/string-utils.d.ts +24 -0
- package/dist/sessionlog/utils/string-utils.d.ts.map +1 -0
- package/dist/sessionlog/utils/string-utils.js +47 -0
- package/dist/sessionlog/utils/string-utils.js.map +1 -0
- package/dist/sessionlog/utils/todo-extract.d.ts +52 -0
- package/dist/sessionlog/utils/todo-extract.d.ts.map +1 -0
- package/dist/sessionlog/utils/todo-extract.js +167 -0
- package/dist/sessionlog/utils/todo-extract.js.map +1 -0
- package/dist/sessionlog/utils/trailers.d.ts +36 -0
- package/dist/sessionlog/utils/trailers.d.ts.map +1 -0
- package/dist/sessionlog/utils/trailers.js +149 -0
- package/dist/sessionlog/utils/trailers.js.map +1 -0
- package/dist/sessionlog/utils/transcript-parse.d.ts +57 -0
- package/dist/sessionlog/utils/transcript-parse.d.ts.map +1 -0
- package/dist/sessionlog/utils/transcript-parse.js +126 -0
- package/dist/sessionlog/utils/transcript-parse.js.map +1 -0
- package/dist/sessionlog/utils/transcript-timestamp.d.ts +22 -0
- package/dist/sessionlog/utils/transcript-timestamp.d.ts.map +1 -0
- package/dist/sessionlog/utils/transcript-timestamp.js +56 -0
- package/dist/sessionlog/utils/transcript-timestamp.js.map +1 -0
- package/dist/sessionlog/utils/tree-ops.d.ts +47 -0
- package/dist/sessionlog/utils/tree-ops.d.ts.map +1 -0
- package/dist/sessionlog/utils/tree-ops.js +145 -0
- package/dist/sessionlog/utils/tree-ops.js.map +1 -0
- package/dist/sessionlog/utils/tty.d.ts +25 -0
- package/dist/sessionlog/utils/tty.d.ts.map +1 -0
- package/dist/sessionlog/utils/tty.js +70 -0
- package/dist/sessionlog/utils/tty.js.map +1 -0
- package/dist/sessionlog/utils/validation.d.ts +31 -0
- package/dist/sessionlog/utils/validation.d.ts.map +1 -0
- package/dist/sessionlog/utils/validation.js +59 -0
- package/dist/sessionlog/utils/validation.js.map +1 -0
- package/dist/sessionlog/utils/worktree.d.ts +16 -0
- package/dist/sessionlog/utils/worktree.d.ts.map +1 -0
- package/dist/sessionlog/utils/worktree.js +50 -0
- package/dist/sessionlog/utils/worktree.js.map +1 -0
- package/dist/storage/sqlite-schema.d.ts.map +1 -1
- package/dist/storage/sqlite-schema.js +2 -0
- package/dist/storage/sqlite-schema.js.map +1 -1
- package/dist/storage/sqlite.d.ts.map +1 -1
- package/dist/storage/sqlite.js +18 -4
- package/dist/storage/sqlite.js.map +1 -1
- package/dist/tools/index.d.ts +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/query.d.ts +2 -1
- package/dist/tools/query.d.ts.map +1 -1
- package/dist/tools/query.js +217 -7
- package/dist/tools/query.js.map +1 -1
- package/dist/tools/types.d.ts +57 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/types.js.map +1 -1
- package/dist/tracking/transcript-extractor.d.ts +3 -3
- package/dist/tracking/transcript-extractor.d.ts.map +1 -1
- package/dist/tracking/transcript-extractor.js +1 -1
- package/dist/tracking/transcript-extractor.js.map +1 -1
- package/package.json +3 -1
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enable Command
|
|
3
|
+
*
|
|
4
|
+
* Enables Entire in a repository: creates settings, installs hooks,
|
|
5
|
+
* auto-detects agents.
|
|
6
|
+
*/
|
|
7
|
+
import { type AgentName } from '../types.js';
|
|
8
|
+
export interface EnableOptions {
|
|
9
|
+
/** Working directory */
|
|
10
|
+
cwd?: string;
|
|
11
|
+
/** Specific agent to enable (auto-detect if not specified) */
|
|
12
|
+
agent?: AgentName;
|
|
13
|
+
/** Force reinstall hooks even if already present */
|
|
14
|
+
force?: boolean;
|
|
15
|
+
/** Save to local settings instead of project settings */
|
|
16
|
+
local?: boolean;
|
|
17
|
+
/** Session directory name under .git/ (default: SESSION_DIR_NAME) */
|
|
18
|
+
sessionDirName?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface EnableResult {
|
|
21
|
+
enabled: boolean;
|
|
22
|
+
agent: AgentName | null;
|
|
23
|
+
agentHooksInstalled: number;
|
|
24
|
+
gitHooksInstalled: number;
|
|
25
|
+
errors: string[];
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Enable Entire in a repository
|
|
29
|
+
*/
|
|
30
|
+
export declare function enable(options?: EnableOptions): Promise<EnableResult>;
|
|
31
|
+
//# sourceMappingURL=enable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enable.d.ts","sourceRoot":"","sources":["../../../src/sessionlog/commands/enable.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAEL,KAAK,SAAS,EAKf,MAAM,aAAa,CAAC;AAWrB,MAAM,WAAW,aAAa;IAC5B,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,8DAA8D;IAC9D,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB,oDAAoD;IACpD,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,yDAAyD;IACzD,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,qEAAqE;IACrE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAMD;;GAEG;AACH,wBAAsB,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAuE/E"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enable Command
|
|
3
|
+
*
|
|
4
|
+
* Enables Entire in a repository: creates settings, installs hooks,
|
|
5
|
+
* auto-detects agents.
|
|
6
|
+
*/
|
|
7
|
+
import * as fs from 'node:fs';
|
|
8
|
+
import * as path from 'node:path';
|
|
9
|
+
import { ENTIRE_DIR, ENTIRE_METADATA_DIR, ENTIRE_TMP_DIR, SESSION_DIR_NAME, } from '../types.js';
|
|
10
|
+
import { isGitRepository, getWorktreeRoot, getGitDir, getHead } from '../git-operations.js';
|
|
11
|
+
import { saveProjectSettings, saveLocalSettings, ensureGitignore } from '../config.js';
|
|
12
|
+
import { installGitHooks } from '../hooks/git-hooks.js';
|
|
13
|
+
import { detectAgent, getAgent, listAgentNames } from '../agent/registry.js';
|
|
14
|
+
import { hasHookSupport } from '../agent/types.js';
|
|
15
|
+
// ============================================================================
|
|
16
|
+
// Implementation
|
|
17
|
+
// ============================================================================
|
|
18
|
+
/**
|
|
19
|
+
* Enable Entire in a repository
|
|
20
|
+
*/
|
|
21
|
+
export async function enable(options = {}) {
|
|
22
|
+
const cwd = options.cwd ?? process.cwd();
|
|
23
|
+
const errors = [];
|
|
24
|
+
// Validate git repository
|
|
25
|
+
if (!(await isGitRepository(cwd))) {
|
|
26
|
+
return { enabled: false, agent: null, agentHooksInstalled: 0, gitHooksInstalled: 0, errors: ['Not a git repository'] };
|
|
27
|
+
}
|
|
28
|
+
// Validate repository has at least one commit
|
|
29
|
+
try {
|
|
30
|
+
await getHead(cwd);
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return { enabled: false, agent: null, agentHooksInstalled: 0, gitHooksInstalled: 0, errors: ['Repository has no commits'] };
|
|
34
|
+
}
|
|
35
|
+
const root = await getWorktreeRoot(cwd);
|
|
36
|
+
// Detect or resolve agent
|
|
37
|
+
let agent = options.agent ? getAgent(options.agent) : await detectAgent(cwd);
|
|
38
|
+
if (!agent) {
|
|
39
|
+
errors.push(`No agent detected. Available agents: ${listAgentNames().join(', ')}. ` +
|
|
40
|
+
`Install an agent or specify one with --agent.`);
|
|
41
|
+
}
|
|
42
|
+
// Create directories
|
|
43
|
+
await createDirectories(root, cwd, options.sessionDirName);
|
|
44
|
+
// Save settings
|
|
45
|
+
const settings = {
|
|
46
|
+
enabled: true,
|
|
47
|
+
strategy: 'manual-commit',
|
|
48
|
+
};
|
|
49
|
+
if (options.local) {
|
|
50
|
+
await saveLocalSettings(settings, cwd);
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
await saveProjectSettings(settings, cwd);
|
|
54
|
+
}
|
|
55
|
+
// Set up .gitignore for local files
|
|
56
|
+
await ensureGitignore(cwd);
|
|
57
|
+
// Install git hooks
|
|
58
|
+
let gitHooksInstalled = 0;
|
|
59
|
+
try {
|
|
60
|
+
gitHooksInstalled = await installGitHooks(root);
|
|
61
|
+
}
|
|
62
|
+
catch (e) {
|
|
63
|
+
errors.push(`Failed to install git hooks: ${e instanceof Error ? e.message : String(e)}`);
|
|
64
|
+
}
|
|
65
|
+
// Install agent hooks
|
|
66
|
+
let agentHooksInstalled = 0;
|
|
67
|
+
if (agent && hasHookSupport(agent)) {
|
|
68
|
+
try {
|
|
69
|
+
agentHooksInstalled = await agent.installHooks(root, options.force);
|
|
70
|
+
}
|
|
71
|
+
catch (e) {
|
|
72
|
+
errors.push(`Failed to install agent hooks: ${e instanceof Error ? e.message : String(e)}`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return {
|
|
76
|
+
enabled: true,
|
|
77
|
+
agent: agent?.name ?? null,
|
|
78
|
+
agentHooksInstalled,
|
|
79
|
+
gitHooksInstalled,
|
|
80
|
+
errors,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
async function createDirectories(root, cwd, sessionDirName) {
|
|
84
|
+
const dirs = [
|
|
85
|
+
path.join(root, ENTIRE_DIR),
|
|
86
|
+
path.join(root, ENTIRE_METADATA_DIR),
|
|
87
|
+
path.join(root, ENTIRE_TMP_DIR),
|
|
88
|
+
];
|
|
89
|
+
// Also create .git/<sessionDirName>/
|
|
90
|
+
try {
|
|
91
|
+
const gitDir = await getGitDir(cwd);
|
|
92
|
+
const sessionsDir = path.resolve(root, gitDir, sessionDirName ?? SESSION_DIR_NAME);
|
|
93
|
+
dirs.push(sessionsDir);
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
// Ignore if git dir resolution fails
|
|
97
|
+
}
|
|
98
|
+
for (const dir of dirs) {
|
|
99
|
+
await fs.promises.mkdir(dir, { recursive: true });
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=enable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enable.js","sourceRoot":"","sources":["../../../src/sessionlog/commands/enable.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Explain Command
|
|
3
|
+
*
|
|
4
|
+
* Provides human-readable context about sessions, commits, and checkpoints.
|
|
5
|
+
* This is the library implementation - consumers (CLI, IDE plugins) handle
|
|
6
|
+
* their own output formatting and pager support.
|
|
7
|
+
*/
|
|
8
|
+
import type { CheckpointID, Summary, AgentType, TokenUsage } from '../types.js';
|
|
9
|
+
export interface CheckpointDetail {
|
|
10
|
+
checkpointID: CheckpointID;
|
|
11
|
+
sessionID: string;
|
|
12
|
+
agent?: AgentType;
|
|
13
|
+
strategy: string;
|
|
14
|
+
createdAt: string;
|
|
15
|
+
branch?: string;
|
|
16
|
+
checkpointsCount: number;
|
|
17
|
+
filesTouched: string[];
|
|
18
|
+
tokenUsage?: TokenUsage;
|
|
19
|
+
summary?: Summary;
|
|
20
|
+
isTaskCheckpoint?: boolean;
|
|
21
|
+
turnID?: string;
|
|
22
|
+
transcriptIdentifierAtStart?: string;
|
|
23
|
+
checkpointTranscriptStart: number;
|
|
24
|
+
}
|
|
25
|
+
export interface CheckpointListItem {
|
|
26
|
+
checkpointID: CheckpointID;
|
|
27
|
+
sessionID: string;
|
|
28
|
+
message: string;
|
|
29
|
+
date: string;
|
|
30
|
+
isTaskCheckpoint: boolean;
|
|
31
|
+
agent?: AgentType;
|
|
32
|
+
sessionCount: number;
|
|
33
|
+
sessionIDs: string[];
|
|
34
|
+
}
|
|
35
|
+
export interface ExplainOptions {
|
|
36
|
+
cwd?: string;
|
|
37
|
+
sessionFilter?: string;
|
|
38
|
+
maxDepth?: number;
|
|
39
|
+
searchAll?: boolean;
|
|
40
|
+
checkpointsBranch?: string;
|
|
41
|
+
}
|
|
42
|
+
export interface CommitExplainResult {
|
|
43
|
+
commitSHA: string;
|
|
44
|
+
commitMessage: string;
|
|
45
|
+
checkpointID: CheckpointID | null;
|
|
46
|
+
detail: CheckpointDetail | null;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* List checkpoints on the current branch.
|
|
50
|
+
* Optionally filtered by session ID prefix.
|
|
51
|
+
*/
|
|
52
|
+
export declare function listCheckpoints(options?: ExplainOptions): Promise<CheckpointListItem[]>;
|
|
53
|
+
/**
|
|
54
|
+
* Get detailed information about a specific checkpoint.
|
|
55
|
+
*/
|
|
56
|
+
export declare function getCheckpointDetail(checkpointID: CheckpointID, options?: ExplainOptions): Promise<CheckpointDetail | null>;
|
|
57
|
+
/**
|
|
58
|
+
* Get the transcript content for a checkpoint.
|
|
59
|
+
*/
|
|
60
|
+
export declare function getCheckpointTranscript(checkpointID: CheckpointID, options?: ExplainOptions): Promise<Buffer | null>;
|
|
61
|
+
/**
|
|
62
|
+
* Explain a specific commit by finding its associated checkpoint.
|
|
63
|
+
*/
|
|
64
|
+
export declare function explainCommit(commitRef: string, options?: ExplainOptions): Promise<CommitExplainResult | null>;
|
|
65
|
+
/**
|
|
66
|
+
* Find a checkpoint by ID prefix (partial match).
|
|
67
|
+
*/
|
|
68
|
+
export declare function findCheckpointByPrefix(prefix: string, options?: ExplainOptions): Promise<CheckpointID | null>;
|
|
69
|
+
//# sourceMappingURL=explain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"explain.d.ts","sourceRoot":"","sources":["../../../src/sessionlog/commands/explain.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,YAAY,EAEZ,OAAO,EACP,SAAS,EACT,UAAU,EACX,MAAM,aAAa,CAAC;AASrB,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,yBAAyB,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACjC;AAMD;;;GAGG;AACH,wBAAsB,eAAe,CACnC,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAmE/B;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,YAAY,EAAE,YAAY,EAC1B,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CA8BlC;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,YAAY,EAAE,YAAY,EAC1B,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAWxB;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAgCrC;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CA2B9B"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Explain Command
|
|
3
|
+
*
|
|
4
|
+
* Provides human-readable context about sessions, commits, and checkpoints.
|
|
5
|
+
* This is the library implementation - consumers (CLI, IDE plugins) handle
|
|
6
|
+
* their own output formatting and pager support.
|
|
7
|
+
*/
|
|
8
|
+
import { CHECKPOINTS_BRANCH, checkpointIDPath } from '../types.js';
|
|
9
|
+
import { git, catFile, lsTree } from '../git-operations.js';
|
|
10
|
+
import { parseCheckpoint, parseAllSessions } from '../utils/trailers.js';
|
|
11
|
+
// ============================================================================
|
|
12
|
+
// Public API
|
|
13
|
+
// ============================================================================
|
|
14
|
+
/**
|
|
15
|
+
* List checkpoints on the current branch.
|
|
16
|
+
* Optionally filtered by session ID prefix.
|
|
17
|
+
*/
|
|
18
|
+
export async function listCheckpoints(options = {}) {
|
|
19
|
+
const cwd = options.cwd;
|
|
20
|
+
const maxDepth = options.searchAll ? 0 : (options.maxDepth ?? 500);
|
|
21
|
+
// Get commits on the current branch
|
|
22
|
+
const logArgs = ['log', '--format=%H %s'];
|
|
23
|
+
if (maxDepth > 0)
|
|
24
|
+
logArgs.push(`-n`, `${maxDepth}`);
|
|
25
|
+
let logOutput;
|
|
26
|
+
try {
|
|
27
|
+
logOutput = await git(logArgs, { cwd });
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return [];
|
|
31
|
+
}
|
|
32
|
+
const items = [];
|
|
33
|
+
for (const line of logOutput.split('\n')) {
|
|
34
|
+
if (!line.trim())
|
|
35
|
+
continue;
|
|
36
|
+
const spaceIdx = line.indexOf(' ');
|
|
37
|
+
if (spaceIdx === -1)
|
|
38
|
+
continue;
|
|
39
|
+
const sha = line.slice(0, spaceIdx);
|
|
40
|
+
const message = line.slice(spaceIdx + 1);
|
|
41
|
+
// Get full commit message to check for trailers
|
|
42
|
+
let fullMessage;
|
|
43
|
+
try {
|
|
44
|
+
fullMessage = await git(['log', '-1', '--format=%B', sha], { cwd });
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
const [cpID, hasCp] = parseCheckpoint(fullMessage);
|
|
50
|
+
if (!hasCp || !cpID)
|
|
51
|
+
continue;
|
|
52
|
+
const sessionIDs = parseAllSessions(fullMessage);
|
|
53
|
+
// Apply session filter
|
|
54
|
+
if (options.sessionFilter) {
|
|
55
|
+
const hasMatch = sessionIDs.some((sid) => sid.startsWith(options.sessionFilter));
|
|
56
|
+
if (!hasMatch)
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
// Get commit date
|
|
60
|
+
let date;
|
|
61
|
+
try {
|
|
62
|
+
date = (await git(['log', '-1', '--format=%aI', sha], { cwd })).trim();
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
date = '';
|
|
66
|
+
}
|
|
67
|
+
items.push({
|
|
68
|
+
checkpointID: cpID,
|
|
69
|
+
sessionID: sessionIDs[0] ?? '',
|
|
70
|
+
message: message.trim(),
|
|
71
|
+
date,
|
|
72
|
+
isTaskCheckpoint: message.includes('[task]'),
|
|
73
|
+
sessionCount: sessionIDs.length,
|
|
74
|
+
sessionIDs,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
return items;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Get detailed information about a specific checkpoint.
|
|
81
|
+
*/
|
|
82
|
+
export async function getCheckpointDetail(checkpointID, options = {}) {
|
|
83
|
+
const cwd = options.cwd;
|
|
84
|
+
const branch = options.checkpointsBranch ?? CHECKPOINTS_BRANCH;
|
|
85
|
+
// Try to read committed metadata from the checkpoints branch
|
|
86
|
+
const metadataPath = `${checkpointIDPath(checkpointID)}/metadata.json`;
|
|
87
|
+
try {
|
|
88
|
+
const content = await catFile(`${branch}:${metadataPath}`, cwd);
|
|
89
|
+
const metadata = JSON.parse(content);
|
|
90
|
+
return {
|
|
91
|
+
checkpointID: metadata.checkpointID,
|
|
92
|
+
sessionID: metadata.sessionID,
|
|
93
|
+
agent: metadata.agent,
|
|
94
|
+
strategy: metadata.strategy,
|
|
95
|
+
createdAt: metadata.createdAt,
|
|
96
|
+
branch: metadata.branch,
|
|
97
|
+
checkpointsCount: metadata.checkpointsCount,
|
|
98
|
+
filesTouched: metadata.filesTouched,
|
|
99
|
+
tokenUsage: metadata.tokenUsage,
|
|
100
|
+
summary: metadata.summary,
|
|
101
|
+
isTaskCheckpoint: metadata.isTask,
|
|
102
|
+
turnID: metadata.turnID,
|
|
103
|
+
transcriptIdentifierAtStart: metadata.transcriptIdentifierAtStart,
|
|
104
|
+
checkpointTranscriptStart: metadata.checkpointTranscriptStart,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Get the transcript content for a checkpoint.
|
|
113
|
+
*/
|
|
114
|
+
export async function getCheckpointTranscript(checkpointID, options = {}) {
|
|
115
|
+
const cwd = options.cwd;
|
|
116
|
+
const branch = options.checkpointsBranch ?? CHECKPOINTS_BRANCH;
|
|
117
|
+
const transcriptPath = `${checkpointIDPath(checkpointID)}/transcript`;
|
|
118
|
+
try {
|
|
119
|
+
const content = await catFile(`${branch}:${transcriptPath}`, cwd);
|
|
120
|
+
return Buffer.from(content, 'utf-8');
|
|
121
|
+
}
|
|
122
|
+
catch {
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Explain a specific commit by finding its associated checkpoint.
|
|
128
|
+
*/
|
|
129
|
+
export async function explainCommit(commitRef, options = {}) {
|
|
130
|
+
const cwd = options.cwd;
|
|
131
|
+
let fullMessage;
|
|
132
|
+
try {
|
|
133
|
+
fullMessage = await git(['log', '-1', '--format=%B', commitRef], { cwd });
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
const [cpID] = parseCheckpoint(fullMessage);
|
|
139
|
+
let sha;
|
|
140
|
+
try {
|
|
141
|
+
sha = (await git(['rev-parse', commitRef], { cwd })).trim();
|
|
142
|
+
}
|
|
143
|
+
catch {
|
|
144
|
+
return null;
|
|
145
|
+
}
|
|
146
|
+
const message = fullMessage.split('\n')[0] ?? '';
|
|
147
|
+
let detail = null;
|
|
148
|
+
if (cpID) {
|
|
149
|
+
detail = await getCheckpointDetail(cpID, options);
|
|
150
|
+
}
|
|
151
|
+
return {
|
|
152
|
+
commitSHA: sha,
|
|
153
|
+
commitMessage: message,
|
|
154
|
+
checkpointID: cpID,
|
|
155
|
+
detail,
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Find a checkpoint by ID prefix (partial match).
|
|
160
|
+
*/
|
|
161
|
+
export async function findCheckpointByPrefix(prefix, options = {}) {
|
|
162
|
+
const cwd = options.cwd;
|
|
163
|
+
// For full IDs, just return directly
|
|
164
|
+
if (prefix.length === 12)
|
|
165
|
+
return prefix;
|
|
166
|
+
// Need at least 2 chars for shard prefix
|
|
167
|
+
if (prefix.length < 2)
|
|
168
|
+
return null;
|
|
169
|
+
const shardPrefix = prefix.slice(0, 2);
|
|
170
|
+
const remainder = prefix.slice(2);
|
|
171
|
+
const branch = options.checkpointsBranch ?? CHECKPOINTS_BRANCH;
|
|
172
|
+
try {
|
|
173
|
+
const entries = await lsTree(branch, shardPrefix, cwd);
|
|
174
|
+
for (const entry of entries) {
|
|
175
|
+
if (entry.name.startsWith(remainder)) {
|
|
176
|
+
return `${shardPrefix}${entry.name}`;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
catch {
|
|
181
|
+
// Shard doesn't exist
|
|
182
|
+
}
|
|
183
|
+
return null;
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=explain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"explain.js","sourceRoot":"","sources":["../../../src/sessionlog/commands/explain.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reset Command
|
|
3
|
+
*
|
|
4
|
+
* Deletes shadow branch and session state for the current HEAD.
|
|
5
|
+
* More targeted than clean — only affects the current commit's sessions.
|
|
6
|
+
*/
|
|
7
|
+
export interface ResetOptions {
|
|
8
|
+
cwd?: string;
|
|
9
|
+
/** Reset a specific session instead of all */
|
|
10
|
+
sessionID?: string;
|
|
11
|
+
/** Skip confirmation (for programmatic use) */
|
|
12
|
+
force?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface ResetResult {
|
|
15
|
+
sessionsReset: string[];
|
|
16
|
+
branchesDeleted: string[];
|
|
17
|
+
errors: string[];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Reset shadow branches and session state for the current HEAD
|
|
21
|
+
*/
|
|
22
|
+
export declare function reset(options?: ResetOptions): Promise<ResetResult>;
|
|
23
|
+
//# sourceMappingURL=reset.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reset.d.ts","sourceRoot":"","sources":["../../../src/sessionlog/commands/reset.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAMD;;GAEG;AACH,wBAAsB,KAAK,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAmE5E"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reset Command
|
|
3
|
+
*
|
|
4
|
+
* Deletes shadow branch and session state for the current HEAD.
|
|
5
|
+
* More targeted than clean — only affects the current commit's sessions.
|
|
6
|
+
*/
|
|
7
|
+
import { getHead } from '../git-operations.js';
|
|
8
|
+
import { createSessionStore } from '../store/session-store.js';
|
|
9
|
+
import { createCheckpointStore } from '../store/checkpoint-store.js';
|
|
10
|
+
// ============================================================================
|
|
11
|
+
// Implementation
|
|
12
|
+
// ============================================================================
|
|
13
|
+
/**
|
|
14
|
+
* Reset shadow branches and session state for the current HEAD
|
|
15
|
+
*/
|
|
16
|
+
export async function reset(options = {}) {
|
|
17
|
+
const cwd = options.cwd;
|
|
18
|
+
const sessionStore = createSessionStore(cwd);
|
|
19
|
+
const checkpointStore = createCheckpointStore(cwd);
|
|
20
|
+
const head = await getHead(cwd);
|
|
21
|
+
const errors = [];
|
|
22
|
+
const sessionsReset = [];
|
|
23
|
+
const branchesDeleted = [];
|
|
24
|
+
const sessions = await sessionStore.list();
|
|
25
|
+
// Find sessions matching the current HEAD
|
|
26
|
+
let matchingSessions;
|
|
27
|
+
if (options.sessionID) {
|
|
28
|
+
matchingSessions = sessions.filter((s) => s.sessionID === options.sessionID);
|
|
29
|
+
if (matchingSessions.length === 0) {
|
|
30
|
+
errors.push(`Session not found: ${options.sessionID}`);
|
|
31
|
+
return { sessionsReset, branchesDeleted, errors };
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
matchingSessions = sessions.filter((s) => s.baseCommit === head || head.startsWith(s.baseCommit));
|
|
36
|
+
}
|
|
37
|
+
// Safety check: warn about active sessions
|
|
38
|
+
if (!options.force) {
|
|
39
|
+
const activeSessions = matchingSessions.filter((s) => s.phase === 'active');
|
|
40
|
+
if (activeSessions.length > 0) {
|
|
41
|
+
errors.push(`${activeSessions.length} active session(s) found. Use --force to reset active sessions.`);
|
|
42
|
+
return { sessionsReset, branchesDeleted, errors };
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
for (const session of matchingSessions) {
|
|
46
|
+
// Delete shadow branch
|
|
47
|
+
if (session.baseCommit) {
|
|
48
|
+
const branchName = checkpointStore.getShadowBranchName(session.baseCommit, session.worktreeID);
|
|
49
|
+
try {
|
|
50
|
+
await checkpointStore.deleteShadowBranch(branchName);
|
|
51
|
+
branchesDeleted.push(branchName);
|
|
52
|
+
}
|
|
53
|
+
catch (e) {
|
|
54
|
+
errors.push(`Failed to delete branch ${branchName}: ${e instanceof Error ? e.message : String(e)}`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// Delete session state
|
|
58
|
+
try {
|
|
59
|
+
await sessionStore.delete(session.sessionID);
|
|
60
|
+
sessionsReset.push(session.sessionID);
|
|
61
|
+
}
|
|
62
|
+
catch (e) {
|
|
63
|
+
errors.push(`Failed to delete session ${session.sessionID}: ${e instanceof Error ? e.message : String(e)}`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return { sessionsReset, branchesDeleted, errors };
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=reset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reset.js","sourceRoot":"","sources":["../../../src/sessionlog/commands/reset.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resume Command
|
|
3
|
+
*
|
|
4
|
+
* Library implementation for resuming agent sessions from branches.
|
|
5
|
+
* Handles branch checkout, session discovery from commit trailers,
|
|
6
|
+
* and transcript restoration.
|
|
7
|
+
*/
|
|
8
|
+
import type { CheckpointID } from '../types.js';
|
|
9
|
+
export interface ResumeInfo {
|
|
10
|
+
branchName: string;
|
|
11
|
+
sessionID: string;
|
|
12
|
+
sessionIDs: string[];
|
|
13
|
+
checkpointID: CheckpointID | null;
|
|
14
|
+
resumeCommand: string;
|
|
15
|
+
commitSHA: string;
|
|
16
|
+
commitMessage: string;
|
|
17
|
+
needsReset: boolean;
|
|
18
|
+
resetTargetSHA?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface ResumeOptions {
|
|
21
|
+
cwd?: string;
|
|
22
|
+
force?: boolean;
|
|
23
|
+
}
|
|
24
|
+
export interface ResumeResult {
|
|
25
|
+
success: boolean;
|
|
26
|
+
info?: ResumeInfo;
|
|
27
|
+
error?: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Discover resume information for a branch without performing any actions.
|
|
31
|
+
* This is useful for preview/dry-run scenarios.
|
|
32
|
+
*/
|
|
33
|
+
export declare function discoverResumeInfo(branchName: string, options?: ResumeOptions): Promise<ResumeResult>;
|
|
34
|
+
/**
|
|
35
|
+
* Get a list of branches that have checkpointed sessions.
|
|
36
|
+
*/
|
|
37
|
+
export declare function listResumableBranches(options?: ResumeOptions): Promise<Array<{
|
|
38
|
+
branch: string;
|
|
39
|
+
sessionID: string;
|
|
40
|
+
lastCommit: string;
|
|
41
|
+
}>>;
|
|
42
|
+
//# sourceMappingURL=resume.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resume.d.ts","sourceRoot":"","sources":["../../../src/sessionlog/commands/resume.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAQhD,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CA+BvB;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,KAAK,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAiD3E"}
|