@artemiskit/core 0.6.0 → 0.6.1
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 +15 -0
- package/README.md +12 -0
- package/dist/adapters/types.d.ts +7 -0
- package/dist/adapters/types.d.ts.map +1 -1
- package/dist/agent-workflow/catalog.d.ts +2 -1
- package/dist/agent-workflow/catalog.d.ts.map +1 -1
- package/dist/agent-workflow/environment.d.ts +47 -0
- package/dist/agent-workflow/environment.d.ts.map +1 -0
- package/dist/agent-workflow/index.d.ts +4 -1
- package/dist/agent-workflow/index.d.ts.map +1 -1
- package/dist/agent-workflow/parser.d.ts +1 -1
- package/dist/agent-workflow/parser.d.ts.map +1 -1
- package/dist/agent-workflow/sandbox-fixtures/qualify.d.ts +2 -0
- package/dist/agent-workflow/sandbox-fixtures/qualify.d.ts.map +1 -0
- package/dist/agent-workflow/sandbox.d.ts +12 -0
- package/dist/agent-workflow/sandbox.d.ts.map +1 -0
- package/dist/agent-workflow/schema.d.ts +117 -7
- package/dist/agent-workflow/schema.d.ts.map +1 -1
- package/dist/agent-workflow/session.d.ts +113 -0
- package/dist/agent-workflow/session.d.ts.map +1 -0
- package/dist/agent-workflow/target.d.ts +20 -7
- package/dist/agent-workflow/target.d.ts.map +1 -1
- package/dist/index.js +1366 -21
- package/package.json +1 -1
- package/src/adapters/types.ts +7 -0
- package/src/agent-workflow/catalog.ts +4 -3
- package/src/agent-workflow/environment.ts +207 -0
- package/src/agent-workflow/index.ts +5 -1
- package/src/agent-workflow/parser.ts +1 -1
- package/src/agent-workflow/sandbox-fixtures/qualify.ts +305 -0
- package/src/agent-workflow/sandbox.test.ts +117 -0
- package/src/agent-workflow/sandbox.ts +438 -0
- package/src/agent-workflow/schema.ts +18 -2
- package/src/agent-workflow/session.test.ts +629 -0
- package/src/agent-workflow/session.ts +1119 -0
- package/src/agent-workflow/target.test.ts +5 -1
- package/src/agent-workflow/target.ts +82 -17
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import type { TokenUsage } from '../adapters/types.js';
|
|
2
|
+
import { type WorkflowEnvironmentFactory, type WorkflowState } from './environment.js';
|
|
3
|
+
import { type AgentWorkflow } from './schema.js';
|
|
4
|
+
import type { AgentTarget, AgentTurnRequest } from './target.js';
|
|
5
|
+
export type AgentWorkflowExecution = 'completed' | 'unsupported' | 'invalid' | 'failed' | 'cancelled' | 'timeout' | 'budget_exceeded';
|
|
6
|
+
export type AgentWorkflowReason = 'finished' | 'invalid_workflow' | 'invalid_options' | 'invalid_fixture' | 'target_unavailable' | 'invalid_response' | 'target_error' | 'tool_use_unsupported' | 'preflight_failed' | 'environment_unavailable' | 'invalid_environment' | 'tool_failed' | 'policy_denied' | 'cancelled' | 'deadline' | 'max_actions' | 'max_model_requests' | 'max_tool_calls' | 'max_tokens' | 'usage_unavailable' | 'transcript_limit';
|
|
7
|
+
export interface AgentWorkflowEvent {
|
|
8
|
+
sequence: number;
|
|
9
|
+
elapsedMs: number;
|
|
10
|
+
type: 'started' | 'model_requested' | 'model_completed' | 'tool_requested' | 'tool_completed' | 'preflight_completed' | 'finished';
|
|
11
|
+
phase: 'execution' | 'preflight';
|
|
12
|
+
operationId?: string;
|
|
13
|
+
requestedCallIdHash?: string;
|
|
14
|
+
tool?: string;
|
|
15
|
+
status?: 'completed' | 'denied' | 'invalid' | 'failed';
|
|
16
|
+
}
|
|
17
|
+
export interface AgentWorkflowRecord {
|
|
18
|
+
schemaVersion: '1';
|
|
19
|
+
engine: 'native';
|
|
20
|
+
execution: AgentWorkflowExecution;
|
|
21
|
+
reason: AgentWorkflowReason;
|
|
22
|
+
policy: 'passed' | 'denied';
|
|
23
|
+
configuration?: {
|
|
24
|
+
sha256: string;
|
|
25
|
+
provider: {
|
|
26
|
+
sha256: string;
|
|
27
|
+
display?: string;
|
|
28
|
+
};
|
|
29
|
+
model: {
|
|
30
|
+
sha256: string;
|
|
31
|
+
display?: string;
|
|
32
|
+
};
|
|
33
|
+
generation: {
|
|
34
|
+
maxTokens: number;
|
|
35
|
+
temperature: number;
|
|
36
|
+
};
|
|
37
|
+
limits: AgentWorkflow['environment']['policy']['budgets'];
|
|
38
|
+
};
|
|
39
|
+
taskVerification: 'unavailable';
|
|
40
|
+
environment: 'simulated' | 'sandbox' | 'unknown';
|
|
41
|
+
capability: {
|
|
42
|
+
advertised: boolean | null;
|
|
43
|
+
transportCancellation: boolean;
|
|
44
|
+
preflight: 'not_requested' | 'passed' | 'failed';
|
|
45
|
+
observedModelHash?: string;
|
|
46
|
+
observedModel?: {
|
|
47
|
+
sha256: string;
|
|
48
|
+
display?: string;
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
usage: {
|
|
52
|
+
status: 'reported' | 'partial' | 'unavailable';
|
|
53
|
+
reported: TokenUsage;
|
|
54
|
+
missingRequests: number;
|
|
55
|
+
inFlightUnknown: boolean;
|
|
56
|
+
preflight: TokenUsage;
|
|
57
|
+
};
|
|
58
|
+
budgets: {
|
|
59
|
+
actions: number;
|
|
60
|
+
modelRequests: number;
|
|
61
|
+
toolCalls: number;
|
|
62
|
+
modelRequestAccounting: 'target_invocations';
|
|
63
|
+
transportAttempts: 'unavailable';
|
|
64
|
+
tokenOvershoot: number;
|
|
65
|
+
elapsedMs: number;
|
|
66
|
+
};
|
|
67
|
+
cleanup: {
|
|
68
|
+
status: 'completed' | 'unresolved';
|
|
69
|
+
artifacts: 'discarded' | 'retained' | 'unknown';
|
|
70
|
+
pendingOperations: number;
|
|
71
|
+
};
|
|
72
|
+
artifacts: {
|
|
73
|
+
state: 'available' | 'unavailable';
|
|
74
|
+
stateSha256?: string;
|
|
75
|
+
files?: {
|
|
76
|
+
pathSha256: string;
|
|
77
|
+
contentSha256: string;
|
|
78
|
+
bytes: number;
|
|
79
|
+
}[];
|
|
80
|
+
omittedFiles?: number;
|
|
81
|
+
};
|
|
82
|
+
events: AgentWorkflowEvent[];
|
|
83
|
+
droppedEvents: number;
|
|
84
|
+
}
|
|
85
|
+
export interface AgentWorkflowResult {
|
|
86
|
+
/** Metadata only. Safe default persistence boundary, never contains model text or fixture content. */
|
|
87
|
+
record: AgentWorkflowRecord;
|
|
88
|
+
/** Sensitive working data; persist only with an explicit application policy. */
|
|
89
|
+
state: WorkflowState | null;
|
|
90
|
+
transcript: AgentTurnRequest['messages'];
|
|
91
|
+
}
|
|
92
|
+
export interface AgentWorkflowSessionOptions {
|
|
93
|
+
workflow: AgentWorkflow;
|
|
94
|
+
target: AgentTarget;
|
|
95
|
+
fixtureRoot?: string;
|
|
96
|
+
environmentFactory?: WorkflowEnvironmentFactory;
|
|
97
|
+
preflight?: boolean;
|
|
98
|
+
preflightOnly?: boolean;
|
|
99
|
+
signal?: AbortSignal;
|
|
100
|
+
/** Total bounded drain/snapshot/close period: 1000 ms simulated, 6000 ms sandbox by default. */
|
|
101
|
+
cleanupTimeoutMs?: number;
|
|
102
|
+
onEvent?: (event: AgentWorkflowEvent) => void;
|
|
103
|
+
}
|
|
104
|
+
export interface AgentWorkflowSession {
|
|
105
|
+
readonly state: 'idle' | 'running' | 'cancelling' | 'completed';
|
|
106
|
+
run(): Promise<AgentWorkflowResult>;
|
|
107
|
+
cancel(): void;
|
|
108
|
+
events(): AsyncIterable<AgentWorkflowEvent>;
|
|
109
|
+
}
|
|
110
|
+
/** Native host-owned loop. No adapter or model may change authority or replenish run budgets. */
|
|
111
|
+
export declare function createAgentWorkflowSession(options: AgentWorkflowSessionOptions): AgentWorkflowSession;
|
|
112
|
+
export declare function runAgentWorkflow(options: AgentWorkflowSessionOptions): Promise<AgentWorkflowResult>;
|
|
113
|
+
//# sourceMappingURL=session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/agent-workflow/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import type { ModelClient, TokenUsage, ToolCall } from '../adapters/types.js';
|
|
3
|
-
declare const
|
|
3
|
+
export declare const agentTurnRequestSchema: z.ZodObject<{
|
|
4
4
|
messages: z.ZodArray<z.ZodObject<{
|
|
5
5
|
role: z.ZodEnum<["system", "user", "assistant", "tool"]>;
|
|
6
6
|
content: z.ZodString;
|
|
@@ -187,16 +187,22 @@ declare const requestSchema: z.ZodObject<{
|
|
|
187
187
|
}[];
|
|
188
188
|
model?: string | undefined;
|
|
189
189
|
}>;
|
|
190
|
-
export type AgentTurnRequest = z.infer<typeof
|
|
190
|
+
export type AgentTurnRequest = z.infer<typeof agentTurnRequestSchema>;
|
|
191
191
|
export type AgentTargetFailure = {
|
|
192
|
+
rejectedCall?: {
|
|
193
|
+
requestedCallIdHash: string;
|
|
194
|
+
tool: string;
|
|
195
|
+
reason: 'undeclared_tool' | 'invalid_arguments' | 'duplicate_id';
|
|
196
|
+
};
|
|
197
|
+
tokens?: TokenUsage;
|
|
198
|
+
usageAvailable?: boolean;
|
|
192
199
|
status: 'unsupported' | 'invalid' | 'error';
|
|
193
200
|
code: 'invalid_request' | 'tool_use_unsupported' | 'invalid_response' | 'target_error' | 'timeout' | 'aborted';
|
|
194
201
|
};
|
|
195
202
|
export type AgentTargetCapabilities = {
|
|
196
203
|
status: 'available';
|
|
197
204
|
toolUse: boolean;
|
|
198
|
-
|
|
199
|
-
transportCancellation: false;
|
|
205
|
+
transportCancellation: boolean;
|
|
200
206
|
};
|
|
201
207
|
export type AgentTurnResult = AgentTargetFailure | {
|
|
202
208
|
status: 'completed';
|
|
@@ -209,6 +215,7 @@ export type AgentTurnResult = AgentTargetFailure | {
|
|
|
209
215
|
};
|
|
210
216
|
/** Adapter-reported counts only; zero can mean unavailable in existing adapters. */
|
|
211
217
|
tokens: TokenUsage;
|
|
218
|
+
usageAvailable?: boolean;
|
|
212
219
|
latencyMs: number;
|
|
213
220
|
finishReason?: 'stop' | 'length' | 'tool_calls' | 'content_filter';
|
|
214
221
|
};
|
|
@@ -219,12 +226,18 @@ export interface AgentTarget {
|
|
|
219
226
|
timeoutMs: number;
|
|
220
227
|
}, signal?: AbortSignal): Promise<AgentTargetCapabilities | AgentTargetFailure>;
|
|
221
228
|
turn(request: AgentTurnRequest, signal?: AbortSignal): Promise<AgentTurnResult>;
|
|
229
|
+
/** Wait for underlying callbacks hidden behind a bounded turn facade. */
|
|
230
|
+
drain?(options: {
|
|
231
|
+
timeoutMs: number;
|
|
232
|
+
}): Promise<{
|
|
233
|
+
pendingOperations: number;
|
|
234
|
+
}>;
|
|
222
235
|
}
|
|
236
|
+
export declare function validWorkflowTranscript(messages: AgentTurnRequest['messages']): boolean;
|
|
223
237
|
/**
|
|
224
|
-
* Bridge existing adapters without provider-specific dispatch.
|
|
225
|
-
* transport
|
|
238
|
+
* Bridge existing adapters without provider-specific dispatch. Workflow calls disable supported
|
|
239
|
+
* transport retries and propagate abort only when the adapter declares transport cancellation.
|
|
226
240
|
* Returned text/tool arguments are working conversation data, not sanitized retained evidence.
|
|
227
241
|
*/
|
|
228
242
|
export declare function createModelClientTarget(client: ModelClient): AgentTarget;
|
|
229
|
-
export {};
|
|
230
243
|
//# sourceMappingURL=target.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"target.d.ts","sourceRoot":"","sources":["../../src/agent-workflow/target.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"target.d.ts","sourceRoot":"","sources":["../../src/agent-workflow/target.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAmB,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAsB5F,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCxB,CAAC;AAmBZ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,CAAC,EAAE;QACb,mBAAmB,EAAE,MAAM,CAAC;QAC5B,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,iBAAiB,GAAG,mBAAmB,GAAG,cAAc,CAAC;KAClE,CAAC;IACF,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,aAAa,GAAG,SAAS,GAAG,OAAO,CAAC;IAC5C,IAAI,EACA,iBAAiB,GACjB,sBAAsB,GACtB,kBAAkB,GAClB,cAAc,GACd,SAAS,GACT,SAAS,CAAC;CACf,CAAC;AACF,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,qBAAqB,EAAE,OAAO,CAAC;CAChC,CAAC;AACF,MAAM,MAAM,eAAe,GACvB,kBAAkB,GAClB;IACE,MAAM,EAAE,WAAW,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAA;KAAE,CAAC;IACzE,oFAAoF;IACpF,MAAM,EAAE,UAAU,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,YAAY,GAAG,gBAAgB,CAAC;CACpE,CAAC;AAEN,qGAAqG;AACrG,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,YAAY,CACV,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,EAC9B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,uBAAuB,GAAG,kBAAkB,CAAC,CAAC;IACzD,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAChF,yEAAyE;IACzE,KAAK,CAAC,CAAC,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,iBAAiB,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChF;AAgCD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,GAAG,OAAO,CAwBvF;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAsKxE"}
|