@deepagents/context 0.39.0 → 1.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 (110) hide show
  1. package/README.md +44 -11
  2. package/dist/browser.js +171 -15
  3. package/dist/browser.js.map +3 -3
  4. package/dist/index.d.ts +6 -0
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +2309 -1233
  7. package/dist/index.js.map +4 -4
  8. package/dist/lib/agent.d.ts +6 -0
  9. package/dist/lib/agent.d.ts.map +1 -1
  10. package/dist/lib/chain-summary.d.ts +18 -0
  11. package/dist/lib/chain-summary.d.ts.map +1 -0
  12. package/dist/lib/engine.d.ts +25 -6
  13. package/dist/lib/engine.d.ts.map +1 -1
  14. package/dist/lib/fragments/message/user.d.ts +21 -2
  15. package/dist/lib/fragments/message/user.d.ts.map +1 -1
  16. package/dist/lib/fragments.d.ts +8 -3
  17. package/dist/lib/fragments.d.ts.map +1 -1
  18. package/dist/lib/resolvers/async-resolver.d.ts +8 -0
  19. package/dist/lib/resolvers/async-resolver.d.ts.map +1 -0
  20. package/dist/lib/resolvers/function-resolver.d.ts +8 -0
  21. package/dist/lib/resolvers/function-resolver.d.ts.map +1 -0
  22. package/dist/lib/resolvers/generator-resolver.d.ts +13 -0
  23. package/dist/lib/resolvers/generator-resolver.d.ts.map +1 -0
  24. package/dist/lib/resolvers/index.d.ts +10 -0
  25. package/dist/lib/resolvers/index.d.ts.map +1 -0
  26. package/dist/lib/resolvers/iterable-resolver.d.ts +12 -0
  27. package/dist/lib/resolvers/iterable-resolver.d.ts.map +1 -0
  28. package/dist/lib/resolvers/loader-resolver.d.ts +13 -0
  29. package/dist/lib/resolvers/loader-resolver.d.ts.map +1 -0
  30. package/dist/lib/resolvers/promise-resolver.d.ts +7 -0
  31. package/dist/lib/resolvers/promise-resolver.d.ts.map +1 -0
  32. package/dist/lib/resolvers/types.d.ts +45 -0
  33. package/dist/lib/resolvers/types.d.ts.map +1 -0
  34. package/dist/lib/sandbox/ast-utils.d.ts +5 -2
  35. package/dist/lib/sandbox/ast-utils.d.ts.map +1 -1
  36. package/dist/lib/sandbox/bash-tool.d.ts.map +1 -1
  37. package/dist/lib/sandbox/container-tool.d.ts +32 -8
  38. package/dist/lib/sandbox/container-tool.d.ts.map +1 -1
  39. package/dist/lib/sandbox/docker-sandbox-errors.d.ts +58 -0
  40. package/dist/lib/sandbox/docker-sandbox-errors.d.ts.map +1 -0
  41. package/dist/lib/sandbox/docker-sandbox.d.ts +69 -357
  42. package/dist/lib/sandbox/docker-sandbox.d.ts.map +1 -1
  43. package/dist/lib/sandbox/index.d.ts +2 -7
  44. package/dist/lib/sandbox/index.d.ts.map +1 -1
  45. package/dist/lib/sandbox/installers/github-release.d.ts +46 -0
  46. package/dist/lib/sandbox/installers/github-release.d.ts.map +1 -0
  47. package/dist/lib/sandbox/installers/index.d.ts +7 -0
  48. package/dist/lib/sandbox/installers/index.d.ts.map +1 -0
  49. package/dist/lib/sandbox/installers/installer.d.ts +44 -0
  50. package/dist/lib/sandbox/installers/installer.d.ts.map +1 -0
  51. package/dist/lib/sandbox/installers/npm.d.ts +32 -0
  52. package/dist/lib/sandbox/installers/npm.d.ts.map +1 -0
  53. package/dist/lib/sandbox/installers/package-manager.d.ts +19 -0
  54. package/dist/lib/sandbox/installers/package-manager.d.ts.map +1 -0
  55. package/dist/lib/sandbox/installers/pip.d.ts +37 -0
  56. package/dist/lib/sandbox/installers/pip.d.ts.map +1 -0
  57. package/dist/lib/sandbox/installers/url-binary.d.ts +41 -0
  58. package/dist/lib/sandbox/installers/url-binary.d.ts.map +1 -0
  59. package/dist/lib/sandbox/subcommand.d.ts +11 -11
  60. package/dist/lib/sandbox/subcommand.d.ts.map +1 -1
  61. package/dist/lib/sandbox/upload-skills.d.ts +6 -0
  62. package/dist/lib/sandbox/upload-skills.d.ts.map +1 -1
  63. package/dist/lib/sandbox/virtual-sandbox.d.ts +10 -0
  64. package/dist/lib/sandbox/virtual-sandbox.d.ts.map +1 -0
  65. package/dist/lib/save/reminder-target-handler.d.ts +36 -0
  66. package/dist/lib/save/reminder-target-handler.d.ts.map +1 -0
  67. package/dist/lib/save/save-pipeline.d.ts +28 -0
  68. package/dist/lib/save/save-pipeline.d.ts.map +1 -0
  69. package/dist/lib/save/tool-output-target-handler.d.ts +7 -0
  70. package/dist/lib/save/tool-output-target-handler.d.ts.map +1 -0
  71. package/dist/lib/save/user-target-handler.d.ts +7 -0
  72. package/dist/lib/save/user-target-handler.d.ts.map +1 -0
  73. package/dist/lib/stream/change-source.d.ts +11 -0
  74. package/dist/lib/stream/change-source.d.ts.map +1 -0
  75. package/dist/lib/stream/ddl.stream.postgres-notify.d.ts +3 -0
  76. package/dist/lib/stream/ddl.stream.postgres-notify.d.ts.map +1 -0
  77. package/dist/lib/stream/ddl.stream.postgres.d.ts +2 -0
  78. package/dist/lib/stream/ddl.stream.postgres.d.ts.map +1 -0
  79. package/dist/lib/stream/polling-change-source.d.ts +27 -0
  80. package/dist/lib/stream/polling-change-source.d.ts.map +1 -0
  81. package/dist/lib/stream/polling-policy.d.ts +0 -1
  82. package/dist/lib/stream/polling-policy.d.ts.map +1 -1
  83. package/dist/lib/stream/postgres-notify-change-source.d.ts +15 -0
  84. package/dist/lib/stream/postgres-notify-change-source.d.ts.map +1 -0
  85. package/dist/lib/stream/postgres.stream-store.d.ts +29 -0
  86. package/dist/lib/stream/postgres.stream-store.d.ts.map +1 -0
  87. package/dist/lib/stream/stream-manager.d.ts +8 -27
  88. package/dist/lib/stream/stream-manager.d.ts.map +1 -1
  89. package/dist/lib/ui-message-guards.d.ts +10 -0
  90. package/dist/lib/ui-message-guards.d.ts.map +1 -0
  91. package/package.json +2 -7
  92. package/dist/lib/sandbox/extension.d.ts +0 -39
  93. package/dist/lib/sandbox/extension.d.ts.map +0 -1
  94. package/dist/lib/sandbox/openapi/demo.d.ts +0 -2
  95. package/dist/lib/sandbox/openapi/demo.d.ts.map +0 -1
  96. package/dist/lib/sandbox/openapi/extension.d.ts +0 -19
  97. package/dist/lib/sandbox/openapi/extension.d.ts.map +0 -1
  98. package/dist/lib/sandbox/openapi/format.d.ts +0 -11
  99. package/dist/lib/sandbox/openapi/format.d.ts.map +0 -1
  100. package/dist/lib/sandbox/openapi/schema.d.ts +0 -9
  101. package/dist/lib/sandbox/openapi/schema.d.ts.map +0 -1
  102. package/dist/lib/sandbox/openapi/skill/index.d.ts +0 -6
  103. package/dist/lib/sandbox/openapi/skill/index.d.ts.map +0 -1
  104. package/dist/lib/sandbox/openapi/skill/index.js +0 -14
  105. package/dist/lib/sandbox/openapi/skill/index.js.map +0 -7
  106. package/dist/lib/sandbox/openapi/skill/openapi-cli/SKILL.md +0 -109
  107. package/dist/lib/sandbox/openapi/validate.d.ts +0 -7
  108. package/dist/lib/sandbox/openapi/validate.d.ts.map +0 -1
  109. package/dist/lib/sandbox/routing-sandbox.d.ts +0 -28
  110. package/dist/lib/sandbox/routing-sandbox.d.ts.map +0 -1
