@tryglen/cli 0.36.0 → 0.36.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 +39 -27
- package/dist/_utils/agent-adapter.d.ts +0 -15
- package/dist/_utils/agent-adapter.js +0 -20
- package/dist/_utils/agent-adapter.js.map +1 -1
- package/dist/_utils/agents-table.js +1 -9
- package/dist/_utils/agents-table.js.map +1 -1
- package/dist/_utils/cli-error.js +0 -3
- package/dist/_utils/cli-error.js.map +1 -1
- package/dist/_utils/codex-app-server.js +0 -2
- package/dist/_utils/codex-app-server.js.map +1 -1
- package/dist/_utils/codex-hooks-merge.js +0 -11
- package/dist/_utils/codex-hooks-merge.js.map +1 -1
- package/dist/_utils/codex-hooks-setup.js +0 -18
- package/dist/_utils/codex-hooks-setup.js.map +1 -1
- package/dist/_utils/codex-paths.js +0 -3
- package/dist/_utils/codex-paths.js.map +1 -1
- package/dist/_utils/codex-repair-trace.js +0 -3
- package/dist/_utils/codex-repair-trace.js.map +1 -1
- package/dist/_utils/codex-trust-toml.js +1 -9
- package/dist/_utils/codex-trust-toml.js.map +1 -1
- package/dist/_utils/collect-import-files.js +0 -7
- package/dist/_utils/collect-import-files.js.map +1 -1
- package/dist/_utils/config.js +0 -4
- package/dist/_utils/config.js.map +1 -1
- package/dist/_utils/confirm.js +2 -10
- package/dist/_utils/confirm.js.map +1 -1
- package/dist/_utils/credentials.js +0 -3
- package/dist/_utils/credentials.js.map +1 -1
- package/dist/_utils/detect-transcript-format.js +0 -7
- package/dist/_utils/detect-transcript-format.js.map +1 -1
- package/dist/_utils/ensure-global-cli.d.ts +0 -12
- package/dist/_utils/ensure-global-cli.js +1 -28
- package/dist/_utils/ensure-global-cli.js.map +1 -1
- package/dist/_utils/ephemeral-session.js +3 -24
- package/dist/_utils/ephemeral-session.js.map +1 -1
- package/dist/_utils/extract-claude-segments.js +1 -5
- package/dist/_utils/extract-claude-segments.js.map +1 -1
- package/dist/_utils/extract-codex-segments.js +0 -9
- package/dist/_utils/extract-codex-segments.js.map +1 -1
- package/dist/_utils/extract-pi-segments.js +1 -5
- package/dist/_utils/extract-pi-segments.js.map +1 -1
- package/dist/_utils/find-bin.js +0 -8
- package/dist/_utils/find-bin.js.map +1 -1
- package/dist/_utils/format-search-result.js +3 -19
- package/dist/_utils/format-search-result.js.map +1 -1
- package/dist/_utils/format-turn-nudges.js +2 -20
- package/dist/_utils/format-turn-nudges.js.map +1 -1
- package/dist/_utils/git-context.d.ts +0 -2
- package/dist/_utils/git-context.js +1 -33
- package/dist/_utils/git-context.js.map +1 -1
- package/dist/_utils/git-hook-setup.js +0 -1
- package/dist/_utils/git-hook-setup.js.map +1 -1
- package/dist/_utils/glen-headers.js +1 -4
- package/dist/_utils/glen-headers.js.map +1 -1
- package/dist/_utils/http.js +1 -8
- package/dist/_utils/http.js.map +1 -1
- package/dist/_utils/idempotency-key.js +1 -4
- package/dist/_utils/idempotency-key.js.map +1 -1
- package/dist/_utils/indicator-app.js +4 -26
- package/dist/_utils/indicator-app.js.map +1 -1
- package/dist/_utils/indicator-health.js +0 -6
- package/dist/_utils/indicator-health.js.map +1 -1
- package/dist/_utils/ingest-diagnosis.js +0 -5
- package/dist/_utils/ingest-diagnosis.js.map +1 -1
- package/dist/_utils/ingest-heartbeat.js +1 -6
- package/dist/_utils/ingest-heartbeat.js.map +1 -1
- package/dist/_utils/install-receipt.js +0 -3
- package/dist/_utils/install-receipt.js.map +1 -1
- package/dist/_utils/jcode-bundle.js +0 -7
- package/dist/_utils/jcode-bundle.js.map +1 -1
- package/dist/_utils/jcode-event.js +2 -18
- package/dist/_utils/jcode-event.js.map +1 -1
- package/dist/_utils/jcode-hook-lines.js +1 -5
- package/dist/_utils/jcode-hook-lines.js.map +1 -1
- package/dist/_utils/jcode-hooks-toml.js +1 -9
- package/dist/_utils/jcode-hooks-toml.js.map +1 -1
- package/dist/_utils/jcode-paths.js +0 -3
- package/dist/_utils/jcode-paths.js.map +1 -1
- package/dist/_utils/jcode-setup.js +0 -7
- package/dist/_utils/jcode-setup.js.map +1 -1
- package/dist/_utils/jcode-skills-sync.js +1 -6
- package/dist/_utils/jcode-skills-sync.js.map +1 -1
- package/dist/_utils/login-check.js +1 -4
- package/dist/_utils/login-check.js.map +1 -1
- package/dist/_utils/managed-block.js +0 -4
- package/dist/_utils/managed-block.js.map +1 -1
- package/dist/_utils/normalize-boolean-flags.js +2 -7
- package/dist/_utils/normalize-boolean-flags.js.map +1 -1
- package/dist/_utils/open-browser.js +1 -3
- package/dist/_utils/open-browser.js.map +1 -1
- package/dist/_utils/parse-claude-transcript.js +4 -24
- package/dist/_utils/parse-claude-transcript.js.map +1 -1
- package/dist/_utils/parse-codex-transcript.js +1 -22
- package/dist/_utils/parse-codex-transcript.js.map +1 -1
- package/dist/_utils/parse-cursor-db.js +2 -21
- package/dist/_utils/parse-cursor-db.js.map +1 -1
- package/dist/_utils/parse-jcode-session.js +0 -15
- package/dist/_utils/parse-jcode-session.js.map +1 -1
- package/dist/_utils/parse-pi-transcript.js +1 -35
- package/dist/_utils/parse-pi-transcript.js.map +1 -1
- package/dist/_utils/parse-transcript.js +1 -9
- package/dist/_utils/parse-transcript.js.map +1 -1
- package/dist/_utils/plugin-status.js +0 -19
- package/dist/_utils/plugin-status.js.map +1 -1
- package/dist/_utils/post-route.js +0 -7
- package/dist/_utils/post-route.js.map +1 -1
- package/dist/_utils/pr-review-link.js +0 -2
- package/dist/_utils/pr-review-link.js.map +1 -1
- package/dist/_utils/proactive-ticket-log.js +1 -11
- package/dist/_utils/proactive-ticket-log.js.map +1 -1
- package/dist/_utils/record-commit-anchor.js +1 -8
- package/dist/_utils/record-commit-anchor.js.map +1 -1
- package/dist/_utils/refresh-control-state.js +1 -7
- package/dist/_utils/refresh-control-state.js.map +1 -1
- package/dist/_utils/render-callback-page.js +0 -7
- package/dist/_utils/render-callback-page.js.map +1 -1
- package/dist/_utils/resolve-import-workspace.d.ts +0 -7
- package/dist/_utils/resolve-import-workspace.js +1 -13
- package/dist/_utils/resolve-import-workspace.js.map +1 -1
- package/dist/_utils/run-bin.js +0 -2
- package/dist/_utils/run-bin.js.map +1 -1
- package/dist/_utils/session-map.js +0 -5
- package/dist/_utils/session-map.js.map +1 -1
- package/dist/_utils/shell-profile.js +1 -28
- package/dist/_utils/shell-profile.js.map +1 -1
- package/dist/_utils/state-line-memo.d.ts +0 -6
- package/dist/_utils/state-line-memo.js +3 -18
- package/dist/_utils/state-line-memo.js.map +1 -1
- package/dist/_utils/state-line.js +0 -4
- package/dist/_utils/state-line.js.map +1 -1
- package/dist/_utils/state.js +0 -5
- package/dist/_utils/state.js.map +1 -1
- package/dist/_utils/sync-mode-from-server.d.ts +0 -18
- package/dist/_utils/sync-mode-from-server.js +2 -21
- package/dist/_utils/sync-mode-from-server.js.map +1 -1
- package/dist/_utils/transcript-turns.js +1 -51
- package/dist/_utils/transcript-turns.js.map +1 -1
- package/dist/_utils/turn-cache.js +1 -8
- package/dist/_utils/turn-cache.js.map +1 -1
- package/dist/_utils/update.d.ts +0 -10
- package/dist/_utils/update.js +8 -30
- package/dist/_utils/update.js.map +1 -1
- package/dist/_utils/version.js +3 -6
- package/dist/_utils/version.js.map +1 -1
- package/dist/_utils/which.d.ts +0 -5
- package/dist/_utils/which.js +0 -5
- package/dist/_utils/which.js.map +1 -1
- package/dist/_utils/write-commit-trailer.js +1 -5
- package/dist/_utils/write-commit-trailer.js.map +1 -1
- package/dist/bin.js +6 -25
- package/dist/bin.js.map +1 -1
- package/dist/commands/_utils/materialize-skill.js +4 -34
- package/dist/commands/_utils/materialize-skill.js.map +1 -1
- package/dist/commands/_utils/pack-skill-dir.js +6 -27
- package/dist/commands/_utils/pack-skill-dir.js.map +1 -1
- package/dist/commands/artifact.js +2 -5
- package/dist/commands/artifact.js.map +1 -1
- package/dist/commands/code-search.js +0 -6
- package/dist/commands/code-search.js.map +1 -1
- package/dist/commands/doctor.d.ts +0 -17
- package/dist/commands/doctor.js +15 -79
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/feedback.js +2 -10
- package/dist/commands/feedback.js.map +1 -1
- package/dist/commands/git-hooks.js +0 -3
- package/dist/commands/git-hooks.js.map +1 -1
- package/dist/commands/import.js +5 -27
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/incognito.d.ts +0 -5
- package/dist/commands/incognito.js +0 -5
- package/dist/commands/incognito.js.map +1 -1
- package/dist/commands/indicator.d.ts +0 -1
- package/dist/commands/indicator.js +0 -1
- package/dist/commands/indicator.js.map +1 -1
- package/dist/commands/ingest.js +37 -111
- package/dist/commands/ingest.js.map +1 -1
- package/dist/commands/install.js +7 -93
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/invite.d.ts +0 -6
- package/dist/commands/invite.js +0 -16
- package/dist/commands/invite.js.map +1 -1
- package/dist/commands/login.js +0 -15
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/onboard.js +0 -6
- package/dist/commands/onboard.js.map +1 -1
- package/dist/commands/org.js +0 -2
- package/dist/commands/org.js.map +1 -1
- package/dist/commands/pr-link.js +2 -15
- package/dist/commands/pr-link.js.map +1 -1
- package/dist/commands/search.js +0 -5
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/session-start.d.ts +0 -21
- package/dist/commands/session-start.js +6 -65
- package/dist/commands/session-start.js.map +1 -1
- package/dist/commands/set-mode.d.ts +0 -6
- package/dist/commands/set-mode.js +2 -12
- package/dist/commands/set-mode.js.map +1 -1
- package/dist/commands/skill.js +5 -35
- package/dist/commands/skill.js.map +1 -1
- package/dist/commands/statusline.d.ts +0 -13
- package/dist/commands/statusline.js +0 -15
- package/dist/commands/statusline.js.map +1 -1
- package/dist/commands/suggestions.d.ts +0 -6
- package/dist/commands/suggestions.js +0 -7
- package/dist/commands/suggestions.js.map +1 -1
- package/dist/commands/takeover/_utils/agent-paths.js +2 -3
- package/dist/commands/takeover/_utils/agent-paths.js.map +1 -1
- package/dist/commands/takeover/_utils/cursor-store.js +1 -3
- package/dist/commands/takeover/_utils/cursor-store.js.map +1 -1
- package/dist/commands/takeover/_utils/write-codex-desktop-session.js +1 -4
- package/dist/commands/takeover/_utils/write-codex-desktop-session.js.map +1 -1
- package/dist/commands/takeover/_utils/write-codex-session.js +1 -2
- package/dist/commands/takeover/_utils/write-codex-session.js.map +1 -1
- package/dist/commands/uninstall.d.ts +0 -1
- package/dist/commands/uninstall.js +3 -7
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/commands/update.d.ts +0 -10
- package/dist/commands/update.js +4 -32
- package/dist/commands/update.js.map +1 -1
- package/dist/jcode/plugin.json +1 -1
- package/package.json +1 -1
|
@@ -33,7 +33,6 @@ const writeCredentials = async (creds) => {
|
|
|
33
33
|
const mkdirResult = await fromPromise(mkdir(dir, { recursive: true, mode: 0o700 }));
|
|
34
34
|
if (!mkdirResult.ok)
|
|
35
35
|
return mkdirResult;
|
|
36
|
-
// pid-suffixed so concurrent writers never clobber each other's tmp file.
|
|
37
36
|
const tmpPath = `${filePath}.${process.pid}.tmp`;
|
|
38
37
|
const json = JSON.stringify(creds, null, 2);
|
|
39
38
|
const writeResult = await fromPromise(writeFile(tmpPath, json, { mode: 0o600 }));
|
|
@@ -47,8 +46,6 @@ const writeCredentials = async (creds) => {
|
|
|
47
46
|
return renameResult;
|
|
48
47
|
return { ok: true, value: undefined };
|
|
49
48
|
};
|
|
50
|
-
// ENOENT counts as success (nothing to clear); any other failure is returned
|
|
51
|
-
// so the caller can tell the user the file is still on disk.
|
|
52
49
|
const clearCredentials = async () => {
|
|
53
50
|
const r = await fromPromise(unlink(credentialsPath()));
|
|
54
51
|
if (!r.ok && r.error.code !== "ENOENT")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/_utils/credentials.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,KAAK,EACL,QAAQ,EACR,MAAM,EACN,MAAM,EACN,SAAS,GACV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAK1C,MAAM,eAAe,GAAG,GAAW,EAAE;IACnC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IAClD,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAC5B,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC;AACtD,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,KAAK,IAAiC,EAAE;IAC9D,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9D,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAY,CAAC,CACrD,CAAC;IACF,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC;IAC1B,IACE,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,KAAK,IAAI;QACb,MAAM,IAAI,IAAI;QACd,KAAK,IAAI,IAAI;QACZ,IAA0B,CAAC,IAAI,KAAK,QAAQ;QAC7C,OAAQ,IAAyB,CAAC,GAAG,KAAK,QAAQ,EAClD,CAAC;QACD,OAAO,IAAmB,CAAC;IAC7B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,KAAK,EAC5B,KAAkB,EACc,EAAE;IAClC,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;IACnC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE9B,MAAM,WAAW,GAAG,MAAM,WAAW,CACnC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAC7C,CAAC;IACF,IAAI,CAAC,WAAW,CAAC,EAAE;QAAE,OAAO,WAAW,CAAC;IAExC,
|
|
1
|
+
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/_utils/credentials.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,KAAK,EACL,QAAQ,EACR,MAAM,EACN,MAAM,EACN,SAAS,GACV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAK1C,MAAM,eAAe,GAAG,GAAW,EAAE;IACnC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IAClD,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAC5B,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC;AACtD,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,KAAK,IAAiC,EAAE;IAC9D,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9D,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAY,CAAC,CACrD,CAAC;IACF,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC;IAC1B,IACE,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,KAAK,IAAI;QACb,MAAM,IAAI,IAAI;QACd,KAAK,IAAI,IAAI;QACZ,IAA0B,CAAC,IAAI,KAAK,QAAQ;QAC7C,OAAQ,IAAyB,CAAC,GAAG,KAAK,QAAQ,EAClD,CAAC;QACD,OAAO,IAAmB,CAAC;IAC7B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,KAAK,EAC5B,KAAkB,EACc,EAAE;IAClC,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;IACnC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE9B,MAAM,WAAW,GAAG,MAAM,WAAW,CACnC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAC7C,CAAC;IACF,IAAI,CAAC,WAAW,CAAC,EAAE;QAAE,OAAO,WAAW,CAAC;IAExC,MAAM,OAAO,GAAG,GAAG,QAAQ,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC;IACjD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE5C,MAAM,WAAW,GAAG,MAAM,WAAW,CACnC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAC1C,CAAC;IACF,IAAI,CAAC,WAAW,CAAC,EAAE;QAAE,OAAO,WAAW,CAAC;IAExC,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IAC7D,IAAI,CAAC,WAAW,CAAC,EAAE;QAAE,OAAO,WAAW,CAAC;IAExC,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAClE,IAAI,CAAC,YAAY,CAAC,EAAE;QAAE,OAAO,YAAY,CAAC;IAE1C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AACxC,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,KAAK,IAAoC,EAAE;IAClE,MAAM,CAAC,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;IACvD,IAAI,CAAC,CAAC,CAAC,EAAE,IAAK,CAAC,CAAC,KAA+B,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC;IAC5E,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AACxC,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,KAAK,IAGrB,EAAE;IACV,MAAM,KAAK,GAAG,MAAM,eAAe,EAAE,CAAC;IACtC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;AAC7D,CAAC,CAAC;AAEF,OAAO,EACL,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,GAClB,CAAC"}
|
|
@@ -16,13 +16,6 @@ const CODEX_ENVELOPE_TYPES = new Set([
|
|
|
16
16
|
"turn_context",
|
|
17
17
|
"compacted",
|
|
18
18
|
]);
|
|
19
|
-
// Sniff which agent wrote a transcript file. Cursor is identified by its
|
|
20
|
-
// SQLite container; the JSONL formats are told apart by their envelopes:
|
|
21
|
-
// Claude Code lines carry uuid/parentUuid tree fields, Codex rollout lines a
|
|
22
|
-
// {timestamp, type, payload} wrapper (or, pre-envelope, bare Responses-API
|
|
23
|
-
// message items with input_text/output_text parts), and pi session files a
|
|
24
|
-
// {type:"session", version, cwd} header plus id/parentId entries wrapping a
|
|
25
|
-
// nested message object.
|
|
26
19
|
const detectTranscriptFormat = (filePath, sampleLines) => {
|
|
27
20
|
if (filePath.endsWith(".vscdb"))
|
|
28
21
|
return "cursor";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect-transcript-format.js","sourceRoot":"","sources":["../../src/_utils/detect-transcript-format.ts"],"names":[],"mappings":"AAEA,MAAM,SAAS,GAAG,CAAC,IAAY,EAAgB,EAAE;IAC/C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;QAC3C,OAAO,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;YAClD,CAAC,CAAE,MAAgB;YACnB,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACnC,cAAc;IACd,eAAe;IACf,WAAW;IACX,cAAc;IACd,WAAW;CACZ,CAAC,CAAC;AAEH,
|
|
1
|
+
{"version":3,"file":"detect-transcript-format.js","sourceRoot":"","sources":["../../src/_utils/detect-transcript-format.ts"],"names":[],"mappings":"AAEA,MAAM,SAAS,GAAG,CAAC,IAAY,EAAgB,EAAE;IAC/C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;QAC3C,OAAO,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;YAClD,CAAC,CAAE,MAAgB;YACnB,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACnC,cAAc;IACd,eAAe;IACf,WAAW;IACX,cAAc;IACd,WAAW;CACZ,CAAC,CAAC;AAEH,MAAM,sBAAsB,GAAG,CAC7B,QAAgB,EAChB,WAA8B,EAC8B,EAAE;IAC9D,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IACjD,OAAO,CACL,WAAW;SACR,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;SACZ,GAAG,CAAC,SAAS,CAAC;SACd,MAAM,CAAC,CAAC,CAAC,EAAc,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;SACrC,GAAG,CAAC,CAAC,CAAC,EAAyC,EAAE;QAChD,IAAI,YAAY,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC;YAAE,OAAO,aAAa,CAAC;QAC/D,IACE,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ;YAC/B,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;YAErE,OAAO,aAAa,CAAC;QACvB,IACE,CAAC,CAAC,IAAI,KAAK,SAAS;YACpB,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;YAC7B,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ;YAEzB,OAAO,IAAI,CAAC;QACd,IACE,CAAC,CAAC,IAAI,KAAK,SAAS;YACpB,UAAU,IAAI,CAAC;YACf,CAAC,CAAC,OAAO,KAAK,IAAI;YAClB,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;YAE7B,OAAO,IAAI,CAAC;QACd,IACE,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;YAC1B,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YAChC,SAAS,IAAI,CAAC;YAEd,OAAO,OAAO,CAAC;QACjB,IACE,CAAC,CAAC,IAAI,KAAK,SAAS;YACpB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;YACxB,CAAC,CAAC,OAAO,CAAC,IAAI,CACZ,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,KAAK,IAAI;gBACV,OAAO,CAAC,KAAK,QAAQ;gBACrB,CAAE,CAAW,CAAC,IAAI,KAAK,YAAY;oBAChC,CAAW,CAAC,IAAI,KAAK,aAAa,CAAC,CACzC;YAED,OAAO,OAAO,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CACnC,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
|
|
@@ -11,17 +11,5 @@ type Outcome = {
|
|
|
11
11
|
readonly permission: boolean;
|
|
12
12
|
readonly hadExisting: boolean;
|
|
13
13
|
};
|
|
14
|
-
/**
|
|
15
|
-
* Make sure a current, PERSISTENT `glen` binary is reachable on PATH,
|
|
16
|
-
* installing or updating it globally via npm when it isn't. `npx
|
|
17
|
-
* @tryglen/cli install` runs this CLI from npx's transient cache without ever
|
|
18
|
-
* linking a global binary — without this step the plugins' hooks would have
|
|
19
|
-
* no `glen` to call and silently do nothing. We deliberately ignore npx's own
|
|
20
|
-
* ephemeral shim (see persistentGlenPath) so a fresh machine always gets a
|
|
21
|
-
* real global install.
|
|
22
|
-
*
|
|
23
|
-
* `onInstallStart(hadExisting)` fires just before the (slow) npm install so
|
|
24
|
-
* the caller can print a progress line first.
|
|
25
|
-
*/
|
|
26
14
|
declare const ensureGlobalCli: (onInstallStart?: (hadExisting: boolean) => void) => Outcome;
|
|
27
15
|
export { ensureGlobalCli };
|
|
@@ -4,11 +4,7 @@ import { basename, dirname, isAbsolute, join } from "node:path";
|
|
|
4
4
|
import { newer } from "./update.js";
|
|
5
5
|
import { cliVersion } from "./version.js";
|
|
6
6
|
import { isInstalled } from "./which.js";
|
|
7
|
-
//
|
|
8
|
-
// path (`…/_npx/…`, the cheap fast path) or by its resolved realpath (a
|
|
9
|
-
// symlink on PATH that points into the npx cache). npx runs this CLI from
|
|
10
|
-
// such a shim, which vanishes on exit; treating it as a real global would
|
|
11
|
-
// skip the global install a fresh machine needs.
|
|
7
|
+
// npx runs this CLI from a shim that vanishes on exit; counting it as a real global would skip the install a fresh machine needs.
|
|
12
8
|
const isEphemeralRunnerPath = (candidate) => {
|
|
13
9
|
if (candidate.includes("/_npx/"))
|
|
14
10
|
return true;
|
|
@@ -19,14 +15,6 @@ const isEphemeralRunnerPath = (candidate) => {
|
|
|
19
15
|
return false;
|
|
20
16
|
}
|
|
21
17
|
};
|
|
22
|
-
/**
|
|
23
|
-
* Path to a PERSISTENT global `glen` on PATH, or null when the only matches
|
|
24
|
-
* are npx's transient shims. `npx @tryglen/cli install` runs this CLI from
|
|
25
|
-
* `~/.npm/_npx/<hash>/…/glen`, on PATH *only* while npx runs — it vanishes on
|
|
26
|
-
* exit, leaving the agents' hooks (which call bare `glen`) with nothing to
|
|
27
|
-
* run. We list every PATH match with `which -a` and ignore any ephemeral
|
|
28
|
-
* runner shim (by literal path or resolved realpath).
|
|
29
|
-
*/
|
|
30
18
|
const persistentGlenPath = () => {
|
|
31
19
|
try {
|
|
32
20
|
const out = execFileSync("which", ["-a", "glen"], {
|
|
@@ -42,7 +30,6 @@ const persistentGlenPath = () => {
|
|
|
42
30
|
return null;
|
|
43
31
|
}
|
|
44
32
|
};
|
|
45
|
-
/** Version reported by the `glen` at `glenPath`, or null when unreadable. */
|
|
46
33
|
const versionAt = (glenPath) => {
|
|
47
34
|
try {
|
|
48
35
|
const out = execFileSync(glenPath, ["--version"], {
|
|
@@ -98,24 +85,10 @@ const installGlobally = (target) => {
|
|
|
98
85
|
};
|
|
99
86
|
}
|
|
100
87
|
};
|
|
101
|
-
/**
|
|
102
|
-
* Make sure a current, PERSISTENT `glen` binary is reachable on PATH,
|
|
103
|
-
* installing or updating it globally via npm when it isn't. `npx
|
|
104
|
-
* @tryglen/cli install` runs this CLI from npx's transient cache without ever
|
|
105
|
-
* linking a global binary — without this step the plugins' hooks would have
|
|
106
|
-
* no `glen` to call and silently do nothing. We deliberately ignore npx's own
|
|
107
|
-
* ephemeral shim (see persistentGlenPath) so a fresh machine always gets a
|
|
108
|
-
* real global install.
|
|
109
|
-
*
|
|
110
|
-
* `onInstallStart(hadExisting)` fires just before the (slow) npm install so
|
|
111
|
-
* the caller can print a progress line first.
|
|
112
|
-
*/
|
|
113
88
|
const ensureGlobalCli = (onInstallStart) => {
|
|
114
89
|
const existing = persistentGlenPath();
|
|
115
90
|
if (existing) {
|
|
116
91
|
const version = versionAt(existing);
|
|
117
|
-
// Up to date (or ahead, e.g. a dev build) — nothing to do. A stale or
|
|
118
|
-
// unreadable version falls through to a reinstall.
|
|
119
92
|
if (version && !newer(cliVersion, version))
|
|
120
93
|
return { status: "present" };
|
|
121
94
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensure-global-cli.js","sourceRoot":"","sources":["../../src/_utils/ensure-global-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"ensure-global-cli.js","sourceRoot":"","sources":["../../src/_utils/ensure-global-cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +1,6 @@
|
|
|
1
|
-
//
|
|
2
|
-
//
|
|
3
|
-
//
|
|
4
|
-
// into the spawned thread's streamed output — a parent orchestrator reads
|
|
5
|
-
// them as a fake system directive in the thread's "result" and voids the
|
|
6
|
-
// run — and ingesting them floods team memory with one-shot machine turns
|
|
7
|
-
// (July 7 2026 Composio incident: 69 junk conversations in one night).
|
|
8
|
-
//
|
|
9
|
-
// SIGNAL — empirically verified on Codex 0.143.0 (see the harness in the PR
|
|
10
|
-
// description). The `ephemeral` flag is a `thread/start` PARAMETER; it does
|
|
11
|
-
// NOT propagate into the hook payload, so we can't read it. What DOES differ
|
|
12
|
-
// is `transcript_path`:
|
|
13
|
-
// - normal Codex session (codex exec, app-server ephemeral:false) → a real
|
|
14
|
-
// rollout file path
|
|
15
|
-
// - ephemeral app-server thread (ephemeral:true, in-memory only) → null
|
|
16
|
-
// So for Codex, `transcript_path === null` is the reliable — and only —
|
|
17
|
-
// ephemeral marker. It is scoped to `agent === "codex"`: Claude Code always
|
|
18
|
-
// has a transcript file, and Cursor payloads legitimately carry a null
|
|
19
|
-
// transcript (gating them would wrongly silence Cursor).
|
|
20
|
-
//
|
|
21
|
-
// The check is `=== null` (present-and-null), never absent: an older Codex
|
|
22
|
-
// that omits the key entirely fails open to normal behavior. We also honor an
|
|
23
|
-
// explicit `ephemeral: true` from any agent, so a future harness that states
|
|
24
|
-
// it outright is covered without a code change.
|
|
1
|
+
// For Codex, transcript_path === null is the only ephemeral marker (the ephemeral flag isn't in the hook payload).
|
|
2
|
+
// Codex only: Cursor legitimately sends null transcripts. Check present-and-null so an older Codex without the key fails open.
|
|
3
|
+
// Injecting into ephemeral threads breaks the parent orchestrator; ingesting them floods memory with junk.
|
|
25
4
|
const isEphemeralSession = (agent, event) => {
|
|
26
5
|
if (!event)
|
|
27
6
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ephemeral-session.js","sourceRoot":"","sources":["../../src/_utils/ephemeral-session.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"ephemeral-session.js","sourceRoot":"","sources":["../../src/_utils/ephemeral-session.ts"],"names":[],"mappings":"AAAA,mHAAmH;AACnH,+HAA+H;AAC/H,2GAA2G;AAC3G,MAAM,kBAAkB,GAAG,CACzB,KAAyB,EACzB,KAAqC,EAC5B,EAAE;IACX,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC1C,OAAO,KAAK,KAAK,OAAO,IAAI,KAAK,CAAC,eAAe,KAAK,IAAI,CAAC;AAC7D,CAAC,CAAC;AAEF,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
const str = (v) => (typeof v === "string" ? v : "");
|
|
2
|
-
// A Claude tool_result's `content` is a string OR an array of {type:"text",text}
|
|
3
|
-
// blocks — flatten to a string projection.
|
|
4
2
|
const resultText = (content) => {
|
|
5
3
|
if (typeof content === "string")
|
|
6
4
|
return content;
|
|
@@ -35,11 +33,9 @@ const blockToSegment = (b) => {
|
|
|
35
33
|
},
|
|
36
34
|
};
|
|
37
35
|
default:
|
|
38
|
-
return null;
|
|
36
|
+
return null;
|
|
39
37
|
}
|
|
40
38
|
};
|
|
41
|
-
// Map one Claude message's content into ordered segments. A plain-string content
|
|
42
|
-
// (typical human prompt) becomes a single text segment.
|
|
43
39
|
export const extractClaudeSegments = (message) => {
|
|
44
40
|
const content = message.content;
|
|
45
41
|
if (typeof content === "string")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract-claude-segments.js","sourceRoot":"","sources":["../../src/_utils/extract-claude-segments.ts"],"names":[],"mappings":"AAIA,MAAM,GAAG,GAAG,CAAC,CAAU,EAAU,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAErE,
|
|
1
|
+
{"version":3,"file":"extract-claude-segments.js","sourceRoot":"","sources":["../../src/_utils/extract-claude-segments.ts"],"names":[],"mappings":"AAIA,MAAM,GAAG,GAAG,CAAC,CAAU,EAAU,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAErE,MAAM,UAAU,GAAG,CAAC,OAAgB,EAAU,EAAE;IAC9C,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAChD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QACxB,OAAO,OAAO;aACX,MAAM,CACL,CAAC,CAAC,EAAyB,EAAE,CAAC,OAAQ,CAAW,EAAE,IAAI,KAAK,QAAQ,CACrE;aACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAClB,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,CAAQ,EAAkB,EAAE;IAClD,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,MAAM;YACT,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,KAAK,UAAU;YACb,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrD,KAAK,UAAU;YACb,OAAO;gBACL,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CACzE,CAAC,EACD,GAAG,CACJ;gBACD,WAAW,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE;aACnE,CAAC;QACJ,KAAK,aAAa;YAChB,OAAO;gBACL,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;gBACzC,WAAW,EAAE;oBACX,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC;oBAC9B,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;oBAC7B,OAAO,EAAE,CAAC,CAAC,QAAQ,KAAK,IAAI;oBAC5B,GAAG,EAAE,CAAC;iBACP;aACF,CAAC;QACJ;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,OAAgC,EACrB,EAAE;IACb,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAU,CAAC,CAAC;SACtC,MAAM,CAAC,CAAC,CAAC,EAAgB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;AAC7C,CAAC,CAAC"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
const str = (v) => (typeof v === "string" ? v : "");
|
|
2
|
-
// A Responses-API message item's content: `input_text` (user) / `output_text`
|
|
3
|
-
// (assistant) parts are conversation text; other part kinds (images,
|
|
4
|
-
// refusals) are not.
|
|
5
2
|
const messageText = (content) => {
|
|
6
3
|
if (!Array.isArray(content))
|
|
7
4
|
return "";
|
|
@@ -14,8 +11,6 @@ const messageText = (content) => {
|
|
|
14
11
|
.map((p) => p.text)
|
|
15
12
|
.join("\n");
|
|
16
13
|
};
|
|
17
|
-
// A `reasoning` item carries either a flat `text` or a `summary` array of
|
|
18
|
-
// {text} parts, depending on Codex version.
|
|
19
14
|
const reasoningText = (item) => {
|
|
20
15
|
if (typeof item.text === "string")
|
|
21
16
|
return item.text;
|
|
@@ -28,10 +23,6 @@ const reasoningText = (item) => {
|
|
|
28
23
|
.join("\n");
|
|
29
24
|
return "";
|
|
30
25
|
};
|
|
31
|
-
// Map one Codex Responses-API item into ordered segments. `message` items
|
|
32
|
-
// yield a text segment; `reasoning` yields thinking; `function_call`/
|
|
33
|
-
// `function_call_output` yield tool_call/tool_result, keeping the raw item
|
|
34
|
-
// under jsonContent.raw so nothing is lost.
|
|
35
26
|
export const extractCodexSegments = (item) => {
|
|
36
27
|
switch (item.type) {
|
|
37
28
|
case "message": {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract-codex-segments.js","sourceRoot":"","sources":["../../src/_utils/extract-codex-segments.ts"],"names":[],"mappings":"AAIA,MAAM,GAAG,GAAG,CAAC,CAAU,EAAU,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAErE,
|
|
1
|
+
{"version":3,"file":"extract-codex-segments.js","sourceRoot":"","sources":["../../src/_utils/extract-codex-segments.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,13 +17,9 @@ const blockToSegment = (b) => {
|
|
|
17
17
|
},
|
|
18
18
|
};
|
|
19
19
|
default:
|
|
20
|
-
return null;
|
|
20
|
+
return null;
|
|
21
21
|
}
|
|
22
22
|
};
|
|
23
|
-
// Map one pi message's content into ordered segments. A plain-string content
|
|
24
|
-
// (typical human prompt) becomes a single text segment. Pi's toolResult/
|
|
25
|
-
// bashExecution are separate ENTRY types, not content blocks here — the
|
|
26
|
-
// parser lifts those onto the preceding assistant message's segments.
|
|
27
23
|
export const extractPiSegments = (message) => {
|
|
28
24
|
const content = message.content;
|
|
29
25
|
if (typeof content === "string")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract-pi-segments.js","sourceRoot":"","sources":["../../src/_utils/extract-pi-segments.ts"],"names":[],"mappings":"AAIA,MAAM,GAAG,GAAG,CAAC,CAAU,EAAU,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAErE,MAAM,cAAc,GAAG,CAAC,CAAQ,EAAkB,EAAE;IAClD,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,MAAM;YACT,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,KAAK,UAAU;YACb,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrD,KAAK,UAAU;YACb,OAAO;gBACL,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CACjF,CAAC,EACD,GAAG,CACJ;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;oBACjB,KAAK,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI;oBAC1B,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrB,GAAG,EAAE,CAAC;iBACP;aACF,CAAC;QACJ;YACE,OAAO,IAAI,CAAC
|
|
1
|
+
{"version":3,"file":"extract-pi-segments.js","sourceRoot":"","sources":["../../src/_utils/extract-pi-segments.ts"],"names":[],"mappings":"AAIA,MAAM,GAAG,GAAG,CAAC,CAAU,EAAU,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAErE,MAAM,cAAc,GAAG,CAAC,CAAQ,EAAkB,EAAE;IAClD,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,MAAM;YACT,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,KAAK,UAAU;YACb,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrD,KAAK,UAAU;YACb,OAAO;gBACL,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CACjF,CAAC,EACD,GAAG,CACJ;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;oBACjB,KAAK,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI;oBAC1B,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrB,GAAG,EAAE,CAAC;iBACP;aACF,CAAC;QACJ;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,OAAgC,EACrB,EAAE;IACb,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAU,CAAC,CAAC;SACtC,MAAM,CAAC,CAAC,CAAC,EAAgB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;AAC7C,CAAC,CAAC"}
|
package/dist/_utils/find-bin.js
CHANGED
|
@@ -28,10 +28,6 @@ const readOverrides = () => {
|
|
|
28
28
|
}
|
|
29
29
|
};
|
|
30
30
|
const BUNDLED_CODEX_PATH = "/Applications/ChatGPT.app/Contents/Resources/codex";
|
|
31
|
-
// Codex Desktop (the macOS ChatGPT app) bundles a full codex CLI inside the
|
|
32
|
-
// app bundle rather than on PATH. Checked as findBin's last resort so a
|
|
33
|
-
// user-installed CLI always wins; GLEN_CODEX_DESKTOP_BIN overrides for
|
|
34
|
-
// non-standard installs (same knob the desktop takeover flow honors).
|
|
35
31
|
const desktopAppBin = (bin) => {
|
|
36
32
|
if (bin !== "codex")
|
|
37
33
|
return null;
|
|
@@ -45,10 +41,6 @@ const WELL_KNOWN_DIRS = [
|
|
|
45
41
|
join(homedir(), ".local", "bin"),
|
|
46
42
|
join(homedir(), "bin"),
|
|
47
43
|
];
|
|
48
|
-
// Resolves an agent binary: persisted override → which → well-known macOS
|
|
49
|
-
// dirs → login-shell PATH probe. Returns null when nothing works — the
|
|
50
|
-
// caller owns the actionable "run `which codex` then
|
|
51
|
-
// `glen install --codex-path <path>`" message.
|
|
52
44
|
const findBin = (bin) => {
|
|
53
45
|
// Only simple binary names — guards the shell-interpolated login probe and dir joins.
|
|
54
46
|
if (!/^[A-Za-z0-9._-]+$/.test(bin))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find-bin.js","sourceRoot":"","sources":["../../src/_utils/find-bin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAe,WAAW,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,cAAc,GAAG,GAAW,EAAE,CAClC,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;AAE1E,MAAM,YAAY,GAAG,CAAC,CAAS,EAAW,EAAE;IAC1C,IAAI,CAAC;QACH,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,GAA2B,EAAE;IACjD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CACvB,YAAY,CAAC,cAAc,EAAE,EAAE,MAAM,CAAC,CAC5B,CAAC;QACb,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,EAAE,CAAC;QAC7D,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,EAAE,CAAC;QACrC,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,MAAiC,CAAC,CAAC,MAAM,CACtD,CAAC,CAAC,EAAyB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,CACvD,CACF,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,oDAAoD,CAAC;AAEhF,
|
|
1
|
+
{"version":3,"file":"find-bin.js","sourceRoot":"","sources":["../../src/_utils/find-bin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,10 @@
|
|
|
1
|
-
// `answer` is already
|
|
2
|
-
//
|
|
3
|
-
// bullets/gaps here would double-render those sections.
|
|
4
|
-
// Calibrated-trust footer, not a hedge. Measured (glen-sequential-pr-eval,
|
|
5
|
-
// beta waves 2026-08): the old "may be outdated … confirm with the user …
|
|
6
|
-
// validate against current code" wording made agents re-verify recalled
|
|
7
|
-
// decisions against the code, adding a reconciliation pass that erased the
|
|
8
|
-
// wall-clock benefit of recall (+20% wall at quality parity). Blind trust is
|
|
9
|
-
// worse (quality collapses — verification of what you touch is load-bearing).
|
|
10
|
-
// This wording is the measured middle: build on recalled decisions without
|
|
11
|
-
// re-deriving them; verify only what you directly modify.
|
|
1
|
+
// `answer` is already rendered server-side; print it as-is or its sections render twice.
|
|
2
|
+
// CAVEAT wording was measured: softer wording made agents re-verify everything, blind trust hurt quality.
|
|
12
3
|
const CAVEAT = "(Recalled from past sessions — these are decisions your teammates already " +
|
|
13
4
|
"made, implemented, and verified. Build on them directly: don't re-derive " +
|
|
14
5
|
"or re-litigate them, and don't explore beyond the scope they describe. Do " +
|
|
15
6
|
"verify the specifics of any code you directly modify before changing it.)";
|
|
16
|
-
//
|
|
17
|
-
// body row; the one-line/no-`|` rule keeps the one-column table from collapsing.
|
|
18
|
-
// The two-beat action framing is deliberate: banner audits showed flat receipts
|
|
19
|
-
// ("Glen confirmed X") read as neutral — the banner must say what the recall let
|
|
20
|
-
// the agent DO. The FINAL-message parenthetical is load-bearing: harnesses don't
|
|
21
|
-
// reliably show text emitted between tool calls, so a bare "BEGIN your reply"
|
|
22
|
-
// let agents drop the banner into an invisible mid-turn message and count the
|
|
23
|
-
// contract as satisfied.
|
|
7
|
+
// The FINAL-message wording is load-bearing: text between tool calls isn't reliably shown, so agents hid the banner mid-turn.
|
|
24
8
|
const BANNER = "If the answer above is genuinely useful for the user's current request, " +
|
|
25
9
|
"BEGIN your reply with the three-line banner below at the top of your FINAL " +
|
|
26
10
|
"message (text emitted between tool calls is not reliably shown to the user, " +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-search-result.js","sourceRoot":"","sources":["../../src/_utils/format-search-result.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"format-search-result.js","sourceRoot":"","sources":["../../src/_utils/format-search-result.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,0GAA0G;AAC1G,MAAM,MAAM,GACV,4EAA4E;IAC5E,2EAA2E;IAC3E,4EAA4E;IAC5E,2EAA2E,CAAC;AAE9E,8HAA8H;AAC9H,MAAM,MAAM,GACV,0EAA0E;IAC1E,6EAA6E;IAC7E,8EAA8E;IAC9E,6EAA6E;IAC7E,6EAA6E;IAC7E,qFAAqF;IACrF,mFAAmF;IACnF,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,GAAI,MAAyC,EAAE,MAAM,CAAC;IAClE,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"}
|
|
@@ -1,21 +1,6 @@
|
|
|
1
|
-
// Formats the per-turn nudges the server still sends: skill offers and the
|
|
2
|
-
// artifact suggestion. The per-turn search questions and skill-create nudge
|
|
3
|
-
// were retired by the universal session-start rollout — the server returns
|
|
4
|
-
// them permanently empty (`questions: []`, `skillSuggestion: null`) for older
|
|
5
|
-
// CLIs, and the session-start team-memory block owns that guidance now.
|
|
6
1
|
const isObject = (value) => typeof value === "object" && value !== null;
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
// skill genuinely fits, the agent surfaces it as a user-visible banner (same
|
|
10
|
-
// one-column-table pattern as format-search-result.ts's "Glen recalled" banner)
|
|
11
|
-
// that doubles as the consent ask. Both tiers carry a HARD consent gate — no
|
|
12
|
-
// `glen skill use` and no following the skill until the user agrees (a request
|
|
13
|
-
// already naming it counts). A 2026-07 production audit of 124 offer→use
|
|
14
|
-
// conversions showed the earlier soft wording ("consider offering") produced zero
|
|
15
|
-
// asks, while the create-skill nudge's imperative gate is consistently obeyed —
|
|
16
|
-
// keep this imperative. Names/descriptions come from org data, so they're
|
|
17
|
-
// JSON.stringify'd and flagged as labels, not instructions (the standard
|
|
18
|
-
// prompt-injection guard).
|
|
2
|
+
// Keep the consent gate imperative: softer wording produced zero asks in production.
|
|
3
|
+
// Skill names come from org data, so they are JSON-quoted as labels, not instructions (prompt-injection guard).
|
|
19
4
|
const skillsToOfferText = (result) => {
|
|
20
5
|
if (!isObject(result) || !("skillsToOffer" in result))
|
|
21
6
|
return null;
|
|
@@ -51,9 +36,6 @@ const skillsToOfferText = (result) => {
|
|
|
51
36
|
const bullets = parsed
|
|
52
37
|
.map((s) => `- ${JSON.stringify(s.name)} — ${JSON.stringify(s.description)} (\`glen skill use ${s.slug}\`)`)
|
|
53
38
|
.join("\n");
|
|
54
|
-
// Same banner + gate in both tiers; only the lead-in strength differs (results
|
|
55
|
-
// best-first). The agent fills only the body row; the one-line/no-`|` rule keeps
|
|
56
|
-
// the one-column table from collapsing (same contract as the recall banner).
|
|
57
39
|
const bannerGate = "If one of these genuinely fits the user's current request, BEGIN your reply with the three-line banner below at the top of your FINAL message (text emitted between tool calls is not reliably shown to the user, so a banner placed mid-turn does not count — it must open the last message you output this turn, after all tool calls) — copy it exactly, replacing only the angle-bracketed text (ONE line, never a \"|\" or line break inside it) — and wait for the user's answer. " +
|
|
58
40
|
"Do NOT run `glen skill use` or follow a skill until they agree (their request already naming it or asking for exactly its workflow counts as a yes — then skip the banner and just use it). " +
|
|
59
41
|
"If none fit, or you're already following a skill, no banner — don't mention these. " +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-turn-nudges.js","sourceRoot":"","sources":["../../src/_utils/format-turn-nudges.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"format-turn-nudges.js","sourceRoot":"","sources":["../../src/_utils/format-turn-nudges.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
declare const canonicalRemoteUrl: (raw: string) => string | null;
|
|
2
|
-
/** Outcome of the `rev-parse --show-toplevel` probe that gates every other git
|
|
3
|
-
* field. Reported to the server so a dropped repo/branch ref is attributable. */
|
|
4
2
|
type WorkspaceProbe = "ok" | "not_a_repo" | "git_missing" | "git_timeout" | "git_denied" | "git_empty_output" | "git_failed";
|
|
5
3
|
type WorkspaceContext = {
|
|
6
4
|
readonly cwd?: string;
|
|
@@ -1,28 +1,9 @@
|
|
|
1
1
|
import { execFileSync } from "node:child_process";
|
|
2
2
|
import { basename } from "node:path";
|
|
3
|
-
/** Ceiling for any ONE git invocation. The old value was 150ms flat, and
|
|
4
|
-
* production said that was too tight: over 5,481 turns, 57 lost their repo
|
|
5
|
-
* provenance to `git_timeout` across 6 users in 3 orgs. It was intermittent for
|
|
6
|
-
* every one of them — each affected user succeeded on the same machines and
|
|
7
|
-
* repos the overwhelming majority of the time (39/477, 8/788, 5/130, then three
|
|
8
|
-
* at ~0.3%) — so this is a budget clipped by transient load, not a broken
|
|
9
|
-
* environment. */
|
|
10
3
|
const GIT_CALL_TIMEOUT_MS = 500;
|
|
11
|
-
|
|
12
|
-
*
|
|
13
|
-
* A per-call bump alone would have been the wrong fix: gitContext issues up to
|
|
14
|
-
* FIVE git commands, so raising the per-call limit to 1s would license a 5s
|
|
15
|
-
* worst case — on a hook that runs on every UserPromptSubmit and Stop, directly
|
|
16
|
-
* in the user's critical path. The deadline bounds total wall time no matter how
|
|
17
|
-
* many calls run or how slow each one is.
|
|
18
|
-
*
|
|
19
|
-
* Typical cost is unchanged: rev-parse measures 10-20ms against a 69MB .git, so
|
|
20
|
-
* a healthy repo spends ~50-100ms across all five and never approaches either
|
|
21
|
-
* limit. These only bind on the pathological runs that are currently failing. */
|
|
4
|
+
// Caps total git time: up to five calls run on every prompt hook, in the user's critical path.
|
|
22
5
|
const GIT_TOTAL_BUDGET_MS = 1200;
|
|
23
6
|
const runGit = (cwd, args, deadline) => {
|
|
24
|
-
// Budget already gone — fail as a timeout rather than spawning a process whose
|
|
25
|
-
// result we have no time left to use.
|
|
26
7
|
const remaining = deadline - Date.now();
|
|
27
8
|
if (remaining <= 0)
|
|
28
9
|
return { output: null, probe: "git_timeout" };
|
|
@@ -32,21 +13,12 @@ const runGit = (cwd, args, deadline) => {
|
|
|
32
13
|
timeout: Math.min(remaining, GIT_CALL_TIMEOUT_MS),
|
|
33
14
|
encoding: "utf8",
|
|
34
15
|
}).trim() || null;
|
|
35
|
-
// Exit 0 with nothing on stdout shouldn't happen for the commands we run;
|
|
36
|
-
// classify it rather than silently folding it into "not a repo".
|
|
37
16
|
return { output, probe: output ? "ok" : "git_empty_output" };
|
|
38
17
|
}
|
|
39
18
|
catch (error) {
|
|
40
19
|
return { output: null, probe: classifyGitFailure(error) };
|
|
41
20
|
}
|
|
42
21
|
};
|
|
43
|
-
/** Why `git` did not answer. Every one of these currently collapses to the same
|
|
44
|
-
* observable state — a workspace with a cwd and no repoName — and they need
|
|
45
|
-
* completely different responses, so they are reported separately.
|
|
46
|
-
*
|
|
47
|
-
* `git_timeout` is kept reported after raising the budget, deliberately: it is
|
|
48
|
-
* how we confirm the new limits actually removed the timeouts instead of
|
|
49
|
-
* assuming they did. */
|
|
50
22
|
const classifyGitFailure = (error) => {
|
|
51
23
|
const err = error;
|
|
52
24
|
if (err?.code === "ENOENT")
|
|
@@ -55,8 +27,6 @@ const classifyGitFailure = (error) => {
|
|
|
55
27
|
return "git_timeout";
|
|
56
28
|
if (err?.code === "EACCES")
|
|
57
29
|
return "git_denied";
|
|
58
|
-
// A non-zero exit from `rev-parse --show-toplevel` is git working correctly
|
|
59
|
-
// and telling us this path is not inside a checkout.
|
|
60
30
|
if (typeof err?.status === "number" && err.status !== 0)
|
|
61
31
|
return "not_a_repo";
|
|
62
32
|
return "git_failed";
|
|
@@ -83,8 +53,6 @@ const canonicalRemoteUrl = (raw) => {
|
|
|
83
53
|
return null;
|
|
84
54
|
};
|
|
85
55
|
const gitContext = (cwd) => {
|
|
86
|
-
// One deadline for the whole context: every call below draws from it, so the
|
|
87
|
-
// five commands together can never outlast GIT_TOTAL_BUDGET_MS.
|
|
88
56
|
const deadline = Date.now() + GIT_TOTAL_BUDGET_MS;
|
|
89
57
|
const top = runGit(cwd, ["rev-parse", "--show-toplevel"], deadline);
|
|
90
58
|
const toplevel = top.output;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-context.js","sourceRoot":"","sources":["../../src/_utils/git-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC
|
|
1
|
+
{"version":3,"file":"git-context.js","sourceRoot":"","sources":["../../src/_utils/git-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-hook-setup.js","sourceRoot":"","sources":["../../src/_utils/git-hook-setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,KAAK,EACL,KAAK,EACL,QAAQ,EACR,MAAM,EACN,MAAM,EACN,SAAS,GACV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAe,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,SAAS,GAAG,2BAA2B,CAAC;AAE9C,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,IAAc,EAAiB,EAAE;IACzD,IAAI,CAAC;QACH,OAAO,CACL,YAAY,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE;YACxC,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;YACnC,OAAO,EAAE,GAAG;YACZ,QAAQ,EAAE,MAAM;SACjB,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAClB,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,
|
|
1
|
+
{"version":3,"file":"git-hook-setup.js","sourceRoot":"","sources":["../../src/_utils/git-hook-setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,10 +2,7 @@ const buildGlenHeaders = ({ key, state, version, }) => ({
|
|
|
2
2
|
"x-api-key": key,
|
|
3
3
|
"x-glen-cli-version": version,
|
|
4
4
|
...(state?.activeOrgId ? { "x-glen-org-id": state.activeOrgId } : {}),
|
|
5
|
-
//
|
|
6
|
-
// nothing while still injecting, and `off` records nothing too (its hooks
|
|
7
|
-
// also skip injection client-side). `silent` must NOT send it — silent
|
|
8
|
-
// RECORDS; the server-side preference suppresses the surfacing instead.
|
|
5
|
+
// silent must NOT send this header: silent still records. Only incognito and off record nothing.
|
|
9
6
|
...(state && (state.mode === "incognito" || state.mode === "off")
|
|
10
7
|
? { "x-glen-incognito": "true" }
|
|
11
8
|
: {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glen-headers.js","sourceRoot":"","sources":["../../src/_utils/glen-headers.ts"],"names":[],"mappings":"AAQA,MAAM,gBAAgB,GAAG,CAAC,EACxB,GAAG,EACH,KAAK,EACL,OAAO,GACS,EAA0B,EAAE,CAAC,CAAC;IAC9C,WAAW,EAAE,GAAG;IAChB,oBAAoB,EAAE,OAAO;IAC7B,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACrE,
|
|
1
|
+
{"version":3,"file":"glen-headers.js","sourceRoot":"","sources":["../../src/_utils/glen-headers.ts"],"names":[],"mappings":"AAQA,MAAM,gBAAgB,GAAG,CAAC,EACxB,GAAG,EACH,KAAK,EACL,OAAO,GACS,EAA0B,EAAE,CAAC,CAAC;IAC9C,WAAW,EAAE,GAAG;IAChB,oBAAoB,EAAE,OAAO;IAC7B,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACrE,iGAAiG;IACjG,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC;QAC/D,CAAC,CAAC,EAAE,kBAAkB,EAAE,MAAM,EAAE;QAChC,CAAC,CAAC,EAAE,CAAC;CACR,CAAC,CAAC;AAEH,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
|