actoviq-agent-sdk 0.4.12 → 0.4.13

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 (194) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/src/config/agentDefinitionMigration.d.ts +125 -0
  3. package/dist/src/config/agentDefinitionMigration.d.ts.map +1 -0
  4. package/dist/src/config/agentDefinitionMigration.js +540 -0
  5. package/dist/src/config/agentDefinitionMigration.js.map +1 -0
  6. package/dist/src/config/agentProfiles.d.ts +19 -0
  7. package/dist/src/config/agentProfiles.d.ts.map +1 -1
  8. package/dist/src/config/agentProfiles.js +65 -13
  9. package/dist/src/config/agentProfiles.js.map +1 -1
  10. package/dist/src/config/modelConfigurationCatalog.d.ts +25 -0
  11. package/dist/src/config/modelConfigurationCatalog.d.ts.map +1 -0
  12. package/dist/src/config/modelConfigurationCatalog.js +50 -0
  13. package/dist/src/config/modelConfigurationCatalog.js.map +1 -0
  14. package/dist/src/gui/agentTargetPicker.d.ts +32 -0
  15. package/dist/src/gui/agentTargetPicker.d.ts.map +1 -0
  16. package/dist/src/gui/agentTargetPicker.js +99 -0
  17. package/dist/src/gui/agentTargetPicker.js.map +1 -0
  18. package/dist/src/gui/electronMain.js +1 -0
  19. package/dist/src/gui/electronMain.js.map +1 -1
  20. package/dist/src/gui/hadamardGui.d.ts +23 -0
  21. package/dist/src/gui/hadamardGui.d.ts.map +1 -1
  22. package/dist/src/gui/hadamardGui.js +4120 -931
  23. package/dist/src/gui/hadamardGui.js.map +1 -1
  24. package/dist/src/gui/projectWorkbench.d.ts +6 -2
  25. package/dist/src/gui/projectWorkbench.d.ts.map +1 -1
  26. package/dist/src/gui/projectWorkbench.js +76 -67
  27. package/dist/src/gui/projectWorkbench.js.map +1 -1
  28. package/dist/src/gui/promptTemplates.d.ts +0 -1
  29. package/dist/src/gui/promptTemplates.d.ts.map +1 -1
  30. package/dist/src/gui/promptTemplates.js +0 -3
  31. package/dist/src/gui/promptTemplates.js.map +1 -1
  32. package/dist/src/gui/transcript/clientBundle.d.ts +6 -1
  33. package/dist/src/gui/transcript/clientBundle.d.ts.map +1 -1
  34. package/dist/src/gui/transcript/clientBundle.js +6 -1
  35. package/dist/src/gui/transcript/clientBundle.js.map +1 -1
  36. package/dist/src/help/productCapabilities.d.ts +17 -0
  37. package/dist/src/help/productCapabilities.d.ts.map +1 -0
  38. package/dist/src/help/productCapabilities.js +146 -0
  39. package/dist/src/help/productCapabilities.js.map +1 -0
  40. package/dist/src/index.d.ts +15 -4
  41. package/dist/src/index.d.ts.map +1 -1
  42. package/dist/src/index.js +9 -3
  43. package/dist/src/index.js.map +1 -1
  44. package/dist/src/issues/issueExecution.d.ts.map +1 -1
  45. package/dist/src/issues/issueExecution.js +29 -9
  46. package/dist/src/issues/issueExecution.js.map +1 -1
  47. package/dist/src/manager/assistantGlobalTools.d.ts +44 -0
  48. package/dist/src/manager/assistantGlobalTools.d.ts.map +1 -1
  49. package/dist/src/manager/assistantGlobalTools.js +565 -32
  50. package/dist/src/manager/assistantGlobalTools.js.map +1 -1
  51. package/dist/src/manager/assistantProposals.d.ts +87 -0
  52. package/dist/src/manager/assistantProposals.d.ts.map +1 -0
  53. package/dist/src/manager/assistantProposals.js +207 -0
  54. package/dist/src/manager/assistantProposals.js.map +1 -0
  55. package/dist/src/manager/referenceIndex.d.ts +82 -0
  56. package/dist/src/manager/referenceIndex.d.ts.map +1 -0
  57. package/dist/src/manager/referenceIndex.js +167 -0
  58. package/dist/src/manager/referenceIndex.js.map +1 -0
  59. package/dist/src/manager/referenceOperations.d.ts +108 -0
  60. package/dist/src/manager/referenceOperations.d.ts.map +1 -0
  61. package/dist/src/manager/referenceOperations.js +821 -0
  62. package/dist/src/manager/referenceOperations.js.map +1 -0
  63. package/dist/src/manager/resolveTargetRef.d.ts +67 -0
  64. package/dist/src/manager/resolveTargetRef.d.ts.map +1 -0
  65. package/dist/src/manager/resolveTargetRef.js +81 -0
  66. package/dist/src/manager/resolveTargetRef.js.map +1 -0
  67. package/dist/src/router/modelRouter.d.ts +22 -2
  68. package/dist/src/router/modelRouter.d.ts.map +1 -1
  69. package/dist/src/router/modelRouter.js +76 -9
  70. package/dist/src/router/modelRouter.js.map +1 -1
  71. package/dist/src/runtime/agentClient.d.ts +18 -0
  72. package/dist/src/runtime/agentClient.d.ts.map +1 -1
  73. package/dist/src/runtime/agentClient.js +209 -21
  74. package/dist/src/runtime/agentClient.js.map +1 -1
  75. package/dist/src/runtime/agentSession.d.ts +7 -0
  76. package/dist/src/runtime/agentSession.d.ts.map +1 -1
  77. package/dist/src/runtime/agentSession.js +10 -0
  78. package/dist/src/runtime/agentSession.js.map +1 -1
  79. package/dist/src/runtime/agentTemplates.d.ts +28 -0
  80. package/dist/src/runtime/agentTemplates.d.ts.map +1 -0
  81. package/dist/src/runtime/agentTemplates.js +73 -0
  82. package/dist/src/runtime/agentTemplates.js.map +1 -0
  83. package/dist/src/runtime/conversationEngine.d.ts +2 -0
  84. package/dist/src/runtime/conversationEngine.d.ts.map +1 -1
  85. package/dist/src/runtime/conversationEngine.js +10 -1
  86. package/dist/src/runtime/conversationEngine.js.map +1 -1
  87. package/dist/src/runtime/defaultHadamardAgents.d.ts.map +1 -1
  88. package/dist/src/runtime/defaultHadamardAgents.js +9 -47
  89. package/dist/src/runtime/defaultHadamardAgents.js.map +1 -1
  90. package/dist/src/runtime/effectiveAgentRunOptions.d.ts +49 -0
  91. package/dist/src/runtime/effectiveAgentRunOptions.d.ts.map +1 -0
  92. package/dist/src/runtime/effectiveAgentRunOptions.js +50 -0
  93. package/dist/src/runtime/effectiveAgentRunOptions.js.map +1 -0
  94. package/dist/src/runtime/externalAgentRunner.d.ts +25 -0
  95. package/dist/src/runtime/externalAgentRunner.d.ts.map +1 -0
  96. package/dist/src/runtime/externalAgentRunner.js +57 -0
  97. package/dist/src/runtime/externalAgentRunner.js.map +1 -0
  98. package/dist/src/runtime/hadamardAgentDefinitions.d.ts +15 -0
  99. package/dist/src/runtime/hadamardAgentDefinitions.d.ts.map +1 -1
  100. package/dist/src/runtime/hadamardAgentDefinitions.js +42 -2
  101. package/dist/src/runtime/hadamardAgentDefinitions.js.map +1 -1
  102. package/dist/src/runtime/hadamardAgents.d.ts +6 -0
  103. package/dist/src/runtime/hadamardAgents.d.ts.map +1 -1
  104. package/dist/src/runtime/hadamardAgents.js +52 -1
  105. package/dist/src/runtime/hadamardAgents.js.map +1 -1
  106. package/dist/src/runtime/hadamardPermissions.d.ts +1 -0
  107. package/dist/src/runtime/hadamardPermissions.d.ts.map +1 -1
  108. package/dist/src/runtime/hadamardPermissions.js +6 -0
  109. package/dist/src/runtime/hadamardPermissions.js.map +1 -1
  110. package/dist/src/runtime/tools.d.ts.map +1 -1
  111. package/dist/src/runtime/tools.js +2 -0
  112. package/dist/src/runtime/tools.js.map +1 -1
  113. package/dist/src/team/executorTarget.d.ts +26 -0
  114. package/dist/src/team/executorTarget.d.ts.map +1 -0
  115. package/dist/src/team/executorTarget.js +15 -0
  116. package/dist/src/team/executorTarget.js.map +1 -0
  117. package/dist/src/team/modelTeam.d.ts +5 -1
  118. package/dist/src/team/modelTeam.d.ts.map +1 -1
  119. package/dist/src/team/modelTeam.js +157 -41
  120. package/dist/src/team/modelTeam.js.map +1 -1
  121. package/dist/src/team/teamComposition.d.ts +20 -0
  122. package/dist/src/team/teamComposition.d.ts.map +1 -0
  123. package/dist/src/team/teamComposition.js +78 -0
  124. package/dist/src/team/teamComposition.js.map +1 -0
  125. package/dist/src/team/teamDefinitions.d.ts +10 -1
  126. package/dist/src/team/teamDefinitions.d.ts.map +1 -1
  127. package/dist/src/team/teamDefinitions.js +123 -16
  128. package/dist/src/team/teamDefinitions.js.map +1 -1
  129. package/dist/src/team/teamGraph.d.ts +1 -1
  130. package/dist/src/team/teamGraph.d.ts.map +1 -1
  131. package/dist/src/team/teamGraph.js +1 -1
  132. package/dist/src/team/teamGraph.js.map +1 -1
  133. package/dist/src/team/teamPrompts.d.ts.map +1 -1
  134. package/dist/src/team/teamPrompts.js +0 -4
  135. package/dist/src/team/teamPrompts.js.map +1 -1
  136. package/dist/src/team/teamProposalService.d.ts +9 -1
  137. package/dist/src/team/teamProposalService.d.ts.map +1 -1
  138. package/dist/src/team/teamProposalService.js +66 -6
  139. package/dist/src/team/teamProposalService.js.map +1 -1
  140. package/dist/src/team/teamPropose.d.ts +3 -1
  141. package/dist/src/team/teamPropose.d.ts.map +1 -1
  142. package/dist/src/team/teamPropose.js +16 -10
  143. package/dist/src/team/teamPropose.js.map +1 -1
  144. package/dist/src/team/teamRuntime.d.ts +5 -0
  145. package/dist/src/team/teamRuntime.d.ts.map +1 -1
  146. package/dist/src/team/teamRuntime.js +23 -5
  147. package/dist/src/team/teamRuntime.js.map +1 -1
  148. package/dist/src/team/workflowSquad.d.ts +10 -2
  149. package/dist/src/team/workflowSquad.d.ts.map +1 -1
  150. package/dist/src/team/workflowSquad.js +250 -12
  151. package/dist/src/team/workflowSquad.js.map +1 -1
  152. package/dist/src/tools/enterWorktree.d.ts.map +1 -1
  153. package/dist/src/tools/enterWorktree.js +3 -0
  154. package/dist/src/tools/enterWorktree.js.map +1 -1
  155. package/dist/src/tools/exaSearch.d.ts +2 -2
  156. package/dist/src/tools/exitWorktree.d.ts.map +1 -1
  157. package/dist/src/tools/exitWorktree.js +3 -1
  158. package/dist/src/tools/exitWorktree.js.map +1 -1
  159. package/dist/src/tools/hadamardCoreTools.d.ts +5 -14
  160. package/dist/src/tools/hadamardCoreTools.d.ts.map +1 -1
  161. package/dist/src/tools/hadamardCoreTools.js +31 -0
  162. package/dist/src/tools/hadamardCoreTools.js.map +1 -1
  163. package/dist/src/tools/hadamardFileTools.d.ts.map +1 -1
  164. package/dist/src/tools/hadamardFileTools.js +116 -38
  165. package/dist/src/tools/hadamardFileTools.js.map +1 -1
  166. package/dist/src/tools/planMode/PlanModeTools.js +2 -2
  167. package/dist/src/tools/planMode/PlanModeTools.js.map +1 -1
  168. package/dist/src/tui/hadamardTui.d.ts.map +1 -1
  169. package/dist/src/tui/hadamardTui.js +358 -69
  170. package/dist/src/tui/hadamardTui.js.map +1 -1
  171. package/dist/src/tui/pendingInput.d.ts +17 -0
  172. package/dist/src/tui/pendingInput.d.ts.map +1 -0
  173. package/dist/src/tui/pendingInput.js +23 -0
  174. package/dist/src/tui/pendingInput.js.map +1 -0
  175. package/dist/src/tui/reasoningDisplay.d.ts +13 -0
  176. package/dist/src/tui/reasoningDisplay.d.ts.map +1 -0
  177. package/dist/src/tui/reasoningDisplay.js +45 -0
  178. package/dist/src/tui/reasoningDisplay.js.map +1 -0
  179. package/dist/src/tui/screen.d.ts +11 -1
  180. package/dist/src/tui/screen.d.ts.map +1 -1
  181. package/dist/src/tui/screen.js +64 -34
  182. package/dist/src/tui/screen.js.map +1 -1
  183. package/dist/src/types.d.ts +171 -4
  184. package/dist/src/types.d.ts.map +1 -1
  185. package/dist/src/types.js.map +1 -1
  186. package/dist/src/ui/commandSurface.d.ts +8 -0
  187. package/dist/src/ui/commandSurface.d.ts.map +1 -1
  188. package/dist/src/ui/commandSurface.js +71 -7
  189. package/dist/src/ui/commandSurface.js.map +1 -1
  190. package/package.json +1 -1
  191. package/dist/src/gui/projectSettings.d.ts +0 -2
  192. package/dist/src/gui/projectSettings.d.ts.map +0 -1
  193. package/dist/src/gui/projectSettings.js +0 -2
  194. package/dist/src/gui/projectSettings.js.map +0 -1
