spexcode 0.6.7 → 0.6.8
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 +12 -7
- package/node_modules/@spexcode/session-application/dist/index.d.ts +17 -0
- package/node_modules/@spexcode/session-application/dist/index.js +35 -0
- package/node_modules/@spexcode/session-application/dist/migration.d.ts +51 -0
- package/node_modules/@spexcode/session-application/dist/migration.js +694 -0
- package/node_modules/@spexcode/session-application/dist/production.d.ts +109 -0
- package/node_modules/@spexcode/session-application/dist/production.js +438 -0
- package/node_modules/@spexcode/session-application/dist/schema.d.ts +2 -0
- package/node_modules/@spexcode/session-application/dist/schema.js +39 -0
- package/node_modules/@spexcode/session-application/package.json +29 -0
- package/node_modules/@spexcode/session-events/dist/errors.d.ts +6 -0
- package/node_modules/@spexcode/session-events/dist/errors.js +11 -0
- package/node_modules/@spexcode/session-events/dist/index.d.ts +46 -0
- package/node_modules/@spexcode/session-events/dist/index.js +245 -0
- package/node_modules/@spexcode/session-events/dist/schema.d.ts +3 -0
- package/node_modules/@spexcode/session-events/dist/schema.js +44 -0
- package/node_modules/@spexcode/session-events/package.json +24 -0
- package/node_modules/@spexcode/session-protocol/dist/canonical.d.ts +36 -0
- package/node_modules/@spexcode/session-protocol/dist/canonical.js +139 -0
- package/node_modules/@spexcode/session-protocol/dist/engine.d.ts +22 -0
- package/node_modules/@spexcode/session-protocol/dist/engine.js +478 -0
- package/node_modules/@spexcode/session-protocol/dist/errors.d.ts +8 -0
- package/node_modules/@spexcode/session-protocol/dist/errors.js +39 -0
- package/node_modules/@spexcode/session-protocol/dist/index.d.ts +60 -0
- package/node_modules/@spexcode/session-protocol/dist/index.js +4 -0
- package/node_modules/@spexcode/session-protocol/dist/schema.d.ts +36 -0
- package/node_modules/@spexcode/session-protocol/dist/schema.js +192 -0
- package/node_modules/@spexcode/{session-core → session-protocol}/package.json +4 -8
- package/node_modules/@spexcode/session-runtime/dist/errors.d.ts +6 -0
- package/node_modules/@spexcode/session-runtime/dist/errors.js +11 -0
- package/node_modules/@spexcode/session-runtime/dist/index.d.ts +33 -0
- package/node_modules/@spexcode/session-runtime/dist/index.js +193 -0
- package/node_modules/@spexcode/session-runtime/dist/schema.d.ts +2 -0
- package/node_modules/@spexcode/session-runtime/dist/schema.js +37 -0
- package/node_modules/@spexcode/session-runtime/package.json +24 -0
- package/node_modules/@spexcode/session-selflaunch/bin/spex-session.mjs +4 -0
- package/node_modules/@spexcode/session-selflaunch/dist/cli.d.ts +25 -0
- package/node_modules/@spexcode/session-selflaunch/dist/cli.js +156 -0
- package/node_modules/@spexcode/session-selflaunch/dist/index.d.ts +28 -0
- package/node_modules/@spexcode/session-selflaunch/dist/index.js +25 -0
- package/node_modules/@spexcode/session-selflaunch/dist/locality.d.ts +20 -0
- package/node_modules/@spexcode/session-selflaunch/dist/locality.js +83 -0
- package/node_modules/@spexcode/session-selflaunch/dist/path.d.ts +13 -0
- package/node_modules/@spexcode/session-selflaunch/dist/path.js +45 -0
- package/node_modules/@spexcode/session-selflaunch/package.json +35 -0
- package/node_modules/@spexcode/session-topology/dist/errors.d.ts +6 -0
- package/node_modules/@spexcode/session-topology/dist/errors.js +11 -0
- package/node_modules/@spexcode/session-topology/dist/index.d.ts +24 -0
- package/node_modules/@spexcode/session-topology/dist/index.js +173 -0
- package/node_modules/@spexcode/session-topology/dist/schema.d.ts +3 -0
- package/node_modules/@spexcode/session-topology/dist/schema.js +27 -0
- package/node_modules/@spexcode/session-topology/package.json +24 -0
- package/node_modules/@spexcode/spec-cli/bin/spex.mjs +56 -19
- package/node_modules/@spexcode/spec-cli/dist/cli.js +102 -59
- package/node_modules/@spexcode/spec-cli/dist/client.d.ts +1 -3
- package/node_modules/@spexcode/spec-cli/dist/client.js +49 -30
- package/node_modules/@spexcode/spec-cli/dist/codex-runtime-generations.d.ts +11 -0
- package/node_modules/@spexcode/spec-cli/dist/codex-runtime-generations.js +46 -9
- package/node_modules/@spexcode/spec-cli/dist/delivery-lock.d.ts +2 -0
- package/node_modules/@spexcode/spec-cli/dist/delivery-lock.js +58 -0
- package/node_modules/@spexcode/spec-cli/dist/doctor.js +53 -11
- package/node_modules/@spexcode/spec-cli/dist/execution-trace.d.ts +1 -0
- package/node_modules/@spexcode/spec-cli/dist/execution-trace.js +2 -2
- package/node_modules/@spexcode/spec-cli/dist/gateway-hub.js +2 -1
- package/node_modules/@spexcode/spec-cli/dist/gateway.js +6 -3
- package/node_modules/@spexcode/spec-cli/dist/graphCache.js +32 -2
- package/node_modules/@spexcode/spec-cli/dist/graphSnapshot.js +57 -2
- package/node_modules/@spexcode/spec-cli/dist/graphStream.d.ts +2 -0
- package/node_modules/@spexcode/spec-cli/dist/graphStream.js +83 -3
- package/node_modules/@spexcode/spec-cli/dist/guide.js +20 -7
- package/node_modules/@spexcode/spec-cli/dist/harness-select.js +16 -3
- package/node_modules/@spexcode/spec-cli/dist/harness.d.ts +15 -3
- package/node_modules/@spexcode/spec-cli/dist/harness.js +331 -50
- package/node_modules/@spexcode/spec-cli/dist/help.js +11 -8
- package/node_modules/@spexcode/spec-cli/dist/hook-prompts.js +8 -0
- package/node_modules/@spexcode/spec-cli/dist/host-resources.js +29 -8
- package/node_modules/@spexcode/spec-cli/dist/host.d.ts +7 -0
- package/node_modules/@spexcode/spec-cli/dist/host.js +93 -0
- package/node_modules/@spexcode/spec-cli/dist/index.js +324 -22
- package/node_modules/@spexcode/spec-cli/dist/init.js +1 -1
- package/node_modules/@spexcode/spec-cli/dist/lint.js +70 -35
- package/node_modules/@spexcode/spec-cli/dist/listen.d.ts +3 -2
- package/node_modules/@spexcode/spec-cli/dist/listen.js +14 -2
- package/node_modules/@spexcode/spec-cli/dist/machine-peer.js +1 -1
- package/node_modules/@spexcode/spec-cli/dist/materialize.d.ts +2 -2
- package/node_modules/@spexcode/spec-cli/dist/materialize.js +176 -35
- package/node_modules/@spexcode/spec-cli/dist/pty-bridge.js +14 -14
- package/node_modules/@spexcode/spec-cli/dist/reviews.js +12 -7
- package/node_modules/@spexcode/spec-cli/dist/runtime-ownership.d.ts +11 -0
- package/node_modules/@spexcode/spec-cli/dist/runtime-ownership.js +79 -1
- package/node_modules/@spexcode/spec-cli/dist/session-application.d.ts +23 -0
- package/node_modules/@spexcode/spec-cli/dist/session-application.js +189 -0
- package/node_modules/@spexcode/spec-cli/dist/session-declarations.js +13 -1
- package/node_modules/@spexcode/spec-cli/dist/session-files.d.ts +6 -0
- package/node_modules/@spexcode/spec-cli/dist/session-files.js +13 -1
- package/node_modules/@spexcode/spec-cli/dist/session-follow.js +39 -22
- package/node_modules/@spexcode/{session-core/dist/record-lock.d.ts → spec-cli/dist/session-record-lock.d.ts} +0 -4
- package/node_modules/@spexcode/spec-cli/dist/session-record-lock.js +94 -0
- package/node_modules/@spexcode/spec-cli/dist/session-runtime-adapter.d.ts +44 -0
- package/node_modules/@spexcode/spec-cli/dist/session-runtime-adapter.js +37 -0
- package/node_modules/@spexcode/spec-cli/dist/session-timeline.d.ts +25 -2
- package/node_modules/@spexcode/spec-cli/dist/session-timeline.js +68 -11
- package/node_modules/@spexcode/spec-cli/dist/session-web.js +4 -4
- package/node_modules/@spexcode/spec-cli/dist/sessions.d.ts +108 -15
- package/node_modules/@spexcode/spec-cli/dist/sessions.js +1465 -744
- package/node_modules/@spexcode/spec-cli/dist/source-list.d.ts +13 -0
- package/node_modules/@spexcode/spec-cli/dist/source-list.js +99 -0
- package/node_modules/@spexcode/spec-cli/dist/source-read.d.ts +16 -0
- package/node_modules/@spexcode/spec-cli/dist/source-read.js +84 -0
- package/node_modules/@spexcode/spec-cli/dist/spec-attachments.d.ts +7 -0
- package/node_modules/@spexcode/spec-cli/dist/spec-attachments.js +89 -0
- package/node_modules/@spexcode/spec-cli/dist/spec-body-edit.d.ts +23 -0
- package/node_modules/@spexcode/spec-cli/dist/spec-body-edit.js +138 -0
- package/node_modules/@spexcode/spec-cli/dist/supervise.js +15 -6
- package/node_modules/@spexcode/spec-cli/dist/transcript-reader.d.ts +36 -0
- package/node_modules/@spexcode/spec-cli/dist/transcript-reader.js +251 -0
- package/node_modules/@spexcode/spec-cli/hooks/dispatch.sh +19 -31
- package/node_modules/@spexcode/spec-cli/hooks/harness.sh +6 -6
- package/node_modules/@spexcode/spec-cli/package.json +6 -6
- package/node_modules/@spexcode/spec-cli/templates/hooks/post-checkout +4 -2
- package/node_modules/@spexcode/spec-cli/templates/hooks/post-merge +2 -1
- package/node_modules/@spexcode/spec-cli/templates/hooks/pre-commit +5 -3
- package/node_modules/@spexcode/spec-cli/templates/hooks/reference-transaction +5 -3
- package/node_modules/@spexcode/spec-cli/templates/spec/project/.plugins/commands/spec.md +2 -7
- package/node_modules/@spexcode/spec-cli/templates/spec/project/.plugins/core/idle/idle.sh +4 -10
- package/node_modules/@spexcode/spec-cli/templates/spec/project/.plugins/core/idle/spec.md +1 -1
- package/node_modules/@spexcode/spec-cli/templates/spec/project/.plugins/core/mark-active/mark-active.sh +22 -24
- package/node_modules/@spexcode/spec-cli/templates/spec/project/.plugins/core/mark-active/spec.md +10 -2
- package/node_modules/@spexcode/spec-cli/templates/spec/project/.plugins/core/session-fail/fail.sh +8 -7
- package/node_modules/@spexcode/spec-cli/templates/spec/project/.plugins/core/session-fail/spec.md +3 -1
- package/node_modules/@spexcode/spec-cli/templates/spec/project/.plugins/core/session-listen/session-listen.sh +133 -0
- package/node_modules/@spexcode/spec-cli/templates/spec/project/.plugins/core/session-listen/spec.md +36 -0
- package/node_modules/@spexcode/spec-cli/templates/spec/project/.plugins/core/spec.md +2 -0
- package/node_modules/@spexcode/spec-cli/templates/spec/project/.plugins/core/stop-gate/spec.md +1 -1
- package/node_modules/@spexcode/spec-cli/templates/spec/project/.plugins/core/stop-gate/stop-gate.sh +17 -20
- package/node_modules/@spexcode/spec-cli/templates/spec/project/.plugins/skills/merge/spec.md +33 -0
- package/node_modules/@spexcode/spec-cli/templates/spec/project/.plugins/skills/spec.md +2 -6
- package/node_modules/@spexcode/spec-cli/templates/spec/project/.plugins/spec.md +7 -0
- package/node_modules/@spexcode/spec-core/dist/anchors.d.ts +13 -2
- package/node_modules/@spexcode/spec-core/dist/anchors.js +311 -15
- package/node_modules/@spexcode/spec-core/dist/git.d.ts +4 -0
- package/node_modules/@spexcode/spec-core/dist/git.js +9 -9
- package/node_modules/@spexcode/spec-core/dist/layout.d.ts +12 -0
- package/node_modules/@spexcode/spec-core/dist/layout.js +4 -2
- package/node_modules/@spexcode/spec-core/dist/resilience.d.ts +1 -0
- package/node_modules/@spexcode/spec-core/dist/resilience.js +8 -0
- package/node_modules/@spexcode/spec-core/dist/review/reviewFilters.d.ts +1 -0
- package/node_modules/@spexcode/spec-core/dist/review/reviewFilters.js +7 -3
- package/node_modules/@spexcode/spec-core/dist/review/reviewQuery.d.ts +1 -0
- package/node_modules/@spexcode/spec-core/dist/review/reviewQuery.js +4 -0
- package/node_modules/@spexcode/spec-core/dist/specs.d.ts +2 -0
- package/node_modules/@spexcode/spec-core/dist/specs.js +30 -0
- package/node_modules/@spexcode/spec-core/package.json +4 -1
- package/node_modules/@spexcode/spec-eval/dist/cli.js +1 -1
- package/node_modules/@spexcode/spec-eval/dist/evaltab.d.ts +1 -0
- package/node_modules/@spexcode/spec-eval/dist/evaltab.js +6 -1
- package/node_modules/@spexcode/spec-eval/dist/freshness.d.ts +1 -1
- package/node_modules/@spexcode/spec-eval/dist/freshness.js +12 -12
- package/node_modules/@spexcode/spec-eval/dist/host.d.ts +2 -1
- package/node_modules/@spexcode/spec-eval/dist/sessioneval.d.ts +2 -1
- package/node_modules/@spexcode/spec-eval/dist/sessioneval.js +20 -3
- package/node_modules/@spexcode/spec-eval/package.json +2 -2
- package/node_modules/@spexcode/spec-forge/package.json +2 -2
- package/node_modules/@vscode/tree-sitter-wasm/LICENSE +21 -0
- package/node_modules/@vscode/tree-sitter-wasm/README.md +36 -0
- package/node_modules/@vscode/tree-sitter-wasm/SECURITY.md +41 -0
- package/node_modules/@vscode/tree-sitter-wasm/cgmanifest.json +16 -0
- package/node_modules/@vscode/tree-sitter-wasm/package.json +42 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/tree-sitter-bash.wasm +0 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/tree-sitter-c-sharp.wasm +0 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/tree-sitter-cpp.wasm +0 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/tree-sitter-css.wasm +0 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/tree-sitter-go.wasm +0 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/tree-sitter-ini.wasm +0 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/tree-sitter-java.wasm +0 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/tree-sitter-javascript.wasm +0 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/tree-sitter-php.wasm +0 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/tree-sitter-powershell.wasm +0 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/tree-sitter-python.wasm +0 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/tree-sitter-regex.wasm +0 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/tree-sitter-ruby.wasm +0 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/tree-sitter-rust.wasm +0 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/tree-sitter-tsx.wasm +0 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/tree-sitter-typescript.wasm +0 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/tree-sitter.js +4075 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/tree-sitter.wasm +0 -0
- package/node_modules/@vscode/tree-sitter-wasm/wasm/web-tree-sitter.d.ts +1027 -0
- package/package.json +9 -3
- package/node_modules/@spexcode/session-core/dist/delivery-queue.d.ts +0 -24
- package/node_modules/@spexcode/session-core/dist/delivery-queue.js +0 -206
- package/node_modules/@spexcode/session-core/dist/index.d.ts +0 -5
- package/node_modules/@spexcode/session-core/dist/index.js +0 -5
- package/node_modules/@spexcode/session-core/dist/internal.d.ts +0 -3
- package/node_modules/@spexcode/session-core/dist/internal.js +0 -3
- package/node_modules/@spexcode/session-core/dist/message.d.ts +0 -22
- package/node_modules/@spexcode/session-core/dist/message.js +0 -53
- package/node_modules/@spexcode/session-core/dist/record-lock.js +0 -152
- package/node_modules/@spexcode/session-core/dist/runtime-session.d.ts +0 -62
- package/node_modules/@spexcode/session-core/dist/runtime-session.js +0 -326
- package/node_modules/@spexcode/session-core/dist/session-cursors.d.ts +0 -14
- package/node_modules/@spexcode/session-core/dist/session-cursors.js +0 -82
- package/node_modules/@spexcode/session-core/dist/session-timeline.d.ts +0 -47
- package/node_modules/@spexcode/session-core/dist/session-timeline.js +0 -216
- package/node_modules/@spexcode/spec-cli/hooks/compat/mark-active-0.5.2-eef1.fixture +0 -53
- package/node_modules/@spexcode/spec-cli/hooks/compat/mark-active-sed-v0.fixture +0 -46
package/README.md
CHANGED
|
@@ -83,13 +83,18 @@ spex init --harness claude,codex,opencode,pi,zcode,claude-headless,opencode-head
|
|
|
83
83
|
```
|
|
84
84
|
|
|
85
85
|
That's the whole adoption. The example lists all the built-in harnesses; remove the ones you don't
|
|
86
|
-
use (`--harness` is required and takes any one id or comma-separated subset).
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
(`CLAUDE.md`, `AGENTS.md`): read the
|
|
91
|
-
|
|
92
|
-
workflow on its own.
|
|
86
|
+
use (`--harness` is required and takes any one id or comma-separated subset). Want the spec asset and
|
|
87
|
+
nothing wired into an agent? `--harness none` adopts L0 alone and writes nothing into any agent's config.
|
|
88
|
+
`spex init` works on any existing git repo and does three things: it seeds a root
|
|
89
|
+
`.spec/project/spec.md` plus a starter `spexcode.json`, installs the git hooks, and **materializes**
|
|
90
|
+
the workflow rules into the files your agent already reads (`CLAUDE.md`, `AGENTS.md`): read the
|
|
91
|
+
governing spec before the code, land spec and code in one commit, propose merges instead of
|
|
92
|
+
performing them. Any agent that opens the repo discovers the workflow on its own.
|
|
93
|
+
|
|
94
|
+
It is additive, and never replaces a file you own. Where a harness discovers its hooks inside your own
|
|
95
|
+
config (`.claude/settings.json`, `.codex/hooks.json`), only SpexCode's entries are merged in — your
|
|
96
|
+
permissions, env and hooks stay — and `spex uninstall` takes back exactly those entries. A skill or
|
|
97
|
+
agent name you already use is skipped and reported, never overwritten.
|
|
93
98
|
|
|
94
99
|
When you want the live board (the graph, sessions, evals), start the runtime:
|
|
95
100
|
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Message, MessageInput, SessionProtocol } from '@spexcode/session-protocol';
|
|
2
|
+
import type { SessionTopology, TopologyEdge } from '@spexcode/session-topology';
|
|
3
|
+
export interface NotificationResult {
|
|
4
|
+
edge: TopologyEdge | null;
|
|
5
|
+
recipients: string[];
|
|
6
|
+
messages: Message[];
|
|
7
|
+
}
|
|
8
|
+
export interface SessionApplication {
|
|
9
|
+
notifyRecipients(subjectSessionId: string, message: MessageInput): NotificationResult;
|
|
10
|
+
attachAndNotify(fromSessionId: string, subjectSessionId: string, relationType: string, message: MessageInput): NotificationResult;
|
|
11
|
+
}
|
|
12
|
+
export declare function openSessionApplication(protocol: SessionProtocol, topology: SessionTopology): SessionApplication;
|
|
13
|
+
export { openProjectSessionApplication } from './production.js';
|
|
14
|
+
export { jsonMigrationFencePath, legacyResidueExists, migrateJsonSessionRecords, MIGRATED_MESSAGE_EVENT, MIGRATED_STATE_EVENT } from './migration.js';
|
|
15
|
+
export type { CommittedSessionChange, ConversationMessageInput, CreateSessionInput, LocalityPrecondition, NativeRuntimeIdentity, ProductionSessionApplication, ProjectSessionApplicationOptions, SessionState, SessionStateChange, TransitionSessionInput, } from './production.js';
|
|
16
|
+
export type { SessionEvent } from '@spexcode/session-events';
|
|
17
|
+
export type { JsonMigrationRecord, JsonResidueMigrationReport, JsonSessionMigrationOptions, JsonSessionMigrationReport, } from './migration.js';
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
function enqueueForRecipients(tx, topology, subjectSessionId, message) {
|
|
2
|
+
const recipients = topology.recipients(subjectSessionId, tx);
|
|
3
|
+
const messages = recipients.map(recipient => tx.enqueue(recipient, {
|
|
4
|
+
...message,
|
|
5
|
+
senderSessionId: message.senderSessionId === undefined
|
|
6
|
+
? subjectSessionId
|
|
7
|
+
: message.senderSessionId,
|
|
8
|
+
}));
|
|
9
|
+
return { edge: null, recipients, messages };
|
|
10
|
+
}
|
|
11
|
+
export function openSessionApplication(protocol, topology) {
|
|
12
|
+
if (!protocol || typeof protocol.withTransaction !== 'function') {
|
|
13
|
+
throw new TypeError('session application requires a live protocol handle');
|
|
14
|
+
}
|
|
15
|
+
if (!topology || typeof topology.recipients !== 'function' || typeof topology.attach !== 'function') {
|
|
16
|
+
throw new TypeError('session application requires a live topology handle');
|
|
17
|
+
}
|
|
18
|
+
const run = (subjectSessionId, message, edge, tx) => {
|
|
19
|
+
const result = enqueueForRecipients(tx, topology, subjectSessionId, message);
|
|
20
|
+
return { ...result, edge };
|
|
21
|
+
};
|
|
22
|
+
return {
|
|
23
|
+
notifyRecipients(subjectSessionId, message) {
|
|
24
|
+
return protocol.withTransaction(tx => run(subjectSessionId, message, null, tx));
|
|
25
|
+
},
|
|
26
|
+
attachAndNotify(fromSessionId, subjectSessionId, relationType, message) {
|
|
27
|
+
return protocol.withTransaction(tx => {
|
|
28
|
+
const edge = topology.attach(tx, fromSessionId, subjectSessionId, relationType);
|
|
29
|
+
return run(subjectSessionId, message, edge, tx);
|
|
30
|
+
});
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export { openProjectSessionApplication } from './production.js';
|
|
35
|
+
export { jsonMigrationFencePath, legacyResidueExists, migrateJsonSessionRecords, MIGRATED_MESSAGE_EVENT, MIGRATED_STATE_EVENT } from './migration.js';
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { type LocalityPrecondition, type ProductionSessionApplication } from './production.js';
|
|
2
|
+
/** Migrated legacy history keeps the live payload shapes under its own ignorable types: a timeline projection
|
|
3
|
+
* shows it beside live events, while state replay (which knows only the live types) skips it as history. */
|
|
4
|
+
export declare const MIGRATED_STATE_EVENT = "session.state.migrated.v1";
|
|
5
|
+
export declare const MIGRATED_MESSAGE_EVENT = "session.message.migrated.v1";
|
|
6
|
+
export interface JsonMigrationRecord {
|
|
7
|
+
session_id: string;
|
|
8
|
+
status: string;
|
|
9
|
+
parent?: string | null;
|
|
10
|
+
createdAt?: number;
|
|
11
|
+
[key: string]: unknown;
|
|
12
|
+
}
|
|
13
|
+
export interface JsonSessionMigrationOptions {
|
|
14
|
+
databasePath: string;
|
|
15
|
+
recordsRoot: string;
|
|
16
|
+
locality: LocalityPrecondition;
|
|
17
|
+
backupRoot?: string;
|
|
18
|
+
now?: () => number;
|
|
19
|
+
orphanParentPolicy?: 'fail' | 'tombstone';
|
|
20
|
+
/** A caller that already owns the open canonical application lends it for residue import; otherwise the
|
|
21
|
+
* importer opens and closes its own handle. */
|
|
22
|
+
application?: ProductionSessionApplication;
|
|
23
|
+
}
|
|
24
|
+
/** The durable fence shared by the one-time importer and legacy JSON writers. */
|
|
25
|
+
export declare function jsonMigrationFencePath(recordsRoot: string): string;
|
|
26
|
+
export interface JsonResidueMigrationReport {
|
|
27
|
+
sourceDigest: string;
|
|
28
|
+
records: number;
|
|
29
|
+
events: number;
|
|
30
|
+
parentEdges: number;
|
|
31
|
+
watchEdges: number;
|
|
32
|
+
pending: number;
|
|
33
|
+
unclaimed: string[];
|
|
34
|
+
backupRoot: string;
|
|
35
|
+
}
|
|
36
|
+
export interface JsonSessionMigrationReport {
|
|
37
|
+
version: number;
|
|
38
|
+
sourceDigest: string;
|
|
39
|
+
records: number;
|
|
40
|
+
parentEdges: number;
|
|
41
|
+
watchEdges: number;
|
|
42
|
+
events: number;
|
|
43
|
+
orphanParents: string[];
|
|
44
|
+
backupRoot: string;
|
|
45
|
+
markerPath: string;
|
|
46
|
+
replayed: boolean;
|
|
47
|
+
residue?: JsonResidueMigrationReport;
|
|
48
|
+
}
|
|
49
|
+
/** Whether the legacy tree still holds anything the canonical store must absorb before the tree is retired. */
|
|
50
|
+
export declare function legacyResidueExists(recordsRoot: string): boolean;
|
|
51
|
+
export declare function migrateJsonSessionRecords(options: JsonSessionMigrationOptions): JsonSessionMigrationReport;
|