@tryglen/cli 0.37.1 → 0.38.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +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 +22 -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,86 @@
|
|
|
1
|
+
import { isCliError, whyOf } from "../errors/cli-error.js";
|
|
2
|
+
import { env } from "../system/env.js";
|
|
3
|
+
import { recordEvent } from "../telemetry/record-event.js";
|
|
4
|
+
const isTty = () => process.stdout.isTTY === true;
|
|
5
|
+
const colorOn = (stream) => {
|
|
6
|
+
const e = env();
|
|
7
|
+
if (e.NO_COLOR !== undefined)
|
|
8
|
+
return false;
|
|
9
|
+
if (e.FORCE_COLOR !== undefined && e.FORCE_COLOR !== "0")
|
|
10
|
+
return true;
|
|
11
|
+
return stream.isTTY === true && e.TERM !== "dumb";
|
|
12
|
+
};
|
|
13
|
+
const SGR = {
|
|
14
|
+
bold: [1, 22],
|
|
15
|
+
dim: [2, 22],
|
|
16
|
+
red: [31, 39],
|
|
17
|
+
green: [32, 39],
|
|
18
|
+
yellow: [33, 39],
|
|
19
|
+
cyan: [36, 39],
|
|
20
|
+
};
|
|
21
|
+
const paint = (stream, style, text) => colorOn(stream)
|
|
22
|
+
? `\x1b[${SGR[style][0]}m${text}\x1b[${SGR[style][1]}m`
|
|
23
|
+
: text;
|
|
24
|
+
const pad = (opts, base) => " ".repeat(base + 2 * (opts?.indent ?? 0));
|
|
25
|
+
const write = (stream, text) => {
|
|
26
|
+
stream.write(text);
|
|
27
|
+
};
|
|
28
|
+
const line = (stream, text) => write(stream, `${text}\n`);
|
|
29
|
+
const detailLines = (stream, e, indent) => {
|
|
30
|
+
const why = whyOf(e);
|
|
31
|
+
const label = (name) => isTty() ? paint(stream, "dim", `${name}:`) : `${name}:`;
|
|
32
|
+
const fix = isTty()
|
|
33
|
+
? `${paint(stream, "cyan", "→")} ${e.remedy}`
|
|
34
|
+
: `fix: ${e.remedy}`;
|
|
35
|
+
const debug = env().GLEN_DEBUG && e.cause instanceof Error && e.cause.stack
|
|
36
|
+
? e.cause.stack
|
|
37
|
+
.split("\n")
|
|
38
|
+
.map((l) => `${indent}${paint(stream, "dim", l)}`)
|
|
39
|
+
: [];
|
|
40
|
+
return [
|
|
41
|
+
...(why ? [`${indent}${label("cause")} ${why}`] : []),
|
|
42
|
+
...(e.path ? [`${indent}${label("path")} ${e.path}`] : []),
|
|
43
|
+
`${indent}${fix}`,
|
|
44
|
+
...debug,
|
|
45
|
+
];
|
|
46
|
+
};
|
|
47
|
+
const problem = (level, subject, opts) => {
|
|
48
|
+
const stream = process.stderr;
|
|
49
|
+
if (isCliError(subject))
|
|
50
|
+
recordEvent(level, subject);
|
|
51
|
+
const what = isCliError(subject) ? subject.what : subject;
|
|
52
|
+
const head = isTty()
|
|
53
|
+
? `${pad(opts, 2)}${level === "error"
|
|
54
|
+
? paint(stream, "red", `✗ ${what}`)
|
|
55
|
+
: paint(stream, "yellow", `⚠ ${what}`)}`
|
|
56
|
+
: `${pad(opts, 0)}${level === "error" ? "error" : "warning"}: ${what}`;
|
|
57
|
+
line(stream, head);
|
|
58
|
+
if (isCliError(subject))
|
|
59
|
+
for (const l of detailLines(stream, subject, pad(opts, isTty() ? 4 : 2)))
|
|
60
|
+
line(stream, l);
|
|
61
|
+
};
|
|
62
|
+
const out = {
|
|
63
|
+
isTty,
|
|
64
|
+
heading: (text) => isTty()
|
|
65
|
+
? line(process.stdout, `\n${pad(undefined, 2)}${paint(process.stdout, "bold", text)}\n`)
|
|
66
|
+
: line(process.stdout, text),
|
|
67
|
+
success: (text, opts) => line(process.stdout, isTty()
|
|
68
|
+
? `${pad(opts, 2)}${paint(process.stdout, "green", "✓")} ${text}`
|
|
69
|
+
: `${pad(opts, 0)}ok: ${text}`),
|
|
70
|
+
info: (text, opts) => line(process.stdout, `${pad(opts, isTty() ? 2 : 0)}${text}`),
|
|
71
|
+
step: (text, opts) => line(process.stdout, `${pad(opts, isTty() ? 2 : 0)}${paint(process.stdout, "dim", text)}`),
|
|
72
|
+
hint: (text, opts) => line(process.stdout, isTty()
|
|
73
|
+
? `${pad(opts, 2)}${paint(process.stdout, "cyan", "→")} ${text}`
|
|
74
|
+
: `${pad(opts, 0)}hint: ${text}`),
|
|
75
|
+
warn: (subject, opts) => problem("warn", subject, opts),
|
|
76
|
+
error: (subject, opts) => problem("error", subject, opts),
|
|
77
|
+
data: (text) => write(process.stdout, text.endsWith("\n") ? text : `${text}\n`),
|
|
78
|
+
blank: () => write(process.stdout, "\n"),
|
|
79
|
+
// The agent parses hook output: exact bytes, never styled.
|
|
80
|
+
hookJson: (value) => write(process.stdout, JSON.stringify(value)),
|
|
81
|
+
hookText: (text) => write(process.stdout, text),
|
|
82
|
+
hookNotice: (text) => line(process.stderr, `[glen] ${text}`),
|
|
83
|
+
telemetryDebug: (event) => line(process.stderr, `[telemetry] ${JSON.stringify(event)}`),
|
|
84
|
+
};
|
|
85
|
+
export { out };
|
|
86
|
+
//# sourceMappingURL=out.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"out.js","sourceRoot":"","sources":["../../../src/core/terminal/out.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { confirm, isCancel, multiselect, select } from "@clack/prompts";
|
|
2
|
+
import { out } from "./out.js";
|
|
3
|
+
// clack, not `prompts`: `prompts` crashed on escape-sequence keypresses.
|
|
4
|
+
const interactive = () => process.stdin.isTTY === true && out.isTty();
|
|
5
|
+
const answered = (value) => isCancel(value) ? null : value;
|
|
6
|
+
// Cast: clack's Option type branches on primitive vs object values, and V can be either.
|
|
7
|
+
const options = (choices) => choices.map((c) => ({
|
|
8
|
+
value: c.value,
|
|
9
|
+
label: c.label,
|
|
10
|
+
...(c.hint ? { hint: c.hint } : {}),
|
|
11
|
+
}));
|
|
12
|
+
const prompt = {
|
|
13
|
+
interactive,
|
|
14
|
+
confirm: async (message, initial) => interactive()
|
|
15
|
+
? answered(await confirm({ message, initialValue: initial }))
|
|
16
|
+
: null,
|
|
17
|
+
select: async (message, choices, initial) => interactive()
|
|
18
|
+
? answered(await select({
|
|
19
|
+
message,
|
|
20
|
+
options: options(choices),
|
|
21
|
+
...(initial === undefined ? {} : { initialValue: initial }),
|
|
22
|
+
}))
|
|
23
|
+
: null,
|
|
24
|
+
multiselect: async (message, choices, initial = []) => interactive()
|
|
25
|
+
? answered(await multiselect({
|
|
26
|
+
message,
|
|
27
|
+
options: options(choices),
|
|
28
|
+
initialValues: [...initial],
|
|
29
|
+
required: false,
|
|
30
|
+
}))
|
|
31
|
+
: null,
|
|
32
|
+
};
|
|
33
|
+
export { prompt };
|
|
34
|
+
//# sourceMappingURL=prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../src/core/terminal/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,yEAAyE;AAEzE,MAAM,WAAW,GAAG,GAAY,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;AAE/E,MAAM,QAAQ,GAAG,CAAI,KAAiB,EAAY,EAAE,CAClD,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,KAAqC,CAAC;AAQlE,yFAAyF;AACzF,MAAM,OAAO,GAAG,CAAI,OAA6B,EAAE,EAAE,CACnD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClB,KAAK,EAAE,CAAC,CAAC,KAAK;IACd,KAAK,EAAE,CAAC,CAAC,KAAK;IACd,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;CACpC,CAAC,CAA+C,CAAC;AAEpD,MAAM,MAAM,GAAG;IACb,WAAW;IACX,OAAO,EAAE,KAAK,EACZ,OAAe,EACf,OAAgB,EACS,EAAE,CAC3B,WAAW,EAAE;QACX,CAAC,CAAC,QAAQ,CAAU,MAAM,OAAO,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC;QACtE,CAAC,CAAC,IAAI;IACV,MAAM,EAAE,KAAK,EACX,OAAe,EACf,OAA6B,EAC7B,OAAW,EACQ,EAAE,CACrB,WAAW,EAAE;QACX,CAAC,CAAC,QAAQ,CACN,MAAM,MAAM,CAAI;YACd,OAAO;YACP,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;YACzB,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;SAC5D,CAAC,CACH;QACH,CAAC,CAAC,IAAI;IACV,WAAW,EAAE,KAAK,EAChB,OAAe,EACf,OAA6B,EAC7B,UAAwB,EAAE,EACL,EAAE,CACvB,WAAW,EAAE;QACX,CAAC,CAAC,QAAQ,CACN,MAAM,WAAW,CAAI;YACnB,OAAO;YACP,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;YACzB,aAAa,EAAE,CAAC,GAAG,OAAO,CAAC;YAC3B,QAAQ,EAAE,KAAK;SAChB,CAAC,CACH;QACH,CAAC,CAAC,IAAI;CACX,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { parseJson } from "../json/parse-json.js";
|
|
2
|
+
import { err, ok } from "../errors/result.js";
|
|
3
|
+
import { readStdin } from "./read-stdin.js";
|
|
4
|
+
// Empty stdin is null: the agent had nothing to send.
|
|
5
|
+
const readHookEvent = async (invalid) => {
|
|
6
|
+
const raw = await readStdin();
|
|
7
|
+
if (!raw.ok)
|
|
8
|
+
return raw;
|
|
9
|
+
if (!raw.value.trim())
|
|
10
|
+
return ok(null);
|
|
11
|
+
const parsed = parseJson(raw.value);
|
|
12
|
+
if (parsed.ok && typeof parsed.value === "object" && parsed.value !== null)
|
|
13
|
+
return ok(parsed.value);
|
|
14
|
+
return err(invalid(parsed.ok ? undefined : parsed.error));
|
|
15
|
+
};
|
|
16
|
+
export { readHookEvent };
|
|
17
|
+
//# sourceMappingURL=read-hook-event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-hook-event.js","sourceRoot":"","sources":["../../../src/core/terminal/read-hook-event.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAe,GAAG,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,sDAAsD;AACtD,MAAM,aAAa,GAAG,KAAK,EACzB,OAAqC,EACK,EAAE;IAC5C,MAAM,GAAG,GAAG,MAAM,SAAS,EAAE,CAAC;IAC9B,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,OAAO,GAAG,CAAC;IACxB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,MAAM,CAAC,EAAE,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI;QACxE,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5D,CAAC,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { cliErr } from "../errors/cli-error.js";
|
|
2
|
+
import { err, fromPromise, ok } from "../errors/result.js";
|
|
3
|
+
const collect = async () => {
|
|
4
|
+
const chunks = [];
|
|
5
|
+
for await (const chunk of process.stdin)
|
|
6
|
+
chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(String(chunk)));
|
|
7
|
+
return Buffer.concat(chunks).toString("utf8");
|
|
8
|
+
};
|
|
9
|
+
const readStdin = async () => {
|
|
10
|
+
if (process.stdin.isTTY)
|
|
11
|
+
return ok("");
|
|
12
|
+
const read = await fromPromise(collect());
|
|
13
|
+
return read.ok
|
|
14
|
+
? read
|
|
15
|
+
: err(cliErr("Fs", {
|
|
16
|
+
code: "hook.stdin_read_failed",
|
|
17
|
+
what: "could not read the hook event from stdin",
|
|
18
|
+
cause: read.error,
|
|
19
|
+
remedy: "rerun the agent turn; if it persists, run `glen doctor`",
|
|
20
|
+
}));
|
|
21
|
+
};
|
|
22
|
+
export { readStdin };
|
|
23
|
+
//# sourceMappingURL=read-stdin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-stdin.js","sourceRoot":"","sources":["../../../src/core/terminal/read-stdin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAe,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AAExE,MAAM,OAAO,GAAG,KAAK,IAAqB,EAAE;IAC1C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK;QACrC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3E,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,KAAK,IAAuC,EAAE;IAC9D,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1C,OAAO,IAAI,CAAC,EAAE;QACZ,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,GAAG,CACD,MAAM,CAAC,IAAI,EAAE;YACX,IAAI,EAAE,wBAAwB;YAC9B,IAAI,EAAE,0CAA0C;YAChD,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,yDAAyD;SAClE,CAAC,CACH,CAAC;AACR,CAAC,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,CAAC"}
|
package/dist/jcode/plugin.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "glen",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Shared team memory for coding agents — capture on every turn and skill-driven recall via the glen CLI.",
|
|
5
5
|
"author": { "name": "Glen", "url": "https://tryglen.com" },
|
|
6
6
|
"homepage": "https://tryglen.com",
|
|
@@ -33,11 +33,10 @@ differently for the team — "Claude Code noticed X" reads very differently from
|
|
|
33
33
|
"Ada wants X", and both are useful.
|
|
34
34
|
|
|
35
35
|
If you are filing **without being asked** — you hit the problem yourself and
|
|
36
|
-
decided it was worth reporting — also pass `--proactive`.
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
the user didn't ask for leaves that session. Mention it and let them decide.
|
|
36
|
+
decided it was worth reporting — also pass `--proactive`. On an off-the-record
|
|
37
|
+
(incognito) session the server refuses self-initiated tickets outright and the
|
|
38
|
+
command tells you so — nothing the user didn't ask for leaves that session.
|
|
39
|
+
Mention it and let them decide.
|
|
41
40
|
|
|
42
41
|
Only file proactively for something concrete and attributable:
|
|
43
42
|
|
|
@@ -52,8 +51,9 @@ let them decide.
|
|
|
52
51
|
|
|
53
52
|
## After running
|
|
54
53
|
|
|
55
|
-
On success it prints
|
|
56
|
-
went in. On failure it prints
|
|
57
|
-
active organization" → `glen org switch`). Relay that to
|
|
54
|
+
On success it prints `ok: Bug report sent…` / `ok: Feedback sent…`: tell the user
|
|
55
|
+
it went in. On failure it prints an `error:` line naming the cause, with a `fix:`
|
|
56
|
+
line under it (e.g. "no active organization" → `glen org switch`). Relay that to
|
|
57
|
+
the user and stop.
|
|
58
58
|
**Never retry a failed filing in a loop**, and never re-file the same ticket with
|
|
59
59
|
different wording.
|
|
@@ -11,10 +11,10 @@ lands in the pool. When the user wants to bring someone in:
|
|
|
11
11
|
emails: `glen invite alice@co.com bob@co.com`. To make someone an admin, add
|
|
12
12
|
`--role admin` (default is a regular member).
|
|
13
13
|
3. Report the result. Each address prints one of:
|
|
14
|
-
-
|
|
15
|
-
at the link and join the org.
|
|
16
|
-
- `· <email> is already a member
|
|
17
|
-
-
|
|
14
|
+
- `ok: Invitation sent to <email>`: an email invite is on its way; they
|
|
15
|
+
accept at the link and join the org.
|
|
16
|
+
- `· <email> is already a member`: nothing to do.
|
|
17
|
+
- `warning: could not invite <email> (<reason>)`: relay the reason.
|
|
18
18
|
|
|
19
19
|
Or share a link instead of emailing: run `glen invite` with NO email to print a
|
|
20
20
|
shareable join link for the org. Anyone who signs in with a verified email on the
|
|
@@ -5,7 +5,9 @@ description: Set up, fix, or update glen on this machine. Use when the user asks
|
|
|
5
5
|
|
|
6
6
|
Run `glen doctor` first and branch on its `status:` lines. Fix ONLY what is
|
|
7
7
|
broken, in this order, then re-run `glen doctor` to verify and confirm to the
|
|
8
|
-
user what changed.
|
|
8
|
+
user what changed. After the `status:` lines, doctor lists problems: `error:`
|
|
9
|
+
(broken) and `warning:` (worth fixing) lines, each with a `fix:` line under it,
|
|
10
|
+
then `hint:` lines for things that may not apply. It still exits 0.
|
|
9
11
|
|
|
10
12
|
- `glen: command not found` → install the CLI: `npm install -g @tryglen/cli`,
|
|
11
13
|
then run `glen install` (it sets up the plugin + hooks for this agent).
|
|
@@ -40,14 +42,14 @@ state=<ok|failing|never|fresh-install|idle> lastSuccess=<iso|never>` line per
|
|
|
40
42
|
detected agent — this tracks whether hooks are actually firing, separate from
|
|
41
43
|
whether the plugin is installed:
|
|
42
44
|
- `ok` / `failing` — reflects the last recorded hook run. For `failing`,
|
|
43
|
-
doctor prints
|
|
45
|
+
doctor prints an `error:` line with a `fix:` under it (check `glen status`, then
|
|
44
46
|
`glen login` if disconnected).
|
|
45
47
|
- `fresh-install` — installed under an hour ago with no ingest yet; not a
|
|
46
48
|
fault, just still warming up.
|
|
47
49
|
- `idle` — hooks fire here; nothing recorded yet — logged out, glen off, or
|
|
48
50
|
no completed turn.
|
|
49
|
-
- `never` — hooks have never fired on THIS machine. Doctor prints a
|
|
50
|
-
|
|
51
|
+
- `never` — hooks have never fired on THIS machine. Doctor prints it as a `warning:` line with a `fix:`
|
|
52
|
+
under it: untrusted hooks (trust them in-agent and start a new
|
|
51
53
|
session), a PATH gap, a failed hook-trust query, or a machine-topology
|
|
52
54
|
mismatch.
|
|
53
55
|
- A topology mismatch usually means the agent process runs on a different
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tryglen/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.38.0",
|
|
4
4
|
"description": "Glen CLI — memory for coding agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -13,20 +13,29 @@
|
|
|
13
13
|
"build": "tsc && chmod +x dist/bin.js && pnpm build:jcode",
|
|
14
14
|
"build:jcode": "rm -rf dist/jcode && mkdir -p dist/jcode && cp -R ../jcode-plugin/skills ../jcode-plugin/plugin.json ../jcode-plugin/prompt-overlay.md ../jcode-plugin/preferred-tools.md dist/jcode/",
|
|
15
15
|
"build:indicator": "./macos/build.sh",
|
|
16
|
-
"check": "
|
|
16
|
+
"check": "pnpm format:check && pnpm lint && pnpm typecheck",
|
|
17
|
+
"format:check": "cd ../.. && prettier --check \"packages/cli/**/*.{ts,js,mjs}\"",
|
|
18
|
+
"format": "cd ../.. && prettier --write \"packages/cli/**/*.{ts,js,mjs}\"",
|
|
17
19
|
"test": "vitest run",
|
|
18
|
-
"test:watch": "vitest"
|
|
20
|
+
"test:watch": "vitest",
|
|
21
|
+
"contract:client": "rm -rf src/_generated/contract && openapi-ts && node ./contract/generate-procedures.mjs",
|
|
22
|
+
"lint": "cd ../.. && eslint packages/cli/src",
|
|
23
|
+
"typecheck": "tsc -p tsconfig.check.json"
|
|
19
24
|
},
|
|
20
25
|
"dependencies": {
|
|
26
|
+
"@clack/prompts": "^1.8.1",
|
|
21
27
|
"cac": "^6.7.14",
|
|
22
|
-
"
|
|
23
|
-
"
|
|
28
|
+
"smol-toml": "^1.8.0",
|
|
29
|
+
"zod": "^4.4.3"
|
|
24
30
|
},
|
|
25
31
|
"devDependencies": {
|
|
26
|
-
"@
|
|
32
|
+
"@hey-api/openapi-ts": "^0.99.0",
|
|
27
33
|
"@types/node": "^20.0.0",
|
|
28
|
-
"@
|
|
34
|
+
"@typescript-eslint/utils": "8.60.0",
|
|
35
|
+
"eslint": "^9.39.4",
|
|
36
|
+
"superjson": "^2.2.6",
|
|
29
37
|
"typescript": "^5.5.0",
|
|
38
|
+
"typescript-eslint": "^8.60.0",
|
|
30
39
|
"vitest": "^3.0.0"
|
|
31
40
|
},
|
|
32
41
|
"engines": {
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
type HookEvent = Record<string, unknown>;
|
|
2
|
-
type SessionFields = Record<string, string>;
|
|
3
|
-
type AdapterOutput = {
|
|
4
|
-
readonly sessionFields: SessionFields;
|
|
5
|
-
readonly priorAssistant: string | null;
|
|
6
|
-
readonly usesTranscript: boolean;
|
|
7
|
-
};
|
|
8
|
-
declare const adaptAgentEvent: (agent: string | undefined, event: HookEvent, transcriptLines: readonly string[]) => AdapterOutput;
|
|
9
|
-
export { adaptAgentEvent };
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { parseTranscript } from "./parse-transcript.js";
|
|
2
|
-
const str = (v) => typeof v === "string" && v ? v : null;
|
|
3
|
-
const adaptAgentEvent = (agent, event, transcriptLines) => {
|
|
4
|
-
if (agent === "cursor") {
|
|
5
|
-
const fields = {};
|
|
6
|
-
const model = str(event.model);
|
|
7
|
-
if (model)
|
|
8
|
-
fields.model = model;
|
|
9
|
-
return {
|
|
10
|
-
sessionFields: fields,
|
|
11
|
-
priorAssistant: null,
|
|
12
|
-
usesTranscript: false,
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
if (agent === "codex" || agent === "pi" || agent === "jcode") {
|
|
16
|
-
const fields = {};
|
|
17
|
-
const model = str(event.model);
|
|
18
|
-
if (model)
|
|
19
|
-
fields.model = model;
|
|
20
|
-
const permissionMode = str(event.permission_mode);
|
|
21
|
-
if (permissionMode)
|
|
22
|
-
fields.permissionMode = permissionMode;
|
|
23
|
-
const source = str(event.source);
|
|
24
|
-
if (source)
|
|
25
|
-
fields.source = source;
|
|
26
|
-
return {
|
|
27
|
-
sessionFields: fields,
|
|
28
|
-
priorAssistant: typeof event.last_assistant_message === "string"
|
|
29
|
-
? event.last_assistant_message
|
|
30
|
-
: null,
|
|
31
|
-
usesTranscript: false,
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
const { priorAssistant } = parseTranscript(transcriptLines);
|
|
35
|
-
const fields = {};
|
|
36
|
-
const permissionMode = str(event.permission_mode);
|
|
37
|
-
if (permissionMode)
|
|
38
|
-
fields.permissionMode = permissionMode;
|
|
39
|
-
const source = str(event.source);
|
|
40
|
-
if (source)
|
|
41
|
-
fields.source = source;
|
|
42
|
-
return {
|
|
43
|
-
sessionFields: fields,
|
|
44
|
-
priorAssistant,
|
|
45
|
-
usesTranscript: true,
|
|
46
|
-
};
|
|
47
|
-
};
|
|
48
|
-
export { adaptAgentEvent };
|
|
49
|
-
//# sourceMappingURL=agent-adapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent-adapter.js","sourceRoot":"","sources":["../../src/_utils/agent-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAUxD,MAAM,GAAG,GAAG,CAAC,CAAU,EAAiB,EAAE,CACxC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAExC,MAAM,eAAe,GAAG,CACtB,KAAyB,EACzB,KAAgB,EAChB,eAAkC,EACnB,EAAE;IACjB,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,MAAM,MAAM,GAAkB,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,KAAK;YAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QAChC,OAAO;YACL,aAAa,EAAE,MAAM;YACrB,cAAc,EAAE,IAAI;YACpB,cAAc,EAAE,KAAK;SACtB,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QAC7D,MAAM,MAAM,GAAkB,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,KAAK;YAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QAChC,MAAM,cAAc,GAAG,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAClD,IAAI,cAAc;YAAE,MAAM,CAAC,cAAc,GAAG,cAAc,CAAC;QAC3D,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,MAAM;YAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QACnC,OAAO;YACL,aAAa,EAAE,MAAM;YACrB,cAAc,EACZ,OAAO,KAAK,CAAC,sBAAsB,KAAK,QAAQ;gBAC9C,CAAC,CAAC,KAAK,CAAC,sBAAsB;gBAC9B,CAAC,CAAC,IAAI;YACV,cAAc,EAAE,KAAK;SACtB,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,cAAc,EAAE,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,MAAM,cAAc,GAAG,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAClD,IAAI,cAAc;QAAE,MAAM,CAAC,cAAc,GAAG,cAAc,CAAC;IAC3D,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,MAAM;QAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;IACnC,OAAO;QACL,aAAa,EAAE,MAAM;QACrB,cAAc;QACd,cAAc,EAAE,IAAI;KACrB,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
declare const PI_PLUGIN_SOURCE = "git:github.com/Glen-Web-App/glen-pi-plugin";
|
|
2
|
-
type Agent = {
|
|
3
|
-
readonly name: string;
|
|
4
|
-
readonly bin: "claude" | "codex" | "pi";
|
|
5
|
-
readonly steps: readonly (readonly string[])[];
|
|
6
|
-
readonly updateSteps: readonly (readonly string[])[];
|
|
7
|
-
readonly postInstall: "claude" | "codex" | "pi";
|
|
8
|
-
};
|
|
9
|
-
declare const AGENTS: readonly Agent[];
|
|
10
|
-
export { AGENTS, PI_PLUGIN_SOURCE };
|
|
11
|
-
export type { Agent };
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
// Steps run in order; a failed step (e.g. marketplace already added) must not block the rest.
|
|
2
|
-
const PI_PLUGIN_SOURCE = "git:github.com/Glen-Web-App/glen-pi-plugin";
|
|
3
|
-
const AGENTS = [
|
|
4
|
-
{
|
|
5
|
-
name: "Claude Code",
|
|
6
|
-
bin: "claude",
|
|
7
|
-
steps: [
|
|
8
|
-
["plugin", "marketplace", "add", "Glen-Web-App/glen-claude-code-plugin"],
|
|
9
|
-
["plugin", "install", "glen@glen"],
|
|
10
|
-
],
|
|
11
|
-
updateSteps: [["plugin", "update", "glen@glen"]],
|
|
12
|
-
postInstall: "claude",
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
name: "Codex",
|
|
16
|
-
bin: "codex",
|
|
17
|
-
steps: [
|
|
18
|
-
["plugin", "marketplace", "add", "Glen-Web-App/glen-codex-plugin"],
|
|
19
|
-
// codex requires the <plugin>@<marketplace> form (or --marketplace);
|
|
20
|
-
// a bare "glen" fails with "plugin requires --marketplace".
|
|
21
|
-
["plugin", "add", "glen@glen"],
|
|
22
|
-
],
|
|
23
|
-
updateSteps: [["plugin", "marketplace", "upgrade", "glen"]],
|
|
24
|
-
postInstall: "codex",
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
name: "Pi",
|
|
28
|
-
bin: "pi",
|
|
29
|
-
steps: [["install", PI_PLUGIN_SOURCE]],
|
|
30
|
-
updateSteps: [["update", PI_PLUGIN_SOURCE]],
|
|
31
|
-
postInstall: "pi",
|
|
32
|
-
},
|
|
33
|
-
];
|
|
34
|
-
export { AGENTS, PI_PLUGIN_SOURCE };
|
|
35
|
-
//# sourceMappingURL=agents-table.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agents-table.js","sourceRoot":"","sources":["../../src/_utils/agents-table.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,MAAM,gBAAgB,GAAG,4CAA4C,CAAC;AAUtE,MAAM,MAAM,GAAqB;IAC/B;QACE,IAAI,EAAE,aAAa;QACnB,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE;YACL,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,sCAAsC,CAAC;YACxE,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC;SACnC;QACD,WAAW,EAAE,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;QAChD,WAAW,EAAE,QAAQ;KACtB;IACD;QACE,IAAI,EAAE,OAAO;QACb,GAAG,EAAE,OAAO;QACZ,KAAK,EAAE;YACL,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,gCAAgC,CAAC;YAClE,qEAAqE;YACrE,4DAA4D;YAC5D,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC;SAC/B;QACD,WAAW,EAAE,CAAC,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC3D,WAAW,EAAE,OAAO;KACrB;IACD;QACE,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,IAAI;QACT,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QACtC,WAAW,EAAE,CAAC,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QAC3C,WAAW,EAAE,IAAI;KAClB;CACF,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { Segment } from "./transcript-turns.js";
|
|
2
|
-
type Message = {
|
|
3
|
-
readonly role: "user" | "assistant";
|
|
4
|
-
readonly content: string;
|
|
5
|
-
readonly segments?: readonly Segment[];
|
|
6
|
-
};
|
|
7
|
-
type TurnBodyParams = {
|
|
8
|
-
readonly sessionId: string;
|
|
9
|
-
readonly nextUserMessageIndex: number | string;
|
|
10
|
-
readonly messages?: readonly Message[];
|
|
11
|
-
readonly prompt?: string;
|
|
12
|
-
readonly priorAssistant?: string | null;
|
|
13
|
-
readonly additionalContext?: Record<string, unknown>;
|
|
14
|
-
readonly hookEvent?: "UserPromptSubmit" | "Stop";
|
|
15
|
-
};
|
|
16
|
-
declare const buildTurnBody: (params: TurnBodyParams) => Record<string, unknown>;
|
|
17
|
-
export { buildTurnBody };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build-turn-body.js","sourceRoot":"","sources":["../../src/_utils/build-turn-body.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAmBtD,MAAM,aAAa,GAAG,CAAC,MAAsB,EAA2B,EAAE,CAAC,CAAC;IAC1E,cAAc,EAAE,MAAM,CAAC,SAAS;IAChC,cAAc,EAAE,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,oBAAoB,CAAC;IAC7E,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI;QAC3B,GAAG,CAAC,MAAM,CAAC,cAAc;YACvB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC;YACzD,CAAC,CAAC,EAAE,CAAC;QACP,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE;KAC/C;IACD,GAAG,CAAC,MAAM,CAAC,iBAAiB,KAAK,SAAS;QACxC,CAAC,CAAC,EAAE,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,EAAE;QACjD,CAAC,CAAC,EAAE,CAAC;IACP,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;CAC3E,CAAC,CAAC;AAEH,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
type CliError = {
|
|
2
|
-
readonly what: string;
|
|
3
|
-
readonly why?: string;
|
|
4
|
-
readonly path?: string;
|
|
5
|
-
readonly httpStatus?: number;
|
|
6
|
-
readonly remedy: string;
|
|
7
|
-
};
|
|
8
|
-
declare const cliErr: (e: CliError) => CliError;
|
|
9
|
-
declare const causeOf: (e: unknown) => string;
|
|
10
|
-
declare const formatCliError: (e: CliError) => string;
|
|
11
|
-
export { cliErr, causeOf, formatCliError };
|
|
12
|
-
export type { CliError };
|
package/dist/_utils/cli-error.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
const cliErr = (e) => e;
|
|
2
|
-
const causeOf = (e) => {
|
|
3
|
-
if (typeof e === "string" && e.length > 0)
|
|
4
|
-
return e;
|
|
5
|
-
if (e instanceof Error) {
|
|
6
|
-
const code = e.code;
|
|
7
|
-
return code ? `${code}: ${e.message}` : e.message;
|
|
8
|
-
}
|
|
9
|
-
return "unknown error";
|
|
10
|
-
};
|
|
11
|
-
const formatCliError = (e) => {
|
|
12
|
-
const lines = [`✗ ${e.what}`];
|
|
13
|
-
if (e.why)
|
|
14
|
-
lines.push(` cause: ${e.why}`);
|
|
15
|
-
if (e.path)
|
|
16
|
-
lines.push(` path: ${e.path}`);
|
|
17
|
-
lines.push(` → ${e.remedy}`);
|
|
18
|
-
return `${lines.join("\n")}\n`;
|
|
19
|
-
};
|
|
20
|
-
export { cliErr, causeOf, formatCliError };
|
|
21
|
-
//# sourceMappingURL=cli-error.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli-error.js","sourceRoot":"","sources":["../../src/_utils/cli-error.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,GAAG,CAAC,CAAW,EAAY,EAAE,CAAC,CAAC,CAAC;AAE5C,MAAM,OAAO,GAAG,CAAC,CAAU,EAAU,EAAE;IACrC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IACpD,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;QACvB,MAAM,IAAI,GAAI,CAA2B,CAAC,IAAI,CAAC;QAC/C,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACpD,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,CAAW,EAAU,EAAE;IAC7C,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9B,IAAI,CAAC,CAAC,GAAG;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,CAAC,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7C,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9B,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,CAAC,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { type Result } from "./result.js";
|
|
2
|
-
type CodexHookEntry = {
|
|
3
|
-
readonly key: string;
|
|
4
|
-
readonly command: string;
|
|
5
|
-
readonly source: string;
|
|
6
|
-
readonly currentHash: string;
|
|
7
|
-
readonly trustStatus: string;
|
|
8
|
-
};
|
|
9
|
-
declare const listCodexHooks: (cwd: string) => Promise<Result<CodexHookEntry[], string>>;
|
|
10
|
-
export { listCodexHooks };
|
|
11
|
-
export type { CodexHookEntry };
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import { spawn } from "node:child_process";
|
|
2
|
-
import { findBin } from "./find-bin.js";
|
|
3
|
-
import { err, ok } from "./result.js";
|
|
4
|
-
import { cliVersion } from "./version.js";
|
|
5
|
-
const TIMEOUT_MS = 15_000;
|
|
6
|
-
const extractEntries = (msg) => {
|
|
7
|
-
const result = msg.result;
|
|
8
|
-
if (!result || !Array.isArray(result.data))
|
|
9
|
-
return null;
|
|
10
|
-
const entries = [];
|
|
11
|
-
for (const item of result.data) {
|
|
12
|
-
if (!Array.isArray(item.hooks))
|
|
13
|
-
continue;
|
|
14
|
-
for (const h of item.hooks) {
|
|
15
|
-
if (typeof h.key === "string" &&
|
|
16
|
-
typeof h.command === "string" &&
|
|
17
|
-
typeof h.source === "string" &&
|
|
18
|
-
typeof h.currentHash === "string" &&
|
|
19
|
-
typeof h.trustStatus === "string") {
|
|
20
|
-
entries.push({
|
|
21
|
-
key: h.key,
|
|
22
|
-
command: h.command,
|
|
23
|
-
source: h.source,
|
|
24
|
-
currentHash: h.currentHash,
|
|
25
|
-
trustStatus: h.trustStatus,
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
return entries;
|
|
31
|
-
};
|
|
32
|
-
const rpc = (id, method, params) => `${JSON.stringify({ jsonrpc: "2.0", id, method, params })}\n`;
|
|
33
|
-
const listCodexHooks = (cwd) => new Promise((resolve) => {
|
|
34
|
-
const child = spawn(findBin("codex") ?? "codex", ["app-server"], {
|
|
35
|
-
stdio: ["pipe", "pipe", "ignore"],
|
|
36
|
-
});
|
|
37
|
-
const finish = (r) => {
|
|
38
|
-
clearTimeout(timer);
|
|
39
|
-
child.kill();
|
|
40
|
-
resolve(r);
|
|
41
|
-
};
|
|
42
|
-
const timer = setTimeout(() => finish(err("codex app-server timed out")), TIMEOUT_MS);
|
|
43
|
-
child.on("error", () => finish(err("could not spawn codex app-server")));
|
|
44
|
-
child.on("close", () => finish(err("codex app-server exited before answering")));
|
|
45
|
-
// A child that dies instantly closes stdin before our deferred write —
|
|
46
|
-
// without a listener that EPIPE crashes the process ('close' resolves err).
|
|
47
|
-
child.stdin.on("error", () => { });
|
|
48
|
-
const state = { buf: "" };
|
|
49
|
-
child.stdout.on("data", (chunk) => {
|
|
50
|
-
state.buf += chunk.toString();
|
|
51
|
-
const lines = state.buf.split("\n");
|
|
52
|
-
state.buf = lines.pop() ?? "";
|
|
53
|
-
for (const line of lines) {
|
|
54
|
-
if (line.trim() === "")
|
|
55
|
-
continue;
|
|
56
|
-
const parsed = (() => {
|
|
57
|
-
try {
|
|
58
|
-
return JSON.parse(line);
|
|
59
|
-
}
|
|
60
|
-
catch {
|
|
61
|
-
return null;
|
|
62
|
-
}
|
|
63
|
-
})();
|
|
64
|
-
if (!parsed || typeof parsed !== "object")
|
|
65
|
-
continue;
|
|
66
|
-
const id = parsed.id;
|
|
67
|
-
const rpcError = parsed.error;
|
|
68
|
-
if ((id === 1 || id === 2) && rpcError) {
|
|
69
|
-
const msg = typeof rpcError.message === "string"
|
|
70
|
-
? rpcError.message
|
|
71
|
-
: "unknown error";
|
|
72
|
-
finish(err(`codex app-server error: ${msg}`));
|
|
73
|
-
continue;
|
|
74
|
-
}
|
|
75
|
-
if (id === 1) {
|
|
76
|
-
child.stdin.write(rpc(2, "hooks/list", { cwds: [cwd] }));
|
|
77
|
-
}
|
|
78
|
-
if (id === 2) {
|
|
79
|
-
const entries = extractEntries(parsed);
|
|
80
|
-
finish(entries ? ok(entries) : err("unexpected hooks/list response shape"));
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
// Defer the handshake one microtask so an immediate spawn failure
|
|
85
|
-
// (ENOENT — codex not installed) wins the race and resolves err before
|
|
86
|
-
// we start talking to a process that never existed.
|
|
87
|
-
queueMicrotask(() => {
|
|
88
|
-
child.stdin.write(rpc(1, "initialize", {
|
|
89
|
-
clientInfo: { name: "glen", title: "glen CLI", version: cliVersion },
|
|
90
|
-
}));
|
|
91
|
-
});
|
|
92
|
-
});
|
|
93
|
-
export { listCodexHooks };
|
|
94
|
-
//# sourceMappingURL=codex-app-server.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codex-app-server.js","sourceRoot":"","sources":["../../src/_utils/codex-app-server.ts"],"names":[],"mappings":"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"}
|