@tryglen/cli 0.37.1 → 0.38.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -4
- package/dist/_generated/contract/index.js +3 -0
- package/dist/_generated/contract/index.js.map +1 -0
- package/dist/_generated/contract/procedures.gen.js +34 -0
- package/dist/_generated/contract/procedures.gen.js.map +1 -0
- package/dist/_generated/contract/types.gen.js +3 -0
- package/dist/_generated/contract/types.gen.js.map +1 -0
- package/dist/_generated/contract/zod.gen.js +799 -0
- package/dist/_generated/contract/zod.gen.js.map +1 -0
- package/dist/bin.js +137 -560
- package/dist/bin.js.map +1 -1
- package/dist/clients/agents/agent-bin.js +67 -0
- package/dist/clients/agents/agent-bin.js.map +1 -0
- package/dist/clients/agents/agent-path-overrides.js +23 -0
- package/dist/clients/agents/agent-path-overrides.js.map +1 -0
- package/dist/clients/agents/agents-table.js +91 -0
- package/dist/clients/agents/agents-table.js.map +1 -0
- package/dist/{_utils → clients/agents}/managed-block.js +8 -4
- package/dist/clients/agents/managed-block.js.map +1 -0
- package/dist/clients/agents/normalize-transcript-timestamp.js.map +1 -0
- package/dist/clients/agents/plugin-status.js +74 -0
- package/dist/clients/agents/plugin-status.js.map +1 -0
- package/dist/clients/agents/run-agent-steps.js +21 -0
- package/dist/clients/agents/run-agent-steps.js.map +1 -0
- package/dist/{_utils → clients/claude}/extract-claude-segments.js +9 -5
- package/dist/clients/claude/extract-claude-segments.js.map +1 -0
- package/dist/clients/claude/parse-claude-transcript.js +114 -0
- package/dist/clients/claude/parse-claude-transcript.js.map +1 -0
- package/dist/clients/codex/codex-app-server.js +102 -0
- package/dist/clients/codex/codex-app-server.js.map +1 -0
- package/dist/clients/codex/codex-hooks-file.js +65 -0
- package/dist/clients/codex/codex-hooks-file.js.map +1 -0
- package/dist/clients/codex/codex-hooks-merge.js +9 -0
- package/dist/clients/codex/codex-hooks-merge.js.map +1 -0
- package/dist/clients/codex/codex-hooks-setup.js +167 -0
- package/dist/clients/codex/codex-hooks-setup.js.map +1 -0
- package/dist/clients/codex/codex-paths.js +13 -0
- package/dist/clients/codex/codex-paths.js.map +1 -0
- package/dist/clients/codex/codex-repair-trace.js +36 -0
- package/dist/clients/codex/codex-repair-trace.js.map +1 -0
- package/dist/clients/codex/codex-rules-setup.js +27 -0
- package/dist/clients/codex/codex-rules-setup.js.map +1 -0
- package/dist/{_utils → clients/codex}/codex-trust-toml.js +6 -5
- package/dist/clients/codex/codex-trust-toml.js.map +1 -0
- package/dist/clients/codex/extract-codex-segments.js +64 -0
- package/dist/clients/codex/extract-codex-segments.js.map +1 -0
- package/dist/clients/codex/parse-codex-transcript.js +123 -0
- package/dist/clients/codex/parse-codex-transcript.js.map +1 -0
- package/dist/clients/cursor/parse-cursor-db.js +185 -0
- package/dist/clients/cursor/parse-cursor-db.js.map +1 -0
- package/dist/clients/git/canonical-remote-url.js +13 -0
- package/dist/clients/git/canonical-remote-url.js.map +1 -0
- package/dist/clients/git/git-context.js +60 -0
- package/dist/clients/git/git-context.js.map +1 -0
- package/dist/clients/git/git-hook-setup.js +128 -0
- package/dist/clients/git/git-hook-setup.js.map +1 -0
- package/dist/{_utils → clients/git}/pr-review-link.js +5 -4
- package/dist/clients/git/pr-review-link.js.map +1 -0
- package/dist/clients/glen-api/config.js +11 -0
- package/dist/clients/glen-api/config.js.map +1 -0
- package/dist/clients/glen-api/glen-api.js +199 -0
- package/dist/clients/glen-api/glen-api.js.map +1 -0
- package/dist/{_utils → clients/glen-api}/glen-headers.js +1 -1
- package/dist/clients/glen-api/glen-headers.js.map +1 -0
- package/dist/clients/glen-api/refresh-control-state.js +18 -0
- package/dist/clients/glen-api/refresh-control-state.js.map +1 -0
- package/dist/clients/glen-api/report-cli-install.js +20 -0
- package/dist/clients/glen-api/report-cli-install.js.map +1 -0
- package/dist/clients/glen-api/sync-mode-from-server.js +45 -0
- package/dist/clients/glen-api/sync-mode-from-server.js.map +1 -0
- package/dist/clients/indicator/indicator-app.js +127 -0
- package/dist/clients/indicator/indicator-app.js.map +1 -0
- package/dist/clients/indicator/indicator-health.js +40 -0
- package/dist/clients/indicator/indicator-health.js.map +1 -0
- package/dist/clients/jcode/jcode-bundle.js +19 -0
- package/dist/clients/jcode/jcode-bundle.js.map +1 -0
- package/dist/clients/jcode/jcode-event.js +74 -0
- package/dist/clients/jcode/jcode-event.js.map +1 -0
- package/dist/{_utils → clients/jcode}/jcode-hook-lines.js +1 -1
- package/dist/clients/jcode/jcode-hook-lines.js.map +1 -0
- package/dist/{_utils → clients/jcode}/jcode-hooks-toml.js +21 -29
- package/dist/clients/jcode/jcode-hooks-toml.js.map +1 -0
- package/dist/clients/jcode/jcode-paths.js +14 -0
- package/dist/clients/jcode/jcode-paths.js.map +1 -0
- package/dist/clients/jcode/jcode-setup.js +148 -0
- package/dist/clients/jcode/jcode-setup.js.map +1 -0
- package/dist/clients/jcode/jcode-skills-sync.js +84 -0
- package/dist/clients/jcode/jcode-skills-sync.js.map +1 -0
- package/dist/{_utils → clients/jcode}/parse-jcode-session.js +38 -35
- package/dist/clients/jcode/parse-jcode-session.js.map +1 -0
- package/dist/clients/npm/semver-newer.js +8 -0
- package/dist/clients/npm/semver-newer.js.map +1 -0
- package/dist/clients/npm/update.js +147 -0
- package/dist/clients/npm/update.js.map +1 -0
- package/dist/{_utils → clients/pi}/extract-pi-segments.js +7 -3
- package/dist/clients/pi/extract-pi-segments.js.map +1 -0
- package/dist/clients/pi/parse-pi-transcript.js +149 -0
- package/dist/clients/pi/parse-pi-transcript.js.map +1 -0
- package/dist/clients/telemetry/send-events.js +32 -0
- package/dist/clients/telemetry/send-events.js.map +1 -0
- package/dist/commands/_utils/forget-or-restore-observation-or-message.js +41 -0
- package/dist/commands/_utils/forget-or-restore-observation-or-message.js.map +1 -0
- package/dist/commands/artifact/_utils/explain-artifact-error.js +31 -0
- package/dist/commands/artifact/_utils/explain-artifact-error.js.map +1 -0
- package/dist/commands/artifact/_utils/require-slug.js +14 -0
- package/dist/commands/artifact/_utils/require-slug.js.map +1 -0
- package/dist/commands/artifact/artifact.options.js +43 -0
- package/dist/commands/artifact/artifact.options.js.map +1 -0
- package/dist/commands/artifact/create.js +87 -0
- package/dist/commands/artifact/create.js.map +1 -0
- package/dist/commands/artifact/delete.js +18 -0
- package/dist/commands/artifact/delete.js.map +1 -0
- package/dist/commands/artifact/get.js +21 -0
- package/dist/commands/artifact/get.js.map +1 -0
- package/dist/commands/artifact/list.js +4 -0
- package/dist/commands/artifact/list.js.map +1 -0
- package/dist/commands/artifact/search.js +25 -0
- package/dist/commands/artifact/search.js.map +1 -0
- package/dist/commands/artifact/share.js +42 -0
- package/dist/commands/artifact/share.js.map +1 -0
- package/dist/commands/code-search/code-search.options.js +10 -0
- package/dist/commands/code-search/code-search.options.js.map +1 -0
- package/dist/commands/code-search/index.js +106 -0
- package/dist/commands/code-search/index.js.map +1 -0
- package/dist/commands/dependency/dependency.options.js +10 -0
- package/dist/commands/dependency/dependency.options.js.map +1 -0
- package/dist/commands/dependency/index.js +25 -0
- package/dist/commands/dependency/index.js.map +1 -0
- package/dist/{_utils → commands/doctor/_utils}/ingest-diagnosis.js +16 -17
- package/dist/commands/doctor/_utils/ingest-diagnosis.js.map +1 -0
- package/dist/commands/doctor/_utils/login-check.js +48 -0
- package/dist/commands/doctor/_utils/login-check.js.map +1 -0
- package/dist/commands/doctor/doctor.options.js +17 -0
- package/dist/commands/doctor/doctor.options.js.map +1 -0
- package/dist/commands/doctor/index.js +366 -0
- package/dist/commands/doctor/index.js.map +1 -0
- package/dist/commands/feedback/feedback.options.js +82 -0
- package/dist/commands/feedback/feedback.options.js.map +1 -0
- package/dist/commands/feedback/index.js +64 -0
- package/dist/commands/feedback/index.js.map +1 -0
- package/dist/commands/forget/forget.options.js +12 -0
- package/dist/commands/forget/forget.options.js.map +1 -0
- package/dist/commands/forget/index.js +30 -0
- package/dist/commands/forget/index.js.map +1 -0
- package/dist/commands/git-hooks/git-hooks.options.js +17 -0
- package/dist/commands/git-hooks/git-hooks.options.js.map +1 -0
- package/dist/commands/git-hooks/index.js +21 -0
- package/dist/commands/git-hooks/index.js.map +1 -0
- package/dist/commands/git-hooks/write-commit-trailer.js +38 -0
- package/dist/commands/git-hooks/write-commit-trailer.js.map +1 -0
- package/dist/commands/import/_utils/collect-import-files.js +54 -0
- package/dist/commands/import/_utils/collect-import-files.js.map +1 -0
- package/dist/commands/import/_utils/detect-transcript-format.js +46 -0
- package/dist/commands/import/_utils/detect-transcript-format.js.map +1 -0
- package/dist/{_utils → commands/import/_utils}/parse-harbor-atif.js +28 -51
- package/dist/commands/import/_utils/parse-harbor-atif.js.map +1 -0
- package/dist/{_utils → commands/import/_utils}/resolve-import-workspace.js +12 -17
- package/dist/commands/import/_utils/resolve-import-workspace.js.map +1 -0
- package/dist/{_utils → commands/import/_utils}/transcript-turns.js +47 -52
- package/dist/commands/import/_utils/transcript-turns.js.map +1 -0
- package/dist/commands/import/import.options.js +18 -0
- package/dist/commands/import/import.options.js.map +1 -0
- package/dist/commands/import/import.schema.js +28 -0
- package/dist/commands/import/import.schema.js.map +1 -0
- package/dist/commands/import/index.js +284 -0
- package/dist/commands/import/index.js.map +1 -0
- package/dist/commands/incognito/incognito.options.js +7 -0
- package/dist/commands/incognito/incognito.options.js.map +1 -0
- package/dist/commands/incognito/index.js +5 -0
- package/dist/commands/incognito/index.js.map +1 -0
- package/dist/commands/indicator/index.js +59 -0
- package/dist/commands/indicator/index.js.map +1 -0
- package/dist/commands/indicator/indicator.options.js +7 -0
- package/dist/commands/indicator/indicator.options.js.map +1 -0
- package/dist/commands/ingest/_utils/agent-adapter.js +37 -0
- package/dist/commands/ingest/_utils/agent-adapter.js.map +1 -0
- package/dist/{_utils → commands/ingest/_utils}/build-turn-body.js +8 -6
- package/dist/commands/ingest/_utils/build-turn-body.js.map +1 -0
- package/dist/{_utils → commands/ingest/_utils}/format-turn-nudges.js +14 -31
- package/dist/commands/ingest/_utils/format-turn-nudges.js.map +1 -0
- package/dist/commands/ingest/_utils/idempotency-key.js +4 -0
- package/dist/commands/ingest/_utils/idempotency-key.js.map +1 -0
- package/dist/commands/ingest/_utils/ingest-failure-memo.js +58 -0
- package/dist/commands/ingest/_utils/ingest-failure-memo.js.map +1 -0
- package/dist/commands/ingest/_utils/parse-transcript.js +76 -0
- package/dist/commands/ingest/_utils/parse-transcript.js.map +1 -0
- package/dist/commands/ingest/_utils/turn-cache.js +73 -0
- package/dist/commands/ingest/_utils/turn-cache.js.map +1 -0
- package/dist/commands/ingest/index.js +379 -0
- package/dist/commands/ingest/index.js.map +1 -0
- package/dist/commands/ingest/ingest.options.js +13 -0
- package/dist/commands/ingest/ingest.options.js.map +1 -0
- package/dist/commands/install/_utils/claude-statusline.js +58 -0
- package/dist/commands/install/_utils/claude-statusline.js.map +1 -0
- package/dist/commands/install/_utils/codex-post-install.js +56 -0
- package/dist/commands/install/_utils/codex-post-install.js.map +1 -0
- package/dist/{_utils → commands/install/_utils}/ensure-global-cli.js +49 -52
- package/dist/commands/install/_utils/ensure-global-cli.js.map +1 -0
- package/dist/commands/install/_utils/finish-install.js +67 -0
- package/dist/commands/install/_utils/finish-install.js.map +1 -0
- package/dist/commands/install/_utils/jcode-install.js +29 -0
- package/dist/commands/install/_utils/jcode-install.js.map +1 -0
- package/dist/{_utils → commands/install/_utils}/npm-error-cause.js +1 -2
- package/dist/commands/install/_utils/npm-error-cause.js.map +1 -0
- package/dist/commands/install/_utils/prepare-machine.js +85 -0
- package/dist/commands/install/_utils/prepare-machine.js.map +1 -0
- package/dist/commands/install/codex-hooks-repair.js +17 -0
- package/dist/commands/install/codex-hooks-repair.js.map +1 -0
- package/dist/commands/install/index.js +186 -0
- package/dist/commands/install/index.js.map +1 -0
- package/dist/commands/install/install.options.js +41 -0
- package/dist/commands/install/install.options.js.map +1 -0
- package/dist/commands/invite/index.js +47 -0
- package/dist/commands/invite/index.js.map +1 -0
- package/dist/commands/invite/invite.options.js +24 -0
- package/dist/commands/invite/invite.options.js.map +1 -0
- package/dist/commands/login/_utils/open-browser.js +9 -0
- package/dist/commands/login/_utils/open-browser.js.map +1 -0
- package/dist/commands/login/_utils/parse-start.js +25 -0
- package/dist/commands/login/_utils/parse-start.js.map +1 -0
- package/dist/commands/login/_utils/poll-for-approval.js +55 -0
- package/dist/commands/login/_utils/poll-for-approval.js.map +1 -0
- package/dist/commands/login/index.js +101 -0
- package/dist/commands/login/index.js.map +1 -0
- package/dist/commands/login/login.options.js +12 -0
- package/dist/commands/login/login.options.js.map +1 -0
- package/dist/commands/logout/index.js +16 -0
- package/dist/commands/logout/index.js.map +1 -0
- package/dist/commands/logout/logout.options.js +4 -0
- package/dist/commands/logout/logout.options.js.map +1 -0
- package/dist/commands/onboard/index.js +20 -0
- package/dist/commands/onboard/index.js.map +1 -0
- package/dist/commands/org/_utils/apply-switch.js +37 -0
- package/dist/commands/org/_utils/apply-switch.js.map +1 -0
- package/dist/commands/org/_utils/fetch-orgs.js +19 -0
- package/dist/commands/org/_utils/fetch-orgs.js.map +1 -0
- package/dist/commands/org/list.js +14 -0
- package/dist/commands/org/list.js.map +1 -0
- package/dist/commands/org/org.options.js +10 -0
- package/dist/commands/org/org.options.js.map +1 -0
- package/dist/commands/org/switch.js +37 -0
- package/dist/commands/org/switch.js.map +1 -0
- package/dist/commands/pr-link/_utils/is-commit-command.js +14 -0
- package/dist/commands/pr-link/_utils/is-commit-command.js.map +1 -0
- package/dist/commands/pr-link/_utils/record-commit-anchor.js +46 -0
- package/dist/commands/pr-link/_utils/record-commit-anchor.js.map +1 -0
- package/dist/commands/pr-link/index.js +74 -0
- package/dist/commands/pr-link/index.js.map +1 -0
- package/dist/commands/pr-link/pr-link.options.js +13 -0
- package/dist/commands/pr-link/pr-link.options.js.map +1 -0
- package/dist/commands/restore/index.js +27 -0
- package/dist/commands/restore/index.js.map +1 -0
- package/dist/commands/restore/restore.options.js +12 -0
- package/dist/commands/restore/restore.options.js.map +1 -0
- package/dist/{_utils → commands/search/_utils}/format-search-result.js +5 -4
- package/dist/commands/search/_utils/format-search-result.js.map +1 -0
- package/dist/commands/search/_utils/runtime-timezone.js +12 -0
- package/dist/commands/search/_utils/runtime-timezone.js.map +1 -0
- package/dist/commands/search/index.js +36 -0
- package/dist/commands/search/index.js.map +1 -0
- package/dist/commands/search/search.options.js +7 -0
- package/dist/commands/search/search.options.js.map +1 -0
- package/dist/commands/session-start/index.js +119 -0
- package/dist/commands/session-start/index.js.map +1 -0
- package/dist/commands/session-start/session-start.options.js +13 -0
- package/dist/commands/session-start/session-start.options.js.map +1 -0
- package/dist/commands/set-mode/index.js +38 -0
- package/dist/commands/set-mode/index.js.map +1 -0
- package/dist/commands/set-mode/set-mode.options.js +8 -0
- package/dist/commands/set-mode/set-mode.options.js.map +1 -0
- package/dist/commands/skill/_utils/download-file.js +28 -0
- package/dist/commands/skill/_utils/download-file.js.map +1 -0
- package/dist/commands/skill/_utils/explain-skill-error.js +31 -0
- package/dist/commands/skill/_utils/explain-skill-error.js.map +1 -0
- package/dist/commands/skill/_utils/skill-cache.js +136 -0
- package/dist/commands/skill/_utils/skill-cache.js.map +1 -0
- package/dist/commands/skill/create/_utils/pack-skill-dir.js +160 -0
- package/dist/commands/skill/create/_utils/pack-skill-dir.js.map +1 -0
- package/dist/commands/skill/create/index.js +108 -0
- package/dist/commands/skill/create/index.js.map +1 -0
- package/dist/commands/skill/search.js +38 -0
- package/dist/commands/skill/search.js.map +1 -0
- package/dist/commands/skill/share.js +52 -0
- package/dist/commands/skill/share.js.map +1 -0
- package/dist/commands/skill/skill.options.js +58 -0
- package/dist/commands/skill/skill.options.js.map +1 -0
- package/dist/commands/skill/use.js +72 -0
- package/dist/commands/skill/use.js.map +1 -0
- package/dist/commands/status/index.js +33 -0
- package/dist/commands/status/index.js.map +1 -0
- package/dist/commands/status/status.options.js +4 -0
- package/dist/commands/status/status.options.js.map +1 -0
- package/dist/commands/statusline/index.js +33 -0
- package/dist/commands/statusline/index.js.map +1 -0
- package/dist/commands/statusline/statusline.options.js +4 -0
- package/dist/commands/statusline/statusline.options.js.map +1 -0
- package/dist/commands/suggestions/index.js +36 -0
- package/dist/commands/suggestions/index.js.map +1 -0
- package/dist/commands/suggestions/suggestions.options.js +12 -0
- package/dist/commands/suggestions/suggestions.options.js.map +1 -0
- package/dist/commands/takeover/_utils/agent-paths.js +13 -7
- package/dist/commands/takeover/_utils/agent-paths.js.map +1 -1
- package/dist/commands/takeover/_utils/agent-process.js +111 -0
- package/dist/commands/takeover/_utils/agent-process.js.map +1 -0
- package/dist/commands/takeover/_utils/archive-codex-desktop-thread.js +17 -58
- package/dist/commands/takeover/_utils/archive-codex-desktop-thread.js.map +1 -1
- package/dist/commands/takeover/_utils/canonical-digest.js +2 -2
- package/dist/commands/takeover/_utils/canonical-digest.js.map +1 -1
- package/dist/commands/takeover/_utils/codex-desktop-recovery.js +77 -95
- package/dist/commands/takeover/_utils/codex-desktop-recovery.js.map +1 -1
- package/dist/commands/takeover/_utils/context-fit.js +7 -4
- package/dist/commands/takeover/_utils/context-fit.js.map +1 -1
- package/dist/commands/takeover/_utils/cursor-store.js +333 -281
- package/dist/commands/takeover/_utils/cursor-store.js.map +1 -1
- package/dist/commands/takeover/_utils/import-codex-desktop-thread.js +138 -282
- package/dist/commands/takeover/_utils/import-codex-desktop-thread.js.map +1 -1
- package/dist/commands/takeover/_utils/launch-desktop-url.js +19 -24
- package/dist/commands/takeover/_utils/launch-desktop-url.js.map +1 -1
- package/dist/commands/takeover/_utils/native-file.js +86 -73
- package/dist/commands/takeover/_utils/native-file.js.map +1 -1
- package/dist/commands/takeover/_utils/probe-agent.js +12 -9
- package/dist/commands/takeover/_utils/probe-agent.js.map +1 -1
- package/dist/commands/takeover/_utils/staged-session.js +18 -17
- package/dist/commands/takeover/_utils/staged-session.js.map +1 -1
- package/dist/commands/takeover/_utils/write-claude-session.js +10 -13
- package/dist/commands/takeover/_utils/write-claude-session.js.map +1 -1
- package/dist/commands/takeover/_utils/write-codex-desktop-session.js +39 -37
- package/dist/commands/takeover/_utils/write-codex-desktop-session.js.map +1 -1
- package/dist/commands/takeover/_utils/write-codex-session.js +34 -25
- package/dist/commands/takeover/_utils/write-codex-session.js.map +1 -1
- package/dist/commands/takeover/_utils/write-cursor-session.js +8 -19
- package/dist/commands/takeover/_utils/write-cursor-session.js.map +1 -1
- package/dist/commands/takeover/_utils/write-pi-session.js +34 -22
- package/dist/commands/takeover/_utils/write-pi-session.js.map +1 -1
- package/dist/commands/takeover/index.js +129 -164
- package/dist/commands/takeover/index.js.map +1 -1
- package/dist/commands/takeover/takeover.options.js +6 -0
- package/dist/commands/takeover/takeover.options.js.map +1 -0
- package/dist/commands/takeover/takeover.schema.js +17 -55
- package/dist/commands/takeover/takeover.schema.js.map +1 -1
- package/dist/commands/telemetry/index.js +33 -0
- package/dist/commands/telemetry/index.js.map +1 -0
- package/dist/commands/telemetry/send.js +7 -0
- package/dist/commands/telemetry/send.js.map +1 -0
- package/dist/commands/telemetry/telemetry.options.js +12 -0
- package/dist/commands/telemetry/telemetry.options.js.map +1 -0
- package/dist/commands/uninstall/_utils/purge-agent-plugins.js +58 -0
- package/dist/commands/uninstall/_utils/purge-agent-plugins.js.map +1 -0
- package/dist/commands/uninstall/_utils/purge-claude-statusline.js +51 -0
- package/dist/commands/uninstall/_utils/purge-claude-statusline.js.map +1 -0
- package/dist/commands/uninstall/_utils/purge-local-state.js +52 -0
- package/dist/commands/uninstall/_utils/purge-local-state.js.map +1 -0
- package/dist/commands/uninstall/index.js +138 -0
- package/dist/commands/uninstall/index.js.map +1 -0
- package/dist/commands/uninstall/uninstall.options.js +4 -0
- package/dist/commands/uninstall/uninstall.options.js.map +1 -0
- package/dist/commands/update/index.js +117 -0
- package/dist/commands/update/index.js.map +1 -0
- package/dist/commands/update/self-update.js +7 -0
- package/dist/commands/update/self-update.js.map +1 -0
- package/dist/commands/update/update.options.js +7 -0
- package/dist/commands/update/update.options.js.map +1 -0
- package/dist/core/errors/cli-error.js +28 -0
- package/dist/core/errors/cli-error.js.map +1 -0
- package/dist/core/errors/result.js +21 -0
- package/dist/core/errors/result.js.map +1 -0
- package/dist/core/errors/settle.js +18 -0
- package/dist/core/errors/settle.js.map +1 -0
- package/dist/core/json/is-record.js +3 -0
- package/dist/core/json/is-record.js.map +1 -0
- package/dist/core/json/json-field.js +5 -0
- package/dist/core/json/json-field.js.map +1 -0
- package/dist/core/json/jsonl-records.js +15 -0
- package/dist/core/json/jsonl-records.js.map +1 -0
- package/dist/core/json/parse-json.js +4 -0
- package/dist/core/json/parse-json.js.map +1 -0
- package/dist/core/run/cli-input.js +116 -0
- package/dist/core/run/cli-input.js.map +1 -0
- package/dist/core/run/hook-agents.js +4 -0
- package/dist/core/run/hook-agents.js.map +1 -0
- package/dist/{_utils → core/run}/normalize-boolean-flags.js +0 -1
- package/dist/core/run/normalize-boolean-flags.js.map +1 -0
- package/dist/core/run/run-hook.js +18 -0
- package/dist/core/run/run-hook.js.map +1 -0
- package/dist/core/run/run.js +16 -0
- package/dist/core/run/run.js.map +1 -0
- package/dist/core/state/credentials.js +34 -0
- package/dist/core/state/credentials.js.map +1 -0
- package/dist/core/state/ephemeral-session.js +11 -0
- package/dist/core/state/ephemeral-session.js.map +1 -0
- package/dist/core/state/glen-home.js +9 -0
- package/dist/core/state/glen-home.js.map +1 -0
- package/dist/core/state/ingest-heartbeat.js +56 -0
- package/dist/core/state/ingest-heartbeat.js.map +1 -0
- package/dist/core/state/install-receipt.js +174 -0
- package/dist/core/state/install-receipt.js.map +1 -0
- package/dist/core/state/session-map.js +22 -0
- package/dist/core/state/session-map.js.map +1 -0
- package/dist/core/state/state-line-memo.js +52 -0
- package/dist/core/state/state-line-memo.js.map +1 -0
- package/dist/{_utils → core/state}/state-line.js +1 -1
- package/dist/core/state/state-line.js.map +1 -0
- package/dist/core/state/state.js +51 -0
- package/dist/core/state/state.js.map +1 -0
- package/dist/core/system/env.js +74 -0
- package/dist/core/system/env.js.map +1 -0
- package/dist/core/system/files.js +102 -0
- package/dist/core/system/files.js.map +1 -0
- package/dist/core/system/glen-base-url.js +4 -0
- package/dist/core/system/glen-base-url.js.map +1 -0
- package/dist/core/system/http.js +146 -0
- package/dist/core/system/http.js.map +1 -0
- package/dist/core/system/run-program.js +55 -0
- package/dist/core/system/run-program.js.map +1 -0
- package/dist/core/system/sha256-hex.js +4 -0
- package/dist/core/system/sha256-hex.js.map +1 -0
- package/dist/{_utils → core/system}/shell-profile.js +43 -56
- package/dist/core/system/shell-profile.js.map +1 -0
- package/dist/core/system/spawn-detached.js +10 -0
- package/dist/core/system/spawn-detached.js.map +1 -0
- package/dist/core/system/spawn-self.js +5 -0
- package/dist/core/system/spawn-self.js.map +1 -0
- package/dist/core/system/sqlite.js +55 -0
- package/dist/core/system/sqlite.js.map +1 -0
- package/dist/core/system/version.js +16 -0
- package/dist/core/system/version.js.map +1 -0
- package/dist/core/telemetry/build-event.js +27 -0
- package/dist/core/telemetry/build-event.js.map +1 -0
- package/dist/core/telemetry/events-store.js +62 -0
- package/dist/core/telemetry/events-store.js.map +1 -0
- package/dist/core/telemetry/finish-telemetry.js +32 -0
- package/dist/core/telemetry/finish-telemetry.js.map +1 -0
- package/dist/core/telemetry/install-id.js +18 -0
- package/dist/core/telemetry/install-id.js.map +1 -0
- package/dist/core/telemetry/note-if-err.js +8 -0
- package/dist/core/telemetry/note-if-err.js.map +1 -0
- package/dist/core/telemetry/record-event.js +7 -0
- package/dist/core/telemetry/record-event.js.map +1 -0
- package/dist/core/telemetry/telemetry-context.js +10 -0
- package/dist/core/telemetry/telemetry-context.js.map +1 -0
- package/dist/core/telemetry/telemetry-settings.js +32 -0
- package/dist/core/telemetry/telemetry-settings.js.map +1 -0
- package/dist/core/terminal/attention-summary.js +14 -0
- package/dist/core/terminal/attention-summary.js.map +1 -0
- package/dist/core/terminal/out.js +86 -0
- package/dist/core/terminal/out.js.map +1 -0
- package/dist/core/terminal/prompt.js +34 -0
- package/dist/core/terminal/prompt.js.map +1 -0
- package/dist/core/terminal/read-hook-event.js +17 -0
- package/dist/core/terminal/read-hook-event.js.map +1 -0
- package/dist/core/terminal/read-stdin.js +23 -0
- package/dist/core/terminal/read-stdin.js.map +1 -0
- package/dist/jcode/plugin.json +1 -1
- package/dist/jcode/skills/feedback/SKILL.md +8 -8
- package/dist/jcode/skills/invite/SKILL.md +4 -4
- package/dist/jcode/skills/setup/SKILL.md +6 -4
- package/dist/macos/glen.app/Contents/MacOS/glen +0 -0
- package/package.json +16 -7
- package/dist/_utils/agent-adapter.d.ts +0 -9
- package/dist/_utils/agent-adapter.js +0 -49
- package/dist/_utils/agent-adapter.js.map +0 -1
- package/dist/_utils/agents-table.d.ts +0 -11
- package/dist/_utils/agents-table.js +0 -35
- package/dist/_utils/agents-table.js.map +0 -1
- package/dist/_utils/build-turn-body.d.ts +0 -17
- package/dist/_utils/build-turn-body.js.map +0 -1
- package/dist/_utils/cli-error.d.ts +0 -12
- package/dist/_utils/cli-error.js +0 -21
- package/dist/_utils/cli-error.js.map +0 -1
- package/dist/_utils/codex-app-server.d.ts +0 -11
- package/dist/_utils/codex-app-server.js +0 -94
- package/dist/_utils/codex-app-server.js.map +0 -1
- package/dist/_utils/codex-hooks-merge.d.ts +0 -22
- package/dist/_utils/codex-hooks-merge.js +0 -60
- package/dist/_utils/codex-hooks-merge.js.map +0 -1
- package/dist/_utils/codex-hooks-setup.d.ts +0 -14
- package/dist/_utils/codex-hooks-setup.js +0 -162
- package/dist/_utils/codex-hooks-setup.js.map +0 -1
- package/dist/_utils/codex-paths.d.ts +0 -5
- package/dist/_utils/codex-paths.js +0 -10
- package/dist/_utils/codex-paths.js.map +0 -1
- package/dist/_utils/codex-repair-trace.d.ts +0 -11
- package/dist/_utils/codex-repair-trace.js +0 -39
- package/dist/_utils/codex-repair-trace.js.map +0 -1
- package/dist/_utils/codex-rules-setup.d.ts +0 -4
- package/dist/_utils/codex-rules-setup.js +0 -34
- package/dist/_utils/codex-rules-setup.js.map +0 -1
- package/dist/_utils/codex-trust-toml.d.ts +0 -7
- package/dist/_utils/codex-trust-toml.js.map +0 -1
- package/dist/_utils/collect-import-files.d.ts +0 -4
- package/dist/_utils/collect-import-files.js +0 -50
- package/dist/_utils/collect-import-files.js.map +0 -1
- package/dist/_utils/config.d.ts +0 -45
- package/dist/_utils/config.js +0 -47
- package/dist/_utils/config.js.map +0 -1
- package/dist/_utils/confirm.d.ts +0 -7
- package/dist/_utils/confirm.js +0 -35
- package/dist/_utils/confirm.js.map +0 -1
- package/dist/_utils/credentials.d.ts +0 -15
- package/dist/_utils/credentials.js +0 -62
- package/dist/_utils/credentials.js.map +0 -1
- package/dist/_utils/detect-transcript-format.d.ts +0 -2
- package/dist/_utils/detect-transcript-format.js +0 -57
- package/dist/_utils/detect-transcript-format.js.map +0 -1
- package/dist/_utils/ensure-global-cli.d.ts +0 -4
- package/dist/_utils/ensure-global-cli.js.map +0 -1
- package/dist/_utils/ephemeral-session.d.ts +0 -2
- package/dist/_utils/ephemeral-session.js +0 -12
- package/dist/_utils/ephemeral-session.js.map +0 -1
- package/dist/_utils/extract-claude-segments.d.ts +0 -2
- package/dist/_utils/extract-claude-segments.js.map +0 -1
- package/dist/_utils/extract-codex-segments.d.ts +0 -2
- package/dist/_utils/extract-codex-segments.js +0 -65
- package/dist/_utils/extract-codex-segments.js.map +0 -1
- package/dist/_utils/extract-pi-segments.d.ts +0 -2
- package/dist/_utils/extract-pi-segments.js.map +0 -1
- package/dist/_utils/find-bin.d.ts +0 -7
- package/dist/_utils/find-bin.js +0 -89
- package/dist/_utils/find-bin.js.map +0 -1
- package/dist/_utils/format-search-result.d.ts +0 -2
- package/dist/_utils/format-search-result.js.map +0 -1
- package/dist/_utils/format-turn-nudges.d.ts +0 -2
- package/dist/_utils/format-turn-nudges.js.map +0 -1
- package/dist/_utils/git-context.d.ts +0 -13
- package/dist/_utils/git-context.js +0 -82
- package/dist/_utils/git-context.js.map +0 -1
- package/dist/_utils/git-hook-setup.d.ts +0 -18
- package/dist/_utils/git-hook-setup.js +0 -115
- package/dist/_utils/git-hook-setup.js.map +0 -1
- package/dist/_utils/glen-headers.d.ts +0 -8
- package/dist/_utils/glen-headers.js.map +0 -1
- package/dist/_utils/http.d.ts +0 -23
- package/dist/_utils/http.js +0 -97
- package/dist/_utils/http.js.map +0 -1
- package/dist/_utils/idempotency-key.d.ts +0 -2
- package/dist/_utils/idempotency-key.js +0 -7
- package/dist/_utils/idempotency-key.js.map +0 -1
- package/dist/_utils/indicator-app.d.ts +0 -9
- package/dist/_utils/indicator-app.js +0 -91
- package/dist/_utils/indicator-app.js.map +0 -1
- package/dist/_utils/indicator-health.d.ts +0 -8
- package/dist/_utils/indicator-health.js +0 -37
- package/dist/_utils/indicator-health.js.map +0 -1
- package/dist/_utils/ingest-diagnosis.d.ts +0 -24
- package/dist/_utils/ingest-diagnosis.js.map +0 -1
- package/dist/_utils/ingest-failure-memo.d.ts +0 -2
- package/dist/_utils/ingest-failure-memo.js +0 -58
- package/dist/_utils/ingest-failure-memo.js.map +0 -1
- package/dist/_utils/ingest-heartbeat.d.ts +0 -9
- package/dist/_utils/ingest-heartbeat.js +0 -48
- package/dist/_utils/ingest-heartbeat.js.map +0 -1
- package/dist/_utils/install-receipt.d.ts +0 -51
- package/dist/_utils/install-receipt.js +0 -202
- package/dist/_utils/install-receipt.js.map +0 -1
- package/dist/_utils/jcode-bundle.d.ts +0 -3
- package/dist/_utils/jcode-bundle.js +0 -16
- package/dist/_utils/jcode-bundle.js.map +0 -1
- package/dist/_utils/jcode-event.d.ts +0 -3
- package/dist/_utils/jcode-event.js +0 -66
- package/dist/_utils/jcode-event.js.map +0 -1
- package/dist/_utils/jcode-hook-lines.d.ts +0 -5
- package/dist/_utils/jcode-hook-lines.js.map +0 -1
- package/dist/_utils/jcode-hooks-toml.d.ts +0 -8
- package/dist/_utils/jcode-hooks-toml.js.map +0 -1
- package/dist/_utils/jcode-paths.d.ts +0 -7
- package/dist/_utils/jcode-paths.js +0 -10
- package/dist/_utils/jcode-paths.js.map +0 -1
- package/dist/_utils/jcode-setup.d.ts +0 -27
- package/dist/_utils/jcode-setup.js +0 -151
- package/dist/_utils/jcode-setup.js.map +0 -1
- package/dist/_utils/jcode-skills-sync.d.ts +0 -8
- package/dist/_utils/jcode-skills-sync.js +0 -74
- package/dist/_utils/jcode-skills-sync.js.map +0 -1
- package/dist/_utils/login-check.d.ts +0 -2
- package/dist/_utils/login-check.js +0 -57
- package/dist/_utils/login-check.js.map +0 -1
- package/dist/_utils/managed-block.d.ts +0 -4
- package/dist/_utils/managed-block.js.map +0 -1
- package/dist/_utils/normalize-boolean-flags.d.ts +0 -2
- package/dist/_utils/normalize-boolean-flags.js.map +0 -1
- package/dist/_utils/normalize-transcript-timestamp.d.ts +0 -2
- package/dist/_utils/normalize-transcript-timestamp.js.map +0 -1
- package/dist/_utils/npm-error-cause.d.ts +0 -5
- package/dist/_utils/npm-error-cause.js.map +0 -1
- package/dist/_utils/open-browser.d.ts +0 -2
- package/dist/_utils/open-browser.js +0 -18
- package/dist/_utils/open-browser.js.map +0 -1
- package/dist/_utils/parse-claude-transcript.d.ts +0 -3
- package/dist/_utils/parse-claude-transcript.js +0 -145
- package/dist/_utils/parse-claude-transcript.js.map +0 -1
- package/dist/_utils/parse-codex-transcript.d.ts +0 -3
- package/dist/_utils/parse-codex-transcript.js +0 -132
- package/dist/_utils/parse-codex-transcript.js.map +0 -1
- package/dist/_utils/parse-cursor-db.d.ts +0 -5
- package/dist/_utils/parse-cursor-db.js +0 -212
- package/dist/_utils/parse-cursor-db.js.map +0 -1
- package/dist/_utils/parse-harbor-atif.d.ts +0 -3
- package/dist/_utils/parse-harbor-atif.js.map +0 -1
- package/dist/_utils/parse-jcode-session.d.ts +0 -14
- package/dist/_utils/parse-jcode-session.js.map +0 -1
- package/dist/_utils/parse-pi-transcript.d.ts +0 -3
- package/dist/_utils/parse-pi-transcript.js +0 -164
- package/dist/_utils/parse-pi-transcript.js.map +0 -1
- package/dist/_utils/parse-transcript.d.ts +0 -14
- package/dist/_utils/parse-transcript.js +0 -94
- package/dist/_utils/parse-transcript.js.map +0 -1
- package/dist/_utils/plugin-status.d.ts +0 -4
- package/dist/_utils/plugin-status.js +0 -76
- package/dist/_utils/plugin-status.js.map +0 -1
- package/dist/_utils/post-route.d.ts +0 -6
- package/dist/_utils/post-route.js +0 -66
- package/dist/_utils/post-route.js.map +0 -1
- package/dist/_utils/pr-review-link.d.ts +0 -11
- package/dist/_utils/pr-review-link.js.map +0 -1
- package/dist/_utils/proactive-ticket-log.d.ts +0 -3
- package/dist/_utils/proactive-ticket-log.js +0 -21
- package/dist/_utils/proactive-ticket-log.js.map +0 -1
- package/dist/_utils/purge-agent-plugins.d.ts +0 -8
- package/dist/_utils/purge-agent-plugins.js +0 -62
- package/dist/_utils/purge-agent-plugins.js.map +0 -1
- package/dist/_utils/purge-claude-statusline.d.ts +0 -12
- package/dist/_utils/purge-claude-statusline.js +0 -57
- package/dist/_utils/purge-claude-statusline.js.map +0 -1
- package/dist/_utils/purge-local-state.d.ts +0 -7
- package/dist/_utils/purge-local-state.js +0 -40
- package/dist/_utils/purge-local-state.js.map +0 -1
- package/dist/_utils/record-commit-anchor.d.ts +0 -8
- package/dist/_utils/record-commit-anchor.js +0 -73
- package/dist/_utils/record-commit-anchor.js.map +0 -1
- package/dist/_utils/refresh-control-state.d.ts +0 -6
- package/dist/_utils/refresh-control-state.js +0 -30
- package/dist/_utils/refresh-control-state.js.map +0 -1
- package/dist/_utils/render-callback-page.d.ts +0 -2
- package/dist/_utils/render-callback-page.js +0 -90
- package/dist/_utils/render-callback-page.js.map +0 -1
- package/dist/_utils/report-cli-install.d.ts +0 -2
- package/dist/_utils/report-cli-install.js +0 -17
- package/dist/_utils/report-cli-install.js.map +0 -1
- package/dist/_utils/resolve-import-workspace.d.ts +0 -4
- package/dist/_utils/resolve-import-workspace.js.map +0 -1
- package/dist/_utils/result.d.ts +0 -14
- package/dist/_utils/result.js +0 -12
- package/dist/_utils/result.js.map +0 -1
- package/dist/_utils/run-bin.d.ts +0 -14
- package/dist/_utils/run-bin.js +0 -60
- package/dist/_utils/run-bin.js.map +0 -1
- package/dist/_utils/runtime-timezone.d.ts +0 -1
- package/dist/_utils/runtime-timezone.js +0 -13
- package/dist/_utils/runtime-timezone.js.map +0 -1
- package/dist/_utils/session-map.d.ts +0 -4
- package/dist/_utils/session-map.js +0 -38
- package/dist/_utils/session-map.js.map +0 -1
- package/dist/_utils/shell-profile.d.ts +0 -13
- package/dist/_utils/shell-profile.js.map +0 -1
- package/dist/_utils/state-line-memo.d.ts +0 -2
- package/dist/_utils/state-line-memo.js +0 -47
- package/dist/_utils/state-line-memo.js.map +0 -1
- package/dist/_utils/state-line.d.ts +0 -3
- package/dist/_utils/state-line.js.map +0 -1
- package/dist/_utils/state.d.ts +0 -15
- package/dist/_utils/state.js +0 -53
- package/dist/_utils/state.js.map +0 -1
- package/dist/_utils/sync-mode-from-server.d.ts +0 -3
- package/dist/_utils/sync-mode-from-server.js +0 -44
- package/dist/_utils/sync-mode-from-server.js.map +0 -1
- package/dist/_utils/transcript-turns.d.ts +0 -51
- package/dist/_utils/transcript-turns.js.map +0 -1
- package/dist/_utils/turn-cache.d.ts +0 -7
- package/dist/_utils/turn-cache.js +0 -56
- package/dist/_utils/turn-cache.js.map +0 -1
- package/dist/_utils/update.d.ts +0 -19
- package/dist/_utils/update.js +0 -196
- package/dist/_utils/update.js.map +0 -1
- package/dist/_utils/version.d.ts +0 -2
- package/dist/_utils/version.js +0 -18
- package/dist/_utils/version.js.map +0 -1
- package/dist/_utils/which.d.ts +0 -2
- package/dist/_utils/which.js +0 -4
- package/dist/_utils/which.js.map +0 -1
- package/dist/_utils/write-commit-trailer.d.ts +0 -2
- package/dist/_utils/write-commit-trailer.js +0 -25
- package/dist/_utils/write-commit-trailer.js.map +0 -1
- package/dist/bin.d.ts +0 -2
- package/dist/commands/_utils/materialize-skill.d.ts +0 -30
- package/dist/commands/_utils/materialize-skill.js +0 -207
- package/dist/commands/_utils/materialize-skill.js.map +0 -1
- package/dist/commands/_utils/mutate-evidence.d.ts +0 -17
- package/dist/commands/_utils/mutate-evidence.js +0 -80
- package/dist/commands/_utils/mutate-evidence.js.map +0 -1
- package/dist/commands/_utils/pack-skill-dir.d.ts +0 -15
- package/dist/commands/_utils/pack-skill-dir.js +0 -169
- package/dist/commands/_utils/pack-skill-dir.js.map +0 -1
- package/dist/commands/artifact.d.ts +0 -18
- package/dist/commands/artifact.js +0 -139
- package/dist/commands/artifact.js.map +0 -1
- package/dist/commands/code-search.d.ts +0 -4
- package/dist/commands/code-search.js +0 -164
- package/dist/commands/code-search.js.map +0 -1
- package/dist/commands/dependency.d.ts +0 -4
- package/dist/commands/dependency.js +0 -23
- package/dist/commands/dependency.js.map +0 -1
- package/dist/commands/doctor.d.ts +0 -7
- package/dist/commands/doctor.js +0 -243
- package/dist/commands/doctor.js.map +0 -1
- package/dist/commands/feedback.d.ts +0 -15
- package/dist/commands/feedback.js +0 -112
- package/dist/commands/feedback.js.map +0 -1
- package/dist/commands/forget.d.ts +0 -4
- package/dist/commands/forget.js +0 -29
- package/dist/commands/forget.js.map +0 -1
- package/dist/commands/git-hooks.d.ts +0 -9
- package/dist/commands/git-hooks.js +0 -18
- package/dist/commands/git-hooks.js.map +0 -1
- package/dist/commands/import.d.ts +0 -8
- package/dist/commands/import.js +0 -414
- package/dist/commands/import.js.map +0 -1
- package/dist/commands/incognito.d.ts +0 -4
- package/dist/commands/incognito.js +0 -13
- package/dist/commands/incognito.js.map +0 -1
- package/dist/commands/indicator.d.ts +0 -4
- package/dist/commands/indicator.js +0 -65
- package/dist/commands/indicator.js.map +0 -1
- package/dist/commands/ingest.d.ts +0 -3
- package/dist/commands/ingest.js +0 -367
- package/dist/commands/ingest.js.map +0 -1
- package/dist/commands/install.d.ts +0 -9
- package/dist/commands/install.js +0 -431
- package/dist/commands/install.js.map +0 -1
- package/dist/commands/invite.d.ts +0 -4
- package/dist/commands/invite.js +0 -61
- package/dist/commands/invite.js.map +0 -1
- package/dist/commands/login.d.ts +0 -4
- package/dist/commands/login.js +0 -145
- package/dist/commands/login.js.map +0 -1
- package/dist/commands/logout.d.ts +0 -4
- package/dist/commands/logout.js +0 -26
- package/dist/commands/logout.js.map +0 -1
- package/dist/commands/onboard.d.ts +0 -4
- package/dist/commands/onboard.js +0 -18
- package/dist/commands/onboard.js.map +0 -1
- package/dist/commands/org.d.ts +0 -5
- package/dist/commands/org.js +0 -157
- package/dist/commands/org.js.map +0 -1
- package/dist/commands/pr-link.d.ts +0 -2
- package/dist/commands/pr-link.js +0 -69
- package/dist/commands/pr-link.js.map +0 -1
- package/dist/commands/restore.d.ts +0 -4
- package/dist/commands/restore.js +0 -23
- package/dist/commands/restore.js.map +0 -1
- package/dist/commands/search.d.ts +0 -4
- package/dist/commands/search.js +0 -85
- package/dist/commands/search.js.map +0 -1
- package/dist/commands/session-start.d.ts +0 -2
- package/dist/commands/session-start.js +0 -114
- package/dist/commands/session-start.js.map +0 -1
- package/dist/commands/set-mode.d.ts +0 -5
- package/dist/commands/set-mode.js +0 -96
- package/dist/commands/set-mode.js.map +0 -1
- package/dist/commands/skill.d.ts +0 -18
- package/dist/commands/skill.js +0 -309
- package/dist/commands/skill.js.map +0 -1
- package/dist/commands/status.d.ts +0 -4
- package/dist/commands/status.js +0 -33
- package/dist/commands/status.js.map +0 -1
- package/dist/commands/statusline.d.ts +0 -2
- package/dist/commands/statusline.js +0 -37
- package/dist/commands/statusline.js.map +0 -1
- package/dist/commands/suggestions.d.ts +0 -4
- package/dist/commands/suggestions.js +0 -84
- package/dist/commands/suggestions.js.map +0 -1
- package/dist/commands/takeover/_utils/agent-paths.d.ts +0 -6
- package/dist/commands/takeover/_utils/archive-codex-desktop-thread.d.ts +0 -5
- package/dist/commands/takeover/_utils/canonical-digest.d.ts +0 -5
- package/dist/commands/takeover/_utils/codex-desktop-recovery.d.ts +0 -16
- package/dist/commands/takeover/_utils/context-fit.d.ts +0 -18
- package/dist/commands/takeover/_utils/cursor-store.d.ts +0 -49
- package/dist/commands/takeover/_utils/import-codex-desktop-thread.d.ts +0 -14
- package/dist/commands/takeover/_utils/launch-desktop-url.d.ts +0 -4
- package/dist/commands/takeover/_utils/native-file.d.ts +0 -14
- package/dist/commands/takeover/_utils/probe-agent.d.ts +0 -20
- package/dist/commands/takeover/_utils/provenance-context.d.ts +0 -7
- package/dist/commands/takeover/_utils/staged-session.d.ts +0 -64
- package/dist/commands/takeover/_utils/write-claude-desktop-session.d.ts +0 -47
- package/dist/commands/takeover/_utils/write-claude-session.d.ts +0 -53
- package/dist/commands/takeover/_utils/write-codex-desktop-session.d.ts +0 -96
- package/dist/commands/takeover/_utils/write-codex-session.d.ts +0 -52
- package/dist/commands/takeover/_utils/write-cursor-session.d.ts +0 -57
- package/dist/commands/takeover/_utils/write-pi-session.d.ts +0 -52
- package/dist/commands/takeover/index.d.ts +0 -21
- package/dist/commands/takeover/takeover.schema.d.ts +0 -24
- package/dist/commands/uninstall.d.ts +0 -8
- package/dist/commands/uninstall.js +0 -130
- package/dist/commands/uninstall.js.map +0 -1
- package/dist/commands/update.d.ts +0 -4
- package/dist/commands/update.js +0 -127
- package/dist/commands/update.js.map +0 -1
- package/dist/jcode/skills/session-takeover/SKILL.md +0 -67
- /package/dist/{_utils → clients/agents}/normalize-transcript-timestamp.js +0 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { cliErr } from "../../../core/errors/cli-error.js";
|
|
2
|
+
import { callGlen } from "../../../clients/glen-api/glen-api.js";
|
|
3
|
+
import { out } from "../../../core/terminal/out.js";
|
|
4
|
+
import { err, mapErr, ok } from "../../../core/errors/result.js";
|
|
5
|
+
import { glenState } from "../../../core/state/state.js";
|
|
6
|
+
const UNCHANGED = "could not log the organization switch (organization unchanged)";
|
|
7
|
+
// Audited in the target org before it's saved, so a refused switch leaves local state untouched.
|
|
8
|
+
const applySwitch = async (target) => {
|
|
9
|
+
const previous = await glenState.read();
|
|
10
|
+
const opts = { orgId: target.orgId };
|
|
11
|
+
const started = await callGlen("beginOrgSwitch", { previousOrgId: previous?.activeOrgId ?? null }, opts);
|
|
12
|
+
if (!started.ok)
|
|
13
|
+
return mapErr(started, (e) => ({ ...e, what: UNCHANGED }));
|
|
14
|
+
const saved = await glenState.write({
|
|
15
|
+
activeOrgId: target.orgId,
|
|
16
|
+
activeOrgSlug: target.slug,
|
|
17
|
+
activeOrgName: target.name,
|
|
18
|
+
mode: previous?.mode ?? "on",
|
|
19
|
+
...(previous?.modeUpdatedAt
|
|
20
|
+
? { modeUpdatedAt: previous.modeUpdatedAt }
|
|
21
|
+
: {}),
|
|
22
|
+
});
|
|
23
|
+
const finished = await callGlen("finishOrgSwitch", { eventId: started.value.id, outcome: saved.ok ? "applied" : "failed" }, opts);
|
|
24
|
+
if (!saved.ok)
|
|
25
|
+
return saved;
|
|
26
|
+
if (!finished.ok)
|
|
27
|
+
return err(cliErr("Upstream", {
|
|
28
|
+
code: "org.audit_incomplete",
|
|
29
|
+
what: "organization changed, but its audit log could not be completed",
|
|
30
|
+
remedy: "retry `glen org switch` to confirm the selection",
|
|
31
|
+
cause: finished.error,
|
|
32
|
+
}));
|
|
33
|
+
out.success(`🏔️ Active organization is now ${target.name} (${target.slug}).`);
|
|
34
|
+
return ok(undefined);
|
|
35
|
+
};
|
|
36
|
+
export { applySwitch };
|
|
37
|
+
//# sourceMappingURL=apply-switch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apply-switch.js","sourceRoot":"","sources":["../../../../src/commands/org/_utils/apply-switch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AACjE,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAC;AACpD,OAAO,EAAe,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAQzD,MAAM,SAAS,GACb,gEAAgE,CAAC;AAEnE,iGAAiG;AACjG,MAAM,WAAW,GAAG,KAAK,EAAE,MAAW,EAAmC,EAAE;IACzE,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAC5B,gBAAgB,EAChB,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,IAAI,IAAI,EAAE,EAChD,IAAI,CACL,CAAC;IACF,IAAI,CAAC,OAAO,CAAC,EAAE;QACb,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,EAAY,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IAEvE,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC;QAClC,WAAW,EAAE,MAAM,CAAC,KAAK;QACzB,aAAa,EAAE,MAAM,CAAC,IAAI;QAC1B,aAAa,EAAE,MAAM,CAAC,IAAI;QAC1B,IAAI,EAAE,QAAQ,EAAE,IAAI,IAAI,IAAI;QAC5B,GAAG,CAAC,QAAQ,EAAE,aAAa;YACzB,CAAC,CAAC,EAAE,aAAa,EAAE,QAAQ,CAAC,aAAa,EAAE;YAC3C,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAC7B,iBAAiB,EACjB,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,EACvE,IAAI,CACL,CAAC;IACF,IAAI,CAAC,KAAK,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC;IAC5B,IAAI,CAAC,QAAQ,CAAC,EAAE;QACd,OAAO,GAAG,CACR,MAAM,CAAC,UAAU,EAAE;YACjB,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE,gEAAgE;YACtE,MAAM,EAAE,kDAAkD;YAC1D,KAAK,EAAE,QAAQ,CAAC,KAAK;SACtB,CAAC,CACH,CAAC;IACJ,GAAG,CAAC,OAAO,CAAC,kCAAkC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;IAC/E,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;AACvB,CAAC,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { cliErr } from "../../../core/errors/cli-error.js";
|
|
2
|
+
import { callGlen } from "../../../clients/glen-api/glen-api.js";
|
|
3
|
+
import { mapErr } from "../../../core/errors/result.js";
|
|
4
|
+
// listOrgs needs no org, so an auth failure is a stale key; suggesting `glen org switch` would loop.
|
|
5
|
+
const AUTH_CODES = new Set([
|
|
6
|
+
"api.no_active_org",
|
|
7
|
+
"api.auth_expired",
|
|
8
|
+
"api.forbidden",
|
|
9
|
+
]);
|
|
10
|
+
const fetchOrgs = async () => mapErr(await callGlen("listOrgs", {}), (e) => AUTH_CODES.has(e.code)
|
|
11
|
+
? cliErr("Auth", {
|
|
12
|
+
code: "org.session_lost",
|
|
13
|
+
what: "your session lost its organization",
|
|
14
|
+
remedy: "run `glen login` to reconnect",
|
|
15
|
+
cause: e,
|
|
16
|
+
})
|
|
17
|
+
: e);
|
|
18
|
+
export { fetchOrgs };
|
|
19
|
+
//# sourceMappingURL=fetch-orgs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-orgs.js","sourceRoot":"","sources":["../../../../src/commands/org/_utils/fetch-orgs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAExD,qGAAqG;AACrG,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;IACzB,mBAAmB;IACnB,kBAAkB;IAClB,eAAe;CAChB,CAAC,CAAC;AAEH,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE,CAC3B,MAAM,CACJ,MAAM,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,EAC9B,CAAC,CAAC,EAAY,EAAE,CACd,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IACpB,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE;QACb,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,oCAAoC;QAC1C,MAAM,EAAE,+BAA+B;QACvC,KAAK,EAAE,CAAC;KACT,CAAC;IACJ,CAAC,CAAC,CAAC,CACR,CAAC;AAEJ,OAAO,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { out } from "../../core/terminal/out.js";
|
|
2
|
+
import { ok } from "../../core/errors/result.js";
|
|
3
|
+
import { fetchOrgs } from "./_utils/fetch-orgs.js";
|
|
4
|
+
const orgList = async () => {
|
|
5
|
+
const res = await fetchOrgs();
|
|
6
|
+
if (!res.ok)
|
|
7
|
+
return res;
|
|
8
|
+
out.data(res.value.orgs
|
|
9
|
+
.map((o) => `${o.active ? "✓" : " "} ${o.slug} ${o.name}`)
|
|
10
|
+
.join("\n"));
|
|
11
|
+
return ok(undefined);
|
|
12
|
+
};
|
|
13
|
+
export { orgList };
|
|
14
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/org/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAC;AACjD,OAAO,EAAe,EAAE,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,MAAM,OAAO,GAAG,KAAK,IAAqC,EAAE;IAC1D,MAAM,GAAG,GAAG,MAAM,SAAS,EAAE,CAAC;IAC9B,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,OAAO,GAAG,CAAC;IACxB,GAAG,CAAC,IAAI,CACN,GAAG,CAAC,KAAK,CAAC,IAAI;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;SAC1D,IAAI,CAAC,IAAI,CAAC,CACd,CAAC;IACF,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;AACvB,CAAC,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { cliInput } from "../../core/run/cli-input.js";
|
|
2
|
+
const orgOptions = cliInput.define({
|
|
3
|
+
usage: "glen org list | glen org switch [slug]",
|
|
4
|
+
args: {
|
|
5
|
+
action: (z) => z.enum(["list", "switch"]),
|
|
6
|
+
slug: (z) => z.string().optional(),
|
|
7
|
+
},
|
|
8
|
+
});
|
|
9
|
+
export { orgOptions };
|
|
10
|
+
//# sourceMappingURL=org.options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org.options.js","sourceRoot":"","sources":["../../../src/commands/org/org.options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC;IACjC,KAAK,EAAE,wCAAwC;IAC/C,IAAI,EAAE;QACJ,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACzC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACnC;CACF,CAAC,CAAC;AAEH,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { cliErr } from "../../core/errors/cli-error.js";
|
|
2
|
+
import { out } from "../../core/terminal/out.js";
|
|
3
|
+
import { prompt } from "../../core/terminal/prompt.js";
|
|
4
|
+
import { err, ok } from "../../core/errors/result.js";
|
|
5
|
+
import { applySwitch } from "./_utils/apply-switch.js";
|
|
6
|
+
import { fetchOrgs } from "./_utils/fetch-orgs.js";
|
|
7
|
+
const orgSwitch = async (slug) => {
|
|
8
|
+
if (!slug && !prompt.interactive())
|
|
9
|
+
return err(cliErr("Usage", {
|
|
10
|
+
code: "org.missing_slug",
|
|
11
|
+
what: "no organization specified",
|
|
12
|
+
remedy: "non-interactive shell, so pass a slug: glen org switch <slug> (see `glen org list`)",
|
|
13
|
+
}));
|
|
14
|
+
const res = await fetchOrgs();
|
|
15
|
+
if (!res.ok)
|
|
16
|
+
return res;
|
|
17
|
+
const { orgs } = res.value;
|
|
18
|
+
if (slug) {
|
|
19
|
+
const target = orgs.find((o) => o.slug === slug || o.orgId === slug);
|
|
20
|
+
if (!target)
|
|
21
|
+
return err(cliErr("Usage", {
|
|
22
|
+
code: "org.not_found",
|
|
23
|
+
what: `no organization "${slug}"`,
|
|
24
|
+
why: `available: ${orgs.map((o) => o.slug).join(", ")}`,
|
|
25
|
+
remedy: "run `glen org list` and pass one of the listed slugs",
|
|
26
|
+
}));
|
|
27
|
+
return applySwitch(target);
|
|
28
|
+
}
|
|
29
|
+
const picked = await prompt.select("Select an organization", orgs.map((o) => ({ value: o, label: `${o.name} (${o.slug})` })), orgs.find((o) => o.active));
|
|
30
|
+
if (!picked) {
|
|
31
|
+
out.hint("no organization selected. Pass one: glen org switch <slug>");
|
|
32
|
+
return ok(undefined);
|
|
33
|
+
}
|
|
34
|
+
return applySwitch(picked);
|
|
35
|
+
};
|
|
36
|
+
export { orgSwitch };
|
|
37
|
+
//# sourceMappingURL=switch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"switch.js","sourceRoot":"","sources":["../../../src/commands/org/switch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvD,OAAO,EAAe,GAAG,EAAE,EAAE,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,MAAM,SAAS,GAAG,KAAK,EAAE,IAAa,EAAmC,EAAE;IACzE,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;QAChC,OAAO,GAAG,CACR,MAAM,CAAC,OAAO,EAAE;YACd,IAAI,EAAE,kBAAkB;YACxB,IAAI,EAAE,2BAA2B;YACjC,MAAM,EACJ,qFAAqF;SACxF,CAAC,CACH,CAAC;IACJ,MAAM,GAAG,GAAG,MAAM,SAAS,EAAE,CAAC;IAC9B,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,OAAO,GAAG,CAAC;IACxB,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC;IAE3B,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM;YACT,OAAO,GAAG,CACR,MAAM,CAAC,OAAO,EAAE;gBACd,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,oBAAoB,IAAI,GAAG;gBACjC,GAAG,EAAE,cAAc,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACvD,MAAM,EAAE,sDAAsD;aAC/D,CAAC,CACH,CAAC;QACJ,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAChC,wBAAwB,EACxB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,EAC/D,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAC3B,CAAC;IACF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,GAAG,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;QACvE,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Tokenized, not one regex: a repeated alternation here is prone to catastrophic backtracking (ReDoS).
|
|
2
|
+
const VALUE_FLAGS = new Set(["-C", "-c", "--git-dir", "--work-tree"]);
|
|
3
|
+
const segmentIsGitCommit = (segment) => {
|
|
4
|
+
const tokens = segment.trim().split(/\s+/).filter(Boolean);
|
|
5
|
+
const gitIdx = tokens.indexOf("git");
|
|
6
|
+
if (gitIdx === -1)
|
|
7
|
+
return false;
|
|
8
|
+
const rest = tokens.slice(gitIdx + 1);
|
|
9
|
+
const subcommand = rest.find((t, i) => !t.startsWith("-") && !VALUE_FLAGS.has(rest[i - 1] ?? ""));
|
|
10
|
+
return subcommand === "commit" && !rest.includes("--dry-run");
|
|
11
|
+
};
|
|
12
|
+
const isCommitCommand = (command) => command.split(/[\n;&|]+/).some(segmentIsGitCommit);
|
|
13
|
+
export { isCommitCommand };
|
|
14
|
+
//# sourceMappingURL=is-commit-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-commit-command.js","sourceRoot":"","sources":["../../../../src/commands/pr-link/_utils/is-commit-command.ts"],"names":[],"mappings":"AAAA,uGAAuG;AACvG,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;AAEtE,MAAM,kBAAkB,GAAG,CAAC,OAAe,EAAW,EAAE;IACtD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,MAAM,KAAK,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAChC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAC1B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CACpE,CAAC;IACF,OAAO,UAAU,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAChE,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,OAAe,EAAW,EAAE,CACnD,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAErD,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { credentials } from "../../../core/state/credentials.js";
|
|
2
|
+
import { gitContext } from "../../../clients/git/git-context.js";
|
|
3
|
+
import { callGlen } from "../../../clients/glen-api/glen-api.js";
|
|
4
|
+
import { field } from "../../../core/json/json-field.js";
|
|
5
|
+
import { ok } from "../../../core/errors/result.js";
|
|
6
|
+
import { runProgram } from "../../../core/system/run-program.js";
|
|
7
|
+
import { sessionMap } from "../../../core/state/session-map.js";
|
|
8
|
+
import { glenState } from "../../../core/state/state.js";
|
|
9
|
+
import { isCommitCommand } from "./is-commit-command.js";
|
|
10
|
+
const COMMIT_ANCHOR_TIMEOUT_MS = 3000;
|
|
11
|
+
const headSha = (cwd) => {
|
|
12
|
+
const r = runProgram("git", ["-C", cwd, "rev-parse", "HEAD"], {
|
|
13
|
+
timeoutMs: 200,
|
|
14
|
+
});
|
|
15
|
+
return r.ok ? r.value.stdout.trim() || null : null;
|
|
16
|
+
};
|
|
17
|
+
const recordCommitAnchor = async (event) => {
|
|
18
|
+
const command = field(field(event, "tool_input"), "command");
|
|
19
|
+
if (typeof command !== "string" || !isCommitCommand(command))
|
|
20
|
+
return ok(undefined);
|
|
21
|
+
const rawCwd = field(event, "cwd");
|
|
22
|
+
const cwd = typeof rawCwd === "string" && rawCwd ? rawCwd : process.cwd();
|
|
23
|
+
const sha = headSha(cwd);
|
|
24
|
+
if (!sha)
|
|
25
|
+
return ok(undefined);
|
|
26
|
+
const conversationId = await sessionMap.forCwd(cwd);
|
|
27
|
+
if (!conversationId)
|
|
28
|
+
return ok(undefined);
|
|
29
|
+
if (!(await credentials.read()))
|
|
30
|
+
return ok(undefined);
|
|
31
|
+
const state = await glenState.read();
|
|
32
|
+
if (state?.mode !== "on")
|
|
33
|
+
return ok(undefined);
|
|
34
|
+
const ctx = gitContext(cwd);
|
|
35
|
+
if (!ctx.remoteUrl)
|
|
36
|
+
return ok(undefined);
|
|
37
|
+
const anchored = await callGlen("commitAnchor", {
|
|
38
|
+
sha,
|
|
39
|
+
repoUrl: ctx.remoteUrl,
|
|
40
|
+
conversationId,
|
|
41
|
+
...(ctx.branch ? { branch: ctx.branch } : {}),
|
|
42
|
+
}, { timeoutMs: COMMIT_ANCHOR_TIMEOUT_MS, context: "hook" });
|
|
43
|
+
return anchored.ok ? ok(undefined) : anchored;
|
|
44
|
+
};
|
|
45
|
+
export { recordCommitAnchor };
|
|
46
|
+
//# sourceMappingURL=record-commit-anchor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record-commit-anchor.js","sourceRoot":"","sources":["../../../../src/commands/pr-link/_utils/record-commit-anchor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { cliErr } from "../../core/errors/cli-error.js";
|
|
2
|
+
import { field } from "../../core/json/json-field.js";
|
|
3
|
+
import { out } from "../../core/terminal/out.js";
|
|
4
|
+
import { prReviewLink } from "../../clients/git/pr-review-link.js";
|
|
5
|
+
import { readHookEvent } from "../../core/terminal/read-hook-event.js";
|
|
6
|
+
import { fromSync, ok } from "../../core/errors/result.js";
|
|
7
|
+
import { glenState } from "../../core/state/state.js";
|
|
8
|
+
import { recordCommitAnchor } from "./_utils/record-commit-anchor.js";
|
|
9
|
+
import { prLinkOptions } from "./pr-link.options.js";
|
|
10
|
+
const textFrom = (v) => {
|
|
11
|
+
if (typeof v === "string")
|
|
12
|
+
return v;
|
|
13
|
+
if (v === null || v === undefined)
|
|
14
|
+
return "";
|
|
15
|
+
const json = fromSync(() => JSON.stringify(v));
|
|
16
|
+
return json.ok ? json.value : "";
|
|
17
|
+
};
|
|
18
|
+
// Cursor's afterShellExecution sends `command`/`output` instead of `tool_input`/`tool_response`.
|
|
19
|
+
const normalize = (event) => {
|
|
20
|
+
const command = field(event, "command");
|
|
21
|
+
if (typeof command !== "string" || field(event, "tool_input") !== undefined)
|
|
22
|
+
return event;
|
|
23
|
+
const output = field(event, "output");
|
|
24
|
+
return {
|
|
25
|
+
...event,
|
|
26
|
+
tool_input: { command },
|
|
27
|
+
...(field(event, "tool_response") === undefined &&
|
|
28
|
+
typeof output === "string"
|
|
29
|
+
? { tool_response: output }
|
|
30
|
+
: {}),
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
const surfaceReviewLink = async (agent, event) => {
|
|
34
|
+
const state = await glenState.read();
|
|
35
|
+
// Silent must put zero bytes of glen content into the model's context.
|
|
36
|
+
if (state?.mode === "off" || state?.mode === "silent")
|
|
37
|
+
return;
|
|
38
|
+
const haystack = [
|
|
39
|
+
textFrom(field(field(event, "tool_input"), "command")),
|
|
40
|
+
textFrom(field(event, "tool_response")),
|
|
41
|
+
].join("\n");
|
|
42
|
+
const prs = prReviewLink.extract(haystack);
|
|
43
|
+
// Cursor ignores this hook's stdout: it only records the anchor.
|
|
44
|
+
if (prs.length === 0 || agent === "cursor")
|
|
45
|
+
return;
|
|
46
|
+
const links = prs
|
|
47
|
+
.map((p) => `Glen review page for this PR: ${prReviewLink.reviewUrl(p)}`)
|
|
48
|
+
.join("\n");
|
|
49
|
+
out.hookJson({
|
|
50
|
+
hookSpecificOutput: {
|
|
51
|
+
hookEventName: "PostToolUse",
|
|
52
|
+
additionalContext: `${links}\nSurface the Glen review link alongside the GitHub PR link.`,
|
|
53
|
+
},
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
const prLink = prLinkOptions.handle(async ({ agent }) => {
|
|
57
|
+
const read = await readHookEvent((cause) => cliErr("Parse", {
|
|
58
|
+
code: "pr_link.invalid_event",
|
|
59
|
+
what: "the tool event on stdin is not a JSON object",
|
|
60
|
+
cause,
|
|
61
|
+
remedy: "update glen and the agent's glen plugin (`glen update`)",
|
|
62
|
+
}));
|
|
63
|
+
if (!read.ok)
|
|
64
|
+
return read;
|
|
65
|
+
if (!read.value)
|
|
66
|
+
return ok(undefined);
|
|
67
|
+
const event = normalize(read.value);
|
|
68
|
+
// Awaited so the request finishes before this short-lived hook process exits.
|
|
69
|
+
const anchored = await recordCommitAnchor(event);
|
|
70
|
+
await surfaceReviewLink(agent, event);
|
|
71
|
+
return anchored;
|
|
72
|
+
});
|
|
73
|
+
export { prLink };
|
|
74
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/pr-link/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { cliInput } from "../../core/run/cli-input.js";
|
|
2
|
+
import { hookAgents } from "../../core/run/hook-agents.js";
|
|
3
|
+
const prLinkOptions = cliInput.define({
|
|
4
|
+
flags: {
|
|
5
|
+
agent: {
|
|
6
|
+
flag: "--agent <agent>",
|
|
7
|
+
help: `Agent type: ${hookAgents.join(" | ")}`,
|
|
8
|
+
schema: (z) => z.enum(hookAgents).optional(),
|
|
9
|
+
},
|
|
10
|
+
},
|
|
11
|
+
});
|
|
12
|
+
export { prLinkOptions };
|
|
13
|
+
//# sourceMappingURL=pr-link.options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pr-link.options.js","sourceRoot":"","sources":["../../../src/commands/pr-link/pr-link.options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC;IACpC,KAAK,EAAE;QACL,KAAK,EAAE;YACL,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,eAAe,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC7C,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE;SAC7C;KACF;CACF,CAAC,CAAC;AAEH,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { out } from "../../core/terminal/out.js";
|
|
2
|
+
import { ok } from "../../core/errors/result.js";
|
|
3
|
+
import { forgetOrRestoreObservationOrMessage } from "../_utils/forget-or-restore-observation-or-message.js";
|
|
4
|
+
import { restoreOptions } from "./restore.options.js";
|
|
5
|
+
const plural = (count, singular) => `${count} ${singular}${count === 1 ? "" : "s"}`;
|
|
6
|
+
const restore = restoreOptions.handle(async ({ reference: references }) => {
|
|
7
|
+
const result = await forgetOrRestoreObservationOrMessage({
|
|
8
|
+
action: "restore",
|
|
9
|
+
references,
|
|
10
|
+
});
|
|
11
|
+
if (!result.ok)
|
|
12
|
+
return result;
|
|
13
|
+
const { changed, unchanged, cascadedObservations } = result.value;
|
|
14
|
+
const summary = [
|
|
15
|
+
`${changed.length} restored`,
|
|
16
|
+
...(unchanged.length > 0 ? [`${unchanged.length} already active`] : []),
|
|
17
|
+
...(cascadedObservations.length > 0
|
|
18
|
+
? [
|
|
19
|
+
`${plural(cascadedObservations.length, "derived observation")} restored`,
|
|
20
|
+
]
|
|
21
|
+
: []),
|
|
22
|
+
].join(", ");
|
|
23
|
+
out.success(`🏔️ ${summary}: eligible for future recall.`);
|
|
24
|
+
return ok(undefined);
|
|
25
|
+
});
|
|
26
|
+
export { restore };
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/restore/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAC;AACjD,OAAO,EAAe,EAAE,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,mCAAmC,EAAE,MAAM,uDAAuD,CAAC;AAC5G,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,QAAgB,EAAE,EAAE,CACjD,GAAG,KAAK,IAAI,QAAQ,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAElD,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CACnC,KAAK,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,EAAmC,EAAE;IACnE,MAAM,MAAM,GAAG,MAAM,mCAAmC,CAAC;QACvD,MAAM,EAAE,SAAS;QACjB,UAAU;KACX,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC;IAC9B,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;IAElE,MAAM,OAAO,GAAG;QACd,GAAG,OAAO,CAAC,MAAM,WAAW;QAC5B,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,GAAG,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC;YACjC,CAAC,CAAC;gBACE,GAAG,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,qBAAqB,CAAC,WAAW;aACzE;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,GAAG,CAAC,OAAO,CAAC,OAAO,OAAO,+BAA+B,CAAC,CAAC;IAC3D,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;AACvB,CAAC,CACF,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { cliInput } from "../../core/run/cli-input.js";
|
|
2
|
+
const restoreOptions = cliInput.define({
|
|
3
|
+
usage: "glen restore <reference...> (pass observation:<id> or message:<id> from search Sources)",
|
|
4
|
+
args: {
|
|
5
|
+
reference: (z) => z
|
|
6
|
+
.array(z.string().trim())
|
|
7
|
+
.transform((refs) => refs.filter(Boolean))
|
|
8
|
+
.pipe(z.array(z.string()).min(1, "missing evidence reference")),
|
|
9
|
+
},
|
|
10
|
+
});
|
|
11
|
+
export { restoreOptions };
|
|
12
|
+
//# sourceMappingURL=restore.options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restore.options.js","sourceRoot":"","sources":["../../../src/commands/restore/restore.options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;IACrC,KAAK,EACH,yFAAyF;IAC3F,IAAI,EAAE;QACJ,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CACf,CAAC;aACE,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;aACxB,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;aACzC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,4BAA4B,CAAC,CAAC;KACpE;CACF,CAAC,CAAC;AAEH,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { field } from "../../../core/json/json-field.js";
|
|
1
2
|
// `answer` is already rendered server-side; print it as-is or its sections render twice.
|
|
2
3
|
// CAVEAT wording was measured: softer wording made agents re-verify everything, blind trust hurt quality.
|
|
3
|
-
const CAVEAT = "(Recalled from past sessions
|
|
4
|
+
const CAVEAT = "(Recalled from past sessions: these are decisions your teammates already " +
|
|
4
5
|
"made, implemented, and verified. Build on them directly: don't re-derive " +
|
|
5
6
|
"or re-litigate them, and don't explore beyond the scope they describe. Do " +
|
|
6
7
|
"verify the specifics of any code you directly modify before changing it.)";
|
|
@@ -8,10 +9,10 @@ const CAVEAT = "(Recalled from past sessions — these are decisions your teamma
|
|
|
8
9
|
const BANNER = "If the answer above is genuinely useful for the user's current request, " +
|
|
9
10
|
"BEGIN your reply with the three-line banner below at the top of your FINAL " +
|
|
10
11
|
"message (text emitted between tool calls is not reliably shown to the user, " +
|
|
11
|
-
"so a banner placed mid-turn does not count
|
|
12
|
+
"so a banner placed mid-turn does not count: it must open the last message " +
|
|
12
13
|
"you output this turn, after all tool calls). Copy all three lines exactly, " +
|
|
13
14
|
"replacing only the angle-bracketed text with 1–3 sentences in two beats: what Glen " +
|
|
14
|
-
'injected, then the concrete action it let you take
|
|
15
|
+
'injected, then the concrete action it let you take, e.g. "which let me find the ' +
|
|
15
16
|
'root cause much faster", "letting me skip re-deriving the constraints", "so I ' +
|
|
16
17
|
'could go straight to the right file". Always lead with what it enabled, sped up, ' +
|
|
17
18
|
'or saved; never a flat receipt like "Glen confirmed X" or "prior work established ' +
|
|
@@ -23,7 +24,7 @@ const BANNER = "If the answer above is genuinely useful for the user's current r
|
|
|
23
24
|
"| --- |\n" +
|
|
24
25
|
"| <what Glen injected + the action it let you take, e.g. …which let me find the root cause much faster> |";
|
|
25
26
|
const formatSearchResult = (result) => {
|
|
26
|
-
const answer = result
|
|
27
|
+
const answer = field(result, "answer");
|
|
27
28
|
if (typeof answer !== "string" || answer.trim() === "")
|
|
28
29
|
return null;
|
|
29
30
|
return `[glen] search answer:\n\n${answer}\n\n${CAVEAT}\n\n${BANNER}`;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-search-result.js","sourceRoot":"","sources":["../../../../src/commands/search/_utils/format-search-result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAEzD,yFAAyF;AACzF,0GAA0G;AAC1G,MAAM,MAAM,GACV,2EAA2E;IAC3E,2EAA2E;IAC3E,4EAA4E;IAC5E,2EAA2E,CAAC;AAE9E,8HAA8H;AAC9H,MAAM,MAAM,GACV,0EAA0E;IAC1E,6EAA6E;IAC7E,8EAA8E;IAC9E,4EAA4E;IAC5E,6EAA6E;IAC7E,qFAAqF;IACrF,kFAAkF;IAClF,gFAAgF;IAChF,mFAAmF;IACnF,oFAAoF;IACpF,wEAAwE;IACxE,wEAAwE;IACxE,8DAA8D;IAC9D,IAAI;IACJ,4BAA4B;IAC5B,WAAW;IACX,2GAA2G,CAAC;AAE9G,MAAM,kBAAkB,GAAG,CAAC,MAAe,EAAiB,EAAE;IAC5D,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACvC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAEpE,OAAO,4BAA4B,MAAM,OAAO,MAAM,OAAO,MAAM,EAAE,CAAC;AACxE,CAAC,CAAC;AAEF,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { fromSync } from "../../../core/errors/result.js";
|
|
2
|
+
// Intl can be missing, and an unknown zone name throws in the constructor: send no zone then.
|
|
3
|
+
const runtimeTimezone = () => {
|
|
4
|
+
const detected = fromSync(() => {
|
|
5
|
+
const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
6
|
+
Intl.DateTimeFormat(undefined, { timeZone: timezone });
|
|
7
|
+
return timezone;
|
|
8
|
+
});
|
|
9
|
+
return detected.ok && detected.value ? detected.value : undefined;
|
|
10
|
+
};
|
|
11
|
+
export { runtimeTimezone };
|
|
12
|
+
//# sourceMappingURL=runtime-timezone.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-timezone.js","sourceRoot":"","sources":["../../../../src/commands/search/_utils/runtime-timezone.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAE1D,8FAA8F;AAC9F,MAAM,eAAe,GAAG,GAAuB,EAAE;IAC/C,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,EAAE;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;QAClE,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QACvD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACpE,CAAC,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { gitContext } from "../../clients/git/git-context.js";
|
|
2
|
+
import { callGlen } from "../../clients/glen-api/glen-api.js";
|
|
3
|
+
import { out } from "../../core/terminal/out.js";
|
|
4
|
+
import { ok } from "../../core/errors/result.js";
|
|
5
|
+
import { sessionMap } from "../../core/state/session-map.js";
|
|
6
|
+
import { glenState } from "../../core/state/state.js";
|
|
7
|
+
import { formatSearchResult } from "./_utils/format-search-result.js";
|
|
8
|
+
import { runtimeTimezone } from "./_utils/runtime-timezone.js";
|
|
9
|
+
import { searchOptions } from "./search.options.js";
|
|
10
|
+
const SEARCH_TIMEOUT_MS = 60_000;
|
|
11
|
+
const search = searchOptions.handle(async ({ query }) => {
|
|
12
|
+
const state = await glenState.read();
|
|
13
|
+
if (state?.mode === "silent") {
|
|
14
|
+
out.info("glen is in silent mode, so search is off.");
|
|
15
|
+
out.hint("run `glen on` to re-enable surfacing");
|
|
16
|
+
return ok(undefined);
|
|
17
|
+
}
|
|
18
|
+
const workspace = gitContext(process.cwd());
|
|
19
|
+
const timezone = runtimeTimezone();
|
|
20
|
+
const conversationId = await sessionMap.forCwd(process.cwd());
|
|
21
|
+
const res = await callGlen("search", {
|
|
22
|
+
query,
|
|
23
|
+
...(timezone ? { timezone } : {}),
|
|
24
|
+
...(conversationId ? { conversationId } : {}),
|
|
25
|
+
...(Object.keys(workspace).length > 0
|
|
26
|
+
? { additionalContext: { workspace } }
|
|
27
|
+
: {}),
|
|
28
|
+
}, { timeoutMs: SEARCH_TIMEOUT_MS });
|
|
29
|
+
if (!res.ok)
|
|
30
|
+
return res;
|
|
31
|
+
out.data(formatSearchResult(res.value) ??
|
|
32
|
+
"glen: no relevant memory found for that query.");
|
|
33
|
+
return ok(undefined);
|
|
34
|
+
});
|
|
35
|
+
export { search };
|
|
36
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/search/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAC9D,OAAO,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAC;AACjD,OAAO,EAAe,EAAE,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAEjC,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CACjC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAmC,EAAE;IACnD,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;IACrC,IAAI,KAAK,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,GAAG,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;QACtD,GAAG,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACjD,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IAED,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;IACnC,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAG,MAAM,QAAQ,CACxB,QAAQ,EACR;QACE,KAAK;QACL,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC;YACnC,CAAC,CAAC,EAAE,iBAAiB,EAAE,EAAE,SAAS,EAAE,EAAE;YACtC,CAAC,CAAC,EAAE,CAAC;KACR,EACD,EAAE,SAAS,EAAE,iBAAiB,EAAE,CACjC,CAAC;IACF,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,OAAO,GAAG,CAAC;IAExB,GAAG,CAAC,IAAI,CACN,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC;QAC3B,gDAAgD,CACnD,CAAC;IACF,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;AACvB,CAAC,CACF,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.options.js","sourceRoot":"","sources":["../../../src/commands/search/search.options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC;IACpC,KAAK,EAAE,uBAAuB;IAC9B,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;CACjD,CAAC,CAAC;AAEH,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { cliErr } from "../../core/errors/cli-error.js";
|
|
2
|
+
import { config } from "../../clients/glen-api/config.js";
|
|
3
|
+
import { credentials } from "../../core/state/credentials.js";
|
|
4
|
+
import { isEphemeralSession } from "../../core/state/ephemeral-session.js";
|
|
5
|
+
import { files } from "../../core/system/files.js";
|
|
6
|
+
import { ingestHeartbeat } from "../../core/state/ingest-heartbeat.js";
|
|
7
|
+
import { jcodeEvent } from "../../clients/jcode/jcode-event.js";
|
|
8
|
+
import { field } from "../../core/json/json-field.js";
|
|
9
|
+
import { out } from "../../core/terminal/out.js";
|
|
10
|
+
import { readHookEvent } from "../../core/terminal/read-hook-event.js";
|
|
11
|
+
import { ok } from "../../core/errors/result.js";
|
|
12
|
+
import { sessionMap } from "../../core/state/session-map.js";
|
|
13
|
+
import { spawnSelfDetached } from "../../core/system/spawn-self.js";
|
|
14
|
+
import { rememberStateLine } from "../../core/state/state-line-memo.js";
|
|
15
|
+
import { formatStateLine } from "../../core/state/state-line.js";
|
|
16
|
+
import { glenState } from "../../core/state/state.js";
|
|
17
|
+
import { recordEvent } from "../../core/telemetry/record-event.js";
|
|
18
|
+
import { noteIfErr } from "../../core/telemetry/note-if-err.js";
|
|
19
|
+
import { sessionStartOptions } from "./session-start.options.js";
|
|
20
|
+
// Read failures are only noted: an error returned to runHook would print its fallback after our output.
|
|
21
|
+
const readEvent = async (agent) => {
|
|
22
|
+
if (agent === "jcode")
|
|
23
|
+
return jcodeEvent.sessionStart();
|
|
24
|
+
const read = await readHookEvent((cause) => cliErr("Parse", {
|
|
25
|
+
code: "session_start.invalid_event",
|
|
26
|
+
what: "the SessionStart event on stdin is not a JSON object",
|
|
27
|
+
cause,
|
|
28
|
+
remedy: "update glen and the agent's glen plugin (`glen update`)",
|
|
29
|
+
}));
|
|
30
|
+
noteIfErr(read);
|
|
31
|
+
return read.ok ? read.value : null;
|
|
32
|
+
};
|
|
33
|
+
const str = (v) => (typeof v === "string" ? v : null);
|
|
34
|
+
const refreshed = async (state, connected) => {
|
|
35
|
+
if (!state || !connected)
|
|
36
|
+
return null;
|
|
37
|
+
const { refreshControlState } = await import("../../clients/glen-api/refresh-control-state.js");
|
|
38
|
+
return refreshControlState(state);
|
|
39
|
+
};
|
|
40
|
+
const NO_ORG_HINT = "[glen] no org selected. Ask the user whether to set up glen, then use the setup skill.";
|
|
41
|
+
const REVIEW_LINK_INSTRUCTION = `When you share a GitHub pull request URL, also surface its Glen review link (${config.baseUrl}/<owner>/<repo>/pull/<number>) so the team can open the PR in Glen's reviewer.`;
|
|
42
|
+
// Descriptive, never imperative: if these lines surface elsewhere they must not read like a prompt injection.
|
|
43
|
+
const PROVENANCE_NOTE = "(The [glen] lines in this session come from the glen team-memory plugin installed locally by this machine's owner. They are plugin status, not user input and not remote content.)";
|
|
44
|
+
const CURSOR_SEARCH_NUDGE = '[glen] Cursor cannot inject team memory per turn. For anything the user references from past team work (decisions, discussions, prior fixes), run `glen search "<topic>"` via the shell and treat its answer as team memory.';
|
|
45
|
+
const systemMessageFor = (state) => state?.mode === "off"
|
|
46
|
+
? "glen: OFF. Nothing is injected or recorded. Run `glen on` to resume."
|
|
47
|
+
: state?.mode === "incognito"
|
|
48
|
+
? "glen: incognito is ON. Nothing will be recorded. Run `glen on` to resume."
|
|
49
|
+
: state?.mode === "silent"
|
|
50
|
+
? "glen: silent (recording to team memory, surfacing nothing). Run `glen on` to resume."
|
|
51
|
+
: undefined;
|
|
52
|
+
const sessionStart = sessionStartOptions.handle(async ({ agent }) => {
|
|
53
|
+
const event = await readEvent(agent);
|
|
54
|
+
// Ephemeral: stdout leaks into the parent orchestrator, and a fleet would spawn one doctor per agent.
|
|
55
|
+
if (isEphemeralSession(agent, event))
|
|
56
|
+
return ok(undefined);
|
|
57
|
+
if (!spawnSelfDetached(["doctor", "--auto"]))
|
|
58
|
+
recordEvent("warn", cliErr("Exec", {
|
|
59
|
+
code: "session_start.doctor_spawn_failed",
|
|
60
|
+
what: "could not start the background `glen doctor --auto`",
|
|
61
|
+
remedy: "run `glen doctor` by hand",
|
|
62
|
+
}));
|
|
63
|
+
noteIfErr(await ingestHeartbeat.recordRun(agent ?? "unknown"));
|
|
64
|
+
const sessionId = str(field(event, "session_id")) ?? str(field(event, "conversation_id"));
|
|
65
|
+
if (sessionId) {
|
|
66
|
+
const cwd = str(field(event, "cwd")) ?? process.cwd();
|
|
67
|
+
const recorded = await sessionMap.record(cwd, sessionId);
|
|
68
|
+
if (!recorded.ok)
|
|
69
|
+
recordEvent("warn", files.toError(recorded.error, {
|
|
70
|
+
code: "session_start.session_map_write_failed",
|
|
71
|
+
what: "could not record this session for its folder",
|
|
72
|
+
remedy: "check ownership of ~/.glen (e.g. `sudo chown -R $USER ~/.glen`)",
|
|
73
|
+
}));
|
|
74
|
+
}
|
|
75
|
+
// jcode only observes this event: it doesn't read the hook's stdout.
|
|
76
|
+
if (agent === "jcode")
|
|
77
|
+
return ok(undefined);
|
|
78
|
+
const [creds, localState] = await Promise.all([
|
|
79
|
+
credentials.read(),
|
|
80
|
+
glenState.read(),
|
|
81
|
+
]);
|
|
82
|
+
const refresh = await refreshed(localState, creds !== null);
|
|
83
|
+
const state = refresh ? refresh.state : localState;
|
|
84
|
+
// Don't trust the server alone: off/silent must surface nothing even if a block comes back.
|
|
85
|
+
const teamMemoryBlock = refresh && state && state.mode !== "off" && state.mode !== "silent"
|
|
86
|
+
? refresh.teamMemoryBlock
|
|
87
|
+
: null;
|
|
88
|
+
const additionalContext = !creds
|
|
89
|
+
? "[glen] not set up on this machine. Ask the user whether to set up glen, then use the setup skill."
|
|
90
|
+
: !state
|
|
91
|
+
? NO_ORG_HINT
|
|
92
|
+
: state.mode === "off" || state.mode === "silent"
|
|
93
|
+
? ""
|
|
94
|
+
: `${formatStateLine(state) ?? NO_ORG_HINT}\n${PROVENANCE_NOTE}\n\n${REVIEW_LINK_INSTRUCTION}${teamMemoryBlock ? `\n\n${teamMemoryBlock}` : ""}`;
|
|
95
|
+
const seededLine = creds && state ? formatStateLine(state) : null;
|
|
96
|
+
if (sessionId && seededLine)
|
|
97
|
+
noteIfErr(await rememberStateLine(sessionId, seededLine));
|
|
98
|
+
const systemMessage = systemMessageFor(state);
|
|
99
|
+
if (agent === "cursor") {
|
|
100
|
+
const healthy = Boolean(creds && state && state.mode !== "off" && state.mode !== "silent");
|
|
101
|
+
const combined = [
|
|
102
|
+
systemMessage,
|
|
103
|
+
additionalContext,
|
|
104
|
+
healthy ? CURSOR_SEARCH_NUDGE : "",
|
|
105
|
+
]
|
|
106
|
+
.filter(Boolean)
|
|
107
|
+
.join("\n\n");
|
|
108
|
+
if (combined)
|
|
109
|
+
out.hookJson({ additional_context: combined });
|
|
110
|
+
return ok(undefined);
|
|
111
|
+
}
|
|
112
|
+
out.hookJson({
|
|
113
|
+
hookSpecificOutput: { hookEventName: "SessionStart", additionalContext },
|
|
114
|
+
...(systemMessage ? { systemMessage } : {}),
|
|
115
|
+
});
|
|
116
|
+
return ok(undefined);
|
|
117
|
+
});
|
|
118
|
+
export { sessionStart };
|
|
119
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/session-start/index.ts"],"names":[],"mappings":"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"}
|