@deepagents/context 3.0.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +61 -4
- package/dist/browser.js +58 -90
- package/dist/browser.js.map +3 -3
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1669 -1298
- package/dist/index.js.map +4 -4
- package/dist/lib/agent.d.ts.map +1 -1
- package/dist/lib/chain-summary.d.ts +1 -0
- package/dist/lib/chain-summary.d.ts.map +1 -1
- package/dist/lib/chat.d.ts.map +1 -1
- package/dist/lib/engine.d.ts +51 -1
- package/dist/lib/engine.d.ts.map +1 -1
- package/dist/lib/fragments/message/user.d.ts +53 -16
- package/dist/lib/fragments/message/user.d.ts.map +1 -1
- package/dist/lib/fragments/reminders/once.d.ts +22 -0
- package/dist/lib/fragments/reminders/once.d.ts.map +1 -0
- package/dist/lib/fragments/reminders/turn-predicates.d.ts +1 -1
- package/dist/lib/fragments/reminders/turn-predicates.d.ts.map +1 -1
- package/dist/lib/sandbox/bash-tool.d.ts +28 -4
- package/dist/lib/sandbox/bash-tool.d.ts.map +1 -1
- package/dist/lib/sandbox/daytona-sandbox.d.ts +6 -18
- package/dist/lib/sandbox/daytona-sandbox.d.ts.map +1 -1
- package/dist/lib/sandbox/docker-sandbox.d.ts +14 -0
- package/dist/lib/sandbox/docker-sandbox.d.ts.map +1 -1
- package/dist/lib/sandbox/file-changes.d.ts +83 -0
- package/dist/lib/sandbox/file-changes.d.ts.map +1 -0
- package/dist/lib/sandbox/index.d.ts +1 -1
- package/dist/lib/sandbox/index.d.ts.map +1 -1
- package/dist/lib/sandbox/types.d.ts +0 -8
- package/dist/lib/sandbox/types.d.ts.map +1 -1
- package/dist/lib/save/reminder-eval.d.ts +19 -0
- package/dist/lib/save/reminder-eval.d.ts.map +1 -0
- package/dist/lib/save/save-pipeline.d.ts +8 -2
- package/dist/lib/save/save-pipeline.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/lib/sandbox/file-events.d.ts +0 -42
- package/dist/lib/sandbox/file-events.d.ts.map +0 -1
- package/dist/lib/save/reminder-target-handler.d.ts +0 -36
- package/dist/lib/save/reminder-target-handler.d.ts.map +0 -1
- package/dist/lib/save/tool-output-target-handler.d.ts +0 -7
- package/dist/lib/save/tool-output-target-handler.d.ts.map +0 -1
- package/dist/lib/save/user-target-handler.d.ts +0 -7
- package/dist/lib/save/user-target-handler.d.ts.map +0 -1
package/dist/lib/agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/lib/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,MAAM,EACN,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,IAAI,EACT,KAAK,UAAU,EACf,KAAK,OAAO,EAMZ,YAAY,EAKb,MAAM,IAAI,CAAC;AAIZ,OAAO,EAAE,KAAK,aAAa,EAAe,MAAM,aAAa,CAAC;AAC9D,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,gBAAgB,EAMtB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,KAAK,SAAS,EAGf,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,MAAM,iBAAiB,GAAG,CAC9B,MAAM,EAAE,kBAAkB,CAAC,OAAO,EAAE,GAAG,CAAC,KACrC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAE9B,MAAM,WAAW,WAAW,CAAC,GAAG,EAAE,IAAI,GAAG,GAAG;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,UAAU,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAC9C,eAAe,CAAC,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;IACxE,sBAAsB,CAAC,EAAE,UAAU,CACjC,OAAO,YAAY,CACpB,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,cAAM,KAAK,CAAC,GAAG,EAAE,IAAI,GAAG,GAAG;;IAGzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;gBACnB,OAAO,EAAE,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/lib/agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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;AAEtD,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;IAqCpC,aAAa,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAQ9C,KAAK,IAAI,YAAY;CAWtB"}
|
package/dist/lib/chat.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/lib/engine.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type LanguageModelUsage, type UIMessage } from 'ai';
|
|
1
|
+
import { type LanguageModelUsage, type PrepareStepFunction, type Tool, type UIMessage } from 'ai';
|
|
2
2
|
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';
|
|
@@ -214,6 +214,56 @@ export declare class ContextEngine {
|
|
|
214
214
|
save(options?: {
|
|
215
215
|
branch?: boolean;
|
|
216
216
|
}): Promise<SaveResult>;
|
|
217
|
+
/**
|
|
218
|
+
* Build the `prepareStep` hook that injects steer reminders mid-loop.
|
|
219
|
+
*
|
|
220
|
+
* Semantics are "inject once, persist": when a steer reminder's predicate
|
|
221
|
+
* fires (only after the model has produced ≥1 step with content — the mid-loop
|
|
222
|
+
* gate), its `<system-reminder>` user message is spliced into the model prompt
|
|
223
|
+
* at the step boundary where it fired AND re-spliced on every subsequent step,
|
|
224
|
+
* so the model keeps seeing it for the rest of the loop.
|
|
225
|
+
*
|
|
226
|
+
* Firing is edge-triggered with a post-fire re-sample: each fire resets the
|
|
227
|
+
* elapsed reference (`lastSyntheticAt`), then the config is immediately
|
|
228
|
+
* re-evaluated against the reset context — self-resetting predicates like
|
|
229
|
+
* `elapsedExceeds` read false and re-arm (so they recur every N within one
|
|
230
|
+
* stream), while constant predicates like `everyNTurns` read true and disarm
|
|
231
|
+
* (so they fire once per stream). Any later false sample re-arms a config.
|
|
232
|
+
* All state is closure-local (a fresh SteerSession per call), so overlapping
|
|
233
|
+
* streams / guardrail retries never share a cursor.
|
|
234
|
+
*
|
|
235
|
+
* The session is also consumed by writeAssistantSegment, which carves the
|
|
236
|
+
* streamed assistant message into the matching `[assistant, steer, assistant]`
|
|
237
|
+
* split — so the stored chain reproduces exactly the prompt the model saw
|
|
238
|
+
* (store/prompt parity).
|
|
239
|
+
*/
|
|
240
|
+
createSteerPrepareStep<TOOLS extends Record<string, Tool> = Record<string, Tool>>(): PrepareStepFunction<TOOLS>;
|
|
241
|
+
/**
|
|
242
|
+
* Persist the streamed assistant message, carving it into the steer split when
|
|
243
|
+
* steer reminders fired this turn.
|
|
244
|
+
*
|
|
245
|
+
* Called from chat()'s onStepFinish/onFinish (and the guardrail path) with the
|
|
246
|
+
* cumulative response message. Segment boundaries come from the `step-start`
|
|
247
|
+
* markers in the message itself — no cross-track store read — so the carve is
|
|
248
|
+
* race-free. Idempotent: finalized segments keep stable ids; the open segment
|
|
249
|
+
* is updated in place. With no active steer it degrades to a plain in-place
|
|
250
|
+
* write of the whole message to the reserved head.
|
|
251
|
+
*/
|
|
252
|
+
writeAssistantSegment(message: UIMessage): Promise<void>;
|
|
253
|
+
/**
|
|
254
|
+
* Evaluate `target: 'tool-output'` reminders against a tool's raw result and
|
|
255
|
+
* return the (possibly wrapped) output.
|
|
256
|
+
*
|
|
257
|
+
* Called by the agent's tool wrapper right after each `execute()` resolves —
|
|
258
|
+
* upstream of both the model and the store, so the next model step and the
|
|
259
|
+
* persisted chain see the exact same wrapped value (store/prompt parity).
|
|
260
|
+
*
|
|
261
|
+
* Returns the output unchanged when no tool-output reminder fires. Without a
|
|
262
|
+
* persisted user message there is no turn context to evaluate against
|
|
263
|
+
* (e.g. asTool forks that set a pending user without saving), so the output
|
|
264
|
+
* passes through untouched.
|
|
265
|
+
*/
|
|
266
|
+
applyToolOutputReminders(output: unknown): Promise<unknown>;
|
|
217
267
|
/**
|
|
218
268
|
* Estimate token count and cost for the full context.
|
|
219
269
|
*
|
package/dist/lib/engine.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/lib/engine.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,
|
|
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
|
|
1
|
+
import { type LanguageModelUsage, 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 {
|
|
@@ -33,9 +33,32 @@ export interface WhenContext {
|
|
|
33
33
|
messageCount: number;
|
|
34
34
|
lastAssistantMessage?: UIMessage;
|
|
35
35
|
lastAssistantMessages?: UIMessage[];
|
|
36
|
+
/**
|
|
37
|
+
* Ids that a fire-once latch has already fired for in this conversation
|
|
38
|
+
* (persisted synth onceIds ∪ this stream's fires). Populated only during
|
|
39
|
+
* steer evaluation; `once(id)` reads it to suppress a second fire.
|
|
40
|
+
*/
|
|
41
|
+
firedOnceIds?: ReadonlySet<string>;
|
|
42
|
+
/**
|
|
43
|
+
* Per-evaluation buffer that `once(id)` appends to when consulted and not yet
|
|
44
|
+
* fired. The engine commits these ids — to the session and the synth — only
|
|
45
|
+
* if the whole reminder fires. One fresh collector per config evaluation.
|
|
46
|
+
*/
|
|
47
|
+
onceCollector?: Set<string>;
|
|
36
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* The engine-level slice of `WhenContext` — everything that does not depend on a
|
|
51
|
+
* specific carrier message. Callers add `content`/`currentMessage`/the
|
|
52
|
+
* last-assistant fields once they have located the message being evaluated.
|
|
53
|
+
*/
|
|
54
|
+
export type BaseWhenCtx = Omit<WhenContext, 'content' | 'currentMessage' | 'lastAssistantMessage' | 'lastAssistantMessages'>;
|
|
37
55
|
export type WhenPredicate = (ctx: WhenContext) => boolean | Promise<boolean>;
|
|
38
|
-
export type ReminderTarget = 'user' | 'tool-output';
|
|
56
|
+
export type ReminderTarget = 'user' | 'tool-output' | 'steer';
|
|
57
|
+
export interface SyntheticSteerMetadata {
|
|
58
|
+
source: 'steer-reminder';
|
|
59
|
+
firedAt: number;
|
|
60
|
+
onceIds?: string[];
|
|
61
|
+
}
|
|
39
62
|
export interface UserReminderOptions {
|
|
40
63
|
asPart?: boolean;
|
|
41
64
|
target?: 'user';
|
|
@@ -69,17 +92,13 @@ export interface UserReminderMetadata {
|
|
|
69
92
|
partIndex: number;
|
|
70
93
|
start: number;
|
|
71
94
|
end: number;
|
|
72
|
-
mode: 'inline' | 'part'
|
|
95
|
+
mode: 'inline' | 'part';
|
|
73
96
|
}
|
|
74
97
|
export type ReminderRange = {
|
|
75
98
|
partIndex: number;
|
|
76
99
|
start: number;
|
|
77
100
|
end: number;
|
|
78
101
|
};
|
|
79
|
-
type OutputAvailableToolPart = ToolUIPart & {
|
|
80
|
-
state: 'output-available';
|
|
81
|
-
output: unknown;
|
|
82
|
-
};
|
|
83
102
|
export declare function getReminderRanges(metadata: Record<string, unknown> | undefined): ReminderRange[];
|
|
84
103
|
export declare function stripTextByRanges(text: string, ranges: Array<{
|
|
85
104
|
start: number;
|
|
@@ -113,14 +132,16 @@ export declare function applyReminderToMessage(message: UIMessage, item: {
|
|
|
113
132
|
asPart: boolean;
|
|
114
133
|
metadata?: Record<string, unknown>;
|
|
115
134
|
}, ctx: ReminderContext): UserReminderMetadata | null;
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
135
|
+
/**
|
|
136
|
+
* Wrap a tool's raw `execute()` result with fired reminder texts.
|
|
137
|
+
*
|
|
138
|
+
* Applied at the tool-execution boundary — before the AI SDK hands the result
|
|
139
|
+
* back to the model — so the wrapped value flows identically into the next
|
|
140
|
+
* model step and the persisted chain. The envelope shape is uniform regardless
|
|
141
|
+
* of the output type, which lets `stripReminders` undo it structurally without
|
|
142
|
+
* metadata bookkeeping.
|
|
143
|
+
*/
|
|
144
|
+
export declare function applyRemindersToToolOutput(output: unknown, texts: string[]): unknown;
|
|
124
145
|
export declare function mergeReminderMetadata(message: UIMessage, addedReminders: UserReminderMetadata[]): void;
|
|
125
146
|
/**
|
|
126
147
|
* Create an immediate reminder for use inside `user()`.
|
|
@@ -211,5 +232,21 @@ export declare function reminder(fragment: ContextFragment, options: Conditional
|
|
|
211
232
|
export declare function user(content: string | (UIMessage & {
|
|
212
233
|
role: 'user';
|
|
213
234
|
}), ...reminders: UserReminder[]): MessageFragment;
|
|
214
|
-
|
|
235
|
+
/**
|
|
236
|
+
* Build the hidden synthetic user message injected mid-loop for steer reminders.
|
|
237
|
+
*
|
|
238
|
+
* Multiple reminder texts that fire at the same step boundary are folded into a
|
|
239
|
+
* single user message (one `<system-reminder>` text part each) so the model
|
|
240
|
+
* never sees two consecutive user messages — which providers like Anthropic
|
|
241
|
+
* reject. The `metadata.synthetic` marker lets the chain summary, title
|
|
242
|
+
* generation, and `stripReminders` treat these as non-conversational.
|
|
243
|
+
*/
|
|
244
|
+
export declare function synthesizeSteerUserMessage(text: string | string[], firedAt: number, onceIds?: string[]): UIMessage & {
|
|
245
|
+
role: 'user';
|
|
246
|
+
};
|
|
247
|
+
export declare function isSyntheticSteerMessage(message: UIMessage): message is UIMessage & {
|
|
248
|
+
metadata: {
|
|
249
|
+
synthetic: SyntheticSteerMetadata;
|
|
250
|
+
};
|
|
251
|
+
};
|
|
215
252
|
//# sourceMappingURL=user.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../src/lib/fragments/message/user.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,
|
|
1
|
+
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../src/lib/fragments/message/user.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { WhenPredicate } from '../message/user.ts';
|
|
2
|
+
/**
|
|
3
|
+
* Durable fire-once latch, composed into a steer reminder's `when`.
|
|
4
|
+
*
|
|
5
|
+
* Two effects, both on `ctx` and nothing else:
|
|
6
|
+
* - READ: returns false once `id` has fired in this conversation (the persisted
|
|
7
|
+
* synth carries the id, so suppression survives restarts).
|
|
8
|
+
* - INTENT: while not-yet-fired, appends `id` to `ctx.onceCollector` — "latch
|
|
9
|
+
* this if the whole reminder fires". The actual commit is the engine's, gated
|
|
10
|
+
* on the reminder firing, so order inside `and`/`or` never matters and a
|
|
11
|
+
* short-circuited evaluation (where `once` is never reached) latches nothing.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* reminder('recap', {
|
|
16
|
+
* when: and(elapsedExceeds(40 * 60_000), once('recap')),
|
|
17
|
+
* target: 'steer',
|
|
18
|
+
* });
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export declare function once(id: string): WhenPredicate;
|
|
22
|
+
//# sourceMappingURL=once.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"once.d.ts","sourceRoot":"","sources":["../../../../src/lib/fragments/reminders/once.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,CAkB9C"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { WhenPredicate } from '../message/user.ts';
|
|
2
2
|
export declare function everyNTurns(n: number): WhenPredicate;
|
|
3
|
-
export declare function
|
|
3
|
+
export declare function first(): WhenPredicate;
|
|
4
4
|
export declare function firstN(n: number): WhenPredicate;
|
|
5
5
|
export declare function afterTurn(n: number): WhenPredicate;
|
|
6
6
|
//# sourceMappingURL=turn-predicates.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turn-predicates.d.ts","sourceRoot":"","sources":["../../../../src/lib/fragments/reminders/turn-predicates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,aAAa,CAEpD;AAED,wBAAgB,
|
|
1
|
+
{"version":3,"file":"turn-predicates.d.ts","sourceRoot":"","sources":["../../../../src/lib/fragments/reminders/turn-predicates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,aAAa,CAEpD;AAED,wBAAgB,KAAK,IAAI,aAAa,CAErC;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,aAAa,CAE/C;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,aAAa,CAElD"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type CreateBashToolOptions } from 'bash-tool';
|
|
2
|
+
import { type FileChange } from './file-changes.ts';
|
|
2
3
|
import type { AgentSandbox, DisposableSandbox, SkillUploadInput } from './types.ts';
|
|
3
4
|
export interface CreateBashToolWithSkillsOptions extends Omit<CreateBashToolOptions, 'sandbox'> {
|
|
4
5
|
/**
|
|
@@ -15,16 +16,39 @@ export interface CreateBashToolWithSkillsOptions extends Omit<CreateBashToolOpti
|
|
|
15
16
|
*/
|
|
16
17
|
skills?: SkillUploadInput[];
|
|
17
18
|
/**
|
|
18
|
-
* Working directory + file-
|
|
19
|
-
* `/workspace` (matching upstream `bash-tool`). `
|
|
20
|
-
*
|
|
19
|
+
* Working directory + file-change observation root. Defaults to
|
|
20
|
+
* `/workspace` (matching upstream `bash-tool`). `onFileChanges` reports
|
|
21
|
+
* activity rooted here.
|
|
21
22
|
*/
|
|
22
23
|
destination?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Called once per tool-call command (and per `spawn`) with that call's
|
|
26
|
+
* `FileChange[]` — the reactive post-tool effect.
|
|
27
|
+
*
|
|
28
|
+
* File-change tracking is **always on** via `strace`: a self-test runs at
|
|
29
|
+
* startup and throws `StraceUnavailableError` if `strace` is missing, ptrace
|
|
30
|
+
* is blocked, or the trace is unparseable (e.g. emulated arch). The backend
|
|
31
|
+
* must therefore be strace-capable — the in-process virtual sandbox is not.
|
|
32
|
+
*
|
|
33
|
+
* Throwing acts as a gate. On a tool-call command the throw fails the bash
|
|
34
|
+
* tool call: throw a `BashException` to control the exact failed `CommandResult`
|
|
35
|
+
* the model sees (rendered by `withBashExceptionCatch` via its `format()`); any
|
|
36
|
+
* other error fails the call generically. On `spawn` there is no tool result to
|
|
37
|
+
* fail, so the throw is isolated and surfaced via `onError`. The underlying
|
|
38
|
+
* command still ran in both cases.
|
|
39
|
+
*/
|
|
40
|
+
onFileChanges?: (changes: FileChange[]) => void | Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
* Called when `onFileChanges` throws on the `spawn` path — its only failure
|
|
43
|
+
* signal. Tool-call throws fail the command instead and never reach here.
|
|
44
|
+
* Defaults to `console.warn`.
|
|
45
|
+
*/
|
|
46
|
+
onError?: (error: unknown) => void;
|
|
23
47
|
}
|
|
24
48
|
/**
|
|
25
49
|
* Composes an `AgentSandbox` from a backend by layering decorators:
|
|
26
50
|
*
|
|
27
|
-
* backend →
|
|
51
|
+
* backend → traceFileChanges → withBashExceptionCatch → withAbortSignal
|
|
28
52
|
*
|
|
29
53
|
* The composed sandbox is handed to upstream `bash-tool`; upstream's
|
|
30
54
|
* internal `bash` / `readFile` / `writeFile` tools therefore close over
|
|
@@ -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;
|
|
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;AAMnB,OAAO,EACL,KAAK,UAAU,EAGhB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAEjB,MAAM,YAAY,CAAC;AA8BpB,MAAM,WAAW,+BAAgC,SAAQ,IAAI,CAC3D,qBAAqB,EACrB,SAAS,CACV;IACC;;;;;OAKG;IACH,OAAO,EAAE,iBAAiB,CAAC;IAC3B;;;;OAIG;IACH,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC5B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;;;;;;;;;OAeG;IACH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,+BAA+B,GACvC,OAAO,CAAC,YAAY,CAAC,CAmIvB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Daytona } from '@daytona/sdk';
|
|
1
2
|
import type { DisposableSandbox } from './types.ts';
|
|
2
3
|
export declare const DAYTONA_DEFAULT_DESTINATION = "/home/daytona";
|
|
3
4
|
export interface DaytonaResources {
|
|
@@ -12,26 +13,17 @@ export interface DaytonaVolumeMount {
|
|
|
12
13
|
[key: string]: unknown;
|
|
13
14
|
}
|
|
14
15
|
export interface DaytonaSandboxOptions {
|
|
15
|
-
apiKey?: string;
|
|
16
|
-
jwtToken?: string;
|
|
17
|
-
organizationId?: string;
|
|
18
|
-
apiUrl?: string;
|
|
19
|
-
target?: string;
|
|
20
|
-
otelEnabled?: boolean;
|
|
21
|
-
experimental?: Record<string, unknown>;
|
|
22
16
|
/**
|
|
23
|
-
* Existing Daytona sandbox id or name to attach to.
|
|
24
|
-
* preserved on dispose unless `deleteOnDispose` is explicitly true.
|
|
17
|
+
* Existing Daytona sandbox id or name to attach to.
|
|
25
18
|
*/
|
|
26
19
|
sandboxId?: string;
|
|
27
20
|
/**
|
|
28
21
|
* Stable sandbox name. When provided without `sandboxId`, creation uses
|
|
29
22
|
* get-or-create semantics: attach to the existing sandbox of this name if one
|
|
30
23
|
* is found (starting it if it is stopped), otherwise create it from the
|
|
31
|
-
* supplied image/snapshot, env vars, volumes, and lifecycle intervals.
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
* `sandboxId`.
|
|
24
|
+
* supplied image/snapshot, env vars, volumes, and lifecycle intervals.
|
|
25
|
+
* Incompatible with `sandboxId`. `dispose()` never deletes the sandbox — the
|
|
26
|
+
* caller owns its lifecycle through the supplied client.
|
|
35
27
|
*/
|
|
36
28
|
name?: string;
|
|
37
29
|
user?: string;
|
|
@@ -54,19 +46,15 @@ export interface DaytonaSandboxOptions {
|
|
|
54
46
|
deleteTimeout?: number;
|
|
55
47
|
commandTimeout?: number;
|
|
56
48
|
onSnapshotCreateLogs?: (chunk: string) => void;
|
|
57
|
-
deleteOnDispose?: boolean;
|
|
58
49
|
}
|
|
59
50
|
export declare class DaytonaSandboxError extends Error {
|
|
60
51
|
constructor(message: string, cause?: Error);
|
|
61
52
|
}
|
|
62
|
-
export declare class DaytonaNotAvailableError extends DaytonaSandboxError {
|
|
63
|
-
constructor(cause?: Error);
|
|
64
|
-
}
|
|
65
53
|
export declare class DaytonaCreationError extends DaytonaSandboxError {
|
|
66
54
|
constructor(message: string, cause?: Error);
|
|
67
55
|
}
|
|
68
56
|
export declare class DaytonaCommandError extends DaytonaSandboxError {
|
|
69
57
|
constructor(message: string, cause?: Error);
|
|
70
58
|
}
|
|
71
|
-
export declare function createDaytonaSandbox(options?: DaytonaSandboxOptions): Promise<DisposableSandbox>;
|
|
59
|
+
export declare function createDaytonaSandbox(client: Daytona, options?: DaytonaSandboxOptions): Promise<DisposableSandbox>;
|
|
72
60
|
//# sourceMappingURL=daytona-sandbox.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daytona-sandbox.d.ts","sourceRoot":"","sources":["../../../src/lib/sandbox/daytona-sandbox.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"daytona-sandbox.d.ts","sourceRoot":"","sources":["../../../src/lib/sandbox/daytona-sandbox.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,OAAO,EAER,MAAM,cAAc,CAAC;AAItB,OAAO,KAAK,EACV,iBAAiB,EAKlB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,2BAA2B,kBAAkB,CAAC;AAM3D,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD;AAED,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAK3C;AAED,qBAAa,oBAAqB,SAAQ,mBAAmB;gBAC/C,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAI3C;AAED,qBAAa,mBAAoB,SAAQ,mBAAmB;gBAC9C,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAI3C;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,OAAO,EACf,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,iBAAiB,CAAC,CAyB5B"}
|
|
@@ -83,6 +83,12 @@ export interface DockerfileSandboxOptions {
|
|
|
83
83
|
dockerfile: string;
|
|
84
84
|
/** Build context directory (default: `'.'`). */
|
|
85
85
|
context?: string;
|
|
86
|
+
/**
|
|
87
|
+
* Stream `docker build` output to the parent stdio instead of buffering it.
|
|
88
|
+
* A Dockerfile build (e.g. `npm ci` + a project build) can take minutes and
|
|
89
|
+
* otherwise runs silently. Default `false`.
|
|
90
|
+
*/
|
|
91
|
+
showBuildLogs?: boolean;
|
|
86
92
|
volumes?: DockerSandboxVolume[];
|
|
87
93
|
resources?: DockerResources;
|
|
88
94
|
env?: Record<string, string>;
|
|
@@ -192,6 +198,7 @@ export declare class RuntimeStrategy extends DockerSandboxStrategy {
|
|
|
192
198
|
export interface DockerfileStrategyArgs extends DockerSandboxStrategyArgs {
|
|
193
199
|
dockerfile: string;
|
|
194
200
|
context?: string;
|
|
201
|
+
showBuildLogs?: boolean;
|
|
195
202
|
}
|
|
196
203
|
/**
|
|
197
204
|
* Builds a custom image from a Dockerfile (with content-hash caching).
|
|
@@ -201,6 +208,7 @@ export declare class DockerfileStrategy extends DockerSandboxStrategy {
|
|
|
201
208
|
private imageTag;
|
|
202
209
|
private dockerfile;
|
|
203
210
|
private dockerContext;
|
|
211
|
+
private showBuildLogs;
|
|
204
212
|
constructor(args: DockerfileStrategyArgs);
|
|
205
213
|
private computeImageTag;
|
|
206
214
|
private isInlineDockerfile;
|
|
@@ -208,6 +216,12 @@ export declare class DockerfileStrategy extends DockerSandboxStrategy {
|
|
|
208
216
|
protected configure(): Promise<void>;
|
|
209
217
|
private imageExists;
|
|
210
218
|
private buildImage;
|
|
219
|
+
/**
|
|
220
|
+
* Run a build command with stdio inherited so its output streams live to the
|
|
221
|
+
* parent terminal. On failure the build error is already on screen; the
|
|
222
|
+
* rejection just carries the exit code.
|
|
223
|
+
*/
|
|
224
|
+
private runStreamed;
|
|
211
225
|
}
|
|
212
226
|
export interface ComposeStrategyArgs {
|
|
213
227
|
compose: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker-sandbox.d.ts","sourceRoot":"","sources":["../../../src/lib/sandbox/docker-sandbox.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"docker-sandbox.d.ts","sourceRoot":"","sources":["../../../src/lib/sandbox/docker-sandbox.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { DisposableSandbox } from './types.ts';
|
|
2
|
+
/**
|
|
3
|
+
* A single filesystem mutation observed for one tool call. Ops are
|
|
4
|
+
* deliberately coarse: strace cannot distinguish a brand-new file from an
|
|
5
|
+
* overwrite within a single command (both are `O_CREAT|O_TRUNC`), so
|
|
6
|
+
* content-touching syscalls collapse to `write`. `delete` and `rename` are
|
|
7
|
+
* unambiguous. Reads are not tracked — strace's syscall filter excludes them.
|
|
8
|
+
*/
|
|
9
|
+
export type FileChangeOp = 'write' | 'delete' | 'rename';
|
|
10
|
+
export interface FileChange {
|
|
11
|
+
op: FileChangeOp;
|
|
12
|
+
path: string;
|
|
13
|
+
/** Source path for a `rename`. */
|
|
14
|
+
from?: string;
|
|
15
|
+
timestamp: number;
|
|
16
|
+
}
|
|
17
|
+
export type StraceUnavailableReason = 'ptrace-blocked' | 'strace-missing' | 'trace-unparseable';
|
|
18
|
+
/**
|
|
19
|
+
* Thrown by {@link selfTestStrace} when per-command strace tracking cannot be
|
|
20
|
+
* used. `reason` lets callers branch (fix-image vs fix-caps vs fix-arch). This
|
|
21
|
+
* is a hard failure by design — there is no silent degrade to the snapshot
|
|
22
|
+
* observer.
|
|
23
|
+
*/
|
|
24
|
+
export declare class StraceUnavailableError extends Error {
|
|
25
|
+
readonly reason: StraceUnavailableReason;
|
|
26
|
+
readonly diagnostics: string;
|
|
27
|
+
constructor(reason: StraceUnavailableReason, diagnostics: string);
|
|
28
|
+
}
|
|
29
|
+
export interface ParseStraceOptions {
|
|
30
|
+
destination: string;
|
|
31
|
+
traceFile?: string;
|
|
32
|
+
traceDir?: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Parse one command's strace output into a coarse `FileChange[]`. Failed
|
|
36
|
+
* syscalls are skipped; paths are filtered to `destination`; the trace file and
|
|
37
|
+
* `/proc`,`/sys`,`/dev` are excluded. Per-path final state collapses repeated
|
|
38
|
+
* writes to one `write`; a path written then deleted within the command is
|
|
39
|
+
* treated as transient and dropped.
|
|
40
|
+
*/
|
|
41
|
+
export declare function parseStraceTrace(raw: string, options: ParseStraceOptions): FileChange[];
|
|
42
|
+
export interface TraceFileChangesOptions {
|
|
43
|
+
destination: string;
|
|
44
|
+
onFileChanges?: (changes: FileChange[]) => void | Promise<void>;
|
|
45
|
+
/**
|
|
46
|
+
* Called when `onFileChanges` throws on the `spawn` path — its only failure
|
|
47
|
+
* signal, since spawn has no tool result and no exception catcher upstream. A
|
|
48
|
+
* throw on the tool-call path fails the command instead, so it never reaches
|
|
49
|
+
* here. Defaults to `console.warn`.
|
|
50
|
+
*/
|
|
51
|
+
onError?: (error: unknown) => void;
|
|
52
|
+
traceDir?: string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Decorates a sandbox so each `executeCommand` is traced and its filesystem
|
|
56
|
+
* mutations parsed into a per-call `FileChange[]`. Per-call attribution is
|
|
57
|
+
* structural — one trace file per `callId` — so it is safe under concurrent
|
|
58
|
+
* tool calls. Each call's manifest is surfaced two stateless ways: attached to
|
|
59
|
+
* the tool result via the bash-meta channel (`meta.fileChanges`, hidden from the
|
|
60
|
+
* model) and passed to `onFileChanges`. No buffer is retained.
|
|
61
|
+
*
|
|
62
|
+
* `readFile` passes through unchanged; `writeFiles` is observed directly (it
|
|
63
|
+
* mutates outside strace's view) — each written file under the observation root
|
|
64
|
+
* becomes a `write` change fed to onFileChanges. `dispose` also sweeps the trace
|
|
65
|
+
* dir. `spawn` is traced the same way — its trace is read when the process exits
|
|
66
|
+
* (strace is the top process, so the trace is fully flushed by then). `spawn`
|
|
67
|
+
* carries no bash-meta scope, so its changes go to `onFileChanges` only.
|
|
68
|
+
*
|
|
69
|
+
* The trace file is always swept once parsed. A throwing `onFileChanges` on the
|
|
70
|
+
* tool-call path propagates to `withBashExceptionCatch` one level up: a caller's
|
|
71
|
+
* `BashException` becomes the tool result (via its `format()`), any other error
|
|
72
|
+
* fails the tool call. The `spawn` path has no exception catcher, so its throw is
|
|
73
|
+
* isolated and surfaced only via `onError` (exit result preserved).
|
|
74
|
+
*/
|
|
75
|
+
export declare function traceFileChanges(sandbox: DisposableSandbox, options: TraceFileChangesOptions): DisposableSandbox;
|
|
76
|
+
/**
|
|
77
|
+
* One-time probe at sandbox setup. Runs a known create/write/rename sequence
|
|
78
|
+
* under strace and asserts the trace is clean and parseable. Throws
|
|
79
|
+
* {@link StraceUnavailableError} (hard-fail) when ptrace is blocked, strace is
|
|
80
|
+
* absent, or the trace is garbled (e.g. amd64 under Rosetta).
|
|
81
|
+
*/
|
|
82
|
+
export declare function selfTestStrace(sandbox: DisposableSandbox): Promise<void>;
|
|
83
|
+
//# sourceMappingURL=file-changes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-changes.d.ts","sourceRoot":"","sources":["../../../src/lib/sandbox/file-changes.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEzD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,YAAY,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,uBAAuB,GAC/B,gBAAgB,GAChB,gBAAgB,GAChB,mBAAmB,CAAC;AAWxB;;;;;GAKG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC;IACzC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;gBAEjB,MAAM,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM;CAQjE;AAgKD,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,kBAAkB,GAC1B,UAAU,EAAE,CA+Fd;AAED,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE;;;;;OAKG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AASD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,uBAAuB,GAC/B,iBAAiB,CAmInB;AASD;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAoDf"}
|
|
@@ -3,7 +3,7 @@ export * from './agent-os-sandbox.ts';
|
|
|
3
3
|
export * from './bash-exception.ts';
|
|
4
4
|
export * from './bash-meta.ts';
|
|
5
5
|
export * from './bash-tool.ts';
|
|
6
|
-
export * from './file-
|
|
6
|
+
export * from './file-changes.ts';
|
|
7
7
|
export * from './binary-bridges.ts';
|
|
8
8
|
export * from './daytona-sandbox.ts';
|
|
9
9
|
export * from './docker-sandbox.ts';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/sandbox/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/sandbox/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
|