wicked-crew 0.7.34 → 0.7.36
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/api/chat-scope.d.ts +29 -1
- package/dist/api/chat-scope.d.ts.map +1 -1
- package/dist/api/chat-scope.js +67 -12
- package/dist/api/chat-scope.js.map +1 -1
- package/dist/api/chat-transcripts.d.ts +60 -0
- package/dist/api/chat-transcripts.d.ts.map +1 -0
- package/dist/api/chat-transcripts.js +139 -0
- package/dist/api/chat-transcripts.js.map +1 -0
- package/dist/api/chat-turns.d.ts +43 -4
- package/dist/api/chat-turns.d.ts.map +1 -1
- package/dist/api/chat-turns.js +73 -6
- package/dist/api/chat-turns.js.map +1 -1
- package/dist/api/delivery-cache.d.ts +23 -6
- package/dist/api/delivery-cache.d.ts.map +1 -1
- package/dist/api/delivery-cache.js +27 -17
- package/dist/api/delivery-cache.js.map +1 -1
- package/dist/api/delivery-index.d.ts +45 -3
- package/dist/api/delivery-index.d.ts.map +1 -1
- package/dist/api/delivery-index.js +79 -4
- package/dist/api/delivery-index.js.map +1 -1
- package/dist/api/requirements.d.ts +3 -5
- package/dist/api/requirements.d.ts.map +1 -1
- package/dist/api/requirements.js +30 -146
- package/dist/api/requirements.js.map +1 -1
- package/dist/api/retry-index.d.ts +14 -0
- package/dist/api/retry-index.d.ts.map +1 -1
- package/dist/api/retry-index.js +29 -0
- package/dist/api/retry-index.js.map +1 -1
- package/dist/api/roster-standing.d.ts +4 -4
- package/dist/api/roster-standing.d.ts.map +1 -1
- package/dist/api/roster-standing.js +24 -12
- package/dist/api/roster-standing.js.map +1 -1
- package/dist/api/routes.d.ts +142 -10
- package/dist/api/routes.d.ts.map +1 -1
- package/dist/api/routes.js +292 -44
- package/dist/api/routes.js.map +1 -1
- package/dist/api/run-timing-index.d.ts +22 -0
- package/dist/api/run-timing-index.d.ts.map +1 -1
- package/dist/api/run-timing-index.js +34 -0
- package/dist/api/run-timing-index.js.map +1 -1
- package/dist/api/seat-health.d.ts +2 -46
- package/dist/api/seat-health.d.ts.map +1 -1
- package/dist/api/seat-health.js +28 -111
- package/dist/api/seat-health.js.map +1 -1
- package/dist/api/seat-standing.d.ts +9 -8
- package/dist/api/seat-standing.d.ts.map +1 -1
- package/dist/api/seat-standing.js +22 -32
- package/dist/api/seat-standing.js.map +1 -1
- package/dist/api/server.d.ts.map +1 -1
- package/dist/api/server.js +114 -12
- package/dist/api/server.js.map +1 -1
- package/dist/api/skills.d.ts +2 -2
- package/dist/api/skills.d.ts.map +1 -1
- package/dist/api/skills.js +5 -2
- package/dist/api/skills.js.map +1 -1
- package/dist/api/stall-frame-index.d.ts +68 -0
- package/dist/api/stall-frame-index.d.ts.map +1 -0
- package/dist/api/stall-frame-index.js +106 -0
- package/dist/api/stall-frame-index.js.map +1 -0
- package/dist/api/stall-watchdog.d.ts +22 -2
- package/dist/api/stall-watchdog.d.ts.map +1 -1
- package/dist/api/stall-watchdog.js +41 -11
- package/dist/api/stall-watchdog.js.map +1 -1
- package/dist/campaigns/plan.d.ts +12 -2
- package/dist/campaigns/plan.d.ts.map +1 -1
- package/dist/campaigns/plan.js +3 -0
- package/dist/campaigns/plan.js.map +1 -1
- package/dist/campaigns/rollup.d.ts +5 -0
- package/dist/campaigns/rollup.d.ts.map +1 -1
- package/dist/campaigns/rollup.js +3 -2
- package/dist/campaigns/rollup.js.map +1 -1
- package/dist/campaigns/routes.d.ts +5 -2
- package/dist/campaigns/routes.d.ts.map +1 -1
- package/dist/campaigns/routes.js +13 -3
- package/dist/campaigns/routes.js.map +1 -1
- package/dist/cli/index.js +137 -23
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/port.d.ts +19 -0
- package/dist/cli/port.d.ts.map +1 -0
- package/dist/cli/port.js +39 -0
- package/dist/cli/port.js.map +1 -0
- package/dist/core/adapter.d.ts +68 -2
- package/dist/core/adapter.d.ts.map +1 -1
- package/dist/core/adapter.js +176 -23
- package/dist/core/adapter.js.map +1 -1
- package/dist/core/bridge-reaper.d.ts +57 -1
- package/dist/core/bridge-reaper.d.ts.map +1 -1
- package/dist/core/bridge-reaper.js +143 -21
- package/dist/core/bridge-reaper.js.map +1 -1
- package/dist/core/cursor.d.ts +7 -0
- package/dist/core/cursor.d.ts.map +1 -1
- package/dist/core/cursor.js +7 -1
- package/dist/core/cursor.js.map +1 -1
- package/dist/core/deliver-text.d.ts +35 -2
- package/dist/core/deliver-text.d.ts.map +1 -1
- package/dist/core/deliver-text.js +127 -17
- package/dist/core/deliver-text.js.map +1 -1
- package/dist/core/deliver-triage.d.ts.map +1 -1
- package/dist/core/deliver-triage.js +5 -2
- package/dist/core/deliver-triage.js.map +1 -1
- package/dist/core/deliver.d.ts +76 -2
- package/dist/core/deliver.d.ts.map +1 -1
- package/dist/core/deliver.js +209 -16
- package/dist/core/deliver.js.map +1 -1
- package/dist/core/engine-roster.d.ts +4 -3
- package/dist/core/engine-roster.d.ts.map +1 -1
- package/dist/core/engine-roster.js +10 -14
- package/dist/core/engine-roster.js.map +1 -1
- package/dist/core/types.d.ts +30 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +6 -4
- package/dist/core/types.js.map +1 -1
- package/dist/core/versions.d.ts +17 -0
- package/dist/core/versions.d.ts.map +1 -0
- package/dist/core/versions.js +35 -0
- package/dist/core/versions.js.map +1 -0
- package/dist/interactive/bridge-pool.d.ts +66 -14
- package/dist/interactive/bridge-pool.d.ts.map +1 -1
- package/dist/interactive/bridge-pool.js +130 -17
- package/dist/interactive/bridge-pool.js.map +1 -1
- package/dist/interactive/bridge-root.d.ts +47 -16
- package/dist/interactive/bridge-root.d.ts.map +1 -1
- package/dist/interactive/bridge-root.js +102 -31
- package/dist/interactive/bridge-root.js.map +1 -1
- package/dist/interactive/doc-delete-routes.d.ts +3 -1
- package/dist/interactive/doc-delete-routes.d.ts.map +1 -1
- package/dist/interactive/doc-delete-routes.js.map +1 -1
- package/dist/interactive/doc-list-routes.d.ts +3 -1
- package/dist/interactive/doc-list-routes.d.ts.map +1 -1
- package/dist/interactive/doc-list-routes.js.map +1 -1
- package/dist/interactive/docs-index.d.ts +3 -1
- package/dist/interactive/docs-index.d.ts.map +1 -1
- package/dist/interactive/docs-index.js +1 -1
- package/dist/interactive/docs-index.js.map +1 -1
- package/dist/interactive/project-root.d.ts +8 -2
- package/dist/interactive/project-root.d.ts.map +1 -1
- package/dist/interactive/project-root.js +1 -1
- package/dist/interactive/project-root.js.map +1 -1
- package/dist/interactive/proxy-routes.d.ts +3 -1
- package/dist/interactive/proxy-routes.d.ts.map +1 -1
- package/dist/interactive/proxy-routes.js.map +1 -1
- package/dist/projects/graph.d.ts +4 -0
- package/dist/projects/graph.d.ts.map +1 -1
- package/dist/projects/graph.js +4 -2
- package/dist/projects/graph.js.map +1 -1
- package/dist/projects/routes.d.ts +2 -2
- package/dist/projects/state-home-preflight.d.ts +30 -7
- package/dist/projects/state-home-preflight.d.ts.map +1 -1
- package/dist/projects/state-home-preflight.js +59 -16
- package/dist/projects/state-home-preflight.js.map +1 -1
- package/dist/projects/state-home-registry.d.ts.map +1 -1
- package/dist/projects/state-home-registry.js +2 -0
- package/dist/projects/state-home-registry.js.map +1 -1
- package/dist/qe/acceptance.d.ts +9 -0
- package/dist/qe/acceptance.d.ts.map +1 -1
- package/dist/qe/acceptance.js +16 -1
- package/dist/qe/acceptance.js.map +1 -1
- package/dist/qe/author-workflow.d.ts.map +1 -1
- package/dist/qe/author-workflow.js +2 -1
- package/dist/qe/author-workflow.js.map +1 -1
- package/dist/skills/base-skill.d.ts +32 -10
- package/dist/skills/base-skill.d.ts.map +1 -1
- package/dist/skills/base-skill.js +36 -27
- package/dist/skills/base-skill.js.map +1 -1
- package/dist/skills/guards.d.ts.map +1 -1
- package/dist/skills/guards.js +3 -0
- package/dist/skills/guards.js.map +1 -1
- package/dist/skills/runtime.d.ts +9 -5
- package/dist/skills/runtime.d.ts.map +1 -1
- package/dist/skills/runtime.js +11 -7
- package/dist/skills/runtime.js.map +1 -1
- package/dist/skills/store.d.ts +30 -0
- package/dist/skills/store.d.ts.map +1 -1
- package/dist/skills/store.js +159 -3
- package/dist/skills/store.js.map +1 -1
- package/dist/skills/tree.d.ts +12 -0
- package/dist/skills/tree.d.ts.map +1 -1
- package/dist/skills/tree.js +26 -0
- package/dist/skills/tree.js.map +1 -1
- package/dist/studio/assets/index-Dk98qXKv.js +546 -0
- package/dist/studio/index.html +1 -1
- package/dist/studio/testid-inventory.json +89 -5
- package/endpoint-manifest.json +13 -1
- package/package.json +4 -4
- package/dist/studio/assets/index-DhojBZ1T.js +0 -544
package/dist/api/chat-scope.d.ts
CHANGED
|
@@ -41,6 +41,12 @@ import type { CoreAdapter } from '../core/adapter.js';
|
|
|
41
41
|
import type { ChatScope, RepoEntry } from '../core/types.js';
|
|
42
42
|
import { type ProjectGraphBindingDecision } from '../projects/graph.js';
|
|
43
43
|
import type { ChatRefusalSource } from './seat-standing.js';
|
|
44
|
+
/** The engine's per-seat answer to `chatOpen` (`ChatSeatOutcome` on the wire). */
|
|
45
|
+
export interface ChatSeatOutcomeLike {
|
|
46
|
+
cliKey: string;
|
|
47
|
+
ok: boolean;
|
|
48
|
+
error?: string;
|
|
49
|
+
}
|
|
44
50
|
/** One seat a `POST /chats` did NOT seat, and why (F-2R2-007 / F-A45-011) — published as
|
|
45
51
|
* `ChatSeatRefusal` in wicked-crew-api-types (`source` since 0.36.0). */
|
|
46
52
|
export interface ChatSeatRefusal {
|
|
@@ -95,6 +101,10 @@ export interface ChatScopeDeps {
|
|
|
95
101
|
export declare function chatScratchBase(): string;
|
|
96
102
|
/** The production deps over a live adapter. */
|
|
97
103
|
export declare function chatScopeDeps(adapter: CoreAdapter): ChatScopeDeps;
|
|
104
|
+
/** The route's own id rule, re-applied here: the id becomes ONE path segment under the base. */
|
|
105
|
+
/** The chat-id guard — the ONE sanitizer a chat id passes before it names anything on disk (the
|
|
106
|
+
* scratch root here, the transcript file in `chat-transcripts.ts`): no separators, no spaces. */
|
|
107
|
+
export declare const CHAT_ID: RegExp;
|
|
98
108
|
/**
|
|
99
109
|
* Decide a chat's scope. Never throws on a caller error: an unknown repo is a 404 naming EVERY
|
|
100
110
|
* missing ref (not just the first), a chat id that cannot name a scratch directory is a 400. A
|
|
@@ -107,6 +117,13 @@ export declare function resolveChatScope(req: ChatScopeRequest, deps: ChatScopeD
|
|
|
107
117
|
* copilot) and `CLAUDE.md` (claude) into the scratch root. Plain prose, repo paths verbatim: the
|
|
108
118
|
* seat is in an empty directory and this is how it learns what it was pointed at.
|
|
109
119
|
*/
|
|
120
|
+
/**
|
|
121
|
+
* The ONE worked grounding command the scope statement hands every seat of a graph-bound chat
|
|
122
|
+
* (recon-w1-grounding Q4 cause #1; R-L5-1, text-only): the shim's `call` action against the estate
|
|
123
|
+
* MCP's `SearchEntity`, whose argument is `name` (a `{"query"}` returned 0 matches in P6). Exported
|
|
124
|
+
* so the statement snapshot test and the byte-budget test pin the exact spelling.
|
|
125
|
+
*/
|
|
126
|
+
export declare const CHAT_GROUNDING_COMMAND = "wicked-garden run scripts/_estate_client.py --readonly call '{\"tool\":\"SearchEntity\",\"arguments\":{\"name\":\"<symbol>\"}}'";
|
|
110
127
|
export declare function chatScopeStatement(chatId: string, scope: ChatScope): string;
|
|
111
128
|
/**
|
|
112
129
|
* Create the chat's scratch root (private) and write the scope statement into it. Throws on an
|
|
@@ -151,6 +168,9 @@ type ChatSlot =
|
|
|
151
168
|
state: 'live';
|
|
152
169
|
scope: ChatScope;
|
|
153
170
|
refused: ChatSeatRefusal[];
|
|
171
|
+
/** What the ENGINE was handed at open (F-W1-005): a per-seat retry must re-run `chatOpen` with
|
|
172
|
+
* the IDENTICAL scope — a different one makes the engine evict every warm seat (Copilot, #426). */
|
|
173
|
+
engine?: EngineChatScope;
|
|
154
174
|
}
|
|
155
175
|
/** `DELETE` ran: the root is already gone, and the id stays taken until the engine's own
|
|
156
176
|
* `chatClosed` for it is observed (or the grace timer gives up) — so a delayed close can never
|
|
@@ -200,9 +220,17 @@ export declare class ChatScopeIndex {
|
|
|
200
220
|
abortToClosing(chatId: string, token: number): void;
|
|
201
221
|
/** Publish the scope of a finished open. `false` when the reservation is gone (cancelled by a
|
|
202
222
|
* close in the meantime): the caller must tear the chat down, nothing was recorded. */
|
|
203
|
-
set(chatId: string, scope: ChatScope, token: number, refused?: ChatSeatRefusal[]): boolean;
|
|
223
|
+
set(chatId: string, scope: ChatScope, token: number, refused?: ChatSeatRefusal[], engine?: EngineChatScope): boolean;
|
|
204
224
|
/** The scope of a LIVE chat; `undefined` while reserved, closing or unknown. */
|
|
205
225
|
get(chatId: string): ChatScope | undefined;
|
|
226
|
+
/** The engine scope recorded at open (F-W1-005) — `undefined` for a chat that is not live here. */
|
|
227
|
+
engineOf(chatId: string): EngineChatScope | undefined;
|
|
228
|
+
/**
|
|
229
|
+
* Fold a per-seat re-open (F-W1-005, `POST /chats/:id/seats`): a seat that WARMED leaves the
|
|
230
|
+
* refused list; one the engine refused replaces its entry (the engine's reason, source `engine`).
|
|
231
|
+
* Returns the refused list as it now stands (empty for a chat that is not live here).
|
|
232
|
+
*/
|
|
233
|
+
foldSeats(chatId: string, outcomes: readonly ChatSeatOutcomeLike[]): ChatSeatRefusal[];
|
|
206
234
|
/** The seats refused at open (F-A45-011) — `undefined` for a chat this daemon did not open. */
|
|
207
235
|
refusedOf(chatId: string): ChatSeatRefusal[] | undefined;
|
|
208
236
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-scope.d.ts","sourceRoot":"","sources":["../../src/api/chat-scope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,KAAK,EAAE,SAAS,EAAiB,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAA8B,KAAK,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACpG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D;0EAC0E;AAC1E,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,iBAAiB,CAAC;CAC3B;AAED,qGAAqG;AACrG,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,sGAAsG;AACtG,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,MAAM,mBAAmB,GAC3B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,GACvD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAE9E,+FAA+F;AAC/F,MAAM,WAAW,aAAa;IAC5B,SAAS,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAClC,iEAAiE;IACjE,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACtD,4FAA4F;IAC5F,gBAAgB,CACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,OAAO,CAAC,2BAA2B,CAAC,CAAC;IACxC,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;2FACuF;IACvF,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B;AAID;;;;;;;GAOG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAOxC;AA2FD,+CAA+C;AAC/C,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,aAAa,CAYjE;
|
|
1
|
+
{"version":3,"file":"chat-scope.d.ts","sourceRoot":"","sources":["../../src/api/chat-scope.ts"],"names":[],"mappings":"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"}
|
package/dist/api/chat-scope.js
CHANGED
|
@@ -151,7 +151,9 @@ export function chatScopeDeps(adapter) {
|
|
|
151
151
|
};
|
|
152
152
|
}
|
|
153
153
|
/** The route's own id rule, re-applied here: the id becomes ONE path segment under the base. */
|
|
154
|
-
|
|
154
|
+
/** The chat-id guard — the ONE sanitizer a chat id passes before it names anything on disk (the
|
|
155
|
+
* scratch root here, the transcript file in `chat-transcripts.ts`): no separators, no spaces. */
|
|
156
|
+
export const CHAT_ID = /^[A-Za-z0-9._-]+$/;
|
|
155
157
|
function message(err) {
|
|
156
158
|
return err instanceof Error ? err.message : String(err);
|
|
157
159
|
}
|
|
@@ -380,6 +382,13 @@ function ownGraph(only) {
|
|
|
380
382
|
* copilot) and `CLAUDE.md` (claude) into the scratch root. Plain prose, repo paths verbatim: the
|
|
381
383
|
* seat is in an empty directory and this is how it learns what it was pointed at.
|
|
382
384
|
*/
|
|
385
|
+
/**
|
|
386
|
+
* The ONE worked grounding command the scope statement hands every seat of a graph-bound chat
|
|
387
|
+
* (recon-w1-grounding Q4 cause #1; R-L5-1, text-only): the shim's `call` action against the estate
|
|
388
|
+
* MCP's `SearchEntity`, whose argument is `name` (a `{"query"}` returned 0 matches in P6). Exported
|
|
389
|
+
* so the statement snapshot test and the byte-budget test pin the exact spelling.
|
|
390
|
+
*/
|
|
391
|
+
export const CHAT_GROUNDING_COMMAND = 'wicked-garden run scripts/_estate_client.py --readonly call \'{"tool":"SearchEntity","arguments":{"name":"<symbol>"}}\'';
|
|
383
392
|
export function chatScopeStatement(chatId, scope) {
|
|
384
393
|
const lines = [
|
|
385
394
|
'# Chat scope',
|
|
@@ -406,15 +415,30 @@ export function chatScopeStatement(chatId, scope) {
|
|
|
406
415
|
.map((d) => `\`${d}\``)
|
|
407
416
|
.join(', ')}.`, '');
|
|
408
417
|
}
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
+
// DES-L5 §5-a (D-7 / D1) as re-cut after the wave-1 P6 gate (recon-w1-grounding Q1/Q4, cause
|
|
419
|
+
// #1): the seat grounds through the read-only estate shim on EVERY seat — never a CLI-registered
|
|
420
|
+
// MCP server (deleted in core-ts 0.7.26) — and the statement must hand it a COMMAND, not a noun.
|
|
421
|
+
// The previous wording ("the read-only estate shim … always pass `--readonly`") named no binary,
|
|
422
|
+
// no args and no tool: claude obeyed it literally and attached `--readonly` to a `Skill` call,
|
|
423
|
+
// then grepped; opencode ran nothing. So: ONE worked, copy-pasteable line a seat can run in its
|
|
424
|
+
// shell on any carrier (the launcher form `wicked-garden run <scripts-relative path>` resolves the
|
|
425
|
+
// plugin root on every CLI; the handed snapshot's `scripts/` dir is first on PATH), the store-pin
|
|
426
|
+
// sentence, and the other tools that take the same form. Argument keys are the estate MCP's own
|
|
427
|
+
// (`SearchEntity` → `name`, the spelling the shim's `search()` wrapper uses; `BlastRadius` /
|
|
428
|
+
// `Lineage` → `symbol`; `RankHotspots` → `limit`): `{"query"}` returned 0 matches in P6
|
|
429
|
+
// (F-W1-006). Only when a graph is BOUND — an unbound chat has no `WICKED_ESTATE_DB`, so a shim
|
|
430
|
+
// call would be refused as unpinned; it is told to read the repositories directly instead.
|
|
431
|
+
lines.push('## Grounding', '');
|
|
432
|
+
if (scope.graph.bound) {
|
|
433
|
+
lines.push('Before you read files, query the code graph through the read-only estate shim. Run this in', 'your shell (`wicked-garden` is first on PATH; the store is pinned by `WICKED_ESTATE_DB`):', '', ` ${CHAT_GROUNDING_COMMAND}`, '', 'The same form reaches `BlastRadius` and `Lineage` (`{"symbol":"<name>"}`) and `RankHotspots`', '(`{"limit":20}`); always pass `--readonly`.', `The graph is bound to \`${scope.graph.repoLabel ?? 'this scope'}\` (${scope.graph.reason}).`, '');
|
|
434
|
+
}
|
|
435
|
+
else {
|
|
436
|
+
lines.push(`No code graph is bound: ${scope.graph.reason} — read the repositories directly and say so.`, '');
|
|
437
|
+
}
|
|
438
|
+
// DES-L5 §5-a (P6 criterion 5): the reply is the answer — an agent's own handoff artefact
|
|
439
|
+
// ("## Work State / ## Next Move / ## Relevant Files") leaked into a chat reply verbatim.
|
|
440
|
+
lines.push('## Answer format', '');
|
|
441
|
+
lines.push('Reply with the answer itself: no working notes or status blocks (no "Work State", "Next Move"', 'or "Relevant Files" sections), no tool monologue, no compaction notices. Cite files by their', 'full path. If a claim could not be grounded, say so in one line rather than asserting it.', '');
|
|
418
442
|
if (scope.projectId !== undefined) {
|
|
419
443
|
lines.push('## Project', '', `This chat is filed into project \`${scope.projectId}\`.`, '');
|
|
420
444
|
}
|
|
@@ -652,11 +676,16 @@ export class ChatScopeIndex {
|
|
|
652
676
|
}
|
|
653
677
|
/** Publish the scope of a finished open. `false` when the reservation is gone (cancelled by a
|
|
654
678
|
* close in the meantime): the caller must tear the chat down, nothing was recorded. */
|
|
655
|
-
set(chatId, scope, token, refused = []) {
|
|
679
|
+
set(chatId, scope, token, refused = [], engine) {
|
|
656
680
|
const slot = this.slots.get(chatId);
|
|
657
681
|
if (slot?.state !== 'reserved' || slot.token !== token)
|
|
658
682
|
return false;
|
|
659
|
-
this.slots.set(chatId, {
|
|
683
|
+
this.slots.set(chatId, {
|
|
684
|
+
state: 'live',
|
|
685
|
+
scope,
|
|
686
|
+
refused: [...refused],
|
|
687
|
+
...(engine !== undefined ? { engine: { ...engine, readRoots: [...engine.readRoots] } } : {}),
|
|
688
|
+
});
|
|
660
689
|
return true;
|
|
661
690
|
}
|
|
662
691
|
/** The scope of a LIVE chat; `undefined` while reserved, closing or unknown. */
|
|
@@ -664,6 +693,32 @@ export class ChatScopeIndex {
|
|
|
664
693
|
const slot = this.slots.get(chatId);
|
|
665
694
|
return slot?.state === 'live' ? slot.scope : undefined;
|
|
666
695
|
}
|
|
696
|
+
/** The engine scope recorded at open (F-W1-005) — `undefined` for a chat that is not live here. */
|
|
697
|
+
engineOf(chatId) {
|
|
698
|
+
const slot = this.slots.get(chatId);
|
|
699
|
+
return slot?.state === 'live' && slot.engine !== undefined
|
|
700
|
+
? { ...slot.engine, readRoots: [...slot.engine.readRoots] }
|
|
701
|
+
: undefined;
|
|
702
|
+
}
|
|
703
|
+
/**
|
|
704
|
+
* Fold a per-seat re-open (F-W1-005, `POST /chats/:id/seats`): a seat that WARMED leaves the
|
|
705
|
+
* refused list; one the engine refused replaces its entry (the engine's reason, source `engine`).
|
|
706
|
+
* Returns the refused list as it now stands (empty for a chat that is not live here).
|
|
707
|
+
*/
|
|
708
|
+
foldSeats(chatId, outcomes) {
|
|
709
|
+
const slot = this.slots.get(chatId);
|
|
710
|
+
// Not live here ⇒ no refusal set to fold into. The caller's 404 guard already proved liveness,
|
|
711
|
+
// so this is the unreachable arm, not a silent degrade (review NIT).
|
|
712
|
+
if (slot?.state !== 'live')
|
|
713
|
+
return [];
|
|
714
|
+
const touched = new Set(outcomes.map((o) => o.cliKey));
|
|
715
|
+
const kept = slot.refused.filter((r) => !touched.has(r.cliKey));
|
|
716
|
+
const fresh = outcomes
|
|
717
|
+
.filter((o) => !o.ok)
|
|
718
|
+
.map((o) => ({ cliKey: o.cliKey, reason: o.error ?? 'the engine refused the seat', source: 'engine' }));
|
|
719
|
+
slot.refused = [...kept, ...fresh];
|
|
720
|
+
return [...slot.refused];
|
|
721
|
+
}
|
|
667
722
|
/** The seats refused at open (F-A45-011) — `undefined` for a chat this daemon did not open. */
|
|
668
723
|
refusedOf(chatId) {
|
|
669
724
|
const slot = this.slots.get(chatId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-scope.js","sourceRoot":"","sources":["../../src/api/chat-scope.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chat-scope.js","sourceRoot":"","sources":["../../src/api/chat-scope.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The chat transcript AT REST (DES-L5 §5-d; D-13 / BC-33; F-RC1-112 = F-RECON-018, crew#503).
|
|
3
|
+
*
|
|
4
|
+
* The engine keeps a chat's warm seats and their conversation memory, but no transcript: every
|
|
5
|
+
* `chatDelta` / `chatReply` is seen exactly once, on `/ws`, by whoever is connected at that moment.
|
|
6
|
+
* P6 reproduced the consequence — a reload (or a second tab) of a LIVE chat rendered a blank thread,
|
|
7
|
+
* and the reply nobody was watching for was simply gone. The daemon sees every frame once too, at
|
|
8
|
+
* the ONE hook that already stamps `turn_id` (`server.ts` → `chatTurns.decorate`), so the record is
|
|
9
|
+
* written there: one append-only JSONL file per chat under the state home, served back on
|
|
10
|
+
* `GET /chats/:id` as `messages` (api-types 0.38.0 `ChatTranscriptRecord`, append order).
|
|
11
|
+
*
|
|
12
|
+
* Retention = the chat's LIFETIME (D-13, as designed — no age sweep, no second mechanism):
|
|
13
|
+
* - the file is DROPPED on the engine's `chatClosed` (requested, idle and pool_cap alike — the one
|
|
14
|
+
* arm `server.ts` already folds for the scope index);
|
|
15
|
+
* - the directory is CLEARED at daemon boot — no chat survives a restart (the engine's pool is in
|
|
16
|
+
* memory), so every file present at boot is an orphan;
|
|
17
|
+
* - only frames a live turn STAMPED (`turn_id` present) are persisted, so a straggler `chatReply`
|
|
18
|
+
* after the close cannot recreate a file, and `turnId` is never null on a record.
|
|
19
|
+
*
|
|
20
|
+
* Privacy posture: the directory is 0700 and each file 0600 (the transcript is the operator's
|
|
21
|
+
* conversation); the file name is the chat id, admitted by the SAME guard the scratch root applies
|
|
22
|
+
* (`CHAT_ID` — one sanitizer, no second regex), so an arbitrary `GET /chats/:id` can never name a
|
|
23
|
+
* path. `messages` is unbounded — a reply may be up to the engine's 8 MB cap (wave 1, noted).
|
|
24
|
+
*
|
|
25
|
+
* Registered in `tests/fixtures/state-home-subtrees.json` as `chats` (crew half; the core half —
|
|
26
|
+
* the worker Read fence — landed with core-ts 0.7.26), and named in `state-home-registry.ts`.
|
|
27
|
+
*/
|
|
28
|
+
import type { ChatTranscriptRecord, CoreEvent } from '../core/types.js';
|
|
29
|
+
/** The state-home entry (`<state home>/chats/`) — the name the fixture registers. */
|
|
30
|
+
export declare const CHAT_TRANSCRIPTS_DIRNAME = "chats";
|
|
31
|
+
/** Where the transcripts live: under the daemon's state home, like every other crew store. */
|
|
32
|
+
export declare function defaultChatTranscriptsDir(): string;
|
|
33
|
+
export declare class ChatTranscriptStore {
|
|
34
|
+
private readonly dir;
|
|
35
|
+
private readonly now;
|
|
36
|
+
constructor(opts?: {
|
|
37
|
+
dir?: string;
|
|
38
|
+
now?: () => number;
|
|
39
|
+
});
|
|
40
|
+
/** The directory this store writes under (diagnostics / tests). */
|
|
41
|
+
get directory(): string;
|
|
42
|
+
/** `<dir>/<chatId>.jsonl` — or `null` for an id the chat-id guard refuses (never a path). */
|
|
43
|
+
private fileOf;
|
|
44
|
+
private append;
|
|
45
|
+
/** The operator's message a send delivered, with the seats the engine reached (the 202's `seats`). */
|
|
46
|
+
appendUser(chatId: string, turnId: string, text: string, seats: readonly string[]): void;
|
|
47
|
+
/**
|
|
48
|
+
* Fold one STAMPED frame (call with `chatTurns.decorate(event)`'s result): a seat's `chatReply`
|
|
49
|
+
* carrying `turn_id` becomes a `seat` record — ok or not (an eviction's `ok: false` text names the
|
|
50
|
+
* budget). Every other frame, and a reply no live turn stamped, is ignored.
|
|
51
|
+
*/
|
|
52
|
+
observe(stamped: CoreEvent): void;
|
|
53
|
+
/** Every record of the chat in append order; `[]` for a chat with no file (or a refused id). */
|
|
54
|
+
read(chatId: string): ChatTranscriptRecord[];
|
|
55
|
+
/** The chat is gone (`chatClosed`, any reason): its transcript goes with it. */
|
|
56
|
+
drop(chatId: string): void;
|
|
57
|
+
/** Daemon boot: no chat survives a restart, so every file here is an orphan — remove them all. */
|
|
58
|
+
clearAll(): void;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=chat-transcripts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-transcripts.d.ts","sourceRoot":"","sources":["../../src/api/chat-transcripts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAKH,OAAO,KAAK,EAAE,oBAAoB,EAAa,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAInF,qFAAqF;AACrF,eAAO,MAAM,wBAAwB,UAAU,CAAC;AAEhD,8FAA8F;AAC9F,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AAgBD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;gBAEvB,IAAI,GAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;KAAO;IAK3D,mEAAmE;IACnE,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,6FAA6F;IAC7F,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,MAAM;IAcd,sGAAsG;IACtG,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI;IAIxF;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI;IAkBjC,gGAAgG;IAChG,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,EAAE;IAe5C,gFAAgF;IAChF,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK1B,kGAAkG;IAClG,QAAQ,IAAI,IAAI;CAGjB"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The chat transcript AT REST (DES-L5 §5-d; D-13 / BC-33; F-RC1-112 = F-RECON-018, crew#503).
|
|
3
|
+
*
|
|
4
|
+
* The engine keeps a chat's warm seats and their conversation memory, but no transcript: every
|
|
5
|
+
* `chatDelta` / `chatReply` is seen exactly once, on `/ws`, by whoever is connected at that moment.
|
|
6
|
+
* P6 reproduced the consequence — a reload (or a second tab) of a LIVE chat rendered a blank thread,
|
|
7
|
+
* and the reply nobody was watching for was simply gone. The daemon sees every frame once too, at
|
|
8
|
+
* the ONE hook that already stamps `turn_id` (`server.ts` → `chatTurns.decorate`), so the record is
|
|
9
|
+
* written there: one append-only JSONL file per chat under the state home, served back on
|
|
10
|
+
* `GET /chats/:id` as `messages` (api-types 0.38.0 `ChatTranscriptRecord`, append order).
|
|
11
|
+
*
|
|
12
|
+
* Retention = the chat's LIFETIME (D-13, as designed — no age sweep, no second mechanism):
|
|
13
|
+
* - the file is DROPPED on the engine's `chatClosed` (requested, idle and pool_cap alike — the one
|
|
14
|
+
* arm `server.ts` already folds for the scope index);
|
|
15
|
+
* - the directory is CLEARED at daemon boot — no chat survives a restart (the engine's pool is in
|
|
16
|
+
* memory), so every file present at boot is an orphan;
|
|
17
|
+
* - only frames a live turn STAMPED (`turn_id` present) are persisted, so a straggler `chatReply`
|
|
18
|
+
* after the close cannot recreate a file, and `turnId` is never null on a record.
|
|
19
|
+
*
|
|
20
|
+
* Privacy posture: the directory is 0700 and each file 0600 (the transcript is the operator's
|
|
21
|
+
* conversation); the file name is the chat id, admitted by the SAME guard the scratch root applies
|
|
22
|
+
* (`CHAT_ID` — one sanitizer, no second regex), so an arbitrary `GET /chats/:id` can never name a
|
|
23
|
+
* path. `messages` is unbounded — a reply may be up to the engine's 8 MB cap (wave 1, noted).
|
|
24
|
+
*
|
|
25
|
+
* Registered in `tests/fixtures/state-home-subtrees.json` as `chats` (crew half; the core half —
|
|
26
|
+
* the worker Read fence — landed with core-ts 0.7.26), and named in `state-home-registry.ts`.
|
|
27
|
+
*/
|
|
28
|
+
import { appendFileSync, chmodSync, existsSync, mkdirSync, readFileSync, rmSync } from 'node:fs';
|
|
29
|
+
import { join } from 'node:path';
|
|
30
|
+
import { crewStateHome } from '../projects/state-home.js';
|
|
31
|
+
import { CHAT_ID } from './chat-scope.js';
|
|
32
|
+
/** The state-home entry (`<state home>/chats/`) — the name the fixture registers. */
|
|
33
|
+
export const CHAT_TRANSCRIPTS_DIRNAME = 'chats';
|
|
34
|
+
/** Where the transcripts live: under the daemon's state home, like every other crew store. */
|
|
35
|
+
export function defaultChatTranscriptsDir() {
|
|
36
|
+
return join(crewStateHome(), 'chats');
|
|
37
|
+
}
|
|
38
|
+
/** The `usage` a `chatReply` may carry (core-ts ≥ 0.7.26): the engine's `Usage`, or `null`. */
|
|
39
|
+
function usageOf(value) {
|
|
40
|
+
if (value === null || typeof value !== 'object')
|
|
41
|
+
return null;
|
|
42
|
+
const u = value;
|
|
43
|
+
const num = (k) => (typeof u[k] === 'number' && Number.isFinite(u[k]) ? u[k] : 0);
|
|
44
|
+
return {
|
|
45
|
+
inputTokens: num('inputTokens'),
|
|
46
|
+
outputTokens: num('outputTokens'),
|
|
47
|
+
cacheReadTokens: num('cacheReadTokens'),
|
|
48
|
+
cacheCreationTokens: num('cacheCreationTokens'),
|
|
49
|
+
costUsd: typeof u['costUsd'] === 'number' && Number.isFinite(u['costUsd']) ? u['costUsd'] : null,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
export class ChatTranscriptStore {
|
|
53
|
+
dir;
|
|
54
|
+
now;
|
|
55
|
+
constructor(opts = {}) {
|
|
56
|
+
this.dir = opts.dir ?? defaultChatTranscriptsDir();
|
|
57
|
+
this.now = opts.now ?? Date.now;
|
|
58
|
+
}
|
|
59
|
+
/** The directory this store writes under (diagnostics / tests). */
|
|
60
|
+
get directory() {
|
|
61
|
+
return this.dir;
|
|
62
|
+
}
|
|
63
|
+
/** `<dir>/<chatId>.jsonl` — or `null` for an id the chat-id guard refuses (never a path). */
|
|
64
|
+
fileOf(chatId) {
|
|
65
|
+
return CHAT_ID.test(chatId) ? join(this.dir, `${chatId}.jsonl`) : null;
|
|
66
|
+
}
|
|
67
|
+
append(chatId, record) {
|
|
68
|
+
const file = this.fileOf(chatId);
|
|
69
|
+
if (file === null)
|
|
70
|
+
return;
|
|
71
|
+
mkdirSync(this.dir, { recursive: true, mode: 0o700 });
|
|
72
|
+
const fresh = !existsSync(file);
|
|
73
|
+
appendFileSync(file, `${JSON.stringify(record)}\n`, { mode: 0o600 });
|
|
74
|
+
// `mode` applies on creation only; enforce on the first write and on the directory (mkdir's
|
|
75
|
+
// `mode` is masked by the umask) — the transcript is the operator's conversation.
|
|
76
|
+
if (process.platform !== 'win32') {
|
|
77
|
+
if (fresh)
|
|
78
|
+
chmodSync(file, 0o600);
|
|
79
|
+
chmodSync(this.dir, 0o700);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/** The operator's message a send delivered, with the seats the engine reached (the 202's `seats`). */
|
|
83
|
+
appendUser(chatId, turnId, text, seats) {
|
|
84
|
+
this.append(chatId, { at: this.now(), turnId, kind: 'user', text, seats: [...seats] });
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Fold one STAMPED frame (call with `chatTurns.decorate(event)`'s result): a seat's `chatReply`
|
|
88
|
+
* carrying `turn_id` becomes a `seat` record — ok or not (an eviction's `ok: false` text names the
|
|
89
|
+
* budget). Every other frame, and a reply no live turn stamped, is ignored.
|
|
90
|
+
*/
|
|
91
|
+
observe(stamped) {
|
|
92
|
+
if (stamped.type !== 'chatReply')
|
|
93
|
+
return;
|
|
94
|
+
const frame = stamped;
|
|
95
|
+
const chatId = typeof frame['chat'] === 'string' ? frame['chat'] : undefined;
|
|
96
|
+
const cliKey = typeof frame['cliKey'] === 'string' ? frame['cliKey'] : undefined;
|
|
97
|
+
const turnId = typeof frame['turn_id'] === 'string' ? frame['turn_id'] : undefined;
|
|
98
|
+
if (chatId === undefined || cliKey === undefined || turnId === undefined)
|
|
99
|
+
return;
|
|
100
|
+
this.append(chatId, {
|
|
101
|
+
at: this.now(),
|
|
102
|
+
turnId,
|
|
103
|
+
kind: 'seat',
|
|
104
|
+
cliKey,
|
|
105
|
+
text: typeof frame['text'] === 'string' ? frame['text'] : '',
|
|
106
|
+
ok: frame['ok'] === true,
|
|
107
|
+
usage: usageOf(frame['usage']),
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
/** Every record of the chat in append order; `[]` for a chat with no file (or a refused id). */
|
|
111
|
+
read(chatId) {
|
|
112
|
+
const file = this.fileOf(chatId);
|
|
113
|
+
if (file === null || !existsSync(file))
|
|
114
|
+
return [];
|
|
115
|
+
const out = [];
|
|
116
|
+
for (const line of readFileSync(file, 'utf8').split('\n')) {
|
|
117
|
+
if (line.trim() === '')
|
|
118
|
+
continue;
|
|
119
|
+
try {
|
|
120
|
+
out.push(JSON.parse(line));
|
|
121
|
+
}
|
|
122
|
+
catch {
|
|
123
|
+
// A torn last line (a crash mid-append) is not a reason to lose the rest of the record.
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return out;
|
|
127
|
+
}
|
|
128
|
+
/** The chat is gone (`chatClosed`, any reason): its transcript goes with it. */
|
|
129
|
+
drop(chatId) {
|
|
130
|
+
const file = this.fileOf(chatId);
|
|
131
|
+
if (file !== null)
|
|
132
|
+
rmSync(file, { force: true });
|
|
133
|
+
}
|
|
134
|
+
/** Daemon boot: no chat survives a restart, so every file here is an orphan — remove them all. */
|
|
135
|
+
clearAll() {
|
|
136
|
+
rmSync(this.dir, { recursive: true, force: true });
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=chat-transcripts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-transcripts.js","sourceRoot":"","sources":["../../src/api/chat-transcripts.ts"],"names":[],"mappings":"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"}
|
package/dist/api/chat-turns.d.ts
CHANGED
|
@@ -21,8 +21,14 @@
|
|
|
21
21
|
* delta/reply under the message it answers instead of the newest bubble.
|
|
22
22
|
*
|
|
23
23
|
* A turn whose frames were lost (an engine restart, a seat reaped without a frame) must never wedge
|
|
24
|
-
* the chat: a turn older than `staleAfterMs` (default
|
|
25
|
-
*
|
|
24
|
+
* the chat: a turn older than `staleAfterMs` (default three engine turn budgets — `3 ×
|
|
25
|
+
* WICKED_CHAT_TURN_SECS`, 30 min at the engine's 600 s default; DES-L5 R16) is treated as ended by
|
|
26
|
+
* every read, and reported in the 409's `stale` reason when it is what let a send pass.
|
|
27
|
+
*
|
|
28
|
+
* DES-L5 (F-E2E-041): `begin` runs BEFORE the engine call, in the same tick as `inFlight`, so two
|
|
29
|
+
* racing sends cannot both pass the predicate and early `chatDelta`s are stamped; `reconcile` then
|
|
30
|
+
* squares the reserved audience with the seats the engine actually reached, and `abort` retracts a
|
|
31
|
+
* turn whose send the engine refused.
|
|
26
32
|
*/
|
|
27
33
|
import type { CoreEvent } from '../core/types.js';
|
|
28
34
|
/** One live turn: the message a set of seats is answering. */
|
|
@@ -50,7 +56,25 @@ export interface ChatTurnInFlight {
|
|
|
50
56
|
excerpt: string;
|
|
51
57
|
}
|
|
52
58
|
export declare const CHAT_TURN_EXCERPT_CHARS = 120;
|
|
53
|
-
/**
|
|
59
|
+
/**
|
|
60
|
+
* The engine's per-turn chat budget default (wicked-core `chat_timeout`, DES-L5 R16 — 600 s, a
|
|
61
|
+
* hypothesis re-derived in the P6 re-run). The constant MIRRORS core's; the variable is the same
|
|
62
|
+
* one core-ts reads in this process, so the two agree on any deployment that sets it, and a drift
|
|
63
|
+
* of the default is a text bug in whichever side moved.
|
|
64
|
+
*/
|
|
65
|
+
export declare const CHAT_TURN_BUDGET_SECS_DEFAULT = 600;
|
|
66
|
+
/** How many engine turn budgets a turn may outlive with no closing frame before it reads as lost. */
|
|
67
|
+
export declare const CHAT_TURN_STALE_BUDGETS = 3;
|
|
68
|
+
/** The per-turn chat budget in seconds: `WICKED_CHAT_TURN_SECS` (a positive integer), else 600. */
|
|
69
|
+
export declare function chatTurnBudgetSecs(env?: NodeJS.ProcessEnv): number;
|
|
70
|
+
/**
|
|
71
|
+
* Three engine turn budgets, derived from the SAME variable the engine reads: a turn this old with
|
|
72
|
+
* no closing frame is lost, not live. Consequence (accepted, DES-L5 R16): a turn whose frames were
|
|
73
|
+
* lost wedges its seat for 30 min at the default (was 15) before `inFlight` treats it as ended —
|
|
74
|
+
* lost frames are an engine-restart class, and a restart empties the pool anyway.
|
|
75
|
+
*/
|
|
76
|
+
export declare function chatTurnStaleAfterMs(env?: NodeJS.ProcessEnv): number;
|
|
77
|
+
/** The stale ceiling at module load, from the daemon's environment (kept for readers of the constant). */
|
|
54
78
|
export declare const CHAT_TURN_STALE_AFTER_MS: number;
|
|
55
79
|
export declare class ChatTurnIndex {
|
|
56
80
|
/** chatId → live turns (a seat is in at most one — `inFlight` refuses the second). */
|
|
@@ -68,8 +92,23 @@ export declare class ChatTurnIndex {
|
|
|
68
92
|
* whose pending seats intersect the targets. `null` when every targeted seat is idle.
|
|
69
93
|
*/
|
|
70
94
|
inFlight(chatId: string, targets?: readonly string[]): ChatTurnInFlight | null;
|
|
71
|
-
/**
|
|
95
|
+
/**
|
|
96
|
+
* Open a turn for the seats a send is ABOUT to reach (the audience `inFlight` was asked about —
|
|
97
|
+
* DES-L5: called before the engine call, so the window between the predicate and the record is
|
|
98
|
+
* closed and early frames are stamped); `reconcile` squares it with the engine's answer. An empty
|
|
99
|
+
* seat list opens nothing (nothing to wait for).
|
|
100
|
+
*/
|
|
72
101
|
begin(chatId: string, seats: readonly string[], text: string): ChatTurn | null;
|
|
102
|
+
/**
|
|
103
|
+
* The engine's answer to the send `begin` reserved `turnId` for: `seats` become what the engine
|
|
104
|
+
* reached; `pending` keeps the reserved seats the engine confirmed and still answering, plus any
|
|
105
|
+
* seat the engine added that was never reserved — a reserved seat the engine did NOT reach is
|
|
106
|
+
* dropped (nothing will ever answer for it). An empty answer ends the turn. Returns the turn, or
|
|
107
|
+
* `null` when it is no longer live.
|
|
108
|
+
*/
|
|
109
|
+
reconcile(chatId: string, turnId: string, engineSeats: readonly string[]): ChatTurn | null;
|
|
110
|
+
/** The engine REFUSED the send `begin` reserved `turnId` for: nothing is answering — retract it. */
|
|
111
|
+
abort(chatId: string, turnId: string): void;
|
|
73
112
|
/** The live turn a seat of a chat is answering, if any. */
|
|
74
113
|
turnOf(chatId: string, cliKey: string): ChatTurn | undefined;
|
|
75
114
|
/** Every live turn of a chat (diagnostics / tests). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-turns.d.ts","sourceRoot":"","sources":["../../src/api/chat-turns.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"chat-turns.d.ts","sourceRoot":"","sources":["../../src/api/chat-turns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,8DAA8D;AAC9D,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,oDAAoD;IACpD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,2DAA2D;AAC3D,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,uEAAuE;IACvE,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAE3C;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,MAAM,CAAC;AACjD,qGAAqG;AACrG,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC,mGAAmG;AACnG,wBAAgB,kBAAkB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAI/E;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAEjF;AACD,0GAA0G;AAC1G,eAAO,MAAM,wBAAwB,QAAyB,CAAC;AAY/D,qBAAa,aAAa;IACxB,sFAAsF;IACtF,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiC;IACvD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAE1B,IAAI,GAAE;QAAE,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAO;IAKpE,qFAAqF;IACrF,OAAO,CAAC,IAAI;IAUZ;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,gBAAgB,GAAG,IAAI;IAiB9E;;;;;OAKG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAiB9E;;;;;;OAMG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,QAAQ,GAAG,IAAI;IAc1F,oGAAoG;IACpG,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAQ3C,2DAA2D;IAC3D,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAI5D,uDAAuD;IACvD,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE;IAInC,oFAAoF;IACpF,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAgB/B;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS;IASrC,qFAAqF;IACrF,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAG7B"}
|