@namzu/sdk 0.1.4-rc.2 → 0.1.4
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/CHANGELOG.md +12 -1
- package/README.md +66 -3
- package/dist/agents/ReactiveAgent.js +12 -12
- package/dist/agents/ReactiveAgent.js.map +1 -1
- package/dist/agents/SupervisorAgent.js +11 -11
- package/dist/agents/SupervisorAgent.js.map +1 -1
- package/dist/bridge/a2a/mapper.d.ts +1 -0
- package/dist/bridge/a2a/mapper.d.ts.map +1 -1
- package/dist/bridge/a2a/mapper.js +5 -1
- package/dist/bridge/a2a/mapper.js.map +1 -1
- package/dist/bridge/sse/mapper.d.ts +1 -0
- package/dist/bridge/sse/mapper.d.ts.map +1 -1
- package/dist/bridge/sse/mapper.js +23 -0
- package/dist/bridge/sse/mapper.js.map +1 -1
- package/dist/config/runtime.d.ts +40 -0
- package/dist/config/runtime.d.ts.map +1 -1
- package/dist/config/runtime.js +3 -0
- package/dist/config/runtime.js.map +1 -1
- package/dist/constants/index.d.ts +1 -0
- package/dist/constants/index.d.ts.map +1 -1
- package/dist/constants/index.js +1 -0
- package/dist/constants/index.js.map +1 -1
- package/dist/constants/sandbox/index.d.ts +18 -0
- package/dist/constants/sandbox/index.d.ts.map +1 -0
- package/dist/constants/sandbox/index.js +26 -0
- package/dist/constants/sandbox/index.js.map +1 -0
- package/dist/constants/telemetry/index.d.ts +2 -2
- package/dist/constants/telemetry/index.js +2 -2
- package/dist/constants/telemetry/index.js.map +1 -1
- package/dist/contracts/api.d.ts +1 -1
- package/dist/contracts/api.d.ts.map +1 -1
- package/dist/index.d.ts +7 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/manager/run/emergency.d.ts +2 -2
- package/dist/manager/run/emergency.d.ts.map +1 -1
- package/dist/manager/run/emergency.js +7 -7
- package/dist/manager/run/emergency.js.map +1 -1
- package/dist/manager/run/persistence.js +1 -1
- package/dist/manager/run/persistence.js.map +1 -1
- package/dist/run/reporter.d.ts.map +1 -1
- package/dist/run/reporter.js +22 -0
- package/dist/run/reporter.js.map +1 -1
- package/dist/runtime/query/checkpoint.d.ts +2 -2
- package/dist/runtime/query/checkpoint.d.ts.map +1 -1
- package/dist/runtime/query/checkpoint.js +12 -12
- package/dist/runtime/query/checkpoint.js.map +1 -1
- package/dist/runtime/query/context.d.ts +2 -2
- package/dist/runtime/query/context.d.ts.map +1 -1
- package/dist/runtime/query/context.js +4 -4
- package/dist/runtime/query/context.js.map +1 -1
- package/dist/runtime/query/events.d.ts +2 -2
- package/dist/runtime/query/events.d.ts.map +1 -1
- package/dist/runtime/query/events.js +4 -4
- package/dist/runtime/query/events.js.map +1 -1
- package/dist/runtime/query/executor.d.ts +3 -0
- package/dist/runtime/query/executor.d.ts.map +1 -1
- package/dist/runtime/query/executor.js +5 -1
- package/dist/runtime/query/executor.js.map +1 -1
- package/dist/runtime/query/guard.d.ts +1 -1
- package/dist/runtime/query/guard.d.ts.map +1 -1
- package/dist/runtime/query/guard.js +4 -4
- package/dist/runtime/query/guard.js.map +1 -1
- package/dist/runtime/query/index.d.ts +3 -1
- package/dist/runtime/query/index.d.ts.map +1 -1
- package/dist/runtime/query/index.js +68 -27
- package/dist/runtime/query/index.js.map +1 -1
- package/dist/runtime/query/iteration/index.d.ts +2 -2
- package/dist/runtime/query/iteration/index.d.ts.map +1 -1
- package/dist/runtime/query/iteration/index.js +51 -51
- package/dist/runtime/query/iteration/index.js.map +1 -1
- package/dist/runtime/query/iteration/phases/advisory.js +14 -14
- package/dist/runtime/query/iteration/phases/advisory.js.map +1 -1
- package/dist/runtime/query/iteration/phases/checkpoint.js +4 -4
- package/dist/runtime/query/iteration/phases/checkpoint.js.map +1 -1
- package/dist/runtime/query/iteration/phases/compaction.js +5 -5
- package/dist/runtime/query/iteration/phases/compaction.js.map +1 -1
- package/dist/runtime/query/iteration/phases/context.d.ts +2 -2
- package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/context.js +11 -11
- package/dist/runtime/query/iteration/phases/context.js.map +1 -1
- package/dist/runtime/query/iteration/phases/plan.js +3 -3
- package/dist/runtime/query/iteration/phases/plan.js.map +1 -1
- package/dist/runtime/query/iteration/phases/tool-review.js +19 -19
- package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
- package/dist/runtime/query/prompt.d.ts +1 -1
- package/dist/runtime/query/prompt.d.ts.map +1 -1
- package/dist/runtime/query/result.d.ts +1 -1
- package/dist/runtime/query/result.d.ts.map +1 -1
- package/dist/runtime/query/result.js +20 -20
- package/dist/runtime/query/result.js.map +1 -1
- package/dist/sandbox/factory.d.ts +6 -0
- package/dist/sandbox/factory.d.ts.map +1 -0
- package/dist/sandbox/factory.js +14 -0
- package/dist/sandbox/factory.js.map +1 -0
- package/dist/sandbox/index.d.ts +3 -0
- package/dist/sandbox/index.d.ts.map +1 -0
- package/dist/sandbox/index.js +3 -0
- package/dist/sandbox/index.js.map +1 -0
- package/dist/sandbox/provider/local.d.ts +11 -0
- package/dist/sandbox/provider/local.d.ts.map +1 -0
- package/dist/sandbox/provider/local.js +366 -0
- package/dist/sandbox/provider/local.js.map +1 -0
- package/dist/telemetry/attributes.d.ts +1 -1
- package/dist/telemetry/attributes.d.ts.map +1 -1
- package/dist/telemetry/attributes.js +2 -2
- package/dist/telemetry/attributes.js.map +1 -1
- package/dist/telemetry/metrics.d.ts +1 -1
- package/dist/telemetry/metrics.d.ts.map +1 -1
- package/dist/telemetry/metrics.js +5 -5
- package/dist/telemetry/metrics.js.map +1 -1
- package/dist/tools/builtins/bash.d.ts.map +1 -1
- package/dist/tools/builtins/bash.js +27 -0
- package/dist/tools/builtins/bash.js.map +1 -1
- package/dist/tools/builtins/edit.d.ts +7 -0
- package/dist/tools/builtins/edit.d.ts.map +1 -0
- package/dist/tools/builtins/edit.js +97 -0
- package/dist/tools/builtins/edit.js.map +1 -0
- package/dist/tools/builtins/grep.d.ts +9 -0
- package/dist/tools/builtins/grep.d.ts.map +1 -0
- package/dist/tools/builtins/grep.js +138 -0
- package/dist/tools/builtins/grep.js.map +1 -0
- package/dist/tools/builtins/index.d.ts +3 -0
- package/dist/tools/builtins/index.d.ts.map +1 -1
- package/dist/tools/builtins/index.js +16 -1
- package/dist/tools/builtins/index.js.map +1 -1
- package/dist/tools/builtins/ls.d.ts +7 -0
- package/dist/tools/builtins/ls.d.ts.map +1 -0
- package/dist/tools/builtins/ls.js +114 -0
- package/dist/tools/builtins/ls.js.map +1 -0
- package/dist/tools/builtins/read-file.d.ts.map +1 -1
- package/dist/tools/builtins/read-file.js +20 -0
- package/dist/tools/builtins/read-file.js.map +1 -1
- package/dist/tools/builtins/write-file.d.ts.map +1 -1
- package/dist/tools/builtins/write-file.js +9 -0
- package/dist/tools/builtins/write-file.js.map +1 -1
- package/dist/types/ids/index.d.ts +1 -0
- package/dist/types/ids/index.d.ts.map +1 -1
- package/dist/types/run/config.d.ts +9 -1
- package/dist/types/run/config.d.ts.map +1 -1
- package/dist/types/run/events.d.ts +17 -1
- package/dist/types/run/events.d.ts.map +1 -1
- package/dist/types/sandbox/index.d.ts +66 -0
- package/dist/types/sandbox/index.d.ts.map +1 -0
- package/dist/types/sandbox/index.js +39 -0
- package/dist/types/sandbox/index.js.map +1 -0
- package/dist/types/tool/index.d.ts +3 -1
- package/dist/types/tool/index.d.ts.map +1 -1
- package/dist/utils/id.d.ts +3 -1
- package/dist/utils/id.d.ts.map +1 -1
- package/dist/utils/id.js +6 -0
- package/dist/utils/id.js.map +1 -1
- package/package.json +2 -2
- package/src/agents/ReactiveAgent.ts +12 -12
- package/src/agents/SupervisorAgent.ts +11 -11
- package/src/bridge/a2a/mapper.ts +6 -1
- package/src/bridge/sse/mapper.ts +26 -0
- package/src/config/runtime.ts +4 -0
- package/src/constants/index.ts +1 -0
- package/src/constants/sandbox/index.ts +31 -0
- package/src/constants/telemetry/index.ts +2 -2
- package/src/contracts/api.ts +3 -0
- package/src/index.ts +24 -4
- package/src/manager/run/emergency.ts +7 -7
- package/src/manager/run/persistence.ts +1 -1
- package/src/run/reporter.ts +25 -0
- package/src/runtime/query/checkpoint.ts +12 -12
- package/src/runtime/query/context.ts +6 -6
- package/src/runtime/query/events.ts +4 -4
- package/src/runtime/query/executor.ts +8 -1
- package/src/runtime/query/guard.ts +4 -4
- package/src/runtime/query/index.ts +76 -28
- package/src/runtime/query/iteration/index.ts +52 -55
- package/src/runtime/query/iteration/phases/advisory.ts +14 -14
- package/src/runtime/query/iteration/phases/checkpoint.ts +4 -4
- package/src/runtime/query/iteration/phases/compaction.ts +5 -5
- package/src/runtime/query/iteration/phases/context.ts +13 -13
- package/src/runtime/query/iteration/phases/plan.ts +3 -3
- package/src/runtime/query/iteration/phases/tool-review.ts +19 -19
- package/src/runtime/query/prompt.ts +1 -1
- package/src/runtime/query/result.ts +21 -21
- package/src/sandbox/factory.ts +16 -0
- package/src/sandbox/index.ts +2 -0
- package/src/sandbox/provider/local.ts +478 -0
- package/src/telemetry/attributes.ts +2 -2
- package/src/telemetry/metrics.ts +6 -6
- package/src/tools/builtins/bash.ts +31 -0
- package/src/tools/builtins/edit.ts +118 -0
- package/src/tools/builtins/grep.ts +151 -0
- package/src/tools/builtins/index.ts +16 -1
- package/src/tools/builtins/ls.ts +156 -0
- package/src/tools/builtins/read-file.ts +24 -0
- package/src/tools/builtins/write-file.ts +10 -0
- package/src/types/ids/index.ts +1 -0
- package/src/types/run/config.ts +9 -1
- package/src/types/run/events.ts +16 -1
- package/src/types/sandbox/index.ts +122 -0
- package/src/types/tool/index.ts +3 -1
- package/src/utils/id.ts +8 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { SANDBOX_DEFAULT_MAX_PROCESSES, SANDBOX_DEFAULT_MEMORY_LIMIT_MB, SANDBOX_DEFAULT_TIMEOUT_MS, } from '../../constants/sandbox/index.js';
|
|
3
|
+
export function assertSandboxStatus(status) {
|
|
4
|
+
switch (status) {
|
|
5
|
+
case 'creating':
|
|
6
|
+
case 'ready':
|
|
7
|
+
case 'busy':
|
|
8
|
+
case 'destroyed':
|
|
9
|
+
return;
|
|
10
|
+
default: {
|
|
11
|
+
const _exhaustive = status;
|
|
12
|
+
throw new Error(`Unknown SandboxStatus: ${_exhaustive}`);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export function assertSandboxEnvironment(env) {
|
|
17
|
+
switch (env) {
|
|
18
|
+
case 'linux-namespace':
|
|
19
|
+
case 'macos-seatbelt':
|
|
20
|
+
case 'basic':
|
|
21
|
+
return;
|
|
22
|
+
default: {
|
|
23
|
+
const _exhaustive = env;
|
|
24
|
+
throw new Error(`Unknown SandboxEnvironment: ${_exhaustive}`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
// ---------------------------------------------------------------------------
|
|
29
|
+
// Runtime config schema
|
|
30
|
+
// ---------------------------------------------------------------------------
|
|
31
|
+
export const SandboxConfigSchema = z.object({
|
|
32
|
+
enabled: z.boolean().default(false),
|
|
33
|
+
provider: z.enum(['local']).default('local'),
|
|
34
|
+
timeoutMs: z.number().positive().default(SANDBOX_DEFAULT_TIMEOUT_MS),
|
|
35
|
+
memoryLimitMb: z.number().positive().default(SANDBOX_DEFAULT_MEMORY_LIMIT_MB),
|
|
36
|
+
maxProcesses: z.number().positive().default(SANDBOX_DEFAULT_MAX_PROCESSES),
|
|
37
|
+
cleanupOnDestroy: z.boolean().default(true),
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/sandbox/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EACN,6BAA6B,EAC7B,+BAA+B,EAC/B,0BAA0B,GAC1B,MAAM,kCAAkC,CAAA;AASzC,MAAM,UAAU,mBAAmB,CAAC,MAAqB;IACxD,QAAQ,MAAM,EAAE,CAAC;QAChB,KAAK,UAAU,CAAC;QAChB,KAAK,OAAO,CAAC;QACb,KAAK,MAAM,CAAC;QACZ,KAAK,WAAW;YACf,OAAM;QACP,OAAO,CAAC,CAAC,CAAC;YACT,MAAM,WAAW,GAAU,MAAM,CAAA;YACjC,MAAM,IAAI,KAAK,CAAC,0BAA0B,WAAW,EAAE,CAAC,CAAA;QACzD,CAAC;IACF,CAAC;AACF,CAAC;AAQD,MAAM,UAAU,wBAAwB,CAAC,GAAuB;IAC/D,QAAQ,GAAG,EAAE,CAAC;QACb,KAAK,iBAAiB,CAAC;QACvB,KAAK,gBAAgB,CAAC;QACtB,KAAK,OAAO;YACX,OAAM;QACP,OAAO,CAAC,CAAC,CAAC;YACT,MAAM,WAAW,GAAU,GAAG,CAAA;YAC9B,MAAM,IAAI,KAAK,CAAC,+BAA+B,WAAW,EAAE,CAAC,CAAA;QAC9D,CAAC;IACF,CAAC;AACF,CAAC;AA+DD,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACnC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAC5C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,0BAA0B,CAAC;IACpE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,+BAA+B,CAAC;IAC7E,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,6BAA6B,CAAC;IAC1E,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CAC3C,CAAC,CAAA"}
|
|
@@ -2,6 +2,7 @@ import type { z } from 'zod';
|
|
|
2
2
|
import type { Logger } from '../../utils/logger.js';
|
|
3
3
|
import type { RunId } from '../ids/index.js';
|
|
4
4
|
import type { PermissionMode } from '../permission/index.js';
|
|
5
|
+
import type { Sandbox } from '../sandbox/index.js';
|
|
5
6
|
export interface ToolRegistryRef {
|
|
6
7
|
searchDeferred(query: string): ToolDefinition[];
|
|
7
8
|
activate(names: string[]): void;
|
|
@@ -15,10 +16,11 @@ export interface ToolContext {
|
|
|
15
16
|
log: (level: 'info' | 'warn' | 'error', message: string) => void;
|
|
16
17
|
permissionContext?: {
|
|
17
18
|
mode: PermissionMode;
|
|
18
|
-
|
|
19
|
+
runId: string;
|
|
19
20
|
workingDirectory: string;
|
|
20
21
|
};
|
|
21
22
|
toolRegistry?: ToolRegistryRef;
|
|
23
|
+
sandbox?: Sandbox;
|
|
22
24
|
}
|
|
23
25
|
export interface ToolResult {
|
|
24
26
|
success: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/tool/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/tool/index.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/id.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ActivityId, AdvisoryCallId, AdvisoryId, CheckpointId, ChunkId, ConnectorId, ConnectorInstanceId, CredentialId, DocumentId, EmergencySaveId, EnvironmentId, ExecutionContextId, KnowledgeBaseId, MCPClientId, MCPServerId, MCPSessionId, MemoryId, MessageId, PlanId, PluginId, RunId, SessionId, TaskId, TenantId, ThreadId, ToolCallId } from '../types/ids/index.js';
|
|
1
|
+
import type { ActivityId, AdvisoryCallId, AdvisoryId, CheckpointId, ChunkId, ConnectorId, ConnectorInstanceId, CredentialId, DocumentId, EmergencySaveId, EnvironmentId, ExecutionContextId, KnowledgeBaseId, MCPClientId, MCPServerId, MCPSessionId, MemoryId, MessageId, PlanId, PluginId, RunId, SandboxId, SessionId, TaskId, TenantId, ThreadId, ToolCallId } from '../types/ids/index.js';
|
|
2
2
|
export declare function generateThreadId(): ThreadId;
|
|
3
3
|
export declare function generateRunId(): RunId;
|
|
4
4
|
export declare function generateMessageId(): MessageId;
|
|
@@ -25,8 +25,10 @@ export declare function generateAdvisoryCallId(): AdvisoryCallId;
|
|
|
25
25
|
export declare function generateEmergencySaveId(): EmergencySaveId;
|
|
26
26
|
export declare function generateMemoryId(): MemoryId;
|
|
27
27
|
export declare function generatePluginId(): PluginId;
|
|
28
|
+
export declare function generateSandboxId(): SandboxId;
|
|
28
29
|
export declare function parseThreadId(raw: string): ThreadId;
|
|
29
30
|
export declare function parseRunId(raw: string): RunId;
|
|
30
31
|
export declare function parseConnectorInstanceId(raw: string): ConnectorInstanceId;
|
|
31
32
|
export declare function parsePluginId(raw: string): PluginId;
|
|
33
|
+
export declare function parseSandboxId(raw: string): SandboxId;
|
|
32
34
|
//# sourceMappingURL=id.d.ts.map
|
package/dist/utils/id.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,UAAU,EACV,cAAc,EACd,UAAU,EACV,YAAY,EACZ,OAAO,EACP,WAAW,EACX,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,MAAM,EACN,QAAQ,EACR,KAAK,EACL,SAAS,EACT,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,MAAM,uBAAuB,CAAA;AAsB9B,wBAAgB,gBAAgB,IAAI,QAAQ,CAE3C;AAED,wBAAgB,aAAa,IAAI,KAAK,CAErC;AAED,wBAAgB,iBAAiB,IAAI,SAAS,CAE7C;AAED,wBAAgB,iBAAiB,IAAI,SAAS,CAE7C;AAED,wBAAgB,kBAAkB,IAAI,UAAU,CAE/C;AAED,wBAAgB,kBAAkB,IAAI,UAAU,CAE/C;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,uBAAuB,IAAI,eAAe,CAEzD;AAED,wBAAgB,kBAAkB,IAAI,UAAU,CAE/C;AAED,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED,wBAAgB,mBAAmB,IAAI,WAAW,CAEjD;AAED,wBAAgB,2BAA2B,IAAI,mBAAmB,CAEjE;AAED,wBAAgB,gBAAgB,IAAI,QAAQ,CAE3C;AAED,wBAAgB,oBAAoB,IAAI,YAAY,CAEnD;AAED,wBAAgB,0BAA0B,IAAI,kBAAkB,CAE/D;AAED,wBAAgB,mBAAmB,IAAI,WAAW,CAEjD;AAED,wBAAgB,mBAAmB,IAAI,WAAW,CAEjD;AAED,wBAAgB,oBAAoB,IAAI,YAAY,CAEnD;AAED,wBAAgB,qBAAqB,IAAI,aAAa,CAErD;AAED,wBAAgB,oBAAoB,IAAI,YAAY,CAEnD;AAED,wBAAgB,kBAAkB,IAAI,UAAU,CAE/C;AAED,wBAAgB,sBAAsB,IAAI,cAAc,CAEvD;AAED,wBAAgB,uBAAuB,IAAI,eAAe,CAEzD;AAED,wBAAgB,gBAAgB,IAAI,QAAQ,CAE3C;AAED,wBAAgB,gBAAgB,IAAI,QAAQ,CAE3C;AASD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAEnD;AACD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAE7C;AACD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAEzE;AACD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAEnD"}
|
|
1
|
+
{"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,UAAU,EACV,cAAc,EACd,UAAU,EACV,YAAY,EACZ,OAAO,EACP,WAAW,EACX,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,MAAM,EACN,QAAQ,EACR,KAAK,EACL,SAAS,EACT,SAAS,EACT,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,MAAM,uBAAuB,CAAA;AAsB9B,wBAAgB,gBAAgB,IAAI,QAAQ,CAE3C;AAED,wBAAgB,aAAa,IAAI,KAAK,CAErC;AAED,wBAAgB,iBAAiB,IAAI,SAAS,CAE7C;AAED,wBAAgB,iBAAiB,IAAI,SAAS,CAE7C;AAED,wBAAgB,kBAAkB,IAAI,UAAU,CAE/C;AAED,wBAAgB,kBAAkB,IAAI,UAAU,CAE/C;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,uBAAuB,IAAI,eAAe,CAEzD;AAED,wBAAgB,kBAAkB,IAAI,UAAU,CAE/C;AAED,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED,wBAAgB,mBAAmB,IAAI,WAAW,CAEjD;AAED,wBAAgB,2BAA2B,IAAI,mBAAmB,CAEjE;AAED,wBAAgB,gBAAgB,IAAI,QAAQ,CAE3C;AAED,wBAAgB,oBAAoB,IAAI,YAAY,CAEnD;AAED,wBAAgB,0BAA0B,IAAI,kBAAkB,CAE/D;AAED,wBAAgB,mBAAmB,IAAI,WAAW,CAEjD;AAED,wBAAgB,mBAAmB,IAAI,WAAW,CAEjD;AAED,wBAAgB,oBAAoB,IAAI,YAAY,CAEnD;AAED,wBAAgB,qBAAqB,IAAI,aAAa,CAErD;AAED,wBAAgB,oBAAoB,IAAI,YAAY,CAEnD;AAED,wBAAgB,kBAAkB,IAAI,UAAU,CAE/C;AAED,wBAAgB,sBAAsB,IAAI,cAAc,CAEvD;AAED,wBAAgB,uBAAuB,IAAI,eAAe,CAEzD;AAED,wBAAgB,gBAAgB,IAAI,QAAQ,CAE3C;AAED,wBAAgB,gBAAgB,IAAI,QAAQ,CAE3C;AAED,wBAAgB,iBAAiB,IAAI,SAAS,CAE7C;AASD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAEnD;AACD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAE7C;AACD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAEzE;AACD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAEnD;AACD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAErD"}
|
package/dist/utils/id.js
CHANGED
|
@@ -96,6 +96,9 @@ export function generateMemoryId() {
|
|
|
96
96
|
export function generatePluginId() {
|
|
97
97
|
return generateId('plg_');
|
|
98
98
|
}
|
|
99
|
+
export function generateSandboxId() {
|
|
100
|
+
return generateId('sbx_');
|
|
101
|
+
}
|
|
99
102
|
function parseId(raw, prefix, typeName) {
|
|
100
103
|
if (!raw.startsWith(prefix)) {
|
|
101
104
|
throw new Error(`Invalid ${typeName}: expected "${prefix}" prefix, got "${raw}"`);
|
|
@@ -114,4 +117,7 @@ export function parseConnectorInstanceId(raw) {
|
|
|
114
117
|
export function parsePluginId(raw) {
|
|
115
118
|
return parseId(raw, 'plg_', 'PluginId');
|
|
116
119
|
}
|
|
120
|
+
export function parseSandboxId(raw) {
|
|
121
|
+
return parseId(raw, 'sbx_', 'SandboxId');
|
|
122
|
+
}
|
|
117
123
|
//# sourceMappingURL=id.js.map
|
package/dist/utils/id.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"id.js","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"id.js","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@namzu/sdk",
|
|
3
|
-
"version": "0.1.4
|
|
4
|
-
"description": "Open-source AI agent
|
|
3
|
+
"version": "0.1.4",
|
|
4
|
+
"description": "Open-source AI agent SDK with a built-in runtime. Nothing between you and your agents.",
|
|
5
5
|
"license": "FSL-1.1-MIT",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"packageManager": "pnpm@10.33.0",
|
|
@@ -36,7 +36,7 @@ export class ReactiveAgent extends AbstractAgent<ReactiveAgentConfig, ReactiveAg
|
|
|
36
36
|
throw new Error('ReactiveAgent.run requires a threadId in config')
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
const
|
|
39
|
+
const run = await drainQuery(
|
|
40
40
|
{
|
|
41
41
|
systemPrompt: config.systemPrompt,
|
|
42
42
|
persona: config.persona,
|
|
@@ -44,7 +44,7 @@ export class ReactiveAgent extends AbstractAgent<ReactiveAgentConfig, ReactiveAg
|
|
|
44
44
|
basePrompt: config.basePrompt,
|
|
45
45
|
provider: config.provider,
|
|
46
46
|
tools: config.tools,
|
|
47
|
-
|
|
47
|
+
runConfig: {
|
|
48
48
|
model: config.model,
|
|
49
49
|
tokenBudget: config.tokenBudget,
|
|
50
50
|
timeoutMs: config.timeoutMs,
|
|
@@ -72,7 +72,7 @@ export class ReactiveAgent extends AbstractAgent<ReactiveAgentConfig, ReactiveAg
|
|
|
72
72
|
)
|
|
73
73
|
|
|
74
74
|
let toolCallCount = 0
|
|
75
|
-
for (const msg of
|
|
75
|
+
for (const msg of run.messages) {
|
|
76
76
|
if (msg.role === 'assistant') {
|
|
77
77
|
const assistantMsg = msg as AssistantMessage
|
|
78
78
|
if (assistantMsg.toolCalls) {
|
|
@@ -82,16 +82,16 @@ export class ReactiveAgent extends AbstractAgent<ReactiveAgentConfig, ReactiveAg
|
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
return {
|
|
85
|
-
runId:
|
|
86
|
-
status:
|
|
87
|
-
stopReason:
|
|
88
|
-
usage:
|
|
89
|
-
cost:
|
|
90
|
-
iterations:
|
|
85
|
+
runId: run.id,
|
|
86
|
+
status: run.status,
|
|
87
|
+
stopReason: run.stopReason,
|
|
88
|
+
usage: run.tokenUsage,
|
|
89
|
+
cost: run.costInfo,
|
|
90
|
+
iterations: run.currentIteration,
|
|
91
91
|
durationMs: Date.now() - startTime,
|
|
92
|
-
messages:
|
|
93
|
-
result:
|
|
94
|
-
lastError:
|
|
92
|
+
messages: run.messages,
|
|
93
|
+
result: run.result,
|
|
94
|
+
lastError: run.lastError,
|
|
95
95
|
toolCallCount,
|
|
96
96
|
}
|
|
97
97
|
}
|
|
@@ -98,12 +98,12 @@ export class SupervisorAgent extends AbstractAgent<SupervisorAgentConfig, Superv
|
|
|
98
98
|
tools.register(tool)
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
-
const
|
|
101
|
+
const run = await drainQuery(
|
|
102
102
|
{
|
|
103
103
|
systemPrompt: config.systemPrompt,
|
|
104
104
|
provider: config.provider,
|
|
105
105
|
tools,
|
|
106
|
-
|
|
106
|
+
runConfig: {
|
|
107
107
|
model: config.model,
|
|
108
108
|
tokenBudget: config.tokenBudget,
|
|
109
109
|
timeoutMs: config.timeoutMs,
|
|
@@ -151,16 +151,16 @@ export class SupervisorAgent extends AbstractAgent<SupervisorAgentConfig, Superv
|
|
|
151
151
|
const completedTasks = taskResults.filter((t) => t.result.status === 'completed').length
|
|
152
152
|
|
|
153
153
|
return {
|
|
154
|
-
runId:
|
|
155
|
-
status:
|
|
156
|
-
stopReason:
|
|
157
|
-
usage:
|
|
158
|
-
cost:
|
|
159
|
-
iterations:
|
|
154
|
+
runId: run.id,
|
|
155
|
+
status: run.status === 'completed' ? 'completed' : 'failed',
|
|
156
|
+
stopReason: run.stopReason,
|
|
157
|
+
usage: run.tokenUsage,
|
|
158
|
+
cost: run.costInfo,
|
|
159
|
+
iterations: run.currentIteration,
|
|
160
160
|
durationMs: Date.now() - startTime,
|
|
161
|
-
messages:
|
|
162
|
-
result:
|
|
163
|
-
lastError:
|
|
161
|
+
messages: run.messages,
|
|
162
|
+
result: run.result,
|
|
163
|
+
lastError: run.lastError,
|
|
164
164
|
taskResults,
|
|
165
165
|
completedTasks,
|
|
166
166
|
totalTasks: taskResults.length,
|
package/src/bridge/a2a/mapper.ts
CHANGED
|
@@ -128,7 +128,7 @@ const MAPPING: {
|
|
|
128
128
|
run_paused: (e, ctx) =>
|
|
129
129
|
statusEvent(e.runId, 'input-required', false, ctx, {
|
|
130
130
|
role: 'agent',
|
|
131
|
-
parts: [{ kind: 'text', text: `
|
|
131
|
+
parts: [{ kind: 'text', text: `Run paused: ${e.reason}` }],
|
|
132
132
|
}),
|
|
133
133
|
|
|
134
134
|
iteration_completed: null,
|
|
@@ -153,6 +153,10 @@ const MAPPING: {
|
|
|
153
153
|
|
|
154
154
|
plugin_hook_executing: null,
|
|
155
155
|
plugin_hook_completed: null,
|
|
156
|
+
|
|
157
|
+
sandbox_created: null,
|
|
158
|
+
sandbox_exec: null,
|
|
159
|
+
sandbox_destroyed: null,
|
|
156
160
|
}
|
|
157
161
|
|
|
158
162
|
export function mapRunToA2AEvent(event: RunEvent, contextId?: string): A2AStreamEvent | null {
|
|
@@ -164,4 +168,5 @@ export function mapRunToA2AEvent(event: RunEvent, contextId?: string): A2AStream
|
|
|
164
168
|
)
|
|
165
169
|
}
|
|
166
170
|
|
|
171
|
+
/** @deprecated Use mapRunToA2AEvent */
|
|
167
172
|
export const mapSessionToA2AEvent = mapRunToA2AEvent
|
package/src/bridge/sse/mapper.ts
CHANGED
|
@@ -247,6 +247,31 @@ const MAPPING: {
|
|
|
247
247
|
result_action: e.result.action,
|
|
248
248
|
}),
|
|
249
249
|
},
|
|
250
|
+
|
|
251
|
+
sandbox_created: {
|
|
252
|
+
wire: 'sandbox.created',
|
|
253
|
+
transform: (e, runId) => ({
|
|
254
|
+
run_id: runId,
|
|
255
|
+
sandbox_id: e.sandboxId,
|
|
256
|
+
environment: e.environment,
|
|
257
|
+
}),
|
|
258
|
+
},
|
|
259
|
+
|
|
260
|
+
sandbox_exec: {
|
|
261
|
+
wire: 'sandbox.exec',
|
|
262
|
+
transform: (e, runId) => ({
|
|
263
|
+
run_id: runId,
|
|
264
|
+
sandbox_id: e.sandboxId,
|
|
265
|
+
command: e.command,
|
|
266
|
+
exit_code: e.exitCode,
|
|
267
|
+
duration_ms: e.durationMs,
|
|
268
|
+
}),
|
|
269
|
+
},
|
|
270
|
+
|
|
271
|
+
sandbox_destroyed: {
|
|
272
|
+
wire: 'sandbox.destroyed',
|
|
273
|
+
transform: (e, runId) => ({ run_id: runId, sandbox_id: e.sandboxId }),
|
|
274
|
+
},
|
|
250
275
|
}
|
|
251
276
|
|
|
252
277
|
export function mapRunToStreamEvent(event: RunEvent, runId: RunId): MappedStreamEvent | null {
|
|
@@ -269,4 +294,5 @@ export function mapRunToStreamEvent(event: RunEvent, runId: RunId): MappedStream
|
|
|
269
294
|
return { wire: mapping.wire, data }
|
|
270
295
|
}
|
|
271
296
|
|
|
297
|
+
/** @deprecated Use mapRunToStreamEvent */
|
|
272
298
|
export const mapSessionToStreamEvent = mapRunToStreamEvent
|
package/src/config/runtime.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { z } from 'zod'
|
|
2
2
|
import { HOOK_TIMEOUT_MS } from '../constants/plugin/index.js'
|
|
3
|
+
import { SandboxConfigSchema } from '../types/sandbox/index.js'
|
|
4
|
+
|
|
5
|
+
export { SandboxConfigSchema }
|
|
3
6
|
|
|
4
7
|
export const TaskRouterConfigSchema = z
|
|
5
8
|
.object({
|
|
@@ -71,6 +74,7 @@ export const RuntimeConfigSchema = z.object({
|
|
|
71
74
|
agentBus: AgentBusConfigSchema.optional(),
|
|
72
75
|
promptCache: PromptCacheConfigSchema.optional(),
|
|
73
76
|
plugins: PluginRuntimeConfigSchema.optional(),
|
|
77
|
+
sandbox: SandboxConfigSchema.optional(),
|
|
74
78
|
})
|
|
75
79
|
|
|
76
80
|
export type RuntimeConfig = z.infer<typeof RuntimeConfigSchema>
|
package/src/constants/index.ts
CHANGED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/** Default timeout for sandbox command execution */
|
|
2
|
+
export const SANDBOX_DEFAULT_TIMEOUT_MS = 30_000
|
|
3
|
+
|
|
4
|
+
/** Default memory limit per sandbox */
|
|
5
|
+
export const SANDBOX_DEFAULT_MEMORY_LIMIT_MB = 512
|
|
6
|
+
|
|
7
|
+
/** Default max processes per sandbox */
|
|
8
|
+
export const SANDBOX_DEFAULT_MAX_PROCESSES = 32
|
|
9
|
+
|
|
10
|
+
/** Max stdout/stderr output size before truncation */
|
|
11
|
+
export const SANDBOX_MAX_OUTPUT_BYTES = 10 * 1024 * 1024
|
|
12
|
+
|
|
13
|
+
/** Temp directory prefix for sandbox roots */
|
|
14
|
+
export const SANDBOX_TEMP_DIR_PREFIX = 'namzu-sbx-'
|
|
15
|
+
|
|
16
|
+
/** Grace period before SIGKILL after SIGTERM */
|
|
17
|
+
export const SANDBOX_KILL_GRACE_MS = 3_000
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Environment variable keys that are safe to pass into sandboxes.
|
|
21
|
+
* Everything else is stripped.
|
|
22
|
+
*/
|
|
23
|
+
export const SANDBOX_SAFE_ENV_KEYS = new Set([
|
|
24
|
+
'PATH',
|
|
25
|
+
'HOME',
|
|
26
|
+
'SHELL',
|
|
27
|
+
'LANG',
|
|
28
|
+
'TERM',
|
|
29
|
+
'LC_ALL',
|
|
30
|
+
'LC_CTYPE',
|
|
31
|
+
])
|
|
@@ -22,8 +22,8 @@ export const GENAI = {
|
|
|
22
22
|
} as const
|
|
23
23
|
|
|
24
24
|
export const NAMZU = {
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
RUN_ID: 'namzu.run.id',
|
|
26
|
+
RUN_STATUS: 'namzu.run.status',
|
|
27
27
|
ITERATION: 'namzu.iteration',
|
|
28
28
|
TOOL_SUCCESS: 'namzu.tool.success',
|
|
29
29
|
TOOL_ERROR: 'namzu.tool.error',
|
package/src/contracts/api.ts
CHANGED
package/src/index.ts
CHANGED
|
@@ -4,9 +4,14 @@ export {
|
|
|
4
4
|
TaskRouterConfigSchema,
|
|
5
5
|
CompactionConfigSchema,
|
|
6
6
|
PluginRuntimeConfigSchema,
|
|
7
|
+
SandboxConfigSchema,
|
|
7
8
|
RUNTIME_DEFAULTS,
|
|
8
9
|
} from './config/runtime.js'
|
|
9
|
-
export type {
|
|
10
|
+
export type {
|
|
11
|
+
RuntimeConfig,
|
|
12
|
+
CompactionConfig,
|
|
13
|
+
PluginRuntimeConfig,
|
|
14
|
+
} from './config/runtime.js'
|
|
10
15
|
|
|
11
16
|
export * from './constants/index.js'
|
|
12
17
|
|
|
@@ -37,6 +42,7 @@ export * from './types/router/index.js'
|
|
|
37
42
|
export * from './types/advisory/index.js'
|
|
38
43
|
export * from './types/memory/index.js'
|
|
39
44
|
export * from './types/plugin/index.js'
|
|
45
|
+
export * from './types/sandbox/index.js'
|
|
40
46
|
|
|
41
47
|
export {
|
|
42
48
|
AdvisorRegistry,
|
|
@@ -83,7 +89,10 @@ export { resolveTaskModel } from './router/task-router.js'
|
|
|
83
89
|
export { query, drainQuery } from './runtime/query/index.js'
|
|
84
90
|
export type { QueryParams } from './runtime/query/index.js'
|
|
85
91
|
export { ContextCache } from './runtime/query/context-cache.js'
|
|
86
|
-
export type {
|
|
92
|
+
export type {
|
|
93
|
+
ContextCacheConfig,
|
|
94
|
+
PromptCacheInput,
|
|
95
|
+
} from './runtime/query/context-cache.js'
|
|
87
96
|
export { CheckpointManager } from './runtime/query/checkpoint.js'
|
|
88
97
|
export { DecisionParser } from './runtime/decision/parser.js'
|
|
89
98
|
export { FallbackResolver } from './runtime/decision/fallback.js'
|
|
@@ -128,7 +137,10 @@ export { RunDiskStore } from './store/run/disk.js'
|
|
|
128
137
|
export { SessionStore } from './store/run/disk.js'
|
|
129
138
|
|
|
130
139
|
export { ActivityStore } from './store/activity/memory.js'
|
|
131
|
-
export type {
|
|
140
|
+
export type {
|
|
141
|
+
ActivityEvent,
|
|
142
|
+
ActivityEventListener,
|
|
143
|
+
} from './store/activity/memory.js'
|
|
132
144
|
export { InMemoryTaskStore } from './store/task/memory.js'
|
|
133
145
|
export { DiskTaskStore } from './store/task/disk.js'
|
|
134
146
|
export type { DiskTaskStoreConfig } from './store/task/disk.js'
|
|
@@ -160,6 +172,11 @@ export {
|
|
|
160
172
|
UnknownProviderError,
|
|
161
173
|
} from './provider/index.js'
|
|
162
174
|
|
|
175
|
+
export {
|
|
176
|
+
LocalSandboxProvider,
|
|
177
|
+
SandboxProviderFactory,
|
|
178
|
+
} from './sandbox/index.js'
|
|
179
|
+
|
|
163
180
|
export { defineTool } from './tools/defineTool.js'
|
|
164
181
|
export type { DefineToolOptions } from './tools/defineTool.js'
|
|
165
182
|
export { ToolRegistry } from './registry/tool/execute.js'
|
|
@@ -257,7 +274,10 @@ export {
|
|
|
257
274
|
} from './bridge/a2a/index.js'
|
|
258
275
|
export type { CreateRunFromA2A } from './bridge/a2a/index.js'
|
|
259
276
|
|
|
260
|
-
export {
|
|
277
|
+
export {
|
|
278
|
+
mapRunToStreamEvent,
|
|
279
|
+
mapSessionToStreamEvent,
|
|
280
|
+
} from './bridge/sse/index.js'
|
|
261
281
|
export type { MappedStreamEvent } from './bridge/sse/index.js'
|
|
262
282
|
|
|
263
283
|
export { InMemoryCredentialVault } from './vault/index.js'
|
|
@@ -18,7 +18,7 @@ import type { RunPersistence } from './persistence.js'
|
|
|
18
18
|
|
|
19
19
|
export class EmergencySaveManager {
|
|
20
20
|
private static _instance: EmergencySaveManager | undefined
|
|
21
|
-
private
|
|
21
|
+
private runRef: WeakRef<RunPersistence> | undefined
|
|
22
22
|
private outputDir: string | undefined
|
|
23
23
|
private signalHandlers: Map<string, () => void> = new Map()
|
|
24
24
|
private log: Logger
|
|
@@ -37,9 +37,9 @@ export class EmergencySaveManager {
|
|
|
37
37
|
return EmergencySaveManager._instance
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
attach(
|
|
40
|
+
attach(runMgr: RunPersistence, outputDir: string, log: Logger): void {
|
|
41
41
|
this.detach()
|
|
42
|
-
this.
|
|
42
|
+
this.runRef = new WeakRef(runMgr)
|
|
43
43
|
this.outputDir = outputDir
|
|
44
44
|
this.log = log.child({ component: 'EmergencySaveManager' })
|
|
45
45
|
|
|
@@ -67,17 +67,17 @@ export class EmergencySaveManager {
|
|
|
67
67
|
process.removeListener(signal, handler)
|
|
68
68
|
}
|
|
69
69
|
this.signalHandlers.clear()
|
|
70
|
-
this.
|
|
70
|
+
this.runRef = undefined
|
|
71
71
|
this.outputDir = undefined
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
emergencySave(signal: string): void {
|
|
75
|
-
const
|
|
76
|
-
if (!
|
|
75
|
+
const runMgr = this.runRef?.deref()
|
|
76
|
+
if (!runMgr || !this.outputDir) {
|
|
77
77
|
return
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
-
const snapshot =
|
|
80
|
+
const snapshot = runMgr.toEmergencySnapshot(signal)
|
|
81
81
|
|
|
82
82
|
const emergencyDir = join(this.outputDir, '..', EMERGENCY_DIR_NAME)
|
|
83
83
|
mkdirSync(emergencyDir, { recursive: true })
|
package/src/run/reporter.ts
CHANGED
|
@@ -171,6 +171,31 @@ export function createRunReporter(parentLogger?: Logger): RunReporter {
|
|
|
171
171
|
})
|
|
172
172
|
break
|
|
173
173
|
|
|
174
|
+
case 'sandbox_created':
|
|
175
|
+
log.info('Sandbox created', {
|
|
176
|
+
runId: event.runId,
|
|
177
|
+
sandboxId: event.sandboxId,
|
|
178
|
+
environment: event.environment,
|
|
179
|
+
})
|
|
180
|
+
break
|
|
181
|
+
|
|
182
|
+
case 'sandbox_exec':
|
|
183
|
+
log.debug('Sandbox exec', {
|
|
184
|
+
runId: event.runId,
|
|
185
|
+
sandboxId: event.sandboxId,
|
|
186
|
+
command: event.command,
|
|
187
|
+
exitCode: event.exitCode,
|
|
188
|
+
durationMs: event.durationMs,
|
|
189
|
+
})
|
|
190
|
+
break
|
|
191
|
+
|
|
192
|
+
case 'sandbox_destroyed':
|
|
193
|
+
log.info('Sandbox destroyed', {
|
|
194
|
+
runId: event.runId,
|
|
195
|
+
sandboxId: event.sandboxId,
|
|
196
|
+
})
|
|
197
|
+
break
|
|
198
|
+
|
|
174
199
|
default: {
|
|
175
200
|
const _exhaustive: never = event
|
|
176
201
|
throw new Error(`Unhandled run event type: ${(_exhaustive as RunEvent).type}`)
|
|
@@ -19,7 +19,7 @@ export class CheckpointManager {
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
async create(
|
|
22
|
-
|
|
22
|
+
runMgr: RunPersistence,
|
|
23
23
|
iteration: number,
|
|
24
24
|
extra?: {
|
|
25
25
|
toolResults?: Array<{ toolCallId: string; toolName: string; input: unknown; output: string }>
|
|
@@ -29,14 +29,14 @@ export class CheckpointManager {
|
|
|
29
29
|
): Promise<IterationCheckpoint> {
|
|
30
30
|
const checkpoint: IterationCheckpoint = {
|
|
31
31
|
id: generateCheckpointId(),
|
|
32
|
-
runId:
|
|
32
|
+
runId: runMgr.id,
|
|
33
33
|
iteration,
|
|
34
|
-
messages: [...
|
|
35
|
-
tokenUsage: { ...
|
|
36
|
-
costInfo: { ...
|
|
34
|
+
messages: [...runMgr.messages],
|
|
35
|
+
tokenUsage: { ...runMgr.tokenUsage },
|
|
36
|
+
costInfo: { ...runMgr.costInfo },
|
|
37
37
|
guardState: {
|
|
38
|
-
iterationCount:
|
|
39
|
-
elapsedMs: Date.now() - (
|
|
38
|
+
iterationCount: runMgr.currentIteration,
|
|
39
|
+
elapsedMs: Date.now() - (runMgr.getSession().startedAt ?? Date.now()),
|
|
40
40
|
},
|
|
41
41
|
createdAt: Date.now(),
|
|
42
42
|
toolResultHashes: extra?.toolResults ? buildToolResultHashes(extra.toolResults) : undefined,
|
|
@@ -71,16 +71,16 @@ export class CheckpointManager {
|
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
static buildSummary(
|
|
75
|
-
const lastAssistant = [...
|
|
74
|
+
static buildSummary(runMgr: RunPersistence, iteration: number): CheckpointSummary {
|
|
75
|
+
const lastAssistant = [...runMgr.messages]
|
|
76
76
|
.reverse()
|
|
77
77
|
.find((m): m is AssistantMessage => m.role === 'assistant' && m.content !== null)
|
|
78
78
|
|
|
79
79
|
return {
|
|
80
80
|
iteration,
|
|
81
|
-
messageCount:
|
|
82
|
-
tokenUsage: { ...
|
|
83
|
-
costInfo: { ...
|
|
81
|
+
messageCount: runMgr.messages.length,
|
|
82
|
+
tokenUsage: { ...runMgr.tokenUsage },
|
|
83
|
+
costInfo: { ...runMgr.costInfo },
|
|
84
84
|
lastAssistantMessage: lastAssistant?.content ?? undefined,
|
|
85
85
|
}
|
|
86
86
|
}
|
|
@@ -16,7 +16,7 @@ import { getRootLogger } from '../../utils/logger.js'
|
|
|
16
16
|
export interface RunContextConfig {
|
|
17
17
|
agentId: string
|
|
18
18
|
agentName: string
|
|
19
|
-
|
|
19
|
+
runConfig: AgentRunConfig
|
|
20
20
|
provider: LLMProvider
|
|
21
21
|
workingDirectory?: string
|
|
22
22
|
pricing?: ModelPricing
|
|
@@ -36,7 +36,7 @@ export interface RunContextConfig {
|
|
|
36
36
|
export interface RunContext {
|
|
37
37
|
runId: RunId
|
|
38
38
|
threadId: ThreadId
|
|
39
|
-
|
|
39
|
+
runMgr: RunPersistence
|
|
40
40
|
activityStore: ActivityStore
|
|
41
41
|
planManager: PlanManager
|
|
42
42
|
abortController: AbortController
|
|
@@ -55,7 +55,7 @@ export class RunContextFactory {
|
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
const cwd = config.workingDirectory ?? process.cwd()
|
|
58
|
-
const permissionMode = config.
|
|
58
|
+
const permissionMode = config.runConfig.permissionMode ?? 'auto'
|
|
59
59
|
const runId = config.runId ?? generateRunId()
|
|
60
60
|
|
|
61
61
|
if (!config.threadId) {
|
|
@@ -71,11 +71,11 @@ export class RunContextFactory {
|
|
|
71
71
|
threadId,
|
|
72
72
|
})
|
|
73
73
|
|
|
74
|
-
const
|
|
74
|
+
const runMgr = new RunPersistence({
|
|
75
75
|
runId,
|
|
76
76
|
agentId: config.agentId,
|
|
77
77
|
agentName: config.agentName,
|
|
78
|
-
|
|
78
|
+
runConfig: config.runConfig,
|
|
79
79
|
providerId: config.provider.id,
|
|
80
80
|
outputDir,
|
|
81
81
|
pricing: config.pricing,
|
|
@@ -91,7 +91,7 @@ export class RunContextFactory {
|
|
|
91
91
|
return {
|
|
92
92
|
runId,
|
|
93
93
|
threadId,
|
|
94
|
-
|
|
94
|
+
runMgr,
|
|
95
95
|
activityStore,
|
|
96
96
|
planManager,
|
|
97
97
|
abortController,
|