@marifold/core 0.60.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 (310) hide show
  1. package/LICENSE +674 -0
  2. package/dist/agent/AgentEvents.d.ts +106 -0
  3. package/dist/agent/AgentEvents.d.ts.map +1 -0
  4. package/dist/agent/AgentEvents.js +3 -0
  5. package/dist/agent/AgentEvents.js.map +1 -0
  6. package/dist/agent/AgentHistory.d.ts +27 -0
  7. package/dist/agent/AgentHistory.d.ts.map +1 -0
  8. package/dist/agent/AgentHistory.js +42 -0
  9. package/dist/agent/AgentHistory.js.map +1 -0
  10. package/dist/agent/AgentRunner.d.ts +149 -0
  11. package/dist/agent/AgentRunner.d.ts.map +1 -0
  12. package/dist/agent/AgentRunner.js +727 -0
  13. package/dist/agent/AgentRunner.js.map +1 -0
  14. package/dist/agent/ApprovalPolicy.d.ts +71 -0
  15. package/dist/agent/ApprovalPolicy.d.ts.map +1 -0
  16. package/dist/agent/ApprovalPolicy.js +29 -0
  17. package/dist/agent/ApprovalPolicy.js.map +1 -0
  18. package/dist/agent/ControlBlockTools.d.ts +9 -0
  19. package/dist/agent/ControlBlockTools.d.ts.map +1 -0
  20. package/dist/agent/ControlBlockTools.js +49 -0
  21. package/dist/agent/ControlBlockTools.js.map +1 -0
  22. package/dist/agent/RunWorkspace.d.ts +92 -0
  23. package/dist/agent/RunWorkspace.d.ts.map +1 -0
  24. package/dist/agent/RunWorkspace.js +328 -0
  25. package/dist/agent/RunWorkspace.js.map +1 -0
  26. package/dist/agent/ScopedProcess.d.ts +35 -0
  27. package/dist/agent/ScopedProcess.d.ts.map +1 -0
  28. package/dist/agent/ScopedProcess.js +280 -0
  29. package/dist/agent/ScopedProcess.js.map +1 -0
  30. package/dist/agent/ToolRegistry.d.ts +80 -0
  31. package/dist/agent/ToolRegistry.d.ts.map +1 -0
  32. package/dist/agent/ToolRegistry.js +45 -0
  33. package/dist/agent/ToolRegistry.js.map +1 -0
  34. package/dist/agent/UserInput.d.ts +59 -0
  35. package/dist/agent/UserInput.d.ts.map +1 -0
  36. package/dist/agent/UserInput.js +203 -0
  37. package/dist/agent/UserInput.js.map +1 -0
  38. package/dist/agent/tools/AskUserTool.d.ts +71 -0
  39. package/dist/agent/tools/AskUserTool.d.ts.map +1 -0
  40. package/dist/agent/tools/AskUserTool.js +70 -0
  41. package/dist/agent/tools/AskUserTool.js.map +1 -0
  42. package/dist/agent/tools/DelegateTool.d.ts +49 -0
  43. package/dist/agent/tools/DelegateTool.d.ts.map +1 -0
  44. package/dist/agent/tools/DelegateTool.js +62 -0
  45. package/dist/agent/tools/DelegateTool.js.map +1 -0
  46. package/dist/agent/tools/InspectAttachmentTool.d.ts +25 -0
  47. package/dist/agent/tools/InspectAttachmentTool.d.ts.map +1 -0
  48. package/dist/agent/tools/InspectAttachmentTool.js +129 -0
  49. package/dist/agent/tools/InspectAttachmentTool.js.map +1 -0
  50. package/dist/agent/tools/PythonPackageTool.d.ts +26 -0
  51. package/dist/agent/tools/PythonPackageTool.d.ts.map +1 -0
  52. package/dist/agent/tools/PythonPackageTool.js +105 -0
  53. package/dist/agent/tools/PythonPackageTool.js.map +1 -0
  54. package/dist/agent/tools/ReadFileTool.d.ts +24 -0
  55. package/dist/agent/tools/ReadFileTool.d.ts.map +1 -0
  56. package/dist/agent/tools/ReadFileTool.js +112 -0
  57. package/dist/agent/tools/ReadFileTool.js.map +1 -0
  58. package/dist/agent/tools/ShellExecTool.d.ts +23 -0
  59. package/dist/agent/tools/ShellExecTool.d.ts.map +1 -0
  60. package/dist/agent/tools/ShellExecTool.js +75 -0
  61. package/dist/agent/tools/ShellExecTool.js.map +1 -0
  62. package/dist/agent/tools/WebSearchTool.d.ts +26 -0
  63. package/dist/agent/tools/WebSearchTool.d.ts.map +1 -0
  64. package/dist/agent/tools/WebSearchTool.js +52 -0
  65. package/dist/agent/tools/WebSearchTool.js.map +1 -0
  66. package/dist/agent/tools/WriteFileTool.d.ts +30 -0
  67. package/dist/agent/tools/WriteFileTool.d.ts.map +1 -0
  68. package/dist/agent/tools/WriteFileTool.js +155 -0
  69. package/dist/agent/tools/WriteFileTool.js.map +1 -0
  70. package/dist/app/AppActionResolver.d.ts +15 -0
  71. package/dist/app/AppActionResolver.d.ts.map +1 -0
  72. package/dist/app/AppActionResolver.js +98 -0
  73. package/dist/app/AppActionResolver.js.map +1 -0
  74. package/dist/app/AppSchema.d.ts +83 -0
  75. package/dist/app/AppSchema.d.ts.map +1 -0
  76. package/dist/app/AppSchema.js +17 -0
  77. package/dist/app/AppSchema.js.map +1 -0
  78. package/dist/app/AppStore.d.ts +14 -0
  79. package/dist/app/AppStore.d.ts.map +1 -0
  80. package/dist/app/AppStore.js +146 -0
  81. package/dist/app/AppStore.js.map +1 -0
  82. package/dist/app/AppValidator.d.ts +10 -0
  83. package/dist/app/AppValidator.d.ts.map +1 -0
  84. package/dist/app/AppValidator.js +503 -0
  85. package/dist/app/AppValidator.js.map +1 -0
  86. package/dist/app/SkillAppCompiler.d.ts +5 -0
  87. package/dist/app/SkillAppCompiler.d.ts.map +1 -0
  88. package/dist/app/SkillAppCompiler.js +632 -0
  89. package/dist/app/SkillAppCompiler.js.map +1 -0
  90. package/dist/app/SkillAppDsl.d.ts +93 -0
  91. package/dist/app/SkillAppDsl.d.ts.map +1 -0
  92. package/dist/app/SkillAppDsl.js +72 -0
  93. package/dist/app/SkillAppDsl.js.map +1 -0
  94. package/dist/app/SkillAppInstanceRegistry.d.ts +25 -0
  95. package/dist/app/SkillAppInstanceRegistry.d.ts.map +1 -0
  96. package/dist/app/SkillAppInstanceRegistry.js +218 -0
  97. package/dist/app/SkillAppInstanceRegistry.js.map +1 -0
  98. package/dist/app/SkillAppResolver.d.ts +12 -0
  99. package/dist/app/SkillAppResolver.d.ts.map +1 -0
  100. package/dist/app/SkillAppResolver.js +89 -0
  101. package/dist/app/SkillAppResolver.js.map +1 -0
  102. package/dist/app/SkillAppSchema.d.ts +116 -0
  103. package/dist/app/SkillAppSchema.d.ts.map +1 -0
  104. package/dist/app/SkillAppSchema.js +5 -0
  105. package/dist/app/SkillAppSchema.js.map +1 -0
  106. package/dist/channels/TelegramBridge.d.ts +103 -0
  107. package/dist/channels/TelegramBridge.d.ts.map +1 -0
  108. package/dist/channels/TelegramBridge.js +565 -0
  109. package/dist/channels/TelegramBridge.js.map +1 -0
  110. package/dist/channels/respond.d.ts +46 -0
  111. package/dist/channels/respond.d.ts.map +1 -0
  112. package/dist/channels/respond.js +41 -0
  113. package/dist/channels/respond.js.map +1 -0
  114. package/dist/config/ChatGptTokenRefresh.d.ts +18 -0
  115. package/dist/config/ChatGptTokenRefresh.d.ts.map +1 -0
  116. package/dist/config/ChatGptTokenRefresh.js +63 -0
  117. package/dist/config/ChatGptTokenRefresh.js.map +1 -0
  118. package/dist/config/ConfigBackup.d.ts +20 -0
  119. package/dist/config/ConfigBackup.d.ts.map +1 -0
  120. package/dist/config/ConfigBackup.js +197 -0
  121. package/dist/config/ConfigBackup.js.map +1 -0
  122. package/dist/config/ConfigLoader.d.ts +28 -0
  123. package/dist/config/ConfigLoader.d.ts.map +1 -0
  124. package/dist/config/ConfigLoader.js +335 -0
  125. package/dist/config/ConfigLoader.js.map +1 -0
  126. package/dist/config/ConfigManager.d.ts +55 -0
  127. package/dist/config/ConfigManager.d.ts.map +1 -0
  128. package/dist/config/ConfigManager.js +707 -0
  129. package/dist/config/ConfigManager.js.map +1 -0
  130. package/dist/config/ConfigSchema.d.ts +231 -0
  131. package/dist/config/ConfigSchema.d.ts.map +1 -0
  132. package/dist/config/ConfigSchema.js +15 -0
  133. package/dist/config/ConfigSchema.js.map +1 -0
  134. package/dist/config/GitHubCopilotAuth.d.ts +7 -0
  135. package/dist/config/GitHubCopilotAuth.d.ts.map +1 -0
  136. package/dist/config/GitHubCopilotAuth.js +40 -0
  137. package/dist/config/GitHubCopilotAuth.js.map +1 -0
  138. package/dist/config/MarifoldOpenAICompatProvider.d.ts +39 -0
  139. package/dist/config/MarifoldOpenAICompatProvider.d.ts.map +1 -0
  140. package/dist/config/MarifoldOpenAICompatProvider.js +158 -0
  141. package/dist/config/MarifoldOpenAICompatProvider.js.map +1 -0
  142. package/dist/config/OpenAICompatUrls.d.ts +7 -0
  143. package/dist/config/OpenAICompatUrls.d.ts.map +1 -0
  144. package/dist/config/OpenAICompatUrls.js +47 -0
  145. package/dist/config/OpenAICompatUrls.js.map +1 -0
  146. package/dist/config/ProviderFactory.d.ts +12 -0
  147. package/dist/config/ProviderFactory.d.ts.map +1 -0
  148. package/dist/config/ProviderFactory.js +61 -0
  149. package/dist/config/ProviderFactory.js.map +1 -0
  150. package/dist/config/ProviderInspector.d.ts +46 -0
  151. package/dist/config/ProviderInspector.d.ts.map +1 -0
  152. package/dist/config/ProviderInspector.js +356 -0
  153. package/dist/config/ProviderInspector.js.map +1 -0
  154. package/dist/config/ProviderRegistry.d.ts +19 -0
  155. package/dist/config/ProviderRegistry.d.ts.map +1 -0
  156. package/dist/config/ProviderRegistry.js +301 -0
  157. package/dist/config/ProviderRegistry.js.map +1 -0
  158. package/dist/config/XaiTokenRefresh.d.ts +15 -0
  159. package/dist/config/XaiTokenRefresh.d.ts.map +1 -0
  160. package/dist/config/XaiTokenRefresh.js +73 -0
  161. package/dist/config/XaiTokenRefresh.js.map +1 -0
  162. package/dist/errors/MarifoldError.d.ts +34 -0
  163. package/dist/errors/MarifoldError.d.ts.map +1 -0
  164. package/dist/errors/MarifoldError.js +100 -0
  165. package/dist/errors/MarifoldError.js.map +1 -0
  166. package/dist/images/ImageOptimizer.d.ts +34 -0
  167. package/dist/images/ImageOptimizer.d.ts.map +1 -0
  168. package/dist/images/ImageOptimizer.js +225 -0
  169. package/dist/images/ImageOptimizer.js.map +1 -0
  170. package/dist/index.d.ts +96 -0
  171. package/dist/index.d.ts.map +1 -0
  172. package/dist/index.js +193 -0
  173. package/dist/index.js.map +1 -0
  174. package/dist/memory/MemoryControls.d.ts +26 -0
  175. package/dist/memory/MemoryControls.d.ts.map +1 -0
  176. package/dist/memory/MemoryControls.js +388 -0
  177. package/dist/memory/MemoryControls.js.map +1 -0
  178. package/dist/memory/MemoryStore.d.ts +122 -0
  179. package/dist/memory/MemoryStore.d.ts.map +1 -0
  180. package/dist/memory/MemoryStore.js +1096 -0
  181. package/dist/memory/MemoryStore.js.map +1 -0
  182. package/dist/profiles/ProfileManager.d.ts +139 -0
  183. package/dist/profiles/ProfileManager.d.ts.map +1 -0
  184. package/dist/profiles/ProfileManager.js +475 -0
  185. package/dist/profiles/ProfileManager.js.map +1 -0
  186. package/dist/profiles/ProfileResolver.d.ts +18 -0
  187. package/dist/profiles/ProfileResolver.d.ts.map +1 -0
  188. package/dist/profiles/ProfileResolver.js +280 -0
  189. package/dist/profiles/ProfileResolver.js.map +1 -0
  190. package/dist/runs/RunRegistry.d.ts +140 -0
  191. package/dist/runs/RunRegistry.d.ts.map +1 -0
  192. package/dist/runs/RunRegistry.js +432 -0
  193. package/dist/runs/RunRegistry.js.map +1 -0
  194. package/dist/runtime/MarifoldRuntime.d.ts +244 -0
  195. package/dist/runtime/MarifoldRuntime.d.ts.map +1 -0
  196. package/dist/runtime/MarifoldRuntime.js +1099 -0
  197. package/dist/runtime/MarifoldRuntime.js.map +1 -0
  198. package/dist/runtime/MarifoldTypes.d.ts +70 -0
  199. package/dist/runtime/MarifoldTypes.d.ts.map +1 -0
  200. package/dist/runtime/MarifoldTypes.js +3 -0
  201. package/dist/runtime/MarifoldTypes.js.map +1 -0
  202. package/dist/schedule/ScheduleStore.d.ts +60 -0
  203. package/dist/schedule/ScheduleStore.d.ts.map +1 -0
  204. package/dist/schedule/ScheduleStore.js +212 -0
  205. package/dist/schedule/ScheduleStore.js.map +1 -0
  206. package/dist/schedule/Scheduler.d.ts +28 -0
  207. package/dist/schedule/Scheduler.d.ts.map +1 -0
  208. package/dist/schedule/Scheduler.js +65 -0
  209. package/dist/schedule/Scheduler.js.map +1 -0
  210. package/dist/search/DuckDuckGoBackend.d.ts +18 -0
  211. package/dist/search/DuckDuckGoBackend.d.ts.map +1 -0
  212. package/dist/search/DuckDuckGoBackend.js +37 -0
  213. package/dist/search/DuckDuckGoBackend.js.map +1 -0
  214. package/dist/search/FirecrawlBackend.d.ts +28 -0
  215. package/dist/search/FirecrawlBackend.d.ts.map +1 -0
  216. package/dist/search/FirecrawlBackend.js +76 -0
  217. package/dist/search/FirecrawlBackend.js.map +1 -0
  218. package/dist/search/SearchBackend.d.ts +18 -0
  219. package/dist/search/SearchBackend.d.ts.map +1 -0
  220. package/dist/search/SearchBackend.js +24 -0
  221. package/dist/search/SearchBackend.js.map +1 -0
  222. package/dist/search/createSearchBackend.d.ts +16 -0
  223. package/dist/search/createSearchBackend.d.ts.map +1 -0
  224. package/dist/search/createSearchBackend.js +30 -0
  225. package/dist/search/createSearchBackend.js.map +1 -0
  226. package/dist/sessions/ResponseMetrics.d.ts +17 -0
  227. package/dist/sessions/ResponseMetrics.d.ts.map +1 -0
  228. package/dist/sessions/ResponseMetrics.js +3 -0
  229. package/dist/sessions/ResponseMetrics.js.map +1 -0
  230. package/dist/sessions/SessionResolver.d.ts +135 -0
  231. package/dist/sessions/SessionResolver.d.ts.map +1 -0
  232. package/dist/sessions/SessionResolver.js +1173 -0
  233. package/dist/sessions/SessionResolver.js.map +1 -0
  234. package/dist/skill/BuiltInSkillManager.d.ts +11 -0
  235. package/dist/skill/BuiltInSkillManager.d.ts.map +1 -0
  236. package/dist/skill/BuiltInSkillManager.js +98 -0
  237. package/dist/skill/BuiltInSkillManager.js.map +1 -0
  238. package/dist/skill/SkillInvocation.d.ts +30 -0
  239. package/dist/skill/SkillInvocation.d.ts.map +1 -0
  240. package/dist/skill/SkillInvocation.js +135 -0
  241. package/dist/skill/SkillInvocation.js.map +1 -0
  242. package/dist/skill/SkillSchema.d.ts +37 -0
  243. package/dist/skill/SkillSchema.d.ts.map +1 -0
  244. package/dist/skill/SkillSchema.js +26 -0
  245. package/dist/skill/SkillSchema.js.map +1 -0
  246. package/dist/skill/SkillStore.d.ts +41 -0
  247. package/dist/skill/SkillStore.d.ts.map +1 -0
  248. package/dist/skill/SkillStore.js +184 -0
  249. package/dist/skill/SkillStore.js.map +1 -0
  250. package/dist/skill/SkillTemplater.d.ts +19 -0
  251. package/dist/skill/SkillTemplater.d.ts.map +1 -0
  252. package/dist/skill/SkillTemplater.js +36 -0
  253. package/dist/skill/SkillTemplater.js.map +1 -0
  254. package/dist/skill/SkillValidator.d.ts +10 -0
  255. package/dist/skill/SkillValidator.d.ts.map +1 -0
  256. package/dist/skill/SkillValidator.js +131 -0
  257. package/dist/skill/SkillValidator.js.map +1 -0
  258. package/dist/skill/SkillVars.d.ts +10 -0
  259. package/dist/skill/SkillVars.d.ts.map +1 -0
  260. package/dist/skill/SkillVars.js +65 -0
  261. package/dist/skill/SkillVars.js.map +1 -0
  262. package/dist/skill/index.d.ts +10 -0
  263. package/dist/skill/index.d.ts.map +1 -0
  264. package/dist/skill/index.js +22 -0
  265. package/dist/skill/index.js.map +1 -0
  266. package/dist/skillapp/SkillAppActionResolver.d.ts +13 -0
  267. package/dist/skillapp/SkillAppActionResolver.d.ts.map +1 -0
  268. package/dist/skillapp/SkillAppActionResolver.js +95 -0
  269. package/dist/skillapp/SkillAppActionResolver.js.map +1 -0
  270. package/dist/skillapp/SkillAppSchema.d.ts +79 -0
  271. package/dist/skillapp/SkillAppSchema.d.ts.map +1 -0
  272. package/dist/skillapp/SkillAppSchema.js +20 -0
  273. package/dist/skillapp/SkillAppSchema.js.map +1 -0
  274. package/dist/skillapp/SkillAppStore.d.ts +11 -0
  275. package/dist/skillapp/SkillAppStore.d.ts.map +1 -0
  276. package/dist/skillapp/SkillAppStore.js +98 -0
  277. package/dist/skillapp/SkillAppStore.js.map +1 -0
  278. package/dist/skillapp/SkillAppValidator.d.ts +10 -0
  279. package/dist/skillapp/SkillAppValidator.d.ts.map +1 -0
  280. package/dist/skillapp/SkillAppValidator.js +522 -0
  281. package/dist/skillapp/SkillAppValidator.js.map +1 -0
  282. package/dist/tasks/TaskStore.d.ts +110 -0
  283. package/dist/tasks/TaskStore.d.ts.map +1 -0
  284. package/dist/tasks/TaskStore.js +371 -0
  285. package/dist/tasks/TaskStore.js.map +1 -0
  286. package/dist/util/fetchRetry.d.ts +11 -0
  287. package/dist/util/fetchRetry.d.ts.map +1 -0
  288. package/dist/util/fetchRetry.js +48 -0
  289. package/dist/util/fetchRetry.js.map +1 -0
  290. package/dist/util/idToken.d.ts +12 -0
  291. package/dist/util/idToken.d.ts.map +1 -0
  292. package/dist/util/idToken.js +32 -0
  293. package/dist/util/idToken.js.map +1 -0
  294. package/dist/util/proxy.d.ts +18 -0
  295. package/dist/util/proxy.d.ts.map +1 -0
  296. package/dist/util/proxy.js +28 -0
  297. package/dist/util/proxy.js.map +1 -0
  298. package/dist/workspace/Workspace.d.ts +9 -0
  299. package/dist/workspace/Workspace.d.ts.map +1 -0
  300. package/dist/workspace/Workspace.js +55 -0
  301. package/dist/workspace/Workspace.js.map +1 -0
  302. package/dist/workspace/WorkspaceInitializer.d.ts +40 -0
  303. package/dist/workspace/WorkspaceInitializer.d.ts.map +1 -0
  304. package/dist/workspace/WorkspaceInitializer.js +212 -0
  305. package/dist/workspace/WorkspaceInitializer.js.map +1 -0
  306. package/dist/workspace/WorkspacePaths.d.ts +11 -0
  307. package/dist/workspace/WorkspacePaths.d.ts.map +1 -0
  308. package/dist/workspace/WorkspacePaths.js +82 -0
  309. package/dist/workspace/WorkspacePaths.js.map +1 -0
  310. package/package.json +36 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScopedProcess.js","sourceRoot":"","sources":["../../src/agent/ScopedProcess.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ import { ImageInput, JSONValue, ToolDefinition } from '@priest-ai/core';
