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,134 @@
|
|
|
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 { git, refExists } from '../git-operations.js';
|
|
9
|
+
import { parseCheckpoint, parseAllSessions } from '../utils/trailers.js';
|
|
10
|
+
// ============================================================================
|
|
11
|
+
// Public API
|
|
12
|
+
// ============================================================================
|
|
13
|
+
/**
|
|
14
|
+
* Discover resume information for a branch without performing any actions.
|
|
15
|
+
* This is useful for preview/dry-run scenarios.
|
|
16
|
+
*/
|
|
17
|
+
export async function discoverResumeInfo(branchName, options = {}) {
|
|
18
|
+
const cwd = options.cwd;
|
|
19
|
+
// Check if branch exists locally
|
|
20
|
+
const localExists = await refExists(`refs/heads/${branchName}`, cwd);
|
|
21
|
+
if (!localExists) {
|
|
22
|
+
// Check remote
|
|
23
|
+
const remoteExists = await refExists(`refs/remotes/origin/${branchName}`, cwd);
|
|
24
|
+
if (!remoteExists) {
|
|
25
|
+
return {
|
|
26
|
+
success: false,
|
|
27
|
+
error: `Branch '${branchName}' not found locally or on origin`,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
success: false,
|
|
32
|
+
error: `Branch '${branchName}' exists on origin but not locally. Fetch it first.`,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
// Find the most recent commit with a checkpoint trailer
|
|
36
|
+
const info = await findSessionInfo(branchName, cwd);
|
|
37
|
+
if (!info) {
|
|
38
|
+
return {
|
|
39
|
+
success: false,
|
|
40
|
+
error: `No checkpointed session found on branch '${branchName}'`,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
return { success: true, info };
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Get a list of branches that have checkpointed sessions.
|
|
47
|
+
*/
|
|
48
|
+
export async function listResumableBranches(options = {}) {
|
|
49
|
+
const cwd = options.cwd;
|
|
50
|
+
const results = [];
|
|
51
|
+
let branchOutput;
|
|
52
|
+
try {
|
|
53
|
+
branchOutput = await git(['branch', '--format=%(refname:short)'], { cwd });
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
return [];
|
|
57
|
+
}
|
|
58
|
+
for (const branch of branchOutput.split('\n')) {
|
|
59
|
+
const trimmed = branch.trim();
|
|
60
|
+
if (!trimmed)
|
|
61
|
+
continue;
|
|
62
|
+
// Get the last few commits to check for checkpoint trailers
|
|
63
|
+
try {
|
|
64
|
+
const logOutput = await git(['log', '-10', '--format=%H', trimmed], { cwd });
|
|
65
|
+
for (const sha of logOutput.split('\n')) {
|
|
66
|
+
if (!sha.trim())
|
|
67
|
+
continue;
|
|
68
|
+
const fullMessage = await git(['log', '-1', '--format=%B', sha.trim()], { cwd });
|
|
69
|
+
const [cpID, hasCp] = parseCheckpoint(fullMessage);
|
|
70
|
+
if (hasCp && cpID) {
|
|
71
|
+
const sessionIDs = parseAllSessions(fullMessage);
|
|
72
|
+
if (sessionIDs.length > 0) {
|
|
73
|
+
results.push({
|
|
74
|
+
branch: trimmed,
|
|
75
|
+
sessionID: sessionIDs[0],
|
|
76
|
+
lastCommit: sha.trim().slice(0, 7),
|
|
77
|
+
});
|
|
78
|
+
break; // Only report first match per branch
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return results;
|
|
88
|
+
}
|
|
89
|
+
// ============================================================================
|
|
90
|
+
// Internal Helpers
|
|
91
|
+
// ============================================================================
|
|
92
|
+
async function findSessionInfo(branchName, cwd) {
|
|
93
|
+
// Walk commits on the branch looking for one with a checkpoint trailer
|
|
94
|
+
let logOutput;
|
|
95
|
+
try {
|
|
96
|
+
logOutput = await git(['log', '-50', '--format=%H', branchName], { cwd });
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
return null;
|
|
100
|
+
}
|
|
101
|
+
const shas = logOutput.split('\n').filter(Boolean);
|
|
102
|
+
let latestSHA = shas[0] ?? '';
|
|
103
|
+
for (let i = 0; i < shas.length; i++) {
|
|
104
|
+
const sha = shas[i].trim();
|
|
105
|
+
if (!sha)
|
|
106
|
+
continue;
|
|
107
|
+
let fullMessage;
|
|
108
|
+
try {
|
|
109
|
+
fullMessage = await git(['log', '-1', '--format=%B', sha], { cwd });
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
const [cpID, hasCp] = parseCheckpoint(fullMessage);
|
|
115
|
+
if (!hasCp || !cpID)
|
|
116
|
+
continue;
|
|
117
|
+
const sessionIDs = parseAllSessions(fullMessage);
|
|
118
|
+
const message = fullMessage.split('\n')[0] ?? '';
|
|
119
|
+
const needsReset = i > 0; // If not the tip commit, needs reset
|
|
120
|
+
return {
|
|
121
|
+
branchName,
|
|
122
|
+
sessionID: sessionIDs[0] ?? '',
|
|
123
|
+
sessionIDs,
|
|
124
|
+
checkpointID: cpID,
|
|
125
|
+
resumeCommand: '', // To be filled by consumer with agent-specific command
|
|
126
|
+
commitSHA: sha,
|
|
127
|
+
commitMessage: message,
|
|
128
|
+
needsReset,
|
|
129
|
+
resetTargetSHA: needsReset ? sha : undefined,
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
return null;
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=resume.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resume.js","sourceRoot":"","sources":["../../../src/sessionlog/commands/resume.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rewind Command
|
|
3
|
+
*
|
|
4
|
+
* Browse checkpoints and restore session state to a previous point.
|
|
5
|
+
* Supports both shadow branch (temporary) and committed checkpoint rewind.
|
|
6
|
+
*/
|
|
7
|
+
import type { RewindPoint } from '../types.js';
|
|
8
|
+
export interface RewindOptions {
|
|
9
|
+
cwd?: string;
|
|
10
|
+
/** Maximum number of rewind points to return */
|
|
11
|
+
limit?: number;
|
|
12
|
+
/** Override session directory name */
|
|
13
|
+
sessionDirName?: string;
|
|
14
|
+
/** Override checkpoints branch */
|
|
15
|
+
checkpointsBranch?: string;
|
|
16
|
+
/** Override shadow branch prefix */
|
|
17
|
+
shadowBranchPrefix?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface RewindResult {
|
|
20
|
+
success: boolean;
|
|
21
|
+
message: string;
|
|
22
|
+
rewindPoint?: RewindPoint;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* List available rewind points
|
|
26
|
+
*/
|
|
27
|
+
export declare function listRewindPoints(options?: RewindOptions): Promise<RewindPoint[]>;
|
|
28
|
+
/**
|
|
29
|
+
* Rewind to a specific point (non-interactive)
|
|
30
|
+
*/
|
|
31
|
+
export declare function rewindTo(pointID: string, options?: {
|
|
32
|
+
cwd?: string;
|
|
33
|
+
logsOnly?: boolean;
|
|
34
|
+
reset?: boolean;
|
|
35
|
+
}): Promise<RewindResult>;
|
|
36
|
+
/**
|
|
37
|
+
* List rewind points as JSON (for CLI --list flag)
|
|
38
|
+
*/
|
|
39
|
+
export declare function listRewindPointsJSON(options?: RewindOptions): Promise<string>;
|
|
40
|
+
//# sourceMappingURL=rewind.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rewind.d.ts","sourceRoot":"","sources":["../../../src/sessionlog/commands/rewind.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAmC,MAAM,aAAa,CAAC;AAgBhF,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kCAAkC;IAClC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oCAAoC;IACpC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAMD;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CA8D1F;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAClE,OAAO,CAAC,YAAY,CAAC,CAmEvB;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBvF"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rewind Command
|
|
3
|
+
*
|
|
4
|
+
* Browse checkpoints and restore session state to a previous point.
|
|
5
|
+
* Supports both shadow branch (temporary) and committed checkpoint rewind.
|
|
6
|
+
*/
|
|
7
|
+
import { git, hasUncommittedChanges, } from '../git-operations.js';
|
|
8
|
+
import { createCheckpointStore } from '../store/checkpoint-store.js';
|
|
9
|
+
// ============================================================================
|
|
10
|
+
// Implementation
|
|
11
|
+
// ============================================================================
|
|
12
|
+
/**
|
|
13
|
+
* List available rewind points
|
|
14
|
+
*/
|
|
15
|
+
export async function listRewindPoints(options = {}) {
|
|
16
|
+
const cwd = options.cwd;
|
|
17
|
+
const limit = options.limit ?? 20;
|
|
18
|
+
const points = [];
|
|
19
|
+
const checkpointStore = createCheckpointStore(cwd, options.checkpointsBranch, options.shadowBranchPrefix);
|
|
20
|
+
// 1. Shadow branch checkpoints (temporary, most recent)
|
|
21
|
+
const temporaryBranches = await checkpointStore.listTemporary();
|
|
22
|
+
for (const temp of temporaryBranches) {
|
|
23
|
+
points.push({
|
|
24
|
+
id: temp.latestCommit,
|
|
25
|
+
message: `Shadow checkpoint on ${temp.branchName}`,
|
|
26
|
+
date: temp.timestamp,
|
|
27
|
+
isTaskCheckpoint: false,
|
|
28
|
+
isLogsOnly: false,
|
|
29
|
+
sessionID: temp.sessionID,
|
|
30
|
+
sessionCount: 1,
|
|
31
|
+
sessionIDs: temp.sessionID ? [temp.sessionID] : [],
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
// 2. Committed checkpoints (permanent)
|
|
35
|
+
const committed = await checkpointStore.listCommitted(limit);
|
|
36
|
+
for (const cp of committed) {
|
|
37
|
+
const sessionIDs = cp.sessions
|
|
38
|
+
.map((s) => {
|
|
39
|
+
const match = s.metadata.match(/\/(\d+)\/metadata\.json$/);
|
|
40
|
+
return match ? match[1] : '';
|
|
41
|
+
})
|
|
42
|
+
.filter(Boolean);
|
|
43
|
+
points.push({
|
|
44
|
+
id: cp.checkpointID,
|
|
45
|
+
message: `Checkpoint ${cp.checkpointID.slice(0, 8)}`,
|
|
46
|
+
checkpointID: cp.checkpointID,
|
|
47
|
+
date: new Date().toISOString(), // Will be populated from metadata
|
|
48
|
+
isTaskCheckpoint: false,
|
|
49
|
+
isLogsOnly: true,
|
|
50
|
+
agent: undefined,
|
|
51
|
+
sessionCount: cp.sessions.length,
|
|
52
|
+
sessionIDs,
|
|
53
|
+
});
|
|
54
|
+
// Read detailed metadata for each committed checkpoint
|
|
55
|
+
for (let i = 0; i < cp.sessions.length; i++) {
|
|
56
|
+
const content = await checkpointStore.readSessionContent(cp.checkpointID, i);
|
|
57
|
+
if (content) {
|
|
58
|
+
const lastPoint = points[points.length - 1];
|
|
59
|
+
lastPoint.date = content.metadata.createdAt;
|
|
60
|
+
lastPoint.agent = content.metadata.agent;
|
|
61
|
+
lastPoint.sessionID = content.metadata.sessionID;
|
|
62
|
+
if (content.metadata.isTask) {
|
|
63
|
+
lastPoint.isTaskCheckpoint = true;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
// Sort by date (most recent first) and limit
|
|
69
|
+
points.sort((a, b) => new Date(b.date).getTime() - new Date(a.date).getTime());
|
|
70
|
+
return points.slice(0, limit);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Rewind to a specific point (non-interactive)
|
|
74
|
+
*/
|
|
75
|
+
export async function rewindTo(pointID, options = {}) {
|
|
76
|
+
const cwd = options.cwd;
|
|
77
|
+
// Safety check: uncommitted changes
|
|
78
|
+
if (await hasUncommittedChanges(cwd)) {
|
|
79
|
+
return {
|
|
80
|
+
success: false,
|
|
81
|
+
message: 'Cannot rewind: there are uncommitted changes. Commit or stash them first.',
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
// Find the rewind point
|
|
85
|
+
const points = await listRewindPoints({ cwd, limit: 50 });
|
|
86
|
+
const point = points.find((p) => p.id === pointID || p.checkpointID === pointID);
|
|
87
|
+
if (!point) {
|
|
88
|
+
return { success: false, message: `Rewind point not found: ${pointID}` };
|
|
89
|
+
}
|
|
90
|
+
if (point.isLogsOnly && !options.logsOnly && !options.reset) {
|
|
91
|
+
return {
|
|
92
|
+
success: false,
|
|
93
|
+
message: 'This is a logs-only checkpoint. Use --logs-only to restore logs, or --reset to reset the branch.',
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
if (options.reset) {
|
|
97
|
+
// Destructive: git reset --hard
|
|
98
|
+
try {
|
|
99
|
+
await git(['reset', '--hard', pointID], { cwd });
|
|
100
|
+
return {
|
|
101
|
+
success: true,
|
|
102
|
+
message: `Reset to ${pointID.slice(0, 8)}`,
|
|
103
|
+
rewindPoint: point,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
catch (e) {
|
|
107
|
+
return {
|
|
108
|
+
success: false,
|
|
109
|
+
message: `Reset failed: ${e instanceof Error ? e.message : String(e)}`,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
if (point.isLogsOnly || options.logsOnly) {
|
|
114
|
+
// Restore logs only (no checkout)
|
|
115
|
+
return {
|
|
116
|
+
success: true,
|
|
117
|
+
message: `Logs restored for checkpoint ${point.checkpointID ?? pointID}`,
|
|
118
|
+
rewindPoint: point,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
// Full rewind: checkout to the shadow branch commit
|
|
122
|
+
try {
|
|
123
|
+
await git(['checkout', pointID], { cwd });
|
|
124
|
+
return {
|
|
125
|
+
success: true,
|
|
126
|
+
message: `Rewound to ${pointID.slice(0, 8)}`,
|
|
127
|
+
rewindPoint: point,
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
catch (e) {
|
|
131
|
+
return {
|
|
132
|
+
success: false,
|
|
133
|
+
message: `Rewind failed: ${e instanceof Error ? e.message : String(e)}`,
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* List rewind points as JSON (for CLI --list flag)
|
|
139
|
+
*/
|
|
140
|
+
export async function listRewindPointsJSON(options = {}) {
|
|
141
|
+
const points = await listRewindPoints(options);
|
|
142
|
+
return JSON.stringify(points.map((p) => ({
|
|
143
|
+
id: p.id,
|
|
144
|
+
message: p.message,
|
|
145
|
+
date: p.date,
|
|
146
|
+
is_task_checkpoint: p.isTaskCheckpoint,
|
|
147
|
+
is_logs_only: p.isLogsOnly,
|
|
148
|
+
checkpoint_id: p.checkpointID,
|
|
149
|
+
agent: p.agent,
|
|
150
|
+
session_id: p.sessionID,
|
|
151
|
+
session_prompt: p.sessionPrompt,
|
|
152
|
+
session_count: p.sessionCount,
|
|
153
|
+
})), null, 2);
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=rewind.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rewind.js","sourceRoot":"","sources":["../../../src/sessionlog/commands/rewind.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Status Command
|
|
3
|
+
*
|
|
4
|
+
* Shows the current Entire setup status, active sessions,
|
|
5
|
+
* and configuration.
|
|
6
|
+
*/
|
|
7
|
+
import { type SessionlogSettings } from '../types.js';
|
|
8
|
+
export interface StatusResult {
|
|
9
|
+
/** Whether Entire is set up and enabled */
|
|
10
|
+
enabled: boolean;
|
|
11
|
+
/** Current strategy */
|
|
12
|
+
strategy: string;
|
|
13
|
+
/** Current branch */
|
|
14
|
+
branch: string | null;
|
|
15
|
+
/** Whether the checkpoints branch exists */
|
|
16
|
+
hasCheckpointsBranch: boolean;
|
|
17
|
+
/** Active sessions */
|
|
18
|
+
sessions: SessionStatus[];
|
|
19
|
+
/** Installed agents with hooks */
|
|
20
|
+
agents: string[];
|
|
21
|
+
/** Whether git hooks are installed */
|
|
22
|
+
gitHooksInstalled: boolean;
|
|
23
|
+
/** Effective settings */
|
|
24
|
+
settings: SessionlogSettings;
|
|
25
|
+
}
|
|
26
|
+
export interface SessionStatus {
|
|
27
|
+
sessionID: string;
|
|
28
|
+
agentType: string;
|
|
29
|
+
phase: string;
|
|
30
|
+
startedAt: string;
|
|
31
|
+
firstPrompt?: string;
|
|
32
|
+
filesTouched: string[];
|
|
33
|
+
stepCount: number;
|
|
34
|
+
tokenUsage?: {
|
|
35
|
+
input: number;
|
|
36
|
+
output: number;
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Get the current status of Entire
|
|
41
|
+
*/
|
|
42
|
+
export declare function status(cwd?: string, options?: {
|
|
43
|
+
sessionDirName?: string;
|
|
44
|
+
checkpointsBranch?: string;
|
|
45
|
+
}): Promise<StatusResult>;
|
|
46
|
+
/**
|
|
47
|
+
* Format status for display (JSON output)
|
|
48
|
+
*/
|
|
49
|
+
export declare function formatStatusJSON(result: StatusResult): string;
|
|
50
|
+
/**
|
|
51
|
+
* Format token count for display
|
|
52
|
+
*/
|
|
53
|
+
export declare function formatTokens(count: number): string;
|
|
54
|
+
//# sourceMappingURL=status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/sessionlog/commands/status.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAqB,KAAK,kBAAkB,EAAsB,MAAM,aAAa,CAAC;AAiB7F,MAAM,WAAW,YAAY;IAC3B,2CAA2C;IAC3C,OAAO,EAAE,OAAO,CAAC;IAEjB,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAC;IAEjB,qBAAqB;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtB,4CAA4C;IAC5C,oBAAoB,EAAE,OAAO,CAAC;IAE9B,sBAAsB;IACtB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAE1B,kCAAkC;IAClC,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB,sCAAsC;IACtC,iBAAiB,EAAE,OAAO,CAAC;IAE3B,yBAAyB;IACzB,QAAQ,EAAE,kBAAkB,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAMD;;GAEG;AACH,wBAAsB,MAAM,CAC1B,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAAE,GAChE,OAAO,CAAC,YAAY,CAAC,CA+DvB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAE7D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIlD"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Status Command
|
|
3
|
+
*
|
|
4
|
+
* Shows the current Entire setup status, active sessions,
|
|
5
|
+
* and configuration.
|
|
6
|
+
*/
|
|
7
|
+
import { CHECKPOINTS_BRANCH } from '../types.js';
|
|
8
|
+
import { isGitRepository, getWorktreeRoot, getCurrentBranch, refExists, } from '../git-operations.js';
|
|
9
|
+
import { loadSettings } from '../config.js';
|
|
10
|
+
import { createSessionStore } from '../store/session-store.js';
|
|
11
|
+
import { areGitHooksInstalled } from '../hooks/git-hooks.js';
|
|
12
|
+
import { detectAgents } from '../agent/registry.js';
|
|
13
|
+
import { hasHookSupport } from '../agent/types.js';
|
|
14
|
+
// ============================================================================
|
|
15
|
+
// Implementation
|
|
16
|
+
// ============================================================================
|
|
17
|
+
/**
|
|
18
|
+
* Get the current status of Entire
|
|
19
|
+
*/
|
|
20
|
+
export async function status(cwd, options) {
|
|
21
|
+
const isRepo = await isGitRepository(cwd);
|
|
22
|
+
if (!isRepo) {
|
|
23
|
+
return {
|
|
24
|
+
enabled: false,
|
|
25
|
+
strategy: 'manual-commit',
|
|
26
|
+
branch: null,
|
|
27
|
+
hasCheckpointsBranch: false,
|
|
28
|
+
sessions: [],
|
|
29
|
+
agents: [],
|
|
30
|
+
gitHooksInstalled: false,
|
|
31
|
+
settings: { enabled: false, strategy: 'manual-commit' },
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
const root = await getWorktreeRoot(cwd);
|
|
35
|
+
const settings = await loadSettings(cwd);
|
|
36
|
+
const branch = await getCurrentBranch(cwd);
|
|
37
|
+
const resolvedBranch = options?.checkpointsBranch ?? CHECKPOINTS_BRANCH;
|
|
38
|
+
const hasCheckpoints = await refExists(`refs/heads/${resolvedBranch}`, cwd);
|
|
39
|
+
const gitHooks = await areGitHooksInstalled(root);
|
|
40
|
+
// Detect agents with hooks
|
|
41
|
+
const agents = await detectAgents(cwd);
|
|
42
|
+
const agentNames = [];
|
|
43
|
+
for (const agent of agents) {
|
|
44
|
+
if (hasHookSupport(agent)) {
|
|
45
|
+
const installed = await agent.areHooksInstalled(root);
|
|
46
|
+
if (installed)
|
|
47
|
+
agentNames.push(agent.name);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
// Load sessions
|
|
51
|
+
const sessionStore = createSessionStore(cwd, options?.sessionDirName);
|
|
52
|
+
const allSessions = await sessionStore.list();
|
|
53
|
+
const sessions = allSessions.map((s) => ({
|
|
54
|
+
sessionID: s.sessionID,
|
|
55
|
+
agentType: s.agentType,
|
|
56
|
+
phase: s.phase,
|
|
57
|
+
startedAt: s.startedAt,
|
|
58
|
+
firstPrompt: s.firstPrompt,
|
|
59
|
+
filesTouched: s.filesTouched,
|
|
60
|
+
stepCount: s.stepCount,
|
|
61
|
+
tokenUsage: s.tokenUsage
|
|
62
|
+
? {
|
|
63
|
+
input: s.tokenUsage.inputTokens + s.tokenUsage.cacheReadTokens,
|
|
64
|
+
output: s.tokenUsage.outputTokens,
|
|
65
|
+
}
|
|
66
|
+
: undefined,
|
|
67
|
+
}));
|
|
68
|
+
return {
|
|
69
|
+
enabled: settings.enabled,
|
|
70
|
+
strategy: settings.strategy,
|
|
71
|
+
branch,
|
|
72
|
+
hasCheckpointsBranch: hasCheckpoints,
|
|
73
|
+
sessions,
|
|
74
|
+
agents: agentNames,
|
|
75
|
+
gitHooksInstalled: gitHooks,
|
|
76
|
+
settings,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Format status for display (JSON output)
|
|
81
|
+
*/
|
|
82
|
+
export function formatStatusJSON(result) {
|
|
83
|
+
return JSON.stringify(result, null, 2);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Format token count for display
|
|
87
|
+
*/
|
|
88
|
+
export function formatTokens(count) {
|
|
89
|
+
if (count >= 1_000_000)
|
|
90
|
+
return `${(count / 1_000_000).toFixed(1)}M`;
|
|
91
|
+
if (count >= 1_000)
|
|
92
|
+
return `${(count / 1_000).toFixed(1)}k`;
|
|
93
|
+
return String(count);
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/sessionlog/commands/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration Management
|
|
3
|
+
*
|
|
4
|
+
* Loads and manages Entire settings from .entire/settings.json
|
|
5
|
+
* and .entire/settings.local.json (local overrides).
|
|
6
|
+
*/
|
|
7
|
+
import { type SessionlogSettings } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Load effective settings (project merged with local overrides)
|
|
10
|
+
*/
|
|
11
|
+
export declare function loadSettings(cwd?: string): Promise<SessionlogSettings>;
|
|
12
|
+
/**
|
|
13
|
+
* Load project-level settings (.entire/settings.json)
|
|
14
|
+
*/
|
|
15
|
+
export declare function loadProjectSettings(cwd?: string): Promise<SessionlogSettings>;
|
|
16
|
+
/**
|
|
17
|
+
* Load local settings (.entire/settings.local.json)
|
|
18
|
+
*/
|
|
19
|
+
export declare function loadLocalSettings(cwd?: string): Promise<SessionlogSettings>;
|
|
20
|
+
/**
|
|
21
|
+
* Save project-level settings
|
|
22
|
+
*/
|
|
23
|
+
export declare function saveProjectSettings(settings: Partial<SessionlogSettings>, cwd?: string): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Save local settings
|
|
26
|
+
*/
|
|
27
|
+
export declare function saveLocalSettings(settings: Partial<SessionlogSettings>, cwd?: string): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Check if Entire is enabled in the current repository
|
|
30
|
+
*/
|
|
31
|
+
export declare function isEnabled(cwd?: string): Promise<boolean>;
|
|
32
|
+
/**
|
|
33
|
+
* Get the current strategy name
|
|
34
|
+
*/
|
|
35
|
+
export declare function getStrategy(cwd?: string): Promise<string>;
|
|
36
|
+
/**
|
|
37
|
+
* Ensure the .entire directory is gitignored for local files
|
|
38
|
+
*/
|
|
39
|
+
export declare function ensureGitignore(cwd?: string): Promise<void>;
|
|
40
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/sessionlog/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EACL,KAAK,kBAAkB,EAKxB,MAAM,YAAY,CAAC;AAQpB;;GAEG;AACH,wBAAsB,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAI5E;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAInF;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAIjF;AA2BD;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACrC,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACrC,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAKf;AAMD;;GAEG;AACH,wBAAsB,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG9D;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAG/D;AAWD;;GAEG;AACH,wBAAsB,eAAe,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBjE"}
|