@corenel/harness 0.1.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 (149) hide show
  1. package/dist/compression.d.ts +11 -0
  2. package/dist/compression.d.ts.map +1 -0
  3. package/dist/compression.js +27 -0
  4. package/dist/compression.js.map +1 -0
  5. package/dist/conversation.d.ts +29 -0
  6. package/dist/conversation.d.ts.map +1 -0
  7. package/dist/conversation.js +25 -0
  8. package/dist/conversation.js.map +1 -0
  9. package/dist/core/loop.d.ts +31 -0
  10. package/dist/core/loop.d.ts.map +1 -0
  11. package/dist/core/loop.js +237 -0
  12. package/dist/core/loop.js.map +1 -0
  13. package/dist/dag/executeNode.d.ts +41 -0
  14. package/dist/dag/executeNode.d.ts.map +1 -0
  15. package/dist/dag/executeNode.js +81 -0
  16. package/dist/dag/executeNode.js.map +1 -0
  17. package/dist/fileSchema.d.ts +7 -0
  18. package/dist/fileSchema.d.ts.map +1 -0
  19. package/dist/fileSchema.js +40 -0
  20. package/dist/fileSchema.js.map +1 -0
  21. package/dist/guardrail/builtins.d.ts +9 -0
  22. package/dist/guardrail/builtins.d.ts.map +1 -0
  23. package/dist/guardrail/builtins.js +61 -0
  24. package/dist/guardrail/builtins.js.map +1 -0
  25. package/dist/guardrail/glob.d.ts +3 -0
  26. package/dist/guardrail/glob.d.ts.map +1 -0
  27. package/dist/guardrail/glob.js +33 -0
  28. package/dist/guardrail/glob.js.map +1 -0
  29. package/dist/guardrail/guardrail.d.ts +25 -0
  30. package/dist/guardrail/guardrail.d.ts.map +1 -0
  31. package/dist/guardrail/guardrail.js +67 -0
  32. package/dist/guardrail/guardrail.js.map +1 -0
  33. package/dist/guardrail/index.d.ts +9 -0
  34. package/dist/guardrail/index.d.ts.map +1 -0
  35. package/dist/guardrail/index.js +11 -0
  36. package/dist/guardrail/index.js.map +1 -0
  37. package/dist/guardrail/permission-service.d.ts +53 -0
  38. package/dist/guardrail/permission-service.d.ts.map +1 -0
  39. package/dist/guardrail/permission-service.js +147 -0
  40. package/dist/guardrail/permission-service.js.map +1 -0
  41. package/dist/guardrail/serialize.d.ts +9 -0
  42. package/dist/guardrail/serialize.d.ts.map +1 -0
  43. package/dist/guardrail/serialize.js +53 -0
  44. package/dist/guardrail/serialize.js.map +1 -0
  45. package/dist/guardrail/store.d.ts +26 -0
  46. package/dist/guardrail/store.d.ts.map +1 -0
  47. package/dist/guardrail/store.js +109 -0
  48. package/dist/guardrail/store.js.map +1 -0
  49. package/dist/guardrail/validate.d.ts +8 -0
  50. package/dist/guardrail/validate.d.ts.map +1 -0
  51. package/dist/guardrail/validate.js +105 -0
  52. package/dist/guardrail/validate.js.map +1 -0
  53. package/dist/guards.d.ts +37 -0
  54. package/dist/guards.d.ts.map +1 -0
  55. package/dist/guards.js +45 -0
  56. package/dist/guards.js.map +1 -0
  57. package/dist/log.d.ts +4 -0
  58. package/dist/log.d.ts.map +1 -0
  59. package/dist/log.js +22 -0
  60. package/dist/log.js.map +1 -0
  61. package/dist/promptCompiler.d.ts +18 -0
  62. package/dist/promptCompiler.d.ts.map +1 -0
  63. package/dist/promptCompiler.js +11 -0
  64. package/dist/promptCompiler.js.map +1 -0
  65. package/dist/prompts/config.d.ts +63 -0
  66. package/dist/prompts/config.d.ts.map +1 -0
  67. package/dist/prompts/config.js +268 -0
  68. package/dist/prompts/config.js.map +1 -0
  69. package/dist/prompts/host.d.ts +30 -0
  70. package/dist/prompts/host.d.ts.map +1 -0
  71. package/dist/prompts/host.js +11 -0
  72. package/dist/prompts/host.js.map +1 -0
  73. package/dist/prompts/index.d.ts +50 -0
  74. package/dist/prompts/index.d.ts.map +1 -0
  75. package/dist/prompts/index.js +105 -0
  76. package/dist/prompts/index.js.map +1 -0
  77. package/dist/prompts/library/defaults.generated.d.ts +2 -0
  78. package/dist/prompts/library/defaults.generated.d.ts.map +1 -0
  79. package/dist/prompts/library/defaults.generated.js +31 -0
  80. package/dist/prompts/library/defaults.generated.js.map +1 -0
  81. package/dist/prompts/library/index.d.ts +8 -0
  82. package/dist/prompts/library/index.d.ts.map +1 -0
  83. package/dist/prompts/library/index.js +28 -0
  84. package/dist/prompts/library/index.js.map +1 -0
  85. package/dist/providers/gateway.d.ts +58 -0
  86. package/dist/providers/gateway.d.ts.map +1 -0
  87. package/dist/providers/gateway.js +145 -0
  88. package/dist/providers/gateway.js.map +1 -0
  89. package/dist/services.d.ts +29 -0
  90. package/dist/services.d.ts.map +1 -0
  91. package/dist/services.js +22 -0
  92. package/dist/services.js.map +1 -0
  93. package/dist/sidecar/host.d.ts +69 -0
  94. package/dist/sidecar/host.d.ts.map +1 -0
  95. package/dist/sidecar/host.js +228 -0
  96. package/dist/sidecar/host.js.map +1 -0
  97. package/dist/sidecar/server.d.ts +42 -0
  98. package/dist/sidecar/server.d.ts.map +1 -0
  99. package/dist/sidecar/server.js +267 -0
  100. package/dist/sidecar/server.js.map +1 -0
  101. package/dist/skills.d.ts +39 -0
  102. package/dist/skills.d.ts.map +1 -0
  103. package/dist/skills.js +216 -0
  104. package/dist/skills.js.map +1 -0
  105. package/dist/systemParts.d.ts +10 -0
  106. package/dist/systemParts.d.ts.map +1 -0
  107. package/dist/systemParts.js +21 -0
  108. package/dist/systemParts.js.map +1 -0
  109. package/dist/todos.d.ts +34 -0
  110. package/dist/todos.d.ts.map +1 -0
  111. package/dist/todos.js +112 -0
  112. package/dist/todos.js.map +1 -0
  113. package/dist/tools/builtins.d.ts +20 -0
  114. package/dist/tools/builtins.d.ts.map +1 -0
  115. package/dist/tools/builtins.js +335 -0
  116. package/dist/tools/builtins.js.map +1 -0
  117. package/dist/tools/files.d.ts +11 -0
  118. package/dist/tools/files.d.ts.map +1 -0
  119. package/dist/tools/files.js +161 -0
  120. package/dist/tools/files.js.map +1 -0
  121. package/dist/tools/http.d.ts +3 -0
  122. package/dist/tools/http.d.ts.map +1 -0
  123. package/dist/tools/http.js +71 -0
  124. package/dist/tools/http.js.map +1 -0
  125. package/dist/tools/namespaces.d.ts +27 -0
  126. package/dist/tools/namespaces.d.ts.map +1 -0
  127. package/dist/tools/namespaces.js +83 -0
  128. package/dist/tools/namespaces.js.map +1 -0
  129. package/dist/tools/registry.d.ts +8 -0
  130. package/dist/tools/registry.d.ts.map +1 -0
  131. package/dist/tools/registry.js +14 -0
  132. package/dist/tools/registry.js.map +1 -0
  133. package/dist/tools/sessions.d.ts +3 -0
  134. package/dist/tools/sessions.d.ts.map +1 -0
  135. package/dist/tools/sessions.js +149 -0
  136. package/dist/tools/sessions.js.map +1 -0
  137. package/dist/tools/todo.d.ts +3 -0
  138. package/dist/tools/todo.d.ts.map +1 -0
  139. package/dist/tools/todo.js +38 -0
  140. package/dist/tools/todo.js.map +1 -0
  141. package/dist/tools/urlGuard.d.ts +9 -0
  142. package/dist/tools/urlGuard.d.ts.map +1 -0
  143. package/dist/tools/urlGuard.js +80 -0
  144. package/dist/tools/urlGuard.js.map +1 -0
  145. package/dist/tools/web.d.ts +3 -0
  146. package/dist/tools/web.d.ts.map +1 -0
  147. package/dist/tools/web.js +35 -0
  148. package/dist/tools/web.js.map +1 -0
  149. package/package.json +55 -0
