@namzu/sdk 56.1.0 → 56.2.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.
Files changed (92) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/compaction/context-breakdown.d.ts +1 -1
  3. package/dist/compaction/context-breakdown.d.ts.map +1 -1
  4. package/dist/compaction/context-breakdown.js +9 -2
  5. package/dist/compaction/context-breakdown.js.map +1 -1
  6. package/dist/compaction/verifier.d.ts.map +1 -1
  7. package/dist/compaction/verifier.js +3 -1
  8. package/dist/compaction/verifier.js.map +1 -1
  9. package/dist/public-runtime.d.ts +1 -1
  10. package/dist/public-runtime.d.ts.map +1 -1
  11. package/dist/public-runtime.js +1 -1
  12. package/dist/public-runtime.js.map +1 -1
  13. package/dist/runtime/query/executor.d.ts +8 -1
  14. package/dist/runtime/query/executor.d.ts.map +1 -1
  15. package/dist/runtime/query/executor.js +10 -2
  16. package/dist/runtime/query/executor.js.map +1 -1
  17. package/dist/runtime/query/file-evidence-context.d.ts +21 -4
  18. package/dist/runtime/query/file-evidence-context.d.ts.map +1 -1
  19. package/dist/runtime/query/file-evidence-context.js +70 -8
  20. package/dist/runtime/query/file-evidence-context.js.map +1 -1
  21. package/dist/runtime/query/index.d.ts.map +1 -1
  22. package/dist/runtime/query/index.js +2 -11
  23. package/dist/runtime/query/index.js.map +1 -1
  24. package/dist/runtime/query/iteration/index.d.ts +1 -2
  25. package/dist/runtime/query/iteration/index.d.ts.map +1 -1
  26. package/dist/runtime/query/iteration/index.js +30 -19
  27. package/dist/runtime/query/iteration/index.js.map +1 -1
  28. package/dist/runtime/query/iteration/recorded-context.d.ts +18 -0
  29. package/dist/runtime/query/iteration/recorded-context.d.ts.map +1 -0
  30. package/dist/runtime/query/iteration/recorded-context.js +37 -0
  31. package/dist/runtime/query/iteration/recorded-context.js.map +1 -0
  32. package/dist/runtime/query/iteration/step-context.d.ts +15 -51
  33. package/dist/runtime/query/iteration/step-context.d.ts.map +1 -1
  34. package/dist/runtime/query/iteration/step-context.js +24 -134
  35. package/dist/runtime/query/iteration/step-context.js.map +1 -1
  36. package/dist/runtime/query/iteration/step-shaping.d.ts +20 -8
  37. package/dist/runtime/query/iteration/step-shaping.d.ts.map +1 -1
  38. package/dist/runtime/query/iteration/step-shaping.js +52 -26
  39. package/dist/runtime/query/iteration/step-shaping.js.map +1 -1
  40. package/dist/scheduler/completion-inbox.d.ts +27 -0
  41. package/dist/scheduler/completion-inbox.d.ts.map +1 -1
  42. package/dist/scheduler/completion-inbox.js +88 -21
  43. package/dist/scheduler/completion-inbox.js.map +1 -1
  44. package/dist/store/session-index/fts.d.ts.map +1 -1
  45. package/dist/store/session-index/fts.js +6 -0
  46. package/dist/store/session-index/fts.js.map +1 -1
  47. package/dist/test-support/file-evidence-held.d.ts +11 -0
  48. package/dist/test-support/file-evidence-held.d.ts.map +1 -0
  49. package/dist/test-support/file-evidence-held.js +28 -0
  50. package/dist/test-support/file-evidence-held.js.map +1 -0
  51. package/dist/test-support/request-only.d.ts +10 -0
  52. package/dist/test-support/request-only.d.ts.map +1 -0
  53. package/dist/test-support/request-only.js +15 -0
  54. package/dist/test-support/request-only.js.map +1 -0
  55. package/dist/tools/untrusted-envelope.d.ts +7 -0
  56. package/dist/tools/untrusted-envelope.d.ts.map +1 -1
  57. package/dist/tools/untrusted-envelope.js +3 -1
  58. package/dist/tools/untrusted-envelope.js.map +1 -1
  59. package/dist/turn/evidence-recall.d.ts +19 -8
  60. package/dist/turn/evidence-recall.d.ts.map +1 -1
  61. package/dist/turn/evidence-recall.js +134 -53
  62. package/dist/turn/evidence-recall.js.map +1 -1
  63. package/dist/turn/memory-recall.d.ts +18 -0
  64. package/dist/turn/memory-recall.d.ts.map +1 -1
  65. package/dist/turn/memory-recall.js +43 -4
  66. package/dist/turn/memory-recall.js.map +1 -1
  67. package/dist/types/message/index.d.ts +46 -1
  68. package/dist/types/message/index.d.ts.map +1 -1
  69. package/dist/types/message/index.js +78 -1
  70. package/dist/types/message/index.js.map +1 -1
  71. package/dist/types/session/prepare-step.d.ts +24 -0
  72. package/dist/types/session/prepare-step.d.ts.map +1 -1
  73. package/package.json +1 -1
  74. package/src/compaction/context-breakdown.ts +11 -3
  75. package/src/compaction/verifier.ts +3 -1
  76. package/src/public-runtime.ts +7 -0
  77. package/src/runtime/query/executor.ts +20 -2
  78. package/src/runtime/query/file-evidence-context.ts +79 -11
  79. package/src/runtime/query/index.ts +2 -10
  80. package/src/runtime/query/iteration/index.ts +32 -26
  81. package/src/runtime/query/iteration/recorded-context.ts +48 -0
  82. package/src/runtime/query/iteration/step-context.ts +27 -155
  83. package/src/runtime/query/iteration/step-shaping.ts +64 -40
  84. package/src/scheduler/completion-inbox.ts +87 -20
  85. package/src/store/session-index/fts.ts +5 -0
  86. package/src/test-support/file-evidence-held.ts +27 -0
  87. package/src/test-support/request-only.ts +19 -0
  88. package/src/tools/untrusted-envelope.ts +10 -1
  89. package/src/turn/evidence-recall.ts +189 -58
  90. package/src/turn/memory-recall.ts +59 -5
  91. package/src/types/message/index.ts +108 -1
  92. package/src/types/session/prepare-step.ts +26 -0
