@botbotgo/kit 1.0.104

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 (269) hide show
  1. package/README.md +65 -0
  2. package/config/build/build.sh +182 -0
  3. package/config/build/tsconfig.dts.json +34 -0
  4. package/config/build/tsup.config.ts +19 -0
  5. package/config/build/vitest.config.ts +29 -0
  6. package/config/tool.yaml +11 -0
  7. package/dist/agent-context.d.ts +3 -0
  8. package/dist/agent-context.d.ts.map +1 -0
  9. package/dist/api/adapters/LangChainToolsHub.d.ts +35 -0
  10. package/dist/api/adapters/LangChainToolsHub.d.ts.map +1 -0
  11. package/dist/api/createAgentTools.d.ts +52 -0
  12. package/dist/api/createAgentTools.d.ts.map +1 -0
  13. package/dist/api/expose/extension-init/index.d.ts +3 -0
  14. package/dist/api/expose/extension-init/index.d.ts.map +1 -0
  15. package/dist/api/expose/extension-init/initExtension.d.ts +21 -0
  16. package/dist/api/expose/extension-init/initExtension.d.ts.map +1 -0
  17. package/dist/api/expose/index.d.ts +16 -0
  18. package/dist/api/expose/index.d.ts.map +1 -0
  19. package/dist/api/expose/mcp-build/build.d.ts +21 -0
  20. package/dist/api/expose/mcp-build/build.d.ts.map +1 -0
  21. package/dist/api/expose/mcp-build/generator.d.ts +15 -0
  22. package/dist/api/expose/mcp-build/generator.d.ts.map +1 -0
  23. package/dist/api/expose/mcp-build/index.d.ts +8 -0
  24. package/dist/api/expose/mcp-build/index.d.ts.map +1 -0
  25. package/dist/api/expose/mcp-build/init.d.ts +17 -0
  26. package/dist/api/expose/mcp-build/init.d.ts.map +1 -0
  27. package/dist/api/expose/mcp-build/run.d.ts +17 -0
  28. package/dist/api/expose/mcp-build/run.d.ts.map +1 -0
  29. package/dist/api/expose/mcp-build/types.d.ts +25 -0
  30. package/dist/api/expose/mcp-build/types.d.ts.map +1 -0
  31. package/dist/api/expose/mcpServer.d.ts +74 -0
  32. package/dist/api/expose/mcpServer.d.ts.map +1 -0
  33. package/dist/api/expose/openapi.d.ts +23 -0
  34. package/dist/api/expose/openapi.d.ts.map +1 -0
  35. package/dist/api/expose/openapiHttp.d.ts +51 -0
  36. package/dist/api/expose/openapiHttp.d.ts.map +1 -0
  37. package/dist/api/extension/contextRunner.d.ts +10 -0
  38. package/dist/api/extension/contextRunner.d.ts.map +1 -0
  39. package/dist/api/extension/createExtension.d.ts +38 -0
  40. package/dist/api/extension/createExtension.d.ts.map +1 -0
  41. package/dist/api/extension/dynamicImportAdapter.d.ts +25 -0
  42. package/dist/api/extension/dynamicImportAdapter.d.ts.map +1 -0
  43. package/dist/api/extension/generateExtensionManifest.d.ts +29 -0
  44. package/dist/api/extension/generateExtensionManifest.d.ts.map +1 -0
  45. package/dist/api/extension/index.d.ts +23 -0
  46. package/dist/api/extension/index.d.ts.map +1 -0
  47. package/dist/api/extension/loadToolYaml.d.ts +7 -0
  48. package/dist/api/extension/loadToolYaml.d.ts.map +1 -0
  49. package/dist/api/extension/overrideWithConfig.d.ts +2 -0
  50. package/dist/api/extension/overrideWithConfig.d.ts.map +1 -0
  51. package/dist/api/extension/registerExtension.d.ts +32 -0
  52. package/dist/api/extension/registerExtension.d.ts.map +1 -0
  53. package/dist/api/extension/registerFromManifest.d.ts +43 -0
  54. package/dist/api/extension/registerFromManifest.d.ts.map +1 -0
  55. package/dist/api/extension/resolvePackageRoot.d.ts +2 -0
  56. package/dist/api/extension/resolvePackageRoot.d.ts.map +1 -0
  57. package/dist/api/extension/support/groupPrefix.d.ts +21 -0
  58. package/dist/api/extension/support/groupPrefix.d.ts.map +1 -0
  59. package/dist/api/extension/support/types.d.ts +15 -0
  60. package/dist/api/extension/support/types.d.ts.map +1 -0
  61. package/dist/api/register-tools.d.ts +17 -0
  62. package/dist/api/register-tools.d.ts.map +1 -0
  63. package/dist/api/resolveAgentSkillRoots.d.ts +7 -0
  64. package/dist/api/resolveAgentSkillRoots.d.ts.map +1 -0
  65. package/dist/api/runtimeFromConfig.d.ts +20 -0
  66. package/dist/api/runtimeFromConfig.d.ts.map +1 -0
  67. package/dist/api/runtimeFromConfig.helpers.d.ts +12 -0
  68. package/dist/api/runtimeFromConfig.helpers.d.ts.map +1 -0
  69. package/dist/api/runtimeFromConfig.types.d.ts +37 -0
  70. package/dist/api/runtimeFromConfig.types.d.ts.map +1 -0
  71. package/dist/build.cjs +30 -0
  72. package/dist/build.cjs.map +1 -0
  73. package/dist/build.d.ts +13 -0
  74. package/dist/build.d.ts.map +1 -0
  75. package/dist/build.js +5 -0
  76. package/dist/build.js.map +1 -0
  77. package/dist/canonicalCoreSchemas-PHGTNPN5.js +3 -0
  78. package/dist/canonicalCoreSchemas-PHGTNPN5.js.map +1 -0
  79. package/dist/canonicalCoreSchemas-TY7NCWCC.cjs +16 -0
  80. package/dist/canonicalCoreSchemas-TY7NCWCC.cjs.map +1 -0
  81. package/dist/chunk-4OOTCNR7.js +324 -0
  82. package/dist/chunk-4OOTCNR7.js.map +1 -0
  83. package/dist/chunk-AGLGFQUW.cjs +259 -0
  84. package/dist/chunk-AGLGFQUW.cjs.map +1 -0
  85. package/dist/chunk-AZUXVVGV.cjs +1073 -0
  86. package/dist/chunk-AZUXVVGV.cjs.map +1 -0
  87. package/dist/chunk-BDUSB6GT.js +520 -0
  88. package/dist/chunk-BDUSB6GT.js.map +1 -0
  89. package/dist/chunk-BNIE2IKZ.cjs +100 -0
  90. package/dist/chunk-BNIE2IKZ.cjs.map +1 -0
  91. package/dist/chunk-BTHDNP3C.cjs +350 -0
  92. package/dist/chunk-BTHDNP3C.cjs.map +1 -0
  93. package/dist/chunk-GGFAGLDC.js +1049 -0
  94. package/dist/chunk-GGFAGLDC.js.map +1 -0
  95. package/dist/chunk-ITX6A2BT.js +92 -0
  96. package/dist/chunk-ITX6A2BT.js.map +1 -0
  97. package/dist/chunk-IVL4TBFB.js +248 -0
  98. package/dist/chunk-IVL4TBFB.js.map +1 -0
  99. package/dist/chunk-JW4EMVTE.cjs +553 -0
  100. package/dist/chunk-JW4EMVTE.cjs.map +1 -0
  101. package/dist/chunk-LNVK4GO7.cjs +3043 -0
  102. package/dist/chunk-LNVK4GO7.cjs.map +1 -0
  103. package/dist/chunk-NTWOVFEY.js +16 -0
  104. package/dist/chunk-NTWOVFEY.js.map +1 -0
  105. package/dist/chunk-P5XFA3MW.js +3013 -0
  106. package/dist/chunk-P5XFA3MW.js.map +1 -0
  107. package/dist/chunk-UUNG3GL3.cjs +19 -0
  108. package/dist/chunk-UUNG3GL3.cjs.map +1 -0
  109. package/dist/core/registry/ToolRegistry.d.ts +68 -0
  110. package/dist/core/registry/ToolRegistry.d.ts.map +1 -0
  111. package/dist/core/runtime/Budget.d.ts +63 -0
  112. package/dist/core/runtime/Budget.d.ts.map +1 -0
  113. package/dist/core/runtime/Evidence.d.ts +19 -0
  114. package/dist/core/runtime/Evidence.d.ts.map +1 -0
  115. package/dist/core/runtime/PTCRuntime.d.ts +124 -0
  116. package/dist/core/runtime/PTCRuntime.d.ts.map +1 -0
  117. package/dist/core/runtime/PTCRuntimeObservability.d.ts +26 -0
  118. package/dist/core/runtime/PTCRuntimeObservability.d.ts.map +1 -0
  119. package/dist/core/runtime/PTCRuntimePipeline.d.ts +69 -0
  120. package/dist/core/runtime/PTCRuntimePipeline.d.ts.map +1 -0
  121. package/dist/core/runtime/PolicyEngine.d.ts +67 -0
  122. package/dist/core/runtime/PolicyEngine.d.ts.map +1 -0
  123. package/dist/core/runtime/Retry.d.ts +33 -0
  124. package/dist/core/runtime/Retry.d.ts.map +1 -0
  125. package/dist/core/runtime/SchemaValidator.d.ts +42 -0
  126. package/dist/core/runtime/SchemaValidator.d.ts.map +1 -0
  127. package/dist/core/runtime/toolObservation.d.ts +7 -0
  128. package/dist/core/runtime/toolObservation.d.ts.map +1 -0
  129. package/dist/core/types/Events.d.ts +99 -0
  130. package/dist/core/types/Events.d.ts.map +1 -0
  131. package/dist/core/types/ToolIntent.d.ts +40 -0
  132. package/dist/core/types/ToolIntent.d.ts.map +1 -0
  133. package/dist/core/types/ToolResult.d.ts +44 -0
  134. package/dist/core/types/ToolResult.d.ts.map +1 -0
  135. package/dist/core/types/ToolSpec.d.ts +116 -0
  136. package/dist/core/types/ToolSpec.d.ts.map +1 -0
  137. package/dist/core/types/ToolTypeHandler.d.ts +88 -0
  138. package/dist/core/types/ToolTypeHandler.d.ts.map +1 -0
  139. package/dist/core/types/index.d.ts +7 -0
  140. package/dist/core/types/index.d.ts.map +1 -0
  141. package/dist/index.cjs +399 -0
  142. package/dist/index.cjs.map +1 -0
  143. package/dist/index.d.ts +8 -0
  144. package/dist/index.d.ts.map +1 -0
  145. package/dist/index.js +394 -0
  146. package/dist/index.js.map +1 -0
  147. package/dist/observability/EventLog.d.ts +60 -0
  148. package/dist/observability/EventLog.d.ts.map +1 -0
  149. package/dist/observability/Logger.d.ts +33 -0
  150. package/dist/observability/Logger.d.ts.map +1 -0
  151. package/dist/observability/Metrics.d.ts +70 -0
  152. package/dist/observability/Metrics.d.ts.map +1 -0
  153. package/dist/observability/Tracing.d.ts +69 -0
  154. package/dist/observability/Tracing.d.ts.map +1 -0
  155. package/dist/sdk.cjs +493 -0
  156. package/dist/sdk.cjs.map +1 -0
  157. package/dist/sdk.d.ts +17 -0
  158. package/dist/sdk.d.ts.map +1 -0
  159. package/dist/sdk.js +443 -0
  160. package/dist/sdk.js.map +1 -0
  161. package/dist/security/sandbox.d.ts +10 -0
  162. package/dist/security/sandbox.d.ts.map +1 -0
  163. package/dist/security/ssrf.d.ts +24 -0
  164. package/dist/security/ssrf.d.ts.map +1 -0
  165. package/dist/templates/mcp-server.js +48 -0
  166. package/dist/templates/n8n-invoker.js +11 -0
  167. package/dist/templates/skill-invoker.js +11 -0
  168. package/dist/templates/tool-index.js +9 -0
  169. package/dist/tools/discoveryFactory.d.ts +117 -0
  170. package/dist/tools/discoveryFactory.d.ts.map +1 -0
  171. package/dist/tools/function/index.d.ts +10 -0
  172. package/dist/tools/function/index.d.ts.map +1 -0
  173. package/dist/tools/function/scanner.d.ts +29 -0
  174. package/dist/tools/function/scanner.d.ts.map +1 -0
  175. package/dist/tools/function/schemaFromTs.d.ts +16 -0
  176. package/dist/tools/function/schemaFromTs.d.ts.map +1 -0
  177. package/dist/tools/function/types.d.ts +20 -0
  178. package/dist/tools/function/types.d.ts.map +1 -0
  179. package/dist/tools/index.d.ts +13 -0
  180. package/dist/tools/index.d.ts.map +1 -0
  181. package/dist/tools/langchain/LangChainLoader.d.ts +7 -0
  182. package/dist/tools/langchain/LangChainLoader.d.ts.map +1 -0
  183. package/dist/tools/langchain/directoryApply.d.ts +5 -0
  184. package/dist/tools/langchain/directoryApply.d.ts.map +1 -0
  185. package/dist/tools/langchain/directoryLoad.d.ts +13 -0
  186. package/dist/tools/langchain/directoryLoad.d.ts.map +1 -0
  187. package/dist/tools/langchain/index.d.ts +3 -0
  188. package/dist/tools/langchain/index.d.ts.map +1 -0
  189. package/dist/tools/langchain/scanner.d.ts +8 -0
  190. package/dist/tools/langchain/scanner.d.ts.map +1 -0
  191. package/dist/tools/langchain/types.d.ts +5 -0
  192. package/dist/tools/langchain/types.d.ts.map +1 -0
  193. package/dist/tools/mcp/MCPClientAdapter.d.ts +34 -0
  194. package/dist/tools/mcp/MCPClientAdapter.d.ts.map +1 -0
  195. package/dist/tools/mcp/MCPLoader.d.ts +8 -0
  196. package/dist/tools/mcp/MCPLoader.d.ts.map +1 -0
  197. package/dist/tools/mcp/MCPProcessManager.d.ts +29 -0
  198. package/dist/tools/mcp/MCPProcessManager.d.ts.map +1 -0
  199. package/dist/tools/mcp/connectMCP.d.ts +47 -0
  200. package/dist/tools/mcp/connectMCP.d.ts.map +1 -0
  201. package/dist/tools/mcp/directoryApply.d.ts +10 -0
  202. package/dist/tools/mcp/directoryApply.d.ts.map +1 -0
  203. package/dist/tools/mcp/index.d.ts +16 -0
  204. package/dist/tools/mcp/index.d.ts.map +1 -0
  205. package/dist/tools/mcp/mcpSpecToToolSpec.d.ts +8 -0
  206. package/dist/tools/mcp/mcpSpecToToolSpec.d.ts.map +1 -0
  207. package/dist/tools/mcp/registerMCPTools.d.ts +24 -0
  208. package/dist/tools/mcp/registerMCPTools.d.ts.map +1 -0
  209. package/dist/tools/mcp/scanner.d.ts +8 -0
  210. package/dist/tools/mcp/scanner.d.ts.map +1 -0
  211. package/dist/tools/mcp/support/types.d.ts +3 -0
  212. package/dist/tools/mcp/support/types.d.ts.map +1 -0
  213. package/dist/tools/n8n/N8nLoader.d.ts +25 -0
  214. package/dist/tools/n8n/N8nLoader.d.ts.map +1 -0
  215. package/dist/tools/n8n/directoryApply.d.ts +10 -0
  216. package/dist/tools/n8n/directoryApply.d.ts.map +1 -0
  217. package/dist/tools/n8n/index.d.ts +6 -0
  218. package/dist/tools/n8n/index.d.ts.map +1 -0
  219. package/dist/tools/n8n/scanN8n.d.ts +20 -0
  220. package/dist/tools/n8n/scanN8n.d.ts.map +1 -0
  221. package/dist/tools/n8n/types.d.ts +18 -0
  222. package/dist/tools/n8n/types.d.ts.map +1 -0
  223. package/dist/tools/scanPackage.d.ts +42 -0
  224. package/dist/tools/scanPackage.d.ts.map +1 -0
  225. package/dist/tools/skill/SkillLoader.d.ts +20 -0
  226. package/dist/tools/skill/SkillLoader.d.ts.map +1 -0
  227. package/dist/tools/skill/SkillManifest.d.ts +79 -0
  228. package/dist/tools/skill/SkillManifest.d.ts.map +1 -0
  229. package/dist/tools/skill/SkillMdParser.d.ts +31 -0
  230. package/dist/tools/skill/SkillMdParser.d.ts.map +1 -0
  231. package/dist/tools/skill/directoryApply.d.ts +10 -0
  232. package/dist/tools/skill/directoryApply.d.ts.map +1 -0
  233. package/dist/tools/skill/index.d.ts +8 -0
  234. package/dist/tools/skill/index.d.ts.map +1 -0
  235. package/dist/tools/skill/scanSkill.d.ts +20 -0
  236. package/dist/tools/skill/scanSkill.d.ts.map +1 -0
  237. package/dist/tools/skill/types.d.ts +19 -0
  238. package/dist/tools/skill/types.d.ts.map +1 -0
  239. package/dist/tools/util/canonicalCoreSchemas.d.ts +15 -0
  240. package/dist/tools/util/canonicalCoreSchemas.d.ts.map +1 -0
  241. package/dist/tools/util/index.d.ts +13 -0
  242. package/dist/tools/util/index.d.ts.map +1 -0
  243. package/dist/tools/util/resolveEntry.d.ts +6 -0
  244. package/dist/tools/util/resolveEntry.d.ts.map +1 -0
  245. package/dist/tools/util/scanUtil.d.ts +9 -0
  246. package/dist/tools/util/scanUtil.d.ts.map +1 -0
  247. package/dist/tools/util/toolConfig.d.ts +38 -0
  248. package/dist/tools/util/toolConfig.d.ts.map +1 -0
  249. package/dist/tools/util/toolDescriptor.d.ts +117 -0
  250. package/dist/tools/util/toolDescriptor.d.ts.map +1 -0
  251. package/dist/utils/cli/help.d.ts +2 -0
  252. package/dist/utils/cli/help.d.ts.map +1 -0
  253. package/dist/utils/cli/index.cjs +700 -0
  254. package/dist/utils/cli/index.cjs.map +1 -0
  255. package/dist/utils/cli/index.d.ts +9 -0
  256. package/dist/utils/cli/index.d.ts.map +1 -0
  257. package/dist/utils/cli/index.js +677 -0
  258. package/dist/utils/cli/index.js.map +1 -0
  259. package/dist/utils/cli/toolRuntime.d.ts +19 -0
  260. package/dist/utils/cli/toolRuntime.d.ts.map +1 -0
  261. package/dist/utils/log.d.ts +2 -0
  262. package/dist/utils/log.d.ts.map +1 -0
  263. package/dist/utils/npmCache.d.ts +11 -0
  264. package/dist/utils/npmCache.d.ts.map +1 -0
  265. package/dist/utils/npmVersion.d.ts +10 -0
  266. package/dist/utils/npmVersion.d.ts.map +1 -0
  267. package/dist/utils/overrideWithConfig.d.ts +2 -0
  268. package/dist/utils/overrideWithConfig.d.ts.map +1 -0
  269. package/package.json +125 -0
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ // src/tools/util/canonicalCoreSchemas.ts
4
+ function isGenericSchema(schema) {
5
+ if (schema === null || typeof schema !== "object") return false;
6
+ const s = schema;
7
+ if (s.type !== "object") return false;
8
+ if (s.additionalProperties === true && !s.properties) return true;
9
+ if (s.properties === void 0 && s.required === void 0) return true;
10
+ return false;
11
+ }
12
+ function enrichSpecWithCanonicalSchema(spec) {
13
+ return spec;
14
+ }
15
+
16
+ exports.enrichSpecWithCanonicalSchema = enrichSpecWithCanonicalSchema;
17
+ exports.isGenericSchema = isGenericSchema;
18
+ //# sourceMappingURL=chunk-UUNG3GL3.cjs.map
19
+ //# sourceMappingURL=chunk-UUNG3GL3.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tools/util/canonicalCoreSchemas.ts"],"names":[],"mappings":";;;AASO,SAAS,gBAAgB,MAAA,EAA0B;AACxD,EAAA,IAAI,MAAA,KAAW,IAAA,IAAQ,OAAO,MAAA,KAAW,UAAU,OAAO,KAAA;AAC1D,EAAA,MAAM,CAAA,GAAI,MAAA;AACV,EAAA,IAAI,CAAA,CAAE,IAAA,KAAS,QAAA,EAAU,OAAO,KAAA;AAChC,EAAA,IAAI,EAAE,oBAAA,KAAyB,IAAA,IAAQ,CAAC,CAAA,CAAE,YAAY,OAAO,IAAA;AAC7D,EAAA,IAAI,EAAE,UAAA,KAAe,MAAA,IAAa,CAAA,CAAE,QAAA,KAAa,QAAW,OAAO,IAAA;AACnE,EAAA,OAAO,KAAA;AACT;AAOO,SAAS,8BAA8B,IAAA,EAA0B;AACtE,EAAA,OAAO,IAAA;AACT","file":"chunk-UUNG3GL3.cjs","sourcesContent":["/**\n * Schema utilities for tool specs.\n * The framework does not hardcode schemas for any specific extension (e.g. builtin);\n * each extension supplies its own inputSchema/outputSchema via manifest or registration.\n */\n\nimport type { ToolSpec } from \"../../core/types/ToolSpec.js\";\n\n/** True if schema looks like the generic permissive one. */\nexport function isGenericSchema(schema: unknown): boolean {\n if (schema === null || typeof schema !== \"object\") return false;\n const s = schema as Record<string, unknown>;\n if (s.type !== \"object\") return false;\n if (s.additionalProperties === true && !s.properties) return true;\n if (s.properties === undefined && s.required === undefined) return true;\n return false;\n}\n\n/**\n * Returns the spec unchanged. Previously replaced generic schemas with canonical ones;\n * that list was removed so the framework has no dependency on agent-tool-buildin.\n * Extensions (e.g. builtin) must provide real inputSchema/outputSchema in their manifest.\n */\nexport function enrichSpecWithCanonicalSchema(spec: ToolSpec): ToolSpec {\n return spec;\n}\n"]}
@@ -0,0 +1,68 @@
1
+ import type { Capability, ToolKind, ToolSpec } from "../types/ToolSpec.js";
2
+ /**
3
+ * Search query for tools.
4
+ */
5
+ export interface ToolSearchQuery {
6
+ /** Text search in name/description/tags */
7
+ text?: string;
8
+ /** Filter by tool kind */
9
+ kind?: ToolKind;
10
+ /** Filter by required capabilities */
11
+ capabilities?: Capability[];
12
+ /** Filter by tags */
13
+ tags?: string[];
14
+ }
15
+ /**
16
+ * Tool Registry: manages tool registration, lookup, and search.
17
+ * Supports both static registration and dynamic discovery via adapters.
18
+ */
19
+ export declare class ToolRegistry {
20
+ private readonly tools;
21
+ private readonly tagIndex;
22
+ private readonly kindIndex;
23
+ /**
24
+ * Register a single tool spec.
25
+ * Overwrites if same name already exists.
26
+ */
27
+ register(spec: ToolSpec): void;
28
+ /**
29
+ * Register multiple tool specs at once.
30
+ */
31
+ bulkRegister(specs: ToolSpec[]): void;
32
+ /**
33
+ * Unregister a tool by name.
34
+ */
35
+ unregister(name: string): boolean;
36
+ /**
37
+ * Get a tool spec by name (name is normalized before lookup).
38
+ */
39
+ get(name: string): ToolSpec | undefined;
40
+ /**
41
+ * Check if a tool exists (name is normalized before lookup).
42
+ */
43
+ has(name: string): boolean;
44
+ /**
45
+ * Search tools by query.
46
+ */
47
+ search(query: ToolSearchQuery): ToolSpec[];
48
+ /**
49
+ * List all registered tool names.
50
+ */
51
+ list(): string[];
52
+ /**
53
+ * Get count of registered tools.
54
+ */
55
+ get size(): number;
56
+ /**
57
+ * Export a snapshot of all registered tools (for debugging/routing).
58
+ */
59
+ snapshot(): ToolSpec[];
60
+ /**
61
+ * Clear all registered tools.
62
+ */
63
+ clear(): void;
64
+ private validateSpec;
65
+ private indexTool;
66
+ private deindexTool;
67
+ }
68
+ //# sourceMappingURL=ToolRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolRegistry.d.ts","sourceRoot":"","sources":["../../../src/core/registry/ToolRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAG3E;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,sCAAsC;IACtC,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC;IAC5B,qBAAqB;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA+B;IACrD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkC;IAC3D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoC;IAE9D;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAQ9B;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI;IAMrC;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IASjC;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAIvC;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,QAAQ,EAAE;IA0C1C;;OAEG;IACH,IAAI,IAAI,MAAM,EAAE;IAIhB;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,QAAQ,IAAI,QAAQ,EAAE;IAItB;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,SAAS;IAsBjB,OAAO,CAAC,WAAW;CAQpB"}
@@ -0,0 +1,63 @@
1
+ import { type CircuitBreakerPolicy, type BulkheadPolicy } from "cockatiel";
2
+ /**
3
+ * Budget configuration for a tool or global scope.
4
+ */
5
+ export interface BudgetOptions {
6
+ /** Default timeout in ms for tool invocations */
7
+ defaultTimeoutMs?: number;
8
+ /** Max concurrent invocations per tool */
9
+ maxConcurrency?: number;
10
+ /** Rate limit: max calls per window */
11
+ rateLimit?: {
12
+ maxCalls: number;
13
+ windowMs: number;
14
+ };
15
+ /** Circuit breaker config */
16
+ circuitBreaker?: {
17
+ /** Number of consecutive failures before opening */
18
+ threshold: number;
19
+ /** Half-open reset time in ms */
20
+ halfOpenAfterMs: number;
21
+ };
22
+ }
23
+ /**
24
+ * Budget manager that provides timeout, rate limiting, concurrency control,
25
+ * and circuit breaker per tool.
26
+ */
27
+ export declare class BudgetManager {
28
+ private readonly defaultTimeoutMs;
29
+ private readonly bulkheads;
30
+ private readonly circuitBreakers;
31
+ private readonly rateLimiters;
32
+ private readonly options;
33
+ constructor(options?: BudgetOptions);
34
+ /**
35
+ * Get effective timeout for a tool invocation.
36
+ */
37
+ getTimeout(_toolName: string, contextTimeoutMs?: number): number;
38
+ /**
39
+ * Check rate limit for a tool. Returns true if allowed.
40
+ */
41
+ checkRateLimit(toolName: string): boolean;
42
+ /**
43
+ * Get or create a bulkhead (concurrency limiter) for a tool.
44
+ */
45
+ getBulkhead(toolName: string): BulkheadPolicy | undefined;
46
+ /**
47
+ * Get or create a circuit breaker for a tool.
48
+ */
49
+ getCircuitBreaker(toolName: string): CircuitBreakerPolicy | undefined;
50
+ /**
51
+ * Execute a function within budget constraints (bulkhead + circuit breaker).
52
+ */
53
+ execute<T>(toolName: string, fn: () => Promise<T>): Promise<T>;
54
+ /**
55
+ * Reset all policies for a tool (useful for testing).
56
+ */
57
+ reset(toolName: string): void;
58
+ /**
59
+ * Reset all policies globally.
60
+ */
61
+ resetAll(): void;
62
+ }
63
+ //# sourceMappingURL=Budget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Budget.d.ts","sourceRoot":"","sources":["../../../src/core/runtime/Budget.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACpB,MAAM,WAAW,CAAC;AAEnB;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,iDAAiD;IACjD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,0CAA0C;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uCAAuC;IACvC,SAAS,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACnD,6BAA6B;IAC7B,cAAc,CAAC,EAAE;QACf,oDAAoD;QACpD,SAAS,EAAE,MAAM,CAAC;QAClB,iCAAiC;QACjC,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAiCD;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqC;IAC/D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA2C;IAC3E,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAC/D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;gBAE5B,OAAO,GAAE,aAAkB;IAKvC;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM;IAIhE;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAazC;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAUzD;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS;IAarE;;OAEG;IACG,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAmBpE;;OAEG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAM7B;;OAEG;IACH,QAAQ,IAAI,IAAI;CAKjB"}
@@ -0,0 +1,19 @@
1
+ import type { ToolSpec } from "../types/ToolSpec.js";
2
+ import type { ExecContext } from "../types/ToolIntent.js";
3
+ import type { Evidence } from "../types/ToolResult.js";
4
+ /**
5
+ * Options for building evidence from a tool invocation.
6
+ */
7
+ export interface BuildEvidenceOptions {
8
+ spec: ToolSpec;
9
+ args: unknown;
10
+ result: unknown;
11
+ raw?: unknown;
12
+ ctx: ExecContext;
13
+ durationMs?: number;
14
+ }
15
+ /**
16
+ * Build evidence records from a tool invocation result.
17
+ */
18
+ export declare function buildEvidence(options: BuildEvidenceOptions): Evidence[];
19
+ //# sourceMappingURL=Evidence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Evidence.d.ts","sourceRoot":"","sources":["../../../src/core/runtime/Evidence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,WAAW,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,QAAQ,EAAE,CAgDvE"}
@@ -0,0 +1,124 @@
1
+ import type { ToolAdapter, ToolSpec } from "../types/ToolSpec.js";
2
+ import type { ExecContext, ToolIntent } from "../types/ToolIntent.js";
3
+ import type { ToolResult } from "../types/ToolResult.js";
4
+ import { ToolRegistry } from "../registry/ToolRegistry.js";
5
+ import { SchemaValidator } from "./SchemaValidator.js";
6
+ import { PolicyEngine } from "./PolicyEngine.js";
7
+ import { BudgetManager } from "./Budget.js";
8
+ import { EventLog } from "../../observability/EventLog.js";
9
+ import type { DebugOptions } from "../../observability/Logger.js";
10
+ import { Metrics } from "../../observability/Metrics.js";
11
+ import { Tracing } from "../../observability/Tracing.js";
12
+ import type { PolicyConfig } from "./PolicyEngine.js";
13
+ import type { BudgetOptions } from "./Budget.js";
14
+ /**
15
+ * PTC Runtime configuration.
16
+ */
17
+ export interface PTCRuntimeConfig {
18
+ policy?: PolicyConfig;
19
+ budget?: BudgetOptions;
20
+ /** Include raw response in ToolResult (default: true, disable in production) */
21
+ includeRaw?: boolean;
22
+ /** Maximum retries if not specified in context (default: 2) */
23
+ defaultMaxRetries?: number;
24
+ /** Debug/logging configuration */
25
+ debug?: DebugOptions;
26
+ /** HITL: when set, tools with sideEffect external_write/destructive require human approval before execute; callback returns true/void to approve, false to deny */
27
+ onApprovalRequired?: (spec: import("../types/ToolSpec.js").ToolSpec, args: unknown, ctx: import("../types/ToolIntent.js").ExecContext) => Promise<boolean | void>;
28
+ }
29
+ /**
30
+ * PTC Runtime: the unified execution kernel for all tool invocations.
31
+ *
32
+ * Enforces the mandatory 9-step pipeline:
33
+ * 1. Resolve (Registry lookup)
34
+ * 2. Input Validate (AJV)
35
+ * 3. Defaults Enrich
36
+ * 4. Policy Gate
37
+ * 5. Budget check
38
+ * 6. HITL approval (if onApprovalRequired set and tool sideEffect external_write/destructive)
39
+ * 7. Execute (adapter.invoke())
40
+ * 8. Output Validate (AJV)
41
+ * 9. Evidence Build
42
+ * 10. Audit & Metrics
43
+ *
44
+ * Never throws to callers - always returns ToolResult.
45
+ */
46
+ export declare class PTCRuntime {
47
+ private readonly registry;
48
+ private readonly adapters;
49
+ private readonly adaptersByToolName;
50
+ private readonly validator;
51
+ private readonly policy;
52
+ private readonly budget;
53
+ private readonly eventLog;
54
+ private readonly metrics;
55
+ private readonly tracing;
56
+ private readonly config;
57
+ private readonly logger;
58
+ constructor(options?: {
59
+ registry?: ToolRegistry;
60
+ validator?: SchemaValidator;
61
+ policy?: PolicyEngine;
62
+ budget?: BudgetManager;
63
+ eventLog?: EventLog;
64
+ metrics?: Metrics;
65
+ tracing?: Tracing;
66
+ config?: PTCRuntimeConfig;
67
+ });
68
+ /**
69
+ * Register an adapter for a tool kind.
70
+ */
71
+ registerAdapter(adapter: ToolAdapter): void;
72
+ /**
73
+ * Bind an adapter to exact tool keys (full package path + tool path).
74
+ * This avoids collisions when multiple extensions share the same kind.
75
+ */
76
+ registerAdapterForTools(toolNames: string[], adapter: ToolAdapter): void;
77
+ /**
78
+ * Get an adapter by kind (e.g. "mcp"). Use to set MCP client via adapter.setClient().
79
+ */
80
+ getAdapter(kind: string): ToolAdapter | undefined;
81
+ /**
82
+ * Get the tool registry.
83
+ */
84
+ getRegistry(): ToolRegistry;
85
+ /**
86
+ * Get the event log.
87
+ */
88
+ getEventLog(): EventLog;
89
+ /**
90
+ * Get the metrics collector.
91
+ */
92
+ getMetrics(): Metrics;
93
+ /**
94
+ * Get the tracing system.
95
+ */
96
+ getTracing(): Tracing;
97
+ /**
98
+ * Invoke a tool through the PTC pipeline.
99
+ * Never throws - always returns a structured ToolResult.
100
+ */
101
+ invoke(intent: ToolIntent, ctx: ExecContext): Promise<ToolResult>;
102
+ /**
103
+ * Search for tools in the registry.
104
+ */
105
+ searchTools(query: string, filters?: {
106
+ kind?: string;
107
+ capabilities?: string[];
108
+ tags?: string[];
109
+ }): ToolSpec[];
110
+ /**
111
+ * Get the schema for a tool.
112
+ */
113
+ getToolSchema(toolName: string): {
114
+ input: object;
115
+ output: object;
116
+ } | undefined;
117
+ private getPipelineDeps;
118
+ private getObservabilityDeps;
119
+ private beginInvokeSpan;
120
+ private runInvokePipeline;
121
+ private buildInvokeSuccessResult;
122
+ private buildDryRunResult;
123
+ }
124
+ //# sourceMappingURL=PTCRuntime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PTCRuntime.d.ts","sourceRoot":"","sources":["../../../src/core/runtime/PTCRuntime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { ToolSpec } from "../types/ToolSpec.js";
2
+ import type { ExecContext, ToolIntent } from "../types/ToolIntent.js";
3
+ import type { Evidence, ToolResult } from "../types/ToolResult.js";
4
+ import { EventLog } from "../../observability/EventLog.js";
5
+ import { Metrics } from "../../observability/Metrics.js";
6
+ import { Tracing } from "../../observability/Tracing.js";
7
+ import type { Logger } from "../../observability/Logger.js";
8
+ export interface ObservabilityDependencies {
9
+ eventLog: EventLog;
10
+ metrics: Metrics;
11
+ tracing: Tracing;
12
+ logger: Logger;
13
+ }
14
+ /**
15
+ * Emit TOOL_CALLED event.
16
+ */
17
+ export declare function emitToolCalled(intent: ToolIntent, ctx: ExecContext, deps: ObservabilityDependencies): void;
18
+ /**
19
+ * Record successful tool invocation.
20
+ */
21
+ export declare function recordSuccess(spec: ToolSpec, durationMs: number, _evidence: Evidence[], spanId: string, deps: ObservabilityDependencies): void;
22
+ /**
23
+ * Handle error and return ToolResult.
24
+ */
25
+ export declare function handleError(error: unknown, intent: ToolIntent, ctx: ExecContext, durationMs: number, spanId: string, deps: ObservabilityDependencies): ToolResult;
26
+ //# sourceMappingURL=PTCRuntimeObservability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PTCRuntimeObservability.d.ts","sourceRoot":"","sources":["../../../src/core/runtime/PTCRuntimeObservability.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAKnE,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAEzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAE5D,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,yBAAyB,GAC9B,IAAI,CAcN;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,QAAQ,EACd,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,QAAQ,EAAE,EACrB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,yBAAyB,GAC9B,IAAI,CAON;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,WAAW,EAChB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,yBAAyB,GAC9B,UAAU,CAkDZ"}
@@ -0,0 +1,69 @@
1
+ import type { ToolSpec } from "../types/ToolSpec.js";
2
+ import type { ExecContext } from "../types/ToolIntent.js";
3
+ import type { ToolAdapter } from "../types/ToolSpec.js";
4
+ import { SchemaValidator } from "./SchemaValidator.js";
5
+ import { PolicyEngine } from "./PolicyEngine.js";
6
+ import { BudgetManager } from "./Budget.js";
7
+ import { EventLog } from "../../observability/EventLog.js";
8
+ import { Metrics } from "../../observability/Metrics.js";
9
+ import { Tracing } from "../../observability/Tracing.js";
10
+ import type { Logger } from "../../observability/Logger.js";
11
+ /** Called when tool has sideEffect external_write/destructive; return true/void to approve, false to deny. */
12
+ export type OnApprovalRequired = (spec: ToolSpec, args: unknown, ctx: ExecContext) => Promise<boolean | void>;
13
+ export interface PipelineDependencies {
14
+ registry: {
15
+ get(name: string): ToolSpec | undefined;
16
+ snapshot(): ToolSpec[];
17
+ };
18
+ adapters: Map<string, ToolAdapter>;
19
+ adaptersByToolName: Map<string, ToolAdapter>;
20
+ validator: SchemaValidator;
21
+ policy: PolicyEngine;
22
+ budget: BudgetManager;
23
+ eventLog: EventLog;
24
+ metrics: Metrics;
25
+ tracing: Tracing;
26
+ logger: Logger;
27
+ defaultMaxRetries?: number;
28
+ /** HITL: when set, tools with sideEffect external_write/destructive require human approval before execute */
29
+ onApprovalRequired?: OnApprovalRequired;
30
+ }
31
+ /**
32
+ * Pipeline step: Resolve tool from registry (tool name is normalized before lookup).
33
+ */
34
+ export declare function resolveTool(toolName: string, registry: PipelineDependencies["registry"]): ToolSpec;
35
+ /**
36
+ * Pipeline step: Normalize common input aliases so LLM typos (e.g. "q" for "query") work.
37
+ * Uses INPUT_ALIASES and the tool's required keys; no tool name checks.
38
+ * Runs before validation so schema sees the canonical keys.
39
+ */
40
+ export declare function normalizeInputAliases(spec: ToolSpec, args: unknown): unknown;
41
+ /**
42
+ * Pipeline step: Validate input against schema.
43
+ */
44
+ export declare function validateInput(spec: ToolSpec, args: unknown, validator: SchemaValidator): unknown;
45
+ /**
46
+ * Pipeline step: Enrich args with defaults from schema.
47
+ */
48
+ export declare function enrichDefaults(spec: ToolSpec, args: unknown, validator: SchemaValidator): unknown;
49
+ /**
50
+ * Pipeline step: Enforce policy checks.
51
+ */
52
+ export declare function enforcePolicy(spec: ToolSpec, args: unknown, ctx: ExecContext, deps: Pick<PipelineDependencies, "policy" | "eventLog" | "metrics" | "tracing">): void;
53
+ /**
54
+ * Pipeline step: Human-in-the-loop approval for external_write/destructive tools.
55
+ * When onApprovalRequired is set, waits for callback resolve(true/void) before continuing; resolve(false) or reject throws HITL_DENIED.
56
+ */
57
+ export declare function requireHumanApproval(spec: ToolSpec, args: unknown, ctx: ExecContext, deps: Pick<PipelineDependencies, "onApprovalRequired" | "eventLog" | "logger">): Promise<void>;
58
+ /**
59
+ * Pipeline step: Execute tool with budget, retry, and timeout.
60
+ */
61
+ export declare function executeWithBudget(spec: ToolSpec, args: unknown, ctx: ExecContext, spanId: string, deps: PipelineDependencies): Promise<{
62
+ result: unknown;
63
+ raw?: unknown;
64
+ }>;
65
+ /**
66
+ * Pipeline step: Validate output against schema.
67
+ */
68
+ export declare function validateOutput(spec: ToolSpec, result: unknown, validator: SchemaValidator): unknown;
69
+ //# sourceMappingURL=PTCRuntimePipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PTCRuntimePipeline.d.ts","sourceRoot":"","sources":["../../../src/core/runtime/PTCRuntimePipeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import type { Capability, ToolSpec } from "../types/ToolSpec.js";
2
+ import type { ExecContext } from "../types/ToolIntent.js";
3
+ /**
4
+ * Policy configuration for the engine.
5
+ */
6
+ export interface PolicyConfig {
7
+ /** File system sandbox paths (allowed write directories) */
8
+ sandboxPaths?: string[];
9
+ /** Allowed URL patterns (regex strings) */
10
+ urlAllowlist?: string[];
11
+ /** Denied URL patterns (regex strings) */
12
+ urlDenylist?: string[];
13
+ /** SQL patterns that are denied (e.g., DROP, TRUNCATE) */
14
+ deniedSqlPatterns?: string[];
15
+ /** Network allowed domains */
16
+ allowedDomains?: string[];
17
+ /** Whether to require explicit permission for danger:destructive */
18
+ requireExplicitDangerPermission?: boolean;
19
+ }
20
+ /**
21
+ * Result of a policy check.
22
+ */
23
+ export interface PolicyCheckResult {
24
+ allowed: boolean;
25
+ reason?: string;
26
+ missingCapabilities?: Capability[];
27
+ }
28
+ /**
29
+ * Policy engine for capability gating, parameter security, and access control.
30
+ */
31
+ export declare class PolicyEngine {
32
+ private readonly config;
33
+ constructor(config?: PolicyConfig);
34
+ /**
35
+ * Enforce all policy checks. Throws PolicyDeniedError if denied.
36
+ */
37
+ enforce(spec: ToolSpec, args: unknown, ctx: ExecContext): void;
38
+ /**
39
+ * Check all policies without throwing.
40
+ */
41
+ check(spec: ToolSpec, args: unknown, ctx: ExecContext): PolicyCheckResult;
42
+ /**
43
+ * Check that context permissions cover tool capabilities.
44
+ */
45
+ private checkCapabilities;
46
+ /**
47
+ * Check parameter-level security constraints.
48
+ */
49
+ private checkParameters;
50
+ private checkFilePaths;
51
+ private checkUrls;
52
+ private checkSql;
53
+ private checkDomains;
54
+ /**
55
+ * Extract string values from args matching given key patterns.
56
+ */
57
+ private extractStringValues;
58
+ }
59
+ /**
60
+ * Error thrown when policy denies execution.
61
+ */
62
+ export declare class PolicyDeniedError extends Error {
63
+ readonly missingCapabilities?: Capability[] | undefined;
64
+ readonly kind = "POLICY_DENIED";
65
+ constructor(message: string, missingCapabilities?: Capability[] | undefined);
66
+ }
67
+ //# sourceMappingURL=PolicyEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PolicyEngine.d.ts","sourceRoot":"","sources":["../../../src/core/runtime/PolicyEngine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,0DAA0D;IAC1D,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,8BAA8B;IAC9B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,oEAAoE;IACpE,+BAA+B,CAAC,EAAE,OAAO,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mBAAmB,CAAC,EAAE,UAAU,EAAE,CAAC;CACpC;AAED;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;gBAE1B,MAAM,GAAE,YAAiB;IAQrC;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI;IAU9D;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,GAAG,iBAAiB;IAazE;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA+BzB;;OAEG;IACH,OAAO,CAAC,eAAe;IAsCvB,OAAO,CAAC,cAAc;IAyBtB,OAAO,CAAC,SAAS;IA8BjB,OAAO,CAAC,QAAQ;IAiBhB,OAAO,CAAC,YAAY;IAyBpB;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAqB5B;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;aAKxB,mBAAmB,CAAC,EAAE,UAAU,EAAE;IAJpD,SAAgB,IAAI,mBAAmB;gBAGrC,OAAO,EAAE,MAAM,EACC,mBAAmB,CAAC,EAAE,UAAU,EAAE,YAAA;CAKrD"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Retry configuration.
3
+ */
4
+ export interface RetryOptions {
5
+ /** Maximum number of retries (default: 2) */
6
+ maxRetries?: number;
7
+ /** Base delay in ms for exponential backoff (default: 1000) */
8
+ baseDelayMs?: number;
9
+ /** Maximum delay in ms (default: 10000) */
10
+ maxDelayMs?: number;
11
+ /** Jitter factor 0-1 (default: 0.1) */
12
+ jitter?: number;
13
+ /** Error filter: return true to retry, false to abort */
14
+ shouldRetry?: (error: Error) => boolean;
15
+ /** Callback on each retry attempt */
16
+ onRetry?: (error: Error, attempt: number) => void;
17
+ }
18
+ /**
19
+ * Determine if an error is retryable.
20
+ */
21
+ export declare function isRetryable(error: unknown): boolean;
22
+ /**
23
+ * Execute a function with retry logic using exponential backoff.
24
+ */
25
+ export declare function withRetry<T>(fn: () => Promise<T>, options?: RetryOptions): Promise<T>;
26
+ /**
27
+ * Create a tagged error with a kind field for retry classification.
28
+ */
29
+ export declare function createTaggedError(kind: string, message: string, details?: unknown): Error & {
30
+ kind: string;
31
+ details?: unknown;
32
+ };
33
+ //# sourceMappingURL=Retry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Retry.d.ts","sourceRoot":"","sources":["../../../src/core/runtime/Retry.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;IACxC,qCAAqC;IACrC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACnD;AAoBD;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAMnD;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,CAAC,CAAC,CAyCZ;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,OAAO,GAChB,KAAK,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAQ7C"}
@@ -0,0 +1,42 @@
1
+ import { type ErrorObject } from "ajv";
2
+ /**
3
+ * Schema validation result.
4
+ */
5
+ export interface ValidationResult {
6
+ valid: boolean;
7
+ errors?: ErrorObject[];
8
+ data?: unknown;
9
+ }
10
+ /**
11
+ * AJV-based JSON Schema validator with coercion and default enrichment.
12
+ */
13
+ export declare class SchemaValidator {
14
+ private readonly ajv;
15
+ private readonly cache;
16
+ constructor();
17
+ /**
18
+ * Validate data against a JSON Schema.
19
+ * Coerces types and applies defaults in-place.
20
+ */
21
+ validate(schema: object, data: unknown): ValidationResult;
22
+ /**
23
+ * Validate and return coerced data, or throw a descriptive error.
24
+ */
25
+ validateOrThrow(schema: object, data: unknown, context: string): unknown;
26
+ /**
27
+ * Apply default values from schema to data without full validation.
28
+ */
29
+ enrichDefaults(schema: object, data: unknown): unknown;
30
+ private getOrCompile;
31
+ /** Ensure schema is AJV-compatible (required = string[], nullable handled via type). */
32
+ private normalizeSchema;
33
+ private normalizeSchemaRec;
34
+ }
35
+ /**
36
+ * Error thrown on schema validation failure.
37
+ */
38
+ export declare class SchemaValidationError extends Error {
39
+ readonly errors: ErrorObject[];
40
+ constructor(message: string, errors: ErrorObject[]);
41
+ }
42
+ //# sourceMappingURL=SchemaValidator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaValidator.d.ts","sourceRoot":"","sources":["../../../src/core/runtime/SchemaValidator.ts"],"names":[],"mappings":"AAAA,OAAY,EAAyB,KAAK,WAAW,EAAE,MAAM,KAAK,CAAC;AAGnE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAM;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuC;;IAa7D;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,gBAAgB;IAezD;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAcxE;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO;IAOtD,OAAO,CAAC,YAAY;IAWpB,wFAAwF;IACxF,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,kBAAkB;CAiE3B;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;aAG5B,MAAM,EAAE,WAAW,EAAE;gBADrC,OAAO,EAAE,MAAM,EACC,MAAM,EAAE,WAAW,EAAE;CAKxC"}
@@ -0,0 +1,7 @@
1
+ import type { ToolResult } from "../types/ToolResult.js";
2
+ export declare const PTC_FEEDBACK_MARKER = "__PTC_FEEDBACK__:";
3
+ export declare function extractObservationText(value: unknown): string | null;
4
+ export declare function toToolObservationText(result: ToolResult, opts?: {
5
+ includeFeedbackMarker?: boolean;
6
+ }): string;
7
+ //# sourceMappingURL=toolObservation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolObservation.d.ts","sourceRoot":"","sources":["../../../src/core/runtime/toolObservation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGzD,eAAO,MAAM,mBAAmB,sBAAsB,CAAC;AAWvD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CASpE;AAOD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,UAAU,EAClB,IAAI,GAAE;IAAE,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAAO,GAC7C,MAAM,CAcR"}