2
+ import { ToolKind } from './ApprovalPolicy';
3
+ import type { RunWorkspace } from './RunWorkspace';
4
+ import type { UserInputRequest, UserInputResponse, UserInputSubmission } from './UserInput';
5
+ export type AgentToolKind = ToolKind | 'interaction';
6
+ export interface ToolExecutionContext {
7
+ /** Working directory the run was started from. Filesystem tools resolve
8
+ * relative paths against it and treat it as the workspace boundary. */
9
+ cwd: string;
10
+ /** Extra absolute folders trusted for file writes (outside the workspace).
11
+ * In-home entries auto-approve writes; external entries still prompt. */
12
+ trustedFolders?: string[];
13
+ /** Per-run filesystem/process capability set. Shell execution fails closed
14
+ * when this is absent instead of falling back to unrestricted host access. */
15
+ workspace?: RunWorkspace;
16
+ signal?: AbortSignal;
17
+ /** Cap applied to tool output before it is returned to the model. */
18
+ outputLimit: number;
19
+ }
20
+ export interface ToolExecutionResult {
21
+ /** Output returned to the model. */
22
+ content: string;
23
+ /** Images made visible to the next model iteration by an attachment tool.
24
+ * They remain turn-local and are not embedded in the textual tool result. */
25
+ images?: ImageInput[];
26
+ /** Short human-readable outcome for event rendering, e.g. "1.2KB read". */
27
+ summary?: string;
28
+ isError?: boolean;
29
+ }
30
+ export interface ToolRiskAssessment {
31
+ /** Hard policy denial. Unlike escalation, the user cannot approve this call. */
32
+ blocked?: boolean;
33
+ /** True forces interactive approval even when policy says allow. */
34
+ escalate: boolean;
35
+ reason?: string;
36
+ /** True when the call targets a narrowly pre-authorized capability (for
37
+ * example an uploaded attachment or eligible in-home trusted folder) and is
38
+ * auto-approved regardless of the tool kind's approval mode. */
39
+ trusted?: boolean;
40
+ /** Absolute target path of an escalated file call, so a client can offer to
41
+ * trust its folder. */
42
+ targetPath?: string;
43
+ /** False hides/rejects persistent "always"/"trust" actions. Used for host
44
+ * paths outside $HOME and other capabilities that must be approved afresh. */
45
+ persistable?: boolean;
46
+ }
47
+ export interface AgentTool {
48
+ definition: ToolDefinition;
49
+ kind: ToolKind;
50
+ /** One-line human description of a specific call, shown in events and
51
+ * approval prompts, e.g. "write 2.1KB to ./notes.md". */
52
+ summarizeCall(input: Record<string, JSONValue>): string;
53
+ /** Flag calls that exceed the tool kind's normal risk (e.g. writes outside
54
+ * the workspace). Escalated calls always require interactive approval. */
55
+ assessRisk?(input: Record<string, JSONValue>, ctx: ToolExecutionContext): ToolRiskAssessment;
56
+ execute(input: Record<string, JSONValue>, ctx: ToolExecutionContext): Promise<ToolExecutionResult>;
57
+ }
58
+ export type EffectfulAgentTool = AgentTool;
59
+ export interface UserInputAgentTool {
60
+ definition: ToolDefinition;
61
+ kind: 'interaction';
62
+ summarizeCall(input: Record<string, JSONValue>): string;
63
+ createRequest(callId: string, input: Record<string, JSONValue>): UserInputRequest;
64
+ resolveResponse(request: UserInputRequest, submission: UserInputSubmission): UserInputResponse;
65
+ formatResponse(response: UserInputResponse): string;
66
+ }
67
+ export type RegisteredAgentTool = AgentTool | UserInputAgentTool;
68
+ export declare class ToolRegistry {
69
+ private readonly tools;
70
+ register(tool: RegisteredAgentTool): void;
71
+ get(name: string): RegisteredAgentTool | undefined;
72
+ list(): RegisteredAgentTool[];
73
+ definitions(): ToolDefinition[];
74
+ }
75
+ /** Truncate tool output to the configured limit, keeping head AND tail so the
76
+ * end of an output (often where the result/error lives) survives — more useful
77
+ * to the agent than head-only when a large read/shell output is capped. */
78
+ export declare function capToolOutput(content: string, limit: number): string;
79
+ export declare function requireStringInput(input: Record<string, JSONValue>, key: string, tool: string): string;
80
+ //# sourceMappingURL=ToolRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolRegistry.d.ts","sourceRoot":"","sources":["../../src/agent/ToolRegistry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ToolRegistry = void 0;
4
+ exports.capToolOutput = capToolOutput;
5
+ exports.requireStringInput = requireStringInput;
6
+ const MarifoldError_1 = require("../errors/MarifoldError");
7
+ class ToolRegistry {
8
+ tools = new Map();
9
+ register(tool) {
10
+ if (this.tools.has(tool.definition.name)) {
11
+ throw MarifoldError_1.MarifoldError.agentToolInvalid(`Agent tool '${tool.definition.name}' is already registered.`, tool.definition.name);
12
+ }
13
+ this.tools.set(tool.definition.name, tool);
14
+ }
15
+ get(name) {
16
+ return this.tools.get(name);
17
+ }
18
+ list() {
19
+ return [...this.tools.values()];
20
+ }
21
+ definitions() {
22
+ return this.list().map(tool => tool.definition);
23
+ }
24
+ }
25
+ exports.ToolRegistry = ToolRegistry;
26
+ /** Truncate tool output to the configured limit, keeping head AND tail so the
27
+ * end of an output (often where the result/error lives) survives — more useful
28
+ * to the agent than head-only when a large read/shell output is capped. */
29
+ function capToolOutput(content, limit) {
30
+ if (limit <= 0 || content.length <= limit)
31
+ return content;
32
+ const head = Math.ceil(limit * 0.7);
33
+ const tail = limit - head;
34
+ const omitted = content.length - limit;
35
+ const tailPart = tail > 0 ? `\n${content.slice(content.length - tail)}` : '';
36
+ return `${content.slice(0, head)}\n[output truncated — ${omitted} of ${content.length} characters omitted]${tailPart}`;
37
+ }
38
+ function requireStringInput(input, key, tool) {
39
+ const value = input[key];
40
+ if (typeof value !== 'string' || !value.trim()) {
41
+ throw MarifoldError_1.MarifoldError.agentToolInvalid(`Tool '${tool}' requires a non-empty string '${key}' argument.`, tool);
42
+ }
43
+ return value;
44
+ }
45
+ //# sourceMappingURL=ToolRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolRegistry.js","sourceRoot":"","sources":["../../src/agent/ToolRegistry.ts"],"names":[],"mappings":";;;;;AACA,2DAAwD;AAgFxD;IACmB,KAAK,GAAG,IAAI,GAAG,EAA+B,CAAC;IAEhE,QAAQ,CAAC,IAAyB;QAChC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,MAAM,6BAAa,CAAC,gBAAgB,CAAC,eAAe,IAAI,CAAC,UAAU,CAAC,IAAI,0BAA0B,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC5H,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC;CACF;;AAED;;2EAE2E;AAC3E,uBAA8B,OAAe,EAAE,KAAa;IAC1D,IAAI,KAAK,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK;QAAE,OAAO,OAAO,CAAC;IAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;IAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;IACvC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,yBAAyB,OAAO,OAAO,OAAO,CAAC,MAAM,uBAAuB,QAAQ,EAAE,CAAC;AACzH,CAAC;AAED,4BAAmC,KAAgC,EAAE,GAAW,EAAE,IAAY;IAC5F,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAC/C,MAAM,6BAAa,CAAC,gBAAgB,CAAC,SAAS,IAAI,kCAAkC,GAAG,aAAa,EAAE,IAAI,CAAC,CAAC;IAC9G,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,59 @@
1
+ import type { JSONValue } from '@priest-ai/core';
2
+ export declare const MAX_USER_INPUT_QUESTIONS = 3;
3
+ export declare const MAX_USER_INPUT_OPTIONS = 4;
4
+ export declare const MAX_USER_INPUT_CUSTOM_TEXT = 2000;
5
+ export interface UserInputOption {
6
+ id: string;
7
+ label: string;
8
+ description?: string;
9
+ }
10
+ export interface UserInputQuestion {
11
+ id: string;
12
+ question: string;
13
+ header?: string;
14
+ /** When true, clients may select more than one option. Defaults to false. */
15
+ multiple?: boolean;
16
+ options: UserInputOption[];
17
+ }
18
+ export interface UserInputRequest {
19
+ id: string;
20
+ questions: UserInputQuestion[];
21
+ }
22
+ export type UserInputSubmissionAnswer = {
23
+ questionId: string;
24
+ optionId: string;
25
+ optionIds?: never;
26
+ customText?: never;
27
+ } | {
28
+ questionId: string;
29
+ optionId?: never;
30
+ optionIds: string[];
31
+ customText?: string;
32
+ } | {
33
+ questionId: string;
34
+ optionId?: never;
35
+ optionIds?: never;
36
+ customText: string;
37
+ };
38
+ export interface UserInputSubmission {
39
+ answers: UserInputSubmissionAnswer[];
40
+ }
41
+ export interface UserInputAnswer {
42
+ questionId: string;
43
+ value: string;
44
+ optionId?: string;
45
+ optionIds?: string[];
46
+ customText?: string;
47
+ }
48
+ export interface UserInputResponse {
49
+ requestId: string;
50
+ answers: UserInputAnswer[];
51
+ }
52
+ export type UserInputHandler = (request: UserInputRequest) => Promise<UserInputSubmission | undefined>;
53
+ /** Validate the model-authored question payload before any renderer sees it. */
54
+ export declare function parseUserInputRequest(requestId: string, input: Record<string, JSONValue>): UserInputRequest;
55
+ /** Validate client answers against the exact pending request. */
56
+ export declare function normalizeUserInputSubmission(request: UserInputRequest, value: unknown): UserInputSubmission;
57
+ export declare function resolveUserInputResponse(request: UserInputRequest, submission: UserInputSubmission): UserInputResponse;
58
+ export declare function formatUserInputResponse(response: UserInputResponse): string;
59
+ //# sourceMappingURL=UserInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserInput.d.ts","sourceRoot":"","sources":["../../src/agent/UserInput.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,iBAAiB,EAAE,CAAC;CAChC;AAED,MAAM,MAAM,yBAAyB,GACjC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,KAAK,CAAC;IAAC,UAAU,CAAC,EAAE,KAAK,CAAA;CAAE,GAC/E;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAClF;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;IAAC,SAAS,CAAC,EAAE,KAAK,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpF,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,yBAAyB,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAED,MAAM,MAAM,gBAAgB,GAAG,CAC7B,OAAO,EAAE,gBAAgB,KACtB,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAAC;AAI9C,gFAAgF;AAChF,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAC/B,gBAAgB,CAkDlB;AAED,iEAAiE;AACjE,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,OAAO,GACb,mBAAmB,CAoFrB;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,gBAAgB,EACzB,UAAU,EAAE,mBAAmB,GAC9B,iBAAiB,CA6BnB;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,CAK3E"}
@@ -0,0 +1,203 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MAX_USER_INPUT_CUSTOM_TEXT = exports.MAX_USER_INPUT_OPTIONS = exports.MAX_USER_INPUT_QUESTIONS = void 0;
4
+ exports.parseUserInputRequest = parseUserInputRequest;
5
+ exports.normalizeUserInputSubmission = normalizeUserInputSubmission;
6
+ exports.resolveUserInputResponse = resolveUserInputResponse;
7
+ exports.formatUserInputResponse = formatUserInputResponse;
8
+ const MarifoldError_1 = require("../errors/MarifoldError");
9
+ exports.MAX_USER_INPUT_QUESTIONS = 3;
10
+ exports.MAX_USER_INPUT_OPTIONS = 4;
11
+ exports.MAX_USER_INPUT_CUSTOM_TEXT = 2000;
12
+ const ID_PATTERN = /^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$/;
13
+ /** Validate the model-authored question payload before any renderer sees it. */
14
+ function parseUserInputRequest(requestId, input) {
15
+ const rawQuestions = input.questions;
16
+ if (!Array.isArray(rawQuestions)
17
+ || rawQuestions.length < 1
18
+ || rawQuestions.length > exports.MAX_USER_INPUT_QUESTIONS) {
19
+ throw invalid(`ask_user requires between 1 and ${exports.MAX_USER_INPUT_QUESTIONS} questions.`);
20
+ }
21
+ const seenQuestionIds = new Set();
22
+ const questions = rawQuestions.map((raw, index) => {
23
+ const item = record(raw, `questions[${index}]`);
24
+ const id = identifier(item.id, `questions[${index}].id`);
25
+ if (seenQuestionIds.has(id))
26
+ throw invalid(`Duplicate question id '${id}'.`);
27
+ seenQuestionIds.add(id);
28
+ const optionsValue = item.options;
29
+ if (!Array.isArray(optionsValue)
30
+ || optionsValue.length < 2
31
+ || optionsValue.length > exports.MAX_USER_INPUT_OPTIONS) {
32
+ throw invalid(`questions[${index}].options must contain between 2 and ${exports.MAX_USER_INPUT_OPTIONS} choices.`);
33
+ }
34
+ const seenOptionIds = new Set();
35
+ const options = optionsValue.map((rawOption, optionIndex) => {
36
+ const option = record(rawOption, `questions[${index}].options[${optionIndex}]`);
37
+ const optionId = identifier(option.id, `questions[${index}].options[${optionIndex}].id`);
38
+ if (seenOptionIds.has(optionId)) {
39
+ throw invalid(`Duplicate option id '${optionId}' in question '${id}'.`);
40
+ }
41
+ seenOptionIds.add(optionId);
42
+ return {
43
+ id: optionId,
44
+ label: boundedString(option.label, `questions[${index}].options[${optionIndex}].label`, 80),
45
+ ...optionalBoundedString(option.description, `questions[${index}].options[${optionIndex}].description`, 240),
46
+ };
47
+ });
48
+ return {
49
+ id,
50
+ question: boundedString(item.question, `questions[${index}].question`, 500),
51
+ ...optionalBoundedString(item.header, `questions[${index}].header`, 40, 'header'),
52
+ ...optionalTrue(item.multiple, `questions[${index}].multiple`, 'multiple'),
53
+ options,
54
+ };
55
+ });
56
+ return { id: requestId, questions };
57
+ }
58
+ /** Validate client answers against the exact pending request. */
59
+ function normalizeUserInputSubmission(request, value) {
60
+ const body = record(value, 'submission');
61
+ if (!Array.isArray(body.answers))
62
+ throw invalid('answers must be an array.');
63
+ if (body.answers.length !== request.questions.length) {
64
+ throw invalid('Every question requires an answer before submission.');
65
+ }
66
+ const questions = new Map(request.questions.map(question => [question.id, question]));
67
+ const seen = new Set();
68
+ const answers = body.answers.map((raw, index) => {
69
+ const answer = record(raw, `answers[${index}]`);
70
+ const questionId = identifier(answer.questionId, `answers[${index}].questionId`);
71
+ const question = questions.get(questionId);
72
+ if (!question)
73
+ throw invalid(`Unknown question id '${questionId}'.`);
74
+ if (seen.has(questionId))
75
+ throw invalid(`Question '${questionId}' was answered more than once.`);
76
+ seen.add(questionId);
77
+ if (question.multiple) {
78
+ const hasOptionId = answer.optionId !== undefined;
79
+ const hasOptionIds = answer.optionIds !== undefined;
80
+ if (hasOptionId && hasOptionIds) {
81
+ throw invalid(`Answer '${questionId}' cannot provide both optionId and optionIds.`);
82
+ }
83
+ if (hasOptionIds && !Array.isArray(answer.optionIds)) {
84
+ throw invalid(`Answer '${questionId}'.optionIds must be an array.`);
85
+ }
86
+ const optionIds = hasOptionIds
87
+ ? answer.optionIds.map((optionId, optionIndex) => identifier(optionId, `answers[${index}].optionIds[${optionIndex}]`))
88
+ : hasOptionId
89
+ ? [identifier(answer.optionId, `answers[${index}].optionId`)]
90
+ : [];
91
+ if (new Set(optionIds).size !== optionIds.length) {
92
+ throw invalid(`Answer '${questionId}' contains the same option more than once.`);
93
+ }
94
+ for (const optionId of optionIds) {
95
+ if (!question.options.some(option => option.id === optionId)) {
96
+ throw invalid(`Unknown option '${optionId}' for question '${questionId}'.`);
97
+ }
98
+ }
99
+ const customText = answer.customText === undefined
100
+ ? undefined
101
+ : boundedString(answer.customText, `answers[${index}].customText`, exports.MAX_USER_INPUT_CUSTOM_TEXT);
102
+ if (optionIds.length === 0 && customText === undefined) {
103
+ throw invalid(`Answer '${questionId}' must choose at least one option or provide custom text.`);
104
+ }
105
+ return {
106
+ questionId,
107
+ optionIds,
108
+ ...(customText !== undefined ? { customText } : {}),
109
+ };
110
+ }
111
+ if (answer.optionIds !== undefined) {
112
+ throw invalid(`Answer '${questionId}' does not allow multiple options.`);
113
+ }
114
+ const hasOption = typeof answer.optionId === 'string' && answer.optionId.trim().length > 0;
115
+ const hasCustom = typeof answer.customText === 'string' && answer.customText.trim().length > 0;
116
+ if (hasOption === hasCustom) {
117
+ throw invalid(`Answer '${questionId}' must choose one option or provide custom text.`);
118
+ }
119
+ if (hasOption) {
120
+ const optionId = identifier(answer.optionId, `answers[${index}].optionId`);
121
+ if (!question.options.some(option => option.id === optionId)) {
122
+ throw invalid(`Unknown option '${optionId}' for question '${questionId}'.`);
123
+ }
124
+ return { questionId, optionId };
125
+ }
126
+ return {
127
+ questionId,
128
+ customText: boundedString(answer.customText, `answers[${index}].customText`, exports.MAX_USER_INPUT_CUSTOM_TEXT),
129
+ };
130
+ });
131
+ return { answers };
132
+ }
133
+ function resolveUserInputResponse(request, submission) {
134
+ const normalized = normalizeUserInputSubmission(request, submission);
135
+ return {
136
+ requestId: request.id,
137
+ answers: normalized.answers.map(answer => {
138
+ const question = request.questions.find(item => item.id === answer.questionId);
139
+ if (answer.optionIds) {
140
+ const labels = answer.optionIds.map(optionId => question.options.find(item => item.id === optionId).label);
141
+ const values = answer.customText ? [...labels, answer.customText] : labels;
142
+ return {
143
+ questionId: question.id,
144
+ optionIds: answer.optionIds,
145
+ ...(answer.customText ? { customText: answer.customText } : {}),
146
+ value: values.join(', '),
147
+ };
148
+ }
149
+ if (answer.optionId) {
150
+ const option = question.options.find(item => item.id === answer.optionId);
151
+ return { questionId: question.id, optionId: option.id, value: option.label };
152
+ }
153
+ const customText = answer.customText;
154
+ return {
155
+ questionId: question.id,
156
+ customText,
157
+ value: customText,
158
+ };
159
+ }),
160
+ };
161
+ }
162
+ function formatUserInputResponse(response) {
163
+ return [
164
+ 'The user answered the clarification questions:',
165
+ ...response.answers.map(answer => `- ${answer.questionId}: ${answer.value}`),
166
+ ].join('\n');
167
+ }
168
+ function invalid(message) {
169
+ return MarifoldError_1.MarifoldError.agentToolInvalid(message, 'ask_user');
170
+ }
171
+ function record(value, label) {
172
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
173
+ throw invalid(`${label} must be an object.`);
174
+ }
175
+ return value;
176
+ }
177
+ function identifier(value, label) {
178
+ if (typeof value !== 'string' || !ID_PATTERN.test(value)) {
179
+ throw invalid(`${label} must be a stable id using letters, numbers, underscores, or hyphens.`);
180
+ }
181
+ return value;
182
+ }
183
+ function boundedString(value, label, maxLength) {
184
+ if (typeof value !== 'string' || !value.trim())
185
+ throw invalid(`${label} must be a non-empty string.`);
186
+ const normalized = value.trim();
187
+ if (normalized.length > maxLength)
188
+ throw invalid(`${label} must be at most ${maxLength} characters.`);
189
+ return normalized;
190
+ }
191
+ function optionalBoundedString(value, label, maxLength, key = 'description') {
192
+ if (value === undefined)
193
+ return {};
194
+ return { [key]: boundedString(value, label, maxLength) };
195
+ }
196
+ function optionalTrue(value, label, key) {
197
+ if (value === undefined || value === false)
198
+ return {};
199
+ if (value !== true)
200
+ throw invalid(`${label} must be a boolean.`);
201
+ return { [key]: true };
202
+ }
203
+ //# sourceMappingURL=UserInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserInput.js","sourceRoot":"","sources":["../../src/agent/UserInput.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ import type { JSONValue } from '@priest-ai/core';
2
+ import type { UserInputAgentTool } from '../ToolRegistry';
3
+ import { type UserInputRequest, type UserInputResponse, type UserInputSubmission } from '../UserInput';
4
+ export declare class AskUserTool implements UserInputAgentTool {
5
+ readonly kind: 'interaction';
6
+ readonly definition: {
7
+ name: string;
8
+ description: string;
9
+ parameters: {
10
+ type: string;
11
+ properties: {
12
+ questions: {
13
+ type: string;
14
+ minItems: number;
15
+ maxItems: number;
16
+ items: {
17
+ type: string;
18
+ properties: {
19
+ id: {
20
+ type: string;
21
+ description: string;
22
+ };
23
+ header: {
24
+ type: string;
25
+ description: string;
26
+ };
27
+ question: {
28
+ type: string;
29
+ description: string;
30
+ };
31
+ multiple: {
32
+ type: string;
33
+ description: string;
34
+ };
35
+ options: {
36
+ type: string;
37
+ minItems: number;
38
+ maxItems: number;
39
+ items: {
40
+ type: string;
41
+ properties: {
42
+ id: {
43
+ type: string;
44
+ description: string;
45
+ };
46
+ label: {
47
+ type: string;
48
+ description: string;
49
+ };
50
+ description: {
51
+ type: string;
52
+ description: string;
53
+ };
54
+ };
55
+ required: string[];
56
+ };
57
+ };
58
+ };
59
+ required: string[];
60
+ };
61
+ };
62
+ };
63
+ required: string[];
64
+ };
65
+ };
66
+ summarizeCall(input: Record<string, JSONValue>): string;
67
+ createRequest(callId: string, input: Record<string, JSONValue>): UserInputRequest;
68
+ resolveResponse(request: UserInputRequest, submission: UserInputSubmission): UserInputResponse;
69
+ formatResponse(response: UserInputResponse): string;
70
+ }
71
+ //# sourceMappingURL=AskUserTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AskUserTool.d.ts","sourceRoot":"","sources":["../../../src/agent/tools/AskUserTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACzB,MAAM,cAAc,CAAC;AAEtB,qBAAa,WAAY,YAAW,kBAAkB;IACpD,QAAQ,CAAC,IAAI,EAAG,aAAa,CAAU;IACvC,QAAQ,CAAC,UAAU;QACjB,IAAI;QACJ,WAAW;QAOX,UAAU;YACR,IAAI;YACJ,UAAU;gBACR,SAAS;oBACP,IAAI;oBACJ,QAAQ;oBACR,QAAQ;oBACR,KAAK;wBACH,IAAI;wBACJ,UAAU;4BACR,EAAE;gCAAI,IAAI;gCAAY,WAAW;;4BACjC,MAAM;gCAAI,IAAI;gCAAY,WAAW;;4BACrC,QAAQ;gCAAI,IAAI;gCAAY,WAAW;;4BACvC,QAAQ;gCACN,IAAI;gCACJ,WAAW;;4BAEb,OAAO;gCACL,IAAI;gCACJ,QAAQ;gCACR,QAAQ;gCACR,KAAK;oCACH,IAAI;oCACJ,UAAU;wCACR,EAAE;4CAAI,IAAI;4CAAY,WAAW;;wCACjC,KAAK;4CAAI,IAAI;4CAAY,WAAW;;wCACpC,WAAW;4CAAI,IAAI;4CAAY,WAAW;;;oCAE5C,QAAQ;;;;wBAId,QAAQ;;;;YAId,QAAQ;;MAEV;IAEF,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,MAAM,CAGtD;IAED,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,gBAAgB,CAEhF;IAED,eAAe,CAAC,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,mBAAmB,GAAG,iBAAiB,CAE7F;IAED,cAAc,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,CAElD;CACF"}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AskUserTool = void 0;
4
+ const UserInput_1 = require("../UserInput");
5
+ class AskUserTool {
6
+ kind = 'interaction';
7
+ definition = {
8
+ name: 'ask_user',
9
+ description: [
10
+ 'Pause and ask the user for essential missing information using one compact set of choices.',
11
+ 'When to use: a concrete decision blocks safe or correct progress and cannot be discovered from local context or tools.',
12
+ 'When NOT to use: discoverable facts, minor preferences, confirmation of a reasonable assumption, or any question that does not block progress.',
13
+ 'Batch all currently known questions into one call. Set multiple to true only when choices may be combined. Do not add an Other option because the UI provides free-text automatically.',
14
+ 'Call this tool by itself, without other tool calls in the same response.',
15
+ ].join(' '),
16
+ parameters: {
17
+ type: 'object',
18
+ properties: {
19
+ questions: {
20
+ type: 'array',
21
+ minItems: 1,
22
+ maxItems: 3,
23
+ items: {
24
+ type: 'object',
25
+ properties: {
26
+ id: { type: 'string', description: 'Stable short id, such as style or output_format.' },
27
+ header: { type: 'string', description: 'Optional short category label.' },
28
+ question: { type: 'string', description: 'The specific decision the user must make.' },
29
+ multiple: {
30
+ type: 'boolean',
31
+ description: 'True when the user may select more than one option; defaults to false.',
32
+ },
33
+ options: {
34
+ type: 'array',
35
+ minItems: 2,
36
+ maxItems: 4,
37
+ items: {
38
+ type: 'object',
39
+ properties: {
40
+ id: { type: 'string', description: 'Stable short option id.' },
41
+ label: { type: 'string', description: 'Concise user-facing option.' },
42
+ description: { type: 'string', description: 'Optional one-sentence tradeoff.' },
43
+ },
44
+ required: ['id', 'label'],
45
+ },
46
+ },
47
+ },
48
+ required: ['id', 'question', 'options'],
49
+ },
50
+ },
51
+ },
52
+ required: ['questions'],
53
+ },
54
+ };
55
+ summarizeCall(input) {
56
+ const count = Array.isArray(input.questions) ? input.questions.length : 0;
57
+ return `ask the user ${count || '?'} clarification ${count === 1 ? 'question' : 'questions'}`;
58
+ }
59
+ createRequest(callId, input) {
60
+ return (0, UserInput_1.parseUserInputRequest)(callId, input);
61
+ }
62
+ resolveResponse(request, submission) {
63
+ return (0, UserInput_1.resolveUserInputResponse)(request, submission);
64
+ }
65
+ formatResponse(response) {
66
+ return (0, UserInput_1.formatUserInputResponse)(response);
67
+ }
68
+ }
69
+ exports.AskUserTool = AskUserTool;
70
+ //# sourceMappingURL=AskUserTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AskUserTool.js","sourceRoot":"","sources":["../../../src/agent/tools/AskUserTool.ts"],"names":[],"mappings":";;;AAEA,4CAOsB;AAEtB;IACW,IAAI,GAAG,aAAsB,CAAC;IAC9B,UAAU,GAAG;QACpB,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE;YACX,4FAA4F;YAC5F,wHAAwH;YACxH,gJAAgJ;YAChJ,wLAAwL;YACxL,0EAA0E;SAC3E,CAAC,IAAI,CAAC,GAAG,CAAC;QACX,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,OAAO;oBACb,QAAQ,EAAE,CAAC;oBACX,QAAQ,EAAE,CAAC;oBACX,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kDAAkD,EAAE;4BACvF,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE;4BACzE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2CAA2C,EAAE;4BACtF,QAAQ,EAAE;gCACR,IAAI,EAAE,SAAS;gCACf,WAAW,EAAE,wEAAwE;6BACtF;4BACD,OAAO,EAAE;gCACP,IAAI,EAAE,OAAO;gCACb,QAAQ,EAAE,CAAC;gCACX,QAAQ,EAAE,CAAC;gCACX,KAAK,EAAE;oCACL,IAAI,EAAE,QAAQ;oCACd,UAAU,EAAE;wCACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;wCAC9D,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE;wCACrE,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iCAAiC,EAAE;qCAChF;oCACD,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;iCAC1B;6BACF;yBACF;wBACD,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC;qBACxC;iBACF;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,CAAC;SACxB;KACF,CAAC;IAEF,aAAa,CAAC,KAAgC;QAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,OAAO,gBAAgB,KAAK,IAAI,GAAG,kBAAkB,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAChG,CAAC;IAED,aAAa,CAAC,MAAc,EAAE,KAAgC;QAC5D,OAAO,IAAA,iCAAqB,EAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED,eAAe,CAAC,OAAyB,EAAE,UAA+B;QACxE,OAAO,IAAA,oCAAwB,EAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACvD,CAAC;IAED,cAAc,CAAC,QAA2B;QACxC,OAAO,IAAA,mCAAuB,EAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;CACF"}
@@ -0,0 +1,49 @@
1
+ import { JSONValue } from '@priest-ai/core';
2
+ import { AgentTool, ToolExecutionContext, ToolExecutionResult } from '../ToolRegistry';
3
+ export interface DelegateAskRequest {
4
+ prompt: string;
5
+ profile: string;
6
+ }
7
+ export interface DelegateAskResult {
8
+ ok: boolean;
9
+ text: string;
10
+ error?: {
11
+ code: string;
12
+ message: string;
13
+ };
14
+ }
15
+ export interface DelegateToolDeps {
16
+ ask: (request: DelegateAskRequest) => Promise<DelegateAskResult>;
17
+ listProfileNames: () => string[];
18
+ }
19
+ /**
20
+ * Minimal multi-model orchestration: run a one-shot request through another
21
+ * profile (and therefore that profile's provider/model). Delegated requests
22
+ * are plain asks — no tools — so delegation depth is structurally 1.
23
+ */
24
+ export declare class DelegateTool implements AgentTool {
25
+ private readonly deps;
26
+ readonly kind: 'delegate';
27
+ readonly definition: {
28
+ name: string;
29
+ description: string;
30
+ parameters: {
31
+ type: string;
32
+ properties: {
33
+ profile: {
34
+ type: string;
35
+ description: string;
36
+ };
37
+ prompt: {
38
+ type: string;
39
+ description: string;
40
+ };
41
+ };
42
+ required: string[];
43
+ };
44
+ };
45
+ constructor(deps: DelegateToolDeps);
46
+ summarizeCall(input: Record<string, JSONValue>): string;
47
+ execute(input: Record<string, JSONValue>, ctx: ToolExecutionContext): Promise<ToolExecutionResult>;
48
+ }
49
+ //# sourceMappingURL=DelegateTool.d.ts.map