dsh-thinking-guard 0.1.19 → 0.1.21

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.
Files changed (73) hide show
  1. package/README.md +80 -80
  2. package/cordis.patch.yml +5 -0
  3. package/lib/client.d.ts +20 -2
  4. package/lib/client.d.ts.map +1 -1
  5. package/lib/client.js +6724 -7923
  6. package/lib/guard-core.js +72 -1
  7. package/lib/guard-core.js.map +1 -1
  8. package/lib/guard-loop-core.js +36 -5
  9. package/lib/guard-loop-core.js.map +1 -1
  10. package/lib/guard.js +20 -4
  11. package/lib/guard.js.map +1 -1
  12. package/lib/host-face.js +1 -0
  13. package/lib/host-face.js.map +1 -1
  14. package/lib/index.js +11 -1
  15. package/lib/index.js.map +1 -1
  16. package/lib/policy-state.js +29 -1
  17. package/lib/policy-state.js.map +1 -1
  18. package/lib/policy.js +24 -2
  19. package/lib/policy.js.map +1 -1
  20. package/lib/server/call-index-remote.js +110 -0
  21. package/lib/server/call-index-remote.js.map +1 -0
  22. package/lib/server/remote.js +13 -0
  23. package/lib/server/remote.js.map +1 -1
  24. package/lib/types/guard-core.d.ts +69 -1
  25. package/lib/types/guard-core.d.ts.map +1 -1
  26. package/lib/types/guard-loop-core.d.ts +15 -0
  27. package/lib/types/guard-loop-core.d.ts.map +1 -1
  28. package/lib/types/guard.d.ts +7 -1
  29. package/lib/types/guard.d.ts.map +1 -1
  30. package/lib/types/host-face.d.ts.map +1 -1
  31. package/lib/types/index.d.ts +5 -0
  32. package/lib/types/index.d.ts.map +1 -1
  33. package/lib/types/policy-state.d.ts +6 -0
  34. package/lib/types/policy-state.d.ts.map +1 -1
  35. package/lib/types/policy.d.ts +22 -3
  36. package/lib/types/policy.d.ts.map +1 -1
  37. package/lib/types/server/call-index-remote.d.ts +17 -0
  38. package/lib/types/server/call-index-remote.d.ts.map +1 -0
  39. package/lib/types/server/remote.d.ts +9 -0
  40. package/lib/types/server/remote.d.ts.map +1 -1
  41. package/lib/types/usage/call-index-core.d.ts +152 -0
  42. package/lib/types/usage/call-index-core.d.ts.map +1 -0
  43. package/lib/types/usage/call-index-host-face.d.ts +44 -0
  44. package/lib/types/usage/call-index-host-face.d.ts.map +1 -0
  45. package/lib/types/usage/call-index-host.d.ts +7 -0
  46. package/lib/types/usage/call-index-host.d.ts.map +1 -0
  47. package/lib/types/usage/call-index-query.d.ts +97 -0
  48. package/lib/types/usage/call-index-query.d.ts.map +1 -0
  49. package/lib/types/usage/call-index-runtime.d.ts +46 -0
  50. package/lib/types/usage/call-index-runtime.d.ts.map +1 -0
  51. package/lib/types/usage/call-index-scope.d.ts +59 -0
  52. package/lib/types/usage/call-index-scope.d.ts.map +1 -0
  53. package/lib/types/usage/call-index-wire.d.ts +286 -0
  54. package/lib/types/usage/call-index-wire.d.ts.map +1 -0
  55. package/lib/types/usage/session-index.d.ts +149 -0
  56. package/lib/types/usage/session-index.d.ts.map +1 -0
  57. package/lib/usage/call-index-core.js +761 -0
  58. package/lib/usage/call-index-core.js.map +1 -0
  59. package/lib/usage/call-index-host-face.js +77 -0
  60. package/lib/usage/call-index-host-face.js.map +1 -0
  61. package/lib/usage/call-index-host.js +13 -0
  62. package/lib/usage/call-index-host.js.map +1 -0
  63. package/lib/usage/call-index-query.js +669 -0
  64. package/lib/usage/call-index-query.js.map +1 -0
  65. package/lib/usage/call-index-runtime.js +376 -0
  66. package/lib/usage/call-index-runtime.js.map +1 -0
  67. package/lib/usage/call-index-scope.js +79 -0
  68. package/lib/usage/call-index-scope.js.map +1 -0
  69. package/lib/usage/call-index-wire.js +490 -0
  70. package/lib/usage/call-index-wire.js.map +1 -0
  71. package/lib/usage/session-index.js +600 -0
  72. package/lib/usage/session-index.js.map +1 -0
  73. package/package.json +144 -144
@@ -19,6 +19,12 @@ export interface GuardState {
19
19
  readonly duplicateDetection?: boolean;
20
20
  readonly alternatingCycleDetection?: boolean;
21
21
  readonly noProgressProtection?: boolean;
22
+ /**
23
+ * Editable repeat thresholds. Absent in files written before the field
24
+ * existed, which is why every reader must fall back to the shipped default
25
+ * instead of treating the absence as "empty list".
26
+ */
27
+ readonly repeatThresholds?: readonly number[];
22
28
  }
