@tryglen/cli 0.34.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 -13
- package/dist/_utils/agent-adapter.js +1 -19
- 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.d.ts +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.d.ts +9 -1
- package/dist/_utils/install-receipt.js +18 -3
- package/dist/_utils/install-receipt.js.map +1 -1
- package/dist/_utils/jcode-bundle.d.ts +3 -0
- package/dist/_utils/jcode-bundle.js +16 -0
- package/dist/_utils/jcode-bundle.js.map +1 -0
- package/dist/_utils/jcode-event.d.ts +3 -0
- package/dist/_utils/jcode-event.js +66 -0
- package/dist/_utils/jcode-event.js.map +1 -0
- package/dist/_utils/jcode-hook-lines.d.ts +5 -0
- package/dist/_utils/jcode-hook-lines.js +7 -0
- package/dist/_utils/jcode-hook-lines.js.map +1 -0
- package/dist/_utils/jcode-hooks-toml.d.ts +8 -0
- package/dist/_utils/jcode-hooks-toml.js +148 -0
- package/dist/_utils/jcode-hooks-toml.js.map +1 -0
- package/dist/_utils/jcode-paths.d.ts +7 -0
- package/dist/_utils/jcode-paths.js +10 -0
- package/dist/_utils/jcode-paths.js.map +1 -0
- package/dist/_utils/jcode-setup.d.ts +27 -0
- package/dist/_utils/jcode-setup.js +151 -0
- package/dist/_utils/jcode-setup.js.map +1 -0
- package/dist/_utils/jcode-skills-sync.d.ts +8 -0
- package/dist/_utils/jcode-skills-sync.js +74 -0
- package/dist/_utils/jcode-skills-sync.js.map +1 -0
- package/dist/_utils/login-check.js +1 -4
- package/dist/_utils/login-check.js.map +1 -1
- package/dist/_utils/managed-block.d.ts +4 -0
- package/dist/_utils/managed-block.js +38 -0
- package/dist/_utils/managed-block.js.map +1 -0
- 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-harbor-atif.js +2 -1
- package/dist/_utils/parse-harbor-atif.js.map +1 -1
- package/dist/_utils/parse-jcode-session.d.ts +14 -0
- package/dist/_utils/parse-jcode-session.js +113 -0
- package/dist/_utils/parse-jcode-session.js.map +1 -0
- 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.d.ts +1 -1
- package/dist/_utils/plugin-status.js +25 -16
- 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.d.ts +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 +15 -31
- 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 +29 -75
- 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 +58 -122
- package/dist/commands/ingest.js.map +1 -1
- package/dist/commands/install.d.ts +1 -0
- package/dist/commands/install.js +52 -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 +19 -68
- 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 +7 -7
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/commands/update.d.ts +0 -10
- package/dist/commands/update.js +21 -30
- package/dist/commands/update.js.map +1 -1
- package/dist/jcode/plugin.json +8 -0
- package/dist/jcode/preferred-tools.md +3 -0
- package/dist/jcode/prompt-overlay.md +15 -0
- package/dist/jcode/skills/code-search/SKILL.md +19 -0
- package/dist/jcode/skills/controls/SKILL.md +45 -0
- package/dist/jcode/skills/create-artifact/SKILL.md +11 -0
- package/dist/jcode/skills/create-skill/SKILL.md +41 -0
- package/dist/jcode/skills/feedback/SKILL.md +59 -0
- package/dist/jcode/skills/forget/SKILL.md +41 -0
- package/dist/jcode/skills/import-transcripts/SKILL.md +27 -0
- package/dist/jcode/skills/invite/SKILL.md +28 -0
- package/dist/jcode/skills/search/SKILL.md +35 -0
- package/dist/jcode/skills/session-takeover/SKILL.md +67 -0
- package/dist/jcode/skills/setup/SKILL.md +62 -0
- package/dist/jcode/skills/use-artifact/SKILL.md +11 -0
- package/dist/jcode/skills/use-skill/SKILL.md +10 -0
- package/package.json +5 -3
|
@@ -14,9 +14,6 @@ const parseLine = (line) => {
|
|
|
14
14
|
const messageOf = (e) => e.message !== null && typeof e.message === "object"
|
|
15
15
|
? e.message
|
|
16
16
|
: null;
|
|
17
|
-
// Text of a Claude message: a plain string (typical human prompt) or the
|
|
18
|
-
// concatenated `text` content blocks (assistant output; thinking/tool_use
|
|
19
|
-
// blocks are not conversation text).
|
|
20
17
|
const textOf = (content) => {
|
|
21
18
|
if (typeof content === "string")
|
|
22
19
|
return content;
|
|
@@ -30,8 +27,6 @@ const textOf = (content) => {
|
|
|
30
27
|
.map((p) => p.text)
|
|
31
28
|
.join("\n");
|
|
32
29
|
};
|
|
33
|
-
// User-role lines that are tool results, not human prompts: a tool_result
|
|
34
|
-
// content block and/or the top-level toolUseResult sibling.
|
|
35
30
|
const isToolResult = (e) => {
|
|
36
31
|
if (e.toolUseResult !== undefined)
|
|
37
32
|
return true;
|
|
@@ -41,7 +36,6 @@ const isToolResult = (e) => {
|
|
|
41
36
|
typeof p === "object" &&
|
|
42
37
|
p.type === "tool_result"));
|
|
43
38
|
};
|
|
44
|
-
// Harness-injected user lines that were never typed by the human.
|
|
45
39
|
const INJECTED_PREFIXES = [
|
|
46
40
|
"<command-name>",
|
|
47
41
|
"<command-message>",
|
|
@@ -49,15 +43,8 @@ const INJECTED_PREFIXES = [
|
|
|
49
43
|
"<local-command-stderr>",
|
|
50
44
|
"Caveat:",
|
|
51
45
|
];
|
|
52
|
-
//
|
|
53
|
-
//
|
|
54
|
-
// CONVERSATION line (user/assistant, not sidechain/meta) that is nobody's
|
|
55
|
-
// parent — so abandoned branches aren't imported twice. Restricting leaf
|
|
56
|
-
// candidates to conversation lines matters: harness bookkeeping (meta command
|
|
57
|
-
// lines, attachments) can trail the file as childless roots, and picking one
|
|
58
|
-
// of those as the leaf would walk a one-line branch and drop the whole
|
|
59
|
-
// session. Falls back to file order when the chain is unwalkable (format
|
|
60
|
-
// drift), which matches the active branch in almost all sessions.
|
|
46
|
+
// Leaf = the last user/assistant line nobody points at. Trailing bookkeeping lines can be childless roots,
|
|
47
|
+
// and picking one as the leaf would drop the whole session.
|
|
61
48
|
const activeBranch = (entries) => {
|
|
62
49
|
const withUuid = entries.filter((e) => typeof e.uuid === "string");
|
|
63
50
|
const byUuid = new Map(withUuid.map((e) => [e.uuid, e]));
|
|
@@ -80,19 +67,15 @@ const activeBranch = (entries) => {
|
|
|
80
67
|
const chain = walk(leaf, [], new Set());
|
|
81
68
|
return chain.length > 0 ? chain : entries;
|
|
82
69
|
};
|
|
83
|
-
// Parse one Claude Code session file (~/.claude/projects/<munged-cwd>/<uuid>.jsonl)
|
|
84
|
-
// into the normalized transcript shape. Tolerant by design: unknown line types,
|
|
85
|
-
// missing fields, and unparseable lines are skipped, never fatal — the format
|
|
86
|
-
// is undocumented and drifts across versions.
|
|
87
70
|
const parseClaudeTranscript = (lines, fallbackSessionId) => {
|
|
88
71
|
const entries = lines.map(parseLine).filter((e) => e !== null);
|
|
89
72
|
const conversation = activeBranch(entries).filter((e) => {
|
|
90
73
|
if (e.type !== "user" && e.type !== "assistant")
|
|
91
74
|
return false;
|
|
92
75
|
if (e.isSidechain === true)
|
|
93
|
-
return false;
|
|
76
|
+
return false;
|
|
94
77
|
if (e.isMeta === true)
|
|
95
|
-
return false;
|
|
78
|
+
return false;
|
|
96
79
|
return messageOf(e) !== null;
|
|
97
80
|
});
|
|
98
81
|
const messages = [];
|
|
@@ -110,9 +93,6 @@ const parseClaudeTranscript = (lines, fallbackSessionId) => {
|
|
|
110
93
|
continue;
|
|
111
94
|
}
|
|
112
95
|
if (e.type === "user") {
|
|
113
|
-
// Claude returns tool OUTPUTS as their own user line — lift the
|
|
114
|
-
// tool_result blocks onto the preceding assistant message's segments and
|
|
115
|
-
// drop the line from the top-level prose stream (spec: full I/O capture).
|
|
116
96
|
if (isToolResult(e)) {
|
|
117
97
|
const prev = messages[messages.length - 1];
|
|
118
98
|
const resultSegs = extractClaudeSegments(msg ?? {}).filter((s) => s.kind === "tool_result");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-claude-transcript.js","sourceRoot":"","sources":["../../src/_utils/parse-claude-transcript.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AAQnF,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,SAAS,GAAG,CAAC,CAAQ,EAAgB,EAAE,CAC3C,CAAC,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;IACjD,CAAC,CAAE,CAAC,CAAC,OAAiB;IACtB,CAAC,CAAC,IAAI,CAAC;AAEX,
|
|
1
|
+
{"version":3,"file":"parse-claude-transcript.js","sourceRoot":"","sources":["../../src/_utils/parse-claude-transcript.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,8 +11,6 @@ const parseLine = (line) => {
|
|
|
11
11
|
return null;
|
|
12
12
|
}
|
|
13
13
|
};
|
|
14
|
-
// User-role message items Codex injects itself (environment context, AGENTS.md
|
|
15
|
-
// instructions, permission notes) — never typed by the human.
|
|
16
14
|
const INJECTED_PREFIXES = [
|
|
17
15
|
"<environment_context>",
|
|
18
16
|
"<user_instructions>",
|
|
@@ -20,9 +18,6 @@ const INJECTED_PREFIXES = [
|
|
|
20
18
|
"<turn_context>",
|
|
21
19
|
"<ide_context>",
|
|
22
20
|
];
|
|
23
|
-
// Text of a Responses-API message item: `input_text` parts (user) and
|
|
24
|
-
// `output_text` parts (assistant); other part kinds (images, refusals) are
|
|
25
|
-
// not conversation text.
|
|
26
21
|
const textOf = (content) => {
|
|
27
22
|
if (!Array.isArray(content))
|
|
28
23
|
return "";
|
|
@@ -40,7 +35,7 @@ const messageFrom = (item, timestamp) => {
|
|
|
40
35
|
return null;
|
|
41
36
|
const role = item.role;
|
|
42
37
|
if (role !== "user" && role !== "assistant")
|
|
43
|
-
return null;
|
|
38
|
+
return null;
|
|
44
39
|
const text = textOf(item.content);
|
|
45
40
|
if (role === "user" && INJECTED_PREFIXES.some((p) => text.startsWith(p)))
|
|
46
41
|
return null;
|
|
@@ -53,12 +48,6 @@ const messageFrom = (item, timestamp) => {
|
|
|
53
48
|
...(segments.length > 0 ? { segments } : {}),
|
|
54
49
|
};
|
|
55
50
|
};
|
|
56
|
-
// Append segments from a `reasoning`/`function_call`/`function_call_output`
|
|
57
|
-
// item to the last pushed assistant message (they arrive as their own
|
|
58
|
-
// response_item lines, interleaved after the prose they belong to). If there
|
|
59
|
-
// is no trailing assistant message yet, start one carrying only segments —
|
|
60
|
-
// Task 3's truncation and Task 6's segment-only-message handling let it
|
|
61
|
-
// survive downstream folding with an empty `text`.
|
|
62
51
|
const appendSegments = (messages, segments) => {
|
|
63
52
|
const last = messages[messages.length - 1];
|
|
64
53
|
if (last && last.role === "assistant") {
|
|
@@ -70,13 +59,6 @@ const appendSegments = (messages, segments) => {
|
|
|
70
59
|
}
|
|
71
60
|
messages.push({ role: "assistant", text: "", segments });
|
|
72
61
|
};
|
|
73
|
-
// Parse one Codex CLI rollout file (~/.codex/sessions/YYYY/MM/DD/
|
|
74
|
-
// rollout-<date>-<uuid>.jsonl) into the normalized transcript shape. Only
|
|
75
|
-
// `session_meta` / `turn_context` / `response_item` lines matter — `event_msg`
|
|
76
|
-
// lines duplicate the same content as a UI stream, so they are skipped to
|
|
77
|
-
// avoid double-importing every message. Pre-envelope rollouts (bare
|
|
78
|
-
// ResponseItem objects without {timestamp,type,payload}) are handled too.
|
|
79
|
-
// Tolerant by design: unknown types and malformed lines are skipped.
|
|
80
62
|
const parseCodexTranscript = (lines, fallbackSessionId) => {
|
|
81
63
|
const parsed = lines.map(parseLine).filter((e) => e !== null);
|
|
82
64
|
const result = {
|
|
@@ -106,13 +88,10 @@ const parseCodexTranscript = (lines, fallbackSessionId) => {
|
|
|
106
88
|
}
|
|
107
89
|
if (line.type === "turn_context" && payload) {
|
|
108
90
|
result.cwd ??= typeof payload.cwd === "string" ? payload.cwd : undefined;
|
|
109
|
-
// Latest turn_context wins: the model can change mid-session.
|
|
110
91
|
if (typeof payload.model === "string")
|
|
111
92
|
result.model = payload.model;
|
|
112
93
|
continue;
|
|
113
94
|
}
|
|
114
|
-
// Envelope form (current) or a bare pre-envelope ResponseItem (2025-era
|
|
115
|
-
// rollouts wrote items without the {timestamp,type,payload} wrapper).
|
|
116
95
|
const item = line.type === "response_item" && payload
|
|
117
96
|
? payload
|
|
118
97
|
: payload === null &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-codex-transcript.js","sourceRoot":"","sources":["../../src/_utils/parse-codex-transcript.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AASnF,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
|
|
1
|
+
{"version":3,"file":"parse-codex-transcript.js","sourceRoot":"","sources":["../../src/_utils/parse-codex-transcript.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,9 +7,7 @@ import { normalizeTranscriptTimestamp } from "./normalize-transcript-timestamp.j
|
|
|
7
7
|
import { err, ok } from "./result.js";
|
|
8
8
|
const loadSqlite = async () => {
|
|
9
9
|
try {
|
|
10
|
-
// Indirect specifier: @types/node@20
|
|
11
|
-
// node:sqlite declarations, so a literal import() would fail tsc even
|
|
12
|
-
// though the module exists at runtime on Node >= 22.5.
|
|
10
|
+
// Indirect specifier: @types/node@20 has no node:sqlite types, so a literal import() fails tsc.
|
|
13
11
|
const specifier = "node:sqlite";
|
|
14
12
|
const sqlite = (await import(specifier));
|
|
15
13
|
return sqlite.DatabaseSync ?? null;
|
|
@@ -31,10 +29,6 @@ const parseJson = (value) => {
|
|
|
31
29
|
return null;
|
|
32
30
|
}
|
|
33
31
|
};
|
|
34
|
-
// Cursor stores three generations of chat data; all use type 1 = user,
|
|
35
|
-
// 2 = assistant on the message ("bubble") level; the legacy aichat pane used
|
|
36
|
-
// "user"/"ai" strings in some builds. Bubbles with empty text but populated
|
|
37
|
-
// tool data are tool steps, not blank messages — skipped via empty text.
|
|
38
32
|
const bubbleMessage = (bubble) => {
|
|
39
33
|
if (bubble.glenTakeoverProvenance === true)
|
|
40
34
|
return null;
|
|
@@ -64,8 +58,6 @@ const bubbleMessage = (bubble) => {
|
|
|
64
58
|
const occurredAt = normalizeTranscriptTimestamp(bubble.timestamp ?? bubble.createdAt ?? bubble.created_at);
|
|
65
59
|
return { role, text, ...(occurredAt ? { occurredAt } : {}) };
|
|
66
60
|
};
|
|
67
|
-
// A query against a table that may not exist in this generation of the db
|
|
68
|
-
// (workspace dbs have no cursorDiskKV, some have no chat keys at all).
|
|
69
61
|
const tryRows = (db, sql, params = []) => {
|
|
70
62
|
try {
|
|
71
63
|
return db.prepare(sql).all(...params);
|
|
@@ -86,8 +78,6 @@ const composerTranscripts = (db) => {
|
|
|
86
78
|
const composerId = typeof composer.composerId === "string"
|
|
87
79
|
? composer.composerId
|
|
88
80
|
: key.slice("composerData:".length);
|
|
89
|
-
// Older builds inline the whole conversation; newer ones store headers and
|
|
90
|
-
// one bubbleId:<composerId>:<bubbleId> row per message.
|
|
91
81
|
const inline = Array.isArray(composer.conversation)
|
|
92
82
|
? composer.conversation
|
|
93
83
|
: null;
|
|
@@ -118,7 +108,6 @@ const composerTranscripts = (db) => {
|
|
|
118
108
|
}
|
|
119
109
|
return transcripts;
|
|
120
110
|
};
|
|
121
|
-
// Legacy (pre-composer) chat pane: one ItemTable blob with tabs[].bubbles[].
|
|
122
111
|
const legacyChatTranscripts = (db) => {
|
|
123
112
|
const rows = tryRows(db, "SELECT value FROM ItemTable WHERE key = 'workbench.panel.aichat.view.aichat.chatdata'");
|
|
124
113
|
const data = parseJson(rowValue(rows[0]));
|
|
@@ -146,10 +135,7 @@ const legacyChatTranscripts = (db) => {
|
|
|
146
135
|
}
|
|
147
136
|
return transcripts;
|
|
148
137
|
};
|
|
149
|
-
//
|
|
150
|
-
// transcripts. The db is copied to a temp dir first — Cursor holds a write
|
|
151
|
-
// lock (and a -wal journal) while running, and we must never write to the
|
|
152
|
-
// original. Requires node:sqlite (Node >= 22.5).
|
|
138
|
+
// Copy the db first: Cursor holds a write lock while running, and we must never write to the original.
|
|
153
139
|
const parseCursorDb = async (dbPath) => {
|
|
154
140
|
const DatabaseSync = await loadSqlite();
|
|
155
141
|
if (!DatabaseSync)
|
|
@@ -158,9 +144,6 @@ const parseCursorDb = async (dbPath) => {
|
|
|
158
144
|
path: dbPath,
|
|
159
145
|
remedy: "re-run `glen import` with Node 22.5 or newer (e.g. `nvm install 22`)",
|
|
160
146
|
}));
|
|
161
|
-
// sqlite opens lazily, so a non-database file wouldn't fail until the first
|
|
162
|
-
// query — which the table-may-not-exist guards would then swallow. Check the
|
|
163
|
-
// container magic up front for an honest error instead of a silent zero.
|
|
164
147
|
const header = await (async () => {
|
|
165
148
|
try {
|
|
166
149
|
const handle = await open(dbPath, "r");
|
|
@@ -184,8 +167,6 @@ const parseCursorDb = async (dbPath) => {
|
|
|
184
167
|
const copied = await (async () => {
|
|
185
168
|
try {
|
|
186
169
|
await copyFile(dbPath, tempDb);
|
|
187
|
-
// The write-ahead log holds recent commits; copy it so fresh chats are
|
|
188
|
-
// visible. Best-effort — a db checkpointed by Cursor has none.
|
|
189
170
|
if (existsSync(`${dbPath}-wal`))
|
|
190
171
|
await copyFile(`${dbPath}-wal`, `${tempDb}-wal`);
|
|
191
172
|
if (existsSync(`${dbPath}-shm`))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-cursor-db.js","sourceRoot":"","sources":["../../src/_utils/parse-cursor-db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAiB,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,EAAe,GAAG,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"parse-cursor-db.js","sourceRoot":"","sources":["../../src/_utils/parse-cursor-db.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-harbor-atif.js","sourceRoot":"","sources":["../../src/_utils/parse-harbor-atif.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"parse-harbor-atif.js","sourceRoot":"","sources":["../../src/_utils/parse-harbor-atif.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
type JcodeTurn = {
|
|
2
|
+
readonly prompt: string;
|
|
3
|
+
readonly text: string;
|
|
4
|
+
readonly turnId: string;
|
|
5
|
+
};
|
|
6
|
+
declare const readJcodeTurn: (sessionId: string, opts?: {
|
|
7
|
+
retries?: number;
|
|
8
|
+
delayMs?: number;
|
|
9
|
+
}) => Promise<JcodeTurn | null>;
|
|
10
|
+
declare const readJcodeUserPrompt: (sessionId: string) => Promise<{
|
|
11
|
+
prompt: string;
|
|
12
|
+
turnId: string;
|
|
13
|
+
} | null>;
|
|
14
|
+
export { readJcodeTurn, readJcodeUserPrompt };
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { readFile } from "node:fs/promises";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { jcodeSessionsDir } from "./jcode-paths.js";
|
|
4
|
+
import { fromPromise } from "./result.js";
|
|
5
|
+
const isEntry = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
|
|
6
|
+
const parseJson = (raw) => {
|
|
7
|
+
try {
|
|
8
|
+
const parsed = JSON.parse(raw);
|
|
9
|
+
return isEntry(parsed) ? parsed : null;
|
|
10
|
+
}
|
|
11
|
+
catch {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
const messagesOf = (entry) => Array.isArray(entry?.messages) ? entry.messages.filter(isEntry) : [];
|
|
16
|
+
const textOf = (content) => {
|
|
17
|
+
if (typeof content === "string")
|
|
18
|
+
return content;
|
|
19
|
+
if (!Array.isArray(content))
|
|
20
|
+
return "";
|
|
21
|
+
return content
|
|
22
|
+
.map((block) => typeof block === "string"
|
|
23
|
+
? block
|
|
24
|
+
: isEntry(block) && typeof block.text === "string"
|
|
25
|
+
? block.text
|
|
26
|
+
: "")
|
|
27
|
+
.filter(Boolean)
|
|
28
|
+
.join("\n")
|
|
29
|
+
.trim();
|
|
30
|
+
};
|
|
31
|
+
const visibleOf = (messages) => messages.filter((m) => m.display_role === undefined || m.display_role === null);
|
|
32
|
+
const idOf = (message, index) => typeof message.id === "string" && message.id ? message.id : `${index}`;
|
|
33
|
+
const turnOf = (messages) => {
|
|
34
|
+
const visible = visibleOf(messages);
|
|
35
|
+
const lastAssistant = visible
|
|
36
|
+
.map((m, i) => ({ m, i }))
|
|
37
|
+
.reverse()
|
|
38
|
+
.find(({ m }) => m.role === "assistant");
|
|
39
|
+
if (!lastAssistant)
|
|
40
|
+
return null;
|
|
41
|
+
const lastUser = visible
|
|
42
|
+
.slice(0, lastAssistant.i)
|
|
43
|
+
.map((m, i) => ({ m, i }))
|
|
44
|
+
.reverse()
|
|
45
|
+
.find(({ m }) => m.role === "user");
|
|
46
|
+
if (!lastUser)
|
|
47
|
+
return null;
|
|
48
|
+
const prompt = textOf(lastUser.m.content);
|
|
49
|
+
const text = textOf(lastAssistant.m.content);
|
|
50
|
+
if (!prompt || !text)
|
|
51
|
+
return null;
|
|
52
|
+
return { prompt, text, turnId: idOf(lastUser.m, lastUser.i) };
|
|
53
|
+
};
|
|
54
|
+
const lastUserPromptOf = (messages) => {
|
|
55
|
+
const visible = visibleOf(messages);
|
|
56
|
+
const lastUser = visible
|
|
57
|
+
.map((m, i) => ({ m, i }))
|
|
58
|
+
.reverse()
|
|
59
|
+
.find(({ m }) => m.role === "user");
|
|
60
|
+
if (!lastUser)
|
|
61
|
+
return null;
|
|
62
|
+
const prompt = textOf(lastUser.m.content);
|
|
63
|
+
if (!prompt)
|
|
64
|
+
return null;
|
|
65
|
+
return { prompt, turnId: idOf(lastUser.m, lastUser.i) };
|
|
66
|
+
};
|
|
67
|
+
const loadMessages = async (sessionId) => {
|
|
68
|
+
const dir = jcodeSessionsDir();
|
|
69
|
+
const snapshot = await fromPromise(readFile(join(dir, `${sessionId}.json`), "utf8"));
|
|
70
|
+
const journal = await fromPromise(readFile(join(dir, `${sessionId}.journal.jsonl`), "utf8"));
|
|
71
|
+
if (!snapshot.ok && !journal.ok)
|
|
72
|
+
return null;
|
|
73
|
+
const all = [
|
|
74
|
+
...(snapshot.ok ? messagesOf(parseJson(snapshot.value)) : []),
|
|
75
|
+
...(journal.ok
|
|
76
|
+
? journal.value
|
|
77
|
+
.split("\n")
|
|
78
|
+
.filter(Boolean)
|
|
79
|
+
.map(parseJson)
|
|
80
|
+
.flatMap(messagesOf)
|
|
81
|
+
: []),
|
|
82
|
+
];
|
|
83
|
+
const byId = new Map();
|
|
84
|
+
for (const m of all)
|
|
85
|
+
byId.set(typeof m.id === "string" ? m.id : `${byId.size}`, m);
|
|
86
|
+
return [...byId.values()];
|
|
87
|
+
};
|
|
88
|
+
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
|
89
|
+
const readJcodeTurn = async (sessionId, opts = {}) => {
|
|
90
|
+
if (!/^[A-Za-z0-9._-]+$/.test(sessionId))
|
|
91
|
+
return null;
|
|
92
|
+
const retries = opts.retries ?? 4;
|
|
93
|
+
const delayMs = opts.delayMs ?? 500;
|
|
94
|
+
const attempt = async (remaining) => {
|
|
95
|
+
const messages = await loadMessages(sessionId);
|
|
96
|
+
const turn = messages ? turnOf(messages) : null;
|
|
97
|
+
if (turn)
|
|
98
|
+
return turn;
|
|
99
|
+
if (remaining <= 0)
|
|
100
|
+
return null;
|
|
101
|
+
await sleep(delayMs);
|
|
102
|
+
return attempt(remaining - 1);
|
|
103
|
+
};
|
|
104
|
+
return attempt(retries);
|
|
105
|
+
};
|
|
106
|
+
const readJcodeUserPrompt = async (sessionId) => {
|
|
107
|
+
if (!/^[A-Za-z0-9._-]+$/.test(sessionId))
|
|
108
|
+
return null;
|
|
109
|
+
const messages = await loadMessages(sessionId);
|
|
110
|
+
return messages ? lastUserPromptOf(messages) : null;
|
|
111
|
+
};
|
|
112
|
+
export { readJcodeTurn, readJcodeUserPrompt };
|
|
113
|
+
//# sourceMappingURL=parse-jcode-session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-jcode-session.js","sourceRoot":"","sources":["../../src/_utils/parse-jcode-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,9 +15,6 @@ const messageOf = (e) => e.message !== null && typeof e.message === "object"
|
|
|
15
15
|
? e.message
|
|
16
16
|
: null;
|
|
17
17
|
const str = (v) => (typeof v === "string" ? v : "");
|
|
18
|
-
// A pi `toolResult`/`bashExecution` message's output text: toolResult's
|
|
19
|
-
// `content` is a string OR an array of {text} blocks; bashExecution's
|
|
20
|
-
// `output` is always a flat string.
|
|
21
18
|
const outputTextOf = (content) => {
|
|
22
19
|
if (typeof content === "string")
|
|
23
20
|
return content;
|
|
@@ -28,9 +25,6 @@ const outputTextOf = (content) => {
|
|
|
28
25
|
.join("\n");
|
|
29
26
|
return "";
|
|
30
27
|
};
|
|
31
|
-
// toolResult/bashExecution are separate pi ENTRY types (not content blocks
|
|
32
|
-
// inside a message), so they cannot flow through extractPiSegments — build
|
|
33
|
-
// their tool_result segment directly from the entry's message payload.
|
|
34
28
|
const toolResultSegmentOf = (message) => {
|
|
35
29
|
if (message.role === "toolResult") {
|
|
36
30
|
const output = outputTextOf(message.content);
|
|
@@ -60,11 +54,6 @@ const toolResultSegmentOf = (message) => {
|
|
|
60
54
|
}
|
|
61
55
|
return null;
|
|
62
56
|
};
|
|
63
|
-
// Append a lifted tool_result segment onto the trailing assistant message
|
|
64
|
-
// (toolResult/bashExecution entries always follow the assistant turn that
|
|
65
|
-
// invoked them). If there is no trailing assistant message yet, start one
|
|
66
|
-
// carrying only segments — Task 6's segment-only-message handling lets it
|
|
67
|
-
// survive downstream folding with an empty `text`.
|
|
68
57
|
const appendToolResultSegment = (messages, segment) => {
|
|
69
58
|
const last = messages[messages.length - 1];
|
|
70
59
|
if (last && last.role === "assistant") {
|
|
@@ -76,9 +65,6 @@ const appendToolResultSegment = (messages, segment) => {
|
|
|
76
65
|
}
|
|
77
66
|
messages.push({ role: "assistant", text: "", segments: [segment] });
|
|
78
67
|
};
|
|
79
|
-
// Text of a pi message: a plain string (typical human prompt) or the
|
|
80
|
-
// concatenated `text` content blocks (assistant output; thinking/toolCall/
|
|
81
|
-
// image blocks are not conversation text).
|
|
82
68
|
const textOf = (content) => {
|
|
83
69
|
if (typeof content === "string")
|
|
84
70
|
return content;
|
|
@@ -92,14 +78,6 @@ const textOf = (content) => {
|
|
|
92
78
|
.map((p) => p.text)
|
|
93
79
|
.join("\n");
|
|
94
80
|
};
|
|
95
|
-
// Pi entries form a tree via id → parentId (branching via /fork and tree
|
|
96
|
-
// navigation creates alternates). Follow the chain up from the active leaf —
|
|
97
|
-
// the last CONVERSATION entry (a message whose role is user/assistant) that is
|
|
98
|
-
// nobody's parent — so abandoned branches aren't imported twice. Restricting
|
|
99
|
-
// leaf candidates to conversation entries matters: bookkeeping entries
|
|
100
|
-
// (labels, custom extension state, model changes) can trail the file as
|
|
101
|
-
// childless nodes, and picking one of those would walk a one-entry branch.
|
|
102
|
-
// Falls back to file order when the chain is unwalkable (format drift).
|
|
103
81
|
const activeBranch = (entries) => {
|
|
104
82
|
const withId = entries.filter((e) => typeof e.id === "string");
|
|
105
83
|
const byId = new Map(withId.map((e) => [e.id, e]));
|
|
@@ -125,17 +103,7 @@ const activeBranch = (entries) => {
|
|
|
125
103
|
const chain = walk(leaf, [], new Set());
|
|
126
104
|
return chain.length > 0 ? chain : entries;
|
|
127
105
|
};
|
|
128
|
-
//
|
|
129
|
-
// <timestamp>_<uuid>.jsonl) into the normalized transcript shape. The first
|
|
130
|
-
// line is a {type:"session"} header carrying the session id and cwd; entry
|
|
131
|
-
// lines wrap AgentMessages ({type:"message", id, parentId, message}).
|
|
132
|
-
// user/assistant messages are conversation text; toolResult/bashExecution are
|
|
133
|
-
// separate entry types (not content blocks) whose output is lifted onto the
|
|
134
|
-
// preceding assistant message as a tool_result segment. Custom-role messages
|
|
135
|
-
// are extension-injected context (glen's own per-turn recall arrives as
|
|
136
|
-
// customType "glen-context"; importing it would feed glen's output back in as
|
|
137
|
-
// memory). Tolerant by design: unknown entry types, missing fields, and
|
|
138
|
-
// unparseable lines are skipped, never fatal.
|
|
106
|
+
// Skip custom-role messages: glen's own recall arrives as customType "glen-context", and importing it would feed it back as memory.
|
|
139
107
|
const parsePiTranscript = (lines, fallbackSessionId) => {
|
|
140
108
|
const entries = lines.map(parseLine).filter((e) => e !== null);
|
|
141
109
|
const header = entries.find((e) => e.type === "session");
|
|
@@ -178,8 +146,6 @@ const parsePiTranscript = (lines, fallbackSessionId) => {
|
|
|
178
146
|
}
|
|
179
147
|
if (messages.every((m) => m.text.trim() === "" && (m.segments?.length ?? 0) === 0))
|
|
180
148
|
return null;
|
|
181
|
-
// Assistant messages carry the model that produced them; the last one wins
|
|
182
|
-
// (the model can change mid-session via /model).
|
|
183
149
|
const lastModel = [...conversation]
|
|
184
150
|
.reverse()
|
|
185
151
|
.map((e) => messageOf(e)?.model)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-pi-transcript.js","sourceRoot":"","sources":["../../src/_utils/parse-pi-transcript.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AASnF,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,SAAS,GAAG,CAAC,CAAQ,EAAgB,EAAE,CAC3C,CAAC,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;IACjD,CAAC,CAAE,CAAC,CAAC,OAAiB;IACtB,CAAC,CAAC,IAAI,CAAC;AAEX,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":"parse-pi-transcript.js","sourceRoot":"","sources":["../../src/_utils/parse-pi-transcript.ts"],"names":[],"mappings":"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"}
|