@@ -74,6 +74,12 @@ export interface StructuredOutputOptions<TSchema extends FlexibleSchema> {
74
74
  context?: ContextEngine;
75
75
  model?: AgentModel;
76
76
  schema: TSchema;
77
+ /**
78
+ * Optional sandbox forwarded to context.resolve(). Required only when the
79
+ * referenced context contains values that dispatch to resolvers declaring
80
+ * `requiresSandbox` (e.g. async/sync/generator function loaders).
81
+ */
82
+ sandbox?: AgentSandbox;
77
83
  providerOptions?: Parameters<typeof generateText>[0]['providerOptions'];
78
84
  experimental_telemetry?: Parameters<typeof generateText>[0]['experimental_telemetry'];
79
85
  tools?: ToolSet;
@@ -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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"}
@@ -0,0 +1,18 @@
1
+ import type { UIMessage } from 'ai';
2
+ import type { ContextFragment } from './fragments.ts';
3
+ import type { MessageData } from './store/store.ts';
4
+ export interface ChainSummary {
5
+ turn: number;
6
+ messageCount: number;
7
+ lastMessageAt?: number;
8
+ lastMessage?: UIMessage;
9
+ lastAssistantMessage?: UIMessage;
10
+ lastAssistantMessages?: UIMessage[];
11
+ }
12
+ export declare class ChainSummaryBuilder {
13
+ #private;
14
+ ingestStored(msg: MessageData): void;
15
+ ingestPending(fragment: ContextFragment): void;
16
+ build(): ChainSummary;
17
+ }
18
+ //# sourceMappingURL=chain-summary.d.ts.map
@@ -0,0 +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;AACtD,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;CACrC;AAED,qBAAa,mBAAmB;;IAQ9B,YAAY,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAyBpC,aAAa,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAK9C,KAAK,IAAI,YAAY;CAUtB"}
@@ -3,8 +3,12 @@ import { type EstimateResult } from './estimate.ts';
3
3
  import { type ChatMessage, type ContextFragment } from './fragments.ts';
4
4
  import type { Models } from './models.generated.ts';
5
5
  import { type ContextRenderer } from './renderers/abstract.renderer.ts';
6
+ import { type ValueResolver } from './resolvers/index.ts';
7
+ import type { AgentSandbox } from './sandbox/types.ts';
8
+ import { type SaveResult } from './save/save-pipeline.ts';
6
9
  import type { SkillPathMapping } from './skills/types.ts';
7
10
  import { type BranchInfo, type CheckpointInfo, ContextStore, type GraphData, type MessageData, type StoredChatData } from './store/store.ts';
11
+ export type { SaveResult } from './save/save-pipeline.ts';
8
12
  /**
9
13
  * Result of resolving context - ready for AI SDK consumption.
10
14
  */
@@ -20,12 +24,15 @@ export interface ResolveResult {
20
24
  export interface ResolveOptions {
21
25
  /** Renderer to use for system prompt (defaults to XmlRenderer) */
22
26
  renderer: ContextRenderer;
23
- }
24
- /**
25
- * Result of saving pending messages to the graph.
26
- */
27
- export interface SaveResult {
28
- headMessageId: string | undefined;
27
+ /**
28
+ * Sandbox forwarded to resolvers that declare `requiresSandbox`. Optional —
29
+ * required only if fragments contain values that dispatch to such resolvers
30
+ * (default chain: AsyncResolver, FunctionResolver, GeneratorResolver). Walker
31
+ * throws pre-dispatch with the fragment path otherwise.
32
+ */
33
+ sandbox?: AgentSandbox;
34
+ /** Optional cancellation signal forwarded to loaders */
35
+ signal?: AbortSignal;
29
36
  }
30
37
  /**
31
38
  * Options for creating a ContextEngine.
@@ -39,6 +46,8 @@ export interface ContextEngineOptions {
39
46
  userId: string;
40
47
  /** Optional initial metadata for the chat (merged with existing if chat exists) */
41
48
  metadata?: Record<string, unknown>;
49
+ /** Custom resolver chain (defaults to async, generator, function, promise, iterable) */
50
+ resolvers?: ValueResolver[];
42
51
  }
43
52
  /**
44
53
  * Options for context inspection.
@@ -48,6 +57,14 @@ export interface InspectOptions {
48
57
  modelId: Models;
49
58
  /** Renderer for estimation (required) */
50
59
  renderer: ContextRenderer;
60
+ /**
61
+ * Sandbox forwarded to the resolver chain via estimate(). Optional —
62
+ * required only if fragments contain values that dispatch to resolvers
63
+ * declaring `requiresSandbox`.
64
+ */
65
+ sandbox?: AgentSandbox;
66
+ /** Optional cancellation signal forwarded to loaders */
67
+ signal?: AbortSignal;
51
68
  }
