@moxxy/sdk 0.14.4 → 0.15.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/README.md +2 -0
- package/dist/channel.d.ts +32 -0
- package/dist/channel.d.ts.map +1 -1
- package/dist/channel.js +28 -1
- package/dist/channel.js.map +1 -1
- package/dist/compactor-helpers.d.ts +59 -0
- package/dist/compactor-helpers.d.ts.map +1 -1
- package/dist/compactor-helpers.js +72 -1
- package/dist/compactor-helpers.js.map +1 -1
- package/dist/elision-helpers.d.ts.map +1 -1
- package/dist/elision-helpers.js +12 -5
- package/dist/elision-helpers.js.map +1 -1
- package/dist/elision-state.d.ts +4 -0
- package/dist/elision-state.d.ts.map +1 -1
- package/dist/elision-state.js +41 -0
- package/dist/elision-state.js.map +1 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -5
- package/dist/index.js.map +1 -1
- package/dist/mode/project-messages.d.ts +9 -0
- package/dist/mode/project-messages.d.ts.map +1 -1
- package/dist/mode/project-messages.js +4 -1
- package/dist/mode/project-messages.js.map +1 -1
- package/dist/server.d.ts +21 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +21 -0
- package/dist/server.js.map +1 -0
- package/dist/transcriber.d.ts +13 -0
- package/dist/transcriber.d.ts.map +1 -1
- package/dist/transcriber.js +13 -1
- package/dist/transcriber.js.map +1 -1
- package/package.json +9 -1
- package/src/channel.ts +37 -0
- package/src/compactor-helpers.test.ts +106 -0
- package/src/compactor-helpers.ts +125 -1
- package/src/elision-helpers.ts +14 -5
- package/src/elision-state.test.ts +78 -0
- package/src/elision-state.ts +42 -0
- package/src/index.ts +15 -19
- package/src/mode/project-messages.ts +13 -1
- package/src/package-root.test.ts +37 -0
- package/src/server.ts +34 -0
- package/src/transcriber.test.ts +12 -0
- package/src/transcriber.ts +14 -0
|
@@ -21,6 +21,15 @@ export interface ProjectMessagesOptions {
|
|
|
21
21
|
readonly systemPrompt?: string;
|
|
22
22
|
/** Optional trailing user message — useful for plan-execute's "Focus on this step now: X". */
|
|
23
23
|
readonly trailingUserText?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Optional precomputed elision state for THIS exact log snapshot. When a
|
|
26
|
+
* caller already derived it within the same loop iteration (e.g. the
|
|
27
|
+
* compaction/elision gates), threading it here skips a redundant
|
|
28
|
+
* `computeElisionState` fold. MUST be the state of the same log — a stale one
|
|
29
|
+
* would mis-render stubs — so it is purely an opt-in fast path; omitting it
|
|
30
|
+
* recomputes (memoized on the log version), byte-identically.
|
|
31
|
+
*/
|
|
32
|
+
readonly precomputedElisionState?: ElisionState;
|
|
24
33
|
}
|
|
25
34
|
/**
|
|
26
35
|
* Pure projection of a single `user_prompt` event to its content blocks.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-messages.d.ts","sourceRoot":"","sources":["../../src/mode/project-messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAmB,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACjF,OAAO,EAOL,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AAG7B,8EAA8E;AAC9E,eAAO,MAAM,mBAAmB,QAKb,CAAC;AAEpB;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CACzC,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,GAC3B,MAAM,GAAG,SAAS,CAoBpB;AAED,MAAM,WAAW,sBAAsB;IACrC,qEAAqE;IACrE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,8FAA8F;IAC9F,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"project-messages.d.ts","sourceRoot":"","sources":["../../src/mode/project-messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAmB,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACjF,OAAO,EAOL,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AAG7B,8EAA8E;AAC9E,eAAO,MAAM,mBAAmB,QAKb,CAAC;AAEpB;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CACzC,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,GAC3B,MAAM,GAAG,SAAS,CAoBpB;AAED,MAAM,WAAW,sBAAsB;IACrC,qEAAqE;IACrE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,8FAA8F;IAC9F,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC;;;;;;;OAOG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,YAAY,CAAC;CACjD;AAsFD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,YAAY,GAAG,YAAY,EAAE,CA8B1F;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAQhF;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,eAAe,EAAE,CAAC;IACrC;;;;;;;OAOG;IACH,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,EAC7B,IAAI,GAAE,sBAA2B,GAChC,eAAe,EAAE,CAEnB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,EAC7B,IAAI,GAAE,sBAA2B,GAChC,iBAAiB,CA8MnB"}
|
|
@@ -191,7 +191,10 @@ export function projectMessages(ctx, opts = {}) {
|
|
|
191
191
|
const compactions = activeCompactionRanges(allEvents);
|
|
192
192
|
const compactionFor = makeCompactionLookup(compactions);
|
|
193
193
|
const emittedCompactions = new Set();
|
|
194
|
-
|
|
194
|
+
// Reuse a threaded state when the caller already derived it for this exact
|
|
195
|
+
// snapshot; otherwise `computeElisionState` is memoized on the log version so
|
|
196
|
+
// the in-iteration projection still folds only once.
|
|
197
|
+
const el = opts.precomputedElisionState ?? computeElisionState(allEvents);
|
|
195
198
|
const messages = [];
|
|
196
199
|
// The stable prefix is every message produced from events at/below the
|
|
197
200
|
// elision HWM. Record the latest such message index as we push.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-messages.js","sourceRoot":"","sources":["../../src/mode/project-messages.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,iBAAiB,GAElB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,8EAA8E;AAC9E,MAAM,CAAC,MAAM,mBAAmB,GAC9B,4EAA4E;IAC5E,yFAAyF;IACzF,yFAAyF;IACzF,0FAA0F;IAC1F,iBAAiB,CAAC;AAEpB;;;;;;;;;GASG;AACH,MAAM,UAAU,2BAA2B,CACzC,gBAAoC,EACpC,MAA4B;IAE5B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,gBAAgB,CAAC;IACjD,MAAM,MAAM,GACV,yBAAyB;QACzB,oEAAoE;QACpE,sEAAsE;QACtE,uEAAuE;QACvE,uEAAuE;QACvE,4DAA4D,CAAC;IAC/D,MAAM,OAAO,GAAG,MAAM;SACnB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC;QACzB,MAAM,WAAW,GAAG,EAAE,CAAC,QAAQ,EAAE,MAAM;YACrC,CAAC,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YAC/D,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,OAAO,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC,WAAW,GAAG,WAAW,EAAE,CAAC;IAC9D,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,UAAU,GAAG,GAAG,MAAM,KAAK,OAAO,EAAE,CAAC;IAC3C,OAAO,gBAAgB,CAAC,CAAC,CAAC,GAAG,gBAAgB,OAAO,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;AAChF,CAAC;AAeD,SAAS,sBAAsB,CAAC,MAAiC;IAC/D,OAAO,MAAM;SACV,MAAM,CAAC,CAAC,KAAK,EAA4B,EAAE,CAC1C,KAAK,CAAC,IAAI,KAAK,YAAY;QAC3B,KAAK,CAAC,WAAW,GAAG,CAAC;QACrB,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QAC/B,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CACjD;SACA,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACf,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;QAC5B,EAAE,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;QAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC,CAAC,CAAC;AACR,CAAC;AAED,SAAS,sBAAsB,CAC7B,GAAW,EACX,MAAsC;IAEtC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,GAAG,IAAI,KAAK,CAAC,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,EAAE;YAAE,OAAO,KAAK,CAAC;IACzD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,oBAAoB,CAC3B,MAAsC;IAEtC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;IAC3C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;QACxB,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC;IACD,6EAA6E;IAC7E,2EAA2E;IAC3E,iDAAiD;IACjD,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3D,IAAI,cAAc,GAAG,IAAI,CAAC;IAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,IAAI,MAAM,CAAC,CAAC,CAAE,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,EAAE,EAAE,CAAC;YACzC,cAAc,GAAG,KAAK,CAAC;YACvB,MAAM;QACR,CAAC;IACH,CAAC;IACD,IAAI,CAAC,cAAc;QAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,sBAAsB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,EAAE,EAAE;QACb,0DAA0D;QAC1D,IAAI,EAAE,GAAG,CAAC,CAAC;QACX,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3B,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC;QACd,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;YAChB,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,MAAM,CAAC,GAAG,CAAE,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;gBAC7B,IAAI,GAAG,GAAG,CAAC;gBACX,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;YACf,CAAC;iBAAM,CAAC;gBACN,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;YACf,CAAC;QACH,CAAC;QACD,IAAI,IAAI,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAE,CAAC;QAC5B,OAAO,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACxC,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAsB,EAAE,EAAgB;IACxE,uEAAuE;IACvE,IAAI,qBAAqB,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC;QACrC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,MAAM,GAAmB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACpE,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACpC,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,OAAO;oBACb,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,WAAW;oBACvC,IAAI,EAAE,GAAG,CAAC,OAAO;iBAClB,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACnC,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,UAAU;oBAChB,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,iBAAiB;oBAC7C,IAAI,EAAE,GAAG,CAAC,OAAO;oBACjB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACxC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,EAAE;iBACvE,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAiC;IACjE,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YAC9D,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC;AA2BD,MAAM,UAAU,sBAAsB,CACpC,GAA6B,EAC7B,OAA+B,EAAE;IAEjC,OAAO,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC;AAC7C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,GAA6B,EAC7B,OAA+B,EAAE;IAEjC,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IAClC,MAAM,WAAW,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;IACtD,MAAM,aAAa,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IACxD,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAmB,CAAC;IACtD,MAAM,EAAE,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAE1C,MAAM,QAAQ,GAAsB,EAAE,CAAC;IACvC,uEAAuE;IACvE,gEAAgE;IAChE,IAAI,iBAAiB,GAAG,CAAC,CAAC,CAAC;IAC3B,MAAM,YAAY,GAAG,CAAC,MAAc,EAAQ,EAAE;QAC5C,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC;YACnD,iBAAiB,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC,CAAC;IACF,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,0EAA0E;QAC1E,yEAAyE;QACzE,4EAA4E;QAC5E,cAAc;QACd,MAAM,OAAO,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,OAAO,mBAAmB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;QACnG,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IAChF,CAAC;IACD,sEAAsE;IACtE,mEAAmE;IACnE,kEAAkE;IAClE,2CAA2C;IAC3C,MAAM,eAAe,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAErD,IAAI,gBAAgB,GAA2B,IAAI,CAAC;IACpD,IAAI,sBAAsB,GAAG,CAAC,CAAC,CAAC;IAChC,8EAA8E;IAC9E,8EAA8E;IAC9E,8EAA8E;IAC9E,6EAA6E;IAC7E,6EAA6E;IAC7E,gFAAgF;IAChF,IAAI,gBAAgB,GAAwD,IAAI,CAAC;IACjF,IAAI,mBAAmB,GAAG,CAAC,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG,GAAS,EAAE;QACvB,IAAI,CAAC,gBAAgB;YAAE,OAAO;QAC9B,MAAM,OAAO,GAAG,gBAAgB,CAAC;QACjC,MAAM,WAAW,GAAG,sBAAsB,CAAC;QAC3C,gBAAgB,GAAG,IAAI,CAAC;QACxB,sBAAsB,GAAG,CAAC,CAAC,CAAC;QAC5B,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,YAAY,CAAC,WAAW,CAAC,CAAC;QAC1B,mEAAmE;QACnE,4DAA4D;QAC5D,0DAA0D;QAC1D,mEAAmE;QACnE,uCAAuC;QACvC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;gBAChE,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,aAAa;4BACnB,SAAS,EAAE,KAAK,CAAC,EAAE;4BACnB,OAAO,EAAE,yEAAyE;4BAClF,OAAO,EAAE,IAAI;yBACd;qBACF;iBACF,CAAC,CAAC;gBACH,YAAY,CAAC,WAAW,CAAC,CAAC;gBAC1B,8DAA8D;gBAC9D,6DAA6D;gBAC7D,8DAA8D;gBAC9D,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,MAAM,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBACxC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACnC,KAAK,EAAE,CAAC;gBACR,gBAAgB,GAAG,IAAI,CAAC;gBACxB,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,+BAA+B,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;iBACvF,CAAC,CAAC;gBACH,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAC9B,CAAC;YACD,SAAS;QACX,CAAC;QAED,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;YACf,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,KAAK,EAAE,CAAC;gBACR,gBAAgB,GAAG,IAAI,CAAC;gBACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;gBACnE,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACpB,MAAM;YACR,CAAC;YACD,KAAK,mBAAmB,CAAC,CAAC,CAAC;gBACzB,qEAAqE;gBACrE,qEAAqE;gBACrE,wEAAwE;gBACxE,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;oBAC/B,gBAAgB,GAAG;wBACjB,IAAI,EAAE,WAAW;wBACjB,IAAI,EAAE,CAAC,CAAC,OAAO;wBACf,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAClD,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACzC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACnD,CAAC;oBACF,mBAAmB,GAAG,CAAC,CAAC,GAAG,CAAC;gBAC9B,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,mBAAmB;gBACtB,KAAK,EAAE,CAAC;gBACR,IAAI,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;oBACjC,gBAAgB,GAAG,IAAI,CAAC;oBACxB,QAAQ,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,WAAW;wBACjB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;qBAC1E,CAAC,CAAC;oBACH,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACpB,MAAM;gBACR,CAAC;gBACD,mEAAmE;gBACnE,oEAAoE;gBACpE,qEAAqE;gBACrE,8DAA8D;gBAC9D,kEAAkE;gBAClE,iEAAiE;gBACjE,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAClC,gBAAgB,GAAG,IAAI,CAAC;oBACxB,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACpB,MAAM;gBACR,CAAC;gBACD,CAAC;oBACC,MAAM,OAAO,GAA8C,EAAE,CAAC;oBAC9D,IAAI,gBAAgB,EAAE,CAAC;wBACrB,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;wBAC/B,gBAAgB,GAAG,IAAI,CAAC;oBAC1B,CAAC;oBACD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;oBAChD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;gBAChD,CAAC;gBACD,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACpB,MAAM;YACR,KAAK,qBAAqB,CAAC,CAAC,CAAC;gBAC3B,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACtB,uEAAuE;oBACvE,uEAAuE;oBACvE,gBAAgB,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;oBAC9F,IAAI,gBAAgB,EAAE,CAAC;wBACrB,sBAAsB,GAAG,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,mBAAmB,CAAC,CAAC;wBAC/E,gBAAgB,GAAG,IAAI,CAAC;oBAC1B,CAAC;gBACH,CAAC;gBACD,sBAAsB,GAAG,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;gBAChE,gBAAgB,CAAC,OAAqD,CAAC,IAAI,CAAC;oBAC3E,IAAI,EAAE,UAAU;oBAChB,EAAE,EAAE,CAAC,CAAC,MAAM;oBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,KAAK,EAAE,CAAC,CAAC,KAAK;iBACf,CAAC,CAAC;gBACH,MAAM;YACR,CAAC;YACD,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,KAAK,EAAE,CAAC;gBACR,sEAAsE;gBACtE,qDAAqD;gBACrD,IAAI,IAAY,CAAC;gBACjB,IAAI,iBAAiB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;oBAC7B,MAAM,QAAQ,GAAG,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBAChF,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;gBACvE,CAAC;qBAAM,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;oBACnB,IAAI,GAAG,UAAU,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBACtD,CAAC;qBAAM,IAAI,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;oBACzC,iEAAiE;oBACjE,iEAAiE;oBACjE,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAC3B,CAAC;qBAAM,CAAC;oBACN,IAAI,GAAG,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;gBAClF,CAAC;gBACD,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;iBACvF,CAAC,CAAC;gBACH,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACpB,MAAM;YACR,CAAC;YACD;gBACE,MAAM;QACV,CAAC;IACH,CAAC;IACD,KAAK,EAAE,CAAC;IAER,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,wEAAwE;QACxE,uCAAuC;QACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,EAAE,CAAC,CAAC;IAC5F,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC;AACzC,CAAC"}
|
|
1
|
+
{"version":3,"file":"project-messages.js","sourceRoot":"","sources":["../../src/mode/project-messages.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Node-runtime-only surface of @moxxy/sdk.
|
|
3
|
+
*
|
|
4
|
+
* Importing `@moxxy/sdk/server` pulls in the value helpers that statically
|
|
5
|
+
* depend on Node builtins (`node:child_process`, `node:fs`, `node:os`,
|
|
6
|
+
* `node:http`, `node:crypto`, `node:path`). The MAIN barrel (`@moxxy/sdk`) is
|
|
7
|
+
* deliberately kept free of these so a browser/React-Native bundle can value-
|
|
8
|
+
* import from it (and from `@moxxy/sdk/tool-display`) without dragging a Node
|
|
9
|
+
* builtin into the bundle — Metro cannot polyfill `node:child_process`.
|
|
10
|
+
*
|
|
11
|
+
* Node-side consumers (cli, runner, desktop-host, channel/oauth/webhooks
|
|
12
|
+
* plugins, …) import these helpers from here. The corresponding *type* exports
|
|
13
|
+
* (e.g. `TunnelHandle`, `WriteFileAtomicOptions`, `ChannelTokenOptions`) remain
|
|
14
|
+
* on the main barrel because types are erased at build time and never reach a
|
|
15
|
+
* bundle.
|
|
16
|
+
*/
|
|
17
|
+
export { spawnCliTunnel, isCliTunnelAvailable } from './tunnel.js';
|
|
18
|
+
export { writeFileAtomic, writeFileAtomicSync, moxxyHome, moxxyPath, } from './fs-utils.js';
|
|
19
|
+
export { readRequestBody, bearerTokenMatches } from './http-utils.js';
|
|
20
|
+
export { resolveChannelToken, rotateChannelToken, bearerGuard, encodeWsBearerProtocol, tokenFromWsProtocolHeader, MOXXY_WS_SUBPROTOCOL, MOXXY_WS_BEARER_PROTOCOL_PREFIX, } from './channel-auth.js';
|
|
21
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,SAAS,EACT,SAAS,GACV,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,sBAAsB,EACtB,yBAAyB,EACzB,oBAAoB,EACpB,+BAA+B,GAChC,MAAM,mBAAmB,CAAC"}
|
package/dist/server.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Node-runtime-only surface of @moxxy/sdk.
|
|
3
|
+
*
|
|
4
|
+
* Importing `@moxxy/sdk/server` pulls in the value helpers that statically
|
|
5
|
+
* depend on Node builtins (`node:child_process`, `node:fs`, `node:os`,
|
|
6
|
+
* `node:http`, `node:crypto`, `node:path`). The MAIN barrel (`@moxxy/sdk`) is
|
|
7
|
+
* deliberately kept free of these so a browser/React-Native bundle can value-
|
|
8
|
+
* import from it (and from `@moxxy/sdk/tool-display`) without dragging a Node
|
|
9
|
+
* builtin into the bundle — Metro cannot polyfill `node:child_process`.
|
|
10
|
+
*
|
|
11
|
+
* Node-side consumers (cli, runner, desktop-host, channel/oauth/webhooks
|
|
12
|
+
* plugins, …) import these helpers from here. The corresponding *type* exports
|
|
13
|
+
* (e.g. `TunnelHandle`, `WriteFileAtomicOptions`, `ChannelTokenOptions`) remain
|
|
14
|
+
* on the main barrel because types are erased at build time and never reach a
|
|
15
|
+
* bundle.
|
|
16
|
+
*/
|
|
17
|
+
export { spawnCliTunnel, isCliTunnelAvailable } from './tunnel.js';
|
|
18
|
+
export { writeFileAtomic, writeFileAtomicSync, moxxyHome, moxxyPath, } from './fs-utils.js';
|
|
19
|
+
export { readRequestBody, bearerTokenMatches } from './http-utils.js';
|
|
20
|
+
export { resolveChannelToken, rotateChannelToken, bearerGuard, encodeWsBearerProtocol, tokenFromWsProtocolHeader, MOXXY_WS_SUBPROTOCOL, MOXXY_WS_BEARER_PROTOCOL_PREFIX, } from './channel-auth.js';
|
|
21
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,SAAS,EACT,SAAS,GACV,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,sBAAsB,EACtB,yBAAyB,EACzB,oBAAoB,EACpB,+BAA+B,GAChC,MAAM,mBAAmB,CAAC"}
|
package/dist/transcriber.d.ts
CHANGED
|
@@ -17,6 +17,19 @@
|
|
|
17
17
|
* - `ContentBlock` with `type: 'audio'` — provider-level wire format, only
|
|
18
18
|
* used by models that advertise `supportsAudio: true`.
|
|
19
19
|
*/
|
|
20
|
+
/**
|
|
21
|
+
* Wire MIME tag for raw 16-bit little-endian PCM mono at 24 kHz — the lossless
|
|
22
|
+
* format the desktop/web mic capture path produces and that the Codex
|
|
23
|
+
* transcriber keys on to wrap the bytes in a WAV header before upload.
|
|
24
|
+
*
|
|
25
|
+
* This is a cross-package PROTOCOL value: client-platform-web stamps it onto
|
|
26
|
+
* the captured blob, plugin-cli forwards it as the attachment `mimeType`, and
|
|
27
|
+
* plugin-stt-whisper switches on it. It lived as an independently-redeclared
|
|
28
|
+
* literal in all three (silent transcription breakage if any drifted), so it is
|
|
29
|
+
* hoisted here to the SDK's single zero-dep typed surface as the source of
|
|
30
|
+
* truth. Consumers should import this rather than re-spell the literal.
|
|
31
|
+
*/
|
|
32
|
+
export declare const MOXXY_PCM16_24KHZ_MIME = "audio/x-moxxy-pcm16-24khz";
|
|
20
33
|
export interface TranscriptionSegment {
|
|
21
34
|
/** Segment start, in seconds from the start of the clip. */
|
|
22
35
|
readonly start: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transcriber.d.ts","sourceRoot":"","sources":["../src/transcriber.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,WAAW,oBAAoB;IACnC,4DAA4D;IAC5D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,+BAA+B;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,oCAAoC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,yCAAyC;IACzC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,gEAAgE;IAChE,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,iBAAiB;IAChC,qEAAqE;IACrE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,sDAAsD;IACtD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,8EAA8E;IAC9E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,sEAAsE;IACtE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,kDAAkD;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,UAAU,CACR,KAAK,EAAE,UAAU,GAAG,WAAW,EAC/B,IAAI,CAAC,EAAE,iBAAiB,GACvB,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW,CAAC;CAC5D"}
|
|
1
|
+
{"version":3,"file":"transcriber.d.ts","sourceRoot":"","sources":["../src/transcriber.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,sBAAsB,8BAA8B,CAAC;AAElE,MAAM,WAAW,oBAAoB;IACnC,4DAA4D;IAC5D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,+BAA+B;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,oCAAoC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,yCAAyC;IACzC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,gEAAgE;IAChE,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,iBAAiB;IAChC,qEAAqE;IACrE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,sDAAsD;IACtD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,8EAA8E;IAC9E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,sEAAsE;IACtE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,kDAAkD;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,UAAU,CACR,KAAK,EAAE,UAAU,GAAG,WAAW,EAC/B,IAAI,CAAC,EAAE,iBAAiB,GACvB,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW,CAAC;CAC5D"}
|
package/dist/transcriber.js
CHANGED
|
@@ -17,5 +17,17 @@
|
|
|
17
17
|
* - `ContentBlock` with `type: 'audio'` — provider-level wire format, only
|
|
18
18
|
* used by models that advertise `supportsAudio: true`.
|
|
19
19
|
*/
|
|
20
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Wire MIME tag for raw 16-bit little-endian PCM mono at 24 kHz — the lossless
|
|
22
|
+
* format the desktop/web mic capture path produces and that the Codex
|
|
23
|
+
* transcriber keys on to wrap the bytes in a WAV header before upload.
|
|
24
|
+
*
|
|
25
|
+
* This is a cross-package PROTOCOL value: client-platform-web stamps it onto
|
|
26
|
+
* the captured blob, plugin-cli forwards it as the attachment `mimeType`, and
|
|
27
|
+
* plugin-stt-whisper switches on it. It lived as an independently-redeclared
|
|
28
|
+
* literal in all three (silent transcription breakage if any drifted), so it is
|
|
29
|
+
* hoisted here to the SDK's single zero-dep typed surface as the source of
|
|
30
|
+
* truth. Consumers should import this rather than re-spell the literal.
|
|
31
|
+
*/
|
|
32
|
+
export const MOXXY_PCM16_24KHZ_MIME = 'audio/x-moxxy-pcm16-24khz';
|
|
21
33
|
//# sourceMappingURL=transcriber.js.map
|
package/dist/transcriber.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transcriber.js","sourceRoot":"","sources":["../src/transcriber.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG"}
|
|
1
|
+
{"version":3,"file":"transcriber.js","sourceRoot":"","sources":["../src/transcriber.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,2BAA2B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@moxxy/sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.0",
|
|
4
4
|
"description": "Typed public surface for the moxxy framework: event types, define* factories, lifecycle hook signatures.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"moxxy",
|
|
@@ -45,9 +45,17 @@
|
|
|
45
45
|
"types": "./dist/index.d.ts",
|
|
46
46
|
"import": "./dist/index.js"
|
|
47
47
|
},
|
|
48
|
+
"./server": {
|
|
49
|
+
"types": "./dist/server.d.ts",
|
|
50
|
+
"import": "./dist/server.js"
|
|
51
|
+
},
|
|
48
52
|
"./tool-display": {
|
|
49
53
|
"types": "./dist/tool-display.d.ts",
|
|
50
54
|
"import": "./dist/tool-display.js"
|
|
55
|
+
},
|
|
56
|
+
"./transcriber": {
|
|
57
|
+
"types": "./dist/transcriber.d.ts",
|
|
58
|
+
"import": "./dist/transcriber.js"
|
|
51
59
|
}
|
|
52
60
|
},
|
|
53
61
|
"files": [
|
package/src/channel.ts
CHANGED
|
@@ -38,6 +38,43 @@ export interface ChannelHandle {
|
|
|
38
38
|
stop(reason?: string): Promise<void>;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
+
/**
|
|
42
|
+
* Start options accepted by {@link startChannelWith}. The `session` is typed —
|
|
43
|
+
* proving the runner/thin-client seam end-to-end — while the remaining
|
|
44
|
+
* forwarded flags stay loosely typed (a dispatcher merges config + CLI flags it
|
|
45
|
+
* can't know the shape of).
|
|
46
|
+
*/
|
|
47
|
+
export type ChannelStartArgs = { readonly session: ClientSession } & Record<string, unknown>;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* The single, audited dispatch boundary between a CLI/runner caller and a
|
|
51
|
+
* channel's `start()`.
|
|
52
|
+
*
|
|
53
|
+
* `ChannelDef` (and therefore the {@link Channel} a dispatcher gets back from
|
|
54
|
+
* `create`) is intentionally NOT generic over its start-options type: a
|
|
55
|
+
* dispatcher looks channels up by string name, so it can only ever hold a
|
|
56
|
+
* `Channel<unknown>` whose `start` takes `unknown`. Making the registry fully
|
|
57
|
+
* generic would ripple through `ChannelRegistry` and every `defineChannel`
|
|
58
|
+
* call, so it stays out of scope. The structural hand-off from a typed
|
|
59
|
+
* `{ session, ...overrides }` bag to `start(opts: unknown)` is therefore erased
|
|
60
|
+
* here — in ONE place — instead of an inline `as never` at each call site.
|
|
61
|
+
*
|
|
62
|
+
* What this helper *proves*, and what each caller now states at the type level
|
|
63
|
+
* by handing in a `ChannelStartArgs`, is the load-bearing half of the
|
|
64
|
+
* runner/thin-client seam: `session` is a real {@link ClientSession}. Every
|
|
65
|
+
* channel's concrete `StartOpts.session` is typed `ClientSession`, and
|
|
66
|
+
* `RemoteSession` (the thin-client proxy) `implements ClientSession`, so a bare
|
|
67
|
+
* `RemoteSession` is provably assignable end-to-end. The only thing the cast
|
|
68
|
+
* drops is the loosely-typed *rest* of the forwarded-flag bag, which channels
|
|
69
|
+
* already read defensively.
|
|
70
|
+
*/
|
|
71
|
+
export function startChannelWith(channel: Channel, opts: ChannelStartArgs): Promise<ChannelHandle> {
|
|
72
|
+
// Audited erasure: `Channel.start` takes `unknown` (the registry is
|
|
73
|
+
// non-generic, see above). `opts` is a proven { session: ClientSession } bag;
|
|
74
|
+
// the cast only erases its loose extra keys, not the typed session.
|
|
75
|
+
return channel.start(opts as never);
|
|
76
|
+
}
|
|
77
|
+
|
|
41
78
|
/** Common base shape for channel start options. */
|
|
42
79
|
export interface ChannelStartOptsBase {
|
|
43
80
|
readonly model?: string;
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
isContextOverflowError,
|
|
10
10
|
runCompactionIfNeeded,
|
|
11
11
|
runElisionIfNeeded,
|
|
12
|
+
runManualCompaction,
|
|
12
13
|
type CompactorDef,
|
|
13
14
|
type EmittedEvent,
|
|
14
15
|
type EventLogReader,
|
|
@@ -298,6 +299,111 @@ describe('runCompactionIfNeeded', () => {
|
|
|
298
299
|
});
|
|
299
300
|
});
|
|
300
301
|
|
|
302
|
+
describe('runManualCompaction', () => {
|
|
303
|
+
// An appendable reader matching ManualCompactionInput.log — records the
|
|
304
|
+
// appended event so we can assert defensive identity-fill.
|
|
305
|
+
function appendableLog(seed: ReadonlyArray<MoxxyEvent>): EventLogReader & {
|
|
306
|
+
append(event: EmittedEvent): Promise<MoxxyEvent>;
|
|
307
|
+
appended: EmittedEvent[];
|
|
308
|
+
} {
|
|
309
|
+
const events = [...seed];
|
|
310
|
+
const appended: EmittedEvent[] = [];
|
|
311
|
+
return {
|
|
312
|
+
...reader(events),
|
|
313
|
+
appended,
|
|
314
|
+
append: async (e: EmittedEvent) => {
|
|
315
|
+
appended.push(e);
|
|
316
|
+
const mat = { ...e, id: asEventId(`a${appended.length}`), seq: events.length, ts: events.length, sessionId: sid } as MoxxyEvent;
|
|
317
|
+
events.push(mat);
|
|
318
|
+
return mat;
|
|
319
|
+
},
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
const seed: MoxxyEvent[] = [
|
|
324
|
+
event(0, { type: 'user_prompt', turnId: tid, source: 'user', text: 'x'.repeat(400) }),
|
|
325
|
+
event(1, { type: 'assistant_message', turnId: tid, source: 'model', content: 'y'.repeat(400), stopReason: 'end_turn' }),
|
|
326
|
+
];
|
|
327
|
+
|
|
328
|
+
it('returns the no-op result for an empty log', async () => {
|
|
329
|
+
const log = appendableLog([]);
|
|
330
|
+
const compactor: CompactorDef = {
|
|
331
|
+
name: 'never',
|
|
332
|
+
shouldCompact: () => false,
|
|
333
|
+
compact: async () => { throw new Error('should not run'); },
|
|
334
|
+
};
|
|
335
|
+
const res = await runManualCompaction({ compactor, log });
|
|
336
|
+
expect(res).toEqual({ compacted: false, tokensSaved: 0, eventsCompacted: 0 });
|
|
337
|
+
expect(log.appended).toHaveLength(0);
|
|
338
|
+
});
|
|
339
|
+
|
|
340
|
+
it('compacts unconditionally (no shouldCompact gate) and reports counts', async () => {
|
|
341
|
+
const log = appendableLog(seed);
|
|
342
|
+
const shouldCompact = vi.fn().mockReturnValue(false); // would block the auto path
|
|
343
|
+
const compactor: CompactorDef = {
|
|
344
|
+
name: 'fake',
|
|
345
|
+
shouldCompact,
|
|
346
|
+
compact: async () => ({
|
|
347
|
+
type: 'compaction',
|
|
348
|
+
compactor: 'fake',
|
|
349
|
+
replacedRange: [0, 1],
|
|
350
|
+
summary: 'compressed',
|
|
351
|
+
tokensSaved: 123,
|
|
352
|
+
}),
|
|
353
|
+
};
|
|
354
|
+
const res = await runManualCompaction({ compactor, log });
|
|
355
|
+
// shouldCompact is NEVER consulted — manual compaction always runs.
|
|
356
|
+
expect(shouldCompact).not.toHaveBeenCalled();
|
|
357
|
+
expect(res).toEqual({ compacted: true, tokensSaved: 123, eventsCompacted: 2 });
|
|
358
|
+
expect(log.appended).toHaveLength(1);
|
|
359
|
+
// Defensive identity fill from the log tail + source=compactor.
|
|
360
|
+
expect(log.appended[0]).toMatchObject({ type: 'compaction', source: 'compactor', sessionId: sid, turnId: tid });
|
|
361
|
+
});
|
|
362
|
+
|
|
363
|
+
it('counts only events inside the inclusive replacedRange, not the seq span', async () => {
|
|
364
|
+
// A range [0, 999] spanning a gap: only the two real events fall inside.
|
|
365
|
+
const log = appendableLog([
|
|
366
|
+
event(0, { type: 'user_prompt', turnId: tid, source: 'user', text: 'x'.repeat(400) }),
|
|
367
|
+
event(500, { type: 'assistant_message', turnId: tid, source: 'model', content: 'z'.repeat(400), stopReason: 'end_turn' }),
|
|
368
|
+
]);
|
|
369
|
+
const compactor: CompactorDef = {
|
|
370
|
+
name: 'wide',
|
|
371
|
+
shouldCompact: () => false,
|
|
372
|
+
compact: async () => ({
|
|
373
|
+
type: 'compaction', compactor: 'wide', replacedRange: [0, 999], summary: 's', tokensSaved: 50,
|
|
374
|
+
}),
|
|
375
|
+
};
|
|
376
|
+
const res = await runManualCompaction({ compactor, log });
|
|
377
|
+
expect(res.eventsCompacted).toBe(2);
|
|
378
|
+
});
|
|
379
|
+
|
|
380
|
+
it('reports no-op (no append) when the summary is empty / tokensSaved <= 0', async () => {
|
|
381
|
+
const log = appendableLog(seed);
|
|
382
|
+
const compactor: CompactorDef = {
|
|
383
|
+
name: 'empty',
|
|
384
|
+
shouldCompact: () => true,
|
|
385
|
+
compact: async () => ({
|
|
386
|
+
type: 'compaction', compactor: 'empty', replacedRange: [0, 1], summary: ' ', tokensSaved: 0,
|
|
387
|
+
}),
|
|
388
|
+
};
|
|
389
|
+
const res = await runManualCompaction({ compactor, log });
|
|
390
|
+
expect(res.compacted).toBe(false);
|
|
391
|
+
expect(log.appended).toHaveLength(0);
|
|
392
|
+
});
|
|
393
|
+
|
|
394
|
+
it('caller-supplied sessionId/turnId override the log-tail fallback', async () => {
|
|
395
|
+
const log = appendableLog(seed);
|
|
396
|
+
const compactor: CompactorDef = {
|
|
397
|
+
name: 'fake', shouldCompact: () => false,
|
|
398
|
+
compact: async () => ({ type: 'compaction', compactor: 'fake', replacedRange: [0, 1], summary: 'ok', tokensSaved: 10 }),
|
|
399
|
+
};
|
|
400
|
+
await runManualCompaction({
|
|
401
|
+
compactor, log, sessionId: asSessionId('other'), turnId: asTurnId('explicit'),
|
|
402
|
+
});
|
|
403
|
+
expect(log.appended[0]).toMatchObject({ sessionId: 'other', turnId: 'explicit' });
|
|
404
|
+
});
|
|
405
|
+
});
|
|
406
|
+
|
|
301
407
|
describe('isContextOverflowError', () => {
|
|
302
408
|
it('matches common provider context-overflow phrasings', () => {
|
|
303
409
|
for (const msg of [
|
package/src/compactor-helpers.ts
CHANGED
|
@@ -7,9 +7,11 @@ import {
|
|
|
7
7
|
toolResultStubbed,
|
|
8
8
|
type ElisionState,
|
|
9
9
|
} from './elision-state.js';
|
|
10
|
+
import type { CompactorDef, TokenBudget } from './compactor.js';
|
|
10
11
|
import type { EmittedEvent, MoxxyEvent } from './events.js';
|
|
11
12
|
import type { EventLogReader } from './log.js';
|
|
12
13
|
import type { ModeContext } from './mode.js';
|
|
14
|
+
import type { LLMProvider } from './provider.js';
|
|
13
15
|
|
|
14
16
|
/**
|
|
15
17
|
* Cheap, no-network estimate of how many tokens the current event log
|
|
@@ -168,9 +170,15 @@ export async function runCompactionIfNeeded(
|
|
|
168
170
|
const events = ctx.log.slice();
|
|
169
171
|
if (events.length === 0) return false;
|
|
170
172
|
|
|
173
|
+
// Derive the elision state ONCE for this snapshot and thread it into the
|
|
174
|
+
// estimate — `computeElisionState` is memoized on the log version, but
|
|
175
|
+
// threading skips even the memo lookup and guarantees the estimate folds the
|
|
176
|
+
// exact same state the rest of this iteration uses.
|
|
177
|
+
const elisionState = computeElisionState(events);
|
|
178
|
+
|
|
171
179
|
const budget = {
|
|
172
180
|
contextWindow: resolved?.contextWindow ?? Number.MAX_SAFE_INTEGER,
|
|
173
|
-
estimatedTokens: estimateContextTokens(ctx.log),
|
|
181
|
+
estimatedTokens: estimateContextTokens(ctx.log, elisionState),
|
|
174
182
|
reserveForOutput: resolved?.reserveForOutput ?? 0,
|
|
175
183
|
} as const;
|
|
176
184
|
|
|
@@ -233,6 +241,122 @@ export async function runCompactionIfNeeded(
|
|
|
233
241
|
}
|
|
234
242
|
}
|
|
235
243
|
|
|
244
|
+
/**
|
|
245
|
+
* Outcome of {@link runManualCompaction}. `compacted` is false (with the other
|
|
246
|
+
* counts at 0) whenever there was nothing to compact — empty log, no usable
|
|
247
|
+
* summary, or `tokensSaved <= 0` — so a caller can format "nothing to compact"
|
|
248
|
+
* vs "compacted N events" without re-deriving the gate.
|
|
249
|
+
*/
|
|
250
|
+
export interface ManualCompactionResult {
|
|
251
|
+
/** Did a CompactionEvent get appended? */
|
|
252
|
+
readonly compacted: boolean;
|
|
253
|
+
/** Estimated tokens the summary saves vs the replaced range. */
|
|
254
|
+
readonly tokensSaved: number;
|
|
255
|
+
/** Count of events whose `seq` fell inside the (inclusive) replaced range. */
|
|
256
|
+
readonly eventsCompacted: number;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
const NO_COMPACTION: ManualCompactionResult = {
|
|
260
|
+
compacted: false,
|
|
261
|
+
tokensSaved: 0,
|
|
262
|
+
eventsCompacted: 0,
|
|
263
|
+
};
|
|
264
|
+
|
|
265
|
+
/**
|
|
266
|
+
* Shape a manual `/compact` needs from the session, kept structural so callers
|
|
267
|
+
* (plugin-commands) stay free of a `@moxxy/core` dependency — the host always
|
|
268
|
+
* passes a real Session that satisfies it. Mirrors the fields
|
|
269
|
+
* {@link runCompactionIfNeeded} reads off `ModeContext`, but log-first because
|
|
270
|
+
* a manual compaction has no live turn/mode context.
|
|
271
|
+
*/
|
|
272
|
+
export interface ManualCompactionInput {
|
|
273
|
+
readonly compactor: CompactorDef;
|
|
274
|
+
/** Authoring log the CompactionEvent is appended to. */
|
|
275
|
+
readonly log: EventLogReader & {
|
|
276
|
+
append(event: EmittedEvent): Promise<MoxxyEvent>;
|
|
277
|
+
};
|
|
278
|
+
/** Active provider/model so the default compactor writes a real summary. */
|
|
279
|
+
readonly provider?: LLMProvider;
|
|
280
|
+
readonly model?: string;
|
|
281
|
+
/** Active model's resolved context window (for `shouldCompact`). */
|
|
282
|
+
readonly contextWindow?: number;
|
|
283
|
+
readonly reserveForOutput?: number;
|
|
284
|
+
/** Cancellation signal; a fresh one is used when omitted. */
|
|
285
|
+
readonly signal?: AbortSignal;
|
|
286
|
+
/** Override the appended event's sessionId/turnId (else taken from the log tail). */
|
|
287
|
+
readonly sessionId?: string;
|
|
288
|
+
readonly turnId?: string;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
/**
|
|
292
|
+
* Run ONE compaction now, unconditionally (the `/compact` command's force
|
|
293
|
+
* semantics — the threshold gate is skipped). The single shared implementation
|
|
294
|
+
* of the manual-compaction flow that `compactSession` in `@moxxy/plugin-commands`
|
|
295
|
+
* used to hand-roll: build the {@link TokenBudget} (with the same `estimate`
|
|
296
|
+
* + context-window fallback as the auto path), call `compactor.compact`, guard
|
|
297
|
+
* on an empty/zero-saving result, defensively fill the event's
|
|
298
|
+
* sessionId/turnId/source, append it, and report `{ compacted, tokensSaved,
|
|
299
|
+
* eventsCompacted }` so the caller only formats the message.
|
|
300
|
+
*
|
|
301
|
+
* Distinct from {@link runCompactionIfNeeded}, which is the per-iteration
|
|
302
|
+
* auto-compaction hook bound to a live `ModeContext` and gated by
|
|
303
|
+
* `shouldCompact` (unless forced). This one is log-first and always runs,
|
|
304
|
+
* matching how a user-invoked `/compact` works. Errors propagate to the caller
|
|
305
|
+
* (the command formats them); a no-op returns {@link NO_COMPACTION}.
|
|
306
|
+
*/
|
|
307
|
+
export async function runManualCompaction(
|
|
308
|
+
input: ManualCompactionInput,
|
|
309
|
+
): Promise<ManualCompactionResult> {
|
|
310
|
+
const { compactor, log } = input;
|
|
311
|
+
const events = log.slice();
|
|
312
|
+
if (events.length === 0) return NO_COMPACTION;
|
|
313
|
+
|
|
314
|
+
// Match the auto path's window fallback: an unresolved window degrades to
|
|
315
|
+
// MAX_SAFE_INTEGER (manual compaction ignores the threshold anyway).
|
|
316
|
+
const contextWindow =
|
|
317
|
+
input.contextWindow && input.contextWindow > 0
|
|
318
|
+
? input.contextWindow
|
|
319
|
+
: Number.MAX_SAFE_INTEGER;
|
|
320
|
+
const budget: TokenBudget = {
|
|
321
|
+
contextWindow,
|
|
322
|
+
estimatedTokens: estimateContextTokens(log),
|
|
323
|
+
reserveForOutput: input.reserveForOutput ?? 0,
|
|
324
|
+
};
|
|
325
|
+
|
|
326
|
+
const result = await compactor.compact(events, {
|
|
327
|
+
log,
|
|
328
|
+
budget,
|
|
329
|
+
signal: input.signal ?? new AbortController().signal,
|
|
330
|
+
...(input.provider ? { provider: input.provider } : {}),
|
|
331
|
+
...(input.model !== undefined ? { model: input.model } : {}),
|
|
332
|
+
});
|
|
333
|
+
if (result.tokensSaved <= 0 || result.summary.trim().length === 0) {
|
|
334
|
+
return NO_COMPACTION;
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
// Defensive-fill identity fields a spec-compliant compactor may omit
|
|
338
|
+
// (`compact` declares `Omit<CompactionEvent, keyof EventBase>`). The
|
|
339
|
+
// compactor's own values win (result spreads last). Mirrors
|
|
340
|
+
// `runCompactionIfNeeded`.
|
|
341
|
+
const lastEvent = events[events.length - 1];
|
|
342
|
+
const emittable: EmittedEvent = {
|
|
343
|
+
sessionId: input.sessionId ?? lastEvent?.sessionId,
|
|
344
|
+
turnId: input.turnId ?? lastEvent?.turnId,
|
|
345
|
+
source: 'compactor',
|
|
346
|
+
...result,
|
|
347
|
+
} as EmittedEvent;
|
|
348
|
+
await log.append(emittable);
|
|
349
|
+
|
|
350
|
+
// `replacedRange` is an INCLUSIVE [fromSeq, toSeq] of event `seq` VALUES, not
|
|
351
|
+
// array indices — and `seq === arrayIndex` is not guaranteed for
|
|
352
|
+
// mirrors/partial views. Count the events actually inside the range rather
|
|
353
|
+
// than differencing the seqs (which would overstate across any seq gap).
|
|
354
|
+
const [fromSeq, toSeq] = result.replacedRange;
|
|
355
|
+
const eventsCompacted = events.filter((e) => e.seq >= fromSeq && e.seq <= toSeq).length;
|
|
356
|
+
|
|
357
|
+
return { compacted: true, tokensSaved: result.tokensSaved, eventsCompacted };
|
|
358
|
+
}
|
|
359
|
+
|
|
236
360
|
/**
|
|
237
361
|
* Heuristic: does this provider error mean "the request was too big for the
|
|
238
362
|
* model's context window"? Providers phrase it many ways (OpenAI "maximum
|
package/src/elision-helpers.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { estimateContextTokens, resolveModelContext } from './compactor-helpers.js';
|
|
2
|
-
import { toolResultBytes } from './elision-state.js';
|
|
2
|
+
import { computeElisionState, toolResultBytes } from './elision-state.js';
|
|
3
3
|
import type { EmittedEvent, MoxxyEvent } from './events.js';
|
|
4
4
|
import type { ElisionSettings, ModeContext } from './mode.js';
|
|
5
5
|
|
|
@@ -67,13 +67,22 @@ export async function runElisionIfNeeded(ctx: ModeContext): Promise<void> {
|
|
|
67
67
|
if (!resolved) return;
|
|
68
68
|
const contextWindow = resolved.contextWindow;
|
|
69
69
|
|
|
70
|
-
// Gate: below this fill the whole history fits comfortably — eliding would
|
|
71
|
-
// only add missed-context risk for no token benefit.
|
|
72
|
-
if (estimateContextTokens(ctx.log) < s.minContextRatioToElide * contextWindow) return;
|
|
73
|
-
|
|
74
70
|
const events = ctx.log.slice();
|
|
75
71
|
if (events.length === 0) return;
|
|
76
72
|
|
|
73
|
+
// Derive the elision state ONCE for this snapshot and thread it into the
|
|
74
|
+
// gate's estimate. The same `computeElisionState` fold otherwise runs again
|
|
75
|
+
// inside `estimateContextTokens` (and a third time in projection this
|
|
76
|
+
// iteration); threading shares the one fold. Order vs the slice is
|
|
77
|
+
// irrelevant — both read the same immutable snapshot.
|
|
78
|
+
const elisionState = computeElisionState(events);
|
|
79
|
+
|
|
80
|
+
// Gate: below this fill the whole history fits comfortably — eliding would
|
|
81
|
+
// only add missed-context risk for no token benefit.
|
|
82
|
+
if (estimateContextTokens(ctx.log, elisionState) < s.minContextRatioToElide * contextWindow) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
|
|
77
86
|
const priorHWM = events.reduce(
|
|
78
87
|
(max, e) => (e.type === 'elision' ? Math.max(max, e.elidedThrough) : max),
|
|
79
88
|
-1,
|