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.
Files changed (50) hide show
  1. package/README.md +35 -0
  2. package/dist/runtimes/copilot/copilot-adapter.d.ts.map +1 -1
  3. package/dist/runtimes/copilot/copilot-adapter.js +26 -7
  4. package/dist/runtimes/copilot/copilot-adapter.js.map +1 -1
  5. package/dist/runtimes/copilot/copilot-backend.d.ts +35 -1
  6. package/dist/runtimes/copilot/copilot-backend.d.ts.map +1 -1
  7. package/dist/runtimes/copilot/sdk-backend.d.ts +2 -2
  8. package/dist/runtimes/copilot/sdk-backend.d.ts.map +1 -1
  9. package/dist/runtimes/copilot/sdk-backend.js +38 -3
  10. package/dist/runtimes/copilot/sdk-backend.js.map +1 -1
  11. package/dist/runtimes/copilot/subprocess-backend.d.ts +2 -2
  12. package/dist/runtimes/copilot/subprocess-backend.d.ts.map +1 -1
  13. package/dist/runtimes/copilot/subprocess-backend.js +4 -1
  14. package/dist/runtimes/copilot/subprocess-backend.js.map +1 -1
  15. package/dist/runtimes/mock/mock-runtime.d.ts +23 -20
  16. package/dist/runtimes/mock/mock-runtime.d.ts.map +1 -1
  17. package/dist/runtimes/mock/mock-runtime.js +79 -24
  18. package/dist/runtimes/mock/mock-runtime.js.map +1 -1
  19. package/dist/src/agent-node.d.ts +90 -0
  20. package/dist/src/agent-node.d.ts.map +1 -0
  21. package/dist/src/agent-node.js +383 -0
  22. package/dist/src/agent-node.js.map +1 -0
  23. package/dist/src/agent.d.ts +4 -1
  24. package/dist/src/agent.d.ts.map +1 -1
  25. package/dist/src/agent.js +438 -224
  26. package/dist/src/agent.js.map +1 -1
  27. package/dist/src/dry-run.d.ts +16 -0
  28. package/dist/src/dry-run.d.ts.map +1 -0
  29. package/dist/src/dry-run.js +44 -0
  30. package/dist/src/dry-run.js.map +1 -0
  31. package/dist/src/events.d.ts +1 -0
  32. package/dist/src/events.d.ts.map +1 -1
  33. package/dist/src/index.d.ts +19 -3
  34. package/dist/src/index.d.ts.map +1 -1
  35. package/dist/src/index.js +18 -1
  36. package/dist/src/index.js.map +1 -1
  37. package/dist/src/panel-node.d.ts +37 -0
  38. package/dist/src/panel-node.d.ts.map +1 -0
  39. package/dist/src/panel-node.js +175 -0
  40. package/dist/src/panel-node.js.map +1 -0
  41. package/dist/src/scheduler.d.ts.map +1 -1
  42. package/dist/src/scheduler.js +311 -5
  43. package/dist/src/scheduler.js.map +1 -1
  44. package/dist/src/types.d.ts +115 -3
  45. package/dist/src/types.d.ts.map +1 -1
  46. package/dist/src/types.js +7 -1
  47. package/dist/src/types.js.map +1 -1
  48. package/dist/state/reducer.js +2 -2
  49. package/dist/state/reducer.js.map +1 -1
  50. 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,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIjF,MAAM,WAAW,cAAc;IAC7B,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,uFAAuF;IACvF,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,sEAAsE;IACtE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/D,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAWD;;;;;;;GAOG;AACH,qBAAa,WAAY,YAAW,YAAY;IAC9C,QAAQ,CAAC,IAAI,UAAU;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoC;gBAG/D,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EACvC,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,MAAM,CAAA;KAAE;IAM1D,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;CAKlE"}
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 the `cwd` basename of the SessionConfig —
50
- * this maps to how the scheduler sets `cwd` to include the node directory.
51
- * Alternatively, callers can provide a `nodeResolver` function to map
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 ?? ((config) => path.basename(config.cwd));
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 nodeConfig = this.configs[nodeKey] ?? {};
68
- return new MockAgentSession(nodeConfig, config.cwd);
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
- if (this.nodeConfig.text) {
98
- for (const line of this.nodeConfig.text) {
99
- if (this.aborted)
100
- return;
101
- this.emit('text', line);
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
- if (this.nodeConfig.artifact !== undefined) {
167
+ const artifact = resolveArtifact(this.nodeConfig.artifact, responseIndex);
168
+ if (artifact !== undefined) {
115
169
  try {
116
- // Write the artifact content to a file named 'output.md' in cwd
117
- const artifactPath = path.join(this.cwd, 'output.md');
118
- fs.mkdirSync(this.cwd, { recursive: true });
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
- // Best effort test may not have a writable cwd
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
- if (this.nodeConfig.error) {
129
- this.emit('error', this.nodeConfig.error);
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGH,uCAAyB;AACzB,2CAA6B;AA0B7B;;;;;;;GAOG;AACH,MAAa,WAAW;IACb,IAAI,GAAG,MAAM,CAAC;IACN,OAAO,CAAiC;IACxC,YAAY,CAAoC;IAEjE,YACE,OAAuC,EACvC,OAA8D;QAE9D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,OAAO,EAAE,YAAY,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACvF,CAAC;IAED,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAqB;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC/C,OAAO,IAAI,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IACtD,CAAC;CACF;AAtBD,kCAsBC;AAED,MAAM,gBAAgB;IACX,GAAG,GAAkB,IAAI,CAAC;IAC3B,QAAQ,GAAmB,EAAE,CAAC;IACrB,UAAU,CAAiB;IAC3B,GAAG,CAAS;IACrB,OAAO,GAAG,KAAK,CAAC;IAChB,KAAK,GAAyC,IAAI,CAAC;IAE3D,YAAY,UAA0B,EAAE,GAAW;QACjD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,IAAI,CAAC,OAAe;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,CAAC;QAEzC,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,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;gBACzB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;oBACxC,IAAI,IAAI,CAAC,OAAO;wBAAE,OAAO;oBACzB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAC1B,CAAC;YACH,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,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3C,IAAI,CAAC;oBACH,gEAAgE;oBAChE,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;oBACtD,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC5C,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACpE,CAAC;gBAAC,MAAM,CAAC;oBACP,iDAAiD;gBACnD,CAAC;YACH,CAAC;YAED,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAO;YAEzB,qBAAqB;YACrB,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;gBAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC5C,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"}
1
+ {"version":3,"file":"mock-runtime.js","sourceRoot":"","sources":["../../../runtimes/mock/mock-runtime.ts"],"names":[],"mappings":"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"}
@@ -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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"}