@deepagents/context 4.3.0 → 6.0.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 (122) hide show
  1. package/README.md +51 -7
  2. package/dist/browser.d.ts +5 -3
  3. package/dist/browser.d.ts.map +1 -1
  4. package/dist/browser.js +69 -43
  5. package/dist/browser.js.map +3 -3
  6. package/dist/index.d.ts +1 -0
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +3615 -2905
  9. package/dist/index.js.map +4 -4
  10. package/dist/lib/advisor.d.ts +2 -2
  11. package/dist/lib/agent.d.ts +22 -10
  12. package/dist/lib/agent.d.ts.map +1 -1
  13. package/dist/lib/chain-summary.d.ts +8 -0
  14. package/dist/lib/chain-summary.d.ts.map +1 -1
  15. package/dist/lib/chat.d.ts +2 -2
  16. package/dist/lib/chat.d.ts.map +1 -1
  17. package/dist/lib/engine.d.ts +45 -75
  18. package/dist/lib/engine.d.ts.map +1 -1
  19. package/dist/lib/fragments/plan.d.ts +13 -0
  20. package/dist/lib/fragments/plan.d.ts.map +1 -0
  21. package/dist/lib/fragments/reminders/src/evaluate.d.ts +1 -1
  22. package/dist/lib/fragments/reminders/src/index.d.ts +1 -1
  23. package/dist/lib/fragments/reminders/src/index.d.ts.map +1 -1
  24. package/dist/lib/fragments/reminders/src/predicates/combinators.d.ts +8 -8
  25. package/dist/lib/fragments/reminders/src/predicates/combinators.d.ts.map +1 -1
  26. package/dist/lib/fragments/reminders/src/predicates/once.d.ts +1 -1
  27. package/dist/lib/fragments/reminders/src/predicates/once.d.ts.map +1 -1
  28. package/dist/lib/fragments/reminders/src/predicates/tool.d.ts +35 -2
  29. package/dist/lib/fragments/reminders/src/predicates/tool.d.ts.map +1 -1
  30. package/dist/lib/fragments/reminders/src/reminders.d.ts +9 -29
  31. package/dist/lib/fragments/reminders/src/reminders.d.ts.map +1 -1
  32. package/dist/lib/fragments/reminders/src/types.d.ts +42 -15
  33. package/dist/lib/fragments/reminders/src/types.d.ts.map +1 -1
  34. package/dist/lib/guardrail.d.ts +2 -2
  35. package/dist/lib/guardrail.d.ts.map +1 -1
  36. package/dist/lib/repair.d.ts +2 -2
  37. package/dist/lib/sandbox/agent-os-sandbox.d.ts +1 -1
  38. package/dist/lib/sandbox/agent-os-sandbox.d.ts.map +1 -1
  39. package/dist/lib/sandbox/apple-container-sandbox.d.ts +2 -0
  40. package/dist/lib/sandbox/apple-container-sandbox.d.ts.map +1 -1
  41. package/dist/lib/sandbox/bash-exception.d.ts +1 -1
  42. package/dist/lib/sandbox/bash-exception.d.ts.map +1 -1
  43. package/dist/lib/sandbox/bash-tool.d.ts +7 -42
  44. package/dist/lib/sandbox/bash-tool.d.ts.map +1 -1
  45. package/dist/lib/sandbox/container-sandbox.d.ts +2 -2
  46. package/dist/lib/sandbox/container-sandbox.d.ts.map +1 -1
  47. package/dist/lib/sandbox/daytona-sandbox.d.ts.map +1 -1
  48. package/dist/lib/sandbox/docker-sandbox.d.ts +2 -3
  49. package/dist/lib/sandbox/docker-sandbox.d.ts.map +1 -1
  50. package/dist/lib/sandbox/index.d.ts +0 -3
  51. package/dist/lib/sandbox/index.d.ts.map +1 -1
  52. package/dist/lib/sandbox/installers/installer.d.ts +1 -1
  53. package/dist/lib/sandbox/installers/installer.d.ts.map +1 -1
  54. package/dist/lib/sandbox/microsandbox-sandbox.d.ts.map +1 -1
  55. package/dist/lib/sandbox/strace/file-changes.d.ts +4 -10
  56. package/dist/lib/sandbox/strace/file-changes.d.ts.map +1 -1
  57. package/dist/lib/sandbox/types.d.ts +79 -32
  58. package/dist/lib/sandbox/types.d.ts.map +1 -1
  59. package/dist/lib/skills/fragments.d.ts +11 -10
  60. package/dist/lib/skills/fragments.d.ts.map +1 -1
  61. package/dist/lib/skills/frontmatter.d.ts +16 -0
  62. package/dist/lib/skills/frontmatter.d.ts.map +1 -0
  63. package/dist/lib/skills/index.d.ts +11 -10
  64. package/dist/lib/skills/index.d.ts.map +1 -1
  65. package/dist/lib/skills/skill-reminder.d.ts +2 -2
  66. package/dist/lib/skills/skill-reminder.d.ts.map +1 -1
  67. package/dist/lib/skills/types.d.ts +5 -23
  68. package/dist/lib/skills/types.d.ts.map +1 -1
  69. package/dist/lib/store/postgres.store.d.ts +2 -2
  70. package/dist/lib/store/postgres.store.d.ts.map +1 -1
  71. package/dist/lib/store/sqlite.store.d.ts +2 -2
  72. package/dist/lib/store/sqlite.store.d.ts.map +1 -1
  73. package/dist/lib/store/sqlserver.store.d.ts +2 -2
  74. package/dist/lib/store/sqlserver.store.d.ts.map +1 -1
  75. package/dist/lib/store/store.d.ts +5 -4
  76. package/dist/lib/store/store.d.ts.map +1 -1
  77. package/dist/lib/stream/postgres.stream-store.d.ts +2 -1
  78. package/dist/lib/stream/postgres.stream-store.d.ts.map +1 -1
  79. package/dist/lib/stream/sqlite.stream-store.d.ts +2 -1
  80. package/dist/lib/stream/sqlite.stream-store.d.ts.map +1 -1
  81. package/dist/lib/stream/stream-manager.d.ts +4 -0
  82. package/dist/lib/stream/stream-manager.d.ts.map +1 -1
  83. package/dist/lib/stream/stream-store.d.ts +16 -0
  84. package/dist/lib/stream/stream-store.d.ts.map +1 -1
  85. package/dist/lib/telemetry/console-telemetry.d.ts +8 -0
  86. package/dist/lib/telemetry/console-telemetry.d.ts.map +1 -0
  87. package/dist/lib/telemetry/create-telemetry-integration.d.ts +6 -0
  88. package/dist/lib/telemetry/create-telemetry-integration.d.ts.map +1 -0
  89. package/dist/lib/telemetry/file/file-telemetry.d.ts +9 -0
  90. package/dist/lib/telemetry/file/file-telemetry.d.ts.map +1 -0
  91. package/dist/lib/telemetry/file/index.d.ts +2 -0
  92. package/dist/lib/telemetry/file/index.d.ts.map +1 -0
  93. package/dist/lib/telemetry/file/index.js +307 -0
  94. package/dist/lib/telemetry/file/index.js.map +7 -0
  95. package/dist/lib/telemetry/index.d.ts +3 -0
  96. package/dist/lib/telemetry/index.d.ts.map +1 -0
  97. package/dist/lib/telemetry/index.js +291 -0
  98. package/dist/lib/telemetry/index.js.map +7 -0
  99. package/dist/lib/telemetry/redact-telemetry-event.d.ts +2 -0
  100. package/dist/lib/telemetry/redact-telemetry-event.d.ts.map +1 -0
  101. package/dist/lib/telemetry/safe-serialize.d.ts +8 -0
  102. package/dist/lib/telemetry/safe-serialize.d.ts.map +1 -0
  103. package/dist/lib/tracing/index.js +47 -113
  104. package/dist/lib/tracing/index.js.map +2 -2
  105. package/dist/lib/tracing/openai-traces-integration.d.ts +2 -2
  106. package/dist/lib/tracing/openai-traces-integration.d.ts.map +1 -1
  107. package/dist/lib/tracing/serialization.d.ts.map +1 -1
  108. package/package.json +33 -22
  109. package/dist/lib/sandbox/abort.d.ts +0 -24
  110. package/dist/lib/sandbox/abort.d.ts.map +0 -1
  111. package/dist/lib/sandbox/bash-meta.d.ts +0 -10
  112. package/dist/lib/sandbox/bash-meta.d.ts.map +0 -1
  113. package/dist/lib/sandbox/upload-skills.d.ts +0 -20
  114. package/dist/lib/sandbox/upload-skills.d.ts.map +0 -1
  115. package/dist/lib/sandbox/walk.d.ts +0 -17
  116. package/dist/lib/sandbox/walk.d.ts.map +0 -1
  117. package/dist/lib/skills/loader.d.ts +0 -28
  118. package/dist/lib/skills/loader.d.ts.map +0 -1
  119. package/dist/spec/test/global-setup.d.ts +0 -4
  120. package/dist/spec/test/global-setup.d.ts.map +0 -1
  121. package/dist/spec/test/helpers/sqlite-container.d.ts +0 -19
  122. package/dist/spec/test/helpers/sqlite-container.d.ts.map +0 -1
