teamcast 0.6.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 (344) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +654 -0
  3. package/dist/application/build-generated-files.d.ts +8 -0
  4. package/dist/application/build-generated-files.d.ts.map +1 -0
  5. package/dist/application/build-generated-files.js +16 -0
  6. package/dist/application/build-generated-files.js.map +1 -0
  7. package/dist/application/team.d.ts +27 -0
  8. package/dist/application/team.d.ts.map +1 -0
  9. package/dist/application/team.js +203 -0
  10. package/dist/application/team.js.map +1 -0
  11. package/dist/application/validate-team.d.ts +32 -0
  12. package/dist/application/validate-team.d.ts.map +1 -0
  13. package/dist/application/validate-team.js +132 -0
  14. package/dist/application/validate-team.js.map +1 -0
  15. package/dist/cli/diff.d.ts +3 -0
  16. package/dist/cli/diff.d.ts.map +1 -0
  17. package/dist/cli/diff.js +57 -0
  18. package/dist/cli/diff.js.map +1 -0
  19. package/dist/cli/explain.d.ts +3 -0
  20. package/dist/cli/explain.d.ts.map +1 -0
  21. package/dist/cli/explain.js +29 -0
  22. package/dist/cli/explain.js.map +1 -0
  23. package/dist/cli/generate.d.ts +3 -0
  24. package/dist/cli/generate.d.ts.map +1 -0
  25. package/dist/cli/generate.js +68 -0
  26. package/dist/cli/generate.js.map +1 -0
  27. package/dist/cli/import.d.ts +3 -0
  28. package/dist/cli/import.d.ts.map +1 -0
  29. package/dist/cli/import.js +93 -0
  30. package/dist/cli/import.js.map +1 -0
  31. package/dist/cli/index.d.ts +3 -0
  32. package/dist/cli/index.d.ts.map +1 -0
  33. package/dist/cli/index.js +19 -0
  34. package/dist/cli/index.js.map +1 -0
  35. package/dist/cli/init.d.ts +3 -0
  36. package/dist/cli/init.d.ts.map +1 -0
  37. package/dist/cli/init.js +155 -0
  38. package/dist/cli/init.js.map +1 -0
  39. package/dist/cli/manage.d.ts +3 -0
  40. package/dist/cli/manage.d.ts.map +1 -0
  41. package/dist/cli/manage.js +350 -0
  42. package/dist/cli/manage.js.map +1 -0
  43. package/dist/cli/manifest-validation.d.ts +13 -0
  44. package/dist/cli/manifest-validation.d.ts.map +1 -0
  45. package/dist/cli/manifest-validation.js +38 -0
  46. package/dist/cli/manifest-validation.js.map +1 -0
  47. package/dist/cli/reset.d.ts +3 -0
  48. package/dist/cli/reset.d.ts.map +1 -0
  49. package/dist/cli/reset.js +116 -0
  50. package/dist/cli/reset.js.map +1 -0
  51. package/dist/cli/validate.d.ts +3 -0
  52. package/dist/cli/validate.d.ts.map +1 -0
  53. package/dist/cli/validate.js +48 -0
  54. package/dist/cli/validate.js.map +1 -0
  55. package/dist/components/agent-fragments.d.ts +15 -0
  56. package/dist/components/agent-fragments.d.ts.map +1 -0
  57. package/dist/components/agent-fragments.js +163 -0
  58. package/dist/components/agent-fragments.js.map +1 -0
  59. package/dist/components/policy-fragments.d.ts +5 -0
  60. package/dist/components/policy-fragments.d.ts.map +1 -0
  61. package/dist/components/policy-fragments.js +125 -0
  62. package/dist/components/policy-fragments.js.map +1 -0
  63. package/dist/core/assertions.d.ts +28 -0
  64. package/dist/core/assertions.d.ts.map +1 -0
  65. package/dist/core/assertions.js +11 -0
  66. package/dist/core/assertions.js.map +1 -0
  67. package/dist/core/guards.d.ts +11 -0
  68. package/dist/core/guards.d.ts.map +1 -0
  69. package/dist/core/guards.js +20 -0
  70. package/dist/core/guards.js.map +1 -0
  71. package/dist/core/index.d.ts +9 -0
  72. package/dist/core/index.d.ts.map +1 -0
  73. package/dist/core/index.js +9 -0
  74. package/dist/core/index.js.map +1 -0
  75. package/dist/core/instructions.d.ts +10 -0
  76. package/dist/core/instructions.d.ts.map +1 -0
  77. package/dist/core/instructions.js +33 -0
  78. package/dist/core/instructions.js.map +1 -0
  79. package/dist/core/permissions.d.ts +10 -0
  80. package/dist/core/permissions.d.ts.map +1 -0
  81. package/dist/core/permissions.js +67 -0
  82. package/dist/core/permissions.js.map +1 -0
  83. package/dist/core/policy-evaluator.d.ts +5 -0
  84. package/dist/core/policy-evaluator.d.ts.map +1 -0
  85. package/dist/core/policy-evaluator.js +161 -0
  86. package/dist/core/policy-evaluator.js.map +1 -0
  87. package/dist/core/skill-resolver.d.ts +8 -0
  88. package/dist/core/skill-resolver.d.ts.map +1 -0
  89. package/dist/core/skill-resolver.js +17 -0
  90. package/dist/core/skill-resolver.js.map +1 -0
  91. package/dist/core/skills.d.ts +4 -0
  92. package/dist/core/skills.d.ts.map +1 -0
  93. package/dist/core/skills.js +14 -0
  94. package/dist/core/skills.js.map +1 -0
  95. package/dist/core/types.d.ts +117 -0
  96. package/dist/core/types.d.ts.map +1 -0
  97. package/dist/core/types.js +6 -0
  98. package/dist/core/types.js.map +1 -0
  99. package/dist/detector/index.d.ts +7 -0
  100. package/dist/detector/index.d.ts.map +1 -0
  101. package/dist/detector/index.js +57 -0
  102. package/dist/detector/index.js.map +1 -0
  103. package/dist/diff/index.d.ts +10 -0
  104. package/dist/diff/index.d.ts.map +1 -0
  105. package/dist/diff/index.js +26 -0
  106. package/dist/diff/index.js.map +1 -0
  107. package/dist/explainer/index.d.ts +3 -0
  108. package/dist/explainer/index.d.ts.map +1 -0
  109. package/dist/explainer/index.js +85 -0
  110. package/dist/explainer/index.js.map +1 -0
  111. package/dist/generator/file-policies.d.ts +2 -0
  112. package/dist/generator/file-policies.d.ts.map +1 -0
  113. package/dist/generator/file-policies.js +4 -0
  114. package/dist/generator/file-policies.js.map +1 -0
  115. package/dist/generator/index.d.ts +5 -0
  116. package/dist/generator/index.d.ts.map +1 -0
  117. package/dist/generator/index.js +10 -0
  118. package/dist/generator/index.js.map +1 -0
  119. package/dist/generator/renderers/agent-md.d.ts +5 -0
  120. package/dist/generator/renderers/agent-md.d.ts.map +1 -0
  121. package/dist/generator/renderers/agent-md.js +66 -0
  122. package/dist/generator/renderers/agent-md.js.map +1 -0
  123. package/dist/generator/renderers/agents-md.d.ts +4 -0
  124. package/dist/generator/renderers/agents-md.d.ts.map +1 -0
  125. package/dist/generator/renderers/agents-md.js +86 -0
  126. package/dist/generator/renderers/agents-md.js.map +1 -0
  127. package/dist/generator/renderers/claude-md.d.ts +4 -0
  128. package/dist/generator/renderers/claude-md.d.ts.map +1 -0
  129. package/dist/generator/renderers/claude-md.js +68 -0
  130. package/dist/generator/renderers/claude-md.js.map +1 -0
  131. package/dist/generator/renderers/codex-config.d.ts +4 -0
  132. package/dist/generator/renderers/codex-config.d.ts.map +1 -0
  133. package/dist/generator/renderers/codex-config.js +145 -0
  134. package/dist/generator/renderers/codex-config.js.map +1 -0
  135. package/dist/generator/renderers/codex-skill-md.d.ts +4 -0
  136. package/dist/generator/renderers/codex-skill-md.d.ts.map +1 -0
  137. package/dist/generator/renderers/codex-skill-md.js +47 -0
  138. package/dist/generator/renderers/codex-skill-md.js.map +1 -0
  139. package/dist/generator/renderers/settings-json.d.ts +5 -0
  140. package/dist/generator/renderers/settings-json.d.ts.map +1 -0
  141. package/dist/generator/renderers/settings-json.js +100 -0
  142. package/dist/generator/renderers/settings-json.js.map +1 -0
  143. package/dist/generator/renderers/skill-md.d.ts +4 -0
  144. package/dist/generator/renderers/skill-md.d.ts.map +1 -0
  145. package/dist/generator/renderers/skill-md.js +44 -0
  146. package/dist/generator/renderers/skill-md.js.map +1 -0
  147. package/dist/generator/state.d.ts +14 -0
  148. package/dist/generator/state.d.ts.map +1 -0
  149. package/dist/generator/state.js +76 -0
  150. package/dist/generator/state.js.map +1 -0
  151. package/dist/generator/targets/claude.d.ts +3 -0
  152. package/dist/generator/targets/claude.d.ts.map +1 -0
  153. package/dist/generator/targets/claude.js +24 -0
  154. package/dist/generator/targets/claude.js.map +1 -0
  155. package/dist/generator/targets/codex.d.ts +3 -0
  156. package/dist/generator/targets/codex.d.ts.map +1 -0
  157. package/dist/generator/targets/codex.js +19 -0
  158. package/dist/generator/targets/codex.js.map +1 -0
  159. package/dist/generator/targets/index.d.ts +4 -0
  160. package/dist/generator/targets/index.d.ts.map +1 -0
  161. package/dist/generator/targets/index.js +10 -0
  162. package/dist/generator/targets/index.js.map +1 -0
  163. package/dist/generator/targets/types.d.ts +8 -0
  164. package/dist/generator/targets/types.d.ts.map +1 -0
  165. package/dist/generator/targets/types.js +2 -0
  166. package/dist/generator/targets/types.js.map +1 -0
  167. package/dist/generator/types.d.ts +11 -0
  168. package/dist/generator/types.d.ts.map +1 -0
  169. package/dist/generator/types.js +2 -0
  170. package/dist/generator/types.js.map +1 -0
  171. package/dist/generator/writer.d.ts +5 -0
  172. package/dist/generator/writer.d.ts.map +1 -0
  173. package/dist/generator/writer.js +14 -0
  174. package/dist/generator/writer.js.map +1 -0
  175. package/dist/importer/index.d.ts +12 -0
  176. package/dist/importer/index.d.ts.map +1 -0
  177. package/dist/importer/index.js +295 -0
  178. package/dist/importer/index.js.map +1 -0
  179. package/dist/index.d.ts +3 -0
  180. package/dist/index.d.ts.map +1 -0
  181. package/dist/index.js +25 -0
  182. package/dist/index.js.map +1 -0
  183. package/dist/manifest/compat.d.ts +6 -0
  184. package/dist/manifest/compat.d.ts.map +1 -0
  185. package/dist/manifest/compat.js +56 -0
  186. package/dist/manifest/compat.js.map +1 -0
  187. package/dist/manifest/defaults.d.ts +4 -0
  188. package/dist/manifest/defaults.d.ts.map +1 -0
  189. package/dist/manifest/defaults.js +28 -0
  190. package/dist/manifest/defaults.js.map +1 -0
  191. package/dist/manifest/normalize.d.ts +14 -0
  192. package/dist/manifest/normalize.d.ts.map +1 -0
  193. package/dist/manifest/normalize.js +353 -0
  194. package/dist/manifest/normalize.js.map +1 -0
  195. package/dist/manifest/reader.d.ts +7 -0
  196. package/dist/manifest/reader.d.ts.map +1 -0
  197. package/dist/manifest/reader.js +36 -0
  198. package/dist/manifest/reader.js.map +1 -0
  199. package/dist/manifest/schema-validator.d.ts +13 -0
  200. package/dist/manifest/schema-validator.d.ts.map +1 -0
  201. package/dist/manifest/schema-validator.js +33 -0
  202. package/dist/manifest/schema-validator.js.map +1 -0
  203. package/dist/manifest/types.d.ts +150 -0
  204. package/dist/manifest/types.d.ts.map +1 -0
  205. package/dist/manifest/types.js +4 -0
  206. package/dist/manifest/types.js.map +1 -0
  207. package/dist/manifest/writer.d.ts +3 -0
  208. package/dist/manifest/writer.d.ts.map +1 -0
  209. package/dist/manifest/writer.js +10 -0
  210. package/dist/manifest/writer.js.map +1 -0
  211. package/dist/presets/index.d.ts +6 -0
  212. package/dist/presets/index.d.ts.map +1 -0
  213. package/dist/presets/index.js +56 -0
  214. package/dist/presets/index.js.map +1 -0
  215. package/dist/presets/types.d.ts +12 -0
  216. package/dist/presets/types.d.ts.map +1 -0
  217. package/dist/presets/types.js +2 -0
  218. package/dist/presets/types.js.map +1 -0
  219. package/dist/renderers/claude/agent-md.d.ts +5 -0
  220. package/dist/renderers/claude/agent-md.d.ts.map +1 -0
  221. package/dist/renderers/claude/agent-md.js +45 -0
  222. package/dist/renderers/claude/agent-md.js.map +1 -0
  223. package/dist/renderers/claude/docs.d.ts +5 -0
  224. package/dist/renderers/claude/docs.d.ts.map +1 -0
  225. package/dist/renderers/claude/docs.js +155 -0
  226. package/dist/renderers/claude/docs.js.map +1 -0
  227. package/dist/renderers/claude/index.d.ts +5 -0
  228. package/dist/renderers/claude/index.d.ts.map +1 -0
  229. package/dist/renderers/claude/index.js +23 -0
  230. package/dist/renderers/claude/index.js.map +1 -0
  231. package/dist/renderers/claude/policy-mapper.d.ts +10 -0
  232. package/dist/renderers/claude/policy-mapper.d.ts.map +1 -0
  233. package/dist/renderers/claude/policy-mapper.js +40 -0
  234. package/dist/renderers/claude/policy-mapper.js.map +1 -0
  235. package/dist/renderers/claude/settings.d.ts +5 -0
  236. package/dist/renderers/claude/settings.d.ts.map +1 -0
  237. package/dist/renderers/claude/settings.js +77 -0
  238. package/dist/renderers/claude/settings.js.map +1 -0
  239. package/dist/renderers/claude/skill-map.d.ts +16 -0
  240. package/dist/renderers/claude/skill-map.d.ts.map +1 -0
  241. package/dist/renderers/claude/skill-map.js +39 -0
  242. package/dist/renderers/claude/skill-map.js.map +1 -0
  243. package/dist/renderers/claude/skill-md.d.ts +4 -0
  244. package/dist/renderers/claude/skill-md.d.ts.map +1 -0
  245. package/dist/renderers/claude/skill-md.js +35 -0
  246. package/dist/renderers/claude/skill-md.js.map +1 -0
  247. package/dist/renderers/claude/tools.d.ts +4 -0
  248. package/dist/renderers/claude/tools.d.ts.map +1 -0
  249. package/dist/renderers/claude/tools.js +12 -0
  250. package/dist/renderers/claude/tools.js.map +1 -0
  251. package/dist/renderers/index.d.ts +3 -0
  252. package/dist/renderers/index.d.ts.map +1 -0
  253. package/dist/renderers/index.js +2 -0
  254. package/dist/renderers/index.js.map +1 -0
  255. package/dist/renderers/types.d.ts +12 -0
  256. package/dist/renderers/types.d.ts.map +1 -0
  257. package/dist/renderers/types.js +2 -0
  258. package/dist/renderers/types.js.map +1 -0
  259. package/dist/team-templates/policies.d.ts +4 -0
  260. package/dist/team-templates/policies.d.ts.map +1 -0
  261. package/dist/team-templates/policies.js +69 -0
  262. package/dist/team-templates/policies.js.map +1 -0
  263. package/dist/team-templates/presets.d.ts +6 -0
  264. package/dist/team-templates/presets.d.ts.map +1 -0
  265. package/dist/team-templates/presets.js +14 -0
  266. package/dist/team-templates/presets.js.map +1 -0
  267. package/dist/team-templates/roles.d.ts +22 -0
  268. package/dist/team-templates/roles.d.ts.map +1 -0
  269. package/dist/team-templates/roles.js +117 -0
  270. package/dist/team-templates/roles.js.map +1 -0
  271. package/dist/types/manifest.d.ts +11 -0
  272. package/dist/types/manifest.d.ts.map +1 -0
  273. package/dist/types/manifest.js +16 -0
  274. package/dist/types/manifest.js.map +1 -0
  275. package/dist/utils/chalk-helpers.d.ts +18 -0
  276. package/dist/utils/chalk-helpers.d.ts.map +1 -0
  277. package/dist/utils/chalk-helpers.js +51 -0
  278. package/dist/utils/chalk-helpers.js.map +1 -0
  279. package/dist/utils/prompts.d.ts +28 -0
  280. package/dist/utils/prompts.d.ts.map +1 -0
  281. package/dist/utils/prompts.js +51 -0
  282. package/dist/utils/prompts.js.map +1 -0
  283. package/dist/validator/checks/handoff-graph.d.ts +5 -0
  284. package/dist/validator/checks/handoff-graph.d.ts.map +1 -0
  285. package/dist/validator/checks/handoff-graph.js +65 -0
  286. package/dist/validator/checks/handoff-graph.js.map +1 -0
  287. package/dist/validator/checks/instruction-blocks.d.ts +5 -0
  288. package/dist/validator/checks/instruction-blocks.d.ts.map +1 -0
  289. package/dist/validator/checks/instruction-blocks.js +45 -0
  290. package/dist/validator/checks/instruction-blocks.js.map +1 -0
  291. package/dist/validator/checks/role-warnings.d.ts +5 -0
  292. package/dist/validator/checks/role-warnings.d.ts.map +1 -0
  293. package/dist/validator/checks/role-warnings.js +50 -0
  294. package/dist/validator/checks/role-warnings.js.map +1 -0
  295. package/dist/validator/checks/security-baseline.d.ts +3 -0
  296. package/dist/validator/checks/security-baseline.d.ts.map +1 -0
  297. package/dist/validator/checks/security-baseline.js +73 -0
  298. package/dist/validator/checks/security-baseline.js.map +1 -0
  299. package/dist/validator/checks/tool-conflicts.d.ts +5 -0
  300. package/dist/validator/checks/tool-conflicts.d.ts.map +1 -0
  301. package/dist/validator/checks/tool-conflicts.js +33 -0
  302. package/dist/validator/checks/tool-conflicts.js.map +1 -0
  303. package/dist/validator/index.d.ts +5 -0
  304. package/dist/validator/index.d.ts.map +1 -0
  305. package/dist/validator/index.js +28 -0
  306. package/dist/validator/index.js.map +1 -0
  307. package/dist/validator/reporter.d.ts +4 -0
  308. package/dist/validator/reporter.d.ts.map +1 -0
  309. package/dist/validator/reporter.js +76 -0
  310. package/dist/validator/reporter.js.map +1 -0
  311. package/dist/validator/types.d.ts +10 -0
  312. package/dist/validator/types.d.ts.map +1 -0
  313. package/dist/validator/types.js +2 -0
  314. package/dist/validator/types.js.map +1 -0
  315. package/dist/wizard/index.d.ts +7 -0
  316. package/dist/wizard/index.d.ts.map +1 -0
  317. package/dist/wizard/index.js +57 -0
  318. package/dist/wizard/index.js.map +1 -0
  319. package/dist/wizard/steps/agent-customization.d.ts +5 -0
  320. package/dist/wizard/steps/agent-customization.d.ts.map +1 -0
  321. package/dist/wizard/steps/agent-customization.js +68 -0
  322. package/dist/wizard/steps/agent-customization.js.map +1 -0
  323. package/dist/wizard/steps/confirm-generate.d.ts +3 -0
  324. package/dist/wizard/steps/confirm-generate.d.ts.map +1 -0
  325. package/dist/wizard/steps/confirm-generate.js +19 -0
  326. package/dist/wizard/steps/confirm-generate.js.map +1 -0
  327. package/dist/wizard/steps/custom-team.d.ts +3 -0
  328. package/dist/wizard/steps/custom-team.d.ts.map +1 -0
  329. package/dist/wizard/steps/custom-team.js +17 -0
  330. package/dist/wizard/steps/custom-team.js.map +1 -0
  331. package/dist/wizard/steps/project-context.d.ts +6 -0
  332. package/dist/wizard/steps/project-context.d.ts.map +1 -0
  333. package/dist/wizard/steps/project-context.js +24 -0
  334. package/dist/wizard/steps/project-context.js.map +1 -0
  335. package/dist/wizard/steps/team-selection.d.ts +5 -0
  336. package/dist/wizard/steps/team-selection.d.ts.map +1 -0
  337. package/dist/wizard/steps/team-selection.js +44 -0
  338. package/dist/wizard/steps/team-selection.js.map +1 -0
  339. package/package.json +56 -0
  340. package/schema/teamcast.schema.json +580 -0
  341. package/templates/presets/feature-team.yaml +77 -0
  342. package/templates/presets/research-and-build.yaml +69 -0
  343. package/templates/presets/secure-dev.yaml +93 -0
  344. package/templates/presets/solo-dev.yaml +32 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manage.js","sourceRoot":"","sources":["../../src/cli/manage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { TeamCastManifest } from '../types/manifest.js';