52
69
  /**
53
70
  * Result of inspecting context state.
@@ -211,6 +228,8 @@ export declare class ContextEngine {
211
228
  */
212
229
  estimate(modelId: Models, options?: {
213
230
  renderer?: ContextRenderer;
231
+ sandbox?: AgentSandbox;
232
+ signal?: AbortSignal;
214
233
  }): Promise<EstimateResult>;
215
234
  /**
216
235
  * Rewind to a specific message by ID.
@@ -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":"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"}
@@ -1,4 +1,4 @@
1
- import { type LanguageModelUsage, type UIMessage } from 'ai';
1
+ import { type LanguageModelUsage, type ToolUIPart, type UIMessage } from 'ai';
2
2
  import { type ContextFragment, type MessageFragment } from '../../fragments.ts';
3
3
  import type { StoredChatData } from '../../store/store.ts';
4
4
  export interface ReminderContext {
@@ -35,22 +35,27 @@ export interface WhenContext {
35
35
  lastAssistantMessages?: UIMessage[];
36
36
  }
37
37
  export type WhenPredicate = (ctx: WhenContext) => boolean | Promise<boolean>;
38
+ export type ReminderTarget = 'user' | 'tool-output';
38
39
  export interface UserReminderOptions {
39
40
  asPart?: boolean;
41
+ target?: 'user';
40
42
  }
41
43
  export interface UserReminder {
42
44
  text: SyncReminderText;
43
45
  asPart: boolean;
46
+ target: 'user';
44
47
  metadata?: Record<string, unknown>;
45
48
  }
46
49
  export interface ConditionalReminderOptions {
47
50
  when: WhenPredicate;
48
51
  asPart?: boolean;
52
+ target?: ReminderTarget;
49
53
  }
50
54
  export interface ConditionalReminder {
51
55
  text: ReminderText;
52
56
  when: WhenPredicate;
53
57
  asPart: boolean;
58
+ target: ReminderTarget;
54
59
  }
55
60
  export declare function isConditionalReminder(fragment: ContextFragment): fragment is ContextFragment & {
56
61
  metadata: {
@@ -60,16 +65,21 @@ export declare function isConditionalReminder(fragment: ContextFragment): fragme
60
65
  export interface UserReminderMetadata {
61
66
  id: string;
62
67
  text: string;
68
+ target: ReminderTarget;
63
69
  partIndex: number;
64
70
  start: number;
65
71
  end: number;
66
- mode: 'inline' | 'part';
72
+ mode: 'inline' | 'part' | 'tool-output';
67
73
  }
68
74
  export type ReminderRange = {
69
75
  partIndex: number;
70
76
  start: number;
71
77
  end: number;
72
78
  };
79
+ type OutputAvailableToolPart = ToolUIPart & {
80
+ state: 'output-available';
81
+ output: unknown;
82
+ };
73
83
  export declare function getReminderRanges(metadata: Record<string, unknown> | undefined): ReminderRange[];
74
84
  export declare function stripTextByRanges(text: string, ranges: Array<{
75
85
  start: number;
@@ -103,6 +113,14 @@ export declare function applyReminderToMessage(message: UIMessage, item: {
103
113
  asPart: boolean;
104
114
  metadata?: Record<string, unknown>;
105
115
  }, ctx: ReminderContext): UserReminderMetadata | null;
116
+ export declare function findSingleOutputAvailableToolPart(message: UIMessage): {
117
+ partIndex: number;
118
+ part: OutputAvailableToolPart;
119
+ } | null;
120
+ export declare function applyToolOutputRemindersToMessage(message: UIMessage, reminders: Array<{
121
+ text: string;
122
+ metadata?: Record<string, unknown>;
123
+ }>): UserReminderMetadata[];
106
124
  export declare function mergeReminderMetadata(message: UIMessage, addedReminders: UserReminderMetadata[]): void;
107
125
  /**
108
126
  * Create an immediate reminder for use inside `user()`.
@@ -193,4 +211,5 @@ export declare function reminder(fragment: ContextFragment, options: Conditional
193
211
  export declare function user(content: string | (UIMessage & {
194
212
  role: 'user';
195
213
  }), ...reminders: UserReminder[]): MessageFragment;
214
+ export {};
196
215
  //# sourceMappingURL=user.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../src/lib/fragments/message/user.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../src/lib/fragments/message/user.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { type UIMessage } from 'ai';
2
2
  import type { FragmentCodec } from './codec/codec.ts';
3
+ import type { LoadContext } from './resolvers/types.ts';
3
4
  /**
4
5
  * Fragment type identifier.
5
6
  * - 'fragment': Regular context fragment (default)
@@ -38,11 +39,13 @@ export interface ContextFragment<T extends FragmentData = FragmentData> {
38
39
  metadata?: Record<string, unknown>;
39
40
  }
40
41
  /**
41
- * Fragment data can be a primitive, array, object, or nested fragment.
42
+ * Fragment data can be a primitive, array, object, nested fragment, or a
43
+ * lazy value (function, generator, promise, iterable) that is materialized
44
+ * by the resolver chain at engine.resolve() time.
42
45
  */
