@windowkit/agent-chat 0.0.0-stage → 0.3.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/LICENSE +21 -0
- package/README.md +147 -2
- package/dist/core/driver.d.ts +183 -0
- package/dist/core/driver.d.ts.map +1 -0
- package/dist/core/driver.js +12 -0
- package/dist/core/driver.js.map +1 -0
- package/dist/core/index.d.ts +8 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +11 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/markdown.d.ts +7 -0
- package/dist/core/markdown.d.ts.map +1 -0
- package/dist/core/markdown.js +53 -0
- package/dist/core/markdown.js.map +1 -0
- package/dist/core/policy.d.ts +18 -0
- package/dist/core/policy.d.ts.map +1 -0
- package/dist/core/policy.js +67 -0
- package/dist/core/policy.js.map +1 -0
- package/dist/core/reducer.d.ts +61 -0
- package/dist/core/reducer.d.ts.map +1 -0
- package/dist/core/reducer.js +391 -0
- package/dist/core/reducer.js.map +1 -0
- package/dist/core/session.d.ts +105 -0
- package/dist/core/session.d.ts.map +1 -0
- package/dist/core/session.js +648 -0
- package/dist/core/session.js.map +1 -0
- package/dist/core/tools.d.ts +120 -0
- package/dist/core/tools.d.ts.map +1 -0
- package/dist/core/tools.js +120 -0
- package/dist/core/tools.js.map +1 -0
- package/dist/core/types.d.ts +295 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +21 -0
- package/dist/core/types.js.map +1 -0
- package/dist/drivers/claude/index.d.ts +20 -0
- package/dist/drivers/claude/index.d.ts.map +1 -0
- package/dist/drivers/claude/index.js +727 -0
- package/dist/drivers/claude/index.js.map +1 -0
- package/dist/drivers/claude/input.d.ts +7 -0
- package/dist/drivers/claude/input.d.ts.map +1 -0
- package/dist/drivers/claude/input.js +46 -0
- package/dist/drivers/claude/input.js.map +1 -0
- package/dist/drivers/claude/peers.d.ts +16 -0
- package/dist/drivers/claude/peers.d.ts.map +1 -0
- package/dist/drivers/claude/peers.js +137 -0
- package/dist/drivers/claude/peers.js.map +1 -0
- package/dist/drivers/claude/schema.d.ts +5 -0
- package/dist/drivers/claude/schema.d.ts.map +1 -0
- package/dist/drivers/claude/schema.js +77 -0
- package/dist/drivers/claude/schema.js.map +1 -0
- package/dist/drivers/claude/sdk.d.ts +86 -0
- package/dist/drivers/claude/sdk.d.ts.map +1 -0
- package/dist/drivers/claude/sdk.js +47 -0
- package/dist/drivers/claude/sdk.js.map +1 -0
- package/dist/drivers/claude/tools.d.ts +18 -0
- package/dist/drivers/claude/tools.d.ts.map +1 -0
- package/dist/drivers/claude/tools.js +119 -0
- package/dist/drivers/claude/tools.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/testing/fake.d.ts +63 -0
- package/dist/testing/fake.d.ts.map +1 -0
- package/dist/testing/fake.js +270 -0
- package/dist/testing/fake.js.map +1 -0
- package/dist/testing/index.d.ts +2 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +4 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/view/AgentChat.d.ts +53 -0
- package/dist/view/AgentChat.d.ts.map +1 -0
- package/dist/view/AgentChat.js +87 -0
- package/dist/view/AgentChat.js.map +1 -0
- package/dist/view/CodeBlock.d.ts +9 -0
- package/dist/view/CodeBlock.d.ts.map +1 -0
- package/dist/view/CodeBlock.js +67 -0
- package/dist/view/CodeBlock.js.map +1 -0
- package/dist/view/Composer.d.ts +24 -0
- package/dist/view/Composer.d.ts.map +1 -0
- package/dist/view/Composer.js +144 -0
- package/dist/view/Composer.js.map +1 -0
- package/dist/view/Header.d.ts +3 -0
- package/dist/view/Header.d.ts.map +1 -0
- package/dist/view/Header.js +30 -0
- package/dist/view/Header.js.map +1 -0
- package/dist/view/MessageList.d.ts +9 -0
- package/dist/view/MessageList.d.ts.map +1 -0
- package/dist/view/MessageList.js +111 -0
- package/dist/view/MessageList.js.map +1 -0
- package/dist/view/QuestionCard.d.ts +6 -0
- package/dist/view/QuestionCard.d.ts.map +1 -0
- package/dist/view/QuestionCard.js +39 -0
- package/dist/view/QuestionCard.js.map +1 -0
- package/dist/view/TextBlock.d.ts +9 -0
- package/dist/view/TextBlock.d.ts.map +1 -0
- package/dist/view/TextBlock.js +25 -0
- package/dist/view/TextBlock.js.map +1 -0
- package/dist/view/ToolCard.d.ts +7 -0
- package/dist/view/ToolCard.d.ts.map +1 -0
- package/dist/view/ToolCard.js +155 -0
- package/dist/view/ToolCard.js.map +1 -0
- package/dist/view/Transcript.d.ts +5 -0
- package/dist/view/Transcript.d.ts.map +1 -0
- package/dist/view/Transcript.js +56 -0
- package/dist/view/Transcript.js.map +1 -0
- package/dist/view/context.d.ts +21 -0
- package/dist/view/context.d.ts.map +1 -0
- package/dist/view/context.js +37 -0
- package/dist/view/context.js.map +1 -0
- package/dist/view/fences.d.ts +13 -0
- package/dist/view/fences.d.ts.map +1 -0
- package/dist/view/fences.js +59 -0
- package/dist/view/fences.js.map +1 -0
- package/dist/view/files.d.ts +11 -0
- package/dist/view/files.d.ts.map +1 -0
- package/dist/view/files.js +109 -0
- package/dist/view/files.js.map +1 -0
- package/dist/view/look.d.ts +25 -0
- package/dist/view/look.d.ts.map +1 -0
- package/dist/view/look.js +47 -0
- package/dist/view/look.js.map +1 -0
- package/dist/view/types.d.ts +50 -0
- package/dist/view/types.d.ts.map +1 -0
- package/dist/view/types.js +14 -0
- package/dist/view/types.js.map +1 -0
- package/dist/view/use-agent.d.ts +11 -0
- package/dist/view/use-agent.d.ts.map +1 -0
- package/dist/view/use-agent.js +33 -0
- package/dist/view/use-agent.js.map +1 -0
- package/package.json +92 -4
- package/src/core/driver.ts +191 -0
- package/src/core/index.ts +54 -0
- package/src/core/markdown.ts +56 -0
- package/src/core/policy.ts +77 -0
- package/src/core/reducer.ts +490 -0
- package/src/core/session.ts +824 -0
- package/src/core/tools.ts +233 -0
- package/src/core/types.ts +321 -0
- package/src/drivers/claude/index.ts +825 -0
- package/src/drivers/claude/input.ts +47 -0
- package/src/drivers/claude/peers.ts +153 -0
- package/src/drivers/claude/schema.ts +99 -0
- package/src/drivers/claude/sdk.ts +138 -0
- package/src/drivers/claude/tools.ts +141 -0
- package/src/index.ts +51 -0
- package/src/testing/fake.ts +374 -0
- package/src/testing/index.ts +11 -0
- package/src/view/AgentChat.tsx +204 -0
- package/src/view/CodeBlock.tsx +115 -0
- package/src/view/Composer.tsx +230 -0
- package/src/view/Header.tsx +73 -0
- package/src/view/MessageList.tsx +290 -0
- package/src/view/QuestionCard.tsx +107 -0
- package/src/view/TextBlock.tsx +61 -0
- package/src/view/ToolCard.tsx +283 -0
- package/src/view/Transcript.tsx +91 -0
- package/src/view/context.ts +70 -0
- package/src/view/dom-globals.d.ts +10 -0
- package/src/view/fences.ts +73 -0
- package/src/view/files.ts +111 -0
- package/src/view/look.ts +70 -0
- package/src/view/types.ts +71 -0
- package/src/view/use-agent.ts +40 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/core/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import type { Part, ToolKind, ToolOutput } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* A Standard Schema (https://standardschema.dev): zod 3.24+ and 4, valibot,
|
|
4
|
+
* arktype. Written out structurally so nothing here imports a schema library.
|
|
5
|
+
*/
|
|
6
|
+
export interface StandardSchemaLike<Output = unknown> {
|
|
7
|
+
readonly '~standard': {
|
|
8
|
+
readonly version: 1;
|
|
9
|
+
readonly vendor: string;
|
|
10
|
+
readonly validate: (value: unknown) => StandardResult<Output> | Promise<StandardResult<Output>>;
|
|
11
|
+
readonly types?: {
|
|
12
|
+
readonly input: unknown;
|
|
13
|
+
readonly output: Output;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
type StandardResult<Output> = {
|
|
18
|
+
readonly value: Output;
|
|
19
|
+
readonly issues?: undefined;
|
|
20
|
+
} | {
|
|
21
|
+
readonly issues: ReadonlyArray<{
|
|
22
|
+
readonly message: string;
|
|
23
|
+
readonly path?: ReadonlyArray<PropertyKey | {
|
|
24
|
+
key: PropertyKey;
|
|
25
|
+
}>;
|
|
26
|
+
}>;
|
|
27
|
+
};
|
|
28
|
+
/** A JSON Schema for an object: what every harness ends up sending. */
|
|
29
|
+
export interface JsonObjectSchema {
|
|
30
|
+
type: 'object';
|
|
31
|
+
properties?: Record<string, unknown>;
|
|
32
|
+
required?: readonly string[];
|
|
33
|
+
[key: string]: unknown;
|
|
34
|
+
}
|
|
35
|
+
/** A tool's arguments: a Standard Schema object (zod's `z.object`), or a
|
|
36
|
+
* JSON Schema. */
|
|
37
|
+
export type ToolParameters = StandardSchemaLike | JsonObjectSchema;
|
|
38
|
+
/** The arguments `run` is handed, inferred from `parameters` where it can be. */
|
|
39
|
+
export type InferInput<P> = P extends StandardSchemaLike<infer O> ? O : Record<string, unknown>;
|
|
40
|
+
export interface ToolContext {
|
|
41
|
+
/** Aborted when the user stops the turn. */
|
|
42
|
+
signal: AbortSignal;
|
|
43
|
+
/** The tool call's id, as the transcript knows it. */
|
|
44
|
+
callId: string;
|
|
45
|
+
/** A line shown on the tool's card while it runs. */
|
|
46
|
+
progress(text: string): void;
|
|
47
|
+
}
|
|
48
|
+
/** What a tool's `render` is handed: its part, and the value `run`
|
|
49
|
+
* returned, once it has. */
|
|
50
|
+
export interface ToolRenderInfo<I = unknown, O = unknown> {
|
|
51
|
+
part: Extract<Part, {
|
|
52
|
+
type: 'tool';
|
|
53
|
+
}>;
|
|
54
|
+
input: I | undefined;
|
|
55
|
+
output: O | undefined;
|
|
56
|
+
}
|
|
57
|
+
export interface ToolDef<I = any, O = unknown, R = unknown> {
|
|
58
|
+
/** What the model reads to decide when to call it. */
|
|
59
|
+
description: string;
|
|
60
|
+
parameters: ToolParameters;
|
|
61
|
+
run(input: I, ctx: ToolContext): O | Promise<O>;
|
|
62
|
+
/** Ask the user before every call. Default false: the app wrote it. */
|
|
63
|
+
ask?: boolean;
|
|
64
|
+
/** One line for the tool's card. Default: the tool's name. */
|
|
65
|
+
title?: (input: I) => string;
|
|
66
|
+
/** Default `'other'`. */
|
|
67
|
+
kind?: ToolKind;
|
|
68
|
+
/** Draws the call. The view's `defineTool` types this as a `ReactNode`. */
|
|
69
|
+
render?: (info: ToolRenderInfo<I, O>) => R;
|
|
70
|
+
}
|
|
71
|
+
/** Any tool, whatever its arguments and result: what a map of tools holds.
|
|
72
|
+
* (`ToolDef<unknown, unknown>` would refuse a tool whose `render` takes its
|
|
73
|
+
* own result type.) */
|
|
74
|
+
export type AnyToolDef = ToolDef<any, any, any>;
|
|
75
|
+
/** An identity, for inference: `run`'s argument is typed from `parameters`. */
|
|
76
|
+
export declare function defineTool<P extends ToolParameters, O, R = unknown>(def: ToolDef<InferInput<P>, O, R> & {
|
|
77
|
+
parameters: P;
|
|
78
|
+
}): ToolDef<InferInput<P>, O, R>;
|
|
79
|
+
/** The shape every driver sends back: MCP's `CallToolResult`. */
|
|
80
|
+
export interface ToolResult {
|
|
81
|
+
content: Array<{
|
|
82
|
+
type: 'text';
|
|
83
|
+
text: string;
|
|
84
|
+
} | {
|
|
85
|
+
type: 'image';
|
|
86
|
+
data: string;
|
|
87
|
+
mimeType: string;
|
|
88
|
+
}>;
|
|
89
|
+
isError?: boolean;
|
|
90
|
+
structuredContent?: Record<string, unknown>;
|
|
91
|
+
}
|
|
92
|
+
export declare function isStandardSchema(p: unknown): p is StandardSchemaLike;
|
|
93
|
+
/**
|
|
94
|
+
* Validate a call's arguments. Answers the value `run` should see, or the
|
|
95
|
+
* message the model should: a bad argument is a tool error the model can
|
|
96
|
+
* correct, never a throw in the app.
|
|
97
|
+
*/
|
|
98
|
+
export declare function validateInput(parameters: ToolParameters, input: unknown): Promise<{
|
|
99
|
+
ok: true;
|
|
100
|
+
value: unknown;
|
|
101
|
+
} | {
|
|
102
|
+
ok: false;
|
|
103
|
+
message: string;
|
|
104
|
+
}>;
|
|
105
|
+
/**
|
|
106
|
+
* Whatever `run` returned, as a result for the model and outputs for the
|
|
107
|
+
* card. A string is text; `undefined` is a bare "Done."; an MCP result is
|
|
108
|
+
* passed through; anything else is sent as JSON and kept as a `value`
|
|
109
|
+
* output, so the tool's `render` gets the object itself.
|
|
110
|
+
*/
|
|
111
|
+
export declare function normalizeResult(returned: unknown): {
|
|
112
|
+
result: ToolResult;
|
|
113
|
+
output: ToolOutput[];
|
|
114
|
+
};
|
|
115
|
+
/** A thrown error, as a result the model sees. The turn goes on. */
|
|
116
|
+
export declare function errorResult(err: unknown): ToolResult;
|
|
117
|
+
/** A JSON Schema for any `ToolParameters`, for drivers that send one. */
|
|
118
|
+
export declare function jsonSchemaOf(parameters: ToolParameters): JsonObjectSchema;
|
|
119
|
+
export {};
|
|
120
|
+
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/core/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
// The app's own tools: a function and the shape of its arguments.
|
|
2
|
+
//
|
|
3
|
+
// Getting the function to the agent is the driver's business — in-process
|
|
4
|
+
// for Claude, a dynamic tool for Codex, an MCP bridge for an ACP agent — so
|
|
5
|
+
// nothing here knows about MCP beyond the result shape every one of those
|
|
6
|
+
// ends in. What is here is the part every driver shares: validating the
|
|
7
|
+
// arguments before `run` sees them, and turning whatever `run` returned into
|
|
8
|
+
// something a model can read and a renderer can draw.
|
|
9
|
+
/** An identity, for inference: `run`'s argument is typed from `parameters`. */
|
|
10
|
+
export function defineTool(def) {
|
|
11
|
+
return def;
|
|
12
|
+
}
|
|
13
|
+
export function isStandardSchema(p) {
|
|
14
|
+
return (!!p &&
|
|
15
|
+
(typeof p === 'object' || typeof p === 'function') &&
|
|
16
|
+
'~standard' in p);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Validate a call's arguments. Answers the value `run` should see, or the
|
|
20
|
+
* message the model should: a bad argument is a tool error the model can
|
|
21
|
+
* correct, never a throw in the app.
|
|
22
|
+
*/
|
|
23
|
+
export async function validateInput(parameters, input) {
|
|
24
|
+
if (isStandardSchema(parameters)) {
|
|
25
|
+
const result = await parameters['~standard'].validate(input);
|
|
26
|
+
if (result.issues) {
|
|
27
|
+
const lines = result.issues.map((issue) => {
|
|
28
|
+
const path = (issue.path ?? [])
|
|
29
|
+
.map((k) => String(typeof k === 'object' ? k.key : k))
|
|
30
|
+
.join('.');
|
|
31
|
+
return path ? `${path}: ${issue.message}` : issue.message;
|
|
32
|
+
});
|
|
33
|
+
return { ok: false, message: `Invalid arguments: ${lines.join('; ')}` };
|
|
34
|
+
}
|
|
35
|
+
return { ok: true, value: result.value };
|
|
36
|
+
}
|
|
37
|
+
// A JSON Schema is the harness's to enforce; the required keys are cheap
|
|
38
|
+
// to check here, and a model that left one out deserves a clear answer.
|
|
39
|
+
const missing = (parameters.required ?? []).filter((key) => !input || typeof input !== 'object' || !(key in input));
|
|
40
|
+
if (missing.length) {
|
|
41
|
+
return {
|
|
42
|
+
ok: false,
|
|
43
|
+
message: `Invalid arguments: missing ${missing.join(', ')}`,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
return { ok: true, value: input };
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Whatever `run` returned, as a result for the model and outputs for the
|
|
50
|
+
* card. A string is text; `undefined` is a bare "Done."; an MCP result is
|
|
51
|
+
* passed through; anything else is sent as JSON and kept as a `value`
|
|
52
|
+
* output, so the tool's `render` gets the object itself.
|
|
53
|
+
*/
|
|
54
|
+
export function normalizeResult(returned) {
|
|
55
|
+
if (typeof returned === 'string') {
|
|
56
|
+
return {
|
|
57
|
+
result: { content: [{ type: 'text', text: returned }] },
|
|
58
|
+
output: [{ type: 'text', text: returned }],
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
if (returned === undefined || returned === null) {
|
|
62
|
+
return {
|
|
63
|
+
result: { content: [{ type: 'text', text: 'Done.' }] },
|
|
64
|
+
output: [],
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
if (isToolResult(returned)) {
|
|
68
|
+
return { result: returned, output: outputsOf(returned) };
|
|
69
|
+
}
|
|
70
|
+
const text = safeJson(returned);
|
|
71
|
+
const structured = typeof returned === 'object' && !Array.isArray(returned)
|
|
72
|
+
? returned
|
|
73
|
+
: undefined;
|
|
74
|
+
return {
|
|
75
|
+
result: {
|
|
76
|
+
content: [{ type: 'text', text }],
|
|
77
|
+
...(structured ? { structuredContent: structured } : {}),
|
|
78
|
+
},
|
|
79
|
+
output: [{ type: 'value', value: returned }],
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
/** A thrown error, as a result the model sees. The turn goes on. */
|
|
83
|
+
export function errorResult(err) {
|
|
84
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
85
|
+
return { content: [{ type: 'text', text: message }], isError: true };
|
|
86
|
+
}
|
|
87
|
+
function isToolResult(value) {
|
|
88
|
+
return (!!value &&
|
|
89
|
+
typeof value === 'object' &&
|
|
90
|
+
Array.isArray(value.content) &&
|
|
91
|
+
value.content.every((c) => !!c && typeof c === 'object' && 'type' in c));
|
|
92
|
+
}
|
|
93
|
+
function outputsOf(result) {
|
|
94
|
+
return result.content.map((c) => c.type === 'image'
|
|
95
|
+
? { type: 'image', mime: c.mimeType, data: c.data }
|
|
96
|
+
: { type: 'text', text: c.text });
|
|
97
|
+
}
|
|
98
|
+
function safeJson(value) {
|
|
99
|
+
try {
|
|
100
|
+
return JSON.stringify(value, null, 2) ?? String(value);
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
return String(value);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/** A JSON Schema for any `ToolParameters`, for drivers that send one. */
|
|
107
|
+
export function jsonSchemaOf(parameters) {
|
|
108
|
+
if (!isStandardSchema(parameters))
|
|
109
|
+
return parameters;
|
|
110
|
+
// zod 4 answers `toJSONSchema()` on the schema itself; a library that does
|
|
111
|
+
// not leaves the model a bare object, and validation still holds.
|
|
112
|
+
const own = parameters.toJSONSchema;
|
|
113
|
+
if (typeof own === 'function') {
|
|
114
|
+
const schema = own.call(parameters);
|
|
115
|
+
if (schema && schema.type === 'object')
|
|
116
|
+
return schema;
|
|
117
|
+
}
|
|
118
|
+
return { type: 'object' };
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/core/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
/** What a session is doing. */
|
|
2
|
+
export type AgentStatus =
|
|
3
|
+
/** Nothing is running; the next `send` starts a turn. */
|
|
4
|
+
'idle'
|
|
5
|
+
/** The driver is starting the harness. */
|
|
6
|
+
| 'starting'
|
|
7
|
+
/** A turn is under way. */
|
|
8
|
+
| 'running'
|
|
9
|
+
/** A turn is waiting on the user: an approval or a question. */
|
|
10
|
+
| 'waiting'
|
|
11
|
+
/** A turn is held at the gate until `resume()`. */
|
|
12
|
+
| 'paused'
|
|
13
|
+
/** The harness could not be started here: no SDK, no binary, no key. */
|
|
14
|
+
| 'unavailable'
|
|
15
|
+
/** The harness failed; `error` says how. A new `send` tries again. */
|
|
16
|
+
| 'error' | 'closed';
|
|
17
|
+
/** What a tool does, in ACP's vocabulary, whichever harness named it. */
|
|
18
|
+
export type ToolKind = 'read' | 'edit' | 'delete' | 'move' | 'search' | 'execute' | 'think' | 'fetch' | 'other';
|
|
19
|
+
export type ToolState =
|
|
20
|
+
/** Its arguments are still streaming. */
|
|
21
|
+
'input-streaming'
|
|
22
|
+
/** Called, not yet running. */
|
|
23
|
+
| 'pending'
|
|
24
|
+
/** Waiting for the user to allow or deny it. */
|
|
25
|
+
| 'awaiting-approval' | 'running' | 'done' | 'error' | 'denied' | 'cancelled';
|
|
26
|
+
/** One piece of what a tool produced. */
|
|
27
|
+
export type ToolOutput =
|
|
28
|
+
/** `progress`: a line the tool replaces as it runs, dropped when it ends. */
|
|
29
|
+
{
|
|
30
|
+
type: 'text';
|
|
31
|
+
text: string;
|
|
32
|
+
progress?: boolean;
|
|
33
|
+
}
|
|
34
|
+
/** Program output, escapes and all. */
|
|
35
|
+
| {
|
|
36
|
+
type: 'terminal';
|
|
37
|
+
text: string;
|
|
38
|
+
exitCode?: number;
|
|
39
|
+
}
|
|
40
|
+
/** A file's change. `oldText` null for a new file. */
|
|
41
|
+
| {
|
|
42
|
+
type: 'diff';
|
|
43
|
+
path: string;
|
|
44
|
+
oldText: string | null;
|
|
45
|
+
newText: string;
|
|
46
|
+
} | {
|
|
47
|
+
type: 'image';
|
|
48
|
+
mime: string;
|
|
49
|
+
data: string;
|
|
50
|
+
}
|
|
51
|
+
/** What an app tool's `run` returned, as it returned it. */
|
|
52
|
+
| {
|
|
53
|
+
type: 'value';
|
|
54
|
+
value: unknown;
|
|
55
|
+
};
|
|
56
|
+
export type ApprovalChoice = 'allow-once' | 'allow-session' | 'deny';
|
|
57
|
+
export interface ApprovalOption {
|
|
58
|
+
id: ApprovalChoice;
|
|
59
|
+
label: string;
|
|
60
|
+
kind: 'allow' | 'deny';
|
|
61
|
+
}
|
|
62
|
+
export interface TextPart {
|
|
63
|
+
type: 'text';
|
|
64
|
+
id: string;
|
|
65
|
+
text: string;
|
|
66
|
+
/** More of it may still arrive. */
|
|
67
|
+
streaming: boolean;
|
|
68
|
+
}
|
|
69
|
+
export interface ReasoningPart {
|
|
70
|
+
type: 'reasoning';
|
|
71
|
+
id: string;
|
|
72
|
+
text: string;
|
|
73
|
+
streaming: boolean;
|
|
74
|
+
}
|
|
75
|
+
export interface ToolPart {
|
|
76
|
+
type: 'tool';
|
|
77
|
+
id: string;
|
|
78
|
+
/** What the model called it: `Bash`, `mcp__app__openTicket`. */
|
|
79
|
+
name: string;
|
|
80
|
+
/** What is shown, and what `renderTool` is keyed by: `Bash`, `openTicket`. */
|
|
81
|
+
label: string;
|
|
82
|
+
kind: ToolKind;
|
|
83
|
+
/** One line: `Read src/app.ts`, `make test`. */
|
|
84
|
+
title: string;
|
|
85
|
+
input: unknown;
|
|
86
|
+
/** The arguments' JSON as it streams; `input` once it parses. */
|
|
87
|
+
inputText: string;
|
|
88
|
+
state: ToolState;
|
|
89
|
+
/** Present while `state` is `'awaiting-approval'`. */
|
|
90
|
+
approval?: {
|
|
91
|
+
options: readonly ApprovalOption[];
|
|
92
|
+
reason?: string;
|
|
93
|
+
};
|
|
94
|
+
output: readonly ToolOutput[];
|
|
95
|
+
error?: string;
|
|
96
|
+
/** The tool is one of the app's own (`tools`). */
|
|
97
|
+
app: boolean;
|
|
98
|
+
/** A subagent's own thread, for a tool that runs one. */
|
|
99
|
+
children?: readonly AgentMessage[];
|
|
100
|
+
}
|
|
101
|
+
export interface PlanEntry {
|
|
102
|
+
text: string;
|
|
103
|
+
status: 'pending' | 'in_progress' | 'completed';
|
|
104
|
+
}
|
|
105
|
+
export interface PlanPart {
|
|
106
|
+
type: 'plan';
|
|
107
|
+
id: string;
|
|
108
|
+
entries: readonly PlanEntry[];
|
|
109
|
+
}
|
|
110
|
+
export interface Question {
|
|
111
|
+
question: string;
|
|
112
|
+
header?: string;
|
|
113
|
+
options: readonly {
|
|
114
|
+
label: string;
|
|
115
|
+
description?: string;
|
|
116
|
+
}[];
|
|
117
|
+
multiSelect: boolean;
|
|
118
|
+
}
|
|
119
|
+
export interface QuestionPart {
|
|
120
|
+
type: 'question';
|
|
121
|
+
id: string;
|
|
122
|
+
questions: readonly Question[];
|
|
123
|
+
state: 'open' | 'answered' | 'cancelled';
|
|
124
|
+
/** By question text: the chosen label, labels joined by `, `, or free text. */
|
|
125
|
+
answers?: Readonly<Record<string, string>>;
|
|
126
|
+
}
|
|
127
|
+
export interface FilePart {
|
|
128
|
+
type: 'file';
|
|
129
|
+
id: string;
|
|
130
|
+
label: string;
|
|
131
|
+
mime: string;
|
|
132
|
+
path?: string;
|
|
133
|
+
/** base64, for an image or a pasted blob sent with the message. */
|
|
134
|
+
data?: string;
|
|
135
|
+
}
|
|
136
|
+
export interface NoticePart {
|
|
137
|
+
type: 'notice';
|
|
138
|
+
id: string;
|
|
139
|
+
level: 'info' | 'warning' | 'error';
|
|
140
|
+
text: string;
|
|
141
|
+
}
|
|
142
|
+
/** A driver's or an app's own data, reconciled by `id`. */
|
|
143
|
+
export interface DataPart {
|
|
144
|
+
type: 'data';
|
|
145
|
+
id: string;
|
|
146
|
+
name: string;
|
|
147
|
+
value: unknown;
|
|
148
|
+
}
|
|
149
|
+
export type Part = TextPart | ReasoningPart | ToolPart | PlanPart | QuestionPart | FilePart | NoticePart | DataPart;
|
|
150
|
+
/**
|
|
151
|
+
* Who wrote a message that reached the agent from somewhere other than the
|
|
152
|
+
* person at the keyboard.
|
|
153
|
+
*/
|
|
154
|
+
export type MessageSource =
|
|
155
|
+
/** Another agent session, or a process speaking as one. `id` addresses
|
|
156
|
+
* it and `name` is what is shown; `session` is the harness's own id for
|
|
157
|
+
* it, where it has one. */
|
|
158
|
+
{
|
|
159
|
+
kind: 'peer';
|
|
160
|
+
id: string;
|
|
161
|
+
name?: string;
|
|
162
|
+
session?: string;
|
|
163
|
+
}
|
|
164
|
+
/** An event pushed into the session from outside, named by what pushed
|
|
165
|
+
* it: one of Claude Code's MCP channels. */
|
|
166
|
+
| {
|
|
167
|
+
kind: 'channel';
|
|
168
|
+
server: string;
|
|
169
|
+
};
|
|
170
|
+
/** A message an app sends on another session's behalf. */
|
|
171
|
+
export type PeerSource = Extract<MessageSource, {
|
|
172
|
+
kind: 'peer';
|
|
173
|
+
}>;
|
|
174
|
+
export interface AgentMessage {
|
|
175
|
+
id: string;
|
|
176
|
+
role: 'user' | 'assistant';
|
|
177
|
+
parts: readonly Part[];
|
|
178
|
+
createdAt: number;
|
|
179
|
+
/** A user-role message the user did not write: who did. */
|
|
180
|
+
from?: MessageSource;
|
|
181
|
+
/** A user message sent while the agent was running, waiting its turn. */
|
|
182
|
+
queued?: boolean;
|
|
183
|
+
/** An assistant message whose turn has ended. */
|
|
184
|
+
done?: boolean;
|
|
185
|
+
}
|
|
186
|
+
/** What a session can do. The view draws an action only where it works. */
|
|
187
|
+
export interface Capabilities {
|
|
188
|
+
/** How the app's `tools` reach the agent. */
|
|
189
|
+
tools: 'in-process' | 'bridge' | 'dynamic' | false;
|
|
190
|
+
systemPrompt: {
|
|
191
|
+
replace: boolean;
|
|
192
|
+
append: boolean;
|
|
193
|
+
};
|
|
194
|
+
/** What `coreTools: { x: false }` can do. */
|
|
195
|
+
coreTools: 'remove' | 'deny-when-asked' | 'sandbox' | false;
|
|
196
|
+
/** Which tool calls pass through the host: all of them, or only those the
|
|
197
|
+
* agent asks about. `pause()` needs `'every-call'`. */
|
|
198
|
+
gate: 'every-call' | 'asked-calls';
|
|
199
|
+
/** A message sent mid-turn reaches the agent at once, rather than queuing. */
|
|
200
|
+
steer: boolean;
|
|
201
|
+
fork: boolean;
|
|
202
|
+
rewindFiles: 'edits' | false;
|
|
203
|
+
models: boolean;
|
|
204
|
+
modes: boolean;
|
|
205
|
+
images: boolean;
|
|
206
|
+
}
|
|
207
|
+
export declare const NO_CAPABILITIES: Capabilities;
|
|
208
|
+
export interface Usage {
|
|
209
|
+
inputTokens?: number;
|
|
210
|
+
outputTokens?: number;
|
|
211
|
+
/** Cumulative over the session, where the harness says. */
|
|
212
|
+
costUsd?: number;
|
|
213
|
+
turns?: number;
|
|
214
|
+
}
|
|
215
|
+
export interface SessionInfo {
|
|
216
|
+
/** The driver's name: `'claude'`, `'fake'`. */
|
|
217
|
+
agent: string;
|
|
218
|
+
/** The harness's own session id, once it has one. */
|
|
219
|
+
id?: string;
|
|
220
|
+
cwd?: string;
|
|
221
|
+
model?: string;
|
|
222
|
+
models: readonly {
|
|
223
|
+
id: string;
|
|
224
|
+
label: string;
|
|
225
|
+
description?: string;
|
|
226
|
+
}[];
|
|
227
|
+
mode?: string;
|
|
228
|
+
modes: readonly {
|
|
229
|
+
id: string;
|
|
230
|
+
label: string;
|
|
231
|
+
}[];
|
|
232
|
+
commands: readonly {
|
|
233
|
+
name: string;
|
|
234
|
+
description?: string;
|
|
235
|
+
}[];
|
|
236
|
+
usage?: Usage;
|
|
237
|
+
}
|
|
238
|
+
/** A tool call, as `onToolCall` and the policy see it. */
|
|
239
|
+
export interface ToolCall {
|
|
240
|
+
id: string;
|
|
241
|
+
name: string;
|
|
242
|
+
label: string;
|
|
243
|
+
kind: ToolKind;
|
|
244
|
+
title: string;
|
|
245
|
+
input: unknown;
|
|
246
|
+
/** One of the app's own `tools`. */
|
|
247
|
+
app: boolean;
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* What `onToolCall` answers.
|
|
251
|
+
*
|
|
252
|
+
* - `'allow'`, `'allow-session'` (this tool, for the rest of the session);
|
|
253
|
+
* - `'deny'`, or `{ deny: reason }`, which the model is told;
|
|
254
|
+
* - `{ allow: true, input }`, which runs with changed arguments;
|
|
255
|
+
* - `'ask'`: the user decides, through the approval row;
|
|
256
|
+
* - `undefined`: the `permissions` policy decides.
|
|
257
|
+
*/
|
|
258
|
+
export type ToolDecision = 'allow' | 'allow-session' | 'deny' | 'ask' | {
|
|
259
|
+
deny: string;
|
|
260
|
+
} | {
|
|
261
|
+
allow: true;
|
|
262
|
+
input: unknown;
|
|
263
|
+
} | undefined;
|
|
264
|
+
/**
|
|
265
|
+
* The policy under `onToolCall`.
|
|
266
|
+
*
|
|
267
|
+
* - `'ask'` (default): reads run, everything else asks.
|
|
268
|
+
* - `'edits'`: edits run as well.
|
|
269
|
+
* - `'read-only'`: nothing that changes anything runs.
|
|
270
|
+
* - `'auto'`: the harness's own mode decides.
|
|
271
|
+
*/
|
|
272
|
+
export type PermissionPolicy = 'ask' | 'edits' | 'read-only' | 'auto';
|
|
273
|
+
/** The harness's built-in tools, by what they do. */
|
|
274
|
+
export type CoreToolKey = 'shell' | 'read' | 'edit' | 'web' | 'agents' | 'todos';
|
|
275
|
+
/** An attachment sent with a message. */
|
|
276
|
+
export interface Attachment {
|
|
277
|
+
kind: 'image' | 'file' | 'paste';
|
|
278
|
+
label: string;
|
|
279
|
+
mime?: string;
|
|
280
|
+
path?: string;
|
|
281
|
+
/** Text, or base64 for bytes. */
|
|
282
|
+
data?: string;
|
|
283
|
+
}
|
|
284
|
+
/** What `send` takes besides a string. */
|
|
285
|
+
export interface ComposedMessage {
|
|
286
|
+
text: string;
|
|
287
|
+
attachments?: readonly Attachment[];
|
|
288
|
+
/**
|
|
289
|
+
* Sent on another session's behalf: drawn as theirs, and the harness is
|
|
290
|
+
* told the user did not write it. Absent, the message is the user's,
|
|
291
|
+
* whether they typed it or the app sent it for them.
|
|
292
|
+
*/
|
|
293
|
+
from?: PeerSource;
|
|
294
|
+
}
|
|
295
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// The message model, and everything a session says about itself.
|
|
2
|
+
//
|
|
3
|
+
// Plain data throughout: a part is never a function, never a class, never a
|
|
4
|
+
// handle into the driver. That is what lets the view memoize a message by
|
|
5
|
+
// identity, a test compare transcripts with `deepStrictEqual`, and a recorder
|
|
6
|
+
// write a session to JSONL. Anything a part needs to *do* — answer an
|
|
7
|
+
// approval, answer a question — is a method on the session, keyed by the
|
|
8
|
+
// part's id.
|
|
9
|
+
export const NO_CAPABILITIES = Object.freeze({
|
|
10
|
+
tools: false,
|
|
11
|
+
systemPrompt: Object.freeze({ replace: false, append: false }),
|
|
12
|
+
coreTools: false,
|
|
13
|
+
gate: 'asked-calls',
|
|
14
|
+
steer: false,
|
|
15
|
+
fork: false,
|
|
16
|
+
rewindFiles: false,
|
|
17
|
+
models: false,
|
|
18
|
+
modes: false,
|
|
19
|
+
images: false,
|
|
20
|
+
});
|
|
21
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,EAAE;AACF,4EAA4E;AAC5E,0EAA0E;AAC1E,8EAA8E;AAC9E,sEAAsE;AACtE,yEAAyE;AACzE,aAAa;AAsNb,MAAM,CAAC,MAAM,eAAe,GAAiB,MAAM,CAAC,MAAM,CAAC;IACzD,KAAK,EAAE,KAAK;IACZ,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC9D,SAAS,EAAE,KAAK;IAChB,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,KAAK;IACX,WAAW,EAAE,KAAK;IAClB,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,KAAK;CACd,CAAiB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { AgentDriver } from '../../core/driver.js';
|
|
2
|
+
import type { Capabilities } from '../../core/types.js';
|
|
3
|
+
import { type ClaudeSdk } from './sdk.js';
|
|
4
|
+
export type { ClaudeSdk, SdkMessage, SdkQuery, SdkUserMessage } from './sdk.js';
|
|
5
|
+
export interface ClaudeDriverOptions {
|
|
6
|
+
/** The SDK module. Default: `@anthropic-ai/claude-agent-sdk`, imported
|
|
7
|
+
* when the session starts. A test hands a fake. */
|
|
8
|
+
sdk?: ClaudeSdk;
|
|
9
|
+
/** Where to import the SDK from, when `sdk` is not given. Default
|
|
10
|
+
* `@anthropic-ai/claude-agent-sdk`. */
|
|
11
|
+
module?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare const CLAUDE_CAPABILITIES: Capabilities;
|
|
14
|
+
/** Claude Code's permission modes, as the mode picker offers them. */
|
|
15
|
+
export declare const CLAUDE_MODES: readonly {
|
|
16
|
+
id: string;
|
|
17
|
+
label: string;
|
|
18
|
+
}[];
|
|
19
|
+
export declare function claudeDriver(options?: ClaudeDriverOptions): AgentDriver;
|
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|