@@ -0,0 +1,540 @@
1
+ /**
2
+ * Unified agent store, S1a (plan/AGENT_SUBAGENT_UNIFICATION_08Aug2026 §1/§3):
3
+ * the json→md auto-migration, the .md serializer shared with the interim
4
+ * profile write-through, and the AgentProfile compatibility derivation from
5
+ * the unified `.md` store.
6
+ *
7
+ * Interim semantics (until S3 moves the write path fully to .md):
8
+ * - Reads merge legacy `agent-configs.json` profiles with profiles derived
9
+ * from `<home>/.hadamard/agents/*.md`; the .md definition wins on name
10
+ * conflict ("file wins").
11
+ * - Migration runs on first read (idempotent): every json profile without a
12
+ * same-named .md gets one (`promptMode: extend`, `subagent: true`, body =
13
+ * systemPromptAppend); afterwards the json is renamed to
14
+ * `agent-configs.json.migrated.bak` (never deleted; when a .bak already
15
+ * exists the migration is skipped and the json keeps its legacy behavior).
16
+ * - Writes go to the json while it exists; once migrated (json absent) they
17
+ * write through to .md files. Upsert preserves frontmatter keys the profile
18
+ * model does not carry (allowedAgents, skills, memory, background,
19
+ * isolation, initialPrompt, …); bulk writes delete only .md files that
20
+ * parse as profile-backed definitions (bridgeConfig set) whose name is
21
+ * absent from the store, so pure-subagent .md files are never touched.
22
+ * - Note: P1 transaction rollback (withFileRollback) does not snapshot .md
23
+ * files yet — full transactional .md handling lands with S3.
24
+ */
25
+ import { existsSync, mkdirSync, readdirSync, readFileSync, renameSync, unlinkSync, writeFileSync, } from 'node:fs';
26
+ import path from 'node:path';
27
+ import { parseAgentDefinitionMarkdown, parseMarkdownFrontmatter, } from '../runtime/hadamardAgentDefinitions.js';
28
+ import { resolveHadamardHome } from './hadamardHome.js';
29
+ const MIGRATED_BACKUP_SUFFIX = '.migrated.bak';
30
+ /** Frontmatter keys owned by the AgentProfile model, in canonical write order. */
31
+ const PROFILE_FRONTMATTER_ORDER = [
32
+ 'name',
33
+ 'description',
34
+ 'bridgeConfig',
35
+ 'model',
36
+ 'effort',
37
+ 'permissionMode',
38
+ 'promptMode',
39
+ 'temperature',
40
+ 'topP',
41
+ 'maxTokens',
42
+ 'maxIterations',
43
+ 'timeoutMs',
44
+ 'workspaceAccess',
45
+ 'tools',
46
+ 'subagent',
47
+ ];
48
+ export function agentDefinitionsDir(homeDir) {
49
+ return path.join(resolveHadamardHome(homeDir), 'agents');
50
+ }
51
+ export function projectAgentDefinitionsDir(projectDir) {
52
+ return path.join(projectDir, '.hadamard', 'agents');
53
+ }
54
+ function agentProfilesJsonPath(homeDir) {
55
+ return path.join(resolveHadamardHome(homeDir), 'agent-configs.json');
56
+ }
57
+ function listMarkdownFiles(dir) {
58
+ let entries;
59
+ try {
60
+ entries = readdirSync(dir, { withFileTypes: true });
61
+ }
62
+ catch {
63
+ return [];
64
+ }
65
+ return entries
66
+ .filter(entry => entry.isFile() && entry.name.toLowerCase().endsWith('.md'))
67
+ .map(entry => path.join(dir, entry.name));
68
+ }
69
+ /** Definition name for a .md file: frontmatter name, else the filename stem. */
70
+ function definitionNameForFile(filePath) {
71
+ try {
72
+ const parsed = parseMarkdownFrontmatter(readFileSync(filePath, 'utf8'));
73
+ return (parsed.frontmatter.name?.trim()
74
+ || path.basename(filePath, path.extname(filePath)).trim()
75
+ || undefined);
76
+ }
77
+ catch {
78
+ return undefined;
79
+ }
80
+ }
81
+ function tryParseDefinition(filePath) {
82
+ try {
83
+ return parseAgentDefinitionMarkdown({
84
+ filePath,
85
+ fallbackName: path.basename(filePath, path.extname(filePath)),
86
+ source: 'user',
87
+ content: readFileSync(filePath, 'utf8'),
88
+ });
89
+ }
90
+ catch {
91
+ return undefined;
92
+ }
93
+ }
94
+ /** Load one project/personal `.md` Agent as a runtime definition (project wins). */
95
+ export function readStoredAgentDefinition(name, homeDir, projectDir) {
96
+ const dirs = [agentDefinitionsDir(homeDir)];
97
+ if (projectDir)
98
+ dirs.unshift(projectAgentDefinitionsDir(projectDir));
99
+ for (const dir of dirs) {
100
+ const filePath = findDefinitionFileByName(dir, name);
101
+ if (!filePath)
102
+ continue;
103
+ return tryParseDefinition(filePath) ?? null;
104
+ }
105
+ return null;
106
+ }
107
+ function findDefinitionFileByName(dir, name) {
108
+ return listMarkdownFiles(dir).find(filePath => definitionNameForFile(filePath) === name);
109
+ }
110
+ function formatFrontmatterValue(value) {
111
+ if (value === undefined || value === null)
112
+ return undefined;
113
+ if (Array.isArray(value)) {
114
+ return value.length ? value.map(item => String(item)).join(', ') : undefined;
115
+ }
116
+ if (typeof value === 'boolean')
117
+ return value ? 'true' : 'false';
118
+ if (typeof value === 'number')
119
+ return Number.isFinite(value) ? String(value) : undefined;
120
+ const str = String(value).trim();
121
+ return str || undefined;
122
+ }
123
+ /**
124
+ * Serialize one agent definition to the unified .md format. Profile-owned
125
+ * keys are emitted in canonical order first; any extra keys (subagent-only
126
+ * fields preserved from an existing file) follow.
127
+ */
128
+ export function serializeAgentDefinitionMarkdown(fields, body) {
129
+ const lines = ['---'];
130
+ const seen = new Set();
131
+ for (const key of PROFILE_FRONTMATTER_ORDER) {
132
+ seen.add(key);
133
+ const formatted = formatFrontmatterValue(fields[key]);
134
+ if (formatted !== undefined)
135
+ lines.push(`${key}: ${formatted}`);
136
+ }
137
+ for (const [key, value] of Object.entries(fields)) {
138
+ if (seen.has(key))
139
+ continue;
140
+ const formatted = formatFrontmatterValue(value);
141
+ if (formatted !== undefined)
142
+ lines.push(`${key}: ${formatted}`);
143
+ }
144
+ lines.push('---', '', body.trim(), '');
145
+ return lines.join('\n');
146
+ }
147
+ /** Migrated/GUI-created profiles default to promptMode extend + subagent true (§6-1/§6-4). */
148
+ function profileToMarkdownFields(profile) {
149
+ return {
150
+ name: profile.name,
151
+ description: profile.description,
152
+ bridgeConfig: profile.bridgeConfig,
153
+ model: profile.model,
154
+ effort: profile.effort,
155
+ permissionMode: profile.permissionMode,
156
+ promptMode: profile.promptMode ?? 'extend',
157
+ temperature: profile.temperature,
158
+ topP: profile.topP,
159
+ maxTokens: profile.maxTokens,
160
+ maxIterations: profile.maxIterations,
161
+ timeoutMs: profile.timeoutMs,
162
+ workspaceAccess: profile.workspaceAccess,
163
+ tools: profile.allowedTools,
164
+ subagent: profile.subagent ?? true,
165
+ };
166
+ }
167
+ /**
168
+ * Derive the legacy AgentProfile view from a unified definition. Only
169
+ * definitions carrying both bridgeConfig and model qualify — pure .md
170
+ * subagents never appear in the profile view.
171
+ */
172
+ export function agentDefinitionToProfile(definition) {
173
+ const bridgeConfig = definition.bridgeConfig?.trim();
174
+ const model = definition.model?.trim();
175
+ if (!bridgeConfig || !model)
176
+ return null;
177
+ return {
178
+ name: definition.name,
179
+ bridgeConfig,
180
+ model,
181
+ ...(definition.description ? { description: definition.description } : {}),
182
+ ...(definition.systemPrompt?.trim() ? { systemPromptAppend: definition.systemPrompt.trim() } : {}),
183
+ ...(definition.promptMode ? { promptMode: definition.promptMode } : {}),
184
+ ...(typeof definition.subagent === 'boolean' ? { subagent: definition.subagent } : {}),
185
+ ...(definition.permissionMode ? { permissionMode: definition.permissionMode } : {}),
186
+ ...(definition.effort ? { effort: definition.effort } : {}),
187
+ ...(typeof definition.maxTokens === 'number' ? { maxTokens: definition.maxTokens } : {}),
188
+ ...(typeof definition.temperature === 'number' ? { temperature: definition.temperature } : {}),
189
+ ...(typeof definition.topP === 'number' ? { topP: definition.topP } : {}),
190
+ ...(definition.allowedTools?.length ? { allowedTools: [...definition.allowedTools] } : {}),
191
+ ...(definition.workspaceAccess ? { workspaceAccess: definition.workspaceAccess } : {}),
192
+ ...(typeof definition.maxToolIterations === 'number'
193
+ ? { maxIterations: definition.maxToolIterations }
194
+ : {}),
195
+ ...(typeof definition.timeoutMs === 'number' ? { timeoutMs: definition.timeoutMs } : {}),
196
+ };
197
+ }
198
+ /** True once the json store has been migrated (json gone, .bak present). */
199
+ export function agentProfileStoreMigrated(homeDir) {
200
+ const jsonPath = agentProfilesJsonPath(homeDir);
201
+ return !existsSync(jsonPath) && existsSync(`${jsonPath}${MIGRATED_BACKUP_SUFFIX}`);
202
+ }
203
+ /** True when a same-named .md definition already lives in the unified store. */
204
+ export function profileStoredAsMarkdown(name, homeDir) {
205
+ return findDefinitionFileByName(agentDefinitionsDir(homeDir), name) !== undefined;
206
+ }
207
+ const VALID_DEFINITION_NAME = /^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/;
208
+ function formatExtras(extras) {
209
+ if (!extras)
210
+ return {};
211
+ return {
212
+ promptMode: extras.promptMode,
213
+ subagent: extras.subagent,
214
+ allowedAgents: extras.allowedAgents?.length ? extras.allowedAgents : undefined,
215
+ skills: extras.skills?.length ? extras.skills : undefined,
216
+ memory: extras.memory,
217
+ background: extras.background === true ? true : undefined,
218
+ isolation: extras.isolation,
219
+ initialPrompt: extras.initialPrompt?.trim() || undefined,
220
+ model: extras.model?.trim() || undefined,
221
+ runtime: extras.runtime?.trim() && extras.runtime.trim() !== 'hadamard'
222
+ ? extras.runtime.trim()
223
+ : undefined,
224
+ permissionMode: extras.permissionMode,
225
+ effort: extras.effort,
226
+ temperature: extras.temperature,
227
+ topP: extras.topP,
228
+ maxTokens: extras.maxTokens,
229
+ maxIterations: extras.maxIterations,
230
+ timeoutMs: extras.timeoutMs,
231
+ workspaceAccess: extras.workspaceAccess,
232
+ tools: extras.tools?.length ? extras.tools : undefined,
233
+ };
234
+ }
235
+ /**
236
+ * Extras applied on top of a profile write: only the delegation keys.
237
+ * Profile-owned keys (model, effort, permissionMode, sampling, workspace,
238
+ * tools) come from the profile itself and must never be cleared by extras.
239
+ */
240
+ function formatDelegationExtras(extras) {
241
+ const full = formatExtras(extras);
242
+ return {
243
+ promptMode: full.promptMode,
244
+ subagent: full.subagent,
245
+ allowedAgents: full.allowedAgents,
246
+ skills: full.skills,
247
+ memory: full.memory,
248
+ background: full.background,
249
+ isolation: full.isolation,
250
+ initialPrompt: full.initialPrompt,
251
+ runtime: full.runtime,
252
+ };
253
+ }
254
+ /** Read one definition's raw frontmatter + body by name (project dir wins). */
255
+ export function readAgentDefinitionMarkdown(name, homeDir, projectDir) {
256
+ const dirs = [];
257
+ if (projectDir)
258
+ dirs.push({ dir: path.join(projectDir, '.hadamard', 'agents'), source: 'project' });
259
+ dirs.push({ dir: agentDefinitionsDir(homeDir), source: 'user' });
260
+ for (const { dir, source } of dirs) {
261
+ const filePath = findDefinitionFileByName(dir, name);
262
+ if (!filePath)
263
+ continue;
264
+ try {
265
+ const parsed = parseMarkdownFrontmatter(readFileSync(filePath, 'utf8'));
266
+ return { frontmatter: parsed.frontmatter, body: parsed.body, filePath, source };
267
+ }
268
+ catch {
269
+ return null;
270
+ }
271
+ }
272
+ return null;
273
+ }
274
+ /**
275
+ * Write a pure .md agent (no bridgeConfig/model — "inherit session model").
276
+ * Such definitions never appear in the profile compatibility view.
277
+ */
278
+ export function writeAgentDefinitionMarkdown(options) {
279
+ const name = options.name.trim();
280
+ if (!VALID_DEFINITION_NAME.test(name)) {
281
+ throw new Error('Invalid agent name (use letters, digits, . _ -)');
282
+ }
283
+ const dir = options.directory ?? agentDefinitionsDir(options.homeDir);
284
+ mkdirSync(dir, { recursive: true });
285
+ const existing = findDefinitionFileByName(dir, name);
286
+ let fields = {};
287
+ if (existing) {
288
+ const parsed = parseMarkdownFrontmatter(readFileSync(existing, 'utf8'));
289
+ fields = { ...parsed.frontmatter };
290
+ }
291
+ const owned = {
292
+ name,
293
+ description: options.description?.trim() || undefined,
294
+ ...formatExtras(options.extras),
295
+ };
296
+ for (const [key, value] of Object.entries(owned)) {
297
+ if (formatFrontmatterValue(value) === undefined)
298
+ delete fields[key];
299
+ else
300
+ fields[key] = value;
301
+ }
302
+ const body = options.body?.trim() || (existing ? parseMarkdownFrontmatter(readFileSync(existing, 'utf8')).body.trim() : '') || 'No additional instructions.';
303
+ if (!fields.description)
304
+ fields.description = firstBodyLine(body) ?? name;
305
+ const filePath = existing ?? path.join(dir, `${name}.md`);
306
+ writeFileSync(filePath, serializeAgentDefinitionMarkdown(fields, body), 'utf8');
307
+ return filePath;
308
+ }
309
+ /** Profiles derived from the unified .md store (user scope). */
310
+ export function readProfilesFromAgentDefinitions(homeDir) {
311
+ const profiles = [];
312
+ for (const filePath of listMarkdownFiles(agentDefinitionsDir(homeDir))) {
313
+ const definition = tryParseDefinition(filePath);
314
+ if (!definition)
315
+ continue;
316
+ const profile = agentDefinitionToProfile(definition);
317
+ if (profile)
318
+ profiles.push(profile);
319
+ }
320
+ return profiles;
321
+ }
322
+ /**
323
+ * Reference-index input (S3): profile-shaped entries for EVERY .md definition
324
+ * carrying a bridgeConfig, in both scopes (project wins on name conflict).
325
+ * Unlike the composer compat view this tolerates a missing model — a
326
+ * config edge exists even when the definition follows the config's default
327
+ * model. Not for composer/activation use.
328
+ */
329
+ export function readAllAgentReferenceProfiles(homeDir, projectDir) {
330
+ const merged = new Map();
331
+ const dirs = [agentDefinitionsDir(homeDir)];
332
+ if (projectDir)
333
+ dirs.push(projectAgentDefinitionsDir(projectDir));
334
+ for (const dir of dirs) {
335
+ for (const filePath of listMarkdownFiles(dir)) {
336
+ const definition = tryParseDefinition(filePath);
337
+ const bridgeConfig = definition?.bridgeConfig?.trim();
338
+ if (!definition || !bridgeConfig)
339
+ continue;
340
+ merged.set(definition.name, agentDefinitionToProfile(definition) ?? {
341
+ name: definition.name,
342
+ bridgeConfig,
343
+ model: definition.model?.trim() || '',
344
+ });
345
+ }
346
+ }
347
+ return [...merged.values()];
348
+ }
349
+ /** All .md definition names in both scopes (reference known-set for agent targets). */
350
+ export function listAgentDefinitionNames(homeDir, projectDir) {
351
+ const names = new Set();
352
+ const dirs = [agentDefinitionsDir(homeDir)];
353
+ if (projectDir)
354
+ dirs.push(projectAgentDefinitionsDir(projectDir));
355
+ for (const dir of dirs) {
356
+ for (const filePath of listMarkdownFiles(dir)) {
357
+ const name = definitionNameForFile(filePath);
358
+ if (name)
359
+ names.add(name);
360
+ }
361
+ }
362
+ return [...names];
363
+ }
364
+ /**
365
+ * Locate one agent definition .md file by frontmatter name. Project scope
366
+ * shadows personal (the same precedence loadHadamardAgentDefinitions uses).
367
+ */
368
+ export function findAgentDefinitionFile(name, homeDir, projectDir) {
369
+ const dirs = [agentDefinitionsDir(homeDir)];
370
+ if (projectDir)
371
+ dirs.unshift(projectAgentDefinitionsDir(projectDir));
372
+ for (const dir of dirs) {
373
+ const filePath = findDefinitionFileByName(dir, name);
374
+ if (filePath)
375
+ return { filePath, directory: dir };
376
+ }
377
+ return null;
378
+ }
379
+ /** Minimal raw-profile extraction for migration (json entries are pre-normalized). */
380
+ function normalizeMigrationProfile(raw) {
381
+ if (typeof raw !== 'object' || raw === null)
382
+ return null;
383
+ const record = raw;
384
+ const name = typeof record.name === 'string' ? record.name.trim() : '';
385
+ const bridgeConfig = typeof record.bridgeConfig === 'string' ? record.bridgeConfig.trim() : '';
386
+ const model = typeof record.model === 'string' ? record.model.trim() : '';
387
+ if (!name || !bridgeConfig || !model)
388
+ return null;
389
+ const numberOr = (value) => typeof value === 'number' && Number.isFinite(value) ? value : undefined;
390
+ const stringOr = (value) => typeof value === 'string' && value.trim() ? value.trim() : undefined;
391
+ return {
392
+ name,
393
+ bridgeConfig,
394
+ model,
395
+ description: stringOr(record.description),
396
+ systemPromptAppend: stringOr(record.systemPromptAppend),
397
+ promptMode: record.promptMode === 'replace' ? 'replace' : record.promptMode === 'extend' ? 'extend' : undefined,
398
+ subagent: typeof record.subagent === 'boolean' ? record.subagent : undefined,
399
+ permissionMode: record.permissionMode,
400
+ effort: record.effort,
401
+ maxTokens: numberOr(record.maxTokens),
402
+ temperature: numberOr(record.temperature),
403
+ topP: numberOr(record.topP),
404
+ allowedTools: Array.isArray(record.allowedTools)
405
+ ? record.allowedTools.filter((tool) => typeof tool === 'string' && Boolean(tool.trim()))
406
+ : undefined,
407
+ workspaceAccess: record.workspaceAccess === 'full' ? 'full' : record.workspaceAccess === 'workspace' ? 'workspace' : undefined,
408
+ maxIterations: numberOr(record.maxIterations),
409
+ timeoutMs: numberOr(record.timeoutMs),
410
+ };
411
+ }
412
+ function firstBodyLine(body) {
413
+ return body
414
+ .split(/\r?\n/u)
415
+ .map(line => line.trim())
416
+ .find(line => Boolean(line) && !line.startsWith('#'))
417
+ ?.slice(0, 240);
418
+ }
419
+ /**
420
+ * json→md auto-migration (§3). Idempotent; skips entirely when a
421
+ * `.migrated.bak` already exists. Same-named .md definitions win over json
422
+ * profiles (never overwritten). After processing, the json is renamed to
423
+ * `agent-configs.json.migrated.bak` — never deleted, so the change is
424
+ * revertible by renaming it back.
425
+ */
426
+ export function migrateAgentProfilesToMarkdown(homeDir, agentsDir = agentDefinitionsDir(homeDir)) {
427
+ const result = { migrated: [], skipped: [] };
428
+ const jsonPath = agentProfilesJsonPath(homeDir);
429
+ if (!existsSync(jsonPath))
430
+ return result;
431
+ const backupPath = `${jsonPath}${MIGRATED_BACKUP_SUFFIX}`;
432
+ if (existsSync(backupPath))
433
+ return result;
434
+ let raw;
435
+ try {
436
+ raw = JSON.parse(readFileSync(jsonPath, 'utf8'));
437
+ }
438
+ catch {
439
+ // Unparseable json: leave it for the legacy reader rather than guessing.
440
+ return result;
441
+ }
442
+ const list = Array.isArray(raw.profiles)
443
+ ? raw.profiles
444
+ : [];
445
+ const existingNames = new Set();
446
+ for (const filePath of listMarkdownFiles(agentsDir)) {
447
+ const name = definitionNameForFile(filePath);
448
+ if (name)
449
+ existingNames.add(name);
450
+ }
451
+ mkdirSync(agentsDir, { recursive: true });
452
+ for (const entry of list) {
453
+ const profile = normalizeMigrationProfile(entry);
454
+ if (!profile)
455
+ continue;
456
+ if (existingNames.has(profile.name)) {
457
+ result.skipped.push(profile.name);
458
+ continue;
459
+ }
460
+ const body = profile.systemPromptAppend?.trim()
461
+ || profile.description?.trim()
462
+ || 'No additional instructions.';
463
+ const description = profile.description?.trim() || firstBodyLine(body);
464
+ writeFileSync(path.join(agentsDir, `${profile.name}.md`), serializeAgentDefinitionMarkdown({ ...profileToMarkdownFields(profile), description }, body), 'utf8');
465
+ result.migrated.push(profile.name);
466
+ }
467
+ renameSync(jsonPath, backupPath);
468
+ return result;
469
+ }
470
+ /**
471
+ * Write-through upsert (migrated store): update the definition's .md file.
472
+ * Profile-owned frontmatter keys are set or cleared wholesale (upsert
473
+ * semantics); unknown keys (allowedAgents, skills, …) are preserved. The body
474
+ * mirrors systemPromptAppend — the compat derivation maps body →
475
+ * systemPromptAppend, so read-modify-write through the profile API always
476
+ * carries the current body. `options.directory` redirects the write to a
477
+ * project agents dir; `options.extras` (when provided) set-or-clear the
478
+ * subagent/delegation keys the profile model does not carry.
479
+ */
480
+ export function writeAgentProfileMarkdown(profile, homeDir, options = {}) {
481
+ const dir = options.directory ?? agentDefinitionsDir(homeDir);
482
+ mkdirSync(dir, { recursive: true });
483
+ const existing = findDefinitionFileByName(dir, profile.name);
484
+ let fields = {};
485
+ const body = profile.systemPromptAppend?.trim() || '';
486
+ if (existing) {
487
+ const parsed = parseMarkdownFrontmatter(readFileSync(existing, 'utf8'));
488
+ fields = { ...parsed.frontmatter };
489
+ }
490
+ for (const [key, value] of Object.entries(profileToMarkdownFields(profile))) {
491
+ if (formatFrontmatterValue(value) === undefined)
492
+ delete fields[key];
493
+ else
494
+ fields[key] = value;
495
+ }
496
+ if (options.extras) {
497
+ for (const [key, value] of Object.entries(formatDelegationExtras(options.extras))) {
498
+ if (formatFrontmatterValue(value) === undefined)
499
+ delete fields[key];
500
+ else
501
+ fields[key] = value;
502
+ }
503
+ }
504
+ const finalBody = body || 'No additional instructions.';
505
+ if (!fields.description) {
506
+ fields.description = firstBodyLine(finalBody) ?? profile.name;
507
+ }
508
+ const filePath = existing ?? path.join(dir, `${profile.name}.md`);
509
+ writeFileSync(filePath, serializeAgentDefinitionMarkdown(fields, finalBody), 'utf8');
510
+ return filePath;
511
+ }
512
+ /** Write-through delete (migrated store): remove the definition's .md file. */
513
+ export function deleteAgentProfileMarkdown(name, homeDir, directory) {
514
+ const dir = directory ?? agentDefinitionsDir(homeDir);
515
+ const existing = findDefinitionFileByName(dir, name);
516
+ if (!existing)
517
+ return false;
518
+ unlinkSync(existing);
519
+ return true;
520
+ }
521
+ /**
522
+ * Bulk write-through (migrated store): upsert every profile, then remove
523
+ * profile-backed .md files whose name is absent from the store (a rename
524
+ * leaves no stale file). Pure-subagent .md files (no bridgeConfig) are kept.
525
+ */
526
+ export function writeAgentProfilesMarkdown(profiles, homeDir) {
527
+ const dir = agentDefinitionsDir(homeDir);
528
+ for (const profile of profiles) {
529
+ writeAgentProfileMarkdown(profile, homeDir);
530
+ }
531
+ const keep = new Set(profiles.map(profile => profile.name));
532
+ for (const filePath of listMarkdownFiles(dir)) {
533
+ const name = definitionNameForFile(filePath);
534
+ if (!name || keep.has(name))
535
+ continue;
536
+ if (tryParseDefinition(filePath)?.bridgeConfig)
537
+ unlinkSync(filePath);
538
+ }
539
+ }
540
+ //# sourceMappingURL=agentDefinitionMigration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentDefinitionMigration.js","sourceRoot":"","sources":["../../../src/config/agentDefinitionMigration.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,10 @@ export interface AgentProfile {
6
6
  bridgeConfig: string;
