condukt 0.6.21 → 0.8.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 +35 -0
- package/dist/runtimes/copilot/copilot-adapter.d.ts.map +1 -1
- package/dist/runtimes/copilot/copilot-adapter.js +26 -7
- package/dist/runtimes/copilot/copilot-adapter.js.map +1 -1
- package/dist/runtimes/copilot/copilot-backend.d.ts +35 -1
- package/dist/runtimes/copilot/copilot-backend.d.ts.map +1 -1
- package/dist/runtimes/copilot/sdk-backend.d.ts +2 -2
- package/dist/runtimes/copilot/sdk-backend.d.ts.map +1 -1
- package/dist/runtimes/copilot/sdk-backend.js +38 -3
- package/dist/runtimes/copilot/sdk-backend.js.map +1 -1
- package/dist/runtimes/copilot/subprocess-backend.d.ts +2 -2
- package/dist/runtimes/copilot/subprocess-backend.d.ts.map +1 -1
- package/dist/runtimes/copilot/subprocess-backend.js +4 -1
- package/dist/runtimes/copilot/subprocess-backend.js.map +1 -1
- package/dist/runtimes/mock/mock-runtime.d.ts +23 -20
- package/dist/runtimes/mock/mock-runtime.d.ts.map +1 -1
- package/dist/runtimes/mock/mock-runtime.js +79 -24
- package/dist/runtimes/mock/mock-runtime.js.map +1 -1
- package/dist/src/agent-node.d.ts +90 -0
- package/dist/src/agent-node.d.ts.map +1 -0
- package/dist/src/agent-node.js +383 -0
- package/dist/src/agent-node.js.map +1 -0
- package/dist/src/agent.d.ts +4 -1
- package/dist/src/agent.d.ts.map +1 -1
- package/dist/src/agent.js +438 -224
- package/dist/src/agent.js.map +1 -1
- package/dist/src/dry-run.d.ts +16 -0
- package/dist/src/dry-run.d.ts.map +1 -0
- package/dist/src/dry-run.js +44 -0
- package/dist/src/dry-run.js.map +1 -0
- package/dist/src/events.d.ts +1 -0
- package/dist/src/events.d.ts.map +1 -1
- package/dist/src/index.d.ts +19 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +18 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/panel-node.d.ts +37 -0
- package/dist/src/panel-node.d.ts.map +1 -0
- package/dist/src/panel-node.js +175 -0
- package/dist/src/panel-node.js.map +1 -0
- package/dist/src/scheduler.d.ts.map +1 -1
- package/dist/src/scheduler.js +311 -5
- package/dist/src/scheduler.js.map +1 -1
- package/dist/src/types.d.ts +115 -3
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js +7 -1
- package/dist/src/types.js.map +1 -1
- package/dist/state/reducer.js +2 -2
- package/dist/state/reducer.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-runtime.d.ts","sourceRoot":"","sources":["../../../runtimes/mock/mock-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"mock-runtime.d.ts","sourceRoot":"","sources":["../../../runtimes/mock/mock-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AAIzB,MAAM,WAAW,cAAc;IAC7B,sDAAsD;IACtD,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC;IACnE,uFAAuF;IACvF,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,sEAAsE;IACtE,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC;QAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB,CAAC,CAAC;IACH,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;IAC/C,4DAA4D;IAC5D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC;IACxD,qEAAqE;IACrE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAiDD;;;;;;GAMG;AACH,qBAAa,WAAY,YAAW,YAAY;IAC9C,QAAQ,CAAC,IAAI,UAAU;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2C;IACnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoC;IACjE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6B;gBAG3D,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,EACjD,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,MAAM,CAAA;KAAE;IAOnE,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,aAAa,CACjB,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,YAAY,CAAC;IA2BxB,OAAO,CAAC,kBAAkB;CAK3B"}
|
|
@@ -43,29 +43,78 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
43
43
|
exports.MockRuntime = void 0;
|
|
44
44
|
const fs = __importStar(require("fs"));
|
|
45
45
|
const path = __importStar(require("path"));
|
|
46
|
+
function sequenceValue(values, index) {
|
|
47
|
+
if (values.length === 0)
|
|
48
|
+
return undefined;
|
|
49
|
+
return values[Math.min(index, values.length - 1)];
|
|
50
|
+
}
|
|
51
|
+
function resolveText(configured, responseIndex) {
|
|
52
|
+
if (!configured)
|
|
53
|
+
return [];
|
|
54
|
+
const arrayCount = configured.filter((value) => Array.isArray(value)).length;
|
|
55
|
+
if (arrayCount > 0 && arrayCount < configured.length) {
|
|
56
|
+
throw new Error('MockNodeConfig.text must be string[] (one response) or string[][] (per-send), not mixed');
|
|
57
|
+
}
|
|
58
|
+
if (arrayCount === configured.length && configured.length > 0) {
|
|
59
|
+
return sequenceValue(configured, responseIndex) ?? [];
|
|
60
|
+
}
|
|
61
|
+
return configured;
|
|
62
|
+
}
|
|
63
|
+
function resolveArtifact(configured, responseIndex) {
|
|
64
|
+
if (configured === undefined || typeof configured === 'string')
|
|
65
|
+
return configured;
|
|
66
|
+
return sequenceValue(configured, responseIndex);
|
|
67
|
+
}
|
|
68
|
+
function resolveError(configured, responseIndex) {
|
|
69
|
+
if (configured === undefined || configured instanceof Error)
|
|
70
|
+
return configured;
|
|
71
|
+
return sequenceValue(configured, responseIndex);
|
|
72
|
+
}
|
|
46
73
|
/**
|
|
47
74
|
* A deterministic mock runtime that replays configured events per node.
|
|
48
75
|
*
|
|
49
|
-
* The node is identified by
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
* SessionConfig to a config key.
|
|
76
|
+
* The node is identified by `SessionConfig.nodeId` when provided, falling back
|
|
77
|
+
* to the `cwd` basename for callers that create sessions directly. Callers can
|
|
78
|
+
* also provide a `nodeResolver` function to map SessionConfig to a config key.
|
|
53
79
|
*/
|
|
54
80
|
class MockRuntime {
|
|
55
81
|
name = 'mock';
|
|
56
82
|
configs;
|
|
57
83
|
nodeResolver;
|
|
84
|
+
responseIndexes = new Map();
|
|
58
85
|
constructor(configs, options) {
|
|
59
86
|
this.configs = configs;
|
|
60
|
-
this.nodeResolver = options?.nodeResolver
|
|
87
|
+
this.nodeResolver = options?.nodeResolver
|
|
88
|
+
?? ((config) => config.nodeId ?? path.basename(config.cwd));
|
|
61
89
|
}
|
|
62
90
|
async isAvailable() {
|
|
63
91
|
return true;
|
|
64
92
|
}
|
|
65
|
-
async createSession(config) {
|
|
93
|
+
async createSession(config, options) {
|
|
94
|
+
if (options?.signal?.aborted) {
|
|
95
|
+
throw new Error('Session creation aborted');
|
|
96
|
+
}
|
|
66
97
|
const nodeKey = this.nodeResolver(config);
|
|
67
|
-
const
|
|
68
|
-
|
|
98
|
+
const memberKey = config.memberId === undefined
|
|
99
|
+
? undefined
|
|
100
|
+
: `${nodeKey}:${config.memberId}`;
|
|
101
|
+
const fixtureKey = memberKey !== undefined && this.configs[memberKey] !== undefined
|
|
102
|
+
? memberKey
|
|
103
|
+
: nodeKey;
|
|
104
|
+
const nodeConfig = this.configs[fixtureKey] ?? {};
|
|
105
|
+
// Parity: the node's real configured output (SessionConfig.artifactFilename,
|
|
106
|
+
// set by agent() from config.output) wins so the mock writes where the node
|
|
107
|
+
// actually reads. nodeConfig.artifactFilename is only an override for tests
|
|
108
|
+
// driving MockRuntime directly (no SessionConfig filename present).
|
|
109
|
+
const artifactFilename = config.artifactFilename
|
|
110
|
+
?? nodeConfig.artifactFilename
|
|
111
|
+
?? 'output.md';
|
|
112
|
+
return new MockAgentSession(nodeConfig, config.cwd, artifactFilename, () => this.claimResponseIndex(fixtureKey));
|
|
113
|
+
}
|
|
114
|
+
claimResponseIndex(nodeKey) {
|
|
115
|
+
const index = this.responseIndexes.get(nodeKey) ?? 0;
|
|
116
|
+
this.responseIndexes.set(nodeKey, index + 1);
|
|
117
|
+
return index;
|
|
69
118
|
}
|
|
70
119
|
}
|
|
71
120
|
exports.MockRuntime = MockRuntime;
|
|
@@ -74,14 +123,19 @@ class MockAgentSession {
|
|
|
74
123
|
handlers = [];
|
|
75
124
|
nodeConfig;
|
|
76
125
|
cwd;
|
|
126
|
+
artifactFilename;
|
|
127
|
+
claimResponseIndex;
|
|
77
128
|
aborted = false;
|
|
78
129
|
timer = null;
|
|
79
|
-
constructor(nodeConfig, cwd) {
|
|
130
|
+
constructor(nodeConfig, cwd, artifactFilename, claimResponseIndex) {
|
|
80
131
|
this.nodeConfig = nodeConfig;
|
|
81
132
|
this.cwd = cwd;
|
|
133
|
+
this.artifactFilename = artifactFilename;
|
|
134
|
+
this.claimResponseIndex = claimResponseIndex;
|
|
82
135
|
}
|
|
83
136
|
send(_prompt) {
|
|
84
137
|
const delay = this.nodeConfig.delay ?? 0;
|
|
138
|
+
const responseIndex = this.claimResponseIndex();
|
|
85
139
|
const execute = () => {
|
|
86
140
|
if (this.aborted)
|
|
87
141
|
return;
|
|
@@ -94,12 +148,11 @@ class MockAgentSession {
|
|
|
94
148
|
}
|
|
95
149
|
}
|
|
96
150
|
// Emit text events
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
}
|
|
151
|
+
const text = resolveText(this.nodeConfig.text, responseIndex);
|
|
152
|
+
for (const line of text) {
|
|
153
|
+
if (this.aborted)
|
|
154
|
+
return;
|
|
155
|
+
this.emit('text', line);
|
|
103
156
|
}
|
|
104
157
|
// Emit tool events
|
|
105
158
|
if (this.nodeConfig.tools) {
|
|
@@ -111,22 +164,24 @@ class MockAgentSession {
|
|
|
111
164
|
}
|
|
112
165
|
}
|
|
113
166
|
// Write artifact if configured
|
|
114
|
-
|
|
167
|
+
const artifact = resolveArtifact(this.nodeConfig.artifact, responseIndex);
|
|
168
|
+
if (artifact !== undefined) {
|
|
115
169
|
try {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
fs.
|
|
119
|
-
fs.writeFileSync(artifactPath, this.nodeConfig.artifact, 'utf-8');
|
|
170
|
+
const artifactPath = path.join(this.cwd, this.artifactFilename);
|
|
171
|
+
fs.mkdirSync(path.dirname(artifactPath), { recursive: true });
|
|
172
|
+
fs.writeFileSync(artifactPath, artifact, 'utf-8');
|
|
120
173
|
}
|
|
121
|
-
catch {
|
|
122
|
-
|
|
174
|
+
catch (error) {
|
|
175
|
+
this.emit('error', error instanceof Error ? error : new Error(String(error)));
|
|
176
|
+
return;
|
|
123
177
|
}
|
|
124
178
|
}
|
|
125
179
|
if (this.aborted)
|
|
126
180
|
return;
|
|
127
181
|
// Emit error or idle
|
|
128
|
-
|
|
129
|
-
|
|
182
|
+
const error = resolveError(this.nodeConfig.error, responseIndex);
|
|
183
|
+
if (error) {
|
|
184
|
+
this.emit('error', error);
|
|
130
185
|
}
|
|
131
186
|
else {
|
|
132
187
|
this.emit('idle');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-runtime.js","sourceRoot":"","sources":["../../../runtimes/mock/mock-runtime.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"mock-runtime.js","sourceRoot":"","sources":["../../../runtimes/mock/mock-runtime.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQH,uCAAyB;AACzB,2CAA6B;AAgC7B,SAAS,aAAa,CAAI,MAAoB,EAAE,KAAa;IAC3D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1C,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,WAAW,CAClB,UAAkC,EAClC,aAAqB;IAErB,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAC3B,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IAC7E,IAAI,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CACb,yFAAyF,CAC1F,CAAC;IACJ,CAAC;IACD,IAAI,UAAU,KAAK,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9D,OAAO,aAAa,CAAC,UAA4C,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC;IAC1F,CAAC;IACD,OAAO,UAA+B,CAAC;AACzC,CAAC;AAED,SAAS,eAAe,CACtB,UAAsC,EACtC,aAAqB;IAErB,IAAI,UAAU,KAAK,SAAS,IAAI,OAAO,UAAU,KAAK,QAAQ;QAAE,OAAO,UAAU,CAAC;IAClF,OAAO,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,YAAY,CACnB,UAAmC,EACnC,aAAqB;IAErB,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,YAAY,KAAK;QAAE,OAAO,UAAU,CAAC;IAC/E,OAAO,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;GAMG;AACH,MAAa,WAAW;IACb,IAAI,GAAG,MAAM,CAAC;IACN,OAAO,CAA2C;IAClD,YAAY,CAAoC;IAChD,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE7D,YACE,OAAiD,EACjD,OAAuE;QAEvE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,OAAO,EAAE,YAAY;eACpC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,MAAqB,EACrB,OAAgC;QAEhC,IAAI,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,KAAK,SAAS;YAC7C,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,GAAG,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,SAAS;YACjF,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,OAAO,CAAC;QACZ,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QAClD,6EAA6E;QAC7E,4EAA4E;QAC5E,4EAA4E;QAC5E,oEAAoE;QACpE,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB;eAC3C,UAAU,CAAC,gBAAgB;eAC3B,WAAW,CAAC;QACjB,OAAO,IAAI,gBAAgB,CACzB,UAAU,EACV,MAAM,CAAC,GAAG,EACV,gBAAgB,EAChB,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAC1C,CAAC;IACJ,CAAC;IAEO,kBAAkB,CAAC,OAAe;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC7C,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAtDD,kCAsDC;AAED,MAAM,gBAAgB;IACX,GAAG,GAAkB,IAAI,CAAC;IAC3B,QAAQ,GAAmB,EAAE,CAAC;IACrB,UAAU,CAAiB;IAC3B,GAAG,CAAS;IACZ,gBAAgB,CAAS;IACzB,kBAAkB,CAAe;IAC1C,OAAO,GAAG,KAAK,CAAC;IAChB,KAAK,GAAyC,IAAI,CAAC;IAE3D,YACE,UAA0B,EAC1B,GAAW,EACX,gBAAwB,EACxB,kBAAgC;QAEhC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;IAC/C,CAAC;IAED,IAAI,CAAC,OAAe;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,CAAC;QACzC,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAEhD,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAO;YAEzB,oEAAoE;YACpE,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;gBAC9B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;oBAC7C,IAAI,IAAI,CAAC,OAAO;wBAAE,OAAO;oBACzB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;YAED,mBAAmB;YACnB,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YAC9D,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;gBACxB,IAAI,IAAI,CAAC,OAAO;oBAAE,OAAO;gBACzB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC1B,CAAC;YAED,mBAAmB;YACnB,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;gBAC1B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;oBACzC,IAAI,IAAI,CAAC,OAAO;wBAAE,OAAO;oBACzB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBACnD,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC;YAED,+BAA+B;YAC/B,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;YAC1E,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBACH,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;oBAChE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC9D,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACpD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,IAAI,CACP,OAAO,EACP,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAC1D,CAAC;oBACF,OAAO;gBACT,CAAC;YACH,CAAC;YAED,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAO;YAEzB,qBAAqB;YACrB,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;YACjE,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpB,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,kDAAkD;YAClD,cAAc,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAkBD,EAAE,CAAC,KAAa,EAAE,OAAmC;QACnD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAkB,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IAEO,IAAI,CAAC,KAAa,EAAE,GAAG,IAAe;QAC5C,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;gBACrB,CAAC,CAAC,OAAqC,CAAC,GAAG,IAAI,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import type { ExecutionContext, NodeEntry, NodeInput, CustomAgentConfig, DefaultAgentConfig, RetryPolicy, ThinkingBudget, ToolRef } from './types';
|
|
2
|
+
export type SchemaValidationResult<T> = {
|
|
3
|
+
readonly ok: true;
|
|
4
|
+
readonly value: T;
|
|
5
|
+
} | {
|
|
6
|
+
readonly ok: false;
|
|
7
|
+
readonly issues: readonly string[];
|
|
8
|
+
};
|
|
9
|
+
/** Minimal validation contract used by agentNode(). */
|
|
10
|
+
export interface SchemaValidator<T> {
|
|
11
|
+
readonly validate: (value: unknown) => SchemaValidationResult<T> | Promise<SchemaValidationResult<T>>;
|
|
12
|
+
}
|
|
13
|
+
export type SchemaValidationFunction<T> = (value: unknown) => T | undefined;
|
|
14
|
+
interface StandardSchemaIssue {
|
|
15
|
+
readonly message: string;
|
|
16
|
+
readonly path?: readonly unknown[];
|
|
17
|
+
}
|
|
18
|
+
type StandardSchemaResult<T> = {
|
|
19
|
+
readonly value: T;
|
|
20
|
+
readonly issues?: undefined;
|
|
21
|
+
} | {
|
|
22
|
+
readonly issues: readonly StandardSchemaIssue[];
|
|
23
|
+
};
|
|
24
|
+
/** Structural subset of Standard Schema, kept local to avoid a runtime dependency. */
|
|
25
|
+
export interface StandardSchemaValidator<T> {
|
|
26
|
+
readonly '~standard': {
|
|
27
|
+
readonly validate: (value: unknown) => StandardSchemaResult<T> | PromiseLike<StandardSchemaResult<T>>;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export type AgentNodeSchema<T> = SchemaValidator<T> | SchemaValidationFunction<T> | StandardSchemaValidator<T>;
|
|
31
|
+
export interface AgentNodeConfig<T> {
|
|
32
|
+
readonly prompt: string | ((input: NodeInput, reads: Readonly<Record<string, unknown>>) => string);
|
|
33
|
+
readonly model: string;
|
|
34
|
+
readonly schema?: AgentNodeSchema<T>;
|
|
35
|
+
readonly system?: string;
|
|
36
|
+
readonly output?: string;
|
|
37
|
+
readonly reads?: readonly string[];
|
|
38
|
+
readonly displayName?: string;
|
|
39
|
+
readonly thinkingBudget?: ThinkingBudget;
|
|
40
|
+
readonly timeout?: number;
|
|
41
|
+
readonly isolation?: boolean;
|
|
42
|
+
readonly tools?: readonly ToolRef[] | readonly string[];
|
|
43
|
+
readonly retry?: RetryPolicy;
|
|
44
|
+
readonly customAgents?: readonly CustomAgentConfig[];
|
|
45
|
+
readonly defaultAgent?: DefaultAgentConfig;
|
|
46
|
+
readonly excludedBuiltinAgents?: readonly string[];
|
|
47
|
+
/** Runtime-only identifier used to distinguish concurrent panel members. */
|
|
48
|
+
readonly memberId?: string;
|
|
49
|
+
readonly route?: (result: T) => string;
|
|
50
|
+
readonly fallback?: (raw: string, error: Error) => T;
|
|
51
|
+
readonly structuredRetry?: number;
|
|
52
|
+
}
|
|
53
|
+
/** Normalize condukt, function, and Standard Schema validators. */
|
|
54
|
+
export declare function toValidator<T>(schema: AgentNodeSchema<T>): SchemaValidator<T>;
|
|
55
|
+
/**
|
|
56
|
+
* Yield every parseable JSON value in `text`, best first: the whole trimmed
|
|
57
|
+
* string, then each balanced object/array span in start order (so a top-level
|
|
58
|
+
* value is tried before a nested one). The caller validates candidates in order
|
|
59
|
+
* and takes the first that satisfies the schema — so an example snippet that
|
|
60
|
+
* precedes the real answer, or a span that parses but fails validation, does not
|
|
61
|
+
* mask a later valid value.
|
|
62
|
+
*/
|
|
63
|
+
export declare function extractJsonCandidates(text: string): Generator<unknown>;
|
|
64
|
+
export declare function loadReads(input: NodeInput, names: readonly string[] | undefined): Readonly<Record<string, unknown>>;
|
|
65
|
+
export declare function repairPrompt(prompt: string, raw: string, error: Error): string;
|
|
66
|
+
export declare function validationError(issues: readonly string[]): Error;
|
|
67
|
+
export declare function validateCandidate<T>(validator: SchemaValidator<T>, value: unknown): Promise<SchemaValidationResult<T>>;
|
|
68
|
+
export declare function serialize(value: unknown): string;
|
|
69
|
+
export declare function writeOutput(input: NodeInput, output: string | undefined, content: string): void;
|
|
70
|
+
export declare function removeInvalidOutput(input: NodeInput, output: string | undefined): void;
|
|
71
|
+
export declare function retryCount(value: number | undefined): number;
|
|
72
|
+
export interface ProducerResult {
|
|
73
|
+
readonly artifact?: string;
|
|
74
|
+
readonly text: string;
|
|
75
|
+
readonly metadata?: Record<string, unknown>;
|
|
76
|
+
}
|
|
77
|
+
interface RawCandidate {
|
|
78
|
+
readonly label: string;
|
|
79
|
+
readonly raw: string;
|
|
80
|
+
}
|
|
81
|
+
export declare function rawCandidates(result: ProducerResult): readonly RawCandidate[];
|
|
82
|
+
export declare function produce<T>(config: AgentNodeConfig<T>, prompt: string, input: NodeInput, ctx: ExecutionContext): Promise<ProducerResult>;
|
|
83
|
+
/**
|
|
84
|
+
* Create a batteries-included agent NodeEntry with optional validated structured output.
|
|
85
|
+
*
|
|
86
|
+
* @experimental Experimental — API may change before it stabilizes into condukt core.
|
|
87
|
+
*/
|
|
88
|
+
export declare function agentNode<T = string>(config: AgentNodeConfig<T>): NodeEntry;
|
|
89
|
+
export {};
|
|
90
|
+
//# sourceMappingURL=agent-node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-node.d.ts","sourceRoot":"","sources":["../../src/agent-node.ts"],"names":[],"mappings":"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"}
|