@corenel/harness 0.20.0 → 0.22.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 (137) hide show
  1. package/dist/chat/engine.d.ts +53 -0
  2. package/dist/chat/engine.d.ts.map +1 -0
  3. package/dist/chat/engine.js +885 -0
  4. package/dist/chat/engine.js.map +1 -0
  5. package/dist/chat/events.d.ts +5 -0
  6. package/dist/chat/events.d.ts.map +1 -0
  7. package/dist/chat/events.js +100 -0
  8. package/dist/chat/events.js.map +1 -0
  9. package/dist/chat/index.d.ts +9 -0
  10. package/dist/chat/index.d.ts.map +1 -0
  11. package/dist/chat/index.js +9 -0
  12. package/dist/chat/index.js.map +1 -0
  13. package/dist/chat/liveFold.d.ts +10 -0
  14. package/dist/chat/liveFold.d.ts.map +1 -0
  15. package/dist/chat/liveFold.js +31 -0
  16. package/dist/chat/liveFold.js.map +1 -0
  17. package/dist/chat/messages.d.ts +20 -0
  18. package/dist/chat/messages.d.ts.map +1 -0
  19. package/dist/chat/messages.js +56 -0
  20. package/dist/chat/messages.js.map +1 -0
  21. package/dist/chat/persist.d.ts +47 -0
  22. package/dist/chat/persist.d.ts.map +1 -0
  23. package/dist/chat/persist.js +118 -0
  24. package/dist/chat/persist.js.map +1 -0
  25. package/dist/chat/runWatchdog.d.ts +21 -0
  26. package/dist/chat/runWatchdog.d.ts.map +1 -0
  27. package/dist/chat/runWatchdog.js +92 -0
  28. package/dist/chat/runWatchdog.js.map +1 -0
  29. package/dist/chat/stitch.d.ts +26 -0
  30. package/dist/chat/stitch.d.ts.map +1 -0
  31. package/dist/chat/stitch.js +40 -0
  32. package/dist/chat/stitch.js.map +1 -0
  33. package/dist/chat/types.d.ts +163 -0
  34. package/dist/chat/types.d.ts.map +1 -0
  35. package/dist/chat/types.js +2 -0
  36. package/dist/chat/types.js.map +1 -0
  37. package/dist/core/loop.d.ts.map +1 -1
  38. package/dist/core/loop.js +50 -15
  39. package/dist/core/loop.js.map +1 -1
  40. package/dist/core/spawn.d.ts +10 -0
  41. package/dist/core/spawn.d.ts.map +1 -1
  42. package/dist/core/spawn.js +28 -5
  43. package/dist/core/spawn.js.map +1 -1
  44. package/dist/fileSchema.js +1 -1
  45. package/dist/guardrail/builtins.d.ts.map +1 -1
  46. package/dist/guardrail/builtins.js +11 -6
  47. package/dist/guardrail/builtins.js.map +1 -1
  48. package/dist/guardrail/guardrail.d.ts +8 -0
  49. package/dist/guardrail/guardrail.d.ts.map +1 -1
  50. package/dist/guardrail/guardrail.js +12 -0
  51. package/dist/guardrail/guardrail.js.map +1 -1
  52. package/dist/guardrail/index.d.ts +1 -1
  53. package/dist/guardrail/index.d.ts.map +1 -1
  54. package/dist/guardrail/index.js +1 -1
  55. package/dist/guardrail/index.js.map +1 -1
  56. package/dist/guardrail/serialize.d.ts.map +1 -1
  57. package/dist/guardrail/serialize.js +3 -0
  58. package/dist/guardrail/serialize.js.map +1 -1
  59. package/dist/guardrail/validate.d.ts.map +1 -1
  60. package/dist/guardrail/validate.js +4 -0
  61. package/dist/guardrail/validate.js.map +1 -1
  62. package/dist/orchestrator/sidecarTools.d.ts.map +1 -1
  63. package/dist/orchestrator/sidecarTools.js +8 -4
  64. package/dist/orchestrator/sidecarTools.js.map +1 -1
  65. package/dist/prompts/fitProject.d.ts +6 -0
  66. package/dist/prompts/fitProject.d.ts.map +1 -0
  67. package/dist/prompts/fitProject.js +6 -0
  68. package/dist/prompts/fitProject.js.map +1 -0
  69. package/dist/prompts/library/defaults.generated.js +9 -9
  70. package/dist/prompts/library/defaults.generated.js.map +1 -1
  71. package/dist/prompts/library/index.d.ts +2 -1
  72. package/dist/prompts/library/index.d.ts.map +1 -1
  73. package/dist/prompts/library/index.js +11 -16
  74. package/dist/prompts/library/index.js.map +1 -1
  75. package/dist/providers/gateway.d.ts +1 -0
  76. package/dist/providers/gateway.d.ts.map +1 -1
  77. package/dist/providers/gateway.js +1 -0
  78. package/dist/providers/gateway.js.map +1 -1
  79. package/dist/sessions/fileSessionStore.d.ts.map +1 -1
  80. package/dist/sessions/fileSessionStore.js.map +1 -1
  81. package/dist/sidecar/askUserBroker.d.ts +40 -0
  82. package/dist/sidecar/askUserBroker.d.ts.map +1 -0
  83. package/dist/sidecar/askUserBroker.js +103 -0
  84. package/dist/sidecar/askUserBroker.js.map +1 -0
  85. package/dist/sidecar/fleetJwe.d.ts +25 -0
  86. package/dist/sidecar/fleetJwe.d.ts.map +1 -0
  87. package/dist/sidecar/fleetJwe.js +115 -0
  88. package/dist/sidecar/fleetJwe.js.map +1 -0
  89. package/dist/sidecar/fsChanges.d.ts +23 -0
  90. package/dist/sidecar/fsChanges.d.ts.map +1 -0
  91. package/dist/sidecar/fsChanges.js +77 -0
  92. package/dist/sidecar/fsChanges.js.map +1 -0
  93. package/dist/sidecar/host.d.ts +91 -1
  94. package/dist/sidecar/host.d.ts.map +1 -1
  95. package/dist/sidecar/host.js +269 -6
  96. package/dist/sidecar/host.js.map +1 -1
  97. package/dist/sidecar/identity.d.ts +4 -0
  98. package/dist/sidecar/identity.d.ts.map +1 -1
  99. package/dist/sidecar/memberGate.d.ts.map +1 -1
  100. package/dist/sidecar/memberGate.js +5 -0
  101. package/dist/sidecar/memberGate.js.map +1 -1
  102. package/dist/sidecar/server.d.ts +61 -4
  103. package/dist/sidecar/server.d.ts.map +1 -1
  104. package/dist/sidecar/server.js +583 -13
  105. package/dist/sidecar/server.js.map +1 -1
  106. package/dist/systemParts.d.ts +0 -1
  107. package/dist/systemParts.d.ts.map +1 -1
  108. package/dist/systemParts.js +6 -2
  109. package/dist/systemParts.js.map +1 -1
  110. package/dist/todos.d.ts +8 -0
  111. package/dist/todos.d.ts.map +1 -1
  112. package/dist/todos.js +21 -17
  113. package/dist/todos.js.map +1 -1
  114. package/dist/tools/builtins.d.ts +14 -1
  115. package/dist/tools/builtins.d.ts.map +1 -1
  116. package/dist/tools/builtins.js +27 -3
  117. package/dist/tools/builtins.js.map +1 -1
  118. package/dist/tools/namespaces.d.ts +8 -0
  119. package/dist/tools/namespaces.d.ts.map +1 -1
  120. package/dist/tools/namespaces.js +18 -0
  121. package/dist/tools/namespaces.js.map +1 -1
  122. package/dist/tools/skillTool.d.ts.map +1 -1
  123. package/dist/tools/skillTool.js +22 -1
  124. package/dist/tools/skillTool.js.map +1 -1
  125. package/dist/tools/toolFacts.d.ts +9 -0
  126. package/dist/tools/toolFacts.d.ts.map +1 -0
  127. package/dist/tools/toolFacts.js +19 -0
  128. package/dist/tools/toolFacts.js.map +1 -0
  129. package/dist/tools/toolSearch.d.ts +25 -6
  130. package/dist/tools/toolSearch.d.ts.map +1 -1
  131. package/dist/tools/toolSearch.js +62 -14
  132. package/dist/tools/toolSearch.js.map +1 -1
  133. package/dist/tools/workflowTool.d.ts +34 -0
  134. package/dist/tools/workflowTool.d.ts.map +1 -0
  135. package/dist/tools/workflowTool.js +122 -0
  136. package/dist/tools/workflowTool.js.map +1 -0
  137. package/package.json +6 -3