7
7
  model: string;
8
8
  systemPromptAppend?: string;
9
+ /** `extend` appends Agent instructions; `replace` replaces the caller prompt. */
10
+ promptMode?: 'extend' | 'replace';
11
+ /** False makes the Agent main-chat-only and unavailable to Agent/Task delegation. */
12
+ subagent?: boolean;
9
13
  permissionMode?: HadamardPermissionMode;
10
14
  /** Preferred effort for this agent; omit to keep session/default effort. */
11
15
  effort?: HadamardRunEffort;
@@ -15,6 +19,14 @@ export interface AgentProfile {
15
19
  temperature?: number;
16
20
  /** Optional nucleus sampling override for this agent (0-1). */
17
21
  topP?: number;
22
+ /** Core-tool whitelist for runs under this agent. Absent → full toolset. */
23
+ allowedTools?: string[];
24
+ /** `workspace` (default): project workspace only; `full`: unrestricted filesystem. */
25
+ workspaceAccess?: 'workspace' | 'full';
26
+ /** ReAct tool-iteration cap. Omit or ≤0 = unlimited. */
27
+ maxIterations?: number;
28
+ /** Run timeout (ms). Omit → no profile-level timeout. */
29
+ timeoutMs?: number;
18
30
  }
19
31
  export interface PersistedAgentProfiles {
20
32
  version: 1;
@@ -68,10 +80,17 @@ export interface SelectableAgent {
68
80
  description?: string;
69
81
  permissionMode?: HadamardPermissionMode;
70
82
  systemPromptAppend?: string;
83
+ promptMode?: 'extend' | 'replace';
84
+ subagent?: boolean;
71
85
  effort?: HadamardRunEffort;
72
86
  maxTokens?: number;
73
87
  temperature?: number;
74
88
  topP?: number;
89
+ /** Core-tool whitelist for runs under this agent (P2). */
90
+ allowedTools?: string[];
91
+ workspaceAccess?: 'workspace' | 'full';
92
+ maxIterations?: number;
93
+ timeoutMs?: number;
75
94
  /** True when this entry was synthesized and is not stored in agent-configs.json. */
76
95
  ephemeral?: boolean;
77
96
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agentProfiles.d.ts","sourceRoot":"","sources":["../../../src/config/agentProfiles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agentProfiles.d.ts","sourceRoot":"","sources":["../../../src/config/agentProfiles.ts"],"names":[],"mappings":"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"}