@@ -1,7 +1,7 @@
1
- import type { LanguageModelV3 } from '@ai-sdk/provider';
1
+ import type { LanguageModelV4 } from '@ai-sdk/provider';
2
2
  import { type LanguageModelUsage, type Tool } from 'ai';
3
3
  import type { ContextFragment } from './fragments.ts';
4
- export type AgentModel = LanguageModelV3;
4
+ export type AgentModel = LanguageModelV4;
5
5
  export type AdvisorErrorCode = 'max_uses_exceeded' | 'too_many_requests' | 'overloaded' | 'prompt_too_long' | 'execution_time_exceeded' | 'unavailable';
6
6
  export interface AdvisorUsage {
7
7
  calls: number;
@@ -1,6 +1,6 @@
1
1
  import type { JSONObject } from '@ai-sdk/provider';
2
- import { type FlexibleSchema, type GenerateTextResult, type InferSchema, Output, type StreamTextResult, type StreamTextTransform, type Tool, type ToolChoice, type ToolSet, generateText } from 'ai';
3
- import { type ContextEngine } from '../index.ts';
2
+ import { type FlexibleSchema, type GenerateTextResult, type InferSchema, Output, type StreamTextResult, type StreamTextTransform, type Tool, type ToolChoice, type ToolSet, generateText, streamText } from 'ai';
3
+ import { type ContextEngine, type PrepareStepInputProvider } from '../index.ts';
4
4
  import { type AdvisorResult, type AgentModel, type AsAdvisorOptions } from './advisor.ts';
5
5
  import { type Guardrail } from './guardrail.ts';
6
6
  import type { AgentSandbox } from './sandbox/types.ts';
@@ -9,7 +9,7 @@ export interface SubagentToolInput {
9
9
  input: string;
10
10
  output?: string;
11
11
  }
12
- export type OutputExtractorFn<T = string> = (output: GenerateTextResult<ToolSet, any>) => T | Promise<T>;
12
+ export type OutputExtractorFn<T = string> = (output: GenerateTextResult<ToolSet, any, any>) => T | Promise<T>;
13
13
  export interface CreateAgent<CIn, COut = CIn> {
14
14
  name: string;
15
15
  sandbox: AgentSandbox;
@@ -18,8 +18,13 @@ export interface CreateAgent<CIn, COut = CIn> {
18
18
  model?: AgentModel;
19
19
  toolChoice?: ToolChoice<Record<string, COut>>;
20
20
  providerOptions?: Parameters<typeof generateText>[0]['providerOptions'];
21
- experimental_telemetry?: Parameters<typeof generateText>[0]['experimental_telemetry'];
22
- logging?: boolean;
21
+ telemetry?: Parameters<typeof generateText>[0]['telemetry'];
22
+ /**
23
+ * Ends the agent loop. Defaults to {@link DEFAULT_STOP_WHEN}. Raise it for a
24
+ * long agentic run that would otherwise stop mid-task; lower it to bound cost
25
+ * on an untrusted prompt.
26
+ */
27
+ stopWhen?: Parameters<typeof streamText>[0]['stopWhen'];
23
28
  /**
24
29
  * Guardrails to apply during streaming.
25
30
  * Each guardrail inspects text chunks and can trigger self-correction retries.
@@ -29,7 +34,14 @@ export interface CreateAgent<CIn, COut = CIn> {
29
34
  * Maximum number of retry attempts when guardrails fail (default: 3).
30
35
  */
31
36
  maxGuardrailRetries?: number;
37
+ /** Supplies durable user input before sampling and at safe step boundaries. */
38
+ prepareStepInput?: PrepareStepInputProvider;
32
39
  }
40
+ /**
41
+ * Default ceiling for the agent loop. Kept in one place so the entry points
42
+ * cannot drift; callers override it with `stopWhen` on `agent()`.
43
+ */
44
+ export declare const DEFAULT_STOP_WHEN: import("ai").StopCondition<any, any>;
33
45
  declare class Agent<CIn, COut = CIn> {
34
46
  #private;
35
47
  readonly tools: ToolSet;
@@ -39,7 +51,7 @@ declare class Agent<CIn, COut = CIn> {
39
51
  constructor(options: CreateAgent<CIn, COut>);
40
52
  generate<COut, CIn = COut>(contextVariables: CIn, config?: {
41
53
  abortSignal?: AbortSignal;
42
- }): Promise<GenerateTextResult<ToolSet, Output.Output<string, string, unknown>>>;
54
+ }): Promise<GenerateTextResult<ToolSet, any, Output.Output<string, string, unknown>>>;
43
55
  /**
44
56
  * Stream a response from the agent.
45
57
  *
@@ -61,14 +73,14 @@ declare class Agent<CIn, COut = CIn> {
61
73
  abortSignal?: AbortSignal;
62
74
  transform?: StreamTextTransform<ToolSet> | StreamTextTransform<ToolSet>[];
63
75
  maxRetries?: number;
64
- }): Promise<StreamTextResult<ToolSet, never>>;
76
+ }): Promise<StreamTextResult<ToolSet, any, any>>;
65
77
  asTool<T = string>(props?: {
66
78
  toolDescription?: string;
67
79
  outputExtractor?: OutputExtractorFn<T>;
68
80
  /** Not sent to the model; surfaces on tool call/result and UI message parts */
69
81
  metadata?: JSONObject;
70
82
  toModelOutput?: Tool<SubagentToolInput, T | string>['toModelOutput'];
71
- }): Tool<SubagentToolInput, string | T>;
83
+ }): Tool<SubagentToolInput, string | T, any>;
72
84
  asAdvisor(options?: AsAdvisorOptions): AdvisorResult;