23
29
  export interface MenuState {
24
30
  readonly tiers: TierState;
@@ -1 +1 @@
1
- {"version":3,"file":"policy-state.d.ts","sourceRoot":"","sources":["../../src/policy-state.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IAC3C,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;CAC7C;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC3C;AAED;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;IACrC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,OAAO,CAAA;IAC5C,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;CACxC;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;IAC5B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;CAC3B;AA4ED,sFAAsF;AACtF,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CASpE;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAEpE;AAiED,sEAAsE;AACtE,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAyBjG;AAED,kEAAkE;AAClE,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAerF;AAED,kFAAkF;AAClF,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE;IAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACtH,OAAO,CAAC,IAAI,CAAC,CAqBf;AAED,sEAAsE;AACtE,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAiBxF;AAED,sDAAsD;AACtD,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAEtE"}
1
+ {"version":3,"file":"policy-state.d.ts","sourceRoot":"","sources":["../../src/policy-state.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAGlD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IAC3C,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;CAC7C;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC3C;AAED;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;IACrC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,OAAO,CAAA;IAC5C,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IACvC;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC9C;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;IAC5B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;CAC3B;AAsFD,sFAAsF;AACtF,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CASpE;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAEpE;AAiED,sEAAsE;AACtE,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAyBjG;AAED,kEAAkE;AAClE,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAerF;AAED,kFAAkF;AAClF,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE;IAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACtH,OAAO,CAAC,IAAI,CAAC,CAqBf;AAQD,sEAAsE;AACtE,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAyBxF;AAED,sDAAsD;AACtD,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAEtE"}
@@ -8,6 +8,7 @@ import type { Context } from '@deepseek-ai/cordis';
8
8
  import z from '@deepseek-ai/schemastery';
9
9
  import type { PromptPresentation } from '@deepseek-ai/dsh-system-prompt';
10
10
  import { type CapabilityKind } from './registry.ts';
11
+ import { type GuardStatsSnapshot } from './guard-core.ts';
11
12
  import { type McpInput, type McpLocation, type McpUpdateInput, type SkillLocation } from './locations.ts';
12
13
  /**
13
14
  * Canonical policy classes, mirroring the registry's `CapabilityKind`.
@@ -243,6 +244,14 @@ export interface CapabilityPolicyService {
243
244
  * would reload the plugin each time a switch is flipped.
244
245
  */
245
246
  updateGuard(change: Partial<GuardSwitches>): Promise<void>;
247
+ /**
248
+ * Content-free counters proving whether the Guard ran and what it did.
249
+ *
250
+ * Counts and timestamps only: no tool name, argument, result or error text is
251
+ * retained, so this is safe to show (and to log) without leaking what the
252
+ * Agent was working on. Process-scoped, so the numbers do not reset per turn.
253
+ */
254
+ getGuardStats(): GuardStatsSnapshot;
246
255
  /**
247
256
  * Classify every capability currently indexed by `ctx.capability` (the
248
257
  * registry sibling). Returns an empty array when the registry is not mounted.
@@ -278,20 +287,30 @@ declare module '@deepseek-ai/cordis' {
278
287
  }
279
288
  }
280
289
  /**
281
- * The three Guard switches the settings page exposes.
290
+ * The Guard switches the settings page exposes.
282
291
  *
283
292
  * They are separate booleans, not one master flag, because the page presents
284
- * them as independent controls; the detector honours each one.
293
+ * them as independent controls; the detector honours each one. The repeat
294
+ * thresholds are editable as well — they used to be a hard-coded 3/5/8 constant
295
+ * that the page could only display, which is what made the control look dead.
285
296
  */
286
297
  export interface GuardSwitches {
287
298
  /** Master switch: off means no reminders and no denials at all. */
288
299
  readonly enabled: boolean;
289
- /** Repeated identical calls: remind at the fixed 3/5/8 thresholds. */
300
+ /** Repeated identical calls: remind at the configured {@link repeatThresholds}. */
290
301
  readonly duplicateDetection: boolean;
291
302
  /** A -> B -> A -> B sequences: detect and explain. */
292
303
  readonly alternatingCycleDetection: boolean;
293
304
  /** Evidence gate for the local denial of one repeated call. */
294
305
  readonly noProgressProtection: boolean;
306
+ /**
307
+ * Consecutive-repeat counts that raise a reminder.
308
+ *
309
+ * 1-5 strictly increasing integers in 2..50. The highest entry is also the
310
+ * repeat count at which an unchanged result/error becomes a denial candidate,
311
+ * so lowering it makes the Guard act earlier and raising it makes it quieter.
312
+ */
313
+ readonly repeatThresholds: readonly number[];
295
314
  }
296
315
  /** Shipped defaults for {@link GuardSwitches}. */
297
316
  export declare const DEFAULT_GUARD_SWITCHES: GuardSwitches;
@@ -1 +1 @@
1
- {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/policy.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,CAAC,MAAM,0BAA0B,CAAA;AACxC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AAGxE,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAA;AAMjE,OAAO,EAAqB,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAC5E,OAAO,EAGL,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,gBAAgB,CAAA;AAEvB;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,CAAA;AAEnE;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,6EAA6E;IAC7E,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,2EAA2E;IAC3E,QAAQ,CAAC,IAAI,CAAC,EAAE,cAAc,CAAA;IAC9B,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,EAAE,IAAI,GAAG,QAAQ,CAAA;CACjC;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACpB;AAED,uEAAuE;AACvE,MAAM,WAAW,MAAM;IACrB,oFAAoF;IACpF,KAAK,CAAC,EAAE,mBAAmB,CAAA;IAC3B,wFAAwF;IACxF,MAAM,CAAC,EAAE,mBAAmB,CAAA;IAC5B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qFAAqF;IACrF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qFAAqF;IACrF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oEAAoE;IACpE,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;;;OAIG;IACH,KAAK,CAAC,EAAE,WAAW,CAAA;CACpB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW;IAC1B,0FAA0F;IAC1F,GAAG,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAA;IAC9C,0DAA0D;IAC1D,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAA;CAC7B;AAED,mEAAmE;AACnE,eAAO,MAAM,WAAW,EAAE,WAOzB,CAAA;AAED,qDAAqD;AACrD,eAAO,MAAM,MAAM,EAAE,CAAC,CAAC,MAAM,CAyB3B,CAAA;AAEF,eAAO,MAAM,kBAAkB,yCAA0C,CAAA;AASzE;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAgBlD;AAED,8DAA8D;AAC9D,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKnD;AAED,mDAAmD;AACnD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,QAAQ,EAAE,SAAS,UAAU,EAAE,CAAA;IACxC,QAAQ,CAAC,QAAQ,EAAE,SAAS,UAAU,EAAE,CAAA;IACxC,QAAQ,CAAC,QAAQ,EAAE,SAAS,UAAU,EAAE,CAAA;CACzC;AAED,uEAAuE;AACvE,wBAAgB,UAAU,CAAC,GAAG,GAAE,mBAAwB,GAAG,uBAAuB,CAMjF;AAED,kDAAkD;AAClD,MAAM,WAAW,WAAW;IAC1B,uFAAuF;IACvF,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,iGAAiG;IACjG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,mDAAmD;IACnD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,uBAAuB;IACvB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;IAC7B,oFAAoF;IACpF,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAA;CAClC;AAmBD;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,uBAAuB,EACjC,MAAM,EAAE,WAAW,EACnB,SAAS,GAAE,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,MAAM,EAAuB,GACtE,eAAe,CAwBjB;AAOD;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;IAC7B,wDAAwD;IACxD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,8FAA8F;IAC9F,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,wDAAwD;IACxD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,2DAA2D;IAC3D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAC5B;AAQD;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,gFAAgF;IAChF,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAA;IAC3C,yCAAyC;IACzC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAA;IAC5C,+DAA+D;IAC/D,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;IACrC,qCAAqC;IACrC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;IACtC,oCAAoC;IACpC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;IACrC,qCAAqC;IACrC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;IACtC;;;OAGG;IACH,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAA;IAChE;;;;;;;;;;OAUG;IACH,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;IACtE,gDAAgD;IAChD,SAAS,IAAI,SAAS,MAAM,EAAE,CAAA;IAC9B,qFAAqF;IACrF,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,eAAe,CAAA;IACtE,uDAAuD;IACvD,SAAS,IAAI,uBAAuB,CAAA;IACpC,UAAU,IAAI,uBAAuB,CAAA;IAGrC,wCAAwC;IACxC,SAAS,IAAI,MAAM,CAAA;IACnB,6EAA6E;IAC7E,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACrD;;;;;;;;;OASG;IACH,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAGjC;;;OAGG;IACH,QAAQ,IAAI,aAAa,CAAA;IACzB;;;;;;OAMG;IACH,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1D;;;;;;OAMG;IACH,aAAa,IAAI,kBAAkB,CAAA;IACnC;;;OAGG;IACH,WAAW,IAAI,SAAS,wBAAwB,EAAE,CAAA;IAGlD,6DAA6D;IAC7D,aAAa,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;IACvC,kEAAkE;IAClE,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC7C,oCAAoC;IACpC,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC5C,iFAAiF;IACjF,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACnE,2FAA2F;IAC3F,kBAAkB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAAA;IAC9C;;;;;OAKG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACpE,6EAA6E;IAC7E,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACzE,iGAAiG;IACjG,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACtE,iEAAiE;IACjE,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CACpF;AAED,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,OAAO;QACf,gBAAgB,EAAE,uBAAuB,CAAA;KAC1C;CACF;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,mEAAmE;IACnE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,mFAAmF;IACnF,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAA;IACpC,sDAAsD;IACtD,QAAQ,CAAC,yBAAyB,EAAE,OAAO,CAAA;IAC3C,+DAA+D;IAC/D,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAA;IACtC;;;;;;OAMG;IACH,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAA;CAC7C;AAED,kDAAkD;AAClD,eAAO,MAAM,sBAAsB,EAAE,aAMpC,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,uBAAuB,GAC/B,kBAAkB,CAiBpB;AAED,+BAA+B;AAC/B,eAAO,MAAM,IAAI,2BAA2B,CAAA;AAK5C,eAAO,MAAM,MAAM,UAAoC,CAAA;AAEvD,wBAAsB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,MAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA4uB5E"}
@@ -0,0 +1,17 @@
1
+ import type { Context } from '@deepseek-ai/cordis';
2
+ import { TypertRemoteService } from '@deepseek-ai/dsh-typert-protocol';
3
+ import { type CallIndexReply } from '../usage/call-index-wire.ts';
4
+ /** No static inject: disabled/missing optional services must still have a reachable status face. */
5
+ export declare class CallIndexGateway extends TypertRemoteService {
6
+ constructor(ctx: Context);
7
+ private runtime;
8
+ private call;
9
+ getIndexStatus(): CallIndexReply;
10
+ startIndex(request?: unknown): CallIndexReply;
11
+ cancelIndex(request: unknown): CallIndexReply;
12
+ getSummary(request?: unknown): CallIndexReply;
13
+ listSessions(request?: unknown): CallIndexReply;
14
+ listCalls(request?: unknown): CallIndexReply;
15
+ getCallDetail(request: unknown): Promise<CallIndexReply>;
16
+ }
17
+ //# sourceMappingURL=call-index-remote.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call-index-remote.d.ts","sourceRoot":"","sources":["../../../src/server/call-index-remote.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAU,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AAG9E,OAAO,EAAkC,KAAK,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAEjG,oGAAoG;AACpG,qBAAa,gBAAiB,SAAQ,mBAAmB;gBAC3C,GAAG,EAAE,OAAO;IACxB,OAAO,CAAC,OAAO;IAGf,OAAO,CAAC,IAAI;IAQc,cAAc,IAAI,cAAc;IACpC,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,cAAc;IAC5C,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,cAAc;IAC9C,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,cAAc;IAC3C,YAAY,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,cAAc;IAClD,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,cAAc;IAClC,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC;CAIxF"}
@@ -10,6 +10,7 @@
10
10
  import type { Context } from '@deepseek-ai/cordis';
11
11
  import { TypertRemoteService } from '@deepseek-ai/dsh-typert-protocol';
12
12
  import type { CapabilityClassification, CapabilityPolicyService, Config as CapabilityPolicyConfig, GuardSwitches } from '../policy.ts';
13
+ import type { GuardStatsSnapshot } from '../guard-core.ts';
13
14
  import type { CapabilityDetail, SkillDirEntry, CapabilityService, CapabilityDiagnostics, SearchMetadata, SearchMetadataUpdate } from '../registry.ts';
14
15
  import type { McpInput, McpLocation, McpUpdateInput, SkillLocation } from '../locations.ts';
15
16
  import { type SelfUpdateStatus } from './self-update.ts';
@@ -62,6 +63,14 @@ export declare class CapabilityPolicyGateway extends TypertRemoteService {
62
63
  * not make dsh re-apply (and thereby reload) this plugin.
63
64
  */
64
65
  updateGuard(change: Partial<GuardSwitches>): Promise<void>;
66
+ /**
67
+ * Content-free Guard counters: was the Guard running, and did it do anything?
68
+ *
69
+ * Counts and timestamps only — never a tool name, argument, result or error
70
+ * text — so the settings page can prove the Guard is live without the wire
71
+ * ever carrying what the Agent was working on.
72
+ */
73
+ getGuardStats(): GuardStatsSnapshot;
65
74
  /** Classify every capability currently indexed by `ctx.capability`. */
66
75
  classifyAll(): CapabilityClassification[];
67
76
  /** Explain filtered, overridden, broken, empty, and unbrowseable inventory states. */
@@ -1 +1 @@
1
- {"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../../src/server/remote.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,mBAAmB,EAAU,MAAM,kCAAkC,CAAA;AAE9E,OAAO,KAAK,EACV,wBAAwB,EACxB,uBAAuB,EACvB,MAAM,IAAI,sBAAsB,EAChC,aAAa,EACd,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAErJ,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE3F,OAAO,EAAuD,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAM7G,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,OAAO;QACf,gBAAgB,EAAE,uBAAuB,CAAA;QACzC,UAAU,EAAE,iBAAiB,CAAA;KAC9B;CACF;AAED,2EAA2E;AAC3E,MAAM,WAAW,WAAW;IAC1B,yEAAyE;IACzE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAA;IACvC,QAAQ,CAAC,QAAQ,EAAE,SAAS;QAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;QACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;QAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;QACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KACzB,EAAE,CAAA;CACJ;AAED;;;;;;;;;;GAUG;AACH,qBAAa,uBAAwB,SAAQ,mBAAmB;IAC9D,MAAM,CAAC,MAAM,WAAqC;gBAEtC,GAAG,EAAE,OAAO;IAKlB,eAAe,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAK5C,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKjD,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD,wCAAwC;IAExC,SAAS,IAAI,sBAAsB;IAInC,iFAAiF;IAE3E,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3E,4CAA4C;IAE5C,QAAQ,IAAI,aAAa;IAIzB;;;;;OAKG;IAEG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhE,uEAAuE;IAEvE,WAAW,IAAI,wBAAwB,EAAE;IAIzC,sFAAsF;IAEtF,cAAc,IAAI,qBAAqB;IAIvC;;;;;OAKG;IAEG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B,uFAAuF;IAEjF,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAKlE,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,cAAc,GAAG,SAAS;IAK3E,oBAAoB,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKhE,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,4EAA4E;IAEtE,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,GAAG,SAAS,CAAC;IAItF,mDAAmD;IAE7C,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAI7E,mFAAmF;IAE7E,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC;IAsB5C,8CAA8C;IAExC,aAAa,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAI7C,gCAAgC;IAE1B,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAInD,oCAAoC;IAE9B,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlD,yDAAyD;IAEnD,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAIzE;;;;;;;;;OASG;IAEG,kBAAkB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAsBpD;;;;OAIG;IAEG,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1E,gFAAgF;IAE1E,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI/E;;;;;;;;;;;;OAYG;IAEG,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAwBvD,sEAAsE;IAEhE,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI5E,iEAAiE;IAE3D,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIzF;;;;;;;;;;OAUG;IAEH,cAAc,IAAI,MAAM;CAGzB;AAED,gDAAgD;AAChD,eAAO,MAAM,IAAI,2BAA2B,CAAA;AAC5C,eAAO,MAAM,MAAM,UAAqC,CAAA;AACxD,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAExC"}
1
+ {"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../../src/server/remote.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,152 @@
1
+ import type { CallIndexSourceKind } from './call-index-wire.ts';
2
+ /** One bounded, fixed reason code; never free-form error text. */
3
+ export type CallIndexReason = 'malformed-event' | 'invalid-seq' | 'invalid-time' | 'unreadable-field' | 'unknown-required-event' | 'malformed-tool-call' | 'malformed-tool-result' | 'field-too-long' | 'seq-conflict' | 'duplicate-call-id' | 'result-before-call' | 'turn-step-mismatch' | 'clock-anomaly' | 'orphan-capacity' | 'orphan-result' | 'index-capacity' | 'reserve-denied' | 'projection-gap'
4
+ /**
5
+ * The backend declared fewer events than the log actually holds.
6
+ *
7
+ * The jsonl backend counts only the header record of a multi-frame zstd
8
+ * artifact, so a long log can declare `eventCount: 1`. The scan must read past
9
+ * that declaration (D-030); this code records that it happened, because a
10
+ * silently-truncated scan and a genuinely short log look identical otherwise.
11
+ */
12
+ | 'event-count-underreported';
13
+ /** A projected, metadata-only call-index event. */
14
+ export interface CallIndexEvent {
15
+ readonly seq: number;
16
+ readonly time: number;
17
+ readonly kind: 'call' | 'result' | 'other';
18
+ readonly turn?: number;
19
+ readonly step?: number;
20
+ readonly callId?: string;
21
+ readonly toolName?: string;
22
+ readonly outcome?: 'success' | 'error' | 'cancelled' | 'unresolved';
23
+ readonly errorCode?: string;
24
+ readonly replacement?: boolean;
25
+ readonly turnClosed?: boolean;
26
+ }
27
+ /** One call row as exposed to a snapshot. */
28
+ export interface CallIndexRow {
29
+ sessionId: string;
30
+ callSeq: number;
31
+ callId: string;
32
+ toolName: string;
33
+ turn?: number;
34
+ step?: number;
35
+ startedAt: number;
36
+ endedAt?: number;
37
+ resultSeq?: number;
38
+ durationMs?: number;
39
+ outcome: 'success' | 'error' | 'cancelled' | 'unresolved' | 'unknown' | 'running';
40
+ inherited: boolean;
41
+ sourceKind: CallIndexSourceKind;
42
+ /**
43
+ * PTC nesting depth. Always `'unknown'`: the PTC parent/child contract is not
44
+ * verified (plan §13.3), and a guessed layer would double-count nested calls.
45
+ */
46
+ layer: 'unknown';
47
+ }
48
+ /**
49
+ * Provenance of one call, decided by the caller from trusted catalog evidence.
50
+ *
51
+ * The partition never inspects a tool name itself: `mcp__` prefixes are a
52
+ * naming convention, not proof, so an unattributed call stays `unknown` (plan
53
+ * §3.5). The resolver is optional so a Host without the capability service
54
+ * still indexes calls — with honest `unknown` provenance.
55
+ */
56
+ export type CallIndexSourceResolver = (toolName: string) => CallIndexSourceKind;
57
+ export interface CallIndexPartitionOptions {
58
+ sessionId: string;
59
+ revision: string;
60
+ inheritedEventCount: number;
61
+ maxEvents?: number;
62
+ maxCalls?: number;
63
+ maxBytes?: number;
64
+ maxOrphans?: number;
65
+ reserve?: (bytes: number) => boolean;
66
+ /**
67
+ * Provenance resolver built from trusted catalog evidence.
68
+ *
69
+ * Omitted means "no trusted evidence available", which yields `unknown` for
70
+ * every row — not a guess. A resolver that throws is treated the same way for
71
+ * that call only, so one bad catalog read cannot blank a whole partition.
72
+ */
73
+ resolveSource?: CallIndexSourceResolver;
74
+ }
75
+ export interface CallIndexPartitionSnapshot {
76
+ sessionId: string;
77
+ revision: string;
78
+ cut: number;
79
+ rows: readonly CallIndexRow[];
80
+ coverage: 'complete' | 'partial';
81
+ reasons: readonly string[];
82
+ estimatedBytes: number;
83
+ }
84
+ /**
85
+ * Project one raw session event to a metadata-only {@link CallIndexEvent}.
86
+ *
87
+ * Unknown *required* event types are a coverage gap; unknown *ignorable* types
88
+ * project as `other`. Control events expose only `seq`/`time`/`type` plus the
89
+ * closing `turn` of `turn/end`. A throwing getter on any read field is reported
90
+ * as `unreadable-field` and never propagated.
91
+ */
92
+ export declare function projectCallIndexEvent(raw: unknown): {
93
+ event?: CallIndexEvent;
94
+ reasons: readonly string[];
95
+ };
96
+ /** Bounded, single-session call index partition. */
97
+ export declare class CallIndexPartition {
98
+ private readonly sessionId;
99
+ private readonly revision;
100
+ private readonly inheritedEventCount;
101
+ private readonly maxEvents;
102
+ private readonly maxCalls;
103
+ private readonly maxBytes;
104
+ private readonly maxOrphans;
105
+ private readonly reserveCallback?;
106
+ private readonly resolveSource?;
107
+ /** Resolved provenance per tool name; a catalog read must happen once per name. */
108
+ private readonly sourceByTool;
109
+ /** seq -> compact signature, used only for dedupe/conflict detection. */
110
+ private readonly seqMeta;
111
+ private readonly calls;
112
+ private readonly callsByCallId;
113
+ private readonly orphans;
114
+ private readonly reasonCodes;
115
+ private readonly turnClosedSeq;
116
+ private stopped;
117
+ private bytes;
118
+ private orphanCount;
119
+ constructor(options: CallIndexPartitionOptions);
120
+ /** Ingest a batch of already-projected events. Ingestion stops at the first capacity breach. */
121
+ ingest(events: readonly CallIndexEvent[]): void;
122
+ /** Record a coverage gap identified outside the projector (fixed code or generic fallback). */
123
+ addGap(reason: string): void;
124
+ usage(): {
125
+ events: number;
126
+ calls: number;
127
+ bytes: number;
128
+ };
129
+ snapshot(cut: number): CallIndexPartitionSnapshot;
130
+ private addReason;
131
+ private reachCapacity;
132
+ private tryReserve;
133
+ private ingestOne;
134
+ private ingestCall;
135
+ private ingestResult;
136
+ private isCompatible;
137
+ private tryAttachResult;
138
+ private bufferOrphan;
139
+ private retryOrphans;
140
+ /**
141
+ * Resolve one call's provenance from the caller's trusted evidence.
142
+ *
143
+ * Cached per tool name because a Session can make thousands of calls to the
144
+ * same tool and the catalog lookup is a synchronous map read. A throwing
145
+ * resolver degrades that call to `unknown`; it never propagates and never
146
+ * guesses a kind from the name.
147
+ */
148
+ private sourceKindFor;
149
+ private buildRow;
150
+ private isComplete;
151
+ }
152
+ //# sourceMappingURL=call-index-core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call-index-core.d.ts","sourceRoot":"","sources":["../../../src/usage/call-index-core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Host-face Typert contribution for the `callIndex` Remote namespace (N23).
3
+ *
4
+ * Same package as the existing `capabilityPolicy` / `usage` faces
5
+ * (`dsh-thinking-guard`). It is exported as a face builder only and does NOT
6
+ * register itself: the package root merges it with the other faces and calls
7
+ * `ctx.typert.register()` exactly once (a second register for the same package
8
+ * withdraws the first face's strict definitions — see `mergeHostFaces`).
9
+ *
10
+ * Every request parameter is validated with the shared strict schema from
11
+ * `call-index-wire.ts` (the gateway decodes arguments with `codec.create().parse`),
12
+ * and every result is projected through `callIndexReplySchema`, so raw backend
13
+ * handles / tokens / arguments cannot leave the Host through this face.
14
+ *
15
+ * Wire shape mirrors `src/client/call-index-remote.ts`; the parity test
16
+ * (`tests/call-index-face.spec.ts`) fails when the two tables drift.
17
+ *
18
+ * @module dsh-thinking-guard/usage/call-index-host-face
19
+ */
20
+ import type { Context } from '@deepseek-ai/cordis';
21
+ import type { TypertHostFace } from '../host-face.ts';
22
+ /** Package owning this face — must equal the manifest's registered package. */
23
+ export declare const CALL_INDEX_HOST_FACE_PACKAGE = "dsh-thinking-guard";
24
+ /** Wire namespace shared with the browser face. */
25
+ export declare const CALL_INDEX_HOST_FACE_NAMESPACE = "callIndex";
26
+ /** Service key the gateway registers under (`super(ctx, 'callIndexGateway', …)`). */
27
+ export declare const CALL_INDEX_HOST_FACE_SERVICE = "callIndexGateway";
28
+ /**
29
+ * Optional Cordis key the call-index runtime installs under. Probed with
30
+ * `ctx.get`; never a static inject, so a Host without the runtime still mounts
31
+ * the gateway and answers a plain error reply.
32
+ */
33
+ export declare const CALL_INDEX_RUNTIME_SERVICE = "callIndexRuntime";
34
+ /**
35
+ * The gateway's Remote surface: `[method, required wire fields, optional wire
36
+ * fields]`, in the same order as the Host gateway and browser contribution.
37
+ * Every wire parameter is named `request`.
38
+ */
39
+ export declare const CALL_INDEX_WIRE_METHODS: ReadonlyArray<readonly [string, readonly string[], readonly string[]]>;
40
+ /** Build the host face for the `callIndex` namespace. */
41
+ export declare function callIndexHostFace(): TypertHostFace;
42
+ /** Registration is intentionally left to the package root (see module note). */
43
+ export type CallIndexContext = Context;
44
+ //# sourceMappingURL=call-index-host-face.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call-index-host-face.d.ts","sourceRoot":"","sources":["../../../src/usage/call-index-host-face.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,KAAK,EAAoC,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAWvF,+EAA+E;AAC/E,eAAO,MAAM,4BAA4B,uBAAoB,CAAA;AAE7D,mDAAmD;AACnD,eAAO,MAAM,8BAA8B,cAAc,CAAA;AAEzD,qFAAqF;AACrF,eAAO,MAAM,4BAA4B,qBAAqB,CAAA;AAE9D;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,qBAAqB,CAAA;AAE5D;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,MAAM,EAAE,CAAC,CAQ1G,CAAA;AA+BD,yDAAyD;AACzD,wBAAgB,iBAAiB,IAAI,cAAc,CAoBlD;AAED,gFAAgF;AAChF,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAA"}
@@ -0,0 +1,7 @@
1
+ import type { Context } from '@deepseek-ai/cordis';
2
+ import { type CallIndexRuntimeConfig } from './call-index-runtime.ts';
3
+ export declare const name = "thinking-guard-call-index";
4
+ export declare const Config: import("@deepseek-ai/schemastery").default<CallIndexRuntimeConfig>;
5
+ /** Lifecycle belongs to this plugin fiber; no production profile or Session writes. */
6
+ export declare function apply(ctx: Context, config?: CallIndexRuntimeConfig): void;
7
+ //# sourceMappingURL=call-index-host.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call-index-host.d.ts","sourceRoot":"","sources":["../../../src/usage/call-index-host.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,EAA4C,KAAK,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAC/G,eAAO,MAAM,IAAI,8BAA8B,CAAA;AAC/C,eAAO,MAAM,MAAM,oEAAkB,CAAA;AACrC,uFAAuF;AACvF,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,sBAA2B,GAAG,IAAI,CAK7E"}
@@ -0,0 +1,97 @@
1
+ import type { SessionCallIndex } from './session-index.ts';
2
+ import { type CallIndexReply } from './call-index-wire.ts';
3
+ /** Structural type of `SessionCallIndex.snapshot()` — type-only, never bundled. */
4
+ export type CallIndexQuerySnapshot = ReturnType<SessionCallIndex['snapshot']>;
5
+ /** Everything the query layer needs from the Host; the runtime owns it. */
6
+ export interface CallIndexQuerySource {
7
+ readonly snapshot: () => CallIndexQuerySnapshot;
8
+ /** Cheap authorization/rescan stamp. Changes on scope change or a full rescan. */
9
+ readonly stamp: () => string;
10
+ readonly isSessionVisible: (id: string) => Promise<boolean>;
11
+ /**
12
+ * Optional cheap freshness probe. When present, pagination can report
13
+ * `hasUpdates` after live additions WITHOUT re-reading `snapshot()`. When
14
+ * absent, frozen views simply report `hasUpdates: false`.
15
+ */
16
+ readonly generation?: () => number;
17
+ }
18
+ export interface CallIndexQueryOptions {
19
+ now?: () => number;
20
+ ttlMs?: number;
21
+ maxViews?: number;
22
+ maxBytes?: number;
23
+ maxReplyBytes?: number;
24
+ }
25
+ /**
26
+ * Immutable, bounded query views behind the `callIndex` namespace.
27
+ *
28
+ * One instance is owned by the Host runtime. Views are frozen captures of a
29
+ * single `snapshot()`; cursors point at offsets inside one view.
30
+ */
31
+ export declare class CallIndexQueries {
32
+ private readonly source;
33
+ private readonly now;
34
+ private readonly ttlMs;
35
+ private readonly maxViews;
36
+ private readonly maxBytes;
37
+ private readonly maxReplyBytes;
38
+ private readonly views;
39
+ private readonly cursors;
40
+ private readonly cursorKeys;
41
+ private totalBytes;
42
+ constructor(source: CallIndexQuerySource, options?: CallIndexQueryOptions);
43
+ /**
44
+ * Wire envelope shared by every page.
45
+ *
46
+ * `totalExact` means "this number is the whole truth for the filter". The two
47
+ * kinds of provenance filter are NOT symmetric, and the asymmetry decides the
48
+ * flag:
49
+ *
50
+ * - `sourceKind: 'mcp' | 'native' | 'plugin-tool' | 'skill'` — the predicate
51
+ * means "the real source IS mcp", but the stored label only means "the
52
+ * catalog resolved it to mcp". A call from a since-removed plugin is
53
+ * labelled `unknown` although it really was MCP, so this count is a LOWER
54
+ * BOUND and must not claim exact.
55
+ * - `sourceKind: 'unknown'` — the predicate is the label itself. Every row
56
+ * carries exactly one label (`buildRow` always writes it, and
57
+ * `projectRow` drops a row with an invalid one), so "rows matching this
58
+ * filter" equals "rows labelled unknown" by definition: nothing can be
59
+ * missed and nothing counted twice. That exactness is definitional, not
60
+ * evidential, which is why it survives.
61
+ *
62
+ * What `unknown` must NOT be read as is "calls whose real source is unknown":
63
+ * it also holds calls whose source is known but whose tool left the catalog.
64
+ * It is a superset of the truly-unresolved, so the UI has to say
65
+ * "provenance unresolved", never "未知来源的真实总数".
66
+ */
67
+ private meta;
68
+ private bounded;
69
+ /** Drop every cached view and cursor (explicit rescan / disable / dispose). */
70
+ invalidate(): void;
71
+ private estimateBytes;
72
+ private dropView;
73
+ private evictExpired;
74
+ private evictOldest;
75
+ private capture;
76
+ private resolveView;
77
+ private hasUpdates;
78
+ private cursorKey;
79
+ /** Reuse the cursor id for an identical (view, kind, filter, offset) position. */
80
+ private newCursor;
81
+ private fitCount;
82
+ private listContext;
83
+ private sessionsFor;
84
+ /** Summarise the whole filtered set (not the current page). */
85
+ getSummary(request?: unknown): CallIndexReply;
86
+ /** One page of Session metadata; zero-call Sessions are included when unfiltered. */
87
+ listSessions(request?: unknown): CallIndexReply;
88
+ /** One page of call rows in stable `(startedAt DESC, sessionId, callSeq)` order. */
89
+ listCalls(request?: unknown): CallIndexReply;
90
+ /**
91
+ * Safely read one call's metadata. The row must be in the frozen view, then
92
+ * the Session must still be visible, then the authorization stamp must still
93
+ * match — a detail read never trusts a browser-supplied id by itself.
94
+ */
95
+ getCallDetail(request: unknown): Promise<CallIndexReply>;
96
+ }
97
+ //# sourceMappingURL=call-index-query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call-index-query.d.ts","sourceRoot":"","sources":["../../../src/usage/call-index-query.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAkBL,KAAK,cAAc,EAEpB,MAAM,sBAAsB,CAAA;AAE7B,mFAAmF;AACnF,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAA;AAE7E,2EAA2E;AAC3E,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,sBAAsB,CAAA;IAC/C,kFAAkF;IAClF,QAAQ,CAAC,KAAK,EAAE,MAAM,MAAM,CAAA;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IAC3D;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,MAAM,CAAA;CACnC;AAED,MAAM,WAAW,qBAAqB;IACpC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAyUD;;;;;GAKG;AACH,qBAAa,gBAAgB;IAWf,OAAO,CAAC,QAAQ,CAAC,MAAM;IAVnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;IACtC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0B;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IACpD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA4B;IACvD,OAAO,CAAC,UAAU,CAAI;gBAEO,MAAM,EAAE,oBAAoB,EAAE,OAAO,GAAE,qBAA0B;IAS9F;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,OAAO;IAOf,+EAA+E;IAC/E,UAAU,IAAI,IAAI;IAOlB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,QAAQ;IAYhB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,OAAO;IAyBf,OAAO,CAAC,WAAW;IAmBnB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,SAAS;IAKjB,kFAAkF;IAClF,OAAO,CAAC,SAAS;IAiBjB,OAAO,CAAC,QAAQ;IAkBhB,OAAO,CAAC,WAAW;IA4BnB,OAAO,CAAC,WAAW;IAanB,+DAA+D;IAC/D,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,cAAc;IAsB7C,qFAAqF;IACrF,YAAY,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,cAAc;IA8B/C,oFAAoF;IACpF,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,cAAc;IA8B5C;;;;OAIG;IACG,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC;CAiC/D"}
@@ -0,0 +1,46 @@
1
+ /** Formal Host owner of the call index. Scope is explicit; storage remains read-only. */
2
+ import type { Context } from '@deepseek-ai/cordis';
3
+ import z from '@deepseek-ai/schemastery';
4
+ import { type CallIndexReply } from './call-index-wire.ts';
5
+ export interface CallIndexRuntimeConfig {
6
+ scope?: 'disabled' | 'host-visible';
7
+ liveDebounceMs?: number;
8
+ maxEventsPerRun?: number;
9
+ queryTtlMs?: number;
10
+ queryMaxViews?: number;
11
+ queryMaxBytes?: number;
12
+ pageSize?: number;
13
+ maxBytes?: number;
14
+ maxCalls?: number;
15
+ maxSessions?: number;
16
+ maxLiveQueue?: number;
17
+ /** Run one history scan automatically when the plugin mounts (D-031). */
18
+ autoIndex?: boolean;
19
+ /** Which pass the automatic scan requests. Incremental by default. */
20
+ autoIndexMode?: 'full' | 'incremental';
21
+ /** Delay before the automatic scan, so the mount and scope resolve first. */
22
+ autoIndexDelayMs?: number;
23
+ }
24
+ export declare const CallIndexConfig: z<CallIndexRuntimeConfig>;
25
+ export interface CallIndexRuntime {
26
+ getIndexStatus(): CallIndexReply;
27
+ startIndex(request?: unknown): CallIndexReply;
28
+ cancelIndex(request: unknown): CallIndexReply;
29
+ getSummary(request?: unknown): CallIndexReply;
30
+ listSessions(request?: unknown): CallIndexReply;
31
+ listCalls(request?: unknown): CallIndexReply;
32
+ getCallDetail(request: unknown): Promise<CallIndexReply>;
33
+ whenIdle(): Promise<void>;
34
+ dispose(): Promise<void>;
35
+ }
36
+ export interface CallIndexRuntimeOptions {
37
+ now?: () => number;
38
+ schedule?: (callback: () => void, delay: number) => () => void;
39
+ }
40
+ declare module '@deepseek-ai/cordis' {
41
+ interface Context {
42
+ callIndexRuntime: CallIndexRuntime;
43
+ }
44
+ }
45
+ export declare function installCallIndexRuntime(ctx: Context, config?: CallIndexRuntimeConfig, options?: CallIndexRuntimeOptions): CallIndexRuntime;
46
+ //# sourceMappingURL=call-index-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call-index-runtime.d.ts","sourceRoot":"","sources":["../../../src/usage/call-index-runtime.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,CAAC,MAAM,0BAA0B,CAAA;AAIxC,OAAO,EAAkC,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAK1F,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,UAAU,GAAG,cAAc,CAAA;IACnC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,yEAAyE;IACzE,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,GAAG,aAAa,CAAA;IACtC,6EAA6E;IAC7E,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AACD,eAAO,MAAM,eAAe,EAAE,CAAC,CAAC,sBAAsB,CAkCpD,CAAA;AASF,MAAM,WAAW,gBAAgB;IAC/B,cAAc,IAAI,cAAc,CAAA;IAChC,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,cAAc,CAAA;IAC7C,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,cAAc,CAAA;IAC7C,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,cAAc,CAAA;IAC7C,YAAY,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,cAAc,CAAA;IAC/C,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,cAAc,CAAA;IAC5C,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;IACxD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACzB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACzB;AACD,MAAM,WAAW,uBAAuB;IACtC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,IAAI,CAAA;CAC/D;AACD,OAAO,QAAQ,qBAAqB,CAAC;IAAE,UAAU,OAAO;QAAG,gBAAgB,EAAE,gBAAgB,CAAA;KAAE;CAAE;AAsDjG,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,sBAA2B,EAAE,OAAO,GAAE,uBAA4B,GAAG,gBAAgB,CAwMlJ"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Explicit scope contract for the new call index (D-026).
3
+ * `host-visible` means the public service corpus, potentially across Profiles.
4
+ * It never claims Profile ownership. The legacy Usage gate is not changed.
5
+ * Resolving a scope never lists or opens history; this is a server-only lease.
6
+ */
7
+ import type { SessionPersistence } from '@deepseek-ai/dsh-session-persistence';
8
+ export type CallIndexScopeMode = 'disabled' | 'host-visible';
9
+ export type CallIndexBackend = Pick<SessionPersistence, 'identity' | 'list' | 'stat' | 'open'>;
10
+ export type CallIndexScope = {
11
+ readonly status: 'disabled';
12
+ readonly mode: 'disabled';
13
+ readonly reason: 'not-enabled';
14
+ } | {
15
+ readonly status: 'unavailable';
16
+ readonly mode: 'disabled' | 'host-visible';
17
+ readonly reason: 'unsupported-scope' | 'persistence-unavailable';
18
+ } | {
19
+ readonly status: 'ready';
20
+ readonly mode: 'host-visible';
21
+ readonly epoch: number;
22
+ readonly token: symbol;
23
+ readonly backend: CallIndexBackend;
24
+ };
25
+ export interface CallIndexScopeDescription {
26
+ readonly status: CallIndexScope['status'];
27
+ readonly mode: CallIndexScopeMode;
28
+ readonly scope?: 'host-visible';
29
+ readonly includesOtherProfiles?: true;
30
+ readonly epoch?: number;
31
+ readonly reason?: 'not-enabled' | 'unsupported-scope' | 'persistence-unavailable';
32
+ }
33
+ /** Instance-local epochs and tickets; neither is a persistent Profile identity. */
34
+ export declare class CallIndexScopeController {
35
+ private counter;
36
+ private identity;
37
+ private ticket;
38
+ /**
39
+ * Resolve the live scope.
40
+ *
41
+ * `undefined` now means "use the configured default", which since D-029 is
42
+ * `host-visible` — matching `CallIndexConfig.scope`'s schema default. Keeping
43
+ * the two in step matters: this method is called directly by
44
+ * `installCallIndexRuntime`, so a schema-only default would leave a host that
45
+ * builds the runtime from a plain object quietly disabled.
46
+ *
47
+ * `'disabled'` still hard-disables, and any unrecognized mode stays
48
+ * `unavailable` rather than guessing.
49
+ */
50
+ resolve(mode?: unknown, backend?: unknown): CallIndexScope;
51
+ /** Callers must resolve the current live mode/backend before using this check. */
52
+ isCurrent(scope: CallIndexScope): scope is Extract<CallIndexScope, {
53
+ status: 'ready';
54
+ }>;
55
+ invalidate(): void;
56
+ }
57
+ /** Fixed wire projection: no service, symbol, path, Profile inference or raw error. */
58
+ export declare function describeCallIndexScope(scope: CallIndexScope): CallIndexScopeDescription;
59
+ //# sourceMappingURL=call-index-scope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call-index-scope.d.ts","sourceRoot":"","sources":["../../../src/usage/call-index-scope.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAA;AAE9E,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,cAAc,CAAA;AAC5D,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,CAAA;AAC9F,MAAM,MAAM,cAAc,GACtB;IAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;CAAE,GAC1F;IAAE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,GAAG,yBAAyB,CAAA;CAAE,GAChJ;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,CAAA;AAEnJ,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAA;IACzC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAA;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,cAAc,CAAA;IAC/B,QAAQ,CAAC,qBAAqB,CAAC,EAAE,IAAI,CAAA;IACrC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,mBAAmB,GAAG,yBAAyB,CAAA;CAClF;AAeD,mFAAmF;AACnF,qBAAa,wBAAwB;IACnC,OAAO,CAAC,OAAO,CAAI;IACnB,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,MAAM,CAAoB;IAElC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,IAAI,GAAE,OAAmB,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,cAAc;IA4BrE,kFAAkF;IAClF,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,KAAK,IAAI,OAAO,CAAC,cAAc,EAAE;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;IAIvF,UAAU,IAAI,IAAI;CAInB;AAED,uFAAuF;AACvF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,cAAc,GAAG,yBAAyB,CAQvF"}