@corenel/harness 0.12.0 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/audit/recorder.d.ts +6 -1
- package/dist/audit/recorder.d.ts.map +1 -1
- package/dist/audit/recorder.js +9 -2
- package/dist/audit/recorder.js.map +1 -1
- package/dist/audit/runAudit.d.ts.map +1 -1
- package/dist/audit/runAudit.js +2 -0
- package/dist/audit/runAudit.js.map +1 -1
- package/dist/conversation.d.ts +33 -0
- package/dist/conversation.d.ts.map +1 -1
- package/dist/conversation.js +44 -1
- package/dist/conversation.js.map +1 -1
- package/dist/core/compactHistory.d.ts +27 -18
- package/dist/core/compactHistory.d.ts.map +1 -1
- package/dist/core/compactHistory.js +106 -40
- package/dist/core/compactHistory.js.map +1 -1
- package/dist/core/fileChanges.d.ts +18 -0
- package/dist/core/fileChanges.d.ts.map +1 -0
- package/dist/core/fileChanges.js +85 -0
- package/dist/core/fileChanges.js.map +1 -0
- package/dist/core/foldBlocks.d.ts +43 -0
- package/dist/core/foldBlocks.d.ts.map +1 -0
- package/dist/core/foldBlocks.js +114 -0
- package/dist/core/foldBlocks.js.map +1 -0
- package/dist/core/foldTypes.d.ts +25 -0
- package/dist/core/foldTypes.d.ts.map +1 -0
- package/dist/core/foldTypes.js +2 -0
- package/dist/core/foldTypes.js.map +1 -0
- package/dist/core/loop.d.ts +29 -5
- package/dist/core/loop.d.ts.map +1 -1
- package/dist/core/loop.js +166 -70
- package/dist/core/loop.js.map +1 -1
- package/dist/core/recovery.d.ts +1 -0
- package/dist/core/recovery.d.ts.map +1 -1
- package/dist/core/recovery.js +12 -0
- package/dist/core/recovery.js.map +1 -1
- package/dist/core/spawn.d.ts +4 -0
- package/dist/core/spawn.d.ts.map +1 -1
- package/dist/core/spawn.js +11 -4
- package/dist/core/spawn.js.map +1 -1
- package/dist/core/summarize.d.ts +9 -3
- package/dist/core/summarize.d.ts.map +1 -1
- package/dist/core/summarize.js +97 -42
- package/dist/core/summarize.js.map +1 -1
- package/dist/dag/executeNode.d.ts +5 -0
- package/dist/dag/executeNode.d.ts.map +1 -1
- package/dist/dag/executeNode.js +5 -1
- package/dist/dag/executeNode.js.map +1 -1
- package/dist/guardrail/permission-service.d.ts.map +1 -1
- package/dist/guardrail/permission-service.js +11 -2
- package/dist/guardrail/permission-service.js.map +1 -1
- package/dist/guardrail/serialize.d.ts.map +1 -1
- package/dist/guardrail/serialize.js +4 -0
- package/dist/guardrail/serialize.js.map +1 -1
- package/dist/guardrail/validate.d.ts.map +1 -1
- package/dist/guardrail/validate.js +3 -1
- package/dist/guardrail/validate.js.map +1 -1
- package/dist/orchestrator/record.d.ts +94 -5
- package/dist/orchestrator/record.d.ts.map +1 -1
- package/dist/orchestrator/record.js +186 -5
- package/dist/orchestrator/record.js.map +1 -1
- package/dist/orchestrator/sidecarTools.d.ts +5 -0
- package/dist/orchestrator/sidecarTools.d.ts.map +1 -1
- package/dist/orchestrator/sidecarTools.js +53 -15
- package/dist/orchestrator/sidecarTools.js.map +1 -1
- package/dist/prompts/library/defaults.generated.js +2 -2
- package/dist/prompts/library/defaults.generated.js.map +1 -1
- package/dist/sessions/directivesStore.d.ts +9 -0
- package/dist/sessions/directivesStore.d.ts.map +1 -0
- package/dist/sessions/directivesStore.js +54 -0
- package/dist/sessions/directivesStore.js.map +1 -0
- package/dist/sessions/fileSessionStore.d.ts +2 -2
- package/dist/sessions/fileSessionStore.d.ts.map +1 -1
- package/dist/sessions/fileSessionStore.js +19 -8
- package/dist/sessions/fileSessionStore.js.map +1 -1
- package/dist/sessions/foldStorage.d.ts +15 -0
- package/dist/sessions/foldStorage.d.ts.map +1 -0
- package/dist/sessions/foldStorage.js +121 -0
- package/dist/sessions/foldStorage.js.map +1 -0
- package/dist/sessions/jsonl.d.ts +6 -0
- package/dist/sessions/jsonl.d.ts.map +1 -1
- package/dist/sessions/jsonl.js +15 -1
- package/dist/sessions/jsonl.js.map +1 -1
- package/dist/sidecar/deviceKeys.d.ts +75 -0
- package/dist/sidecar/deviceKeys.d.ts.map +1 -0
- package/dist/sidecar/deviceKeys.js +142 -0
- package/dist/sidecar/deviceKeys.js.map +1 -0
- package/dist/sidecar/host.d.ts +144 -24
- package/dist/sidecar/host.d.ts.map +1 -1
- package/dist/sidecar/host.js +306 -16
- package/dist/sidecar/host.js.map +1 -1
- package/dist/sidecar/identity.d.ts +41 -17
- package/dist/sidecar/identity.d.ts.map +1 -1
- package/dist/sidecar/identity.js +10 -21
- package/dist/sidecar/identity.js.map +1 -1
- package/dist/sidecar/server.d.ts +197 -28
- package/dist/sidecar/server.d.ts.map +1 -1
- package/dist/sidecar/server.js +701 -110
- package/dist/sidecar/server.js.map +1 -1
- package/dist/sidecar/testing.d.ts +97 -0
- package/dist/sidecar/testing.d.ts.map +1 -0
- package/dist/sidecar/testing.js +259 -0
- package/dist/sidecar/testing.js.map +1 -0
- package/dist/sidecar/wsChannel.d.ts +8 -1
- package/dist/sidecar/wsChannel.d.ts.map +1 -1
- package/dist/sidecar/wsChannel.js +17 -1
- package/dist/sidecar/wsChannel.js.map +1 -1
- package/dist/tools/callAgent.d.ts.map +1 -1
- package/dist/tools/callAgent.js +33 -13
- package/dist/tools/callAgent.js.map +1 -1
- package/dist/tools/foldTools.d.ts +5 -0
- package/dist/tools/foldTools.d.ts.map +1 -0
- package/dist/tools/foldTools.js +123 -0
- package/dist/tools/foldTools.js.map +1 -0
- package/dist/tools/orchestration.js +1 -1
- package/dist/tools/orchestration.js.map +1 -1
- package/dist/tools/skillTool.d.ts.map +1 -1
- package/dist/tools/skillTool.js +7 -2
- package/dist/tools/skillTool.js.map +1 -1
- package/package.json +2 -2
|
@@ -86,10 +86,10 @@ export const RAW_DEFAULTS = {
|
|
|
86
86
|
"crew/marketing-strategist/PERSONA.md": "Direct and commercially minded. Argues from the audience's position rather than the\nseller's.\n",
|
|
87
87
|
"crew/marketing-strategist/POLICY.yaml": "onViolation: stop\ndefaultPermission: ask\nmutatingDefault: ask\npermissions:\n read_file: allow\n list_files: allow\n search_files: allow\n stat_file: allow\n compile_prompd: allow\n web_search: allow\n save_memory: allow\n recall_memory: allow\n kv_get: allow\n kv_set: allow\nunattended: deny\n",
|
|
88
88
|
"crew/marketing-strategist/SOUL.md": "Allergic to language that sounds impressive and says nothing. Would rather make one\nsharp claim that some people reject than a broad one nobody remembers.\n",
|
|
89
|
-
"crew/orchestrator/AGENT.md": "---\nname: orchestrator\njobTitle: Orchestrator\ndescription: Turns a request into
|
|
89
|
+
"crew/orchestrator/AGENT.md": "---\nname: orchestrator\njobTitle: Orchestrator\ndescription: Turns a request into finished, checked work. Sets the task and its acceptance criteria, plans, delegates each step to a specialist and runs the confirmed checks. In a git repository it opens the pull request for a person to merge; anywhere else it reports what changed.\ntags:\n - planning\n - git\ntriggers:\n - type: manual\ncanCall:\n - senior-software-engineer\n - senior-test-engineer\n - code-reviewer\n - document-writer\n - research-analyst\n - generalist\norchestration:\n maxRounds: 3\n maxDelegations: 24\n traceRetentionDays: 30\n---\nYou coordinate; you do not write code. Specialists do the work, commands decide whether it passed, and a person decides what ships. Git is optional: when the work folder is a git repository and you have the git tools, the run ends in a pull request; otherwise the work happens in the folder as it is and the run ends in a report. Follow this loop in order.\n\n1. Readiness. Call set_task with a title, the body, and acceptance criteria: one testable statement each. If the request has no acceptance criteria you can test, set_task refuses. End your turn with specific questions and a proposed set of criteria for the user to confirm. Never invent them. If you have no tool that runs the confirmed checks, no check can run here (checks need a connected sidecar started with --allow-shell, with its checks confirmed in Settings): carry on, and say so in your report. If the acceptance criteria require a check that cannot run, say that plainly in the report.\n\n2. Plan. Call list_agents to see who you may call and what each may do; with many agents, pass a query describing a step (for example \"write tests\") to rank them. Load the writing-plans skill with use_skill and follow it. Follow it only for the plan's content and layout: do not save the plan file yourself and do not offer or wait for an execution choice; submit_plan records the plan and the host writes the file, and you then execute it as described below. Every task needs a `**Agent:** <name>` line naming an agent from list_agents; if the skill you loaded does not ask for one, add it yourself. Submit the whole plan with submit_plan with markdown. It is checked before anyone is asked: fix what it reports and submit again. If the person denies it, ask them what to change; do not resubmit the same plan.\n\n3. Branch. If you have sidecar_git_branch, call it. If it creates the branch, this run follows the git workflow. If it reports that the folder is not a git repository or that git is not installed, this run works without git: go on to step 4 in the folder as it is. If it refuses for any other reason (a dirty working tree, another run holding the folder), report why and stop. If you do not have sidecar_git_branch, work without git.\n\n4. Execute. For each plan task, call_agent with task: its number and a self-contained message: what to change, where, the acceptance criteria it serves, and what to report back. The agent you call cannot see this conversation. After implementation work, run the checks with sidecar_run_check when you have it. A red check goes back to the agent that can fix it, with the failing output. Then call code-reviewer; its findings go back to the implementer. You have a fixed number of review-and-fix rounds per agent: when the limit is reached, stop and report what still fails.\n\n5. Finish. When every check that can run is green and the review has no blocking findings: if this run follows the git workflow, call sidecar_git_commit with a message that says what changed and why, then sidecar_git_push, then sidecar_open_pr with a title and a body that lists the acceptance criteria and the check results, and report the pull request link. If this run works without git, do not call the git tools; finish with a report of what changed: the files touched, taken from the agents' reports. Either way, report the check results (or that no check could run), the rounds used and anything left undone.\n\nA check passes only when sidecar_run_check reports exit code 0; never report a pass on an agent's word. You never merge. A denied push or pull request is final for this run: say so and stop.\n",
|
|
90
90
|
"crew/orchestrator/PERSONA.md": "Brief and structured. Reports in steps, names who did what, and leads with anything that failed.\n",
|
|
91
91
|
"crew/orchestrator/POLICY.yaml": "onViolation: stop\ndefaultPermission: ask\nmutatingDefault: ask\npermissions:\n fs:read_file: allow\n fs:list_files: allow\n fs:search_files: allow\n fs:stat_file: allow\n prompd:compile_prompd: allow\n web:web_search: allow\n memory:save_memory: allow\n memory:recall_memory: allow\n memory:kv_get: allow\n memory:kv_set: ask\n set_task: allow\n list_agents: allow\n submit_plan: ask\n agent:call_agent: allow\n sidecar:run_check: allow\n sidecar:git_branch: allow\n sidecar:git_commit: allow\n sidecar:git_push: ask\n sidecar:open_pr: ask\n fs:write_file: deny\n fs:create_file: deny\n fs:rename_file: deny\n fs:delete_file: deny\n prompd:propose_edit: deny\n sidecar:write_file: deny\n sidecar:write_bytes: deny\n sidecar:delete: deny\n sidecar:shell_exec: deny\n shell:spawn: deny\nskills:\n - writing-plans\n - verification-before-completion\nunattended: park\n",
|
|
92
|
-
"crew/orchestrator/SOUL.md": "Owns the outcome, not the keystrokes. Would rather stop and say what is missing than hand over
|
|
92
|
+
"crew/orchestrator/SOUL.md": "Owns the outcome, not the keystrokes. Would rather stop and say what is missing than hand over work it cannot stand behind.\n",
|
|
93
93
|
"crew/research-analyst/AGENT.md": "---\nname: research-analyst\njobTitle: Research Analyst\ndescription: Gathers and weighs sources on a question, and reports what is supported separately from what is inferred.\ntags:\n - research\n - writing\ntriggers:\n - type: manual\n---\nPin down the question first. Vague questions produce confident, useless answers.\nRestate what is being asked, name the part you will answer, and say what you are\ntreating as out of scope.\n\nSearch before you answer, and search more than once. One query returns one\nneighbourhood of an argument. Look for the strongest case against your emerging\nanswer, not only for support of it.\n\nAttribute every claim. Say where each load-bearing fact came from and when it was\npublished. Where sources disagree, report the disagreement rather than silently\nchoosing a winner.\n\nSeparate what is supported from what you inferred. Both are useful; conflating\nthem is how a guess acquires the authority of a citation. Mark the inferences.\n\nSay how confident you are and what would change your mind. When the evidence is\nthin, say it is thin. \"I could not find good sources on this\" is a finding, and\nfar more useful than a fluent paragraph with nothing under it.\n",
|
|
94
94
|
"crew/research-analyst/PERSONA.md": "Measured and precise about certainty. Distinguishes \"the source says\" from \"this\nsuggests\" in the sentence itself.\n",
|
|
95
95
|
"crew/research-analyst/POLICY.yaml": "onViolation: stop\ndefaultPermission: ask\nmutatingDefault: ask\npermissions:\n read_file: allow\n list_files: allow\n search_files: allow\n stat_file: allow\n compile_prompd: allow\n web_search: allow\n save_memory: allow\n recall_memory: allow\n kv_get: allow\n kv_set: ask\n sidecar:shell_exec: deny\n shell:spawn: deny\nunattended: park\n",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.generated.js","sourceRoot":"","sources":["../../../prompts/library/defaults.generated.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"defaults.generated.js","sourceRoot":"","sources":["../../../prompts/library/defaults.generated.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { FileService } from '@corenel/protocol';
|
|
2
|
+
import type { DirectivesFile } from '../core/foldTypes';
|
|
3
|
+
type GetFiles = () => FileService | null | Promise<FileService | null>;
|
|
4
|
+
export declare const DIRECTIVES_FILE = "DIRECTIVES.md";
|
|
5
|
+
export declare function parseDirectivesFile(text: string): string[];
|
|
6
|
+
export declare function renderDirectivesFile(directives: string[]): string;
|
|
7
|
+
export declare function makeDirectivesFile(getFiles: GetFiles, root: string, sessionId: () => string | null): DirectivesFile;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=directivesStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"directivesStore.d.ts","sourceRoot":"","sources":["../../sessions/directivesStore.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,KAAK,QAAQ,GAAG,MAAM,WAAW,GAAG,IAAI,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;AAEvE,eAAO,MAAM,eAAe,kBAAkB,CAAC;AAI/C,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAI1D;AAID,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,CAGjE;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,cAAc,CAuBnH"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export const DIRECTIVES_FILE = 'DIRECTIVES.md';
|
|
2
|
+
const HEADER = '# Directives\n\nStanding instructions and decisions for this chat. Edit freely: one per "- " line.\n\n';
|
|
3
|
+
export function parseDirectivesFile(text) {
|
|
4
|
+
return text.split(/\r?\n/)
|
|
5
|
+
.map((l) => /^\s*[-*]\s+(.*\S)\s*$/.exec(l)?.[1] ?? '')
|
|
6
|
+
.filter(Boolean);
|
|
7
|
+
}
|
|
8
|
+
/* Whitespace inside a directive collapses to single spaces: a newline would
|
|
9
|
+
* split one bullet into a bullet plus a stray line the parser drops. */
|
|
10
|
+
export function renderDirectivesFile(directives) {
|
|
11
|
+
const lines = directives.map((d) => d.replace(/\s+/g, ' ').trim()).filter(Boolean);
|
|
12
|
+
return `${HEADER}${lines.map((d) => `- ${d}`).join('\n')}\n`;
|
|
13
|
+
}
|
|
14
|
+
export function makeDirectivesFile(getFiles, root, sessionId) {
|
|
15
|
+
const pathFor = (id) => `${root}/${id}/${DIRECTIVES_FILE}`;
|
|
16
|
+
return {
|
|
17
|
+
async read() {
|
|
18
|
+
const id = sessionId();
|
|
19
|
+
const files = await getFiles();
|
|
20
|
+
if (!id || !files)
|
|
21
|
+
return null;
|
|
22
|
+
try {
|
|
23
|
+
return parseDirectivesFile(await files.read(pathFor(id)));
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
async write(directives) {
|
|
30
|
+
const id = sessionId();
|
|
31
|
+
/* Reject, never silently drop: update_directives must not report a write
|
|
32
|
+
* that did not happen. */
|
|
33
|
+
if (!id)
|
|
34
|
+
throw new Error('This chat is not saved yet, so directives cannot be recorded until it is.');
|
|
35
|
+
const files = await getFiles();
|
|
36
|
+
if (!files)
|
|
37
|
+
throw new Error('No file workspace is connected, so directives cannot be recorded.');
|
|
38
|
+
const path = pathFor(id);
|
|
39
|
+
let readOk = false;
|
|
40
|
+
try {
|
|
41
|
+
await files.read(path);
|
|
42
|
+
readOk = true;
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
readOk = false;
|
|
46
|
+
}
|
|
47
|
+
if (readOk)
|
|
48
|
+
await files.write(path, renderDirectivesFile(directives));
|
|
49
|
+
else
|
|
50
|
+
await files.create(path, renderDirectivesFile(directives));
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=directivesStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"directivesStore.js","sourceRoot":"","sources":["../../sessions/directivesStore.ts"],"names":[],"mappings":"AAaA,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC;AAE/C,MAAM,MAAM,GAAG,wGAAwG,CAAC;AAExH,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;SACvB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACtD,MAAM,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC;AAED;wEACwE;AACxE,MAAM,UAAU,oBAAoB,CAAC,UAAoB;IACvD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnF,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAkB,EAAE,IAAY,EAAE,SAA8B;IACjG,MAAM,OAAO,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,EAAE,IAAI,eAAe,EAAE,CAAC;IACnE,OAAO;QACL,KAAK,CAAC,IAAI;YACR,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC;YAC/B,IAAI,CAAC;gBAAC,OAAO,mBAAmB,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,OAAO,IAAI,CAAC;YAAC,CAAC;QAC3F,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,UAAU;YACpB,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;YACvB;sCAC0B;YAC1B,IAAI,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;YACtG,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;YACjG,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;YACzB,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC;gBAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAAC,MAAM,GAAG,IAAI,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,KAAK,CAAC;YAAC,CAAC;YACxE,IAAI,MAAM;gBAAE,MAAM,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAC;;gBACjE,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAC;QAClE,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AgentSession, FileService, ISessionStore, SessionSurface, SessionPage, SessionPageQuery } from '@corenel/protocol';
|
|
1
|
+
import type { AgentSession, FileService, ISessionStore, SessionSaveOptions, SessionSurface, SessionPage, SessionPageQuery } from '@corenel/protocol';
|
|
2
2
|
export declare class JsonlSessionStore implements ISessionStore {
|
|
3
3
|
private getFiles;
|
|
4
4
|
private root;
|
|
@@ -50,7 +50,7 @@ export declare class JsonlSessionStore implements ISessionStore {
|
|
|
50
50
|
* timestamp would silently misorder the history.
|
|
51
51
|
*/
|
|
52
52
|
listPage(q: SessionPageQuery): Promise<SessionPage>;
|
|
53
|
-
save(session: AgentSession): Promise<void>;
|
|
53
|
+
save(session: AgentSession, opts?: SessionSaveOptions): Promise<void>;
|
|
54
54
|
/** Cursor for a session this instance hasn't touched (e.g. saved after a
|
|
55
55
|
* reload): fold the existing file, or start a fresh log from the session's
|
|
56
56
|
* own meta. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileSessionStore.d.ts","sourceRoot":"","sources":["../../sessions/fileSessionStore.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fileSessionStore.d.ts","sourceRoot":"","sources":["../../sessions/fileSessionStore.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EACV,YAAY,EAAY,WAAW,EAAE,aAAa,EAAE,kBAAkB,EAAE,cAAc,EACtF,WAAW,EAAkB,gBAAgB,EAC9C,MAAM,mBAAmB,CAAC;AAkE3B,qBAAa,iBAAkB,YAAW,aAAa;IAInD,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,IAAI;IASZ,OAAO,CAAC,KAAK;IAbf,OAAO,CAAC,OAAO,CAA6B;gBAGlC,QAAQ,EAAE,MAAM,WAAW,GAAG,IAAI,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,EAChE,IAAI,GAAE,MAAM,MAAqB,EASjC,KAAK,GAAE,MAAM,MAAM,GAAG,SAA2B;YAG7C,KAAK;IAmBnB,OAAO,CAAC,UAAU,CAA6B;IAE/C,8EAA8E;IAC9E,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAI1C,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,IAAI;IAIN,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAelH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAgBnD;;;;;+EAK2E;YAQ7D,YAAY;IAO1B,uFAAuF;mBAClE,WAAW;IAKhC,OAAO,CAAC,MAAM,CAAC,MAAM;IAIf,IAAI,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAK7D,uFAAuF;mBAClE,OAAO;IAM5B;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,QAAQ,CAAC,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IA4DnD,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAqC/E;;mBAEe;YACD,IAAI;IAsBZ,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYhD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAIxC"}
|
|
@@ -145,6 +145,7 @@ export class JsonlSessionStore {
|
|
|
145
145
|
turnJson: ses.messages.map((m) => JSON.stringify(m)),
|
|
146
146
|
title: ses.title,
|
|
147
147
|
titleLocked: ses.titleLocked,
|
|
148
|
+
model: ses.model,
|
|
148
149
|
});
|
|
149
150
|
}
|
|
150
151
|
return ses;
|
|
@@ -266,25 +267,34 @@ export class JsonlSessionStore {
|
|
|
266
267
|
more,
|
|
267
268
|
};
|
|
268
269
|
}
|
|
269
|
-
async save(session) {
|
|
270
|
+
async save(session, opts = {}) {
|
|
270
271
|
// Compute the timestamp candidate up front but don't touch `session` until we
|
|
271
272
|
// know something actually changed — a no-op save must not mutate the caller's
|
|
272
273
|
// object (it should be indistinguishable from not having called save() at all).
|
|
273
274
|
const at = now();
|
|
274
275
|
const cur = this.cursors.get(session.id) ?? (await this.seed(session));
|
|
275
|
-
const
|
|
276
|
+
const own = session.messages.map((m) => JSON.stringify(m));
|
|
277
|
+
const shorter = own.length < cur.turnJson.length;
|
|
278
|
+
// Not allowed to shorten: the stored messages past ours stay, and the
|
|
279
|
+
// cursor says so.
|
|
280
|
+
const turnJson = shorter && opts.allowTruncate === false ? [...own, ...cur.turnJson.slice(own.length)] : own;
|
|
276
281
|
const appended = [];
|
|
277
|
-
|
|
282
|
+
// Before the turn lines: they then rebuild on the shortened list.
|
|
283
|
+
if (turnJson.length < cur.turnJson.length) {
|
|
284
|
+
appended.push(encodeLine({ k: 'truncate', at, n: turnJson.length }));
|
|
285
|
+
}
|
|
286
|
+
for (let i = 0; i < own.length; i++) {
|
|
278
287
|
if (cur.turnJson[i] !== turnJson[i]) {
|
|
279
288
|
appended.push(encodeLine({ k: 'turn', i, at, m: session.messages[i] }));
|
|
280
289
|
}
|
|
281
290
|
}
|
|
282
|
-
if (session.title !== cur.title || session.titleLocked !== cur.titleLocked) {
|
|
291
|
+
if (session.title !== cur.title || session.titleLocked !== cur.titleLocked || session.model !== cur.model) {
|
|
283
292
|
appended.push(encodeLine({
|
|
284
293
|
k: 'meta-update',
|
|
285
294
|
at,
|
|
286
295
|
title: session.title,
|
|
287
296
|
...(session.titleLocked !== undefined ? { titleLocked: session.titleLocked } : {}),
|
|
297
|
+
...(session.model !== undefined ? { model: session.model } : {}),
|
|
288
298
|
}));
|
|
289
299
|
}
|
|
290
300
|
if (!appended.length)
|
|
@@ -292,7 +302,7 @@ export class JsonlSessionStore {
|
|
|
292
302
|
session.updatedAt = at;
|
|
293
303
|
const text = cur.text + appended.join('');
|
|
294
304
|
await (await this.files()).write(this.path(session.id), text);
|
|
295
|
-
this.cursors.set(session.id, { text, turnJson, title: session.title, titleLocked: session.titleLocked });
|
|
305
|
+
this.cursors.set(session.id, { text, turnJson, title: session.title, titleLocked: session.titleLocked, model: session.model });
|
|
296
306
|
}
|
|
297
307
|
/** Cursor for a session this instance hasn't touched (e.g. saved after a
|
|
298
308
|
* reload): fold the existing file, or start a fresh log from the session's
|
|
@@ -302,7 +312,7 @@ export class JsonlSessionStore {
|
|
|
302
312
|
if (text != null) {
|
|
303
313
|
const ses = foldSession(text);
|
|
304
314
|
if (ses) {
|
|
305
|
-
return { text, turnJson: ses.messages.map((m) => JSON.stringify(m)), title: ses.title, titleLocked: ses.titleLocked };
|
|
315
|
+
return { text, turnJson: ses.messages.map((m) => JSON.stringify(m)), title: ses.title, titleLocked: ses.titleLocked, model: ses.model };
|
|
306
316
|
}
|
|
307
317
|
}
|
|
308
318
|
/* The session's OWN owner, not this store's current one. Re-stamping with
|
|
@@ -314,8 +324,9 @@ export class JsonlSessionStore {
|
|
|
314
324
|
k: 'meta', id: session.id, title: session.title, createdAt: session.createdAt,
|
|
315
325
|
...(session.surface ? { surface: session.surface } : {}),
|
|
316
326
|
...(session.owner ? { owner: session.owner } : {}),
|
|
327
|
+
...(session.model ? { model: session.model } : {}),
|
|
317
328
|
});
|
|
318
|
-
return { text: meta, turnJson: [], title: session.title, titleLocked: undefined };
|
|
329
|
+
return { text: meta, turnJson: [], title: session.title, titleLocked: undefined, model: session.model };
|
|
319
330
|
}
|
|
320
331
|
async rename(id, title) {
|
|
321
332
|
const cur = this.cursors.get(id);
|
|
@@ -326,7 +337,7 @@ export class JsonlSessionStore {
|
|
|
326
337
|
await (await this.files()).write(this.path(id), next);
|
|
327
338
|
const folded = foldSession(next);
|
|
328
339
|
if (folded) {
|
|
329
|
-
this.cursors.set(id, { text: next, turnJson: folded.messages.map((m) => JSON.stringify(m)), title, titleLocked: true });
|
|
340
|
+
this.cursors.set(id, { text: next, turnJson: folded.messages.map((m) => JSON.stringify(m)), title, titleLocked: true, model: folded.model });
|
|
330
341
|
}
|
|
331
342
|
}
|
|
332
343
|
async delete(id) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileSessionStore.js","sourceRoot":"","sources":["../../sessions/fileSessionStore.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fileSessionStore.js","sourceRoot":"","sources":["../../sessions/fileSessionStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { FileService } from '@corenel/protocol';
|
|
2
|
+
import type { FoldStorage } from '../core/foldTypes';
|
|
3
|
+
type GetFiles = () => FileService | null | Promise<FileService | null>;
|
|
4
|
+
/** The raw messages folds removed, one JSON message per line, beside
|
|
5
|
+
* SESSION.jsonl. A host may save the folded array over its history (the REPL
|
|
6
|
+
* does) or save only after the run (the daemon does); either way this file is
|
|
7
|
+
* what lets recall_history still find a folded message. */
|
|
8
|
+
export declare const ARCHIVE_FILE = "ARCHIVE.jsonl";
|
|
9
|
+
export declare function makeSessionFoldStorage(opts: {
|
|
10
|
+
getFiles: GetFiles;
|
|
11
|
+
root: string;
|
|
12
|
+
sessionId: () => string | null;
|
|
13
|
+
}): FoldStorage;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=foldStorage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"foldStorage.d.ts","sourceRoot":"","sources":["../../sessions/foldStorage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAMrD,KAAK,QAAQ,GAAG,MAAM,WAAW,GAAG,IAAI,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;AAEvE;;;2DAG2D;AAC3D,eAAO,MAAM,YAAY,kBAAkB,CAAC;AA0B5C,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,WAAW,CA2D9H"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { makeCheckpointStore, CHECKPOINT_FILE } from './checkpointStore.js';
|
|
2
|
+
import { makeDirectivesFile } from './directivesStore.js';
|
|
3
|
+
import { foldSession } from './jsonl.js';
|
|
4
|
+
import { mergeDirectives } from '../core/foldBlocks.js';
|
|
5
|
+
/** The raw messages folds removed, one JSON message per line, beside
|
|
6
|
+
* SESSION.jsonl. A host may save the folded array over its history (the REPL
|
|
7
|
+
* does) or save only after the run (the daemon does); either way this file is
|
|
8
|
+
* what lets recall_history still find a folded message. */
|
|
9
|
+
export const ARCHIVE_FILE = 'ARCHIVE.jsonl';
|
|
10
|
+
const NOT_SAVED = 'This chat is not saved yet, so its history cannot be searched.';
|
|
11
|
+
const NO_FILES = 'No file workspace is connected, so this chat\'s history cannot be searched.';
|
|
12
|
+
/** Same write rule as checkpointStore.ts: never write a path not successfully
|
|
13
|
+
* read. A failed read goes to `create`, which rejects when the file exists. */
|
|
14
|
+
async function appendArchive(files, path, collapsed) {
|
|
15
|
+
const lines = collapsed.map((m) => `${JSON.stringify(m)}\n`).join('');
|
|
16
|
+
let existing = null;
|
|
17
|
+
try {
|
|
18
|
+
existing = await files.read(path);
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
existing = null;
|
|
22
|
+
}
|
|
23
|
+
if (existing === null) {
|
|
24
|
+
await files.create(path, lines);
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const sep = existing && !existing.endsWith('\n') ? '\n' : '';
|
|
28
|
+
await files.write(path, `${existing}${sep}${lines}`);
|
|
29
|
+
}
|
|
30
|
+
function parseArchive(text) {
|
|
31
|
+
const out = [];
|
|
32
|
+
for (const line of text.split('\n')) {
|
|
33
|
+
const s = line.trim();
|
|
34
|
+
if (!s)
|
|
35
|
+
continue;
|
|
36
|
+
try {
|
|
37
|
+
out.push(JSON.parse(s));
|
|
38
|
+
}
|
|
39
|
+
catch { /* a torn line is skipped, not fatal */ }
|
|
40
|
+
}
|
|
41
|
+
return out;
|
|
42
|
+
}
|
|
43
|
+
export function makeSessionFoldStorage(opts) {
|
|
44
|
+
const { getFiles, root, sessionId } = opts;
|
|
45
|
+
const checkpoints = makeCheckpointStore(getFiles, root);
|
|
46
|
+
const directives = makeDirectivesFile(getFiles, root, sessionId);
|
|
47
|
+
return {
|
|
48
|
+
/* The in-context list is CAPPED (oldest dropped first); the file is not.
|
|
49
|
+
* Merge rather than replace, so a directive the cap pushed out of context
|
|
50
|
+
* is still on disk -- and, since the file wins at the next fold, the user
|
|
51
|
+
* can see and prune it there.
|
|
52
|
+
*
|
|
53
|
+
* The archive goes first: it is the only copy of what left the context. */
|
|
54
|
+
async onFold(r) {
|
|
55
|
+
const id = sessionId();
|
|
56
|
+
if (!id)
|
|
57
|
+
return;
|
|
58
|
+
const files = await getFiles();
|
|
59
|
+
if (files && r.collapsed.length)
|
|
60
|
+
await appendArchive(files, `${root}/${id}/${ARCHIVE_FILE}`, r.collapsed);
|
|
61
|
+
await checkpoints.append(id, r.summary);
|
|
62
|
+
const existing = (await directives.read()) ?? [];
|
|
63
|
+
await directives.write(mergeDirectives(existing, r.directives, Number.MAX_SAFE_INTEGER));
|
|
64
|
+
},
|
|
65
|
+
directives,
|
|
66
|
+
transcript: {
|
|
67
|
+
/* Archive (oldest) then the session, de-duplicated by exact JSON: a host
|
|
68
|
+
* that saves raw history holds the same messages in both. Either file
|
|
69
|
+
* alone is a transcript; neither readable is an error, never an empty
|
|
70
|
+
* "no matches". */
|
|
71
|
+
async messages() {
|
|
72
|
+
const id = sessionId();
|
|
73
|
+
if (!id)
|
|
74
|
+
throw new Error(NOT_SAVED);
|
|
75
|
+
const files = await getFiles();
|
|
76
|
+
if (!files)
|
|
77
|
+
throw new Error(NO_FILES);
|
|
78
|
+
let archived = null;
|
|
79
|
+
try {
|
|
80
|
+
archived = parseArchive(await files.read(`${root}/${id}/${ARCHIVE_FILE}`));
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
archived = null;
|
|
84
|
+
}
|
|
85
|
+
let session = null;
|
|
86
|
+
let sessionErr = null;
|
|
87
|
+
try {
|
|
88
|
+
session = foldSession(await files.read(`${root}/${id}/SESSION.jsonl`))?.messages ?? [];
|
|
89
|
+
}
|
|
90
|
+
catch (e) {
|
|
91
|
+
sessionErr = e;
|
|
92
|
+
}
|
|
93
|
+
if (archived === null && session === null)
|
|
94
|
+
throw sessionErr;
|
|
95
|
+
const seen = new Set();
|
|
96
|
+
const out = [];
|
|
97
|
+
for (const m of [...(archived ?? []), ...(session ?? [])]) {
|
|
98
|
+
const k = JSON.stringify(m);
|
|
99
|
+
if (seen.has(k))
|
|
100
|
+
continue;
|
|
101
|
+
seen.add(k);
|
|
102
|
+
out.push(m);
|
|
103
|
+
}
|
|
104
|
+
return out;
|
|
105
|
+
},
|
|
106
|
+
async checkpoints() {
|
|
107
|
+
const id = sessionId();
|
|
108
|
+
const files = await getFiles();
|
|
109
|
+
if (!id || !files)
|
|
110
|
+
return null;
|
|
111
|
+
try {
|
|
112
|
+
return await files.read(`${root}/${id}/${CHECKPOINT_FILE}`);
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=foldStorage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"foldStorage.js","sourceRoot":"","sources":["../../sessions/foldStorage.ts"],"names":[],"mappings":"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"}
|
package/dist/sessions/jsonl.d.ts
CHANGED
|
@@ -10,11 +10,13 @@ export type SessionLine = {
|
|
|
10
10
|
sessionId?: string;
|
|
11
11
|
agent: string;
|
|
12
12
|
};
|
|
13
|
+
model?: string;
|
|
13
14
|
} | {
|
|
14
15
|
k: 'meta-update';
|
|
15
16
|
at: number;
|
|
16
17
|
title?: string;
|
|
17
18
|
titleLocked?: boolean;
|
|
19
|
+
model?: string;
|
|
18
20
|
} | {
|
|
19
21
|
k: 'turn';
|
|
20
22
|
i: number;
|
|
@@ -24,6 +26,10 @@ export type SessionLine = {
|
|
|
24
26
|
k: 'moved';
|
|
25
27
|
roomId: string;
|
|
26
28
|
at: number;
|
|
29
|
+
} | {
|
|
30
|
+
k: 'truncate';
|
|
31
|
+
at: number;
|
|
32
|
+
n: number;
|
|
27
33
|
};
|
|
28
34
|
export declare function encodeLine(line: SessionLine): string;
|
|
29
35
|
/** Fold a SESSION.jsonl text into an AgentSession, or null when no valid meta
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsonl.d.ts","sourceRoot":"","sources":["../../sessions/jsonl.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"jsonl.d.ts","sourceRoot":"","sources":["../../sessions/jsonl.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEtE,MAAM,MAAM,WAAW,GACnB;IACE,CAAC,EAAE,MAAM,CAAC;IACV,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACD;IAAE,CAAC,EAAE,aAAa,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACvF;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,OAAO,CAAA;CAAE,GAChD;IAAE,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,CAAC,EAAE,UAAU,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7C,wBAAgB,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAEpD;AAED;uCACuC;AACvC,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAuD7D"}
|
package/dist/sessions/jsonl.js
CHANGED
|
@@ -5,9 +5,10 @@ export function encodeLine(line) {
|
|
|
5
5
|
* line exists (empty/foreign file). */
|
|
6
6
|
export function foldSession(text) {
|
|
7
7
|
let meta = null;
|
|
8
|
-
|
|
8
|
+
let turns = [];
|
|
9
9
|
let title = '';
|
|
10
10
|
let titleLocked;
|
|
11
|
+
let model;
|
|
11
12
|
let movedTo;
|
|
12
13
|
let updatedAt = 0;
|
|
13
14
|
for (const raw of text.split('\n')) {
|
|
@@ -24,6 +25,8 @@ export function foldSession(text) {
|
|
|
24
25
|
if (line.k === 'meta' && !meta && typeof line.id === 'string' && typeof line.createdAt === 'number') {
|
|
25
26
|
meta = line;
|
|
26
27
|
title = typeof line.title === 'string' ? line.title : '';
|
|
28
|
+
if (typeof line.model === 'string')
|
|
29
|
+
model = line.model;
|
|
27
30
|
updatedAt = Math.max(updatedAt, line.createdAt);
|
|
28
31
|
}
|
|
29
32
|
else if (line.k === 'meta-update' && typeof line.at === 'number') {
|
|
@@ -31,12 +34,22 @@ export function foldSession(text) {
|
|
|
31
34
|
title = line.title;
|
|
32
35
|
if (typeof line.titleLocked === 'boolean')
|
|
33
36
|
titleLocked = line.titleLocked;
|
|
37
|
+
if (typeof line.model === 'string')
|
|
38
|
+
model = line.model;
|
|
34
39
|
updatedAt = Math.max(updatedAt, line.at);
|
|
35
40
|
}
|
|
36
41
|
else if (line.k === 'turn' && Number.isInteger(line.i) && line.i >= 0 && typeof line.at === 'number') {
|
|
37
42
|
turns[line.i] = line.m;
|
|
38
43
|
updatedAt = Math.max(updatedAt, line.at);
|
|
39
44
|
}
|
|
45
|
+
else if (line.k === 'truncate' && Number.isInteger(line.n) && line.n >= 0 && typeof line.at === 'number') {
|
|
46
|
+
// `n` counts the writer's messages, which are the DENSE list (a lost
|
|
47
|
+
// turn line leaves a hole here that the writer never saw): close the
|
|
48
|
+
// holes first, so the cut lands where the writer meant it.
|
|
49
|
+
turns = turns.filter((t) => t !== undefined);
|
|
50
|
+
turns.length = Math.min(turns.length, line.n);
|
|
51
|
+
updatedAt = Math.max(updatedAt, line.at);
|
|
52
|
+
}
|
|
40
53
|
else if (line.k === 'moved' && typeof line.roomId === 'string' && typeof line.at === 'number') {
|
|
41
54
|
movedTo = { movedToRoom: line.roomId, at: line.at };
|
|
42
55
|
updatedAt = Math.max(updatedAt, line.at);
|
|
@@ -56,6 +69,7 @@ export function foldSession(text) {
|
|
|
56
69
|
// would reach a comparison that decides how a row is drawn.
|
|
57
70
|
...(typeof meta.owner === 'string' && meta.owner ? { owner: meta.owner } : {}),
|
|
58
71
|
...(titleLocked !== undefined ? { titleLocked } : {}),
|
|
72
|
+
...(model ? { model } : {}),
|
|
59
73
|
...(movedTo !== undefined ? { movedTo } : {}),
|
|
60
74
|
...(meta.parent && typeof meta.parent.agent === 'string' ? { parent: meta.parent } : {}),
|
|
61
75
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsonl.js","sourceRoot":"","sources":["../../sessions/jsonl.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"jsonl.js","sourceRoot":"","sources":["../../sessions/jsonl.ts"],"names":[],"mappings":"AAiCA,MAAM,UAAU,UAAU,CAAC,IAAiB;IAC1C,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACrC,CAAC;AAED;uCACuC;AACvC,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,IAAI,IAAI,GAA+C,IAAI,CAAC;IAC5D,IAAI,KAAK,GAAc,EAAE,CAAC;IAC1B,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,WAAgC,CAAC;IACrC,IAAI,KAAyB,CAAC;IAC9B,IAAI,OAAwD,CAAC;IAC7D,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,IAAI,IAAiB,CAAC;QACtB,IAAI,CAAC;YAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAgB,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,SAAS;QAAC,CAAC;QAChE,IAAI,IAAI,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YACpG,IAAI,GAAG,IAAI,CAAC;YACZ,KAAK,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;gBAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvD,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAClD,CAAC;aAAM,IAAI,IAAI,CAAC,CAAC,KAAK,aAAa,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;YACnE,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;gBAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvD,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,SAAS;gBAAE,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAC1E,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;gBAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvD,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,IAAI,CAAC,CAAC,KAAK,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;YACvG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YACvB,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,IAAI,CAAC,CAAC,KAAK,UAAU,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;YAC3G,qEAAqE;YACrE,qEAAqE;YACrE,2DAA2D;YAC3D,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;YAC7C,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9C,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,IAAI,CAAC,CAAC,KAAK,OAAO,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;YAChG,OAAO,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;YACpD,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IACD,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,KAAK;QACL,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,SAAS,EAAE,SAAS,IAAI,IAAI,CAAC,SAAS;QACtC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC;QAC9C,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,uEAAuE;QACvE,2EAA2E;QAC3E,4DAA4D;QAC5D,GAAG,CAAC,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzF,CAAC;AACJ,CAAC"}
|