@cat-factory/kernel 0.225.0 → 0.227.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/domain/binary-generators.d.ts +11 -28
- package/dist/domain/binary-generators.d.ts.map +1 -1
- package/dist/domain/binary-generators.js +64 -21
- package/dist/domain/binary-generators.js.map +1 -1
- package/dist/domain/catalog.d.ts +13 -1
- package/dist/domain/catalog.d.ts.map +1 -1
- package/dist/domain/catalog.js +16 -2
- package/dist/domain/catalog.js.map +1 -1
- package/dist/domain/change-class.d.ts +47 -1
- package/dist/domain/change-class.d.ts.map +1 -1
- package/dist/domain/change-class.js +59 -0
- package/dist/domain/change-class.js.map +1 -1
- package/dist/domain/llm-rollup.d.ts +51 -4
- package/dist/domain/llm-rollup.d.ts.map +1 -1
- package/dist/domain/llm-rollup.js +77 -5
- package/dist/domain/llm-rollup.js.map +1 -1
- package/dist/domain/seed.d.ts.map +1 -1
- package/dist/domain/seed.js +14 -4
- package/dist/domain/seed.js.map +1 -1
- package/dist/domain/types.d.ts +1 -1
- package/dist/domain/types.d.ts.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/dist/ports/agent-executor.d.ts +1 -1
- package/dist/ports/index.d.ts +2 -1
- package/dist/ports/index.d.ts.map +1 -1
- package/dist/ports/index.js.map +1 -1
- package/dist/ports/llm-metrics.d.ts +37 -6
- package/dist/ports/llm-metrics.d.ts.map +1 -1
- package/dist/ports/llm-metrics.js.map +1 -1
- package/dist/ports/operational-metrics.d.ts +19 -1
- package/dist/ports/operational-metrics.d.ts.map +1 -1
- package/dist/ports/operational-metrics.js.map +1 -1
- package/dist/ports/runner-transport.d.ts +1 -1
- package/dist/ports/tutorial-progress-repositories.d.ts +17 -0
- package/dist/ports/tutorial-progress-repositories.d.ts.map +1 -0
- package/dist/ports/tutorial-progress-repositories.js +2 -0
- package/dist/ports/tutorial-progress-repositories.js.map +1 -0
- package/dist/shared/host-markdown.logic.d.ts +59 -0
- package/dist/shared/host-markdown.logic.d.ts.map +1 -1
- package/dist/shared/host-markdown.logic.js +100 -4
- package/dist/shared/host-markdown.logic.js.map +1 -1
- package/package.json +2 -2
|
@@ -163,21 +163,52 @@ export interface LlmCallRollupTotals {
|
|
|
163
163
|
* on any real run — every store aggregates it as a 64-bit sum.
|
|
164
164
|
*/
|
|
165
165
|
carryCostTokens: number;
|
|
166
|
+
/**
|
|
167
|
+
* Estimated money this cell's tokens cost, in the deployment's spend currency, derived from
|
|
168
|
+
* each class at its own rate (a cache read is ~0.1x fresh input, a cache write ~1.25x).
|
|
169
|
+
*
|
|
170
|
+
* NULL means the reader could not price it, which is a different fact from `0` and must stay
|
|
171
|
+
* one: a deployment with no pricing wired and a cell that genuinely cost nothing render the
|
|
172
|
+
* same only if this collapses. The stores never compute it — pricing is configuration, not
|
|
173
|
+
* SQL — so a cell arrives null and is filled in by `priceRollupCells` at the seam that holds
|
|
174
|
+
* the price table. A fold whose terms are not ALL priced stays null rather than reporting a
|
|
175
|
+
* partial sum as a total.
|
|
176
|
+
*/
|
|
177
|
+
costEstimate: number | null;
|
|
166
178
|
}
|
|
167
179
|
/**
|
|
168
|
-
* One `(agentKind, phase)` cell of a run's model activity — the
|
|
169
|
-
*
|
|
170
|
-
*
|
|
171
|
-
*
|
|
172
|
-
* aggregation — it never reads the heavy prompt/response text columns.
|
|
180
|
+
* One `(agentKind, phase)` cell of a run's model activity — the grain every CONSUMER reads.
|
|
181
|
+
* Attached to the matching pipeline step for at-a-glance board display (folded up to the kind)
|
|
182
|
+
* and grouped by phase for the burn breakdown
|
|
183
|
+
* (`docs/initiatives/token-burn-instrumentation.md`).
|
|
173
184
|
*
|
|
174
185
|
* `phase` is `''` for a call nothing could attribute (an older harness image, an inline
|
|
175
186
|
* call, the un-phased proxy path). That is a REAL cell of the breakdown, never dropped.
|
|
187
|
+
*
|
|
188
|
+
* Distinct from {@link LlmCallMetricSummary}, which is what the STORE returns: a cell that has
|
|
189
|
+
* been through `priceRollupCells` no longer has one `(provider, model)` answer, so it does not
|
|
190
|
+
* carry the fields. That is a typecheck rather than a convention, because a collapsed cell's
|
|
191
|
+
* model would look readable and name whichever contributor happened to arrive first.
|
|
176
192
|
*/
|
|
177
|
-
export interface
|
|
193
|
+
export interface LlmRollupCell extends LlmCallRollupTotals {
|
|
178
194
|
agentKind: string;
|
|
179
195
|
phase: string;
|
|
180
196
|
}
|
|
197
|
+
/**
|
|
198
|
+
* One `(agentKind, phase, provider, model)` cell — the finest grain the store aggregates, and
|
|
199
|
+
* the only one it computes. Computed by SQL aggregation: it never reads the heavy
|
|
200
|
+
* prompt/response text columns.
|
|
201
|
+
*
|
|
202
|
+
* The MODEL is part of the grain because money is: a cost is `(model, token classes)` and
|
|
203
|
+
* nothing coarser can price a step whose calls were not all served by one model — which is the
|
|
204
|
+
* NORMAL case on a harness CLI, since it serves some of its own turns with a cheaper model.
|
|
205
|
+
* Every consumer still reads the {@link LlmRollupCell} view; it just gets one that was priced
|
|
206
|
+
* before the model was folded away (`priceRollupCells`), rather than one that never could be.
|
|
207
|
+
*/
|
|
208
|
+
export interface LlmCallMetricSummary extends LlmRollupCell {
|
|
209
|
+
provider: string;
|
|
210
|
+
model: string;
|
|
211
|
+
}
|
|
181
212
|
/** The most recent call's chain tip for delta prompt storage. */
|
|
182
213
|
export interface LlmPromptChainTip {
|
|
183
214
|
/** The call's full message count. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-metrics.d.ts","sourceRoot":"","sources":["../../src/ports/llm-metrics.ts"],"names":[],"mappings":"AAUA;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,YAAI,QAAQ,EAAE,gBAAgB,CAAU,CAAA;AAE/E,gFAAgF;AAChF,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,wEAAwE;IACxE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAA;IACjB,yEAAyE;IACzE,SAAS,EAAE,OAAO,CAAA;IAClB;;;;;;;;;OASG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;;;OAQG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,8CAA8C;IAC9C,YAAY,EAAE,MAAM,CAAA;IACpB,kFAAkF;IAClF,SAAS,EAAE,MAAM,CAAA;IACjB,sFAAsF;IACtF,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B;;;;;;OAMG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB;;;;;OAKG;IACH,eAAe,EAAE,MAAM,CAAA;IACvB;;;;;;OAMG;IACH,gBAAgB,EAAE,MAAM,CAAA;IACxB,qDAAqD;IACrD,gBAAgB,EAAE,MAAM,CAAA;IACxB,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAA;IACnB,qGAAqG;IACrG,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,4EAA4E;IAC5E,UAAU,EAAE,MAAM,CAAA;IAClB,qFAAqF;IACrF,UAAU,EAAE,MAAM,CAAA;IAClB,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAA;IACf,4DAA4D;IAC5D,EAAE,EAAE,OAAO,CAAA;IACX,oGAAoG;IACpG,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,iEAAiE;IACjE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B;;;;;OAKG;IACH,UAAU,EAAE,MAAM,CAAA;IAClB;;;OAGG;IACH,iBAAiB,EAAE,MAAM,CAAA;IACzB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAA;IAClB,0EAA0E;IAC1E,YAAY,EAAE,MAAM,CAAA;IACpB;;;;;;OAMG;IACH,aAAa,EAAE,MAAM,CAAA;CACtB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAA;IACb,8EAA8E;IAC9E,YAAY,EAAE,MAAM,CAAA;IACpB,mEAAmE;IACnE,eAAe,EAAE,MAAM,CAAA;IACvB,6DAA6D;IAC7D,gBAAgB,EAAE,MAAM,CAAA;IACxB,yCAAyC;IACzC,gBAAgB,EAAE,MAAM,CAAA;IACxB,wFAAwF;IACxF,oBAAoB,EAAE,MAAM,CAAA;IAC5B,uFAAuF;IACvF,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,0EAA0E;IAC1E,cAAc,EAAE,MAAM,CAAA;IACtB,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAA;IAClB,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAA;IACd,sFAAsF;IACtF,QAAQ,EAAE,MAAM,CAAA;IAChB;;;;;;;;;;;;;;;;OAgBG;IACH,eAAe,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"llm-metrics.d.ts","sourceRoot":"","sources":["../../src/ports/llm-metrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-metrics.js","sourceRoot":"","sources":["../../src/ports/llm-metrics.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,kFAAkF;AAClF,mFAAmF;AACnF,iFAAiF;AACjF,kFAAkF;AAClF,+EAA+E;AAC/E,iFAAiF;AACjF,oFAAoF;AACpF,gDAAgD;AAEhD;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"llm-metrics.js","sourceRoot":"","sources":["../../src/ports/llm-metrics.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,kFAAkF;AAClF,mFAAmF;AACnF,iFAAiF;AACjF,kFAAkF;AAClF,+EAA+E;AAC/E,iFAAiF;AACjF,oFAAoF;AACpF,gDAAgD;AAEhD;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAU,CAAA;AAoP/E;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AACnD,CAAC"}
|
|
@@ -34,7 +34,25 @@ export type OperationalCounter =
|
|
|
34
34
|
* The durable attempt ledger was unreachable, so the throttle fell back to its per-process
|
|
35
35
|
* window. Silent otherwise, and it degrades every replica's view of an attack at once.
|
|
36
36
|
*/
|
|
37
|
-
| 'auth.throttle.store_unavailable'
|
|
37
|
+
| 'auth.throttle.store_unavailable'
|
|
38
|
+
/**
|
|
39
|
+
* An in-app tutorial walkthrough was started / finished / broken off. Dimensioned by `tour`.
|
|
40
|
+
*
|
|
41
|
+
* The one PRODUCT signal on an otherwise operational surface, and it is here rather than on a
|
|
42
|
+
* second seam because there is no second seam: the rule is one counter port, and adding a
|
|
43
|
+
* parallel one to keep this tidy would be two places to get delta temporality wrong. What it
|
|
44
|
+
* buys is the question the in-app-tutorial initiative could not answer about itself — the
|
|
45
|
+
* catalogue made every walkthrough reachable, but whether any is REACHED was unmeasured, so
|
|
46
|
+
* each further slice was chosen on a guess. Started-vs-completed separates "nobody opens it"
|
|
47
|
+
* from "everybody drops it halfway", which need opposite fixes.
|
|
48
|
+
*
|
|
49
|
+
* The `tour` dimension is bounded in TWO places, because neither alone is enough: the wire
|
|
50
|
+
* schema constrains the SHAPE of an id, and `TutorialTelemetryService` caps how many DISTINCT
|
|
51
|
+
* ids one process will ever report, folding the rest onto `other` and logging that it did.
|
|
52
|
+
* A dimension whose values come from a browser is otherwise an unbounded-cardinality hole in
|
|
53
|
+
* the operator's own backend.
|
|
54
|
+
*/
|
|
55
|
+
| 'tutorial.tour_started' | 'tutorial.tour_completed' | 'tutorial.tour_abandoned';
|
|
38
56
|
/** The closed set of operational gauges — point-in-time readings, never accumulated. */
|
|
39
57
|
export type OperationalGauge =
|
|
40
58
|
/** Jobs waiting in a durable queue right now. Dimensioned by `queue`. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operational-metrics.d.ts","sourceRoot":"","sources":["../../src/ports/operational-metrics.ts"],"names":[],"mappings":"AAoBA;;;;GAIG;AACH,MAAM,MAAM,kBAAkB;AAC5B,mFAAmF;AACjF,oBAAoB;AACtB,0FAA0F;GACxF,qBAAqB;AACvB,sFAAsF;GACpF,mBAAmB;AACrB,yFAAyF;GACvF,cAAc;AAChB,wFAAwF;GACtF,2BAA2B;AAC7B,oFAAoF;GAClF,mBAAmB;AACrB,0EAA0E;GACxE,0BAA0B;AAC5B,kEAAkE;GAChE,8BAA8B;AAChC,uEAAuE;GACrE,WAAW;AACb,+EAA+E;GAC7E,YAAY;AACd;;;;GAIG;GACD,uBAAuB;AACzB;;;GAGG;GACD,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"operational-metrics.d.ts","sourceRoot":"","sources":["../../src/ports/operational-metrics.ts"],"names":[],"mappings":"AAoBA;;;;GAIG;AACH,MAAM,MAAM,kBAAkB;AAC5B,mFAAmF;AACjF,oBAAoB;AACtB,0FAA0F;GACxF,qBAAqB;AACvB,sFAAsF;GACpF,mBAAmB;AACrB,yFAAyF;GACvF,cAAc;AAChB,wFAAwF;GACtF,2BAA2B;AAC7B,oFAAoF;GAClF,mBAAmB;AACrB,0EAA0E;GACxE,0BAA0B;AAC5B,kEAAkE;GAChE,8BAA8B;AAChC,uEAAuE;GACrE,WAAW;AACb,+EAA+E;GAC7E,YAAY;AACd;;;;GAIG;GACD,uBAAuB;AACzB;;;GAGG;GACD,iCAAiC;AACnC;;;;;;;;;;;;;;;;GAgBG;GACD,uBAAuB,GACvB,yBAAyB,GACzB,yBAAyB,CAAA;AAU7B,wFAAwF;AACxF,MAAM,MAAM,gBAAgB;AAC1B,yEAAyE;AACzE,aAAa,CAAA;AAEf;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;AAEpE,sDAAsD;AACtD,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,kBAAkB,CAAA;IAC3B,UAAU,EAAE,qBAAqB,CAAA;IACjC,+FAA+F;IAC/F,KAAK,EAAE,MAAM,CAAA;CACd;AAED,uCAAuC;AACvC,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,gBAAgB,CAAA;IACvB,UAAU,EAAE,qBAAqB,CAAA;IACjC,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,SAAS,CAAC,OAAO,EAAE,kBAAkB,EAAE,UAAU,CAAC,EAAE,qBAAqB,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACjG;AAED;;;;;GAKG;AACH,MAAM,WAAW,2BAA4B,SAAQ,kBAAkB;IACrE;;;;;OAKG;IACH,KAAK,IAAI,wBAAwB,EAAE,CAAA;CACpC;AAED,2FAA2F;AAC3F,eAAO,MAAM,sBAAsB,EAAE,kBAA4C,CAAA;AAYjF;;;;;GAKG;AACH,wBAAgB,iCAAiC,IAAI,2BAA2B,CA8B/E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operational-metrics.js","sourceRoot":"","sources":["../../src/ports/operational-metrics.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,0CAA0C;AAC1C,EAAE;AACF,sFAAsF;AACtF,yFAAyF;AACzF,0FAA0F;AAC1F,4FAA4F;AAC5F,2FAA2F;AAC3F,6CAA6C;AAC7C,EAAE;AACF,8DAA8D;AAC9D,yFAAyF;AACzF,4FAA4F;AAC5F,iDAAiD;AACjD,yFAAyF;AACzF,qEAAqE;AACrE,EAAE;AACF,6FAA6F;AAC7F,mFAAmF;
|
|
1
|
+
{"version":3,"file":"operational-metrics.js","sourceRoot":"","sources":["../../src/ports/operational-metrics.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,0CAA0C;AAC1C,EAAE;AACF,sFAAsF;AACtF,yFAAyF;AACzF,0FAA0F;AAC1F,4FAA4F;AAC5F,2FAA2F;AAC3F,6CAA6C;AAC7C,EAAE;AACF,8DAA8D;AAC9D,yFAAyF;AACzF,4FAA4F;AAC5F,iDAAiD;AACjD,yFAAyF;AACzF,qEAAqE;AACrE,EAAE;AACF,6FAA6F;AAC7F,mFAAmF;AA6HnF,2FAA2F;AAC3F,MAAM,CAAC,MAAM,sBAAsB,GAAuB,EAAE,SAAS,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAA;AAEjF;;;;GAIG;AACH,SAAS,YAAY,CAAC,UAAiC;IACrD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAA;IAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC3D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iCAAiC;IAC/C,wFAAwF;IACxF,gDAAgD;IAChD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAGrB,CAAA;IACH,OAAO;QACL,SAAS,CAAC,OAAO,EAAE,UAAU,GAAG,EAAE,EAAE,KAAK,GAAG,CAAC;YAC3C,IAAI,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACxC,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,YAAY,GAAG,IAAI,GAAG,EAAE,CAAA;gBACxB,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;YACrC,CAAC;YACD,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,CAAC,CAAA;YACpC,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACtC,IAAI,QAAQ;gBAAE,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAA;;gBAChC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAA;QACzD,CAAC;QACD,KAAK;YACH,MAAM,OAAO,GAA+B,EAAE,CAAA;YAC9C,KAAK,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,QAAQ,EAAE,CAAC;gBAC/C,KAAK,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;oBACpD,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;gBACpD,CAAC;YACH,CAAC;YACD,QAAQ,CAAC,KAAK,EAAE,CAAA;YAChB,OAAO,OAAO,CAAA;QAChB,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -158,7 +158,7 @@ export interface RunnerJobResult {
|
|
|
158
158
|
* failed validation report this never fails the job (see the initiative's D6): the fix may
|
|
159
159
|
* well be correct, and how much the weak evidence matters is a reviewer's call. The executor's
|
|
160
160
|
* `toRunResult` forwards it onto {@link AgentRunResult.reproductionReport}. Absent when the
|
|
161
|
-
* run carried no declaration. See `docs/
|
|
161
|
+
* run carried no declaration. See `backend/docs/adr/0033-bugfix-reproduction-proof.md`.
|
|
162
162
|
*/
|
|
163
163
|
reproductionReport?: RunnerReproductionReport;
|
|
164
164
|
/**
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { TutorialProgress } from '../domain/types.js';
|
|
2
|
+
export interface TutorialProgressRepository {
|
|
3
|
+
/** The user's row, or null when they have never saved one. */
|
|
4
|
+
get(userId: string): Promise<TutorialProgress | null>;
|
|
5
|
+
/** Create or replace the user's row. */
|
|
6
|
+
upsert(userId: string, progress: TutorialProgress): Promise<void>;
|
|
7
|
+
/**
|
|
8
|
+
* Remove the row entirely (the "Reset progress" action).
|
|
9
|
+
*
|
|
10
|
+
* A DELETE rather than an upsert of the default value, because "never touched the tutorial"
|
|
11
|
+
* and "reset it back to the start" must be the same state: writing a row of defaults would
|
|
12
|
+
* leave a user who reset indistinguishable from one mid-way through in every future read that
|
|
13
|
+
* checks for a row's existence.
|
|
14
|
+
*/
|
|
15
|
+
remove(userId: string): Promise<void>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=tutorial-progress-repositories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tutorial-progress-repositories.d.ts","sourceRoot":"","sources":["../../src/ports/tutorial-progress-repositories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAW1D,MAAM,WAAW,0BAA0B;IACzC,8DAA8D;IAC9D,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAA;IACrD,wCAAwC;IACxC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACjE;;;;;;;OAOG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACtC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tutorial-progress-repositories.js","sourceRoot":"","sources":["../../src/ports/tutorial-progress-repositories.ts"],"names":[],"mappings":""}
|
|
@@ -21,6 +21,20 @@ export declare const MAX_SECTION_CHARS = 50000;
|
|
|
21
21
|
* (unlike escaping the fences) while guaranteeing the enclosing document stays well-formed.
|
|
22
22
|
*/
|
|
23
23
|
export declare function balanceFences(text: string): string;
|
|
24
|
+
/**
|
|
25
|
+
* Drop the trailing fenced block that `text` leaves OPEN, back to the line that opened it.
|
|
26
|
+
*
|
|
27
|
+
* The sibling of {@link balanceFences}, for the one caller that cannot use it: a hard cut against
|
|
28
|
+
* a byte budget. Closing the fence there would ADD characters to text that is already over the
|
|
29
|
+
* limit, and the fence is sized to the longest backtick run in the block, so the amount added is
|
|
30
|
+
* not knowable in advance. Removing is the disposition that fits by construction.
|
|
31
|
+
*
|
|
32
|
+
* It is also the better half to keep. Captured output is bounded from the END (see
|
|
33
|
+
* {@link boundOutput}), so the fragment a cut leaves behind is the head of a log whose failure was
|
|
34
|
+
* reported at its tail: the part nobody opened the report for. The caller's own truncation note is
|
|
35
|
+
* what states the cut.
|
|
36
|
+
*/
|
|
37
|
+
export declare function dropOpenFence(text: string): string;
|
|
24
38
|
/**
|
|
25
39
|
* Render untrusted multi-line prose as a safe markdown block: auto-link triggers defused,
|
|
26
40
|
* length capped, and any code fence the value leaves open closed again.
|
|
@@ -43,6 +57,51 @@ export declare function cell(value: string): string;
|
|
|
43
57
|
* to a caller's own budget, before the escapes, exactly as in {@link prose}.
|
|
44
58
|
*/
|
|
45
59
|
export declare function inline(value: string, max?: number): string;
|
|
60
|
+
/**
|
|
61
|
+
* Render untrusted text as a CODE SPAN in a markdown table cell (a command, a path, a stored id).
|
|
62
|
+
*
|
|
63
|
+
* Pipes are escaped because the GFM table parser splits the row BEFORE inline parsing, so a `\|`
|
|
64
|
+
* reaches the span as a literal `|`. Newlines fold to spaces rather than `cell`'s `<br>`, which
|
|
65
|
+
* inside a code span would render as the four characters it is.
|
|
66
|
+
*/
|
|
67
|
+
export declare function codeCell(value: string, max?: number): string;
|
|
68
|
+
/**
|
|
69
|
+
* Render untrusted text as a CODE SPAN outside a table (a label in a heading, a command on its
|
|
70
|
+
* own line).
|
|
71
|
+
*
|
|
72
|
+
* Deliberately does NOT escape pipes: outside a table row nothing splits on them, and a backslash
|
|
73
|
+
* escape is not honoured inside a code span, so `\|` would reach the reader as `\|`. That is the
|
|
74
|
+
* same split as {@link cell} versus {@link inline}, for the same reason.
|
|
75
|
+
*/
|
|
76
|
+
export declare function inlineCode(value: string, max?: number): string;
|
|
77
|
+
/**
|
|
78
|
+
* Render captured COMMAND OUTPUT as a fenced block the output itself cannot break out of.
|
|
79
|
+
*
|
|
80
|
+
* A test runner, a linter or a compiler legitimately prints backticks (a rule quoting a template
|
|
81
|
+
* literal, a snapshot echoing a fenced fixture), and a fixed three-tick fence closes on the first
|
|
82
|
+
* such run: everything after it lands in the document as prose — the rest of the log, the sections
|
|
83
|
+
* rendered below it, and the machine-readable JSON block that is the report's contract. Sizing the
|
|
84
|
+
* fence one tick longer than the longest run in the body is CommonMark's rule for exactly this, so
|
|
85
|
+
* the block always spans the whole tail.
|
|
86
|
+
*
|
|
87
|
+
* Deliberately NOT `inertLine`d: the host does not auto-link inside a fenced block, so escaping
|
|
88
|
+
* would only show the reader a literal `#` where the command printed a `#`. The fence is the
|
|
89
|
+
* whole boundary here, which is why it has to be the right length.
|
|
90
|
+
*/
|
|
91
|
+
export declare function outputBlock(text: string): string;
|
|
92
|
+
/**
|
|
93
|
+
* Bound a captured output tail, keeping the END of it and SAYING what was cut.
|
|
94
|
+
*
|
|
95
|
+
* The tail is where a failure is reported — a stack trace, an assertion diff, a compiler's error
|
|
96
|
+
* summary — so a prefix cut throws away the half a reviewer opened the report for. Returns the
|
|
97
|
+
* kept text plus how many characters were dropped, so a caller can log the cut in the report's own
|
|
98
|
+
* `truncations` rather than presenting a shortened log as a whole one.
|
|
99
|
+
*/
|
|
100
|
+
export declare function boundOutput(text: string, max: number): {
|
|
101
|
+
text: string;
|
|
102
|
+
dropped: number;
|
|
103
|
+
total: number;
|
|
104
|
+
};
|
|
46
105
|
/** Cap a list at {@link MAX_LIST_ITEMS}, returning the kept rows plus how many were dropped. */
|
|
47
106
|
export declare function capList<T>(items: readonly T[]): {
|
|
48
107
|
items: T[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-markdown.logic.d.ts","sourceRoot":"","sources":["../../src/shared/host-markdown.logic.ts"],"names":[],"mappings":"AA4BA,+FAA+F;AAC/F,eAAO,MAAM,eAAe,OAAQ,CAAA;AACpC,sEAAsE;AACtE,eAAO,MAAM,cAAc,MAAM,CAAA;AACjC,yEAAyE;AACzE,eAAO,MAAM,cAAc,KAAK,CAAA;AAChC;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,QAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"host-markdown.logic.d.ts","sourceRoot":"","sources":["../../src/shared/host-markdown.logic.ts"],"names":[],"mappings":"AA4BA,+FAA+F;AAC/F,eAAO,MAAM,eAAe,OAAQ,CAAA;AACpC,sEAAsE;AACtE,eAAO,MAAM,cAAc,MAAM,CAAA;AACjC,yEAAyE;AACzE,eAAO,MAAM,cAAc,KAAK,CAAA;AAChC;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,QAAS,CAAA;AAgHvC;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGlD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIlD;AAWD;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,MAAwB,GAAG,MAAM,CAQ1E;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAK1C;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,MAAuB,GAAG,MAAM,CAE1E;AAwBD;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,MAAuB,GAAG,MAAM,CAE5E;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,MAAuB,GAAG,MAAM,CAE9E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIhD;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,GACV;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAIlD;AAED,gGAAgG;AAChG,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,GAAG;IAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAG/E"}
|
|
@@ -117,19 +117,21 @@ function fenceAt(line) {
|
|
|
117
117
|
* Walk `lines`, tracking fenced-code state, and hand each line to `visit` together with
|
|
118
118
|
* whether it sits INSIDE a fenced block. Returns the fence still open at the end, if any.
|
|
119
119
|
*
|
|
120
|
-
* One shared walker so the
|
|
121
|
-
*
|
|
120
|
+
* One shared walker so the three things that care about fences (leaving code untouched, closing
|
|
121
|
+
* what the text left open, and dropping a block a hard cut landed inside) can never disagree
|
|
122
|
+
* about where a block starts and ends. `at` is the index of the line that OPENED the fence still
|
|
123
|
+
* standing, which is the only thing a caller cutting text back needs and the walker alone knows.
|
|
122
124
|
*/
|
|
123
125
|
function walkFences(lines, visit) {
|
|
124
126
|
let open = null;
|
|
125
|
-
for (const line of lines) {
|
|
127
|
+
for (const [index, line] of lines.entries()) {
|
|
126
128
|
const fence = fenceAt(line);
|
|
127
129
|
// The fence line itself belongs to the code block, so it is never rewritten.
|
|
128
130
|
visit(line, open !== null || fence !== null);
|
|
129
131
|
if (!fence)
|
|
130
132
|
continue;
|
|
131
133
|
if (!open)
|
|
132
|
-
open = { char: fence.char, length: fence.length };
|
|
134
|
+
open = { char: fence.char, length: fence.length, at: index };
|
|
133
135
|
else if (fence.char === open.char && fence.length >= open.length && !fence.info)
|
|
134
136
|
open = null;
|
|
135
137
|
}
|
|
@@ -147,6 +149,24 @@ export function balanceFences(text) {
|
|
|
147
149
|
const open = walkFences(text.split('\n'), () => { });
|
|
148
150
|
return open ? `${text}\n${open.char.repeat(open.length)}` : text;
|
|
149
151
|
}
|
|
152
|
+
/**
|
|
153
|
+
* Drop the trailing fenced block that `text` leaves OPEN, back to the line that opened it.
|
|
154
|
+
*
|
|
155
|
+
* The sibling of {@link balanceFences}, for the one caller that cannot use it: a hard cut against
|
|
156
|
+
* a byte budget. Closing the fence there would ADD characters to text that is already over the
|
|
157
|
+
* limit, and the fence is sized to the longest backtick run in the block, so the amount added is
|
|
158
|
+
* not knowable in advance. Removing is the disposition that fits by construction.
|
|
159
|
+
*
|
|
160
|
+
* It is also the better half to keep. Captured output is bounded from the END (see
|
|
161
|
+
* {@link boundOutput}), so the fragment a cut leaves behind is the head of a log whose failure was
|
|
162
|
+
* reported at its tail: the part nobody opened the report for. The caller's own truncation note is
|
|
163
|
+
* what states the cut.
|
|
164
|
+
*/
|
|
165
|
+
export function dropOpenFence(text) {
|
|
166
|
+
const lines = text.split('\n');
|
|
167
|
+
const open = walkFences(lines, () => { });
|
|
168
|
+
return open ? lines.slice(0, open.at).join('\n').trimEnd() : text;
|
|
169
|
+
}
|
|
150
170
|
/** Cut `value` to `max` characters, marking the cut. Prefers a line boundary when one is near. */
|
|
151
171
|
function truncate(value, max) {
|
|
152
172
|
if (value.length <= max)
|
|
@@ -193,6 +213,82 @@ export function cell(value) {
|
|
|
193
213
|
export function inline(value, max = MAX_CELL_CHARS) {
|
|
194
214
|
return inertLine(truncate(value.replace(/\s+/g, ' '), max));
|
|
195
215
|
}
|
|
216
|
+
/**
|
|
217
|
+
* Wrap already-flattened text in a code span whose delimiter the text cannot break out of.
|
|
218
|
+
*
|
|
219
|
+
* The inline twin of {@link outputBlock}, and it exists for the same reason: a hand-written
|
|
220
|
+
* `` `${cell(value)}` `` looks safe and is not, because {@link cell} escapes pipes, newlines and
|
|
221
|
+
* the auto-link triggers but NOT backticks. A value carrying one closes the span early, and the
|
|
222
|
+
* rest of it lands in the document as prose, where a `#`/`@`/closing keyword the caller believed
|
|
223
|
+
* was inert (the escapes deliberately skip code spans, since the host does not auto-link there)
|
|
224
|
+
* is suddenly live. Sizing the delimiter one tick past the longest run inside is CommonMark's
|
|
225
|
+
* rule for exactly this.
|
|
226
|
+
*
|
|
227
|
+
* The space padding is CommonMark's too: a span whose content begins or ends with a backtick
|
|
228
|
+
* needs one space on each side, and the renderer strips a single leading+trailing space back off.
|
|
229
|
+
*/
|
|
230
|
+
function codeSpan(text) {
|
|
231
|
+
if (!text)
|
|
232
|
+
return '';
|
|
233
|
+
const longestRun = Math.max(0, ...[...text.matchAll(/`+/g)].map((m) => m[0].length));
|
|
234
|
+
const ticks = '`'.repeat(longestRun + 1);
|
|
235
|
+
const pad = text.startsWith('`') || text.endsWith('`') ? ' ' : '';
|
|
236
|
+
return `${ticks}${pad}${text}${pad}${ticks}`;
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Render untrusted text as a CODE SPAN in a markdown table cell (a command, a path, a stored id).
|
|
240
|
+
*
|
|
241
|
+
* Pipes are escaped because the GFM table parser splits the row BEFORE inline parsing, so a `\|`
|
|
242
|
+
* reaches the span as a literal `|`. Newlines fold to spaces rather than `cell`'s `<br>`, which
|
|
243
|
+
* inside a code span would render as the four characters it is.
|
|
244
|
+
*/
|
|
245
|
+
export function codeCell(value, max = MAX_CELL_CHARS) {
|
|
246
|
+
return codeSpan(truncate(value.replace(/\s+/g, ' '), max).replaceAll('|', '\\|'));
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Render untrusted text as a CODE SPAN outside a table (a label in a heading, a command on its
|
|
250
|
+
* own line).
|
|
251
|
+
*
|
|
252
|
+
* Deliberately does NOT escape pipes: outside a table row nothing splits on them, and a backslash
|
|
253
|
+
* escape is not honoured inside a code span, so `\|` would reach the reader as `\|`. That is the
|
|
254
|
+
* same split as {@link cell} versus {@link inline}, for the same reason.
|
|
255
|
+
*/
|
|
256
|
+
export function inlineCode(value, max = MAX_CELL_CHARS) {
|
|
257
|
+
return codeSpan(truncate(value.replace(/\s+/g, ' '), max));
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Render captured COMMAND OUTPUT as a fenced block the output itself cannot break out of.
|
|
261
|
+
*
|
|
262
|
+
* A test runner, a linter or a compiler legitimately prints backticks (a rule quoting a template
|
|
263
|
+
* literal, a snapshot echoing a fenced fixture), and a fixed three-tick fence closes on the first
|
|
264
|
+
* such run: everything after it lands in the document as prose — the rest of the log, the sections
|
|
265
|
+
* rendered below it, and the machine-readable JSON block that is the report's contract. Sizing the
|
|
266
|
+
* fence one tick longer than the longest run in the body is CommonMark's rule for exactly this, so
|
|
267
|
+
* the block always spans the whole tail.
|
|
268
|
+
*
|
|
269
|
+
* Deliberately NOT `inertLine`d: the host does not auto-link inside a fenced block, so escaping
|
|
270
|
+
* would only show the reader a literal `#` where the command printed a `#`. The fence is the
|
|
271
|
+
* whole boundary here, which is why it has to be the right length.
|
|
272
|
+
*/
|
|
273
|
+
export function outputBlock(text) {
|
|
274
|
+
const longestRun = Math.max(0, ...[...text.matchAll(/`+/g)].map((m) => m[0].length));
|
|
275
|
+
const fence = '`'.repeat(Math.max(3, longestRun + 1));
|
|
276
|
+
return `${fence}\n${text.replace(/\r\n?/g, '\n').replace(/\n+$/, '')}\n${fence}`;
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Bound a captured output tail, keeping the END of it and SAYING what was cut.
|
|
280
|
+
*
|
|
281
|
+
* The tail is where a failure is reported — a stack trace, an assertion diff, a compiler's error
|
|
282
|
+
* summary — so a prefix cut throws away the half a reviewer opened the report for. Returns the
|
|
283
|
+
* kept text plus how many characters were dropped, so a caller can log the cut in the report's own
|
|
284
|
+
* `truncations` rather than presenting a shortened log as a whole one.
|
|
285
|
+
*/
|
|
286
|
+
export function boundOutput(text, max) {
|
|
287
|
+
const total = text.length;
|
|
288
|
+
if (total <= max)
|
|
289
|
+
return { text, dropped: 0, total };
|
|
290
|
+
return { text: text.slice(total - max), dropped: total - max, total };
|
|
291
|
+
}
|
|
196
292
|
/** Cap a list at {@link MAX_LIST_ITEMS}, returning the kept rows plus how many were dropped. */
|
|
197
293
|
export function capList(items) {
|
|
198
294
|
if (items.length <= MAX_LIST_ITEMS)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-markdown.logic.js","sourceRoot":"","sources":["../../src/shared/host-markdown.logic.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"host-markdown.logic.js","sourceRoot":"","sources":["../../src/shared/host-markdown.logic.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/kernel",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.227.0",
|
|
4
4
|
"description": "Shared vocabulary, pure logic, and port interfaces for the Agent Architecture Board.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"ai": "^7.0.47",
|
|
28
28
|
"yaml": "^2.9.0",
|
|
29
|
-
"@cat-factory/contracts": "0.
|
|
29
|
+
"@cat-factory/contracts": "0.225.0"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@vitest/coverage-v8": "^4.1.10",
|