43
46
  export type FragmentData = string | number | null | undefined | boolean | ContextFragment | FragmentData[] | {
44
47
  [key: string]: FragmentData;
45
- };
48
+ } | ((ctx: LoadContext) => FragmentData | Promise<FragmentData> | Iterable<FragmentData> | AsyncIterable<FragmentData>) | Promise<FragmentData> | Iterable<FragmentData> | AsyncIterable<FragmentData>;
46
49
  /**
47
50
  * Type guard to check if data is a ContextFragment.
48
51
  */
@@ -52,7 +55,9 @@ export declare function isFragment(data: unknown): data is ContextFragment;
52
55
  */
53
56
  export type FragmentObject = Record<string, FragmentData>;
54
57
  /**
55
- * Type guard to check if data is a plain object (not array, not fragment, not primitive).
58
+ * Type guard for plain objects in fragment data. The resolver chain dispatches
59
+ * Promises/iterables to handlers first, so this guard would not normally see them.
60
+ * Kept defensive so direct render paths that bypass the resolver still reject lazy values.
56
61
  */
57
62
  export declare function isFragmentObject(data: unknown): data is FragmentObject;
58
63
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"fragments.d.ts","sourceRoot":"","sources":["../../src/lib/fragments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAc,MAAM,IAAI,CAAC;AAEhD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,SAAS,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY;IACpE;;;OAGG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,CAAC,CAAC;IACT;;;OAGG;IACH,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,MAAM,GACN,IAAI,GACJ,SAAS,GACT,OAAO,GACP,eAAe,GACf,YAAY,EAAE,GACd;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAA;CAAE,CAAC;AAEpC;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,eAAe,CAQjE;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAE1D;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,cAAc,CAOtE;AAED;;;GAGG;AACH,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,IAAI,CAAC;IACd,KAAK,EAAE,aAAa,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,eAAe,GACxB,QAAQ,IAAI,eAAe,CAE7B;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,eAAe,GAAG,YAAY,CAUvE;AAED,wBAAgB,QAAQ,CACtB,IAAI,EAAE,MAAM,EACZ,GAAG,QAAQ,EAAE,YAAY,EAAE,GAC1B,eAAe,CAKjB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,SAAS,GAAG,eAAe,CAe7D;AAED,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,eAAe,CAAC;AAEtD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,GAAG,eAAe,CAKpE;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,eAAe,CAuBpE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,GACxB,eAAe,CAOjB"}
1
+ {"version":3,"file":"fragments.d.ts","sourceRoot":"","sources":["../../src/lib/fragments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAc,MAAM,IAAI,CAAC;AAEhD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,SAAS,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY;IACpE;;;OAGG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,CAAC,CAAC;IACT;;;OAGG;IACH,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;;GAIG;AACH,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,MAAM,GACN,IAAI,GACJ,SAAS,GACT,OAAO,GACP,eAAe,GACf,YAAY,EAAE,GACd;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAA;CAAE,GAC/B,CAAC,CACC,GAAG,EAAE,WAAW,KAEd,YAAY,GACZ,OAAO,CAAC,YAAY,CAAC,GACrB,QAAQ,CAAC,YAAY,CAAC,GACtB,aAAa,CAAC,YAAY,CAAC,CAAC,GAChC,OAAO,CAAC,YAAY,CAAC,GACrB,QAAQ,CAAC,YAAY,CAAC,GACtB,aAAa,CAAC,YAAY,CAAC,CAAC;AAEhC;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,eAAe,CAQjE;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAE1D;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,cAAc,CAOtE;AAED;;;GAGG;AACH,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,IAAI,CAAC;IACd,KAAK,EAAE,aAAa,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,eAAe,GACxB,QAAQ,IAAI,eAAe,CAE7B;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,eAAe,GAAG,YAAY,CAUvE;AAED,wBAAgB,QAAQ,CACtB,IAAI,EAAE,MAAM,EACZ,GAAG,QAAQ,EAAE,YAAY,EAAE,GAC1B,eAAe,CAKjB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,SAAS,GAAG,eAAe,CAe7D;AAED,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,eAAe,CAAC;AAEtD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,GAAG,eAAe,CAKpE;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,eAAe,CAuBpE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,GACxB,eAAe,CAOjB"}
@@ -0,0 +1,8 @@
1
+ import type { LoadContext, ValueResolver } from './types.ts';
2
+ export declare class AsyncResolver implements ValueResolver {
3
+ readonly name = "AsyncResolver";
4
+ readonly requiresSandbox = true;
5
+ canResolve(value: unknown): boolean;
6
+ resolve(value: unknown, ctx: LoadContext): Promise<unknown>;
7
+ }
8
+ //# sourceMappingURL=async-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async-resolver.d.ts","sourceRoot":"","sources":["../../../src/lib/resolvers/async-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,WAAW,EACX,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,qBAAa,aAAc,YAAW,aAAa;IACjD,QAAQ,CAAC,IAAI,mBAAmB;IAChC,QAAQ,CAAC,eAAe,QAAQ;IAEhC,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAMnC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;CAG5D"}
@@ -0,0 +1,8 @@
1
+ import type { LoadContext, ValueResolver } from './types.ts';
2
+ export declare class FunctionResolver implements ValueResolver {
3
+ readonly name = "FunctionResolver";
4
+ readonly requiresSandbox = true;
5
+ canResolve(value: unknown): boolean;
6
+ resolve(value: unknown, ctx: LoadContext): Promise<unknown>;
7
+ }
8
+ //# sourceMappingURL=function-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function-resolver.d.ts","sourceRoot":"","sources":["../../../src/lib/resolvers/function-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EAEX,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,qBAAa,gBAAiB,YAAW,aAAa;IACpD,QAAQ,CAAC,IAAI,sBAAsB;IACnC,QAAQ,CAAC,eAAe,QAAQ;IAEhC,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAI7B,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;CAIlE"}
@@ -0,0 +1,13 @@
1
+ import type { LoadContext, ValueResolver } from './types.ts';
2
+ export interface GeneratorResolverOptions {
3
+ maxItems?: number;
4
+ }
5
+ export declare class GeneratorResolver implements ValueResolver {
6
+ #private;
7
+ readonly name = "GeneratorResolver";
8
+ readonly requiresSandbox = true;
9
+ constructor(options?: GeneratorResolverOptions);
10
+ canResolve(value: unknown): boolean;
11
+ resolve(value: unknown, ctx: LoadContext): Promise<unknown>;
12
+ }
13
+ //# sourceMappingURL=generator-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator-resolver.d.ts","sourceRoot":"","sources":["../../../src/lib/resolvers/generator-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,WAAW,EACX,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AASD,qBAAa,iBAAkB,YAAW,aAAa;;IACrD,QAAQ,CAAC,IAAI,uBAAuB;IACpC,QAAQ,CAAC,eAAe,QAAQ;gBAGpB,OAAO,GAAE,wBAA6B;IAIlD,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAO7B,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;CAclE"}
@@ -0,0 +1,10 @@
1
+ import type { ValueResolver } from './types.ts';
2
+ export { AsyncResolver } from './async-resolver.ts';
3
+ export { FunctionResolver } from './function-resolver.ts';
4
+ export { GeneratorResolver } from './generator-resolver.ts';
5
+ export { IterableResolver } from './iterable-resolver.ts';
6
+ export { PromiseResolver } from './promise-resolver.ts';
7
+ export { FragmentLoaderResolver, type FragmentLoaderResolverOptions, } from './loader-resolver.ts';
8
+ export type { AsyncFragmentLoader, GeneratorFragmentLoader, LoadContext, SyncFragmentLoader, ValueResolver, } from './types.ts';
9
+ export declare function defaultResolvers(): ValueResolver[];
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/resolvers/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,sBAAsB,EACtB,KAAK,6BAA6B,GACnC,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,mBAAmB,EACnB,uBAAuB,EACvB,WAAW,EACX,kBAAkB,EAClB,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,wBAAgB,gBAAgB,IAAI,aAAa,EAAE,CAQlD"}
@@ -0,0 +1,12 @@
1
+ import type { LoadContext, ValueResolver } from './types.ts';
2
+ export interface IterableResolverOptions {
3
+ maxItems?: number;
4
+ }
5
+ export declare class IterableResolver implements ValueResolver {
6
+ #private;
7
+ readonly name = "IterableResolver";
8
+ constructor(options?: IterableResolverOptions);
9
+ canResolve(value: unknown): boolean;
10
+ resolve(value: unknown, _ctx: LoadContext): Promise<unknown>;
11
+ }
12
+ //# sourceMappingURL=iterable-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iterable-resolver.d.ts","sourceRoot":"","sources":["../../../src/lib/resolvers/iterable-resolver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE7D,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAgBD,qBAAa,gBAAiB,YAAW,aAAa;;IACpD,QAAQ,CAAC,IAAI,sBAAsB;gBAGvB,OAAO,GAAE,uBAA4B;IAIjD,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAU7B,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;CAcnE"}
@@ -0,0 +1,13 @@
1
+ import { type ContextFragment } from '../fragments.ts';
2
+ import type { LoadContext, ValueResolver } from './types.ts';
3
+ export interface FragmentLoaderResolverOptions {
4
+ maxDepth?: number;
5
+ }
6
+ declare const ROOT_PATH = "<root>";
7
+ export declare class FragmentLoaderResolver {
8
+ #private;
9
+ constructor(resolvers: ValueResolver[], options?: FragmentLoaderResolverOptions);
10
+ resolve(fragments: ContextFragment[], ctx: LoadContext): Promise<void>;
11
+ }
12
+ export { ROOT_PATH };
13
+ //# sourceMappingURL=loader-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader-resolver.d.ts","sourceRoot":"","sources":["../../../src/lib/resolvers/loader-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EAKrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE7D,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,QAAA,MAAM,SAAS,WAAW,CAAC;AAE3B,qBAAa,sBAAsB;;gBAK/B,SAAS,EAAE,aAAa,EAAE,EAC1B,OAAO,GAAE,6BAAkC;IAMvC,OAAO,CAAC,SAAS,EAAE,eAAe,EAAE,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAwI7E;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { LoadContext, ValueResolver } from './types.ts';
2
+ export declare class PromiseResolver implements ValueResolver {
3
+ readonly name = "PromiseResolver";
4
+ canResolve(value: unknown): boolean;
5
+ resolve(value: unknown, _ctx: LoadContext): Promise<unknown>;
6
+ }
7
+ //# sourceMappingURL=promise-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promise-resolver.d.ts","sourceRoot":"","sources":["../../../src/lib/resolvers/promise-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE7D,qBAAa,eAAgB,YAAW,aAAa;IACnD,QAAQ,CAAC,IAAI,qBAAqB;IAElC,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAInC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;CAG7D"}
@@ -0,0 +1,45 @@
1
+ import type { ContextEngine } from '../engine.ts';
2
+ import type { AgentSandbox } from '../sandbox/types.ts';
3
+ export interface LoadContext {
4
+ /**
5
+ * Sandbox available to loaders for IO. Optional — required only when a
6
+ * resolver with `requiresSandbox = true` is dispatched. The walker throws a
7
+ * clear error in that case if the sandbox is absent.
8
+ */
9
+ sandbox?: AgentSandbox;
10
+ /**
11
+ * The owning engine. Optional in `LoadContext` so unit tests of resolvers
12
+ * don't need to construct a real engine — production callsites (engine.resolve
13
+ * and engine.estimate) always pass `this`, so loaders can safely use
14
+ * `ctx.context!` when they need it.
15
+ */
16
+ context?: ContextEngine;
17
+ signal?: AbortSignal;
18
+ }
19
+ /**
20
+ * Loader functions return `unknown` (not `FragmentData`) because `FragmentData`'s
21
+ * inclusion of `Promise<unknown>`/`AsyncIterable<unknown>` makes TypeScript's
22
+ * recursive-promise inference blow up at the boundary. The walker re-feeds every
23
+ * loader result through `walkData`, so any nested lazy values still get materialized.
24
+ */
25
+ export type AsyncFragmentLoader = (ctx: LoadContext) => Promise<unknown>;
26
+ export type SyncFragmentLoader = (ctx: LoadContext) => unknown;
27
+ export type GeneratorFragmentLoader = (ctx: LoadContext) => AsyncIterable<unknown> | Iterable<unknown>;
28
+ export interface ValueResolver {
29
+ readonly name: string;
30
+ /**
31
+ * When true, the walker throws if this resolver is dispatched without a
32
+ * sandbox in `LoadContext`. Default false (Promise/Iterable resolvers don't
33
+ * touch the sandbox). Function-bodied resolvers (async/sync/generator) set
34
+ * this to true so loaders can safely access `ctx.sandbox` in their bodies.
35
+ */
36
+ readonly requiresSandbox?: boolean;
37
+ canResolve(value: unknown): boolean;
38
+ /**
39
+ * Returns the materialized value. Typed `unknown` (not `FragmentData`) to avoid
40
+ * TypeScript's recursive-promise inference blowup — callers cast at the boundary.
41
+ * The walker re-feeds this through `walkData`, so recursive lazy values are still resolved.
42
+ */
43
+ resolve(value: unknown, ctx: LoadContext): Promise<unknown>;
44
+ }
45
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/resolvers/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AACzE,MAAM,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC;AAC/D,MAAM,MAAM,uBAAuB,GAAG,CACpC,GAAG,EAAE,WAAW,KACb,aAAa,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;IACpC;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7D"}
@@ -1,4 +1,7 @@
1
1
  import type { WordNode } from 'just-bash';
2
- export declare function asStaticWordText(word: WordNode | null | undefined): string | null;
3
- export declare function asStaticWordPartText(parts: Array<Record<string, unknown>>): string | null;
2
+ export interface StaticWordTextOptions {
3
+ preserveLegacyBackticks?: boolean;
4
+ }
5
+ export declare function asStaticWordText(word: WordNode | null | undefined, options?: StaticWordTextOptions): string | null;
6
+ export declare function asStaticWordPartText(parts: Array<Record<string, unknown>>, options?: StaticWordTextOptions): string | null;
4
7
  //# sourceMappingURL=ast-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ast-utils.d.ts","sourceRoot":"","sources":["../../../src/lib/sandbox/ast-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,GAChC,MAAM,GAAG,IAAI,CAOf;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACpC,MAAM,GAAG,IAAI,CAgCf"}
1
+ {"version":3,"file":"ast-utils.d.ts","sourceRoot":"","sources":["../../../src/lib/sandbox/ast-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGtD,MAAM,WAAW,qBAAqB;IACpC,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,EACjC,OAAO,GAAE,qBAA0B,GAClC,MAAM,GAAG,IAAI,CAQf;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACrC,OAAO,GAAE,qBAA0B,GAClC,MAAM,GAAG,IAAI,CA0Cf"}
@@ -1 +1 @@
1
- {"version":3,"file":"bash-tool.d.ts","sourceRoot":"","sources":["../../../src/lib/sandbox/bash-tool.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,qBAAqB,EAE3B,MAAM,WAAW,CAAC;AAKnB,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAEjB,MAAM,YAAY,CAAC;AAMpB,MAAM,WAAW,+BAAgC,SAAQ,qBAAqB;IAC5E;;;;OAIG;IACH,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,cAAc,CAClC,OAAO,GAAE,+BAAoC,GAC5C,OAAO,CAAC,YAAY,CAAC,CAyFvB"}
1
+ {"version":3,"file":"bash-tool.d.ts","sourceRoot":"","sources":["../../../src/lib/sandbox/bash-tool.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,qBAAqB,EAE3B,MAAM,WAAW,CAAC;AAKnB,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAEjB,MAAM,YAAY,CAAC;AAMpB,MAAM,WAAW,+BAAgC,SAAQ,qBAAqB;IAC5E;;;;OAIG;IACH,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,cAAc,CAClC,OAAO,GAAE,+BAAoC,GAC5C,OAAO,CAAC,YAAY,CAAC,CAkGvB"}
@@ -1,5 +1,6 @@
1
1
  import type { CreateBashToolOptions } from 'bash-tool';
2
- import { type BinaryInstall, type DockerMount, type DockerResources, type DockerSandbox } from './docker-sandbox.ts';
2
+ import { type DockerMount, type DockerResources, type DockerSandbox } from './docker-sandbox.ts';
3
+ import type { Installer } from './installers/installer.ts';
3
4
  import type { AgentSandbox, SkillUploadInput } from './types.ts';
4
5
  /**
5
6
  * Base options shared by RuntimeContainerToolOptions and DockerfileContainerToolOptions.
@@ -24,10 +25,31 @@ interface BaseContainerToolOptions extends Omit<CreateBashToolOptions, 'sandbox'
24
25
  export interface RuntimeContainerToolOptions extends BaseContainerToolOptions {
25
26
  /** Docker image to use (default: 'alpine:latest') */
26
27
  image?: string;
27
- /** Packages to install in the container via package manager (apk/apt) */
28
- packages?: string[];
29
- /** Binaries to install from URLs (for tools not in package managers) */
30
- binaries?: BinaryInstall[];
28
+ /**
29
+ * Ordered list of installers run after the container starts.
30
+ *
31
+ * Built-in factory helpers:
32
+ * - `pkg([...])` — OS packages (apk/apt-get auto-detected)
33
+ * - `urlBinary({ name, url, binaryPath? })` — pre-built binary from a URL
34
+ * - `npm(name, { ensureRuntime?, version? })` — global npm install
35
+ * - `pip(name, { ensureRuntime?, version? })` — pip install
36
+ * - `githubRelease({ owner, repo, version, name, asset })` — GitHub release asset
37
+ *
38
+ * For anything else, subclass `Installer` and pass an instance directly.
39
+ *
40
+ * @example
41
+ * ```ts
42
+ * import { pkg, urlBinary, npm } from '@deepagents/context';
43
+ *
44
+ * createContainerTool({
45
+ * installers: [
46
+ * pkg(['curl', 'jq']),
47
+ * npm('prettier', { ensureRuntime: true }),
48
+ * ],
49
+ * });
50
+ * ```
51
+ */
52
+ installers?: Installer[];
31
53
  }
32
54
  /**
33
55
  * Options for container tool using DockerfileStrategy.
@@ -89,8 +111,10 @@ export type ContainerToolResult = Omit<AgentSandbox, 'sandbox'> & {
89
111
  *
90
112
  * @example RuntimeStrategy (default)
91
113
  * ```typescript
114
+ * import { createContainerTool, pkg } from '@deepagents/context';
115
+ *
92
116
  * const sandbox = await createContainerTool({
93
- * packages: ['curl', 'jq'],
117
+ * installers: [pkg(['curl', 'jq'])],
94
118
  * mounts: [{
95
119
  * hostPath: process.cwd(),
96
120
  * containerPath: '/workspace',
@@ -112,7 +136,7 @@ export type ContainerToolResult = Omit<AgentSandbox, 'sandbox'> & {
112
136
  * @example RuntimeStrategy with skills
113
137
  * ```typescript
114
138
  * const sandbox = await createContainerTool({
115
- * packages: ['curl', 'jq'],
139
+ * installers: [pkg(['curl', 'jq'])],
116
140
  * skills: [
117
141
  * { host: './skills', sandbox: '/workspace/skills' },
118
142
  * ],
@@ -149,7 +173,7 @@ export type ContainerToolResult = Omit<AgentSandbox, 'sandbox'> & {
149
173
  * @example With hooks for logging
150
174
  * ```typescript
151
175
  * const sandbox = await createContainerTool({
152
- * packages: ['python3'],
176
+ * installers: [pkg(['python3'])],
153
177
  * onBeforeBashCall: ({ command }) => {
154
178
  * console.log('Running:', command);
155
179
  * },
@@ -1 +1 @@
1
- {"version":3,"file":"container-tool.d.ts","sourceRoot":"","sources":["../../../src/lib/sandbox/container-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAGvD,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,aAAa,EAKnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEjE;;GAEG;AACH,UAAU,wBAAyB,SAAQ,IAAI,CAC7C,qBAAqB,EACrB,SAAS,GAAG,iBAAiB,CAC9B;IACC,wDAAwD;IACxD,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,wCAAwC;IACxC,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,oDAAoD;IACpD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B;;;OAGG;IACH,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,2BAA4B,SAAQ,wBAAwB;IAC3E,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,8BAA+B,SAAQ,wBAAwB;IAC9E,sEAAsE;IACtE,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,2BAA4B,SAAQ,IAAI,CACvD,qBAAqB,EACrB,SAAS,GAAG,iBAAiB,CAC9B;IACC,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B;;;OAGG;IACH,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAC5B,2BAA2B,GAC3B,8BAA8B,GAC9B,2BAA2B,CAAC;AAEhC;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,GAAG;IAChE,OAAO,EAAE,aAAa,CAAC;CACxB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuFG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,mBAAmB,CAAC,CAqD9B"}
1
+ {"version":3,"file":"container-tool.d.ts","sourceRoot":"","sources":["../../../src/lib/sandbox/container-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAGvD,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,aAAa,EAKnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEjE;;GAEG;AACH,UAAU,wBAAyB,SAAQ,IAAI,CAC7C,qBAAqB,EACrB,SAAS,GAAG,iBAAiB,CAC9B;IACC,wDAAwD;IACxD,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,wCAAwC;IACxC,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,oDAAoD;IACpD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B;;;OAGG;IACH,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,2BAA4B,SAAQ,wBAAwB;IAC3E,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,8BAA+B,SAAQ,wBAAwB;IAC9E,sEAAsE;IACtE,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,2BAA4B,SAAQ,IAAI,CACvD,qBAAqB,EACrB,SAAS,GAAG,iBAAiB,CAC9B;IACC,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B;;;OAGG;IACH,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAC5B,2BAA2B,GAC3B,8BAA8B,GAC9B,2BAA2B,CAAC;AAEhC;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,GAAG;IAChE,OAAO,EAAE,aAAa,CAAC;CACxB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyFG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,mBAAmB,CAAC,CAoD9B"}
@@ -0,0 +1,58 @@
1
+ export declare class DockerSandboxError extends Error {
2
+ readonly containerId?: string;
3
+ constructor(message: string, containerId?: string);
4
+ }
5
+ export declare class DockerNotAvailableError extends DockerSandboxError {
6
+ constructor();
7
+ }
8
+ export declare class ContainerCreationError extends DockerSandboxError {
9
+ readonly image: string;
10
+ cause?: Error;
11
+ constructor(message: string, image: string, cause?: Error);
12
+ }
13
+ export declare class PackageInstallError extends DockerSandboxError {
14
+ readonly packages: string[];
15
+ readonly image: string;
16
+ readonly packageManager: 'apk' | 'apt-get';
17
+ readonly stderr: string;
18
+ constructor(packages: string[], image: string, packageManager: 'apk' | 'apt-get', stderr: string, containerId?: string);
19
+ }
20
+ export type InstallSource = 'url' | 'npm' | 'pypi' | 'github-release';
21
+ export interface InstallErrorOptions {
22
+ /** Logical name of the thing being installed (e.g. `'prettier'`, `'presenterm'`). */
23
+ target: string;
24
+ /** Where it was being fetched from. */
25
+ source: InstallSource;
26
+ /** Underlying failure message (typically stderr). */
27
+ reason: string;
28
+ /** Resolved URL when applicable (URL binary / GitHub release). */
29
+ url?: string;
30
+ containerId?: string;
31
+ }
32
+ export declare class InstallError extends DockerSandboxError {
33
+ readonly target: string;
34
+ readonly source: InstallSource;
35
+ readonly reason: string;
36
+ readonly url?: string;
37
+ constructor(opts: InstallErrorOptions);
38
+ }
39
+ export declare class MissingRuntimeError extends DockerSandboxError {
40
+ readonly runtime: string;
41
+ readonly required: string[];
42
+ constructor(runtime: string, required: string[], details?: string, containerId?: string);
43
+ }
44
+ export declare class MountPathError extends DockerSandboxError {
45
+ readonly hostPath: string;
46
+ readonly containerPath: string;
47
+ constructor(hostPath: string, containerPath: string);
48
+ }
49
+ export declare class DockerfileBuildError extends DockerSandboxError {
50
+ readonly stderr: string;
51
+ constructor(stderr: string);
52
+ }
53
+ export declare class ComposeStartError extends DockerSandboxError {
54
+ readonly composeFile: string;
55
+ readonly stderr: string;
56
+ constructor(composeFile: string, stderr: string);
57
+ }
58
+ //# sourceMappingURL=docker-sandbox-errors.d.ts.map