73
85
  clone(overrides?: Partial<CreateAgent<CIn, COut>>): Agent<CIn, COut>;
74
86
  }
@@ -87,7 +99,7 @@ export interface StructuredOutputOptions<TSchema extends FlexibleSchema> {
87
99
  */
88
100
  sandbox?: AgentSandbox;
89
101
  providerOptions?: Parameters<typeof generateText>[0]['providerOptions'];
90
- experimental_telemetry?: Parameters<typeof generateText>[0]['experimental_telemetry'];
102
+ telemetry?: Parameters<typeof generateText>[0]['telemetry'];
91
103
  tools?: ToolSet;
92
104
  }
93
105
  /**
@@ -123,7 +135,7 @@ export interface StructuredOutputResult<TSchema extends FlexibleSchema> {
123
135
  stream<CIn>(contextVariables?: CIn, config?: {
124
136
  abortSignal?: AbortSignal;
125
137
  transform?: StreamTextTransform<ToolSet> | StreamTextTransform<ToolSet>[];
126
- }): Promise<StreamTextResult<ToolSet, Output.Output<unknown, unknown, unknown>>>;
138
+ }): Promise<StreamTextResult<ToolSet, any, Output.Output<unknown, unknown, unknown>>>;
127
139
  }
128
140
  export declare function structuredOutput<TSchema extends FlexibleSchema>(options: StructuredOutputOptions<TSchema>): StructuredOutputResult<TSchema>;
129
141
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/lib/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/lib/agent.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,14 @@ export interface ChainSummary {
8
8
  lastMessage?: UIMessage;
9
9
  lastAssistantMessage?: UIMessage;
10
10
  lastAssistantMessages?: UIMessage[];
11
+ /**
12
+ * One entry per assistant REPLY: the segments a reply was carved into by
13
+ * firing reminders, merged back together. A reply is everything the assistant
14
+ * produced in answer to one real user message (synthetic reminder users do
15
+ * not open a new reply). Window predicates count these, so their answer does
16
+ * not change when an unrelated reminder starts firing.
17
+ */
18
+ lastAssistantReplies?: UIMessage[];
11
19
  firedOnceIds: Set<string>;
12
20
  }
13
21
  export declare class ChainSummaryBuilder {
@@ -1 +1 @@
1
- {"version":3,"file":"chain-summary.d.ts","sourceRoot":"","sources":["../../src/lib/chain-summary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAEpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAKtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,oBAAoB,CAAC,EAAE,SAAS,CAAC;IACjC,qBAAqB,CAAC,EAAE,SAAS,EAAE,CAAC;IACpC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC3B;AAED,qBAAa,mBAAmB;;IAS9B,YAAY,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAyCpC,aAAa,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAQ9C,KAAK,IAAI,YAAY;CAWtB"}
1
+ {"version":3,"file":"chain-summary.d.ts","sourceRoot":"","sources":["../../src/lib/chain-summary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAEpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAKtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,oBAAoB,CAAC,EAAE,SAAS,CAAC;IACjC,qBAAqB,CAAC,EAAE,SAAS,EAAE,CAAC;IACpC;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,SAAS,EAAE,CAAC;IACnC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC3B;AAWD,qBAAa,mBAAmB;;IAW9B,YAAY,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAmDpC,aAAa,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAQ9C,KAAK,IAAI,YAAY;CAYtB"}
@@ -10,9 +10,9 @@ export interface ChatAgentLike<CIn> {
10
10
  abortSignal?: AbortSignal;
11
11
  transform?: StreamTextTransform<ToolSet> | StreamTextTransform<ToolSet>[];
12
12
  maxRetries?: number;
13
- }): Promise<StreamTextResult<ToolSet, never>>;
13
+ }): Promise<StreamTextResult<ToolSet, any, any>>;
14
14
  }
15
- export type ChatMessageMetadata = NonNullable<Parameters<StreamTextResult<ToolSet, never>['toUIMessageStream']>[0]>['messageMetadata'];
15
+ export type ChatMessageMetadata = NonNullable<Parameters<StreamTextResult<ToolSet, any, any>['toUIMessageStream']>[0]>['messageMetadata'];
16
16
  export declare const defaultChatMessageMetadata: NonNullable<ChatMessageMetadata>;