2
+ import type { ValidationResult } from '../validator/types.js';
3
+ export interface ManifestValidationSummary {
4
+ schemaErrors: Array<{
5
+ path: string;
6
+ message: string;
7
+ }>;
8
+ validationResults: ValidationResult[];
9
+ }
10
+ export declare function evaluateManifest(manifest: TeamCastManifest): ManifestValidationSummary;
11
+ export declare function manifestHasBlockingIssues(summary: ManifestValidationSummary): boolean;
12
+ export declare function printManifestValidation(summary: ManifestValidationSummary): void;
13
+ //# sourceMappingURL=manifest-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-validation.d.ts","sourceRoot":"","sources":["../../src/cli/manifest-validation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;CACvC;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,yBAAyB,CAcxF;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAErF;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,yBAAyB,GAAG,IAAI,CAkBhF"}
@@ -0,0 +1,38 @@
1
+ import chalk from 'chalk';
2
+ import { validateSchema } from '../manifest/schema-validator.js';
3
+ import { runValidation } from '../validator/index.js';
4
+ import { hasErrors, printValidationReport } from '../validator/reporter.js';
5
+ export function evaluateManifest(manifest) {
6
+ const schema = validateSchema(manifest);
7
+ if (!schema.valid) {
8
+ return {
9
+ schemaErrors: schema.errors,
10
+ validationResults: [],
11
+ };
12
+ }
13
+ return {
14
+ schemaErrors: [],
15
+ validationResults: runValidation(manifest),
16
+ };
17
+ }
18
+ export function manifestHasBlockingIssues(summary) {
19
+ return summary.schemaErrors.length > 0 || hasErrors(summary.validationResults);
20
+ }
21
+ export function printManifestValidation(summary) {
22
+ if (summary.schemaErrors.length > 0) {
23
+ console.log('');
24
+ console.log(chalk.red(' [x] Manifest failed schema validation'));
25
+ for (const error of summary.schemaErrors) {
26
+ console.log(chalk.dim(` ${error.path}: ${error.message}`));
27
+ }
28
+ console.log('');
29
+ return;
30
+ }
31
+ if (summary.validationResults.length > 0) {
32
+ printValidationReport(summary.validationResults);
33
+ return;
34
+ }
35
+ console.log(chalk.green(' [ok] Validation passed'));
36
+ console.log('');
37
+ }
38
+ //# sourceMappingURL=manifest-validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-validation.js","sourceRoot":"","sources":["../../src/cli/manifest-validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAQ5E,MAAM,UAAU,gBAAgB,CAAC,QAA4B;IAC3D,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAExC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO;YACL,YAAY,EAAE,MAAM,CAAC,MAAM;YAC3B,iBAAiB,EAAE,EAAE;SACtB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,YAAY,EAAE,EAAE;QAChB,iBAAiB,EAAE,aAAa,CAAC,QAAQ,CAAC;KAC3C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAAkC;IAC1E,OAAO,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAkC;IACxE,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC,CAAC;QAClE,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IAED,IAAI,OAAO,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,qBAAqB,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACjD,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ export declare function registerResetCommand(program: Command): void;
3
+ //# sourceMappingURL=reset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reset.d.ts","sourceRoot":"","sources":["../../src/cli/reset.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqDzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgF3D"}
@@ -0,0 +1,116 @@
1
+ import chalk from 'chalk';
2
+ import { existsSync, rmSync, readdirSync, statSync } from 'fs';
3
+ import { join } from 'path';
4
+ import { printSuccess, printHeader, printCommandSuccess, printDim, } from '../utils/chalk-helpers.js';
5
+ import { promptConfirm } from '../utils/prompts.js';
6
+ const GENERATED_PATHS = [
7
+ '.claude/agents',
8
+ '.claude/skills',
9
+ '.claude/settings.json',
10
+ '.claude/settings.local.json',
11
+ 'CLAUDE.md',
12
+ 'AGENTS.md',
13
+ ];
14
+ function collectExisting(cwd) {
15
+ const found = [];
16
+ for (const rel of GENERATED_PATHS) {
17
+ const abs = join(cwd, rel);
18
+ if (existsSync(abs))
19
+ found.push(rel);
20
+ }
21
+ return found;
22
+ }
23
+ function deleteFiles(cwd, paths) {
24
+ for (const rel of paths) {
25
+ const abs = join(cwd, rel);
26
+ if (!existsSync(abs))
27
+ continue;
28
+ const stat = statSync(abs);
29
+ if (stat.isDirectory()) {
30
+ rmSync(abs, { recursive: true });
31
+ }
32
+ else {
33
+ rmSync(abs);
34
+ }
35
+ printSuccess(`Deleted ${rel}`);
36
+ }
37
+ const claudeDir = join(cwd, '.claude');
38
+ if (existsSync(claudeDir)) {
39
+ const remaining = readdirSync(claudeDir);
40
+ if (remaining.length === 0) {
41
+ rmSync(claudeDir, { recursive: true });
42
+ printSuccess('Deleted .claude/');
43
+ }
44
+ }
45
+ }
46
+ export function registerResetCommand(program) {
47
+ program
48
+ .command('reset')
49
+ .description('Delete generated files, keep teamcast.yaml')
50
+ .option('--yes', 'Skip confirmation')
51
+ .action(async (options) => {
52
+ const cwd = process.cwd();
53
+ const existing = collectExisting(cwd);
54
+ if (existing.length === 0) {
55
+ console.log(chalk.dim('\nNo generated files found. Nothing to reset.'));
56
+ return;
57
+ }
58
+ printHeader('Reset');
59
+ console.log(chalk.bold('Files that will be deleted:'));
60
+ for (const path of existing) {
61
+ console.log(` ${chalk.dim('-')} ${path}`);
62
+ }
63
+ console.log('');
64
+ const confirmed = options.yes
65
+ ? true
66
+ : await promptConfirm({
67
+ message: 'Delete these files?',
68
+ default: false,
69
+ });
70
+ if (!confirmed) {
71
+ console.log(chalk.dim('Aborted.'));
72
+ return;
73
+ }
74
+ console.log('');
75
+ deleteFiles(cwd, existing);
76
+ printCommandSuccess('Reset complete. teamcast.yaml preserved.');
77
+ printDim(' Run "teamcast generate" to regenerate files.');
78
+ console.log('');
79
+ });
80
+ program
81
+ .command('clean')
82
+ .description('Delete all generated files and teamcast.yaml')
83
+ .option('--yes', 'Skip confirmation')
84
+ .action(async (options) => {
85
+ const cwd = process.cwd();
86
+ const allPaths = [...collectExisting(cwd)];
87
+ if (existsSync(join(cwd, 'teamcast.yaml'))) {
88
+ allPaths.push('teamcast.yaml');
89
+ }
90
+ if (allPaths.length === 0) {
91
+ console.log(chalk.dim('\nNo TeamCast files found. Nothing to clean.'));
92
+ return;
93
+ }
94
+ printHeader('Clean');
95
+ console.log(chalk.bold('Files that will be deleted:'));
96
+ for (const path of allPaths) {
97
+ console.log(` ${chalk.dim('-')} ${path}`);
98
+ }
99
+ console.log('');
100
+ const confirmed = options.yes
101
+ ? true
102
+ : await promptConfirm({
103
+ message: chalk.yellow('Delete everything including teamcast.yaml?'),
104
+ default: false,
105
+ });
106
+ if (!confirmed) {
107
+ console.log(chalk.dim('Aborted.'));
108
+ return;
109
+ }
110
+ console.log('');
111
+ deleteFiles(cwd, allPaths);
112
+ printCommandSuccess('Clean complete. All TeamCast files removed.');
113
+ console.log('');
114
+ });
115
+ }
116
+ //# sourceMappingURL=reset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reset.js","sourceRoot":"","sources":["../../src/cli/reset.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EACL,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,QAAQ,GACT,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,eAAe,GAAG;IACtB,gBAAgB;IAChB,gBAAgB;IAChB,uBAAuB;IACvB,6BAA6B;IAC7B,WAAW;IACX,WAAW;CACZ,CAAC;AAEF,SAAS,eAAe,CAAC,GAAW;IAClC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC3B,IAAI,UAAU,CAAC,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,GAAW,EAAE,KAAe;IAC/C,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC;QACD,YAAY,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACvC,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACvC,YAAY,CAAC,kBAAkB,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,4CAA4C,CAAC;SACzD,MAAM,CAAC,OAAO,EAAE,mBAAmB,CAAC;SACpC,MAAM,CAAC,KAAK,EAAE,OAA0B,EAAE,EAAE;QAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;QAEtC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC,CAAC;YACxE,OAAO;QACT,CAAC;QAED,WAAW,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;QACvD,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG;YAC3B,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,MAAM,aAAa,CAAC;gBAClB,OAAO,EAAE,qBAAqB;gBAC9B,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;QAEP,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;YACnC,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC3B,mBAAmB,CAAC,0CAA0C,CAAC,CAAC;QAChE,QAAQ,CAAC,gDAAgD,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,8CAA8C,CAAC;SAC3D,MAAM,CAAC,OAAO,EAAE,mBAAmB,CAAC;SACpC,MAAM,CAAC,KAAK,EAAE,OAA0B,EAAE,EAAE;QAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,CAAC,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC;YAC3C,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC,CAAC;YACvE,OAAO;QACT,CAAC;QAED,WAAW,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;QACvD,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG;YAC3B,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,MAAM,aAAa,CAAC;gBAClB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,4CAA4C,CAAC;gBACnE,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;QAEP,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;YACnC,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC3B,mBAAmB,CAAC,6CAA6C,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ export declare function registerValidateCommand(program: Command): void;
3
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/cli/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4C9D"}
@@ -0,0 +1,48 @@
1
+ import chalk from 'chalk';
2
+ import { readManifest, ManifestError } from '../manifest/reader.js';
3
+ import { runValidation } from '../validator/index.js';
4
+ import { printValidationReport, hasErrors } from '../validator/reporter.js';
5
+ export function registerValidateCommand(program) {
6
+ program
7
+ .command('validate')
8
+ .description('Validate the agent team configuration for conflicts and security issues')
9
+ .option('--strict', 'Exit with error code on warnings too')
10
+ .option('--format <format>', 'output format: text or json', 'text')
11
+ .action((options) => {
12
+ const cwd = process.cwd();
13
+ let manifest;
14
+ try {
15
+ manifest = readManifest(cwd);
16
+ }
17
+ catch (err) {
18
+ if (err instanceof ManifestError) {
19
+ if (options.format === 'json') {
20
+ process.stdout.write(JSON.stringify({ error: err.message, details: err.details ?? [] }, null, 2) + '\n');
21
+ }
22
+ else {
23
+ console.error(chalk.red(`\nError: ${err.message}`));
24
+ if (err.details?.length) {
25
+ for (const d of err.details)
26
+ console.error(chalk.dim(` ${d}`));
27
+ }
28
+ }
29
+ process.exit(1);
30
+ }
31
+ throw err;
32
+ }
33
+ const results = runValidation(manifest);
34
+ const policyAssertionCount = manifest.policies?.assertions?.length ?? 0;
35
+ if (options.format === 'json') {
36
+ process.stdout.write(JSON.stringify(results, null, 2) + '\n');
37
+ }
38
+ else {
39
+ printValidationReport(results, policyAssertionCount);
40
+ }
41
+ const shouldFail = hasErrors(results) ||
42
+ (options.strict && results.some((r) => r.severity === 'warning'));
43
+ if (shouldFail) {
44
+ process.exit(1);
45
+ }
46
+ });
47
+ }
48
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/cli/validate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE5E,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,OAAO;SACJ,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,yEAAyE,CAAC;SACtF,MAAM,CAAC,UAAU,EAAE,sCAAsC,CAAC;SAC1D,MAAM,CAAC,mBAAmB,EAAE,6BAA6B,EAAE,MAAM,CAAC;SAClE,MAAM,CAAC,CAAC,OAA8C,EAAE,EAAE;QACzD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAE1B,IAAI,QAAQ,CAAC;QACb,IAAI,CAAC;YACH,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,aAAa,EAAE,CAAC;gBACjC,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;gBAC3G,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;oBACpD,IAAI,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;wBACxB,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,OAAO;4BAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;oBAClE,CAAC;gBACH,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;QAED,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,oBAAoB,GAAG,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC;QAExE,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,qBAAqB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,UAAU,GACd,SAAS,CAAC,OAAO,CAAC;YAClB,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC;QAEpE,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { InstructionBlock } from '../core/instructions.js';
2
+ import type { AgentRuntime } from '../core/types.js';
3
+ import { type SkillToolMap } from '../core/skill-resolver.js';
4
+ export type CapabilityTraitName = 'base-read' | 'file-authoring' | 'command-execution' | 'web-research' | 'delegation' | 'no-file-edits' | 'no-commands' | 'no-web';
5
+ export type InstructionFragmentName = 'coordination-core' | 'delegate-first' | 'planning-core' | 'planning-read-only' | 'research-core' | 'research-citation' | 'research-no-file-edits' | 'development-core' | 'development-workflow' | 'tester-core' | 'tester-read-only' | 'review-core' | 'review-feedback' | 'security-audit-core' | 'security-audit-severity' | 'research-handoff' | 'secure-planning' | 'secure-development' | 'secure-development-tests' | 'security-review-gate' | 'post-audit-review' | 'solo-dev-core' | 'solo-dev-workflow' | 'solo-dev-style' | 'feature-orchestrator-workflow' | 'feature-orchestrator-output' | 'feature-planner-workflow' | 'feature-planner-read-only' | 'feature-developer-core' | 'feature-developer-workflow' | 'feature-developer-summary' | 'feature-reviewer-checklist' | 'feature-reviewer-style' | 'research-orchestrator-core' | 'research-orchestrator-workflow' | 'research-orchestrator-output' | 'research-planner-core' | 'research-planner-constraints' | 'research-developer-core' | 'research-developer-tests' | 'secure-orchestrator-core' | 'secure-orchestrator-workflow' | 'secure-orchestrator-gate' | 'post-audit-review-core';
6
+ export declare function listCapabilityTraits(): CapabilityTraitName[];
7
+ export declare function listInstructionFragments(): InstructionFragmentName[];
8
+ /**
9
+ * Resolve capability traits to allowed/disallowed tool lists using the provided skill mapping.
10
+ * Pass the platform-specific skill map (e.g. CLAUDE_SKILL_MAP) from the caller layer.
11
+ */
12
+ export declare function resolveCapabilityTraits(traits: CapabilityTraitName[] | undefined, skillMap: SkillToolMap): Pick<AgentRuntime, 'tools' | 'disallowedTools'>;
13
+ export declare function resolveInstructionFragments(fragments: InstructionFragmentName[] | undefined, extraBlocks?: InstructionBlock[]): InstructionBlock[];
14
+ export declare function mergeRuntimeWithTraits(base: Omit<AgentRuntime, 'tools' | 'disallowedTools'> & Pick<AgentRuntime, 'tools' | 'disallowedTools'>, capabilityTraits: CapabilityTraitName[] | undefined, skillMap: SkillToolMap): AgentRuntime;
15
+ //# sourceMappingURL=agent-fragments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-fragments.d.ts","sourceRoot":"","sources":["../../src/components/agent-fragments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE5E,MAAM,MAAM,mBAAmB,GAC3B,WAAW,GACX,gBAAgB,GAChB,mBAAmB,GACnB,cAAc,GACd,YAAY,GACZ,eAAe,GACf,aAAa,GACb,QAAQ,CAAC;AAEb,MAAM,MAAM,uBAAuB,GAC/B,mBAAmB,GACnB,gBAAgB,GAChB,eAAe,GACf,oBAAoB,GACpB,eAAe,GACf,mBAAmB,GACnB,wBAAwB,GACxB,kBAAkB,GAClB,sBAAsB,GACtB,aAAa,GACb,kBAAkB,GAClB,aAAa,GACb,iBAAiB,GACjB,qBAAqB,GACrB,yBAAyB,GACzB,kBAAkB,GAClB,iBAAiB,GACjB,oBAAoB,GACpB,0BAA0B,GAC1B,sBAAsB,GACtB,mBAAmB,GACnB,eAAe,GACf,mBAAmB,GACnB,gBAAgB,GAChB,+BAA+B,GAC/B,6BAA6B,GAC7B,0BAA0B,GAC1B,2BAA2B,GAC3B,wBAAwB,GACxB,4BAA4B,GAC5B,2BAA2B,GAC3B,4BAA4B,GAC5B,wBAAwB,GACxB,4BAA4B,GAC5B,gCAAgC,GAChC,8BAA8B,GAC9B,uBAAuB,GACvB,8BAA8B,GAC9B,yBAAyB,GACzB,0BAA0B,GAC1B,0BAA0B,GAC1B,8BAA8B,GAC9B,0BAA0B,GAC1B,wBAAwB,CAAC;AAgQ7B,wBAAgB,oBAAoB,IAAI,mBAAmB,EAAE,CAE5D;AAED,wBAAgB,wBAAwB,IAAI,uBAAuB,EAAE,CAEpE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,mBAAmB,EAAE,GAAG,SAAS,EACzC,QAAQ,EAAE,YAAY,GACrB,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,iBAAiB,CAAC,CAsBjD;AAED,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,uBAAuB,EAAE,GAAG,SAAS,EAChD,WAAW,GAAE,gBAAgB,EAAO,GACnC,gBAAgB,EAAE,CAUpB;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,iBAAiB,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,iBAAiB,CAAC,EACvG,gBAAgB,EAAE,mBAAmB,EAAE,GAAG,SAAS,EACnD,QAAQ,EAAE,YAAY,GACrB,YAAY,CAOd"}
@@ -0,0 +1,163 @@
1
+ import { expandSkills } from '../core/skill-resolver.js';
2
+ function block(kind, content, title) {
3
+ return { kind, content, title };
4
+ }
5
+ const CAPABILITY_TRAITS = {
6
+ 'base-read': {
7
+ skills: ['read_files', 'search'],
8
+ },
9
+ 'file-authoring': {
10
+ skills: ['write_files'],
11
+ },
12
+ 'command-execution': {
13
+ skills: ['execute'],
14
+ },
15
+ 'web-research': {
16
+ skills: ['web'],
17
+ },
18
+ delegation: {
19
+ skills: ['delegate'],
20
+ },
21
+ 'no-file-edits': {
22
+ deny_skills: ['write_files'],
23
+ },
24
+ 'no-commands': {
25
+ deny_skills: ['execute'],
26
+ },
27
+ 'no-web': {
28
+ deny_skills: ['web'],
29
+ },
30
+ };
31
+ const INSTRUCTION_FRAGMENTS = {
32
+ 'coordination-core': block('behavior', 'You are the coordinator. Analyze requests, break them into subtasks, and delegate to the appropriate team members.'),
33
+ 'delegate-first': block('delegation', 'Prefer delegation over direct execution. Keep the team moving and synthesize results clearly.'),
34
+ 'planning-core': block('behavior', 'You are the planner. Read the codebase, identify patterns, and produce step-by-step implementation plans.'),
35
+ 'planning-read-only': block('safety', 'Never modify files. Focus on understanding and planning.'),
36
+ 'research-core': block('behavior', 'You are the researcher. Search the web, read documentation, and provide structured research reports.'),
37
+ 'research-citation': block('style', 'Always cite your sources. Summarize findings clearly.'),
38
+ 'research-no-file-edits': block('safety', 'Do not modify any files.'),
39
+ 'development-core': block('behavior', 'You are the developer. Implement features based on the plan, write tests, and verify the result.'),
40
+ 'development-workflow': block('workflow', 'Read the relevant code before editing. Keep changes focused and validate the result.'),
41
+ 'tester-core': block('behavior', 'You are the tester. Run tests, analyze failures, and report results.'),
42
+ 'tester-read-only': block('safety', 'Do not modify source code.'),
43
+ 'review-core': block('behavior', 'You are the reviewer. Review code for correctness, style, security, and performance.'),
44
+ 'review-feedback': block('style', 'Provide actionable feedback. Do not modify files yourself.'),
45
+ 'security-audit-core': block('behavior', 'You are the security auditor. Check for injection, auth flaws, data exposure, misconfigurations, and vulnerable dependencies.'),
46
+ 'security-audit-severity': block('safety', 'Treat security issues as release-blocking when severity is high.'),
47
+ 'research-handoff': block('workflow', 'You do not have internet access - ask the orchestrator to delegate research if you need information.'),
48
+ 'secure-planning': block('behavior', [
49
+ 'You are the planner. In addition to the implementation plan, always include:',
50
+ '- Security considerations for each step',
51
+ '- Potential attack surfaces introduced by the changes',
52
+ '- Recommendations for input validation and error handling',
53
+ ].join('\n')),
54
+ 'secure-development': block('behavior', [
55
+ 'You are the developer. Write secure code:',
56
+ '- Validate all inputs at system boundaries',
57
+ '- Never trust user input',
58
+ '- Avoid SQL injection, XSS, command injection',
59
+ '- Use parameterized queries',
60
+ '- Never log sensitive data',
61
+ ].join('\n')),
62
+ 'secure-development-tests': block('style', 'Always write security-focused tests alongside regular tests.'),
63
+ 'security-review-gate': block('safety', 'If you find critical issues, block the PR and explain what must be fixed. Do not modify files yourself.'),
64
+ 'post-audit-review': block('style', 'Focus on code quality, readability, test coverage, and maintainability. Do not modify files yourself.'),
65
+ 'solo-dev-core': block('behavior', 'You are a capable full-stack developer. Handle the task end-to-end.'),
66
+ 'solo-dev-workflow': block('workflow', [
67
+ '1. Understand the request',
68
+ '2. Read relevant code',
69
+ '3. Make a plan',
70
+ '4. Implement with tests',
71
+ '5. Verify the result',
72
+ ].join('\n')),
73
+ 'solo-dev-style': block('style', 'Follow existing code style. Keep changes minimal and focused.'),
74
+ 'feature-orchestrator-workflow': block('workflow', [
75
+ 'Always start by reading the task carefully. Then decide:',
76
+ '- Does this need research or planning first? -> delegate to planner',
77
+ '- Is the plan ready and implementation needed? -> delegate to developer',
78
+ '- Is the implementation done and needs review? -> delegate to reviewer',
79
+ ].join('\n')),
80
+ 'feature-orchestrator-output': block('delegation', 'Never write code or modify files yourself. Your output is always a delegation or a final summary.'),
81
+ 'feature-planner-workflow': block('workflow', 'Always read the relevant files before making conclusions. Search for existing patterns and utilities that can be reused.'),
82
+ 'feature-planner-read-only': block('safety', 'Your output is always a plan - never code changes.'),
83
+ 'feature-reviewer-checklist': block('workflow', [
84
+ 'Read the changed files carefully. Check for:',
85
+ '- Correctness and edge cases',
86
+ '- Security vulnerabilities',
87
+ '- Code style and readability',
88
+ '- Test coverage',
89
+ ].join('\n')),
90
+ 'feature-reviewer-style': block('style', 'Provide clear, actionable recommendations. Do not modify files yourself.'),
91
+ 'feature-developer-core': block('behavior', 'You are the developer. Your job is to implement the plan precisely.'),
92
+ 'feature-developer-workflow': block('workflow', 'Always start with tests. Follow the existing code style. Do not access the internet.'),
93
+ 'feature-developer-summary': block('style', 'When done, summarize what you changed and why.'),
94
+ 'research-orchestrator-core': block('behavior', 'You are the coordinator. For tasks requiring external research, delegate to the researcher first.'),
95
+ 'research-orchestrator-workflow': block('workflow', 'Once research is done and a plan is ready, delegate implementation to the developer.'),
96
+ 'research-orchestrator-output': block('delegation', 'Never write code yourself.'),
97
+ 'research-planner-core': block('behavior', 'You are the planner. Use the research findings and codebase knowledge to produce a clear plan.'),
98
+ 'research-planner-constraints': block('safety', 'Do not write code. Do not access the internet.'),
99
+ 'research-developer-core': block('behavior', 'You are the developer. Implement the plan provided to you.'),
100
+ 'research-developer-tests': block('style', 'Always write tests alongside code.'),
101
+ 'secure-orchestrator-core': block('behavior', 'You are the security-conscious coordinator. Every implementation must pass security review.'),
102
+ 'secure-orchestrator-workflow': block('workflow', 'Workflow: planner -> developer -> security-auditor -> reviewer'),
103
+ 'secure-orchestrator-gate': block('delegation', 'Never skip the security audit step. Never write code yourself.'),
104
+ 'post-audit-review-core': block('behavior', 'You are the reviewer. Code has already passed security audit.'),
105
+ };
106
+ function dedupeTools(tools) {
107
+ if (!tools?.length)
108
+ return undefined;
109
+ return [...new Set(tools)];
110
+ }
111
+ function mergeUnique(left, right) {
112
+ const merged = [...(left ?? []), ...(right ?? [])];
113
+ return merged.length > 0 ? [...new Set(merged)] : undefined;
114
+ }
115
+ export function listCapabilityTraits() {
116
+ return Object.keys(CAPABILITY_TRAITS);
117
+ }
118
+ export function listInstructionFragments() {
119
+ return Object.keys(INSTRUCTION_FRAGMENTS);
120
+ }
121
+ /**
122
+ * Resolve capability traits to allowed/disallowed tool lists using the provided skill mapping.
123
+ * Pass the platform-specific skill map (e.g. CLAUDE_SKILL_MAP) from the caller layer.
124
+ */
125
+ export function resolveCapabilityTraits(traits, skillMap) {
126
+ const allowTools = [];
127
+ const denyTools = [];
128
+ for (const traitName of traits ?? []) {
129
+ const trait = CAPABILITY_TRAITS[traitName];
130
+ if (!trait) {
131
+ throw new Error(`Unknown capability trait "${traitName}"`);
132
+ }
133
+ if (trait.skills?.length) {
134
+ allowTools.push(...expandSkills(trait.skills, skillMap));
135
+ }
136
+ if (trait.deny_skills?.length) {
137
+ denyTools.push(...expandSkills(trait.deny_skills, skillMap));
138
+ }
139
+ }
140
+ return {
141
+ tools: dedupeTools(allowTools),
142
+ disallowedTools: dedupeTools(denyTools),
143
+ };
144
+ }
145
+ export function resolveInstructionFragments(fragments, extraBlocks = []) {
146
+ const blocks = (fragments ?? []).map((fragmentName) => {
147
+ const fragment = INSTRUCTION_FRAGMENTS[fragmentName];
148
+ if (!fragment) {
149
+ throw new Error(`Unknown instruction fragment "${fragmentName}"`);
150
+ }
151
+ return { ...fragment };
152
+ });
153
+ return [...extraBlocks.map((blockEntry) => ({ ...blockEntry })), ...blocks];
154
+ }
155
+ export function mergeRuntimeWithTraits(base, capabilityTraits, skillMap) {
156
+ const composed = resolveCapabilityTraits(capabilityTraits, skillMap);
157
+ return {
158
+ ...base,
159
+ tools: mergeUnique(composed.tools, base.tools),
160
+ disallowedTools: mergeUnique(composed.disallowedTools, base.disallowedTools),
161
+ };
162
+ }
163
+ //# sourceMappingURL=agent-fragments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-fragments.js","sourceRoot":"","sources":["../../src/components/agent-fragments.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { TeamPolicies } from '../core/types.js';
2
+ export type PolicyFragmentName = 'allow-npm-run' | 'allow-npm-test' | 'allow-git-read' | 'allow-git-write' | 'allow-npx' | 'allow-npm-audit' | 'ask-git-push' | 'deny-destructive-shell' | 'deny-network-downloads' | 'deny-dynamic-exec' | 'deny-env-files' | 'sandbox-default';
3
+ export declare function listPolicyFragments(): PolicyFragmentName[];
4
+ export declare function composePoliciesFromFragments(fragments: PolicyFragmentName[] | undefined, overrides?: TeamPolicies): TeamPolicies;
5
+ //# sourceMappingURL=policy-fragments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy-fragments.d.ts","sourceRoot":"","sources":["../../src/components/policy-fragments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,MAAM,kBAAkB,GAC1B,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,iBAAiB,GACjB,WAAW,GACX,iBAAiB,GACjB,cAAc,GACd,wBAAwB,GACxB,wBAAwB,GACxB,mBAAmB,GACnB,gBAAgB,GAChB,iBAAiB,CAAC;AAwHtB,wBAAgB,mBAAmB,IAAI,kBAAkB,EAAE,CAE1D;AAED,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,kBAAkB,EAAE,GAAG,SAAS,EAC3C,SAAS,GAAE,YAAiB,GAC3B,YAAY,CAWd"}
@@ -0,0 +1,125 @@
1
+ const POLICY_FRAGMENTS = {
2
+ 'allow-npm-run': {
3
+ permissions: {
4
+ allow: ['project.commands'],
5
+ },
6
+ },
7
+ 'allow-npm-test': {
8
+ permissions: {
9
+ allow: ['tests'],
10
+ },
11
+ },
12
+ 'allow-git-read': {
13
+ permissions: {
14
+ allow: ['git.read'],
15
+ },
16
+ },
17
+ 'allow-git-write': {
18
+ permissions: {
19
+ allow: ['git.write'],
20
+ },
21
+ },
22
+ 'allow-npx': {
23
+ permissions: {
24
+ allow: ['package.exec'],
25
+ },
26
+ },
27
+ 'allow-npm-audit': {
28
+ permissions: {
29
+ allow: ['security.audit'],
30
+ },
31
+ },
32
+ 'ask-git-push': {
33
+ permissions: {
34
+ ask: ['git.push'],
35
+ },
36
+ },
37
+ 'deny-destructive-shell': {
38
+ permissions: {
39
+ deny: ['destructive-shell'],
40
+ },
41
+ },
42
+ 'deny-network-downloads': {
43
+ permissions: {
44
+ deny: ['downloads'],
45
+ },
46
+ },
47
+ 'deny-dynamic-exec': {
48
+ permissions: {
49
+ deny: ['dynamic-exec'],
50
+ },
51
+ },
52
+ 'deny-env-files': {
53
+ permissions: {
54
+ deny: ['env.write'],
55
+ },
56
+ },
57
+ 'sandbox-default': {
58
+ sandbox: {
59
+ enabled: true,
60
+ autoAllowBash: true,
61
+ },
62
+ },
63
+ };
64
+ function mergeUnique(left, right) {
65
+ const merged = [...(left ?? []), ...(right ?? [])];
66
+ return merged.length > 0 ? [...new Set(merged)] : undefined;
67
+ }
68
+ function mergePolicies(base, extra) {
69
+ return {
70
+ permissions: base.permissions || extra.permissions
71
+ ? {
72
+ allow: mergeUnique(base.permissions?.allow, extra.permissions?.allow),
73
+ ask: mergeUnique(base.permissions?.ask, extra.permissions?.ask),
74
+ deny: mergeUnique(base.permissions?.deny, extra.permissions?.deny),
75
+ defaultMode: extra.permissions?.defaultMode ?? base.permissions?.defaultMode,
76
+ rawRules: base.permissions?.rawRules || extra.permissions?.rawRules
77
+ ? {
78
+ allow: mergeUnique(base.permissions?.rawRules?.allow, extra.permissions?.rawRules?.allow),
79
+ ask: mergeUnique(base.permissions?.rawRules?.ask, extra.permissions?.rawRules?.ask),
80
+ deny: mergeUnique(base.permissions?.rawRules?.deny, extra.permissions?.rawRules?.deny),
81
+ }
82
+ : undefined,
83
+ }
84
+ : undefined,
85
+ sandbox: base.sandbox || extra.sandbox
86
+ ? {
87
+ enabled: extra.sandbox?.enabled ?? base.sandbox?.enabled,
88
+ autoAllowBash: extra.sandbox?.autoAllowBash ?? base.sandbox?.autoAllowBash,
89
+ excludedCommands: mergeUnique(base.sandbox?.excludedCommands, extra.sandbox?.excludedCommands),
90
+ network: base.sandbox?.network || extra.sandbox?.network
91
+ ? {
92
+ allowUnixSockets: mergeUnique(base.sandbox?.network?.allowUnixSockets, extra.sandbox?.network?.allowUnixSockets),
93
+ allowLocalBinding: extra.sandbox?.network?.allowLocalBinding ?? base.sandbox?.network?.allowLocalBinding,
94
+ }
95
+ : undefined,
96
+ }
97
+ : undefined,
98
+ hooks: base.hooks || extra.hooks
99
+ ? {
100
+ preToolUse: [...(base.hooks?.preToolUse ?? []), ...(extra.hooks?.preToolUse ?? [])],
101
+ postToolUse: [...(base.hooks?.postToolUse ?? []), ...(extra.hooks?.postToolUse ?? [])],
102
+ notification: [...(base.hooks?.notification ?? []), ...(extra.hooks?.notification ?? [])],
103
+ }
104
+ : undefined,
105
+ network: base.network || extra.network
106
+ ? {
107
+ allowedDomains: mergeUnique(base.network?.allowedDomains, extra.network?.allowedDomains),
108
+ }
109
+ : undefined,
110
+ };
111
+ }
112
+ export function listPolicyFragments() {
113
+ return Object.keys(POLICY_FRAGMENTS);
114
+ }
115
+ export function composePoliciesFromFragments(fragments, overrides = {}) {
116
+ const composed = (fragments ?? []).reduce((acc, fragmentName) => {
117
+ const fragment = POLICY_FRAGMENTS[fragmentName];
118
+ if (!fragment) {
119
+ throw new Error(`Unknown policy fragment "${fragmentName}"`);
120
+ }
121
+ return mergePolicies(acc, fragment);
122
+ }, {});
123
+ return mergePolicies(composed, overrides);
124
+ }
125
+ //# sourceMappingURL=policy-fragments.js.map