@@ -1,5 +1,5 @@
1
1
  import { parseMcpWireName } from '@corenel/protocol';
2
- import { resolveNamespace } from './namespaces.js';
2
+ import { isListedTool, resolveNamespace } from './namespaces.js';
3
3
  export const TOOL_SEARCH_NAME = 'tool_search';
4
4
  /** Most tools one conversation keeps loaded. Least recently used goes first.
5
5
  * Large enough for a real multi-service task, small enough that the loaded set
@@ -7,16 +7,38 @@ export const TOOL_SEARCH_NAME = 'tool_search';
7
7
  export const LOADED_TOOLS_CAP = 24;
8
8
  const DEFAULT_LIMIT = 8;
9
9
  const MAX_LIMIT = 20;
10
- /** Deferred = reached by search. Every MCP tool, and nothing else: builtins are
11
- * the agent's own competence and are used on most turns. One rule rather than a
12
- * size threshold, so there is one behaviour to reason about. */
13
- export function isDeferredTool(tool) {
10
+ /** A tool from a connected MCP server. Use this, not isDeferredTool, where the
11
+ * question is about MCP itself (the daemon's credential, outside content). */
12
+ export function isMcpTool(tool) {
14
13
  return resolveNamespace(tool) === 'mcp';
15
14
  }
16
- /** The server a deferred tool belongs to, from its wire name. */
15
+ /** Deferred = reached by search. Every MCP tool and every Listed built-in; the
16
+ * rest of the builtins are the agent's own competence and are used on most
17
+ * turns. Two table-driven rules rather than a size threshold, so there is one
18
+ * behaviour to reason about. */
19
+ export function isDeferredTool(tool) {
20
+ return isMcpTool(tool) || isListedTool(tool);
21
+ }
22
+ /** The server a deferred tool belongs to, from its wire name. A Listed built-in
23
+ * has no server: it is grouped as 'built-in'. */
17
24
  export function serverOf(tool) {
25
+ if (isListedTool(tool))
26
+ return BUILT_IN_GROUP;
18
27
  return parseMcpWireName(tool.name)?.server ?? 'mcp';
19
28
  }
29
+ /** The group name `serverOf` gives a Listed built-in, and the `server` value that
30
+ * searches only them. Not an MCP server. */
31
+ export const BUILT_IN_GROUP = 'built-in';
32
+ /** A run's tools split by tier, as every host hands them to the loop: Loaded
33
+ * tools (sent as functions on every request) in `tools`, MCP tools and Listed
34
+ * built-ins (reached by `tool_search`) in `deferredTools`. Order is kept. */
35
+ export function splitByTier(all) {
36
+ const tools = [];
37
+ const deferredTools = [];
38
+ for (const t of all)
39
+ (isDeferredTool(t) ? deferredTools : tools).push(t);
40
+ return { tools, deferredTools };
41
+ }
20
42
  function words(s) {
21
43
  return s.toLowerCase().split(/[^a-z0-9]+/).filter((w) => w.length > 1);
22
44
  }
@@ -36,12 +58,14 @@ export function rankTools(query, tools, opts = {}) {
36
58
  const limit = Math.min(MAX_LIMIT, Math.max(1, Math.floor(opts.limit ?? DEFAULT_LIMIT)));
37
59
  const pool = opts.server ? tools.filter((t) => serverOf(t) === opts.server) : tools;
38
60
  const q = words(query);
61
+ const exact = query.trim().toLowerCase();
39
62
  const scored = pool.map((tool, i) => {
40
63
  const parsed = parseMcpWireName(tool.name);
41
64
  const nameWords = words(parsed?.tool ?? tool.name);
42
65
  const serverWords = words(parsed?.server ?? '');
43
66
  const descWords = words(tool.description ?? '');
44
- let score = 0;
67
+ // A query that is exactly a tool's name is the model asking for that tool.
68
+ let score = exact && tool.name.toLowerCase() === exact ? 1000 : 0;
45
69
  for (const w of q) {
46
70
  if (nameWords.includes(w))
47
71
  score += 3;
@@ -62,9 +86,12 @@ export function rankTools(query, tools, opts = {}) {
62
86
  .slice(0, limit)
63
87
  .map((s) => s.tool);
64
88
  }
65
- /** One line per server the run can reach by search. Goes in the system prompt,
66
- * so the model knows a capability exists before deciding it does not. */
89
+ /** One line per MCP server the run can reach by search (pass MCP tools only).
90
+ * Goes in the system prompt, so the model knows a capability exists before
91
+ * deciding it does not. */
67
92
  export function serverIndex(deferred) {
93
+ if (!deferred.length)
94
+ return '';
68
95
  const counts = new Map();
69
96
  for (const t of deferred)
70
97
  counts.set(serverOf(t), (counts.get(serverOf(t)) ?? 0) + 1);
@@ -74,6 +101,20 @@ export function serverIndex(deferred) {
74
101
  ...lines,
75
102
  ].join('\n');
76
103
  }
104
+ /** What a search that found nothing says. Listed built-ins are grouped as
105
+ * 'built-in' for search, but they are not a connected server, so they are
106
+ * named apart from the MCP servers. */
107
+ function noMatchNote(deferred) {
108
+ const groups = [...new Set(deferred.map(serverOf))];
109
+ const servers = groups.filter((g) => g !== BUILT_IN_GROUP);
110
+ const parts = ['No tools matched.'];
111
+ if (servers.length)
112
+ parts.push(`Connected servers: ${servers.join(', ')}.`);
113
+ if (groups.includes(BUILT_IN_GROUP))
114
+ parts.push(`To search only the listed built-in tools, pass server "${BUILT_IN_GROUP}".`);
115
+ parts.push(servers.length ? 'Try other words or name a server.' : 'Try other words.');
116
+ return parts.join(' ');
117
+ }
77
118
  export function createToolLoader(opts) {
78
119
  const cap = opts.cap ?? LOADED_TOOLS_CAP;
79
120
  const byName = new Map(opts.deferred.map((t) => [t.name, t]));
@@ -98,7 +139,7 @@ export function createToolLoader(opts) {
98
139
  const searchTool = {
99
140
  name: TOOL_SEARCH_NAME,
100
141
  namespace: 'agent',
101
- description: 'Find tools on connected services (MCP servers) by what you want to do. Returns matching tools with their input schemas and makes them callable from your next step. Search before concluding a service cannot do something.',
142
+ description: 'Find listed tools and tools on connected services by what you want to do (or by exact tool name). Returns matching tools with their input schemas and makes them callable from your next step. Search before concluding a tool or service cannot do something.',
102
143
  parameters: {
103
144
  type: 'object',
104
145
  properties: {
@@ -109,6 +150,10 @@ export function createToolLoader(opts) {
109
150
  required: ['query'],
110
151
  },
111
152
  mutates: false,
153
+ // A read that loads nothing it could not already call by name, so it never
154
+ // stops for a person under a policy's defaultPermission: ask. A policy that
155
+ // names tool_search, and the ceiling, still decide.
156
+ permission: 'allow',
112
157
  // The schemas ARE the answer; offloading them behind a pointer would hide
113
158
  // exactly what the model searched for.
114
159
  noOffload: true,
@@ -120,12 +165,9 @@ export function createToolLoader(opts) {
120
165
  const limit = typeof args.limit === 'number' ? args.limit : undefined;
121
166
  const found = rankTools(query, opts.deferred, { server, limit });
122
167
  add(found.map((t) => t.name));
123
- const servers = [...new Set(opts.deferred.map(serverOf))];
124
168
  return JSON.stringify({
125
169
  tools: found.map((t) => ({ name: t.name, server: serverOf(t), description: t.description, inputSchema: t.parameters })),
126
- note: found.length
127
- ? 'These tools are now loaded; call them directly.'
128
- : `No tools matched. Connected servers: ${servers.join(', ') || '(none)'}. Try other words or name a server.`,
170
+ note: found.length ? 'These tools are now loaded; call them directly.' : noMatchNote(opts.deferred),
129
171
  });
130
172
  },
131
173
  };
@@ -138,6 +180,12 @@ export function createToolLoader(opts) {
138
180
  return;
139
181
  order = [...order.filter((n) => n !== name), name];
140
182
  },
183
+ load: (name) => {
184
+ const tool = byName.get(name);
185
+ if (tool)
186
+ add([name]);
187
+ return tool;
188
+ },
141
189
  };
142
190
  }
143
191
  //# sourceMappingURL=toolSearch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toolSearch.js","sourceRoot":"","sources":["../../tools/toolSearch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toolSearch.js","sourceRoot":"","sources":["../../tools/toolSearch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { AgentTool, WorkflowCallInputs } from '@corenel/protocol';
2
+ export declare const RUN_WORKFLOW_NAME = "run_workflow";
3
+ /** The most of a run's final output the tool returns; the rest is cut with a note. */
4
+ export declare const RUN_WORKFLOW_OUTPUT_MAX_BYTES: number;
5
+ /** One declared parameter of a workflow, as an agent sees it. */
6
+ export interface CallableParameter {
7
+ name: string;
8
+ label?: string;
9
+ description?: string;
10
+ /** The declared type: string, number, integer, boolean, date, datetime, array or object. */
11
+ type: string;
12
+ required: boolean;
13
+ default?: unknown;
14
+ enum?: string[];
15
+ }
16
+ /** One workflow the agent may run: its installed name, its description and its parameters. */
17
+ export interface CallableWorkflow {
18
+ name: string;
19
+ description: string;
20
+ parameters: CallableParameter[];
21
+ }
22
+ /** The tool description (O5): one block per workflow from its metadata.description and its parameters. */
23
+ export declare function runWorkflowDescription(workflows: readonly CallableWorkflow[]): string;
24
+ /** R18. Defaults are NOT filled here (the run fills them); only given values are checked. */
25
+ export declare function checkWorkflowInputs(w: CallableWorkflow, inputs: unknown): {
26
+ ok: true;
27
+ value: WorkflowCallInputs;
28
+ } | {
29
+ ok: false;
30
+ error: string;
31
+ };
32
+ /** `run` returns the text the model reads (output, busy refusal, failure). */
33
+ export declare function createRunWorkflowTool(workflows: readonly CallableWorkflow[], run: (name: string, inputs: WorkflowCallInputs, signal: AbortSignal) => Promise<string>): AgentTool;
34
+ //# sourceMappingURL=workflowTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflowTool.d.ts","sourceRoot":"","sources":["../../tools/workflowTool.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvE,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAChD,sFAAsF;AACtF,eAAO,MAAM,6BAA6B,QAAY,CAAC;AAEvD,iEAAiE;AACjE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4FAA4F;IAC5F,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,8FAA8F;AAC9F,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,iBAAiB,EAAE,CAAC;CACjC;AAsBD,0GAA0G;AAC1G,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,SAAS,gBAAgB,EAAE,GAAG,MAAM,CAWrF;AAkBD,6FAA6F;AAC7F,wBAAgB,mBAAmB,CACjC,CAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,GACnC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,kBAAkB,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CA0BxE;AAED,8EAA8E;AAC9E,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,SAAS,gBAAgB,EAAE,EACtC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,GACtF,SAAS,CA2BX"}
@@ -0,0 +1,122 @@
1
+ export const RUN_WORKFLOW_NAME = 'run_workflow';
2
+ /** The most of a run's final output the tool returns; the rest is cut with a note. */
3
+ export const RUN_WORKFLOW_OUTPUT_MAX_BYTES = 64 * 1024;
4
+ const LEAD = "Run one workflow this fleet deployed to this sidecar and wait for its final output. Its spend counts against the workflow's own limits. "
5
+ + 'A workflow that is already running cannot be started again until it finishes.';
6
+ /** Text from a package, laid out on one line so it cannot break the list it sits in. */
7
+ const oneLine = (s) => s.replace(/\s+/g, ' ').trim();
8
+ function parameterLine(p) {
9
+ const label = p.label !== undefined && oneLine(p.label) !== '' && oneLine(p.label) !== p.name ? ` (${oneLine(p.label)})` : '';
10
+ let line = ` - ${p.name}${label}: ${p.type}, ${p.required ? 'required' : 'optional'}`;
11
+ if (p.default !== undefined) {
12
+ let shown;
13
+ try {
14
+ shown = JSON.stringify(p.default);
15
+ }
16
+ catch {
17
+ shown = undefined;
18
+ }
19
+ if (shown !== undefined)
20
+ line += `, default ${shown}`;
21
+ }
22
+ if (p.enum && p.enum.length)
23
+ line += `, one of ${p.enum.join(', ')}`;
24
+ const description = p.description !== undefined ? oneLine(p.description) : '';
25
+ if (description)
26
+ line += `. ${description}`;
27
+ return line;
28
+ }
29
+ /** The tool description (O5): one block per workflow from its metadata.description and its parameters. */
30
+ export function runWorkflowDescription(workflows) {
31
+ const lines = [LEAD, '', 'Workflows:'];
32
+ for (const w of workflows) {
33
+ const description = oneLine(w.description);
34
+ lines.push(description ? `- ${w.name}: ${description}` : `- ${w.name}`);
35
+ if (w.parameters.length) {
36
+ lines.push(' Inputs:');
37
+ for (const p of w.parameters)
38
+ lines.push(parameterLine(p));
39
+ }
40
+ }
41
+ return lines.join('\n');
42
+ }
43
+ const isRecord = (v) => typeof v === 'object' && v !== null && !Array.isArray(v);
44
+ const hasOwn = (o, k) => Object.prototype.hasOwnProperty.call(o, k);
45
+ /** What a value of `type` must be, in the words the refusal uses; null for a list or an object. */
46
+ function expected(type) {
47
+ switch (type) {
48
+ case 'number': return { words: 'a number', ok: (v) => typeof v === 'number' && Number.isFinite(v) };
49
+ case 'integer': return { words: 'a whole number', ok: (v) => typeof v === 'number' && Number.isInteger(v) };
50
+ case 'boolean': return { words: 'true or false', ok: (v) => typeof v === 'boolean' };
51
+ case 'array':
52
+ case 'object': return null;
53
+ // string, date, datetime, and any type a newer workflow declares: text.
54
+ default: return { words: 'a string', ok: (v) => typeof v === 'string' };
55
+ }
56
+ }
57
+ /** R18. Defaults are NOT filled here (the run fills them); only given values are checked. */
58
+ export function checkWorkflowInputs(w, inputs) {
59
+ if (inputs === undefined || inputs === null)
60
+ inputs = {};
61
+ if (!isRecord(inputs))
62
+ return { ok: false, error: `The inputs of ${w.name} must be an object of values by input name.` };
63
+ const byName = new Map(w.parameters.map((p) => [p.name, p]));
64
+ for (const name of Object.keys(inputs)) {
65
+ if (!byName.has(name))
66
+ return { ok: false, error: `${w.name} has no input named "${name}".` };
67
+ }
68
+ const value = {};
69
+ for (const p of w.parameters) {
70
+ if (!hasOwn(inputs, p.name) || inputs[p.name] === undefined)
71
+ continue;
72
+ const given = inputs[p.name];
73
+ const kind = expected(p.type);
74
+ if (kind === null)
75
+ return { ok: false, error: `The input "${p.name}" of ${w.name} is a list or an object, which an agent cannot give.` };
76
+ if (!kind.ok(given))
77
+ return { ok: false, error: `The input "${p.name}" of ${w.name} must be ${kind.words}.` };
78
+ const scalar = given;
79
+ if (p.enum && p.enum.length && !p.enum.includes(String(scalar))) {
80
+ return { ok: false, error: `The input "${p.name}" of ${w.name} must be one of: ${p.enum.join(', ')}.` };
81
+ }
82
+ Object.defineProperty(value, p.name, { value: scalar, enumerable: true, writable: true, configurable: true });
83
+ }
84
+ for (const p of w.parameters) {
85
+ if (p.required && !hasOwn(value, p.name) && p.default === undefined) {
86
+ return { ok: false, error: `${w.name} needs the input "${p.name}".` };
87
+ }
88
+ }
89
+ return { ok: true, value };
90
+ }
91
+ /** `run` returns the text the model reads (output, busy refusal, failure). */
92
+ export function createRunWorkflowTool(workflows, run) {
93
+ const byName = new Map(workflows.map((w) => [w.name, w]));
94
+ const names = workflows.map((w) => w.name);
95
+ return {
96
+ name: RUN_WORKFLOW_NAME,
97
+ means: 'run a workflow the fleet deployed to this sidecar',
98
+ // A workflow calls models and can fetch and write its results: never assumed harmless. No roomSafe: a room
99
+ // turn is for deciding, and drops this tool.
100
+ mutates: true,
101
+ description: runWorkflowDescription(workflows),
102
+ parameters: {
103
+ type: 'object',
104
+ properties: {
105
+ name: { type: 'string', enum: names, description: 'The workflow to run, from the Workflows list.' },
106
+ inputs: { type: 'object', description: 'Its inputs by name: text, numbers or true/false. Leave out an optional input to use its default.' },
107
+ },
108
+ required: ['name'],
109
+ },
110
+ async run(args, ctx) {
111
+ const name = typeof args.name === 'string' ? args.name : '';
112
+ const w = byName.get(name);
113
+ if (!w)
114
+ return `No workflow named "${name}". Available: ${names.join(', ')}.`;
115
+ const checked = checkWorkflowInputs(w, args.inputs);
116
+ if (!checked.ok)
117
+ return checked.error;
118
+ return run(w.name, checked.value, ctx.signal);
119
+ },
120
+ };
121
+ }
122
+ //# sourceMappingURL=workflowTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflowTool.js","sourceRoot":"","sources":["../../tools/workflowTool.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@corenel/harness",
3
- "version": "0.20.0",
3
+ "version": "0.22.0",
4
4
  "license": "Elastic-2.0",
5
5
  "type": "module",
6
6
  "description": "Corenel — host-agnostic agent harness (kernel). The app resolves it via the `corenel` path alias (bypasses these exports entirely); vitest aliases it to source too. Everything else — node consumers like @corenel/cli, @corenel/term, @corenel/sidecar — resolves it through this workspace package via the exports map below, which points at dist/ unconditionally (not just at publish) so in-repo and published resolution are identical: a bundle that treats @corenel/harness as external (see packages/term/build.mjs) must see the SAME module instance node sees when it later resolves this package at runtime, and plain node cannot execute the raw .ts sources at all. Run `pnpm build` here (or let a dependent's prebuild do it) before relying on this package outside the app/vitest. NOTE: @xyflow/react and dagre are NOT dependencies here at all — this package has no .tsx files and imports neither. `react` IS a real (small) runtime dependency: `todos.ts` uses `useSyncExternalStore`. It is declared below as an OPTIONAL peer, not a hard dependency, so node-only consumers (cli/term/sidecar) aren't forced to install react; node consumers hoist it today only because something else in the tree happens to pull it in. Do not add @xyflow/react or dagre as dependencies/peers without testing a packed install end to end — an earlier attempt at that (before this package had any .tsx files) failed npm's peer resolution with ERESOLVE.",
@@ -33,7 +33,7 @@
33
33
  "dependencies": {
34
34
  "openai": "^4.77.0",
35
35
  "yaml": "^2.8.3",
36
- "@corenel/protocol": "0.18.0"
36
+ "@corenel/protocol": "0.20.0"
37
37
  },
38
38
  "peerDependencies": {
39
39
  "react": "^18.0.0 || ^19.0.0"
@@ -44,9 +44,12 @@
44
44
  }
45
45
  },
46
46
  "devDependencies": {
47
+ "@types/node": "^24.13.1",
47
48
  "@prompd/core": "0.7.0",
49
+ "@types/react": "^18.3.5",
48
50
  "@types/ws": "^8.5.13",
49
- "jszip": "^3.10.1"
51
+ "jszip": "^3.10.1",
52
+ "typescript": "^5.9.3"
50
53
  },
51
54
  "publishConfig": {
52
55
  "access": "public"