@xrkseek/harness 0.1.31 → 0.2.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/node_modules/@xrkseek/core-agent/dist/index.d.ts +1 -2
- package/node_modules/@xrkseek/core-agent/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-agent/dist/index.js +6 -6
- package/node_modules/@xrkseek/core-agent/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/core-agent-loop/dist/cancel-finalize.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-agent-loop/dist/cancel-finalize.js +2 -2
- package/node_modules/@xrkseek/core-agent-loop/dist/cancel-finalize.js.map +1 -1
- package/node_modules/@xrkseek/core-agent-loop/dist/compaction.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-agent-loop/dist/compaction.js +2 -2
- package/node_modules/@xrkseek/core-agent-loop/dist/compaction.js.map +1 -1
- package/node_modules/@xrkseek/core-agent-loop/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-agent-loop/dist/index.js +10 -11
- package/node_modules/@xrkseek/core-agent-loop/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/core-agent-loop/dist/request-header-log.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-agent-loop/dist/request-header-log.js +3 -6
- package/node_modules/@xrkseek/core-agent-loop/dist/request-header-log.js.map +1 -1
- package/node_modules/@xrkseek/core-session/README.md +15 -12
- package/node_modules/@xrkseek/core-session/dist/admit.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/admit.js +6 -5
- package/node_modules/@xrkseek/core-session/dist/admit.js.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/dangling.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/dangling.js +2 -1
- package/node_modules/@xrkseek/core-session/dist/dangling.js.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/index.d.ts +3 -1
- package/node_modules/@xrkseek/core-session/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/index.js +23 -20
- package/node_modules/@xrkseek/core-session/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/list-hints.d.ts +13 -0
- package/node_modules/@xrkseek/core-session/dist/list-hints.d.ts.map +1 -0
- package/node_modules/@xrkseek/core-session/dist/list-hints.js +29 -0
- package/node_modules/@xrkseek/core-session/dist/list-hints.js.map +1 -0
- package/node_modules/@xrkseek/core-session/dist/repair-open-turn.d.ts +2 -0
- package/node_modules/@xrkseek/core-session/dist/repair-open-turn.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/repair-open-turn.js +4 -0
- package/node_modules/@xrkseek/core-session/dist/repair-open-turn.js.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/seq.d.ts +102 -0
- package/node_modules/@xrkseek/core-session/dist/seq.d.ts.map +1 -0
- package/node_modules/@xrkseek/core-session/dist/seq.js +122 -0
- package/node_modules/@xrkseek/core-session/dist/seq.js.map +1 -0
- package/node_modules/@xrkseek/core-session/dist/sqlite-store.d.ts +7 -3
- package/node_modules/@xrkseek/core-session/dist/sqlite-store.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/sqlite-store.js +24 -13
- package/node_modules/@xrkseek/core-session/dist/sqlite-store.js.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/store.d.ts +13 -1
- package/node_modules/@xrkseek/core-session/dist/store.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/tool-result-prune.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/tool-result-prune.js +2 -1
- package/node_modules/@xrkseek/core-session/dist/tool-result-prune.js.map +1 -1
- package/node_modules/@xrkseek/exec-pty/dist/handle.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-pty/dist/handle.js +21 -16
- package/node_modules/@xrkseek/exec-pty/dist/handle.js.map +1 -1
- package/node_modules/@xrkseek/exec-pty/dist/index.d.ts +1 -1
- package/node_modules/@xrkseek/exec-pty/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-pty/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/exec-pty/dist/process-inspector.d.ts +45 -4
- package/node_modules/@xrkseek/exec-pty/dist/process-inspector.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-pty/dist/process-inspector.js +140 -48
- package/node_modules/@xrkseek/exec-pty/dist/process-inspector.js.map +1 -1
- package/node_modules/@xrkseek/face-session-query/dist/index.d.ts +1 -1
- package/node_modules/@xrkseek/face-session-query/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/face-session-query/dist/index.js +2 -1
- package/node_modules/@xrkseek/face-session-query/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/preset-harness/dist/preset.d.ts.map +1 -1
- package/node_modules/@xrkseek/preset-harness/dist/preset.js +3 -3
- package/node_modules/@xrkseek/preset-harness/dist/preset.js.map +1 -1
- package/node_modules/@xrkseek/preset-harness/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@xrkseek/preset-minimal/dist/preset.d.ts.map +1 -1
- package/node_modules/@xrkseek/preset-minimal/dist/preset.js +3 -3
- package/node_modules/@xrkseek/preset-minimal/dist/preset.js.map +1 -1
- package/node_modules/@xrkseek/preset-minimal/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@xrkseek/preset-server/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@xrkseek/protocol/dist/permission-knobs.d.ts.map +1 -1
- package/node_modules/@xrkseek/protocol/dist/permission-knobs.js +6 -1
- package/node_modules/@xrkseek/protocol/dist/permission-knobs.js.map +1 -1
- package/node_modules/@xrkseek/protocol/dist/plan-mode.d.ts.map +1 -1
- package/node_modules/@xrkseek/protocol/dist/plan-mode.js +6 -9
- package/node_modules/@xrkseek/protocol/dist/plan-mode.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/adapt/history-paginate.d.ts +4 -0
- package/node_modules/@xrkseek/server-face/dist/adapt/history-paginate.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/adapt/history-paginate.js +4 -2
- package/node_modules/@xrkseek/server-face/dist/adapt/history-paginate.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/approvals.d.ts +1 -1
- package/node_modules/@xrkseek/server-face/dist/approvals.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/approvals.js +2 -1
- package/node_modules/@xrkseek/server-face/dist/approvals.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/attach-http.d.ts +5 -4
- package/node_modules/@xrkseek/server-face/dist/attach-http.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/attach-http.js +6 -9
- package/node_modules/@xrkseek/server-face/dist/attach-http.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/context.d.ts +7 -0
- package/node_modules/@xrkseek/server-face/dist/context.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/cost-meter-record.d.ts +1 -1
- package/node_modules/@xrkseek/server-face/dist/cost-meter-record.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/cost-meter-record.js +5 -1
- package/node_modules/@xrkseek/server-face/dist/cost-meter-record.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/goal-store.js +2 -2
- package/node_modules/@xrkseek/server-face/dist/goal-store.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/catalog.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/catalog.js +2 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/catalog.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/session-added.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/session-added.js +2 -2
- package/node_modules/@xrkseek/server-face/dist/handlers/session-added.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/session.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/session.js +35 -20
- package/node_modules/@xrkseek/server-face/dist/handlers/session.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/index.d.ts +3 -2
- package/node_modules/@xrkseek/server-face/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/index.js +3 -2
- package/node_modules/@xrkseek/server-face/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/message-feedback.d.ts +1 -1
- package/node_modules/@xrkseek/server-face/dist/message-feedback.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/message-feedback.js +2 -1
- package/node_modules/@xrkseek/server-face/dist/message-feedback.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/permissions.d.ts +1 -1
- package/node_modules/@xrkseek/server-face/dist/permissions.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/permissions.js +3 -2
- package/node_modules/@xrkseek/server-face/dist/permissions.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/plan-mode.d.ts +1 -1
- package/node_modules/@xrkseek/server-face/dist/plan-mode.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/plan-mode.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/questions.d.ts +1 -1
- package/node_modules/@xrkseek/server-face/dist/questions.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/questions.js +2 -1
- package/node_modules/@xrkseek/server-face/dist/questions.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/runtime.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/runtime.js +16 -17
- package/node_modules/@xrkseek/server-face/dist/runtime.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/seq.d.ts +19 -2
- package/node_modules/@xrkseek/server-face/dist/seq.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/seq.js +25 -2
- package/node_modules/@xrkseek/server-face/dist/seq.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-export.js +2 -2
- package/node_modules/@xrkseek/server-face/dist/session-export.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-search.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-search.js +8 -3
- package/node_modules/@xrkseek/server-face/dist/session-search.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/slash.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/slash.js +4 -3
- package/node_modules/@xrkseek/server-face/dist/slash.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/subagent-tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/subagent-tools.js +2 -1
- package/node_modules/@xrkseek/server-face/dist/subagent-tools.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/ws-heartbeat.d.ts +21 -0
- package/node_modules/@xrkseek/server-face/dist/ws-heartbeat.d.ts.map +1 -0
- package/node_modules/@xrkseek/server-face/dist/ws-heartbeat.js +59 -0
- package/node_modules/@xrkseek/server-face/dist/ws-heartbeat.js.map +1 -0
- package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.d.ts +0 -3
- package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.js +5 -1
- package/node_modules/@xrkseek/server-host/dist/sidebar-face-bridge.js.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/index.js +15 -25
- package/node_modules/@xrkseek/server-http/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/index.d.ts +3 -1
- package/node_modules/@xrkseek/workspace/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/index.js +5 -2
- package/node_modules/@xrkseek/workspace/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/skill-dirs.d.ts +0 -4
- package/node_modules/@xrkseek/workspace/dist/skill-dirs.d.ts.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/skill-dirs.js +0 -4
- package/node_modules/@xrkseek/workspace/dist/skill-dirs.js.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/skills.d.ts +1 -1
- package/node_modules/@xrkseek/workspace/dist/skills.d.ts.map +1 -1
- package/node_modules/@xrkseek/workspace/dist/skills.js +1 -1
- package/node_modules/@xrkseek/workspace/dist/skills.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { readSessionEvents } from "./seq.js";
|
|
1
2
|
import { flattenText, isPromptDelivery, mergeMessageContents } from "@xrkseek/protocol";
|
|
2
3
|
/**
|
|
3
4
|
* Admit / promote — inbox for user text that is not yet model-visible.
|
|
@@ -90,7 +91,7 @@ export class AdmitNotPendingError extends Error {
|
|
|
90
91
|
}
|
|
91
92
|
/** Withdraw one pending admit (inbox remove / rewrite). */
|
|
92
93
|
export function withdrawAdmit(store, sessionId, admitId, options) {
|
|
93
|
-
const pending = listPendingAdmits(store
|
|
94
|
+
const pending = listPendingAdmits(readSessionEvents(store, sessionId), sessionId);
|
|
94
95
|
if (!pending.some((p) => p.admitId === admitId)) {
|
|
95
96
|
throw new AdmitNotPendingError(admitId);
|
|
96
97
|
}
|
|
@@ -107,7 +108,7 @@ export function withdrawAdmit(store, sessionId, admitId, options) {
|
|
|
107
108
|
* Does not append user/message — caller passes content into continueTurn/runTurn.
|
|
108
109
|
*/
|
|
109
110
|
export function promoteNextAdmit(store, sessionId, options) {
|
|
110
|
-
const events = store
|
|
111
|
+
const events = readSessionEvents(store, sessionId);
|
|
111
112
|
const pending = listPendingAdmits(events, sessionId);
|
|
112
113
|
const next = pending.find((p) => p.delivery === "steer") ?? pending[0];
|
|
113
114
|
if (!next)
|
|
@@ -129,7 +130,7 @@ export function promoteNextAdmit(store, sessionId, options) {
|
|
|
129
130
|
* Queues stay pending.
|
|
130
131
|
*/
|
|
131
132
|
export function promoteAdmitsForTurn(store, sessionId, options) {
|
|
132
|
-
const pending = listPendingAdmits(store
|
|
133
|
+
const pending = listPendingAdmits(readSessionEvents(store, sessionId), sessionId);
|
|
133
134
|
if (!pending.length)
|
|
134
135
|
throw new NoPendingAdmitError();
|
|
135
136
|
const hasSteer = pending.some((p) => p.delivery === "steer");
|
|
@@ -145,7 +146,7 @@ export function promoteAdmitsForTurn(store, sessionId, options) {
|
|
|
145
146
|
}
|
|
146
147
|
const receipts = [];
|
|
147
148
|
for (;;) {
|
|
148
|
-
const still = listPendingAdmits(store
|
|
149
|
+
const still = listPendingAdmits(readSessionEvents(store, sessionId), sessionId);
|
|
149
150
|
const nextSteer = still.find((p) => p.delivery === "steer");
|
|
150
151
|
if (!nextSteer)
|
|
151
152
|
break;
|
|
@@ -166,7 +167,7 @@ export function promoteAdmitsForTurn(store, sessionId, options) {
|
|
|
166
167
|
* Returns undefined when no steers are pending.
|
|
167
168
|
*/
|
|
168
169
|
export function promotePendingSteers(store, sessionId, options) {
|
|
169
|
-
const pending = listPendingAdmits(store
|
|
170
|
+
const pending = listPendingAdmits(readSessionEvents(store, sessionId), sessionId);
|
|
170
171
|
if (!pending.some((p) => p.delivery === "steer"))
|
|
171
172
|
return undefined;
|
|
172
173
|
return promoteAdmitsForTurn(store, sessionId, options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admit.js","sourceRoot":"","sources":["../src/admit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"admit.js","sourceRoot":"","sources":["../src/admit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dangling.d.ts","sourceRoot":"","sources":["../src/dangling.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dangling.d.ts","sourceRoot":"","sources":["../src/dangling.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAKhE,OAAO,EACL,YAAY,EACZ,4BAA4B,EAC5B,oBAAoB,EACpB,oCAAoC,GACrC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,yDAAyD;AACzD,eAAO,MAAM,wBAAwB,+BAA+B,CAAC;AAErE,+EAA+E;AAC/E,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAEnD,wEAAwE;AACxE,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAE3D,eAAO,MAAM,wBAAwB,6GACuE,CAAC;AAE7G,eAAO,MAAM,4BAA4B,8TACoR,CAAC;AAE9T,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,mBAAmB,CAAC;CACpD;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAC;gBAEnC,QAAQ,EAAE,SAAS,gBAAgB,EAAE;CAMlD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,YAAY,EAAE,GAC9B,SAAS,gBAAgB,EAAE,CAkC7B;AAED,6CAA6C;AAC7C,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,GAAG,IAAI,CAK5E;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,gBAAgB,GAAG;IACvD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAClE,CAWA;AAED,wBAAgB,+BAA+B,IAAI;IACjD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAClE,CAQA;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,yBAAyB,CAAC;CACrD;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;CAC/C;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,qBAA0B,GAClC,oBAAoB,CAuBtB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { readSessionEvents } from "./seq.js";
|
|
1
2
|
import { TOOL_ABORTED_BEFORE_DISPATCH, TOOL_ABORTED_BEFORE_DISPATCH_MESSAGE, } from "@xrkseek/protocol";
|
|
2
3
|
export { TOOL_ABORTED, TOOL_ABORTED_BEFORE_DISPATCH, TOOL_ABORTED_MESSAGE, TOOL_ABORTED_BEFORE_DISPATCH_MESSAGE, } from "@xrkseek/protocol";
|
|
3
4
|
/** @deprecated Prefer source-specific messages below. */
|
|
@@ -91,7 +92,7 @@ export function abortedBeforeDispatchSettlement() {
|
|
|
91
92
|
*/
|
|
92
93
|
export function settleDanglingTools(store, sessionId, options = {}) {
|
|
93
94
|
const now = options.now ?? Date.now;
|
|
94
|
-
const dangling = listDanglingToolCalls(store
|
|
95
|
+
const dangling = listDanglingToolCalls(readSessionEvents(store, sessionId));
|
|
95
96
|
for (const d of dangling) {
|
|
96
97
|
const settled = options.kind === "aborted-before-dispatch"
|
|
97
98
|
? abortedBeforeDispatchSettlement()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dangling.js","sourceRoot":"","sources":["../src/dangling.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dangling.js","sourceRoot":"","sources":["../src/dangling.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,8 @@ export { TOOL_INTERRUPTED_MESSAGE, TOOL_NOT_STARTED, TOOL_NOT_STARTED_MESSAGE, T
|
|
|
10
10
|
export { TOOL_RESULT_PRUNE_HEAD_CHARS, TOOL_RESULT_PRUNE_META_PREV_TOKENS, TOOL_RESULT_PRUNE_TAIL_CHARS, TOOL_RESULT_PRUNE_THRESHOLD_CHARS, pruneOversizedToolResults, pruneToolResultText, type ToolResultPruneOptions, type ToolResultPruneResult, } from "./tool-result-prune.js";
|
|
11
11
|
export { foldRequestHeader, llmConfigEquals, requestHeaderEquals, canonicalRequestHeader, type RequestHeaderSnapshot, } from "./request-header.js";
|
|
12
12
|
export type { SessionListHints, SessionRecord, SessionStore, } from "./store.js";
|
|
13
|
+
export { SessionLogOffset, SessionSeq, SessionSeqCursor, eventAt, eventCount, lastSessionEvent, readSessionEvents, resolveHalfOpenEventRange, sessionEventAt, sessionEventCount, sessionEventsFrom, snapshotEvents, type SessionLogOffset as SessionLogOffsetType, type SessionLogReader, type SessionSeq as SessionSeqType, type SessionSeqCursor as SessionSeqCursorType, } from "./seq.js";
|
|
14
|
+
export { computeListHints, sessionListHints, } from "./list-hints.js";
|
|
13
15
|
import type { SessionRecord, SessionStore } from "./store.js";
|
|
14
16
|
export declare function createMemorySessionStore(): SessionStore;
|
|
15
17
|
/** Project model-facing history from the append-only log. */
|
|
@@ -33,7 +35,7 @@ export declare function assertModelVisible(events: readonly SessionEvent[], requ
|
|
|
33
35
|
export { fromJSONL, parseJSONL, toJSONL, type ParseJSONLResult } from "./jsonl.js";
|
|
34
36
|
export { createPersistentSessionStore, ftsMatchQuery, SESSION_DB_FILENAME, SESSION_SCHEMA_VERSION, type PersistentSessionStore, type PersistentSessionStoreOptions, } from "./sqlite-store.js";
|
|
35
37
|
export { expandPackedStorageRecords, fromPackedJSONL, fromPackedJSONLZstd, isPackedChunkRow, isTextChunkRow, isToolCallChunkRow, packChunkRunsForExport, parsePackedJSONL, toPackedJSONL, zstdCompressUtf8, zstdDecompressUtf8, type PackedStorageRecord, type ParsePackedJSONLResult, type TextChunkRow, type ToolCallChunkRow, } from "./chunk-pack.js";
|
|
36
|
-
export { repairOpenTurnEvents } from "./repair-open-turn.js";
|
|
38
|
+
export { repairOpenTurnEvents, sessionHasOpenTurn, } from "./repair-open-turn.js";
|
|
37
39
|
export { extractEventSearchText, extractSessionSearchTexts, } from "./search-text.js";
|
|
38
40
|
export { writeTextFileAtomicSync } from "./atomic-write.js";
|
|
39
41
|
export declare function forkSession(store: SessionStore, sourceId: string, boundaryIndex?: number, childId?: string): SessionRecord;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGnE,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,OAAO,GACb,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,qBAAqB,EACrB,KAAK,eAAe,GACrB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,GAC1B,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,0BAA0B,EAC1B,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,gCAAgC,EAChC,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,oBAAoB,GAC1B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,2BAA2B,EAC3B,gCAAgC,EAChC,8BAA8B,EAC9B,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,oBAAoB,EACpB,wBAAwB,EACxB,wBAAwB,EACxB,gBAAgB,EAChB,KAAK,iBAAiB,GACvB,MAAM,iBAAiB,CAAC;AAQzB,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,4BAA4B,EAC5B,4BAA4B,EAC5B,oCAAoC,EACpC,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,+BAA+B,EAC/B,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,GAC1B,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,4BAA4B,EAC5B,kCAAkC,EAClC,4BAA4B,EAC5B,iCAAiC,EACjC,yBAAyB,EACzB,mBAAmB,EACnB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,GAC3B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,KAAK,qBAAqB,GAC3B,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,YAAY,GACb,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAoB,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,10 @@ export { foldSurfaceTokens, priceCurrentSurfaceWindow, } from "./surface-fold.js
|
|
|
10
10
|
export { TOOL_INTERRUPTED_MESSAGE, TOOL_NOT_STARTED, TOOL_NOT_STARTED_MESSAGE, TOOL_OUTCOME_UNKNOWN, TOOL_OUTCOME_UNKNOWN_MESSAGE, TOOL_ABORTED_BEFORE_DISPATCH, TOOL_ABORTED_BEFORE_DISPATCH_MESSAGE, TOOL_ABORTED, TOOL_ABORTED_MESSAGE, ToolSettlementError, assertToolCallsSettled, abortedBeforeDispatchSettlement, danglingSettlement, listDanglingToolCalls, settleDanglingTools, } from "./dangling.js";
|
|
11
11
|
export { TOOL_RESULT_PRUNE_HEAD_CHARS, TOOL_RESULT_PRUNE_META_PREV_TOKENS, TOOL_RESULT_PRUNE_TAIL_CHARS, TOOL_RESULT_PRUNE_THRESHOLD_CHARS, pruneOversizedToolResults, pruneToolResultText, } from "./tool-result-prune.js";
|
|
12
12
|
export { foldRequestHeader, llmConfigEquals, requestHeaderEquals, canonicalRequestHeader, } from "./request-header.js";
|
|
13
|
+
export { SessionLogOffset, SessionSeq, SessionSeqCursor, eventAt, eventCount, lastSessionEvent, readSessionEvents, resolveHalfOpenEventRange, sessionEventAt, sessionEventCount, sessionEventsFrom, snapshotEvents, } from "./seq.js";
|
|
14
|
+
export { computeListHints, sessionListHints, } from "./list-hints.js";
|
|
15
|
+
import { SessionLogOffset, readSessionEvents, sessionEventCount, snapshotEvents, } from "./seq.js";
|
|
16
|
+
import { computeListHints } from "./list-hints.js";
|
|
13
17
|
import { deepFreeze, newSessionId } from "./freeze.js";
|
|
14
18
|
export function createMemorySessionStore() {
|
|
15
19
|
const sessions = new Map();
|
|
@@ -26,7 +30,8 @@ export function createMemorySessionStore() {
|
|
|
26
30
|
if (!events) {
|
|
27
31
|
throw new Error(`session not found: ${id}`);
|
|
28
32
|
}
|
|
29
|
-
|
|
33
|
+
// Resident identity (events are deep-frozen); do not mutate.
|
|
34
|
+
return { id, events };
|
|
30
35
|
},
|
|
31
36
|
has(id) {
|
|
32
37
|
return sessions.has(id);
|
|
@@ -44,22 +49,19 @@ export function createMemorySessionStore() {
|
|
|
44
49
|
list() {
|
|
45
50
|
return [...sessions.keys()];
|
|
46
51
|
},
|
|
47
|
-
|
|
52
|
+
readEvents(id, fromSeq = 0, toSeqExclusive) {
|
|
48
53
|
const events = sessions.get(id);
|
|
49
|
-
if (!events
|
|
50
|
-
|
|
54
|
+
if (!events) {
|
|
55
|
+
throw new Error(`session not found: ${id}`);
|
|
51
56
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
57
|
+
return snapshotEvents({ id, events }, fromSeq, toSeqExclusive);
|
|
58
|
+
},
|
|
59
|
+
listHints(id) {
|
|
60
|
+
const events = sessions.get(id);
|
|
61
|
+
if (!events) {
|
|
62
|
+
throw new Error(`session not found: ${id}`);
|
|
58
63
|
}
|
|
59
|
-
return
|
|
60
|
-
lastEventTs: events[events.length - 1]?.ts ?? null,
|
|
61
|
-
hasTurnStart,
|
|
62
|
-
};
|
|
64
|
+
return computeListHints(events);
|
|
63
65
|
},
|
|
64
66
|
isLoaded(id) {
|
|
65
67
|
return sessions.has(id);
|
|
@@ -111,16 +113,17 @@ export function assertModelVisible(events, requestMessages) {
|
|
|
111
113
|
export { fromJSONL, parseJSONL, toJSONL } from "./jsonl.js";
|
|
112
114
|
export { createPersistentSessionStore, ftsMatchQuery, SESSION_DB_FILENAME, SESSION_SCHEMA_VERSION, } from "./sqlite-store.js";
|
|
113
115
|
export { expandPackedStorageRecords, fromPackedJSONL, fromPackedJSONLZstd, isPackedChunkRow, isTextChunkRow, isToolCallChunkRow, packChunkRunsForExport, parsePackedJSONL, toPackedJSONL, zstdCompressUtf8, zstdDecompressUtf8, } from "./chunk-pack.js";
|
|
114
|
-
export { repairOpenTurnEvents } from "./repair-open-turn.js";
|
|
116
|
+
export { repairOpenTurnEvents, sessionHasOpenTurn, } from "./repair-open-turn.js";
|
|
115
117
|
export { extractEventSearchText, extractSessionSearchTexts, } from "./search-text.js";
|
|
116
118
|
export { writeTextFileAtomicSync } from "./atomic-write.js";
|
|
117
119
|
export function forkSession(store, sourceId, boundaryIndex, childId) {
|
|
118
|
-
const
|
|
119
|
-
const end = boundaryIndex === undefined
|
|
120
|
-
?
|
|
121
|
-
: Math.max(0, Math.min(boundaryIndex,
|
|
120
|
+
const total = sessionEventCount(store, sourceId);
|
|
121
|
+
const end = SessionLogOffset(boundaryIndex === undefined
|
|
122
|
+
? total
|
|
123
|
+
: Math.max(0, Math.min(boundaryIndex, total)));
|
|
124
|
+
const prefix = readSessionEvents(store, sourceId, SessionLogOffset(0), end);
|
|
122
125
|
const child = store.create(childId);
|
|
123
|
-
for (const ev of
|
|
126
|
+
for (const ev of prefix) {
|
|
124
127
|
store.append(child.id, ev);
|
|
125
128
|
}
|
|
126
129
|
return store.get(child.id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,uBAAuB,GAIxB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,qBAAqB,GAEtB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,GAIrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,0BAA0B,EAC1B,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,gCAAgC,EAChC,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,iBAAiB,GAQlB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,2BAA2B,EAC3B,gCAAgC,EAChC,8BAA8B,EAC9B,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,oBAAoB,EACpB,wBAAwB,EACxB,wBAAwB,EACxB,gBAAgB,GAEjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,4BAA4B,EAC5B,4BAA4B,EAC5B,oCAAoC,EACpC,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,+BAA+B,EAC/B,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,GAIpB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,4BAA4B,EAC5B,kCAAkC,EAClC,4BAA4B,EAC5B,iCAAiC,EACjC,yBAAyB,EACzB,mBAAmB,GAGpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,sBAAsB,GAEvB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,uBAAuB,GAIxB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,qBAAqB,GAEtB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,GAIrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,0BAA0B,EAC1B,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,gCAAgC,EAChC,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,iBAAiB,GAQlB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,2BAA2B,EAC3B,gCAAgC,EAChC,8BAA8B,EAC9B,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,oBAAoB,EACpB,wBAAwB,EACxB,wBAAwB,EACxB,gBAAgB,GAEjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,4BAA4B,EAC5B,4BAA4B,EAC5B,oCAAoC,EACpC,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,+BAA+B,EAC/B,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,GAIpB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,4BAA4B,EAC5B,kCAAkC,EAClC,4BAA4B,EAC5B,iCAAiC,EACjC,yBAAyB,EACzB,mBAAmB,GAGpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,sBAAsB,GAEvB,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,OAAO,EACP,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EACzB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,GAKf,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,GACf,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEvD,MAAM,UAAU,wBAAwB;IACtC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA0B,CAAC;IAEnD,OAAO;QACL,MAAM,CAAC,EAAE,GAAG,YAAY,EAAE;YACxB,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;YACnD,CAAC;YACD,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACrB,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QAC5B,CAAC;QAED,GAAG,CAAC,EAAU;YACZ,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;YAC9C,CAAC;YACD,6DAA6D;YAC7D,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;QACxB,CAAC;QAED,GAAG,CAAC,EAAU;YACZ,OAAO,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC;QAED,MAAM,CAAC,EAAU,EAAE,KAAmB;YACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;YAC9C,CAAC;YACD,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;YACnD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI;YACF,OAAO,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9B,CAAC;QAED,UAAU,CACR,EAAU,EACV,OAAO,GAAG,CAAC,EACX,cAAuB;YAEvB,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;YAC9C,CAAC;YACD,OAAO,cAAc,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QACjE,CAAC;QAED,SAAS,CAAC,EAAU;YAClB,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;YAC9C,CAAC;YACD,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;QAED,QAAQ,CAAC,EAAU;YACjB,OAAO,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC;KACF,CAAC;AACJ,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,cAAc,CAAC,MAA+B;IAC5D,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,QAAQ,GAAkB;YAC9B;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,wBAAwB,CAAC,OAAO,CAAC,KAAK,CAAC;aACjD;SACF,CAAC;QACF,OAAO,QAAQ,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpF,CAAC;IACD,OAAO,wBAAwB,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IACnD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAgC;IAEhC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;AACrD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAA+B,EAC/B,eAAuC;IAEvC,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACZ,MAAM,IAAI,0BAA0B,CAClC,iEAAiE,CAClE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAyB,MAAM,YAAY,CAAC;AACnF,OAAO,EACL,4BAA4B,EAC5B,aAAa,EACb,mBAAmB,EACnB,sBAAsB,GAGvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,0BAA0B,EAC1B,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,kBAAkB,GAKnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,UAAU,WAAW,CACzB,KAAmB,EACnB,QAAgB,EAChB,aAAsB,EACtB,OAAgB;IAEhB,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,gBAAgB,CAC1B,aAAa,KAAK,SAAS;QACzB,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAChD,CAAC;IACF,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5E,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACpC,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;QACxB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC7B,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sidebar / session-list metadata folded from a Session log.
|
|
3
|
+
*/
|
|
4
|
+
import type { SessionEvent } from "@xrkseek/protocol";
|
|
5
|
+
import type { SessionListHints, SessionStore } from "./store.js";
|
|
6
|
+
/** Fold list metadata from an in-memory event array. */
|
|
7
|
+
export declare function computeListHints(events: readonly SessionEvent[]): SessionListHints;
|
|
8
|
+
/**
|
|
9
|
+
* Store-facing list hints. Prefers `store.listHints` when implemented;
|
|
10
|
+
* otherwise folds from {@link readSessionEvents}.
|
|
11
|
+
*/
|
|
12
|
+
export declare function sessionListHints(store: Pick<SessionStore, "readEvents"> & Pick<SessionStore, "listHints">, sessionId: string): SessionListHints;
|
|
13
|
+
//# sourceMappingURL=list-hints.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-hints.d.ts","sourceRoot":"","sources":["../src/list-hints.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGjE,wDAAwD;AACxD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,SAAS,YAAY,EAAE,GAC9B,gBAAgB,CAelB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,EACzE,SAAS,EAAE,MAAM,GAChB,gBAAgB,CAKlB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { readSessionEvents } from "./seq.js";
|
|
2
|
+
/** Fold list metadata from an in-memory event array. */
|
|
3
|
+
export function computeListHints(events) {
|
|
4
|
+
if (events.length === 0) {
|
|
5
|
+
return { lastEventTs: null, hasTurnStart: false };
|
|
6
|
+
}
|
|
7
|
+
let hasTurnStart = false;
|
|
8
|
+
for (const event of events) {
|
|
9
|
+
if (event.type === "turn/start") {
|
|
10
|
+
hasTurnStart = true;
|
|
11
|
+
break;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return {
|
|
15
|
+
lastEventTs: events[events.length - 1]?.ts ?? null,
|
|
16
|
+
hasTurnStart,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Store-facing list hints. Prefers `store.listHints` when implemented;
|
|
21
|
+
* otherwise folds from {@link readSessionEvents}.
|
|
22
|
+
*/
|
|
23
|
+
export function sessionListHints(store, sessionId) {
|
|
24
|
+
if (typeof store.listHints === "function") {
|
|
25
|
+
return store.listHints(sessionId);
|
|
26
|
+
}
|
|
27
|
+
return computeListHints(readSessionEvents(store, sessionId));
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=list-hints.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-hints.js","sourceRoot":"","sources":["../src/list-hints.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C,wDAAwD;AACxD,MAAM,UAAU,gBAAgB,CAC9B,MAA+B;IAE/B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;IACpD,CAAC;IACD,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAChC,YAAY,GAAG,IAAI,CAAC;YACpB,MAAM;QACR,CAAC;IACH,CAAC;IACD,OAAO;QACL,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,IAAI,IAAI;QAClD,YAAY;KACb,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAyE,EACzE,SAAiB;IAEjB,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,gBAAgB,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;AAC/D,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { SessionEvent } from "@xrkseek/protocol";
|
|
2
|
+
/** True when the log has a `turn/start` with no matching `turn/end`. */
|
|
3
|
+
export declare function sessionHasOpenTurn(events: readonly SessionEvent[]): boolean;
|
|
2
4
|
/**
|
|
3
5
|
* Events to append after a crash left a turn/step open in durable storage.
|
|
4
6
|
* Settles dangling tools, folds streamed prefix, closes step/turn with
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repair-open-turn.d.ts","sourceRoot":"","sources":["../src/repair-open-turn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"repair-open-turn.d.ts","sourceRoot":"","sources":["../src/repair-open-turn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAqFtD,wEAAwE;AACxE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,GAAG,OAAO,CAE3E;AAiCD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,YAAY,EAAE,EAC/B,GAAG,GAAE,MAAM,MAAiB,GAC3B,YAAY,EAAE,CAiEhB"}
|
|
@@ -74,6 +74,10 @@ function findOpenTurnId(events) {
|
|
|
74
74
|
return undefined;
|
|
75
75
|
return lastOpen;
|
|
76
76
|
}
|
|
77
|
+
/** True when the log has a `turn/start` with no matching `turn/end`. */
|
|
78
|
+
export function sessionHasOpenTurn(events) {
|
|
79
|
+
return findOpenTurnId(events) !== undefined;
|
|
80
|
+
}
|
|
77
81
|
function findOpenStepId(events, turnId) {
|
|
78
82
|
const ended = new Set();
|
|
79
83
|
let lastOpen;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repair-open-turn.js","sourceRoot":"","sources":["../src/repair-open-turn.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"repair-open-turn.js","sourceRoot":"","sources":["../src/repair-open-turn.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session log position brands and read accessors.
|
|
3
|
+
* Runtime values remain plain numbers; brands stop mixing event indices with gaps.
|
|
4
|
+
*/
|
|
5
|
+
import type { SessionEvent } from "@xrkseek/protocol";
|
|
6
|
+
import type { SessionRecord, SessionStore } from "./store.js";
|
|
7
|
+
declare const SESSION_SEQ: unique symbol;
|
|
8
|
+
declare const SESSION_LOG_OFFSET: unique symbol;
|
|
9
|
+
/** Sequence number of one existing event in a Session log. */
|
|
10
|
+
export type SessionSeq = number & {
|
|
11
|
+
readonly [SESSION_SEQ]: void;
|
|
12
|
+
};
|
|
13
|
+
/** A Session log gap, prefix length, or read offset (may equal the event count). */
|
|
14
|
+
export type SessionLogOffset = number & {
|
|
15
|
+
readonly [SESSION_LOG_OFFSET]: void;
|
|
16
|
+
};
|
|
17
|
+
/** Inclusive watermark, or `-1` before any event exists. */
|
|
18
|
+
export type SessionSeqCursor = SessionSeq | -1;
|
|
19
|
+
/** Minimum store surface for log reads (SessionStore implements this). */
|
|
20
|
+
export type SessionLogReader = Pick<SessionStore, "readEvents">;
|
|
21
|
+
/**
|
|
22
|
+
* Admit a numeric value as an existing Session event position.
|
|
23
|
+
* @param value - non-negative safe integer admitted by the owning log operation.
|
|
24
|
+
*/
|
|
25
|
+
export declare function SessionSeq(value: number): SessionSeq;
|
|
26
|
+
/**
|
|
27
|
+
* Admit a numeric value as a Session log offset.
|
|
28
|
+
* @param value - non-negative safe integer used as a gap or prefix length.
|
|
29
|
+
*/
|
|
30
|
+
export declare function SessionLogOffset(value: number): SessionLogOffset;
|
|
31
|
+
/**
|
|
32
|
+
* Admit a watermark: `-1` (empty log) or an existing {@link SessionSeq}.
|
|
33
|
+
* @param value - `-1` or a non-negative safe integer.
|
|
34
|
+
*/
|
|
35
|
+
export declare function SessionSeqCursor(value: number): SessionSeqCursor;
|
|
36
|
+
/**
|
|
37
|
+
* Validate a half-open `[from, to)` against a known length.
|
|
38
|
+
* Out-of-range bounds are allowed (same as `Array.prototype.slice`).
|
|
39
|
+
* @param length - current event count.
|
|
40
|
+
* @param fromSeq - inclusive start (default 0).
|
|
41
|
+
* @param toSeqExclusive - exclusive end (default `length`).
|
|
42
|
+
*/
|
|
43
|
+
export declare function resolveHalfOpenEventRange(length: number, fromSeq?: number, toSeqExclusive?: number): {
|
|
44
|
+
readonly from: SessionLogOffset;
|
|
45
|
+
readonly to: SessionLogOffset;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Materialize an immutable snapshot of a half-open event range.
|
|
49
|
+
* Full-range requests reuse the record's existing `events` array identity.
|
|
50
|
+
* @param record - session log record.
|
|
51
|
+
* @param fromSeq - inclusive start (default 0).
|
|
52
|
+
* @param toSeqExclusive - exclusive end (default event count).
|
|
53
|
+
*/
|
|
54
|
+
export declare function snapshotEvents(record: SessionRecord, fromSeq?: number, toSeqExclusive?: number): readonly SessionEvent[];
|
|
55
|
+
/**
|
|
56
|
+
* Canonical store-facing range read (typed offsets).
|
|
57
|
+
* Always delegates to {@link SessionStore.readEvents}.
|
|
58
|
+
* @param store - session store.
|
|
59
|
+
* @param sessionId - session id.
|
|
60
|
+
* @param fromSeq - inclusive start (default 0).
|
|
61
|
+
* @param toSeqExclusive - exclusive end (default event count).
|
|
62
|
+
*/
|
|
63
|
+
export declare function readSessionEvents(store: SessionLogReader, sessionId: string, fromSeq?: SessionLogOffset, toSeqExclusive?: SessionLogOffset): readonly SessionEvent[];
|
|
64
|
+
/**
|
|
65
|
+
* Current log length as a typed offset (next append index).
|
|
66
|
+
* @param record - session log record.
|
|
67
|
+
*/
|
|
68
|
+
export declare function eventCount(record: SessionRecord): SessionLogOffset;
|
|
69
|
+
/**
|
|
70
|
+
* Store-facing log length (next append index).
|
|
71
|
+
* @param store - session store.
|
|
72
|
+
* @param sessionId - session id.
|
|
73
|
+
*/
|
|
74
|
+
export declare function sessionEventCount(store: SessionLogReader, sessionId: string): SessionLogOffset;
|
|
75
|
+
/**
|
|
76
|
+
* Return the event at one exact sequence number, or undefined when absent.
|
|
77
|
+
* @param record - session log record.
|
|
78
|
+
* @param seq - event sequence number.
|
|
79
|
+
*/
|
|
80
|
+
export declare function eventAt(record: SessionRecord, seq: SessionSeq): SessionEvent | undefined;
|
|
81
|
+
/**
|
|
82
|
+
* Store-facing single-event read (hydrates via `readEvents` when cold).
|
|
83
|
+
* @param store - session store.
|
|
84
|
+
* @param sessionId - session id.
|
|
85
|
+
* @param seq - event sequence number.
|
|
86
|
+
*/
|
|
87
|
+
export declare function sessionEventAt(store: SessionLogReader, sessionId: string, seq: SessionSeq): SessionEvent | undefined;
|
|
88
|
+
/**
|
|
89
|
+
* Last event in the log, or undefined when empty.
|
|
90
|
+
* @param store - session store.
|
|
91
|
+
* @param sessionId - session id.
|
|
92
|
+
*/
|
|
93
|
+
export declare function lastSessionEvent(store: SessionLogReader, sessionId: string): SessionEvent | undefined;
|
|
94
|
+
/**
|
|
95
|
+
* Half-open suffix from `fromSeq` to the end of the log.
|
|
96
|
+
* @param store - session store.
|
|
97
|
+
* @param sessionId - session id.
|
|
98
|
+
* @param fromSeq - inclusive start.
|
|
99
|
+
*/
|
|
100
|
+
export declare function sessionEventsFrom(store: SessionLogReader, sessionId: string, fromSeq: SessionLogOffset): readonly SessionEvent[];
|
|
101
|
+
export {};
|
|
102
|
+
//# sourceMappingURL=seq.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seq.d.ts","sourceRoot":"","sources":["../src/seq.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE9D,OAAO,CAAC,MAAM,WAAW,EAAE,OAAO,MAAM,CAAC;AACzC,OAAO,CAAC,MAAM,kBAAkB,EAAE,OAAO,MAAM,CAAC;AAEhD,8DAA8D;AAC9D,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAEnE,oFAAoF;AACpF,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAEhF,4DAA4D;AAC5D,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC;AAE/C,0EAA0E;AAC1E,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AAQhE;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAGpD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAGhE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAGhE;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,MAAU,EACnB,cAAc,CAAC,EAAE,MAAM,GACtB;IAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,gBAAgB,CAAA;CAAE,CAQpE;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,aAAa,EACrB,OAAO,GAAE,MAAU,EACnB,cAAc,CAAC,EAAE,MAAM,GACtB,SAAS,YAAY,EAAE,CAUzB;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,gBAAgB,EACvB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,gBAAsC,EAC/C,cAAc,CAAC,EAAE,gBAAgB,GAChC,SAAS,YAAY,EAAE,CAEzB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,gBAAgB,CAElE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,gBAAgB,EACvB,SAAS,EAAE,MAAM,GAChB,gBAAgB,CAElB;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CACrB,MAAM,EAAE,aAAa,EACrB,GAAG,EAAE,UAAU,GACd,YAAY,GAAG,SAAS,CAE1B;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,gBAAgB,EACvB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,UAAU,GACd,YAAY,GAAG,SAAS,CAM1B;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,gBAAgB,EACvB,SAAS,EAAE,MAAM,GAChB,YAAY,GAAG,SAAS,CAG1B;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,gBAAgB,EACvB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,gBAAgB,GACxB,SAAS,YAAY,EAAE,CAEzB"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
function assertNonNegSafeInt(value, label) {
|
|
2
|
+
if (!Number.isSafeInteger(value) || value < 0 || Object.is(value, -0)) {
|
|
3
|
+
throw new TypeError(`${label} must be a non-negative safe integer, got ${String(value)}`);
|
|
4
|
+
}
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Admit a numeric value as an existing Session event position.
|
|
8
|
+
* @param value - non-negative safe integer admitted by the owning log operation.
|
|
9
|
+
*/
|
|
10
|
+
export function SessionSeq(value) {
|
|
11
|
+
assertNonNegSafeInt(value, "SessionSeq");
|
|
12
|
+
return value;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Admit a numeric value as a Session log offset.
|
|
16
|
+
* @param value - non-negative safe integer used as a gap or prefix length.
|
|
17
|
+
*/
|
|
18
|
+
export function SessionLogOffset(value) {
|
|
19
|
+
assertNonNegSafeInt(value, "SessionLogOffset");
|
|
20
|
+
return value;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Admit a watermark: `-1` (empty log) or an existing {@link SessionSeq}.
|
|
24
|
+
* @param value - `-1` or a non-negative safe integer.
|
|
25
|
+
*/
|
|
26
|
+
export function SessionSeqCursor(value) {
|
|
27
|
+
if (value === -1)
|
|
28
|
+
return -1;
|
|
29
|
+
return SessionSeq(value);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Validate a half-open `[from, to)` against a known length.
|
|
33
|
+
* Out-of-range bounds are allowed (same as `Array.prototype.slice`).
|
|
34
|
+
* @param length - current event count.
|
|
35
|
+
* @param fromSeq - inclusive start (default 0).
|
|
36
|
+
* @param toSeqExclusive - exclusive end (default `length`).
|
|
37
|
+
*/
|
|
38
|
+
export function resolveHalfOpenEventRange(length, fromSeq = 0, toSeqExclusive) {
|
|
39
|
+
assertNonNegSafeInt(length, "length");
|
|
40
|
+
assertNonNegSafeInt(fromSeq, "fromSeq");
|
|
41
|
+
const end = toSeqExclusive ?? length;
|
|
42
|
+
if (toSeqExclusive !== undefined) {
|
|
43
|
+
assertNonNegSafeInt(end, "toSeqExclusive");
|
|
44
|
+
}
|
|
45
|
+
return { from: SessionLogOffset(fromSeq), to: SessionLogOffset(end) };
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Materialize an immutable snapshot of a half-open event range.
|
|
49
|
+
* Full-range requests reuse the record's existing `events` array identity.
|
|
50
|
+
* @param record - session log record.
|
|
51
|
+
* @param fromSeq - inclusive start (default 0).
|
|
52
|
+
* @param toSeqExclusive - exclusive end (default event count).
|
|
53
|
+
*/
|
|
54
|
+
export function snapshotEvents(record, fromSeq = 0, toSeqExclusive) {
|
|
55
|
+
const { from, to } = resolveHalfOpenEventRange(record.events.length, fromSeq, toSeqExclusive);
|
|
56
|
+
if (from === 0 && to === record.events.length) {
|
|
57
|
+
return record.events;
|
|
58
|
+
}
|
|
59
|
+
return record.events.slice(from, to);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Canonical store-facing range read (typed offsets).
|
|
63
|
+
* Always delegates to {@link SessionStore.readEvents}.
|
|
64
|
+
* @param store - session store.
|
|
65
|
+
* @param sessionId - session id.
|
|
66
|
+
* @param fromSeq - inclusive start (default 0).
|
|
67
|
+
* @param toSeqExclusive - exclusive end (default event count).
|
|
68
|
+
*/
|
|
69
|
+
export function readSessionEvents(store, sessionId, fromSeq = SessionLogOffset(0), toSeqExclusive) {
|
|
70
|
+
return store.readEvents(sessionId, fromSeq, toSeqExclusive);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Current log length as a typed offset (next append index).
|
|
74
|
+
* @param record - session log record.
|
|
75
|
+
*/
|
|
76
|
+
export function eventCount(record) {
|
|
77
|
+
return SessionLogOffset(record.events.length);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Store-facing log length (next append index).
|
|
81
|
+
* @param store - session store.
|
|
82
|
+
* @param sessionId - session id.
|
|
83
|
+
*/
|
|
84
|
+
export function sessionEventCount(store, sessionId) {
|
|
85
|
+
return SessionLogOffset(store.readEvents(sessionId).length);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Return the event at one exact sequence number, or undefined when absent.
|
|
89
|
+
* @param record - session log record.
|
|
90
|
+
* @param seq - event sequence number.
|
|
91
|
+
*/
|
|
92
|
+
export function eventAt(record, seq) {
|
|
93
|
+
return record.events[seq];
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Store-facing single-event read (hydrates via `readEvents` when cold).
|
|
97
|
+
* @param store - session store.
|
|
98
|
+
* @param sessionId - session id.
|
|
99
|
+
* @param seq - event sequence number.
|
|
100
|
+
*/
|
|
101
|
+
export function sessionEventAt(store, sessionId, seq) {
|
|
102
|
+
return store.readEvents(sessionId, seq, SessionLogOffset(seq + 1))[0];
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Last event in the log, or undefined when empty.
|
|
106
|
+
* @param store - session store.
|
|
107
|
+
* @param sessionId - session id.
|
|
108
|
+
*/
|
|
109
|
+
export function lastSessionEvent(store, sessionId) {
|
|
110
|
+
const events = store.readEvents(sessionId);
|
|
111
|
+
return events.length === 0 ? undefined : events[events.length - 1];
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Half-open suffix from `fromSeq` to the end of the log.
|
|
115
|
+
* @param store - session store.
|
|
116
|
+
* @param sessionId - session id.
|
|
117
|
+
* @param fromSeq - inclusive start.
|
|
118
|
+
*/
|
|
119
|
+
export function sessionEventsFrom(store, sessionId, fromSeq) {
|
|
120
|
+
return store.readEvents(sessionId, fromSeq);
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=seq.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seq.js","sourceRoot":"","sources":["../src/seq.ts"],"names":[],"mappings":"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"}
|