@@ -335,7 +335,7 @@ export interface ProjectInstructionMessageSource {
335
335
  * transcript, export, or previous-prompt editor from presenting kernel context
336
336
  * as something the operator typed.
337
337
  */
338
- export declare const RUNTIME_CONTEXT_MESSAGE_KINDS: readonly ["advisory", "answer-review", "auto-continuation", "channel-message", "hook-feedback", "host-observation", "job-exit", "limit-finalization", "peer-message", "peer-notice", "reminder", "repeat-call", "steering", "step-context", "structured-output", "task-completion"];
338
+ export declare const RUNTIME_CONTEXT_MESSAGE_KINDS: readonly ["advisory", "answer-review", "auto-continuation", "channel-message", "hook-feedback", "host-observation", "job-exit", "limit-finalization", "peer-message", "peer-notice", "reminder", "repeat-call", "steering", "step-context", "structured-output", "task-completion", "turn-context"];
339
339
  export type RuntimeContextMessageKind = (typeof RUNTIME_CONTEXT_MESSAGE_KINDS)[number];
340
340
  /** Host-generated context carried in the provider's required user role. */
341
341
  export interface RuntimeContextMessageSource {
@@ -343,7 +343,14 @@ export interface RuntimeContextMessageSource {
343
343
  readonly kind: RuntimeContextMessageKind;
344
344
  /** Optional durable host delivery identity; it never grants operator authority. */
345
345
  readonly deliveryRef?: InboundDeliveryRef;
346
+ /**
347
+ * What a `turn-context` entry reports (for example `repository`). A later
348
+ * entry with the same key adds to or replaces what an earlier one said.
349
+ */
350
+ readonly key?: string;
346
351
  }
352
+ /** The longest key a recorded context entry may carry. */
353
+ export declare const MAX_TURN_CONTEXT_KEY_LENGTH = 64;
347
354
  export type UserMessageSource = GoalRoundMessageSource | ProjectInstructionMessageSource | RuntimeContextMessageSource;
348
355
  /** A bounded source list keeps untrusted persisted metadata cheap to validate. */
349
356
  export declare const MAX_PROJECT_INSTRUCTION_SOURCE_FILES = 256;
@@ -501,6 +508,44 @@ export declare function createSystemMessage(content: string, cacheHint?: CacheHi
501
508
  export declare function createUserMessage(content: string, attachments?: readonly MessageAttachment[], source?: UserMessageSource): UserMessage;
502
509
  /** Build provider-visible context that no operator authored. */
503
510
  export declare function createRuntimeContextMessage(content: string, kind: RuntimeContextMessageKind): UserMessage;
511
+ /** Whether `value` is a name a recorded context entry may be filed under. */
512
+ export declare function isTurnContextKey(value: unknown): value is string;
513
+ /**
514
+ * Build a recorded context entry: text a step learned for this turn that
515
+ * stays in the conversation, after whatever came before it, so later requests
516
+ * keep beginning with it. The header is written into the content once and the
517
+ * entry is never edited afterwards; a later entry under the same key says what
518
+ * changed. It is not an operator message and carries no authority.
519
+ *
520
+ * The first entry under a key says that a later one adds to or replaces it;
521
+ * with `later` set, for an entry that follows another under the same key, the
522
+ * header leaves that sentence out, since the conversation already holds it.
523
+ */
524
+ export declare function createTurnContextEntry(key: string, text: string, at?: Date, options?: {
525
+ readonly later?: boolean;
526
+ }): UserMessage;
527
+ /** The key a recorded context entry is filed under, or undefined for any other message. */
528
+ export declare function turnContextKey(message: {
529
+ readonly role: string;
530
+ readonly source?: unknown;
531
+ }): string | undefined;
532
+ /** Whether `message` is a recorded context entry. */
533
+ export declare function isTurnContextEntry(message: {
534
+ readonly role: string;
535
+ readonly source?: unknown;
536
+ }): boolean;
537
+ /**
538
+ * What a step recorded under `key`, oldest first, without each entry's header.
539
+ * A history that was compacted holds only the entries the compaction kept, so
540
+ * an empty list means the step may say everything again.
541
+ */
542
+ export declare function turnContextEntries(messages: readonly Message[], key: string): readonly string[];
543
+ /**
544
+ * The text of the newest user-role message with plain text, skipping recorded
545
+ * context entries: a history that ends in one (a resumed session) must not
546
+ * take the host's own recalled text for the question.
547
+ */
548
+ export declare function lastPromptText(messages: readonly Message[]): string;
504
549
  /** Build the retained user-context message that carries live project policy. */
505
550
  export declare function createProjectInstructionMessage(content: string, files: readonly string[]): UserMessage;
506
551
  export declare function createAssistantMessage(content: string | null, toolCalls?: ToolCall[], reasoning?: readonly ReasoningBlock[], citations?: readonly Citation[], source?: AssistantMessageSource, textParts?: readonly AssistantTextPart[]): AssistantMessage;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/message/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAAE,KAAK,kBAAkB,EAAwB,MAAM,uBAAuB,CAAA;AAGrF,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAA;AAElE,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,MAAM,CAAA;AAEtD,kEAAkE;AAClE,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,GAAG,eAAe,CAAA;CACtD;AAED,gEAAgE;AAChE,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,oBAAoB,CAQpF;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,0DAA0D;IAC1D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,qEAAqE;IACrE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,0EAA0E;IAC1E,QAAQ,CAAC,aAAa,CAAC,EAAE,oBAAoB,CAAA;CAC7C;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB;;;;;;;;;OASG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,oDAAoD;IACpD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,+CAA+C;IAC/C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CACtB;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,QAAQ;IACxB,oDAAoD;IACpD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,oEAAoE;IACpE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,QAAQ,EACd;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GACvE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GACvE;QAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CAC3E;AAED,wDAAwD;AACxD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,oEAAoE;IACpE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,kEAAkE;IAClE,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,CAAA;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,MAAM,iBAAiB,GAAG,eAAe,GAAG,kBAAkB,GAAG,mBAAmB,CAAA;AAE1F,eAAO,MAAM,oBAAoB,GAChC,YAAY,iBAAiB,KAC3B,UAAU,IAAI,kBAAoD,CAAA;AAErE,MAAM,WAAW,QAAQ;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,UAAU,CAAA;IAChB,QAAQ,EAAE;QACT,IAAI,EAAE,MAAM,CAAA;QACZ,SAAS,EAAE,MAAM,CAAA;KACjB,CAAA;IACD;;;;OAIG;IACH,QAAQ,CAAC,EAAE;QACV;;;;;WAKG;QACH,cAAc,CAAC,EAAE,OAAO,CAAA;QACxB;;;;;;WAMG;QACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;QACzB;;;;WAIG;QACH,UAAU,CAAC,EAAE,cAAc,CAAA;KAC3B,CAAA;CACD;AAED;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG,WAAW,CAAA;AAE5D;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAA;IACrC,oGAAoG;IACpG,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,QAAQ,GAAG,gBAAgB,CAAA;IAC3E;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,gBAAgB,CAAA;IACxC,qCAAqC;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,gDAAgD;IAChD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB;;;;;;;;;OASG;IACH,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC;;;;;;;;;OASG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CACjC;AAED,MAAM,WAAW,WAAW;IAC3B;;;;;OAKG;IACH,IAAI,EAAE,WAAW,CAAA;IACjB,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,eAAe,EAAE,CAAA;IACnD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,EAAE,CAAC,EAAE,SAAS,CAAA;IACvB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,aAAc,SAAQ,WAAW;IACjD,IAAI,EAAE,QAAQ,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,iFAAiF;IACjF,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAA;KAAE,CAAA;CAChD;AAED,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC/C,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,8CAA8C;IAC9C,WAAW,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAA;IAC1C,iFAAiF;IACjF,MAAM,CAAC,EAAE,iBAAiB,CAAA;CAC1B;AAED,gFAAgF;AAChF,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,gEAAgE;IAChE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;CAC9B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,+BAA+B;IAC/C,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAA;IACrC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAA;CACtB;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,6BAA6B,qRAiBhC,CAAA;AAEV,MAAM,MAAM,yBAAyB,GAAG,CAAC,OAAO,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAA;AAEtF,2EAA2E;AAC3E,MAAM,WAAW,2BAA2B;IAC3C,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAA;IAChC,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAA;IACxC,mFAAmF;IACnF,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAA;CACzC;AAED,MAAM,MAAM,iBAAiB,GAC1B,sBAAsB,GACtB,+BAA+B,GAC/B,2BAA2B,CAAA;AAE9B,kFAAkF;AAClF,eAAO,MAAM,oCAAoC,MAAM,CAAA;AAEvD,sFAAsF;AACtF,wBAAgB,iCAAiC,CAChD,KAAK,EAAE,OAAO,GACZ,KAAK,IAAI,+BAA+B,CAgC1C;AAED,6EAA6E;AAC7E,wBAAgB,6BAA6B,CAC5C,KAAK,EAAE,OAAO,GACZ,KAAK,IAAI,2BAA2B,CAatC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,sEAAsE;IACtE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC3B;AAED,gFAAgF;AAChF,MAAM,WAAW,sBAAuB,SAAQ,aAAa;IAC5D,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB;;;;;;;;OAQG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAC9B;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,mBAAmB,CAAA;IAC/C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,oEAAoE;IACpE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,mDAAmD;IACnD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,mFAAmF;AACnF,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,GAAG,cAAc,CAAA;CAC9C;AAED,0FAA0F;AAC1F,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,iBAAiB,EAAE,GAAG,MAAM,CAG/E;AAED,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACpD,IAAI,EAAE,WAAW,CAAA;IACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,2FAA2F;IAC3F,SAAS,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAA;IACxC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;IACtB,uDAAuD;IACvD,MAAM,CAAC,EAAE,sBAAsB,CAAA;IAC/B;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,cAAc,EAAE,CAAA;IACrC;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAA;CAC/B;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,eAAe,GACxB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChD;IACA,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,oBAAoB,CAAA;CAC5C,GACD,kBAAkB,CAAA;AAErB;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,SAAS,eAAe,EAAE,CAAA;AAEnE,4EAA4E;AAC5E,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,UAAU,EAAE,OAAO,qBAAqB,EAAE,cAAc,CAAA;CACjE;AAED,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC/C,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,iBAAiB,CAAA;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAA;CAC5C;AAED,MAAM,MAAM,OAAO,GAAG,aAAa,GAAG,WAAW,GAAG,gBAAgB,GAAG,WAAW,CAAA;AAElF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,aAAa,CAOzF;AAED,wBAAgB,iBAAiB,CAChC,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,SAAS,iBAAiB,EAAE,EAC1C,MAAM,CAAC,EAAE,iBAAiB,GACxB,WAAW,CAQb;AAED,gEAAgE;AAChE,wBAAgB,2BAA2B,CAC1C,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,yBAAyB,GAC7B,WAAW,CAKb;AAED,gFAAgF;AAChF,wBAAgB,+BAA+B,CAC9C,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,SAAS,MAAM,EAAE,GACtB,WAAW,CAWb;AAED,wBAAgB,sBAAsB,CACrC,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,SAAS,CAAC,EAAE,QAAQ,EAAE,EACtB,SAAS,CAAC,EAAE,SAAS,cAAc,EAAE,EACrC,SAAS,CAAC,EAAE,SAAS,QAAQ,EAAE,EAC/B,MAAM,CAAC,EAAE,sBAAsB,EAC/B,SAAS,CAAC,EAAE,SAAS,iBAAiB,EAAE,GACtC,gBAAgB,CAWlB;AAWD,wBAAgB,iBAAiB,CAChC,OAAO,EAAE,iBAAiB,EAC1B,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,OAAO,EACjB,aAAa,CAAC,EAAE,SAAS,iBAAiB,EAAE,GAC1C,WAAW,CASb;AAED,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9E,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EACN,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,GAChB,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/message/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAAE,KAAK,kBAAkB,EAAwB,MAAM,uBAAuB,CAAA;AAGrF,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAA;AAElE,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,MAAM,CAAA;AAEtD,kEAAkE;AAClE,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,GAAG,eAAe,CAAA;CACtD;AAED,gEAAgE;AAChE,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,oBAAoB,CAQpF;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,0DAA0D;IAC1D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,qEAAqE;IACrE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,0EAA0E;IAC1E,QAAQ,CAAC,aAAa,CAAC,EAAE,oBAAoB,CAAA;CAC7C;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB;;;;;;;;;OASG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,oDAAoD;IACpD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,+CAA+C;IAC/C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CACtB;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,QAAQ;IACxB,oDAAoD;IACpD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,oEAAoE;IACpE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,QAAQ,EACd;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GACvE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GACvE;QAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CAC3E;AAED,wDAAwD;AACxD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,oEAAoE;IACpE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,kEAAkE;IAClE,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,CAAA;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,MAAM,iBAAiB,GAAG,eAAe,GAAG,kBAAkB,GAAG,mBAAmB,CAAA;AAE1F,eAAO,MAAM,oBAAoB,GAChC,YAAY,iBAAiB,KAC3B,UAAU,IAAI,kBAAoD,CAAA;AAErE,MAAM,WAAW,QAAQ;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,UAAU,CAAA;IAChB,QAAQ,EAAE;QACT,IAAI,EAAE,MAAM,CAAA;QACZ,SAAS,EAAE,MAAM,CAAA;KACjB,CAAA;IACD;;;;OAIG;IACH,QAAQ,CAAC,EAAE;QACV;;;;;WAKG;QACH,cAAc,CAAC,EAAE,OAAO,CAAA;QACxB;;;;;;WAMG;QACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;QACzB;;;;WAIG;QACH,UAAU,CAAC,EAAE,cAAc,CAAA;KAC3B,CAAA;CACD;AAED;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG,WAAW,CAAA;AAE5D;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAA;IACrC,oGAAoG;IACpG,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,QAAQ,GAAG,gBAAgB,CAAA;IAC3E;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,gBAAgB,CAAA;IACxC,qCAAqC;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,gDAAgD;IAChD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB;;;;;;;;;OASG;IACH,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC;;;;;;;;;OASG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CACjC;AAED,MAAM,WAAW,WAAW;IAC3B;;;;;OAKG;IACH,IAAI,EAAE,WAAW,CAAA;IACjB,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,eAAe,EAAE,CAAA;IACnD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,EAAE,CAAC,EAAE,SAAS,CAAA;IACvB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,aAAc,SAAQ,WAAW;IACjD,IAAI,EAAE,QAAQ,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,iFAAiF;IACjF,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAA;KAAE,CAAA;CAChD;AAED,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC/C,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,8CAA8C;IAC9C,WAAW,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAA;IAC1C,iFAAiF;IACjF,MAAM,CAAC,EAAE,iBAAiB,CAAA;CAC1B;AAED,gFAAgF;AAChF,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,gEAAgE;IAChE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;CAC9B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,+BAA+B;IAC/C,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAA;IACrC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAA;CACtB;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,6BAA6B,qSAkBhC,CAAA;AAEV,MAAM,MAAM,yBAAyB,GAAG,CAAC,OAAO,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAA;AAEtF,2EAA2E;AAC3E,MAAM,WAAW,2BAA2B;IAC3C,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAA;IAChC,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAA;IACxC,mFAAmF;IACnF,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAA;IACzC;;;OAGG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,0DAA0D;AAC1D,eAAO,MAAM,2BAA2B,KAAK,CAAA;AAI7C,MAAM,MAAM,iBAAiB,GAC1B,sBAAsB,GACtB,+BAA+B,GAC/B,2BAA2B,CAAA;AAE9B,kFAAkF;AAClF,eAAO,MAAM,oCAAoC,MAAM,CAAA;AAEvD,sFAAsF;AACtF,wBAAgB,iCAAiC,CAChD,KAAK,EAAE,OAAO,GACZ,KAAK,IAAI,+BAA+B,CAgC1C;AAED,6EAA6E;AAC7E,wBAAgB,6BAA6B,CAC5C,KAAK,EAAE,OAAO,GACZ,KAAK,IAAI,2BAA2B,CAetC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,sEAAsE;IACtE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC3B;AAED,gFAAgF;AAChF,MAAM,WAAW,sBAAuB,SAAQ,aAAa;IAC5D,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB;;;;;;;;OAQG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAC9B;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,mBAAmB,CAAA;IAC/C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,oEAAoE;IACpE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,mDAAmD;IACnD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,mFAAmF;AACnF,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,GAAG,cAAc,CAAA;CAC9C;AAED,0FAA0F;AAC1F,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,iBAAiB,EAAE,GAAG,MAAM,CAG/E;AAED,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACpD,IAAI,EAAE,WAAW,CAAA;IACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,2FAA2F;IAC3F,SAAS,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAA;IACxC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;IACtB,uDAAuD;IACvD,MAAM,CAAC,EAAE,sBAAsB,CAAA;IAC/B;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,cAAc,EAAE,CAAA;IACrC;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAA;CAC/B;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,eAAe,GACxB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChD;IACA,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,oBAAoB,CAAA;CAC5C,GACD,kBAAkB,CAAA;AAErB;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,SAAS,eAAe,EAAE,CAAA;AAEnE,4EAA4E;AAC5E,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,UAAU,EAAE,OAAO,qBAAqB,EAAE,cAAc,CAAA;CACjE;AAED,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC/C,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,iBAAiB,CAAA;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAA;CAC5C;AAED,MAAM,MAAM,OAAO,GAAG,aAAa,GAAG,WAAW,GAAG,gBAAgB,GAAG,WAAW,CAAA;AAElF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,aAAa,CAOzF;AAED,wBAAgB,iBAAiB,CAChC,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,SAAS,iBAAiB,EAAE,EAC1C,MAAM,CAAC,EAAE,iBAAiB,GACxB,WAAW,CAQb;AAED,gEAAgE;AAChE,wBAAgB,2BAA2B,CAC1C,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,yBAAyB,GAC7B,WAAW,CAKb;AAED,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAMhE;AAOD;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CACrC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,EAAE,GAAE,IAAiB,EACrB,OAAO,GAAE;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GACxC,WAAW,CASb;AAED,2FAA2F;AAC3F,wBAAgB,cAAc,CAAC,OAAO,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GACzF,MAAM,GACN,SAAS,CAMX;AAED,qDAAqD;AACrD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CACzB,GAAG,OAAO,CAIV;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAO/F;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM,CAWnE;AAED,gFAAgF;AAChF,wBAAgB,+BAA+B,CAC9C,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,SAAS,MAAM,EAAE,GACtB,WAAW,CAWb;AAED,wBAAgB,sBAAsB,CACrC,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,SAAS,CAAC,EAAE,QAAQ,EAAE,EACtB,SAAS,CAAC,EAAE,SAAS,cAAc,EAAE,EACrC,SAAS,CAAC,EAAE,SAAS,QAAQ,EAAE,EAC/B,MAAM,CAAC,EAAE,sBAAsB,EAC/B,SAAS,CAAC,EAAE,SAAS,iBAAiB,EAAE,GACtC,gBAAgB,CAWlB;AAWD,wBAAgB,iBAAiB,CAChC,OAAO,EAAE,iBAAiB,EAC1B,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,OAAO,EACjB,aAAa,CAAC,EAAE,SAAS,iBAAiB,EAAE,GAC1C,WAAW,CASb;AAED,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9E,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EACN,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,GAChB,MAAM,cAAc,CAAA"}
@@ -36,7 +36,11 @@ export const RUNTIME_CONTEXT_MESSAGE_KINDS = [
36
36
  'step-context',
37
37
  'structured-output',
38
38
  'task-completion',
39
+ 'turn-context',
39
40
  ];
41
+ /** The longest key a recorded context entry may carry. */
42
+ export const MAX_TURN_CONTEXT_KEY_LENGTH = 64;
43
+ const TURN_CONTEXT_KEY = /^[a-z][a-z0-9-]*$/;
40
44
  /** A bounded source list keeps untrusted persisted metadata cheap to validate. */
41
45
  export const MAX_PROJECT_INSTRUCTION_SOURCE_FILES = 256;
42
46
  /** Runtime validation for persisted or JavaScript-authored instruction provenance. */
@@ -78,7 +82,8 @@ export function isRuntimeContextMessageSource(value) {
78
82
  return (candidate.type === 'runtime-context' &&
79
83
  typeof candidate.kind === 'string' &&
80
84
  RUNTIME_CONTEXT_MESSAGE_KINDS.includes(candidate.kind) &&
81
- (candidate.deliveryRef === undefined || isInboundDeliveryRef(candidate.deliveryRef)));
85
+ (candidate.deliveryRef === undefined || isInboundDeliveryRef(candidate.deliveryRef)) &&
86
+ (candidate.key === undefined || isTurnContextKey(candidate.key)));
82
87
  }
83
88
  /** Select explicit final answers, retaining unphased behavior when none is identified. */
84
89
  export function selectAssistantText(parts) {
@@ -109,6 +114,78 @@ export function createRuntimeContextMessage(content, kind) {
109
114
  kind,
110
115
  });
111
116
  }
117
+ /** Whether `value` is a name a recorded context entry may be filed under. */
118
+ export function isTurnContextKey(value) {
119
+ return (typeof value === 'string' &&
120
+ value.length <= MAX_TURN_CONTEXT_KEY_LENGTH &&
121
+ TURN_CONTEXT_KEY.test(value));
122
+ }
123
+ function localTime(at) {
124
+ const pad = (n) => String(n).padStart(2, '0');
125
+ return `${at.getFullYear()}-${pad(at.getMonth() + 1)}-${pad(at.getDate())} ${pad(at.getHours())}:${pad(at.getMinutes())}`;
126
+ }
127
+ /**
128
+ * Build a recorded context entry: text a step learned for this turn that
129
+ * stays in the conversation, after whatever came before it, so later requests
130
+ * keep beginning with it. The header is written into the content once and the
131
+ * entry is never edited afterwards; a later entry under the same key says what
132
+ * changed. It is not an operator message and carries no authority.
133
+ *
134
+ * The first entry under a key says that a later one adds to or replaces it;
135
+ * with `later` set, for an entry that follows another under the same key, the
136
+ * header leaves that sentence out, since the conversation already holds it.
137
+ */
138
+ export function createTurnContextEntry(key, text, at = new Date(), options = {}) {
139
+ if (!isTurnContextKey(key))
140
+ throw new TypeError('A recorded context key is lowercase words joined by hyphens.');
141
+ const label = `Recorded context (runtime-generated; not a new user request) - ${key}, as of ${localTime(at)}`;
142
+ return createUserMessage(`${label}${options.later ? ':' : '. A later entry with this key adds to or replaces what it says:'}\n${text}`, undefined, { type: 'runtime-context', kind: 'turn-context', key });
143
+ }
144
+ /** The key a recorded context entry is filed under, or undefined for any other message. */
145
+ export function turnContextKey(message) {
146
+ if (message.role !== 'user')
147
+ return undefined;
148
+ const source = message.source;
149
+ return source?.type === 'runtime-context' && source.kind === 'turn-context'
150
+ ? source.key
151
+ : undefined;
152
+ }
153
+ /** Whether `message` is a recorded context entry. */
154
+ export function isTurnContextEntry(message) {
155
+ if (message.role !== 'user')
156
+ return false;
157
+ const source = message.source;
158
+ return source?.type === 'runtime-context' && source.kind === 'turn-context';
159
+ }
160
+ /**
161
+ * What a step recorded under `key`, oldest first, without each entry's header.
162
+ * A history that was compacted holds only the entries the compaction kept, so
163
+ * an empty list means the step may say everything again.
164
+ */
165
+ export function turnContextEntries(messages, key) {
166
+ const bodies = [];
167
+ for (const message of messages) {
168
+ if (turnContextKey(message) !== key || typeof message.content !== 'string')
169
+ continue;
170
+ bodies.push(message.content.slice(message.content.indexOf('\n') + 1));
171
+ }
172
+ return bodies;
173
+ }
174
+ /**
175
+ * The text of the newest user-role message with plain text, skipping recorded
176
+ * context entries: a history that ends in one (a resumed session) must not
177
+ * take the host's own recalled text for the question.
178
+ */
179
+ export function lastPromptText(messages) {
180
+ for (let i = messages.length - 1; i >= 0; i--) {
181
+ const message = messages[i];
182
+ if (message?.role === 'user' &&
183
+ typeof message.content === 'string' &&
184
+ !isTurnContextEntry(message))
185
+ return message.content;
186
+ }
187
+ return '';
188
+ }
112
189
  /** Build the retained user-context message that carries live project policy. */
113
190
  export function createProjectInstructionMessage(content, files) {
114
191
  const source = {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/message/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/message/index.ts"],"names":[],"mappings":"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"}
@@ -213,9 +213,33 @@ export interface PrepareStepResult {
213
213
  * empty string clears it. The next step starts without it.
214
214
  */
215
215
  readonly context?: string;
216
+ /**
217
+ * Text to keep in the conversation from this step on, filed under a key.
218
+ *
219
+ * Where `context` is gone after the request, an item here becomes a
220
+ * recorded entry appended after whatever the history ends with, so every
221
+ * later request (of this turn and of the next turns) begins with it and a
222
+ * caching provider keeps reading the same prefix. Entries are never edited
223
+ * or moved; a step that has something new says only that, under the same
224
+ * key, and reads what it said before with `turnContextEntries`. An item
225
+ * whose text is empty, or equal to the last entry under its key, adds
226
+ * nothing. Entries are ordinary history to compaction, which drops them
227
+ * with the messages around them, after which a step sees none and may say
228
+ * everything again.
229
+ *
230
+ * The model reads an entry as recorded context the host generated, not as
231
+ * something the operator said, and a person is never shown one.
232
+ */
233
+ readonly recordedContext?: readonly RecordedContextItem[];
216
234
  readonly temperature?: number;
217
235
  readonly maxResponseTokens?: number;
218
236
  }
237
+ /** One piece of text a step asks to have recorded, under what it reports. */
238
+ export interface RecordedContextItem {
239
+ /** Lowercase words joined by hyphens (for example `repository`). */
240
+ readonly key: string;
241
+ readonly text: string;
242
+ }
219
243
  /**
220
244
  * Called before each model call, with everything the turn has produced so
221
245
  * far.
@@ -1 +1 @@
1
- {"version":3,"file":"prepare-step.d.ts","sourceRoot":"","sources":["../../../src/types/session/prepare-step.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prepare-step.d.ts","sourceRoot":"","sources":["../../../src/types/session/prepare-step.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@namzu/sdk",
3
- "version": "56.1.0",
3
+ "version": "56.2.0",
4
4
  "description": "Open-source AI kernel for TypeScript: runs an agent the way an operating system runs a process, with an identity and a budget, scheduled tool calls and checkpointed turns.",
5
5
  "license": "FSL-1.1-MIT",
6
6
  "engines": {
@@ -12,7 +12,7 @@
12
12
  */
13
13
 
14
14
  import { CHARS_PER_TOKEN } from '../constants/limits.js'
15
- import type { Message } from '../types/message/index.js'
15
+ import { type Message, isTurnContextEntry } from '../types/message/index.js'
16
16
  import type { LLMToolSchema } from '../types/tool/index.js'
17
17
  import { TRIGGER_BUFFER_TOKENS, TRIGGER_OUTPUT_RESERVE_CAP_TOKENS } from './context-window.js'
18
18
  import { estimateMessageTokens, estimateTextTokens } from './token-estimate.js'
@@ -166,6 +166,9 @@ function breakdownMessages(messages: readonly Message[]): ContextMessageBreakdow
166
166
  const name = nameOfCall.get(message.toolCallId) ?? 'unknown'
167
167
  toolResultsByType[name] = (toolResultsByType[name] ?? 0) + tokensOfContent(message)
168
168
  } else if (message.role === 'user') {
169
+ // Recorded context is what the host recalled for the model, not
170
+ // something the operator said, so it is counted under memory.
171
+ if (isTurnContextEntry(message)) continue
169
172
  userTokens += tokensOfContent(message)
170
173
  }
171
174
  }
@@ -175,13 +178,15 @@ function breakdownMessages(messages: readonly Message[]): ContextMessageBreakdow
175
178
  /** Split a window into the parts that fill it. */
176
179
  export function analyzeContextUsage(input: ContextUsageInput): ContextBreakdown {
177
180
  const windowTokens = Math.max(0, Math.round(input.windowTokens))
181
+ const recorded = (input.messages ?? []).filter(isTurnContextEntry)
182
+ const recordedTokens = recorded.reduce((sum, message) => sum + tokensOfContent(message), 0)
178
183
  const fixed: Record<(typeof CONTEXT_CATEGORY_ORDER)[number], number> = {
179
184
  'system-prompt': nonNegative(input.systemPromptTokens),
180
185
  'system-tools': nonNegative(input.systemToolTokens),
181
186
  'mcp-tools': nonNegative(input.mcpToolTokens),
182
187
  'mcp-instructions': nonNegative(input.mcpInstructionTokens),
183
188
  agents: nonNegative(input.agentTokens),
184
- memory: nonNegative(input.memoryTokens),
189
+ memory: nonNegative(input.memoryTokens) + recordedTokens,
185
190
  skills: nonNegative(input.skillTokens),
186
191
  messages: 0,
187
192
  }
@@ -195,7 +200,10 @@ export function analyzeContextUsage(input: ContextUsageInput): ContextBreakdown
195
200
  const rawMessages =
196
201
  measured > 0
197
202
  ? Math.max(0, measured - fixedTotal)
198
- : messages.reduce((sum, message) => sum + tokensOfContent(message), 0)
203
+ : messages.reduce(
204
+ (sum, message) => (isTurnContextEntry(message) ? sum : sum + tokensOfContent(message)),
205
+ 0,
206
+ )
199
207
  fixed.messages = Math.min(rawMessages, Math.max(0, windowTokens - fixedTotal - bufferTokens))
200
208
 
201
209
  const totalTokens = measured > 0 ? Math.max(measured, fixedTotal) : fixedTotal + rawMessages
@@ -55,7 +55,9 @@ function isStandingContext(message: Message): boolean {
55
55
  return (
56
56
  source?.type === 'project-instructions' ||
57
57
  (source?.type === 'runtime-context' &&
58
- (source.kind === 'step-context' || source.kind === 'reminder'))
58
+ (source.kind === 'step-context' ||
59
+ source.kind === 'reminder' ||
60
+ source.kind === 'turn-context'))
59
61
  )
60
62
  }
61
63
 
@@ -1227,6 +1227,13 @@ export {
1227
1227
  selectAssistantText,
1228
1228
  createProjectInstructionMessage,
1229
1229
  createRuntimeContextMessage,
1230
+ createTurnContextEntry,
1231
+ isTurnContextEntry,
1232
+ lastPromptText,
1233
+ turnContextEntries,
1234
+ isTurnContextKey,
1235
+ turnContextKey,
1236
+ MAX_TURN_CONTEXT_KEY_LENGTH,
1230
1237
  createSystemMessage,
1231
1238
  createToolMessage,
1232
1239
  hasNonTextBlocks,
@@ -72,7 +72,11 @@ import {
72
72
  runPreToolHook,
73
73
  unknownToolMessage,
74
74
  } from './executor/tool-call-admission.js'
75
- import { describeVisibleFileEvidence } from './file-evidence-context.js'
75
+ import {
76
+ type FileEvidence,
77
+ describeVisibleFileEvidence,
78
+ visibleFileEvidence,
79
+ } from './file-evidence-context.js'
76
80
  import { seedObservationLedger } from './file-evidence-seed.js'
77
81
  import { DEFAULT_TOOL_RESULT_GUARDRAILS } from './guardrail-presets.js'
78
82
  import { declaredWriteEscalation, shellEscalations } from './path-escalation.js'
@@ -845,7 +849,21 @@ export class ToolExecutor {
845
849
  })
846
850
  }
