@actrun_ai/tastekit-core 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (389) hide show
  1. package/dist/compiler/compiler.d.ts +24 -0
  2. package/dist/compiler/compiler.d.ts.map +1 -0
  3. package/dist/compiler/compiler.js +153 -0
  4. package/dist/compiler/compiler.js.map +1 -0
  5. package/dist/compiler/constitution-compiler.d.ts +11 -0
  6. package/dist/compiler/constitution-compiler.d.ts.map +1 -0
  7. package/dist/compiler/constitution-compiler.js +154 -0
  8. package/dist/compiler/constitution-compiler.js.map +1 -0
  9. package/dist/compiler/derivation.d.ts +125 -0
  10. package/dist/compiler/derivation.d.ts.map +1 -0
  11. package/dist/compiler/derivation.js +109 -0
  12. package/dist/compiler/derivation.js.map +1 -0
  13. package/dist/compiler/guardrails-compiler.d.ts +11 -0
  14. package/dist/compiler/guardrails-compiler.d.ts.map +1 -0
  15. package/dist/compiler/guardrails-compiler.js +362 -0
  16. package/dist/compiler/guardrails-compiler.js.map +1 -0
  17. package/dist/compiler/index.d.ts +13 -0
  18. package/dist/compiler/index.d.ts.map +1 -0
  19. package/dist/compiler/index.js +13 -0
  20. package/dist/compiler/index.js.map +1 -0
  21. package/dist/compiler/memory-compiler.d.ts +12 -0
  22. package/dist/compiler/memory-compiler.d.ts.map +1 -0
  23. package/dist/compiler/memory-compiler.js +293 -0
  24. package/dist/compiler/memory-compiler.js.map +1 -0
  25. package/dist/compiler/playbook-compiler.d.ts +15 -0
  26. package/dist/compiler/playbook-compiler.d.ts.map +1 -0
  27. package/dist/compiler/playbook-compiler.js +1143 -0
  28. package/dist/compiler/playbook-compiler.js.map +1 -0
  29. package/dist/compiler/skills-compiler.d.ts +15 -0
  30. package/dist/compiler/skills-compiler.d.ts.map +1 -0
  31. package/dist/compiler/skills-compiler.js +203 -0
  32. package/dist/compiler/skills-compiler.js.map +1 -0
  33. package/dist/domains/development-agent/domain.d.ts +8 -0
  34. package/dist/domains/development-agent/domain.d.ts.map +1 -0
  35. package/dist/domains/development-agent/domain.js +35 -0
  36. package/dist/domains/development-agent/domain.js.map +1 -0
  37. package/dist/domains/development-agent/index.d.ts +3 -0
  38. package/dist/domains/development-agent/index.d.ts.map +1 -0
  39. package/dist/domains/development-agent/index.js +3 -0
  40. package/dist/domains/development-agent/index.js.map +1 -0
  41. package/dist/domains/development-agent/rubric.d.ts +13 -0
  42. package/dist/domains/development-agent/rubric.d.ts.map +1 -0
  43. package/dist/domains/development-agent/rubric.js +451 -0
  44. package/dist/domains/development-agent/rubric.js.map +1 -0
  45. package/dist/domains/development-agent/skills/code-review.d.ts +25 -0
  46. package/dist/domains/development-agent/skills/code-review.d.ts.map +1 -0
  47. package/dist/domains/development-agent/skills/code-review.js +146 -0
  48. package/dist/domains/development-agent/skills/code-review.js.map +1 -0
  49. package/dist/domains/development-agent/skills/debugging-issues.d.ts +25 -0
  50. package/dist/domains/development-agent/skills/debugging-issues.d.ts.map +1 -0
  51. package/dist/domains/development-agent/skills/debugging-issues.js +155 -0
  52. package/dist/domains/development-agent/skills/debugging-issues.js.map +1 -0
  53. package/dist/domains/development-agent/skills/documenting-code.d.ts +19 -0
  54. package/dist/domains/development-agent/skills/documenting-code.d.ts.map +1 -0
  55. package/dist/domains/development-agent/skills/documenting-code.js +92 -0
  56. package/dist/domains/development-agent/skills/documenting-code.js.map +1 -0
  57. package/dist/domains/development-agent/skills/index.d.ts +55 -0
  58. package/dist/domains/development-agent/skills/index.d.ts.map +1 -0
  59. package/dist/domains/development-agent/skills/index.js +19 -0
  60. package/dist/domains/development-agent/skills/index.js.map +1 -0
  61. package/dist/domains/development-agent/skills/refactor-plan.d.ts +19 -0
  62. package/dist/domains/development-agent/skills/refactor-plan.d.ts.map +1 -0
  63. package/dist/domains/development-agent/skills/refactor-plan.js +117 -0
  64. package/dist/domains/development-agent/skills/refactor-plan.js.map +1 -0
  65. package/dist/domains/development-agent/skills/writing-tests.d.ts +20 -0
  66. package/dist/domains/development-agent/skills/writing-tests.d.ts.map +1 -0
  67. package/dist/domains/development-agent/skills/writing-tests.js +93 -0
  68. package/dist/domains/development-agent/skills/writing-tests.js.map +1 -0
  69. package/dist/domains/general-agent/domain.d.ts +9 -0
  70. package/dist/domains/general-agent/domain.d.ts.map +1 -0
  71. package/dist/domains/general-agent/domain.js +36 -0
  72. package/dist/domains/general-agent/domain.js.map +1 -0
  73. package/dist/domains/general-agent/index.d.ts +4 -0
  74. package/dist/domains/general-agent/index.d.ts.map +1 -0
  75. package/dist/domains/general-agent/index.js +4 -0
  76. package/dist/domains/general-agent/index.js.map +1 -0
  77. package/dist/domains/general-agent/rubric.d.ts +8 -0
  78. package/dist/domains/general-agent/rubric.d.ts.map +1 -0
  79. package/dist/domains/general-agent/rubric.js +332 -0
  80. package/dist/domains/general-agent/rubric.js.map +1 -0
  81. package/dist/domains/general-agent/skills/context-synthesis.d.ts +19 -0
  82. package/dist/domains/general-agent/skills/context-synthesis.d.ts.map +1 -0
  83. package/dist/domains/general-agent/skills/context-synthesis.js +94 -0
  84. package/dist/domains/general-agent/skills/context-synthesis.js.map +1 -0
  85. package/dist/domains/general-agent/skills/index.d.ts +32 -0
  86. package/dist/domains/general-agent/skills/index.d.ts.map +1 -0
  87. package/dist/domains/general-agent/skills/index.js +11 -0
  88. package/dist/domains/general-agent/skills/index.js.map +1 -0
  89. package/dist/domains/general-agent/skills/task-orchestration.d.ts +19 -0
  90. package/dist/domains/general-agent/skills/task-orchestration.d.ts.map +1 -0
  91. package/dist/domains/general-agent/skills/task-orchestration.js +101 -0
  92. package/dist/domains/general-agent/skills/task-orchestration.js.map +1 -0
  93. package/dist/domains/index.d.ts +21 -0
  94. package/dist/domains/index.d.ts.map +1 -0
  95. package/dist/domains/index.js +37 -0
  96. package/dist/domains/index.js.map +1 -0
  97. package/dist/domains/types.d.ts +22 -0
  98. package/dist/domains/types.d.ts.map +1 -0
  99. package/dist/domains/types.js +2 -0
  100. package/dist/domains/types.js.map +1 -0
  101. package/dist/drift/consolidator.d.ts +47 -0
  102. package/dist/drift/consolidator.d.ts.map +1 -0
  103. package/dist/drift/consolidator.js +116 -0
  104. package/dist/drift/consolidator.js.map +1 -0
  105. package/dist/drift/detector.d.ts +79 -0
  106. package/dist/drift/detector.d.ts.map +1 -0
  107. package/dist/drift/detector.js +424 -0
  108. package/dist/drift/detector.js.map +1 -0
  109. package/dist/drift/index.d.ts +9 -0
  110. package/dist/drift/index.d.ts.map +1 -0
  111. package/dist/drift/index.js +9 -0
  112. package/dist/drift/index.js.map +1 -0
  113. package/dist/drift/proposal.d.ts +108 -0
  114. package/dist/drift/proposal.d.ts.map +1 -0
  115. package/dist/drift/proposal.js +2 -0
  116. package/dist/drift/proposal.js.map +1 -0
  117. package/dist/eval/index.d.ts +9 -0
  118. package/dist/eval/index.d.ts.map +1 -0
  119. package/dist/eval/index.js +9 -0
  120. package/dist/eval/index.js.map +1 -0
  121. package/dist/eval/judge.d.ts +33 -0
  122. package/dist/eval/judge.d.ts.map +1 -0
  123. package/dist/eval/judge.js +209 -0
  124. package/dist/eval/judge.js.map +1 -0
  125. package/dist/eval/replay.d.ts +23 -0
  126. package/dist/eval/replay.d.ts.map +1 -0
  127. package/dist/eval/replay.js +42 -0
  128. package/dist/eval/replay.js.map +1 -0
  129. package/dist/eval/runner.d.ts +35 -0
  130. package/dist/eval/runner.d.ts.map +1 -0
  131. package/dist/eval/runner.js +52 -0
  132. package/dist/eval/runner.js.map +1 -0
  133. package/dist/generators/agents-md-generator.d.ts +9 -0
  134. package/dist/generators/agents-md-generator.d.ts.map +1 -0
  135. package/dist/generators/agents-md-generator.js +71 -0
  136. package/dist/generators/agents-md-generator.js.map +1 -0
  137. package/dist/generators/blocks/domain-context.d.ts +7 -0
  138. package/dist/generators/blocks/domain-context.d.ts.map +1 -0
  139. package/dist/generators/blocks/domain-context.js +26 -0
  140. package/dist/generators/blocks/domain-context.js.map +1 -0
  141. package/dist/generators/blocks/drift-awareness.d.ts +6 -0
  142. package/dist/generators/blocks/drift-awareness.d.ts.map +1 -0
  143. package/dist/generators/blocks/drift-awareness.js +28 -0
  144. package/dist/generators/blocks/drift-awareness.js.map +1 -0
  145. package/dist/generators/blocks/evaluation-criteria.d.ts +7 -0
  146. package/dist/generators/blocks/evaluation-criteria.d.ts.map +1 -0
  147. package/dist/generators/blocks/evaluation-criteria.js +18 -0
  148. package/dist/generators/blocks/evaluation-criteria.js.map +1 -0
  149. package/dist/generators/blocks/guardrails.d.ts +6 -0
  150. package/dist/generators/blocks/guardrails.d.ts.map +1 -0
  151. package/dist/generators/blocks/guardrails.js +44 -0
  152. package/dist/generators/blocks/guardrails.js.map +1 -0
  153. package/dist/generators/blocks/identity.d.ts +6 -0
  154. package/dist/generators/blocks/identity.d.ts.map +1 -0
  155. package/dist/generators/blocks/identity.js +36 -0
  156. package/dist/generators/blocks/identity.js.map +1 -0
  157. package/dist/generators/blocks/memory-policy.d.ts +6 -0
  158. package/dist/generators/blocks/memory-policy.d.ts.map +1 -0
  159. package/dist/generators/blocks/memory-policy.js +34 -0
  160. package/dist/generators/blocks/memory-policy.js.map +1 -0
  161. package/dist/generators/blocks/playbook-index.d.ts +7 -0
  162. package/dist/generators/blocks/playbook-index.d.ts.map +1 -0
  163. package/dist/generators/blocks/playbook-index.js +14 -0
  164. package/dist/generators/blocks/playbook-index.js.map +1 -0
  165. package/dist/generators/blocks/session-rhythm.d.ts +6 -0
  166. package/dist/generators/blocks/session-rhythm.d.ts.map +1 -0
  167. package/dist/generators/blocks/session-rhythm.js +11 -0
  168. package/dist/generators/blocks/session-rhythm.js.map +1 -0
  169. package/dist/generators/blocks/skills-index.d.ts +6 -0
  170. package/dist/generators/blocks/skills-index.d.ts.map +1 -0
  171. package/dist/generators/blocks/skills-index.js +36 -0
  172. package/dist/generators/blocks/skills-index.js.map +1 -0
  173. package/dist/generators/blocks/tool-usage.d.ts +6 -0
  174. package/dist/generators/blocks/tool-usage.d.ts.map +1 -0
  175. package/dist/generators/blocks/tool-usage.js +31 -0
  176. package/dist/generators/blocks/tool-usage.js.map +1 -0
  177. package/dist/generators/blocks/vocabulary.d.ts +7 -0
  178. package/dist/generators/blocks/vocabulary.d.ts.map +1 -0
  179. package/dist/generators/blocks/vocabulary.js +27 -0
  180. package/dist/generators/blocks/vocabulary.js.map +1 -0
  181. package/dist/generators/claude-hooks-compat.d.ts +33 -0
  182. package/dist/generators/claude-hooks-compat.d.ts.map +1 -0
  183. package/dist/generators/claude-hooks-compat.js +322 -0
  184. package/dist/generators/claude-hooks-compat.js.map +1 -0
  185. package/dist/generators/claude-md-generator.d.ts +12 -0
  186. package/dist/generators/claude-md-generator.d.ts.map +1 -0
  187. package/dist/generators/claude-md-generator.js +60 -0
  188. package/dist/generators/claude-md-generator.js.map +1 -0
  189. package/dist/generators/index.d.ts +11 -0
  190. package/dist/generators/index.d.ts.map +1 -0
  191. package/dist/generators/index.js +11 -0
  192. package/dist/generators/index.js.map +1 -0
  193. package/dist/generators/soul-md-generator.d.ts +9 -0
  194. package/dist/generators/soul-md-generator.d.ts.map +1 -0
  195. package/dist/generators/soul-md-generator.js +104 -0
  196. package/dist/generators/soul-md-generator.js.map +1 -0
  197. package/dist/generators/types.d.ts +55 -0
  198. package/dist/generators/types.d.ts.map +1 -0
  199. package/dist/generators/types.js +7 -0
  200. package/dist/generators/types.js.map +1 -0
  201. package/dist/index.d.ts +19 -0
  202. package/dist/index.d.ts.map +1 -0
  203. package/dist/index.js +20 -0
  204. package/dist/index.js.map +1 -0
  205. package/dist/interview/index.d.ts +11 -0
  206. package/dist/interview/index.d.ts.map +1 -0
  207. package/dist/interview/index.js +11 -0
  208. package/dist/interview/index.js.map +1 -0
  209. package/dist/interview/interviewer.d.ts +94 -0
  210. package/dist/interview/interviewer.d.ts.map +1 -0
  211. package/dist/interview/interviewer.js +516 -0
  212. package/dist/interview/interviewer.js.map +1 -0
  213. package/dist/interview/questions.d.ts +15 -0
  214. package/dist/interview/questions.d.ts.map +1 -0
  215. package/dist/interview/questions.js +86 -0
  216. package/dist/interview/questions.js.map +1 -0
  217. package/dist/interview/rubric.d.ts +265 -0
  218. package/dist/interview/rubric.d.ts.map +1 -0
  219. package/dist/interview/rubric.js +74 -0
  220. package/dist/interview/rubric.js.map +1 -0
  221. package/dist/interview/session.d.ts +9 -0
  222. package/dist/interview/session.d.ts.map +1 -0
  223. package/dist/interview/session.js +33 -0
  224. package/dist/interview/session.js.map +1 -0
  225. package/dist/interview/universal-rubric.d.ts +11 -0
  226. package/dist/interview/universal-rubric.d.ts.map +1 -0
  227. package/dist/interview/universal-rubric.js +165 -0
  228. package/dist/interview/universal-rubric.js.map +1 -0
  229. package/dist/llm/index.d.ts +8 -0
  230. package/dist/llm/index.d.ts.map +1 -0
  231. package/dist/llm/index.js +8 -0
  232. package/dist/llm/index.js.map +1 -0
  233. package/dist/llm/provider.d.ts +62 -0
  234. package/dist/llm/provider.d.ts.map +1 -0
  235. package/dist/llm/provider.js +24 -0
  236. package/dist/llm/provider.js.map +1 -0
  237. package/dist/llm/providers/anthropic.d.ts +18 -0
  238. package/dist/llm/providers/anthropic.d.ts.map +1 -0
  239. package/dist/llm/providers/anthropic.js +56 -0
  240. package/dist/llm/providers/anthropic.js.map +1 -0
  241. package/dist/llm/providers/ollama.d.ts +17 -0
  242. package/dist/llm/providers/ollama.d.ts.map +1 -0
  243. package/dist/llm/providers/ollama.js +45 -0
  244. package/dist/llm/providers/ollama.js.map +1 -0
  245. package/dist/llm/providers/openai.d.ts +19 -0
  246. package/dist/llm/providers/openai.d.ts.map +1 -0
  247. package/dist/llm/providers/openai.js +52 -0
  248. package/dist/llm/providers/openai.js.map +1 -0
  249. package/dist/llm/resolve.d.ts +11 -0
  250. package/dist/llm/resolve.d.ts.map +1 -0
  251. package/dist/llm/resolve.js +56 -0
  252. package/dist/llm/resolve.js.map +1 -0
  253. package/dist/mcp/binder.d.ts +28 -0
  254. package/dist/mcp/binder.d.ts.map +1 -0
  255. package/dist/mcp/binder.js +87 -0
  256. package/dist/mcp/binder.js.map +1 -0
  257. package/dist/mcp/client.d.ts +99 -0
  258. package/dist/mcp/client.d.ts.map +1 -0
  259. package/dist/mcp/client.js +196 -0
  260. package/dist/mcp/client.js.map +1 -0
  261. package/dist/mcp/index.d.ts +9 -0
  262. package/dist/mcp/index.d.ts.map +1 -0
  263. package/dist/mcp/index.js +9 -0
  264. package/dist/mcp/index.js.map +1 -0
  265. package/dist/mcp/inspector.d.ts +29 -0
  266. package/dist/mcp/inspector.d.ts.map +1 -0
  267. package/dist/mcp/inspector.js +44 -0
  268. package/dist/mcp/inspector.js.map +1 -0
  269. package/dist/schemas/bindings.d.ts +248 -0
  270. package/dist/schemas/bindings.d.ts.map +1 -0
  271. package/dist/schemas/bindings.js +34 -0
  272. package/dist/schemas/bindings.js.map +1 -0
  273. package/dist/schemas/constitution.d.ts +229 -0
  274. package/dist/schemas/constitution.d.ts.map +1 -0
  275. package/dist/schemas/constitution.js +47 -0
  276. package/dist/schemas/constitution.js.map +1 -0
  277. package/dist/schemas/evalpack.d.ts +322 -0
  278. package/dist/schemas/evalpack.d.ts.map +1 -0
  279. package/dist/schemas/evalpack.js +43 -0
  280. package/dist/schemas/evalpack.js.map +1 -0
  281. package/dist/schemas/guardrails.d.ts +171 -0
  282. package/dist/schemas/guardrails.d.ts.map +1 -0
  283. package/dist/schemas/guardrails.js +35 -0
  284. package/dist/schemas/guardrails.js.map +1 -0
  285. package/dist/schemas/index.d.ts +18 -0
  286. package/dist/schemas/index.d.ts.map +1 -0
  287. package/dist/schemas/index.js +18 -0
  288. package/dist/schemas/index.js.map +1 -0
  289. package/dist/schemas/memory.d.ts +277 -0
  290. package/dist/schemas/memory.d.ts.map +1 -0
  291. package/dist/schemas/memory.js +42 -0
  292. package/dist/schemas/memory.js.map +1 -0
  293. package/dist/schemas/playbook.d.ts +270 -0
  294. package/dist/schemas/playbook.d.ts.map +1 -0
  295. package/dist/schemas/playbook.js +52 -0
  296. package/dist/schemas/playbook.js.map +1 -0
  297. package/dist/schemas/skills.d.ts +320 -0
  298. package/dist/schemas/skills.d.ts.map +1 -0
  299. package/dist/schemas/skills.js +84 -0
  300. package/dist/schemas/skills.js.map +1 -0
  301. package/dist/schemas/trace.d.ts +126 -0
  302. package/dist/schemas/trace.d.ts.map +1 -0
  303. package/dist/schemas/trace.js +70 -0
  304. package/dist/schemas/trace.js.map +1 -0
  305. package/dist/schemas/trust.d.ts +142 -0
  306. package/dist/schemas/trust.d.ts.map +1 -0
  307. package/dist/schemas/trust.js +30 -0
  308. package/dist/schemas/trust.js.map +1 -0
  309. package/dist/schemas/validators.d.ts +26 -0
  310. package/dist/schemas/validators.d.ts.map +1 -0
  311. package/dist/schemas/validators.js +79 -0
  312. package/dist/schemas/validators.js.map +1 -0
  313. package/dist/schemas/workspace.d.ts +725 -0
  314. package/dist/schemas/workspace.d.ts.map +1 -0
  315. package/dist/schemas/workspace.js +119 -0
  316. package/dist/schemas/workspace.js.map +1 -0
  317. package/dist/skills/constraints.d.ts +19 -0
  318. package/dist/skills/constraints.d.ts.map +1 -0
  319. package/dist/skills/constraints.js +91 -0
  320. package/dist/skills/constraints.js.map +1 -0
  321. package/dist/skills/generator.d.ts +13 -0
  322. package/dist/skills/generator.d.ts.map +1 -0
  323. package/dist/skills/generator.js +126 -0
  324. package/dist/skills/generator.js.map +1 -0
  325. package/dist/skills/graph.d.ts +42 -0
  326. package/dist/skills/graph.d.ts.map +1 -0
  327. package/dist/skills/graph.js +217 -0
  328. package/dist/skills/graph.js.map +1 -0
  329. package/dist/skills/index.d.ts +13 -0
  330. package/dist/skills/index.d.ts.map +1 -0
  331. package/dist/skills/index.js +13 -0
  332. package/dist/skills/index.js.map +1 -0
  333. package/dist/skills/linter.d.ts +22 -0
  334. package/dist/skills/linter.d.ts.map +1 -0
  335. package/dist/skills/linter.js +201 -0
  336. package/dist/skills/linter.js.map +1 -0
  337. package/dist/skills/packer.d.ts +27 -0
  338. package/dist/skills/packer.d.ts.map +1 -0
  339. package/dist/skills/packer.js +72 -0
  340. package/dist/skills/packer.js.map +1 -0
  341. package/dist/skills/tracker.d.ts +27 -0
  342. package/dist/skills/tracker.d.ts.map +1 -0
  343. package/dist/skills/tracker.js +131 -0
  344. package/dist/skills/tracker.js.map +1 -0
  345. package/dist/skills/versioner.d.ts +19 -0
  346. package/dist/skills/versioner.d.ts.map +1 -0
  347. package/dist/skills/versioner.js +76 -0
  348. package/dist/skills/versioner.js.map +1 -0
  349. package/dist/tracing/index.d.ts +8 -0
  350. package/dist/tracing/index.d.ts.map +1 -0
  351. package/dist/tracing/index.js +8 -0
  352. package/dist/tracing/index.js.map +1 -0
  353. package/dist/tracing/reader.d.ts +18 -0
  354. package/dist/tracing/reader.d.ts.map +1 -0
  355. package/dist/tracing/reader.js +34 -0
  356. package/dist/tracing/reader.js.map +1 -0
  357. package/dist/tracing/tracer.d.ts +22 -0
  358. package/dist/tracing/tracer.d.ts.map +1 -0
  359. package/dist/tracing/tracer.js +105 -0
  360. package/dist/tracing/tracer.js.map +1 -0
  361. package/dist/trust/auditor.d.ts +35 -0
  362. package/dist/trust/auditor.d.ts.map +1 -0
  363. package/dist/trust/auditor.js +78 -0
  364. package/dist/trust/auditor.js.map +1 -0
  365. package/dist/trust/index.d.ts +8 -0
  366. package/dist/trust/index.d.ts.map +1 -0
  367. package/dist/trust/index.js +8 -0
  368. package/dist/trust/index.js.map +1 -0
  369. package/dist/trust/manager.d.ts +18 -0
  370. package/dist/trust/manager.d.ts.map +1 -0
  371. package/dist/trust/manager.js +60 -0
  372. package/dist/trust/manager.js.map +1 -0
  373. package/dist/utils/filesystem.d.ts +15 -0
  374. package/dist/utils/filesystem.d.ts.map +1 -0
  375. package/dist/utils/filesystem.js +53 -0
  376. package/dist/utils/filesystem.js.map +1 -0
  377. package/dist/utils/hash.d.ts +7 -0
  378. package/dist/utils/hash.d.ts.map +1 -0
  379. package/dist/utils/hash.js +15 -0
  380. package/dist/utils/hash.js.map +1 -0
  381. package/dist/utils/index.d.ts +7 -0
  382. package/dist/utils/index.d.ts.map +1 -0
  383. package/dist/utils/index.js +7 -0
  384. package/dist/utils/index.js.map +1 -0
  385. package/dist/utils/yaml.d.ts +6 -0
  386. package/dist/utils/yaml.d.ts.map +1 -0
  387. package/dist/utils/yaml.js +14 -0
  388. package/dist/utils/yaml.js.map +1 -0
  389. package/package.json +58 -0