17
17
  export interface ChatOptions<CIn> {
18
18
  contextVariables?: CIn;
@@ -1 +1 @@
1
- {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/lib/chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EAExB,KAAK,OAAO,EACZ,KAAK,SAAS,EAGf,MAAM,IAAI,CAAC;AAEZ,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvD,MAAM,WAAW,aAAa,CAAC,GAAG;IAChC,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,CACJ,gBAAgB,EAAE,GAAG,EACrB,MAAM,CAAC,EAAE;QACP,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,SAAS,CAAC,EAAE,mBAAmB,CAAC,OAAO,CAAC,GAAG,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GACA,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;CAC9C;AAED,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAC3C,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CACrE,CAAC,iBAAiB,CAAC,CAAC;AAErB,eAAO,MAAM,0BAA0B,EAAE,WAAW,CAAC,mBAAmB,CAUvE,CAAC;AAEF,MAAM,WAAW,WAAW,CAAC,GAAG;IAC9B,gBAAgB,CAAC,EAAE,GAAG,CAAC;IACvB,SAAS,CAAC,EAAE,mBAAmB,CAAC,OAAO,CAAC,GAAG,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1E,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IACrC,eAAe,CAAC,EAAE,mBAAmB,CAAC;IACtC,sBAAsB,CAAC,EAAE,CACvB,OAAO,EAAE,SAAS,KAEhB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,SAAS,GACT,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC;CAClD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,IAAI,CAAC,GAAG,EAC5B,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,EACzB,OAAO,GAAE,WAAW,CAAC,GAAG,CAAM,iIA8E/B"}
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/lib/chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EAExB,KAAK,OAAO,EACZ,KAAK,SAAS,EAGf,MAAM,IAAI,CAAC;AAEZ,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvD,MAAM,WAAW,aAAa,CAAC,GAAG;IAChC,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,CACJ,gBAAgB,EAAE,GAAG,EACrB,MAAM,CAAC,EAAE;QACP,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,SAAS,CAAC,EAAE,mBAAmB,CAAC,OAAO,CAAC,GAAG,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GACA,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;CACjD;AAED,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAC3C,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CACxE,CAAC,iBAAiB,CAAC,CAAC;AAErB,eAAO,MAAM,0BAA0B,EAAE,WAAW,CAAC,mBAAmB,CAUvE,CAAC;AAEF,MAAM,WAAW,WAAW,CAAC,GAAG;IAC9B,gBAAgB,CAAC,EAAE,GAAG,CAAC;IACvB,SAAS,CAAC,EAAE,mBAAmB,CAAC,OAAO,CAAC,GAAG,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1E,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IACrC,eAAe,CAAC,EAAE,mBAAmB,CAAC;IACtC,sBAAsB,CAAC,EAAE,CACvB,OAAO,EAAE,SAAS,KAEhB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,SAAS,GACT,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC;CAClD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,IAAI,CAAC,GAAG,EAC5B,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,EACzB,OAAO,GAAE,WAAW,CAAC,GAAG,CAAM,iIAmF/B"}
@@ -6,7 +6,7 @@ import { type ContextRenderer } from './renderers/abstract.renderer.ts';
6
6
  import { type ValueResolver } from './resolvers/index.ts';
7
7
  import type { AgentSandbox } from './sandbox/types.ts';
8
8
  import { type SaveResult } from './save/save-pipeline.ts';
9
- import type { SkillPathMapping } from './skills/types.ts';
9
+ import type { AvailableSkill } from './skills/types.ts';
10
10
  import { type BranchInfo, type CheckpointInfo, ContextStore, type GraphData, type MessageData, type StoredChatData } from './store/store.ts';
11
11
  export type { SaveResult } from './save/save-pipeline.ts';
12
12
  export { HeadConflictError } from './save/save-pipeline.ts';
@@ -50,6 +50,11 @@ export interface ContextEngineOptions {
50
50
  /** Custom resolver chain (defaults to async, generator, function, promise, iterable) */
51
51
  resolvers?: ValueResolver[];
52
52
  }
53
+ export type PrepareStepInputProvider = () => Array<UIMessage & {
54
+ role: 'user';
55
+ }> | undefined | Promise<Array<UIMessage & {
56
+ role: 'user';
57
+ }> | undefined>;
53
58
  /**
54
59
  * Options for context inspection.
55
60
  */
@@ -142,6 +147,14 @@ export declare class ContextEngine {
142
147
  * Return the model-ready conversation: persisted chain plus pending fragments,
143
148
  * with empty assistant placeholders filtered out.
144
149
  *
150
+ * A pending fragment that carries the id of an already-stored message is an
151
+ * UPDATE to that message, not a new one — the store upserts by id, and this
152
+ * must agree. Both chat() and the guardrail-retry path call
153
+ * writeAssistantSegment for the same step, so the streamed assistant is
154
+ * routinely persisted while a fragment for it is still pending; appending
155
+ * blindly duplicated it in the prompt and broke store/prompt parity on the
156
+ * next turn.
157
+ *
145
158
  * For id-lookup use `headMessage()` instead — that one keeps placeholders.
146
159
  */
147
160
  getMessages(): Promise<UIMessage[]>;
@@ -171,7 +184,7 @@ export declare class ContextEngine {
171
184
  * Add fragments to the context.
172
185
  *
173
186
  * - Message fragments (user/assistant) are queued for persistence
174
- * - Non-message fragments (role/hint) are kept in memory for system prompt
187
+ * - Non-message fragments are cloned so lazy resolution stays engine-local
175
188
  */
176
189
  set(...fragments: ContextFragment[]): this;
177
190
  unset(fragmentId: string): void;
@@ -194,7 +207,7 @@ export declare class ContextEngine {
194
207
  * .set(role('You are helpful'), user('Hello'));
195
208
  *
196
209
  * const { systemPrompt, messages } = await context.resolve();
197
- * await generateText({ system: systemPrompt, messages });
210
+ * await generateText({ instructions: systemPrompt, messages });
198
211
  * ```
199
212
  */
200
213
  resolve(options: ResolveOptions): Promise<ResolveResult>;
@@ -216,62 +229,36 @@ export declare class ContextEngine {
216
229
  branch?: boolean;
217
230
  }): Promise<SaveResult>;
218
231
  /**
219
- * Build the `prepareStep` hook that injects steer reminders mid-loop.
220
- *
221
- * Semantics are "inject once, persist": when a steer reminder's predicate
222
- * fires (only after the model has produced ≥1 step with content — the mid-loop
223
- * gate), its `<system-reminder>` user message is spliced into the model prompt
224
- * at the step boundary where it fired AND re-spliced on every subsequent step,
225
- * so the model keeps seeing it for the rest of the loop.
226
- *
227
- * Firing is edge-triggered with a post-fire re-sample: each fire resets the
228
- * elapsed reference (`lastSyntheticAt`), then the config is immediately
229
- * re-evaluated against the reset context — self-resetting predicates like
230
- * `elapsedExceeds` read false and re-arm (so they recur every N within one
231
- * stream), while constant predicates like `everyNTurns` read true and disarm
232
- * (so they fire once per stream). Any later false sample re-arms a config.
233
- * All state is closure-local (a fresh SteerSession per call), so overlapping
234
- * streams / guardrail retries never share a cursor.
235
- *
236
- * The session is also consumed by writeAssistantSegment, which carves the
237
- * streamed assistant message into the matching `[assistant, steer, assistant]`
238
- * split — so the stored chain reproduces exactly the prompt the model saw
239
- * (store/prompt parity).
232
+ * Build the `prepareStep` hook that injects reminders between model steps.
233
+ * Tool-output reminders are evaluated against the preceding step's completed
234
+ * tool results and appended after the SDK's tool-result message. Steer
235
+ * reminders share the same synthetic user message when both fire together.
236
+ *
237
+ * Each eligible boundary evaluates its reminders independently. A predicate
238
+ * that remains true fires at every boundary; compose `once()` when a durable
239
+ * latch is desired. AI SDK v7 carries prepared message overrides forward to
240
+ * subsequent steps.
241
+ *
242
+ * Each injected input is persisted with a following assistant placeholder
243
+ * before prepareStep returns. writeAssistantSegment fills that placeholder,
244
+ * so process loss cannot make a delivered reminder eligible again and later
245
+ * requests reproduce the exact prompt prefix the model saw.
240
246
  */
241
- createSteerPrepareStep<TOOLS extends Record<string, Tool> = Record<string, Tool>>(): PrepareStepFunction<TOOLS>;
247
+ createPrepareStep<TOOLS extends Record<string, Tool> = Record<string, Tool>>(options?: {
248
+ steer?: boolean;
249
+ additionalInput?: PrepareStepInputProvider;
250
+ sandbox?: AgentSandbox;
251
+ }): PrepareStepFunction<TOOLS>;
242
252
  /**
243
- * Persist the streamed assistant message, carving it into the steer split when
244
- * steer reminders fired this turn.
245
- *
246
- * Called from chat()'s onStepFinish/onFinish (and the guardrail path) with the
247
- * cumulative response message. Segment boundaries come from the `step-start`
248
- * markers in the message itself — no cross-track store read — so the carve is
249
- * race-free. Idempotent: finalized segments keep stable ids; the open segment
250
- * is updated in place. With no active steer it degrades to a plain in-place
251
- * write of the whole message to the reserved head.
253
+ * Persist the streamed assistant message into its reserved segment.
254
+ *
255
+ * Called from chat()'s onStepEnd/onEnd (and the guardrail path) with the
256
+ * cumulative response message. prepareStep has already persisted reminder
257
+ * boundaries and reserved the open segment id, so this only updates that
258
+ * segment in place with the cumulative prefix removed. With no fired reminder
259
+ * it writes the whole message to the original reserved head.
252
260
  */
253
261
  writeAssistantSegment(message: UIMessage): Promise<void>;
254
- /**
255
- * Evaluate `target: 'tool-output'` reminders against a tool's raw result and
256
- * return the (possibly wrapped) output.
257
- *
258
- * Called by the agent's tool wrapper right after each `execute()` resolves.
259
- * The wrapper passes the executing `call`, surfaced as
260
- * {@link WhenContext.executingTool}, so a predicate can gate on the live
261
- * tool's name/input/result — the only point at which the call being wrapped
262
- * is observable.
263
- * The store keeps the wrapped value with a host-only marker; the model-facing
264
- * projection strips that marker while preserving `result` + `systemReminder`.
265
- *
266
- * Returns the output unchanged when no tool-output reminder fires. Without a
267
- * persisted user message there is no turn context to evaluate against
268
- * (e.g. asTool forks that set a pending user without saving), so the output
269
- * passes through untouched.
270
- */
271
- applyToolOutputReminders(output: unknown, call?: {
272
- toolName: string;
273
- input: unknown;
274
- }): Promise<unknown>;
275
262
  /**
276
263
  * Estimate token count and cost for the full context.
277
264
  *
@@ -427,7 +414,7 @@ export declare class ContextEngine {
427
414
  * @example
428
415
  * ```ts
429
416
  * // In onFinish callback
430
- * const usage = await result.totalUsage;
417
+ * const usage = await result.usage;
431
418
  * await context.trackUsage(usage);
432
419
  * ```
433
420
  */
@@ -451,25 +438,8 @@ export declare class ContextEngine {
451
438
  * @returns A new ContextEngine with copied fragments and empty message history
452
439
  */
453
440
  fork(): ContextEngine;
454
- /**
455
- * Extract skill mounts from available_skills fragments.
456
- * Returns unified mount array where entries with `name` are individual skills.
457
- *
458
- * @example
459
- * ```ts
460
- * const context = new ContextEngine({ store, chatId, userId })
461
- * .set(skills({ paths: [{ host: './skills', sandbox: '/skills' }] }));
462
- *
463
- * const { mounts } = context.getSkillMounts();
464
- * // mounts: [{ name: 'bi-dashboards', host: './skills/bi-dashboards/SKILL.md', sandbox: '/skills/bi-dashboards/SKILL.md' }]
465
- *
466
- * // Extract skills only (entries with name)
467
- * const skills = mounts.filter(m => m.name);
468
- * ```
469
- */
470
- getSkillMounts(): {
471
- mounts: SkillPathMapping[];
472
- };
441
+ /** Return the explicit skills from the first available_skills fragment. */
442
+ getAvailableSkills(): AvailableSkill[];
473
443
  /**
474
444
  * Inspect the full context state for debugging.
475
445
  * Returns a JSON-serializable object with context information.
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/lib/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/lib/engine.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,kBAAkB,EAEvB,KAAK,mBAAmB,EAExB,KAAK,IAAI,EACT,KAAK,SAAS,EAIf,MAAM,IAAI,CAAC;AAGZ,OAAO,EACL,KAAK,cAAc,EAGpB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,eAAe,EAQrB,MAAM,gBAAgB,CAAC;AAcxB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EACL,KAAK,eAAe,EAErB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAEL,KAAK,aAAa,EAEnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAEL,KAAK,UAAU,EAGf,KAAK,cAAc,EACnB,YAAY,EACZ,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAC;AAI1B,YAAY,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,uDAAuD;IACvD,YAAY,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,QAAQ,EAAE,SAAS,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,kEAAkE;IAClE,QAAQ,EAAE,eAAe,CAAC;IAC1B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,wDAAwD;IACxD,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,gDAAgD;IAChD,KAAK,EAAE,YAAY,CAAC;IACpB,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,wFAAwF;IACxF,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;CAC7B;AA4JD,MAAM,MAAM,wBAAwB,GAAG,MACnC,KAAK,CAAC,SAAS,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GACnC,SAAS,GACT,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,SAAS,CAAC,CAAC;AAoB7D;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,8CAA8C;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,QAAQ,EAAE,eAAe,CAAC;IAC1B;;;;OAIG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,wDAAwD;IACxD,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,sCAAsC;IACtC,QAAQ,EAAE,cAAc,CAAC;IACzB,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,SAAS,EAAE;QACT,gDAAgD;QAChD,OAAO,EAAE,eAAe,EAAE,CAAC;QAC3B,8CAA8C;QAC9C,OAAO,EAAE,eAAe,EAAE,CAAC;QAC3B,wCAAwC;QACxC,SAAS,EAAE,WAAW,EAAE,CAAC;KAC1B,CAAC;IACF,uDAAuD;IACvD,KAAK,EAAE,SAAS,CAAC;IACjB,0BAA0B;IAC1B,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED;;;;;;;;GAQG;AACH,qBAAa,aAAa;;gBA+BZ,OAAO,EAAE,oBAAoB;IAwHzC;;OAEG;IACH,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED;;OAEG;IACH,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED;;;OAGG;IACH,IAAW,aAAa,IAAI,MAAM,GAAG,SAAS,CAE7C;IAED;;;OAGG;IACH,IAAW,IAAI,IAAI,cAAc,GAAG,IAAI,CAEvC;IAsBY,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAK/B,gBAAgB,IAAI,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IA4B/D;;;;;;;OAOG;IACU,WAAW,IAAI,OAAO,CACjC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CACzC;IAqBD;;;;;;;;;;;;;OAaG;IACU,WAAW,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAsChD;;;;;;;;;;;;;;;;;;;;OAoBG;IACU,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAqB1D;;;;;OAKG;IACI,GAAG,CAAC,GAAG,SAAS,EAAE,eAAe,EAAE;IAYnC,KAAK,CAAC,UAAU,EAAE,MAAM;IAI/B;;;OAGG;IACI,MAAM,CAAC,QAAQ,EAAE,eAAe;IAIvC;;;;;;;;;;;;;;;;OAgBG;IACU,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAYrE;;;;;;;;;;;;;OAaG;IACU,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IAsBtE;;;;;;;;;;;;;;;OAeG;IACI,iBAAiB,CACtB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAEzD,OAAO,GAAE;QACP,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,eAAe,CAAC,EAAE,wBAAwB,CAAC;QAC3C,OAAO,CAAC,EAAE,YAAY,CAAC;KACnB,GACL,mBAAmB,CAAC,KAAK,CAAC;IAyH7B;;;;;;;;OAQG;IACU,qBAAqB,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAwNrE;;;;;;;;;;;OAWG;IACU,QAAQ,CACnB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QACP,QAAQ,CAAC,EAAE,eAAe,CAAC;QAC3B,OAAO,CAAC,EAAE,YAAY,CAAC;QACvB,MAAM,CAAC,EAAE,WAAW,CAAC;KACjB,GACL,OAAO,CAAC,cAAc,CAAC;IAsF1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACU,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAe3D;;;;;;;;;;;;;;;;;;OAkBG;IACU,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAyB9D;;;;;;;;;;;;;;;OAeG;IACU,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAcvD;;;;;;;;;;;;;;OAcG;IACU,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACU,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC;IAUvC;;;;;;;;;;;;OAYG;IACU,UAAU,CACrB,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,UAAU,CAAC,CAAC,GAC3D,OAAO,CAAC,IAAI,CAAC;IAehB;;;;;;;;;;;;OAYG;IACU,UAAU,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBjE;;;;;;;OAOG;IACI,WAAW,IAAI,IAAI;IAI1B;;;;;;;;OAQG;IACI,IAAI,IAAI,aAAa;IAW5B,2EAA2E;IACpE,kBAAkB,IAAI,cAAc,EAAE;IAkB7C;;;;;;;;;;;;;;;;;;OAkBG;IACU,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;CA0CtE"}
@@ -0,0 +1,13 @@
1
+ import { type ContextFragment } from '../fragments.ts';
2
+ import type { WhenPredicate } from './reminders/src/types.ts';
3
+ declare function instructions(): ContextFragment;
4
+ declare function review(options: {
5
+ when: WhenPredicate;
6
+ }): ContextFragment;
7
+ export declare const plan: {
8
+ path: string;
9
+ instructions: typeof instructions;
10
+ review: typeof review;
11
+ };
12
+ export {};
13
+ //# sourceMappingURL=plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../src/lib/fragments/plan.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,eAAe,EAAY,MAAM,iBAAiB,CAAC;AAGjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AA8U9D,iBAAS,YAAY,IAAI,eAAe,CAEvC;AAED,iBAAS,MAAM,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GAAG,eAAe,CAKjE;AAED,eAAO,MAAM,IAAI;;;;CAAiD,CAAC"}
@@ -12,7 +12,7 @@ export interface FiredReminder {
12
12
  * Each predicate and each async text resolver is isolated: a throwing/rejecting
13
13
  * `when()` or reminder text is treated as "did not fire" and logged, never
14
14
  * propagated. This is the single evaluation core shared by the save pipeline
15
- * and the steer loop, so a misbehaving user predicate can never tear down a
15
+ * and prepare-step loop, so a misbehaving user predicate can never tear down a
16
16
  * save or an in-flight assistant turn.
17
17
  */
18
18
  export declare function evaluateFiredReminders(configs: ConditionalReminder[], whenCtx: WhenContext): Promise<FiredReminder[]>;
@@ -1,5 +1,5 @@
1
1
  export * from './reminders.ts';
2
- export type { BaseWhenCtx, ConditionalReminder, ReminderContext, ReminderFragment, ReminderOptions, ReminderRange, ReminderResolution, ReminderTarget, ReminderText, SyncReminderText, SyntheticSteerMetadata, UserReminderMetadata, WhenContext, WhenPredicate, } from './types.ts';
2
+ export type { BaseWhenCtx, ConditionalReminder, ReminderContext, ReminderFragment, ReminderOptions, ReminderRange, ReminderResolution, ReminderTarget, ReminderText, SyncReminderText, SyntheticReminderMetadata, ToolOutcome, UserReminderMetadata, WhenContext, WhenPredicate, } from './types.ts';
3
3
  export * from './evaluate.ts';
4
4
  export * from './predicates/index.ts';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/fragments/reminders/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,YAAY,EACV,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,WAAW,EACX,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/fragments/reminders/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,YAAY,EACV,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,yBAAyB,EACzB,WAAW,EACX,oBAAoB,EACpB,WAAW,EACX,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC"}
@@ -5,25 +5,25 @@ export declare function or(...predicates: WhenPredicate[]): AsyncWhenPredicate;
5
5
  export declare function not(predicate: WhenPredicate): AsyncWhenPredicate;
6
6
  /**
7
7
  * Existential window: fires when `predicate` matches AT LEAST ONE of the last
8
- * N assistant messages.
8
+ * N assistant replies.
9
9
  *
10
- * Rebinds ONLY `lastAssistantMessage`. Wrapping predicates that read other
11
- * fields (currentMessage, content, turn, usage, elapsed) is a no-op — those
12
- * stay frozen at the outer ctx values. Intended for tool predicates and
13
- * `lastAssistantLength`.
10
+ * Rebinds ONLY `lastAssistantMessage`, to the merged reply. Wrapping predicates
11
+ * that read other fields (currentMessage, content, turn, usage, elapsed) is a
12
+ * no-op — those stay frozen at the outer ctx values. Intended for tool
13
+ * predicates and `lastAssistantLength`.
14
14
  *
15
15
  * Short-circuits on first match. Returns false when no chain history.
16
16
  */
17
17
  export declare function withinLastN(n: number, predicate: WhenPredicate): AsyncWhenPredicate;
18
18
  /**
19
19
  * Universal window: fires only when `predicate` matches EVERY ONE of the last
20
- * N assistant messages. Use for streak detection (e.g. "no tool use in any of
20
+ * N assistant replies. Use for streak detection (e.g. "no tool use in any of
21
21
  * the last 3 replies").
22
22
  *
23
23
  * Rebinds ONLY `lastAssistantMessage`, same scope rules as `withinLastN`.
24
24
  *
25
- * Short-circuits on first non-match. Returns false when fewer than N
26
- * assistant messages exist — a streak of N requires at least N candidates.
25
+ * Short-circuits on first non-match. Returns false when fewer than N replies
26
+ * exist — a streak of N requires at least N candidates.
27
27
  */
28
28
  export declare function everyOfLastN(n: number, predicate: WhenPredicate): AsyncWhenPredicate;
29
29
  //# sourceMappingURL=combinators.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"combinators.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/fragments/reminders/src/predicates/combinators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE9D,MAAM,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAExE,wBAAgB,GAAG,CAAC,GAAG,UAAU,EAAE,aAAa,EAAE,GAAG,kBAAkB,CAOtE;AAED,wBAAgB,EAAE,CAAC,GAAG,UAAU,EAAE,aAAa,EAAE,GAAG,kBAAkB,CAOrE;AAED,wBAAgB,GAAG,CAAC,SAAS,EAAE,aAAa,GAAG,kBAAkB,CAEhE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CACzB,CAAC,EAAE,MAAM,EACT,SAAS,EAAE,aAAa,GACvB,kBAAkB,CAWpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAC1B,CAAC,EAAE,MAAM,EACT,SAAS,EAAE,aAAa,GACvB,kBAAkB,CAapB"}
1
+ {"version":3,"file":"combinators.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/fragments/reminders/src/predicates/combinators.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE9D,MAAM,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAExE,wBAAgB,GAAG,CAAC,GAAG,UAAU,EAAE,aAAa,EAAE,GAAG,kBAAkB,CAOtE;AAED,wBAAgB,EAAE,CAAC,GAAG,UAAU,EAAE,aAAa,EAAE,GAAG,kBAAkB,CAOrE;AAED,wBAAgB,GAAG,CAAC,SAAS,EAAE,aAAa,GAAG,kBAAkB,CAEhE;AAgBD;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CACzB,CAAC,EAAE,MAAM,EACT,SAAS,EAAE,aAAa,GACvB,kBAAkB,CAUpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAC1B,CAAC,EAAE,MAAM,EACT,SAAS,EAAE,aAAa,GACvB,kBAAkB,CAYpB"}
@@ -1,6 +1,6 @@
1
1
  import type { WhenPredicate } from '../types.ts';
2
2
  /**
3
- * Durable fire-once latch, composed into a steer reminder's `when`.
3
+ * Durable fire-once latch composed into a reminder's `when`.
4
4
  *
5
5
  * Two effects, both on `ctx` and nothing else:
6
6
  * - READ: returns false once `id` has fired in this conversation (the persisted
@@ -1 +1 @@
1
- {"version":3,"file":"once.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/fragments/reminders/src/predicates/once.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,CAkB9C"}
1
+ {"version":3,"file":"once.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/fragments/reminders/src/predicates/once.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,CAc9C"}
@@ -1,5 +1,5 @@
1
- import { type ToolUIPart } from 'ai';
2
- import type { CountSpec, WhenPredicate } from '../types.ts';
1
+ import { type ToolUIPart, type UIMessage } from 'ai';
2
+ import type { CountSpec, ToolOutcome, WhenPredicate } from '../types.ts';
3
3
  export type ToolNameSpec = string | ((name: string) => boolean);
4
4
  export interface ToolCallOptions {
5
5
  name?: ToolNameSpec;
@@ -8,9 +8,42 @@ export interface ToolCallOptions {
8
8
  output?: (output: unknown) => boolean;
9
9
  errorText?: (text: string) => boolean;
10
10
  }
11
+ export interface ToolOutputOptions {
12
+ name?: ToolNameSpec;
13
+ state?: ToolOutcome['state'];
14
+ input?: (input: unknown) => boolean;
15
+ output?: (output: unknown) => boolean;
16
+ error?: (error: unknown) => boolean;
17
+ errorText?: (text: string) => boolean;
18
+ reason?: (reason: string | undefined) => boolean;
19
+ }
11
20
  export declare function toolCall(options: ToolCallOptions): WhenPredicate;
21
+ /** Match the terminal tool outcome currently being evaluated. */
22
+ export declare function toolOutput(options?: ToolOutputOptions): WhenPredicate;
12
23
  export declare function toolCalled(name: ToolNameSpec): WhenPredicate;
13
24
  export declare function toolFailed(name: ToolNameSpec): WhenPredicate;
14
25
  export declare function anyToolCalled(): WhenPredicate;
15
26
  export declare function toolCallCount(name: ToolNameSpec, spec: CountSpec): WhenPredicate;
27
+ /**
28
+ * Match after `n` terminal tool outcomes in the current assistant segment.
29
+ *
30
+ * Steer and tool-output reminders carve the assistant reply when they fire, so
31
+ * the segment count restarts before delivery. The predicate itself is
32
+ * stateless: identical context produces an identical result.
33
+ */
34
+ export declare function everyNToolCalls(n: number): WhenPredicate;
35
+ /**
36
+ * How many times `name` has failed in a row, counting back from the newest
37
+ * result. A success ends the run.
38
+ *
39
+ * Reads `lastAssistantMessages` (every assistant segment), NOT
40
+ * `lastAssistantMessage`: a firing reminder carves the assistant message at its
41
+ * boundary, so the single current message only holds the parts since the last
42
+ * fire and a streak read from it would reset to 1 on every fire.
43
+ */
44
+ export declare function toolFailureStreak(ctx: {
45
+ lastAssistantMessages?: UIMessage[];
46
+ }, name: ToolNameSpec): number;
47
+ /** Gate on a run of consecutive failures, e.g. `toolFailedStreak('bash', { gte: 3 })`. */
48
+ export declare function toolFailedStreak(name: ToolNameSpec, spec: CountSpec): WhenPredicate;
16
49
  //# sourceMappingURL=tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/fragments/reminders/src/predicates/tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAsC,MAAM,IAAI,CAAC;AAEzE,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5D,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;AAEhE,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,KAAK,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAC5B,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IACpC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC;IACtC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CACvC;AAqBD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,aAAa,CAkChE;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,aAAa,CAE5D;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,aAAa,CAE5D;AAED,wBAAgB,aAAa,IAAI,aAAa,CAK7C;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,SAAS,GACd,aAAa,CASf"}
1
+ {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/fragments/reminders/src/predicates/tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAsB,MAAM,IAAI,CAAC;AAEzE,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGzE,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;AAEhE,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,KAAK,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAC5B,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IACpC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC;IACtC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CACvC;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,KAAK,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IACpC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC;IACtC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IACpC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACtC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,KAAK,OAAO,CAAC;CAClD;AAqBD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,aAAa,CAkChE;AAED,iEAAiE;AACjE,wBAAgB,UAAU,CAAC,OAAO,GAAE,iBAAsB,GAAG,aAAa,CAgCzE;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,aAAa,CAE5D;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,aAAa,CAE5D;AAED,wBAAgB,aAAa,IAAI,aAAa,CAK7C;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,SAAS,GACd,aAAa,CASf;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,aAAa,CAWxD;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE;IAAE,qBAAqB,CAAC,EAAE,SAAS,EAAE,CAAA;CAAE,EAC5C,IAAI,EAAE,YAAY,GACjB,MAAM,CAUR;AAED,0FAA0F;AAC1F,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,SAAS,GACd,aAAa,CAGf"}
@@ -1,6 +1,6 @@
1
1
  import { type UIMessage } from 'ai';
2
2
  import { type ContextFragment } from '../../../fragments.ts';
3
- import type { ConditionalReminder, ReminderContext, ReminderOptions, ReminderRange, ReminderResolution, ReminderText, SyncReminderText, SyntheticSteerMetadata, UserReminderMetadata } from './types.ts';
3
+ import type { ConditionalReminder, ReminderContext, ReminderOptions, ReminderRange, ReminderResolution, ReminderText, SyncReminderText, SyntheticReminderMetadata, UserReminderMetadata } from './types.ts';
4
4
  export declare function isConditionalReminder(fragment: ContextFragment): fragment is ContextFragment & {
5
5
  metadata: {
6
6
  reminder: ConditionalReminder;
@@ -10,7 +10,7 @@ export declare function getReminderRanges(metadata: Record<string, unknown> | un
10
10
  /**
11
11
  * Once-ids latched by `once()`-gated reminders folded into this user message.
12
12
  * Persisted so a fresh engine re-reads them (the durable suppression record for
13
- * user-target `once()`, mirroring synthetic steer messages).
13
+ * user-target `once()`, mirroring synthetic reminder messages).
14
14
  */
15
15
  export declare function getReminderOnceIds(message: UIMessage): string[];
16
16
  export declare function stripTextByRanges(text: string, ranges: Array<{
@@ -42,34 +42,14 @@ export declare function applyReminderToMessage(message: UIMessage, item: {
42
42
  asPart: boolean;
43
43
  metadata?: Record<string, unknown>;
44
44
  }, ctx: ReminderContext): UserReminderMetadata | null;
45
- /**
46
- * Wrap a tool's raw `execute()` result with fired reminder texts.
47
- *
48
- * Applied at the tool-execution boundary — before the AI SDK hands the result
49
- * back to the model — so the wrapped value flows identically into the next
50
- * model step and the persisted chain. The envelope shape is uniform regardless
51
- * of the output type, which lets `stripReminders` undo it structurally without
52
- * metadata bookkeeping.
53
- */
54
- export declare function applyRemindersToToolOutput(output: unknown, texts: string[]): unknown;
55
- /**
56
- * Project a tool-output reminder envelope to its model-facing form: run the
57
- * wrapped tool's own projection over the inner `result` (so a tool's host-only
58
- * `meta` channel is still stripped), then re-attach the `systemReminder`. The
59
- * envelope's own host-only `meta` marker is dropped. Returns null for anything
60
- * that is not one of our envelopes, so the caller can project the raw output.
61
- */
62
- export declare function toToolReminderModelOutput(output: unknown, projectResult: (result: unknown) => unknown): {
63
- type: 'json';
64
- value: unknown;
65
- } | null;
66
45
  export declare function mergeReminderMetadata(message: UIMessage, addedReminders: UserReminderMetadata[]): void;
67
46
  /**
68
47
  * Create a reminder fragment, set on the engine via `engine.set()`. The engine
69
48
  * folds it into the model's view when its `when` fires: `user` reminders bake a
70
49
  * `<system-reminder>` into the last user message at save; `steer` injects mid-
71
- * loop; `tool-output` wraps the tool result. Text may be a string, a `(ctx) =>
72
- * string` factory (self-gates by returning `''`), or a context fragment.
50
+ * loop; `tool-output` injects after a completed tool step. Text may be a string,
51
+ * a `(ctx) => string` factory (self-gates by returning `''`), or a context
52
+ * fragment.
73
53
  *
74
54
  * For `target: 'user'`, `when` is optional — omit it for an always-on
75
55
  * instruction, or pass `once(id)` for a one-time reminder. `steer` and
@@ -95,7 +75,7 @@ export declare function applyUserRemindersToMessage(message: UIMessage, reminder
95
75
  metadata?: Record<string, unknown>;
96
76
  }>): void;
97
77
  /**
98
- * Build the hidden synthetic user message injected mid-loop for steer reminders.
78
+ * Build a hidden synthetic user message injected between model steps.
99
79
  *
100
80
  * Multiple reminder texts that fire at the same step boundary are folded into a
101
81
  * single user message (one `<system-reminder>` text part each) so the model
@@ -103,12 +83,12 @@ export declare function applyUserRemindersToMessage(message: UIMessage, reminder
103
83
  * reject. The `metadata.synthetic` marker lets the chain summary, title
104
84
  * generation, and `stripReminders` treat these as non-conversational.
105
85
  */
106
- export declare function synthesizeSteerUserMessage(text: string | string[], firedAt: number, onceIds?: string[]): UIMessage & {
86
+ export declare function synthesizeReminderMessage(text: string | string[], firedAt: number, onceIds?: string[]): UIMessage & {
107
87
  role: 'user';
108
88
  };
109
- export declare function isSyntheticSteerMessage(message: UIMessage): message is UIMessage & {
89
+ export declare function isSyntheticReminderMessage(message: UIMessage): message is UIMessage & {
110
90
  metadata: {
111
- synthetic: SyntheticSteerMetadata;
91
+ synthetic: SyntheticReminderMetadata;
112
92
  };
113
93
  };
114
94
  //# sourceMappingURL=reminders.d.ts.map