847
851
 
848
- /** Request-only evidence from the same ledger used by mutation admission. No filesystem I/O. */
852
+ /**
853
+ * The entries that hold now, from the same ledger used by mutation
854
+ * admission. No filesystem I/O. The loop records the difference from what
855
+ * the conversation already says.
856
+ */
857
+ fileEvidenceEntries(messages: readonly Message[]): FileEvidence[] {
858
+ return visibleFileEvidence(
859
+ messages,
860
+ this.fileReadTracker,
861
+ this.config.workingDirectory,
862
+ this.sandboxed,
863
+ )
864
+ }
865
+
866
+ /** The whole of the evidence as one text, from the same ledger. No filesystem I/O. */
849
867
  describeFileEvidence(messages: readonly Message[]): string | undefined {
850
868
  return describeVisibleFileEvidence(
851
869
  messages,
@@ -29,14 +29,13 @@ import {
29
29
  */
30
30
  const MAX_RECEIPT_UNITS = 32_000
31
31
 
32
- /** The heading of the file-evidence block; a later block under it replaces an earlier one. */
33
- export const FILE_EVIDENCE_HEADING =
34
- 'Visible file evidence (as of this step; a later block with this heading replaces this one)'
32
+ /** The words every file-evidence entry opens with. */
33
+ export const FILE_EVIDENCE_HEADING = 'Visible file evidence'
35
34
 
36
- /** Said when the entries of an earlier block no longer hold and none replaces them. */
37
- export const FILE_EVIDENCE_NONE = `${FILE_EVIDENCE_HEADING}: no entry holds any longer.`
35
+ /** Starts the line of an entry that names the paths whose earlier entries no longer hold. */
36
+ const NO_LONGER_HOLDS = 'No longer holds: '
38
37
 
39
- interface FileEvidence {
38
+ export interface FileEvidence {
40
39
  readonly path: string
41
40
  /** Absent on the write-rooted entries; `'read'` on a body that is a receipt. */
42
41
  readonly kind?: 'read'
@@ -46,14 +45,14 @@ interface FileEvidence {
46
45
  }
47
46
 
48
47
  /** Join visible call bodies, successful receipts and this executor's observation ledger. */
49
- export function describeVisibleFileEvidence(
48
+ export function visibleFileEvidence(
50
49
  messages: readonly Message[],
51
50
  tracker: FileReadTracker,
52
51
  workingDirectory: string,
53
52
  sandboxed: boolean,
54
- ): string | undefined {
53
+ ): FileEvidence[] {
55
54
  // Execution-owned witnesses survive transparent wrappers; a name alone proves nothing.
56
- if (!tracker.writeCallId || !tracker.fingerprint) return
55
+ if (!tracker.writeCallId || !tracker.fingerprint) return []
57
56
  // Lexical, as this projection has always looked entries up: a spelling that
58
57
  // does not resolve to the tool's canonical key finds nothing and the path is
59
58
  // simply not admitted. Writing the ledger is the side that has to key the
@@ -85,8 +84,77 @@ export function describeVisibleFileEvidence(
85
84
  // Malformed retained inputs or a custom tracker cannot establish evidence.
86
85
  }
87
86
  }
88
- if (files.size === 0) return
89
- return `${FILE_EVIDENCE_HEADING}: each entry's current body is the complete body in the named successful write call, with the edit calls in editsInCalls — when present — applied in that order. An entry marked kind:"read" instead names a successful read call whose own receipt shows the file WHOLE, rendered with every line behind its own N<tab> prefix; that receipt is the body, and such an entry never carries editsInCalls. This runtime performed that reconstruction and checked it against its own file observation; it is not a derivation left to you. Reuse the body for a targeted edit; a read solely to recall it is unnecessary. This is NOT a fresh disk check, and after a resume the observation behind an entry may itself have been rebuilt from this conversation's own earlier calls rather than made while this process ran. Built-in edit/write still compare the disk body at mutation admission and refuse observed drift; on refusal inspect the current file and replan. Missing entries establish nothing.\n${JSON.stringify([...files.values()])}`
87
+ return [...files.values()]
88
+ }
89
+
90
+ const FILE_EVIDENCE_GUIDANCE = `each entry names a file (path), the successful write call that holds its complete current body (bodyInCall, that call's id), the edit calls to apply to that body in order (editsInCalls, when present), and a short code for the file as this runtime last observed it (observedFingerprint, which changes when the content does). An entry marked kind:"read" instead names a successful read call whose own receipt shows the whole file, every line behind its own N<tab> prefix; that receipt is the body, and such an entry never carries edit calls. The runtime did that reconstruction and checked it against its own file observation. Reuse the body for a targeted edit; a read only to recall it is unnecessary. This is not a fresh disk check, and after a resume the observation behind an entry may have been rebuilt from this conversation's earlier calls rather than made while this process ran. The built-in edit and write tools still compare the disk body when they run and refuse on drift; on refusal, inspect the current file and replan. Missing entries establish nothing. An entry for a path replaces every earlier entry for that path, and a path listed under "No longer holds" has no entry any more.`
91
+
92
+ /** The whole of what holds now: every entry, with the guidance for reading them. */
93
+ export function describeVisibleFileEvidence(
94
+ messages: readonly Message[],
95
+ tracker: FileReadTracker,
96
+ workingDirectory: string,
97
+ sandboxed: boolean,
98
+ ): string | undefined {
99
+ const entries = visibleFileEvidence(messages, tracker, workingDirectory, sandboxed)
100
+ if (entries.length === 0) return
101
+ return `${FILE_EVIDENCE_HEADING}: ${FILE_EVIDENCE_GUIDANCE}\n${JSON.stringify(entries)}`
102
+ }
103
+
104
+ /**
105
+ * The entries an earlier record still holds, by path, as the JSON each was
106
+ * written with. Read from the record's text, in order, so a later entry for a
107
+ * path replaces an earlier one and a retracted path is gone.
108
+ */
109
+ function heldFileEvidence(recorded: readonly string[]): Map<string, string> {
110
+ const held = new Map<string, string>()
111
+ for (const text of recorded) {
112
+ for (const line of text.split('\n')) {
113
+ try {
114
+ if (line.startsWith(NO_LONGER_HOLDS)) {
115
+ const paths: unknown = JSON.parse(line.slice(NO_LONGER_HOLDS.length))
116
+ if (Array.isArray(paths))
117
+ for (const path of paths) if (typeof path === 'string') held.delete(path)
118
+ } else if (line.startsWith('[')) {
119
+ const entries: unknown = JSON.parse(line)
120
+ if (Array.isArray(entries))
121
+ for (const entry of entries)
122
+ if (typeof entry?.path === 'string') held.set(entry.path, JSON.stringify(entry))
123
+ }
124
+ } catch {
125
+ // a line of the record that is not an entry list
126
+ }
127
+ }
128
+ }
129
+ return held
130
+ }
131
+
132
+ /**
133
+ * What to record now about the files, given what holds (`current`) and what
134
+ * the entries already in the conversation say (`recorded`, oldest first):
135
+ * only the entries that are new or changed, and the paths whose earlier entry
136
+ * no longer holds. An earlier entry is never edited; this says what replaces
137
+ * it. The first record of a conversation carries the guidance for reading
138
+ * entries, later ones do not repeat it. Nothing to say returns undefined.
139
+ */
140
+ export function recordFileEvidence(
141
+ current: readonly FileEvidence[],
142
+ recorded: readonly string[],
143
+ ): string | undefined {
144
+ const held = heldFileEvidence(recorded)
145
+ const changed = current.filter((entry) => held.get(entry.path) !== JSON.stringify(entry))
146
+ const now = new Set(current.map((entry) => entry.path))
147
+ const gone = [...held.keys()].filter((path) => !now.has(path))
148
+ if (changed.length === 0 && gone.length === 0) return
149
+ const lead =
150
+ recorded.length === 0
151
+ ? `${FILE_EVIDENCE_HEADING}: ${FILE_EVIDENCE_GUIDANCE}`
152
+ : `${FILE_EVIDENCE_HEADING}, changed since the last entry. An entry for a path replaces the earlier entries for that path.`
153
+ return [
154
+ lead,
155
+ ...(gone.length > 0 ? [`${NO_LONGER_HOLDS}${JSON.stringify(gone)}`] : []),
156
+ ...(changed.length > 0 ? [JSON.stringify(changed)] : []),
157
+ ].join('\n')
90
158
  }
91
159
 
92
160
  /** A full body that arrived whole in one call and is still the file's body. */
@@ -64,6 +64,7 @@ import {
64
64
  type AssistantMessage,
65
65
  type Message,
66
66
  createSystemMessage,
67
+ lastPromptText,
67
68
  } from '../../types/message/index.js'
68
69
  import type { AgentPersona } from '../../types/persona/index.js'
69
70
  import type { LLMProvider } from '../../types/provider/index.js'
@@ -2028,7 +2029,7 @@ export async function* query(params: QueryParams): AsyncGenerator<SessionEvent,
2028
2029
  {
2029
2030
  turnId: ctx.turnId,
2030
2031
  sessionId: params.sessionId,
2031
- prompt: lastUserPrompt(initialMessages),
2032
+ prompt: lastPromptText(initialMessages),
2032
2033
  signal: ctx.abortController.signal,
2033
2034
  },
2034
2035
  eventTranslator.emitEvent,
@@ -2893,15 +2894,6 @@ async function settleAbandonedTurn(
2893
2894
  }
2894
2895
  }
2895
2896
 
2896
- /** The text of the newest user turn, which is what a prompt hook is asked about. */
2897
- function lastUserPrompt(messages: readonly Message[]): string {
2898
- for (let i = messages.length - 1; i >= 0; i--) {
2899
- const m = messages[i]
2900
- if (m?.role === 'user' && typeof m.content === 'string') return m.content
2901
- }
2902
- return ''
2903
- }
2904
-
2905
2897
  type DrainQueryParams = Omit<QueryParams, 'resumeHandler'> & {
2906
2898
  resumeHandler?: ResumeHandler
2907
2899
  }