@@ -0,0 +1,76 @@
1
+ import { readFileIfExists, writeFileSafe, ensureDir } from '../utils/filesystem.js';
2
+ import { hashString } from '../utils/hash.js';
3
+ import { join } from 'path';
4
+ /**
5
+ * Skill Versioner — Track skill instruction history for rollback
6
+ *
7
+ * Stores version snapshots in .tastekit/skill-versions/{skill_id}.versions.json.
8
+ * Each version records content hash, timestamp, optional amendment ID, and eval score.
9
+ */
10
+ const VERSIONS_DIR = 'skill-versions';
11
+ export class SkillVersioner {
12
+ basePath;
13
+ constructor(workspacePath) {
14
+ this.basePath = join(workspacePath, VERSIONS_DIR);
15
+ ensureDir(this.basePath);
16
+ }
17
+ /** Record a new version of a skill's content. Returns the version number. */
18
+ recordVersion(skillId, content, opts) {
19
+ const history = this.getHistory(skillId);
20
+ const contentHash = hashString(content);
21
+ // Skip if content hasn't changed
22
+ if (history.versions.length > 0) {
23
+ const latest = history.versions[history.versions.length - 1];
24
+ if (latest.content_hash === contentHash) {
25
+ return latest;
26
+ }
27
+ }
28
+ const version = {
29
+ version: history.versions.length + 1,
30
+ content_hash: contentHash,
31
+ timestamp: new Date().toISOString(),
32
+ amendment_id: opts?.amendmentId,
33
+ eval_score: opts?.evalScore,
34
+ };
35
+ history.versions.push(version);
36
+ history.current = version.version;
37
+ this.saveHistory(skillId, history);
38
+ return version;
39
+ }
40
+ /** Get the full version history for a skill. */
41
+ getHistory(skillId) {
42
+ const filePath = this.historyPath(skillId);
43
+ const content = readFileIfExists(filePath);
44
+ if (content) {
45
+ return JSON.parse(content);
46
+ }
47
+ return {
48
+ skill_id: skillId,
49
+ versions: [],
50
+ current: 0,
51
+ };
52
+ }
53
+ /** Get a specific version. */
54
+ getVersion(skillId, versionNumber) {
55
+ const history = this.getHistory(skillId);
56
+ return history.versions.find(v => v.version === versionNumber) ?? null;
57
+ }
58
+ /** Set the current version pointer (for rollback). */
59
+ rollback(skillId, toVersion) {
60
+ const history = this.getHistory(skillId);
61
+ const target = history.versions.find(v => v.version === toVersion);
62
+ if (!target) {
63
+ throw new Error(`Version ${toVersion} not found for skill "${skillId}"`);
64
+ }
65
+ history.current = toVersion;
66
+ this.saveHistory(skillId, history);
67
+ return target;
68
+ }
69
+ historyPath(skillId) {
70
+ return join(this.basePath, `${skillId}.versions.json`);
71
+ }
72
+ saveHistory(skillId, history) {
73
+ writeFileSafe(this.historyPath(skillId), JSON.stringify(history, null, 2));
74
+ }
75
+ }
76
+ //# sourceMappingURL=versioner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"versioner.js","sourceRoot":"","sources":["../../skills/versioner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * TasteKit Tracing Module
3
+ *
4
+ * Trace-first logging for all operations.
5
+ */
6
+ export * from './tracer.js';
7
+ export * from './reader.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../tracing/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * TasteKit Tracing Module
3
+ *
4
+ * Trace-first logging for all operations.
5
+ */
6
+ export * from './tracer.js';
7
+ export * from './reader.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../tracing/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { TraceEvent } from '../schemas/trace.js';
2
+ /**
3
+ * Trace Reader
4
+ *
5
+ * Reads and parses trace files.
6
+ */
7
+ export declare class TraceReader {
8
+ readTrace(tracePath: string): TraceEvent[];
9
+ filterByEventType(events: TraceEvent[], eventType: string): TraceEvent[];
10
+ filterBySkill(events: TraceEvent[], skillId: string): TraceEvent[];
11
+ filterByActor(events: TraceEvent[], actor: 'agent' | 'user' | 'system'): TraceEvent[];
12
+ getErrors(events: TraceEvent[]): TraceEvent[];
13
+ getApprovals(events: TraceEvent[]): {
14
+ requests: TraceEvent[];
15
+ responses: TraceEvent[];
16
+ };
17
+ }
18
+ //# sourceMappingURL=reader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../../tracing/reader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD;;;;GAIG;AAEH,qBAAa,WAAW;IACtB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,EAAE;IAS1C,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU,EAAE;IAIxE,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE;IAIlE,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,EAAE;IAIrF,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE;IAI7C,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG;QAClC,QAAQ,EAAE,UAAU,EAAE,CAAC;QACvB,SAAS,EAAE,UAAU,EAAE,CAAC;KACzB;CAMF"}
@@ -0,0 +1,34 @@
1
+ import { readFileSync } from 'fs';
2
+ /**
3
+ * Trace Reader
4
+ *
5
+ * Reads and parses trace files.
6
+ */
7
+ export class TraceReader {
8
+ readTrace(tracePath) {
9
+ const content = readFileSync(tracePath, 'utf-8');
10
+ const lines = content.trim().split('\n');
11
+ return lines
12
+ .filter(line => line.length > 0)
13
+ .map(line => JSON.parse(line));
14
+ }
15
+ filterByEventType(events, eventType) {
16
+ return events.filter(e => e.event_type === eventType);
17
+ }
18
+ filterBySkill(events, skillId) {
19
+ return events.filter(e => e.skill_id === skillId);
20
+ }
21
+ filterByActor(events, actor) {
22
+ return events.filter(e => e.actor === actor);
23
+ }
24
+ getErrors(events) {
25
+ return this.filterByEventType(events, 'error');
26
+ }
27
+ getApprovals(events) {
28
+ return {
29
+ requests: this.filterByEventType(events, 'approval_requested'),
30
+ responses: this.filterByEventType(events, 'approval_response'),
31
+ };
32
+ }
33
+ }
34
+ //# sourceMappingURL=reader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reader.js","sourceRoot":"","sources":["../../tracing/reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAGlC;;;;GAIG;AAEH,MAAM,OAAO,WAAW;IACtB,SAAS,CAAC,SAAiB;QACzB,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEzC,OAAO,KAAK;aACT,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;aAC/B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAe,CAAC,CAAC;IACjD,CAAC;IAED,iBAAiB,CAAC,MAAoB,EAAE,SAAiB;QACvD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC;IACxD,CAAC;IAED,aAAa,CAAC,MAAoB,EAAE,OAAe;QACjD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,aAAa,CAAC,MAAoB,EAAE,KAAkC;QACpE,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED,SAAS,CAAC,MAAoB;QAC5B,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,YAAY,CAAC,MAAoB;QAI/B,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,oBAAoB,CAAC;YAC9D,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,mBAAmB,CAAC;SAC/D,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,22 @@
1
+ import { TraceEvent } from '../schemas/trace.js';
2
+ /**
3
+ * Tracer
4
+ *
5
+ * Writes trace events to JSONL files.
6
+ */
7
+ export declare class Tracer {
8
+ private runId;
9
+ private tracePath;
10
+ constructor(workspacePath: string, runId?: string);
11
+ getRunId(): string;
12
+ trace(event: Omit<TraceEvent, 'schema_version' | 'run_id' | 'timestamp'>): void;
13
+ tracePlan(data: any): void;
14
+ traceThink(data: any, skillId?: string): void;
15
+ traceToolCall(toolRef: string, input: any, skillId?: string, stepId?: string): void;
16
+ traceToolResult(toolRef: string, output: any, skillId?: string, stepId?: string): void;
17
+ traceApprovalRequest(data: any, riskScore?: number): void;
18
+ traceApprovalResponse(approved: boolean, reason?: string): void;
19
+ traceArtifactWritten(artifactPath: string, hash: string): void;
20
+ traceError(error: Error, context?: any): void;
21
+ }
22
+ //# sourceMappingURL=tracer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../tracing/tracer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAIjD;;;;GAIG;AAEH,qBAAa,MAAM;IACjB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,SAAS,CAAS;gBAEd,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;IASjD,QAAQ,IAAI,MAAM;IAIlB,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,gBAAgB,GAAG,QAAQ,GAAG,WAAW,CAAC,GAAG,IAAI;IAa/E,SAAS,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IAQ1B,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAS7C,aAAa,CACX,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,GAAG,EACV,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,GACd,IAAI;IAYP,eAAe,CACb,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,GAAG,EACX,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,GACd,IAAI;IAYP,oBAAoB,CAClB,IAAI,EAAE,GAAG,EACT,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI;IASP,qBAAqB,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAQ/D,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAS9D,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;CAW9C"}
@@ -0,0 +1,105 @@
1
+ import { appendFileSync } from 'fs';
2
+ import { join } from 'path';
3
+ import { hashObject } from '../utils/hash.js';
4
+ import { ensureDir, resolveTracesPath } from '../utils/filesystem.js';
5
+ /**
6
+ * Tracer
7
+ *
8
+ * Writes trace events to JSONL files.
9
+ */
10
+ export class Tracer {
11
+ runId;
12
+ tracePath;
13
+ constructor(workspacePath, runId) {
14
+ this.runId = runId || crypto.randomUUID();
15
+ const tracesDir = resolveTracesPath(workspacePath);
16
+ ensureDir(tracesDir);
17
+ this.tracePath = join(tracesDir, `${this.runId}.trace.v1.jsonl`);
18
+ }
19
+ getRunId() {
20
+ return this.runId;
21
+ }
22
+ trace(event) {
23
+ const fullEvent = {
24
+ schema_version: 'trace_event.v1',
25
+ run_id: this.runId,
26
+ timestamp: new Date().toISOString(),
27
+ ...event,
28
+ };
29
+ // Write as JSONL (one event per line)
30
+ const line = JSON.stringify(fullEvent) + '\n';
31
+ appendFileSync(this.tracePath, line);
32
+ }
33
+ tracePlan(data) {
34
+ this.trace({
35
+ actor: 'agent',
36
+ event_type: 'plan',
37
+ data,
38
+ });
39
+ }
40
+ traceThink(data, skillId) {
41
+ this.trace({
42
+ actor: 'agent',
43
+ event_type: 'think',
44
+ skill_id: skillId,
45
+ data,
46
+ });
47
+ }
48
+ traceToolCall(toolRef, input, skillId, stepId) {
49
+ this.trace({
50
+ actor: 'agent',
51
+ event_type: 'tool_call',
52
+ tool_ref: toolRef,
53
+ skill_id: skillId,
54
+ step_id: stepId,
55
+ input_hash: hashObject(input),
56
+ data: { input },
57
+ });
58
+ }
59
+ traceToolResult(toolRef, output, skillId, stepId) {
60
+ this.trace({
61
+ actor: 'agent',
62
+ event_type: 'tool_result',
63
+ tool_ref: toolRef,
64
+ skill_id: skillId,
65
+ step_id: stepId,
66
+ output_hash: hashObject(output),
67
+ data: { output },
68
+ });
69
+ }
70
+ traceApprovalRequest(data, riskScore) {
71
+ this.trace({
72
+ actor: 'agent',
73
+ event_type: 'approval_requested',
74
+ risk_score: riskScore,
75
+ data,
76
+ });
77
+ }
78
+ traceApprovalResponse(approved, reason) {
79
+ this.trace({
80
+ actor: 'user',
81
+ event_type: 'approval_response',
82
+ data: { approved, reason },
83
+ });
84
+ }
85
+ traceArtifactWritten(artifactPath, hash) {
86
+ this.trace({
87
+ actor: 'agent',
88
+ event_type: 'artifact_written',
89
+ output_hash: hash,
90
+ data: { path: artifactPath },
91
+ });
92
+ }
93
+ traceError(error, context) {
94
+ this.trace({
95
+ actor: 'system',
96
+ event_type: 'error',
97
+ error: error.message,
98
+ data: {
99
+ stack: error.stack,
100
+ context,
101
+ },
102
+ });
103
+ }
104
+ }
105
+ //# sourceMappingURL=tracer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracer.js","sourceRoot":"","sources":["../../tracing/tracer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { TrustV1 } from '../schemas/trust.js';
2
+ import { BindingsV1 } from '../schemas/bindings.js';
3
+ /**
4
+ * Trust Auditor
5
+ *
6
+ * Audits trust policy against current bindings and detects violations:
7
+ * - unpinned_server: bound server not in trust policy
8
+ * - fingerprint_mismatch: server fingerprint differs from pinned value
9
+ * - unpinned_skill: skill source not pinned (reserved for future use)
10
+ * - new_tool: tool appeared that was not in baseline bindings
11
+ */
12
+ export interface AuditViolation {
13
+ type: 'fingerprint_mismatch' | 'unpinned_server' | 'unpinned_skill' | 'new_tool';
14
+ severity: 'error' | 'warning';
15
+ message: string;
16
+ details?: Record<string, unknown>;
17
+ }
18
+ export interface AuditReport {
19
+ timestamp: string;
20
+ violations: AuditViolation[];
21
+ passed: boolean;
22
+ }
23
+ export declare class TrustAuditor {
24
+ /**
25
+ * Audit trust policy against current bindings.
26
+ *
27
+ * @param trust - Current trust policy
28
+ * @param bindings - Current MCP bindings
29
+ * @param previousBindings - Optional baseline bindings for new_tool detection.
30
+ * When provided, any tool in `bindings` that was not in `previousBindings`
31
+ * triggers a new_tool warning.
32
+ */
33
+ audit(trust: TrustV1, bindings: BindingsV1, previousBindings?: BindingsV1): AuditReport;
34
+ }
35
+ //# sourceMappingURL=auditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auditor.d.ts","sourceRoot":"","sources":["../../trust/auditor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD;;;;;;;;GAQG;AAEH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,sBAAsB,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,UAAU,CAAC;IACjF,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,YAAY;IACvB;;;;;;;;OAQG;IACH,KAAK,CACH,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,UAAU,EACpB,gBAAgB,CAAC,EAAE,UAAU,GAC5B,WAAW;CAqEf"}
@@ -0,0 +1,78 @@
1
+ export class TrustAuditor {
2
+ /**
3
+ * Audit trust policy against current bindings.
4
+ *
5
+ * @param trust - Current trust policy
6
+ * @param bindings - Current MCP bindings
7
+ * @param previousBindings - Optional baseline bindings for new_tool detection.
8
+ * When provided, any tool in `bindings` that was not in `previousBindings`
9
+ * triggers a new_tool warning.
10
+ */
11
+ audit(trust, bindings, previousBindings) {
12
+ const violations = [];
13
+ // Check all bound servers are pinned and fingerprints match
14
+ for (const server of bindings.servers) {
15
+ const pinned = trust.mcp_servers.find(s => s.url === server.url);
16
+ if (!pinned) {
17
+ violations.push({
18
+ type: 'unpinned_server',
19
+ severity: 'warning',
20
+ message: `MCP server not pinned: ${server.name}`,
21
+ details: { url: server.url },
22
+ });
23
+ }
24
+ else if (server.pinned_fingerprint && server.pinned_fingerprint !== pinned.fingerprint) {
25
+ violations.push({
26
+ type: 'fingerprint_mismatch',
27
+ severity: pinned.pin_mode === 'strict' ? 'error' : 'warning',
28
+ message: `Fingerprint mismatch for server: ${server.name}`,
29
+ details: {
30
+ expected: pinned.fingerprint,
31
+ actual: server.pinned_fingerprint,
32
+ },
33
+ });
34
+ }
35
+ else if (!server.pinned_fingerprint && pinned.fingerprint) {
36
+ // Server is in trust policy with a fingerprint but binding never pinned one
37
+ violations.push({
38
+ type: 'unpinned_server',
39
+ severity: 'warning',
40
+ message: `Server binding has no pinned fingerprint but trust policy expects one: ${server.name}`,
41
+ details: { url: server.url, expected_fingerprint: pinned.fingerprint },
42
+ });
43
+ }
44
+ }
45
+ // Detect new tools not present in baseline
46
+ if (previousBindings) {
47
+ const baselineToolRefs = new Set();
48
+ for (const server of previousBindings.servers) {
49
+ for (const tool of server.tools) {
50
+ baselineToolRefs.add(`${server.name}:${tool.tool_ref}`);
51
+ }
52
+ }
53
+ for (const server of bindings.servers) {
54
+ for (const tool of server.tools) {
55
+ const qualifiedRef = `${server.name}:${tool.tool_ref}`;
56
+ if (!baselineToolRefs.has(qualifiedRef)) {
57
+ violations.push({
58
+ type: 'new_tool',
59
+ severity: 'warning',
60
+ message: `New tool detected: ${qualifiedRef}`,
61
+ details: {
62
+ server: server.name,
63
+ tool_ref: tool.tool_ref,
64
+ risk_hints: tool.risk_hints,
65
+ },
66
+ });
67
+ }
68
+ }
69
+ }
70
+ }
71
+ return {
72
+ timestamp: new Date().toISOString(),
73
+ violations,
74
+ passed: violations.filter(v => v.severity === 'error').length === 0,
75
+ };
76
+ }
77
+ }
78
+ //# sourceMappingURL=auditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auditor.js","sourceRoot":"","sources":["../../trust/auditor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * TasteKit Trust Module
3
+ *
4
+ * Trust and provenance management for MCP servers and skill sources.
5
+ */
6
+ export * from './manager.js';
7
+ export * from './auditor.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../trust/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * TasteKit Trust Module
3
+ *
4
+ * Trust and provenance management for MCP servers and skill sources.
5
+ */
6
+ export * from './manager.js';
7
+ export * from './auditor.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../trust/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { TrustV1 } from '../schemas/trust.js';
2
+ /**
3
+ * Trust Manager
4
+ *
5
+ * Manages trust policy for MCP servers and skill sources.
6
+ */
7
+ export declare class TrustManager {
8
+ private policy;
9
+ constructor(policy: TrustV1);
10
+ pinMCPServer(url: string, fingerprint: string, mode?: 'strict' | 'warn'): void;
11
+ pinSkillSource(type: 'local' | 'git', pathOrUrl: string, hash: string, mode?: 'strict' | 'warn'): void;
12
+ verifyMCPServer(url: string, currentFingerprint: string): {
13
+ trusted: boolean;
14
+ reason?: string;
15
+ };
16
+ getPolicy(): TrustV1;
17
+ }
18
+ //# sourceMappingURL=manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../trust/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAoC,MAAM,qBAAqB,CAAC;AAGhF;;;;GAIG;AAEH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAU;gBAEZ,MAAM,EAAE,OAAO;IAI3B,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,GAAE,QAAQ,GAAG,MAAiB,GAAG,IAAI;IAexF,cAAc,CACZ,IAAI,EAAE,OAAO,GAAG,KAAK,EACrB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,QAAQ,GAAG,MAAiB,GACjC,IAAI;IAiBP,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG;QACxD,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;IAoBD,SAAS,IAAI,OAAO;CAGrB"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Trust Manager
3
+ *
4
+ * Manages trust policy for MCP servers and skill sources.
5
+ */
6
+ export class TrustManager {
7
+ policy;
8
+ constructor(policy) {
9
+ this.policy = policy;
10
+ }
11
+ pinMCPServer(url, fingerprint, mode = 'strict') {
12
+ const existing = this.policy.mcp_servers.find(s => s.url === url);
13
+ if (existing) {
14
+ existing.fingerprint = fingerprint;
15
+ existing.pin_mode = mode;
16
+ }
17
+ else {
18
+ this.policy.mcp_servers.push({
19
+ url,
20
+ fingerprint,
21
+ pin_mode: mode,
22
+ });
23
+ }
24
+ }
25
+ pinSkillSource(type, pathOrUrl, hash, mode = 'strict') {
26
+ const source = {
27
+ type,
28
+ pin_mode: mode,
29
+ };
30
+ if (type === 'local') {
31
+ source.path = pathOrUrl;
32
+ source.hash = hash;
33
+ }
34
+ else {
35
+ source.url = pathOrUrl;
36
+ source.commit = hash;
37
+ }
38
+ this.policy.skill_sources.push(source);
39
+ }
40
+ verifyMCPServer(url, currentFingerprint) {
41
+ const pinned = this.policy.mcp_servers.find(s => s.url === url);
42
+ if (!pinned) {
43
+ return {
44
+ trusted: false,
45
+ reason: 'Server not pinned in trust policy',
46
+ };
47
+ }
48
+ if (pinned.fingerprint !== currentFingerprint) {
49
+ return {
50
+ trusted: false,
51
+ reason: `Fingerprint mismatch (expected: ${pinned.fingerprint}, got: ${currentFingerprint})`,
52
+ };
53
+ }
54
+ return { trusted: true };
55
+ }
56
+ getPolicy() {
57
+ return this.policy;
58
+ }
59
+ }
60
+ //# sourceMappingURL=manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../trust/manager.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AAEH,MAAM,OAAO,YAAY;IACf,MAAM,CAAU;IAExB,YAAY,MAAe;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,YAAY,CAAC,GAAW,EAAE,WAAmB,EAAE,OAA0B,QAAQ;QAC/E,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QAElE,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,WAAW,GAAG,WAAW,CAAC;YACnC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;gBAC3B,GAAG;gBACH,WAAW;gBACX,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,cAAc,CACZ,IAAqB,EACrB,SAAiB,EACjB,IAAY,EACZ,OAA0B,QAAQ;QAElC,MAAM,MAAM,GAAqB;YAC/B,IAAI;YACJ,QAAQ,EAAE,IAAI;SACf,CAAC;QAEF,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;YACxB,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC;YACvB,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;QACvB,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,eAAe,CAAC,GAAW,EAAE,kBAA0B;QAIrD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QAEhE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,mCAAmC;aAC5C,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,WAAW,KAAK,kBAAkB,EAAE,CAAC;YAC9C,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,mCAAmC,MAAM,CAAC,WAAW,UAAU,kBAAkB,GAAG;aAC7F,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Filesystem utilities for TasteKit
3
+ */
4
+ export declare function ensureDir(path: string): void;
5
+ export declare function writeFileSafe(path: string, content: string): void;
6
+ export declare function readFileIfExists(path: string): string | null;
7
+ export declare function atomicWrite(path: string, content: string): void;
8
+ export declare function resolveArtifactPath(workspacePath: string, artifact: 'constitution' | 'guardrails' | 'memory'): string;
9
+ export declare function resolveTracesPath(workspacePath: string): string;
10
+ export declare function resolveSkillsPath(workspacePath: string): string;
11
+ export declare function resolvePlaybooksPath(workspacePath: string): string;
12
+ export declare function resolveSessionPath(workspacePath: string): string;
13
+ export declare function resolveTrustPath(workspacePath: string): string;
14
+ export declare function resolveBindingsPath(workspacePath: string): string;
15
+ //# sourceMappingURL=filesystem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../../utils/filesystem.ts"],"names":[],"mappings":"AAGA;;GAEG;AAEH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAI5C;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAGjE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK5D;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAK/D;AAED,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,cAAc,GAAG,YAAY,GAAG,QAAQ,GACjD,MAAM,CAOR;AAED,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAEjE"}
@@ -0,0 +1,53 @@
1
+ import { existsSync, mkdirSync, readFileSync, renameSync, writeFileSync } from 'fs';
2
+ import { dirname, join } from 'path';
3
+ /**
4
+ * Filesystem utilities for TasteKit
5
+ */
6
+ export function ensureDir(path) {
7
+ if (!existsSync(path)) {
8
+ mkdirSync(path, { recursive: true });
9
+ }
10
+ }
11
+ export function writeFileSafe(path, content) {
12
+ ensureDir(dirname(path));
13
+ writeFileSync(path, content, 'utf-8');
14
+ }
15
+ export function readFileIfExists(path) {
16
+ if (existsSync(path)) {
17
+ return readFileSync(path, 'utf-8');
18
+ }
19
+ return null;
20
+ }
21
+ export function atomicWrite(path, content) {
22
+ ensureDir(dirname(path));
23
+ const tempPath = `${path}.tmp`;
24
+ writeFileSync(tempPath, content, 'utf-8');
25
+ renameSync(tempPath, path);
26
+ }
27
+ export function resolveArtifactPath(workspacePath, artifact) {
28
+ const filenames = {
29
+ constitution: 'constitution.v1.json',
30
+ guardrails: 'guardrails.v1.yaml',
31
+ memory: 'memory.v1.yaml',
32
+ };
33
+ return join(workspacePath, filenames[artifact]);
34
+ }
35
+ export function resolveTracesPath(workspacePath) {
36
+ return join(workspacePath, 'traces');
37
+ }
38
+ export function resolveSkillsPath(workspacePath) {
39
+ return join(workspacePath, 'skills');
40
+ }
41
+ export function resolvePlaybooksPath(workspacePath) {
42
+ return join(workspacePath, 'playbooks');
43
+ }
44
+ export function resolveSessionPath(workspacePath) {
45
+ return join(workspacePath, 'session.json');
46
+ }
47
+ export function resolveTrustPath(workspacePath) {
48
+ return join(workspacePath, 'trust.v1.json');
49
+ }
50
+ export function resolveBindingsPath(workspacePath) {
51
+ return join(workspacePath, 'bindings.v1.json');
52
+ }
53
+ //# sourceMappingURL=filesystem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../../utils/filesystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACpF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAErC;;GAEG;AAEH,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,OAAe;IACzD,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACzB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,OAAO,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,OAAe;IACvD,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACzB,MAAM,QAAQ,GAAG,GAAG,IAAI,MAAM,CAAC;IAC/B,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1C,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,aAAqB,EACrB,QAAkD;IAElD,MAAM,SAAS,GAA2B;QACxC,YAAY,EAAE,sBAAsB;QACpC,UAAU,EAAE,oBAAoB;QAChC,MAAM,EAAE,gBAAgB;KACzB,CAAC;IACF,OAAO,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,aAAqB;IACrD,OAAO,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,aAAqB;IACrD,OAAO,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,aAAqB;IACxD,OAAO,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,aAAqB;IACtD,OAAO,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,aAAqB;IACpD,OAAO,IAAI,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,aAAqB;IACvD,OAAO,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC;AACjD,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Hashing utilities for deterministic compilation and fingerprinting
3
+ */
4
+ export declare function hashString(input: string): string;
5
+ export declare function hashObject(obj: any): string;
6
+ export declare function shortHash(input: string, length?: number): string;
7
+ //# sourceMappingURL=hash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../utils/hash.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAG3C;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,MAAU,GAAG,MAAM,CAEnE"}