@@ -0,0 +1,34 @@
1
+ export type TodoStatus = 'pending' | 'in_progress' | 'completed' | 'blocked';
2
+ export interface TodoActivity {
3
+ id: string;
4
+ label: string;
5
+ detail?: string;
6
+ isError?: boolean;
7
+ done?: boolean;
8
+ }
9
+ export interface AgentTodo {
10
+ id: string;
11
+ title: string;
12
+ status: TodoStatus;
13
+ note?: string;
14
+ /** Task ids this one waits on. */
15
+ blockedBy?: string[];
16
+ /** Parent task id for a one-level subtask. */
17
+ parentId?: string;
18
+ /** Tool calls / notes recorded while this task was active. */
19
+ activity: TodoActivity[];
20
+ }
21
+ export declare function getTodos(): AgentTodo[];
22
+ export declare function clearTodos(): void;
23
+ export type TodoView = 'timeline' | 'board';
24
+ export declare function getTodoView(): TodoView;
25
+ export declare function setTodoView(v: TodoView): void;
26
+ /** Replace the list from a todo_write tool call. Activity accumulated for a task
27
+ * (matched by id) is preserved across rewrites. */
28
+ export declare function applyTodoWrite(input: unknown): void;
29
+ /** Record a tool call under the active (in_progress) task. */
30
+ export declare function addActivity(activityId: string, label: string): void;
31
+ /** Resolve a recorded tool call (its result arrived). */
32
+ export declare function resolveActivity(activityId: string, isError?: boolean, detail?: string): void;
33
+ export declare function useTodos(): AgentTodo[];
34
+ //# sourceMappingURL=todos.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todos.d.ts","sourceRoot":"","sources":["../todos.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,SAAS,CAAC;AAE7E,MAAM,WAAW,YAAY;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE;AAE/G,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AAcD,wBAAgB,QAAQ,IAAI,SAAS,EAAE,CAAkB;AACzD,wBAAgB,UAAU,IAAI,IAAI,CAA8C;AAGhF,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;AAE5C,wBAAgB,WAAW,IAAI,QAAQ,CAEtC;AACD,wBAAgB,WAAW,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,CAE7C;AAUD;mDACmD;AACnD,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAoBnD;AAED,8DAA8D;AAC9D,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAQnE;AAED,yDAAyD;AACzD,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAQ5F;AAED,wBAAgB,QAAQ,IAAI,SAAS,EAAE,CAMtC"}
package/dist/todos.js ADDED
@@ -0,0 +1,112 @@
1
+ /* Agent todos: the task list the assistant maintains during a multi-step job,
2
+ * shown as a vertical timeline (see ui/TodoTimeline). A reactive module store so
3
+ * the dock panel can render it as a sibling of the assistant.
4
+ *
5
+ * Source of truth flow: the worker's `todo_write` tool call surfaces its args via
6
+ * the `tool-call` event; AgentPanel applies them here. Other tool calls made
7
+ * while a task is `in_progress` are bucketed under it as "activity", so expanding
8
+ * a node shows what the agent actually did for that task. */
9
+ import { useSyncExternalStore } from 'react';
10
+ const LS = 'prompd.web.todos.v1';
11
+ function load() {
12
+ try {
13
+ const r = localStorage.getItem(LS);
14
+ const a = r ? JSON.parse(r) : [];
15
+ return Array.isArray(a) ? a : [];
16
+ }
17
+ catch {
18
+ return [];
19
+ }
20
+ }
21
+ function persist() {
22
+ try {
23
+ localStorage.setItem(LS, JSON.stringify(todos));
24
+ }
25
+ catch { /* ignore quota */ }
26
+ }
27
+ let todos = load();
28
+ const subs = new Set();
29
+ const emit = () => { persist(); for (const s of subs)
30
+ s(); };
31
+ export function getTodos() { return todos; }
32
+ export function clearTodos() { if (todos.length) {
33
+ todos = [];
34
+ emit();
35
+ } }
36
+ const VIEW_LS = 'prompd.web.todoView';
37
+ export function getTodoView() {
38
+ try {
39
+ const v = localStorage.getItem(VIEW_LS);
40
+ return v === 'board' ? 'board' : 'timeline';
41
+ }
42
+ catch {
43
+ return 'timeline';
44
+ }
45
+ }
46
+ export function setTodoView(v) {
47
+ try {
48
+ localStorage.setItem(VIEW_LS, v);
49
+ }
50
+ catch { /* ignore */ }
51
+ }
52
+ function normalizeStatus(s) {
53
+ const v = String(s ?? 'pending').toLowerCase();
54
+ if (v === 'in_progress' || v === 'active' || v === 'doing' || v === 'in-progress')
55
+ return 'in_progress';
56
+ if (v === 'completed' || v === 'done' || v === 'complete')
57
+ return 'completed';
58
+ if (v === 'blocked' || v === 'waiting')
59
+ return 'blocked';
60
+ return 'pending';
61
+ }
62
+ /** Replace the list from a todo_write tool call. Activity accumulated for a task
63
+ * (matched by id) is preserved across rewrites. */
64
+ export function applyTodoWrite(input) {
65
+ const raw = (input && typeof input === 'object' && Array.isArray(input.todos))
66
+ ? input.todos
67
+ : Array.isArray(input) ? input : [];
68
+ const prev = new Map(todos.map((t) => [t.id, t]));
69
+ todos = raw
70
+ .filter((t) => t && t.title)
71
+ .map((t, i) => {
72
+ const id = String(t.id ?? `todo-${i + 1}`);
73
+ return {
74
+ id,
75
+ title: String(t.title),
76
+ status: normalizeStatus(t.status),
77
+ note: t.note ? String(t.note) : undefined,
78
+ blockedBy: Array.isArray(t.blockedBy) ? t.blockedBy.map(String) : undefined,
79
+ parentId: t.parentId ? String(t.parentId) : undefined,
80
+ activity: prev.get(id)?.activity ?? [],
81
+ };
82
+ });
83
+ emit();
84
+ }
85
+ /** Record a tool call under the active (in_progress) task. */
86
+ export function addActivity(activityId, label) {
87
+ let done = false;
88
+ todos = todos.map((t) => {
89
+ if (done || t.status !== 'in_progress')
90
+ return t;
91
+ done = true;
92
+ return { ...t, activity: [...t.activity, { id: activityId, label }] };
93
+ });
94
+ if (done)
95
+ emit();
96
+ }
97
+ /** Resolve a recorded tool call (its result arrived). */
98
+ export function resolveActivity(activityId, isError, detail) {
99
+ let changed = false;
100
+ todos = todos.map((t) => {
101
+ if (!t.activity.some((a) => a.id === activityId))
102
+ return t;
103
+ changed = true;
104
+ return { ...t, activity: t.activity.map((a) => (a.id === activityId ? { ...a, isError, detail, done: true } : a)) };
105
+ });
106
+ if (changed)
107
+ emit();
108
+ }
109
+ export function useTodos() {
110
+ return useSyncExternalStore((cb) => { subs.add(cb); return () => { subs.delete(cb); }; }, getTodos, getTodos);
111
+ }
112
+ //# sourceMappingURL=todos.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todos.js","sourceRoot":"","sources":["../todos.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { AgentTool } from '@corenel/protocol';
2
+ export declare const proposeEditTool: AgentTool;
3
+ export declare const saveMemoryTool: AgentTool;
4
+ export declare const recallMemoryTool: AgentTool;
5
+ export declare const kvGetTool: AgentTool;
6
+ export declare const kvSetTool: AgentTool;
7
+ export declare const recallResultTool: AgentTool;
8
+ export declare const askUserTool: AgentTool;
9
+ export declare const spawnAgentTool: AgentTool;
10
+ export declare const spawnAgentsTool: AgentTool;
11
+ export declare const compilePrompdTool: AgentTool;
12
+ /** The kernel's runtime-agnostic built-in tools. Product/host tools (registry
13
+ * search) are added by the registry — use `allTools()` for the complete set. */
14
+ export declare const defaultTools: AgentTool[];
15
+ /** The full tool set the model is offered: kernel built-ins + everything the
16
+ * host registered (compile_prompd, search_packages, a bridge's tools, …).
17
+ * Read this LAZILY at the point of use — never cache it at module top level —
18
+ * so tools registered after a consumer loaded still appear. */
19
+ export declare function allTools(): AgentTool[];
20
+ //# sourceMappingURL=builtins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtins.d.ts","sourceRoot":"","sources":["../../tools/builtins.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,mBAAmB,CAAC;AAahE,eAAO,MAAM,eAAe,EAAE,SA0C7B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,SAoB5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,SAa9B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,SAWvB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,SAkBvB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,SAgB9B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,SAiDzB,CAAC;AAiBF,eAAO,MAAM,cAAc,EAAE,SA6B5B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,SA6C7B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,SAgC/B,CAAC;AAEF;gFACgF;AAChF,eAAO,MAAM,YAAY,EAAE,SAAS,EAenC,CAAC;AAEF;;;+DAG+D;AAC/D,wBAAgB,QAAQ,IAAI,SAAS,EAAE,CAEtC"}
@@ -0,0 +1,335 @@
1
+ import { extensionTools } from './registry';
2
+ import { fileTools } from './files';
3
+ import { webSearchTool } from './web';
4
+ import { todoWriteTool } from './todo';
5
+ import { searchSessionsTool } from './sessions';
6
+ import { compilePrompt } from '../promptCompiler';
7
+ function str(args, key) {
8
+ const v = args[key];
9
+ return typeof v === 'string' ? v : v == null ? '' : String(v);
10
+ }
11
+ export const proposeEditTool = {
12
+ name: 'propose_edit',
13
+ description: 'Propose a replacement for the current editor file. The user reviews a diff and applies or rejects it — ' +
14
+ 'this does NOT write the file directly. Provide the COMPLETE new file content (not a patch) plus a short ' +
15
+ 'explanation. Use the editor file shown in the system context as the basis. This call WAITS for the review ' +
16
+ 'and returns the outcome: applied, partially applied (with the rejected changes), or rejected — rely on ' +
17
+ 'that outcome, not on the proposal, for any follow-up work.',
18
+ parameters: {
19
+ type: 'object',
20
+ properties: {
21
+ explanation: { type: 'string', description: 'One line describing the change.' },
22
+ new_content: { type: 'string', description: 'The full proposed file content.' },
23
+ },
24
+ required: ['explanation', 'new_content'],
25
+ },
26
+ async run(args, ctx) {
27
+ const explanation = str(args, 'explanation') || 'Proposed an edit';
28
+ // The diff + apply happen on the main thread (the panel renders the proposal
29
+ // from this tool call). Block until the user decides so later turns can rely
30
+ // on the outcome. Without a reviewer (sub-agents, DAG nodes, headless runs)
31
+ // degrade to the old non-blocking acknowledgment.
32
+ if (!ctx.reviewEdit || !ctx.callId) {
33
+ return `Proposed an edit: ${explanation}. Awaiting the user's review (apply/reject).`;
34
+ }
35
+ const outcome = ctx.signal.aborted ? null : await Promise.race([
36
+ ctx.reviewEdit(ctx.callId),
37
+ new Promise((resolve) => ctx.signal.addEventListener('abort', () => resolve(null), { once: true })),
38
+ ]);
39
+ if (!outcome)
40
+ return 'The run ended before the user reviewed this proposal. Do NOT assume the edit was applied.';
41
+ if (outcome.decision === 'applied') {
42
+ return 'The user APPLIED this edit. The editor file now matches the proposal.';
43
+ }
44
+ if (outcome.decision === 'partial') {
45
+ return ('The user PARTIALLY applied this edit. The following proposed changes were REJECTED and are NOT in the file:\n' +
46
+ `${outcome.note || '(rejected changes not captured)'}\n` +
47
+ 'Respect the rejection — do not re-propose those changes unless the user asks.');
48
+ }
49
+ return 'The user REJECTED this edit. The file is UNCHANGED. Do not build on this proposal — adjust your approach or ask what to change.';
50
+ },
51
+ };
52
+ export const saveMemoryTool = {
53
+ name: 'save_memory',
54
+ mutates: true,
55
+ description: 'Persist a durable note to memory for later recall (facts, user preferences, decisions).',
56
+ parameters: {
57
+ type: 'object',
58
+ properties: {
59
+ text: { type: 'string', description: 'The note to remember.' },
60
+ tags: { type: 'array', items: { type: 'string' }, description: 'Optional tags.' },
61
+ },
62
+ required: ['text'],
63
+ },
64
+ // Permission is gated centrally by the loop's policy/permission layer (this
65
+ // tool is `mutates`), so no confirm call here.
66
+ async run(args, ctx) {
67
+ const text = str(args, 'text');
68
+ const tags = Array.isArray(args.tags) ? args.tags.map(String) : [];
69
+ const item = await ctx.memory.save(text, tags);
70
+ return `Saved memory ${item.id}.`;
71
+ },
72
+ };
73
+ export const recallMemoryTool = {
74
+ name: 'recall_memory',
75
+ description: 'Search memory for previously saved notes relevant to a query.',
76
+ parameters: {
77
+ type: 'object',
78
+ properties: { query: { type: 'string', description: 'What to recall.' } },
79
+ required: ['query'],
80
+ },
81
+ async run(args, ctx) {
82
+ const items = await ctx.memory.recall(str(args, 'query'), 5);
83
+ if (!items.length)
84
+ return 'No relevant memories.';
85
+ return items.map((m) => `- ${m.text}${m.tags.length ? ` [${m.tags.join(', ')}]` : ''}`).join('\n');
86
+ },
87
+ };
88
+ export const kvGetTool = {
89
+ name: 'kv_get',
90
+ description: 'Read a value you previously saved with kv_set, by key, from the local key/value store. ' +
91
+ 'This is a general note store — NOT a filesystem, working directory, or settings: ' +
92
+ 'use list_files/read_file for files.',
93
+ parameters: { type: 'object', properties: { key: { type: 'string' } }, required: ['key'] },
94
+ async run(args, ctx) {
95
+ const v = await ctx.kv.get(str(args, 'key'));
96
+ return v == null ? '(not set)' : v;
97
+ },
98
+ };
99
+ export const kvSetTool = {
100
+ name: 'kv_set',
101
+ mutates: true,
102
+ description: 'Save an arbitrary value under a key in the local key/value store, to recall later with kv_get. ' +
103
+ 'This is a general note store — NOT a filesystem or working directory; it does NOT change where files are read/written. ' +
104
+ 'Use write_file/create_file for files.',
105
+ parameters: {
106
+ type: 'object',
107
+ properties: { key: { type: 'string' }, value: { type: 'string' } },
108
+ required: ['key', 'value'],
109
+ },
110
+ // Permission is gated centrally by the loop's policy/permission layer.
111
+ async run(args, ctx) {
112
+ const key = str(args, 'key');
113
+ await ctx.kv.set(key, str(args, 'value'));
114
+ return `Set ${key}.`;
115
+ },
116
+ };
117
+ export const recallResultTool = {
118
+ name: 'recall_result',
119
+ noOffload: true, // recalling a large result must never re-offload itself
120
+ description: 'Fetch the full content of a tool result that was offloaded to save context. ' +
121
+ 'You saw an "[offloaded tool result … recall_result({ id })]" reference — pass that id.',
122
+ parameters: {
123
+ type: 'object',
124
+ properties: { id: { type: 'string', description: 'The offloaded result id, e.g. "art-ab12-1".' } },
125
+ required: ['id'],
126
+ },
127
+ async run(args, ctx) {
128
+ const id = str(args, 'id');
129
+ const full = ctx.recall ? await ctx.recall.read(id) : null;
130
+ return full ?? `No offloaded result found with id "${id}".`;
131
+ },
132
+ };
133
+ export const askUserTool = {
134
+ name: 'ask_user',
135
+ noOffload: true,
136
+ description: 'Ask the user one or more questions when you need a decision you cannot make from context — to choose ' +
137
+ 'between approaches, get a missing requirement, or confirm direction. Prefer this over guessing. Give each ' +
138
+ 'question a short `header` (a chip label), the `question` text, and 2–4 distinct `options` (each with a ' +
139
+ 'label and an optional one-line description of the trade-off). Set `multiSelect: true` when more than one ' +
140
+ 'option may apply. The user can also type a custom answer. Returns the chosen answers per question.',
141
+ parameters: {
142
+ type: 'object',
143
+ properties: {
144
+ questions: {
145
+ type: 'array',
146
+ description: '1–4 questions to ask together.',
147
+ items: {
148
+ type: 'object',
149
+ properties: {
150
+ header: { type: 'string', description: 'Very short label (≤ ~12 chars) shown as a chip.' },
151
+ question: { type: 'string', description: 'The full question.' },
152
+ multiSelect: { type: 'boolean', description: 'Allow choosing more than one option.' },
153
+ options: {
154
+ type: 'array',
155
+ description: '2–4 distinct options.',
156
+ items: {
157
+ type: 'object',
158
+ properties: {
159
+ label: { type: 'string', description: 'Concise choice text (1–5 words).' },
160
+ description: { type: 'string', description: 'Optional one-line explanation of the trade-off.' },
161
+ },
162
+ required: ['label'],
163
+ },
164
+ },
165
+ },
166
+ required: ['header', 'question', 'options'],
167
+ },
168
+ },
169
+ },
170
+ required: ['questions'],
171
+ },
172
+ async run(args, ctx) {
173
+ if (!ctx.ask)
174
+ return 'ask_user is unavailable in this environment.';
175
+ const questions = Array.isArray(args.questions) ? args.questions : [];
176
+ if (!questions.length)
177
+ return 'No questions were provided.';
178
+ const answers = await ctx.ask(questions);
179
+ if (!answers)
180
+ return 'The user dismissed the questions without answering.';
181
+ const lines = Object.entries(answers).map(([h, vals]) => `${h}: ${vals.length ? vals.join(', ') : '(no answer)'}`);
182
+ return `The user answered:\n${lines.join('\n')}`;
183
+ },
184
+ };
185
+ /** Parse one {task, tools?, model?} spec from loosely-typed tool args. */
186
+ function spawnReq(o) {
187
+ const task = typeof o.task === 'string' ? o.task.trim() : '';
188
+ if (!task)
189
+ return null;
190
+ const tools = Array.isArray(o.tools) ? o.tools.filter((t) => typeof t === 'string') : undefined;
191
+ const model = typeof o.model === 'string' && o.model ? o.model : undefined;
192
+ return { task, tools, model };
193
+ }
194
+ /** Compact footer summarizing a sub-agent's cost, appended to its result. */
195
+ function spawnFooter(r) {
196
+ const tokens = r.usage.promptTokens + r.usage.completionTokens;
197
+ return `\n\n[sub-agent: ${r.turns} turn(s), ~${tokens} tokens, ${r.stopReason}]`;
198
+ }
199
+ export const spawnAgentTool = {
200
+ name: 'spawn_agent',
201
+ noOffload: true, // the sub-agent's summary is the answer; offload happens inside it
202
+ description: 'Delegate a focused, self-contained subtask to a fresh sub-agent that runs with its OWN context window and ' +
203
+ 'returns only its final summary. Use this to isolate a large exploration (lots of file reads or searches) ' +
204
+ 'from this conversation, or to run a well-scoped research/compile task without bloating your own context. ' +
205
+ 'The sub-agent does NOT see this conversation — put everything it needs in `task`. By default it gets a ' +
206
+ 'read-only tool set (read/search files, compile, web/registry search); pass `tools` to grant specific tools.',
207
+ parameters: {
208
+ type: 'object',
209
+ properties: {
210
+ task: { type: 'string', description: 'The complete, self-contained instruction for the sub-agent.' },
211
+ tools: { type: 'array', items: { type: 'string' }, description: 'Optional tool-name allowlist (defaults to a read-only set).' },
212
+ model: { type: 'string', description: 'Optional model override (defaults to the current model).' },
213
+ },
214
+ required: ['task'],
215
+ },
216
+ async run(args, ctx) {
217
+ if (!ctx.spawn)
218
+ return 'Sub-agents are not available here (depth limit reached or unsupported context).';
219
+ const req = spawnReq(args);
220
+ if (!req)
221
+ return 'Error: a non-empty `task` is required.';
222
+ try {
223
+ const r = await ctx.spawn(req);
224
+ return `${r.text}${spawnFooter(r)}`;
225
+ }
226
+ catch (e) {
227
+ return `Error: ${String(e?.message || e)}`;
228
+ }
229
+ },
230
+ };
231
+ export const spawnAgentsTool = {
232
+ name: 'spawn_agents',
233
+ noOffload: true,
234
+ description: 'Run several sub-agents IN PARALLEL, each on its own self-contained task, and get back a numbered digest of ' +
235
+ 'their results. Use this to fan out independent work (e.g. research several topics at once) — far faster than ' +
236
+ 'calling spawn_agent sequentially. Each task is isolated (no shared context); put everything each needs in its ' +
237
+ '`task`. Same per-task defaults as spawn_agent (read-only tools unless `tools` is given).',
238
+ parameters: {
239
+ type: 'object',
240
+ properties: {
241
+ tasks: {
242
+ type: 'array',
243
+ description: 'The sub-tasks to run concurrently.',
244
+ items: {
245
+ type: 'object',
246
+ properties: {
247
+ task: { type: 'string', description: 'The complete, self-contained instruction.' },
248
+ tools: { type: 'array', items: { type: 'string' }, description: 'Optional tool-name allowlist.' },
249
+ model: { type: 'string', description: 'Optional model override.' },
250
+ },
251
+ required: ['task'],
252
+ },
253
+ },
254
+ },
255
+ required: ['tasks'],
256
+ },
257
+ async run(args, ctx) {
258
+ if (!ctx.spawn)
259
+ return 'Sub-agents are not available here (depth limit reached or unsupported context).';
260
+ const spawn = ctx.spawn;
261
+ const raw = Array.isArray(args.tasks) ? args.tasks : [];
262
+ const reqs = raw.map((t) => spawnReq((t && typeof t === 'object' ? t : {}))).filter((r) => r !== null);
263
+ if (!reqs.length)
264
+ return 'Error: `tasks` must contain at least one task with a non-empty `task` string.';
265
+ const results = await Promise.all(reqs.map(async (req, i) => {
266
+ try {
267
+ const r = await spawn(req);
268
+ return `### Sub-agent ${i + 1}\n${r.text}${spawnFooter(r)}`;
269
+ }
270
+ catch (e) {
271
+ return `### Sub-agent ${i + 1}\nError: ${String(e?.message || e)}`;
272
+ }
273
+ }));
274
+ return results.join('\n\n');
275
+ },
276
+ };
277
+ export const compilePrompdTool = {
278
+ name: 'compile_prompd',
279
+ noOffload: true, // the compiled output is what the user asked to see — keep inline
280
+ description: 'Compile a .prmd/.md prompt (YAML frontmatter + Nunjucks body) and return the rendered output. ' +
281
+ 'The frontmatter REQUIRES id (kebab-case), name, and version (e.g. 1.0.0). ' +
282
+ 'Body variables use {{ name }} and are filled from the `parameters` argument — ' +
283
+ 'you MUST pass `parameters` to substitute them (e.g. {"name":"Prompd"}), or they render empty. ' +
284
+ 'To compile a file already in the workspace (so its inherits:/{% include %} resolve against ' +
285
+ 'sibling files), pass `path` (e.g. "prompts/topic.prmd"); pass `source` to compile inline text, ' +
286
+ 'or both to compile a modified version of a workspace file (source overrides the file at path).',
287
+ parameters: {
288
+ type: 'object',
289
+ properties: {
290
+ source: { type: 'string', description: 'Full source including frontmatter. Omit to compile the stored file at `path`.' },
291
+ path: { type: 'string', description: 'A workspace file to compile (relative path). Enables inherits:/{% include %} resolution against sibling files.' },
292
+ parameters: { type: 'object', description: 'Values for the {{ variables }} in the body, e.g. {"name":"Prompd"}.', additionalProperties: true },
293
+ },
294
+ required: ['parameters'],
295
+ },
296
+ async run(args, ctx) {
297
+ const source = str(args, 'source');
298
+ const path = str(args, 'path');
299
+ const params = (args.parameters && typeof args.parameters === 'object' ? args.parameters : {});
300
+ try {
301
+ const r = await compilePrompt(source, params, { files: ctx.files, path });
302
+ const errs = r.errors?.length ? `\n\nErrors:\n${r.errors.map((e) => `- ${e.message}`).join('\n')}` : '';
303
+ return `${r.output}${errs}`;
304
+ }
305
+ catch (e) {
306
+ return `Compile failed: ${e instanceof Error ? e.message : String(e)}`;
307
+ }
308
+ },
309
+ };
310
+ /** The kernel's runtime-agnostic built-in tools. Product/host tools (registry
311
+ * search) are added by the registry — use `allTools()` for the complete set. */
312
+ export const defaultTools = [
313
+ askUserTool,
314
+ spawnAgentTool,
315
+ spawnAgentsTool,
316
+ proposeEditTool,
317
+ saveMemoryTool,
318
+ recallMemoryTool,
319
+ kvGetTool,
320
+ kvSetTool,
321
+ recallResultTool,
322
+ searchSessionsTool,
323
+ webSearchTool,
324
+ todoWriteTool,
325
+ compilePrompdTool,
326
+ ...fileTools,
327
+ ];
328
+ /** The full tool set the model is offered: kernel built-ins + everything the
329
+ * host registered (compile_prompd, search_packages, a bridge's tools, …).
330
+ * Read this LAZILY at the point of use — never cache it at module top level —
331
+ * so tools registered after a consumer loaded still appear. */
332
+ export function allTools() {
333
+ return [...defaultTools, ...extensionTools()];
334
+ }
335
+ //# sourceMappingURL=builtins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtins.js","sourceRoot":"","sources":["../../tools/builtins.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { AgentTool } from '@corenel/protocol';
2
+ export declare const listFilesTool: AgentTool;
3
+ export declare const readFileTool: AgentTool;
4
+ export declare const statFileTool: AgentTool;
5
+ export declare const searchFilesTool: AgentTool;
6
+ export declare const writeFileTool: AgentTool;
7
+ export declare const createFileTool: AgentTool;
8
+ export declare const deleteFileTool: AgentTool;
9
+ export declare const renameFileTool: AgentTool;
10
+ export declare const fileTools: AgentTool[];
11
+ //# sourceMappingURL=files.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../tools/files.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,mBAAmB,CAAC;AAqBhE,eAAO,MAAM,aAAa,EAAE,SAe3B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,SAY1B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,SAc1B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,SAa7B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,SAoB3B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,SAkB5B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,SAe5B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,SAmB5B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,SAAS,EAShC,CAAC"}