@aifabrix/builder 2.53.1 → 2.55.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 (470) hide show
  1. package/README.md +8 -0
  2. package/bin/aifabrix.js +2 -2
  3. package/lib/agent-kit/apply-ops.js +82 -0
  4. package/lib/agent-kit/checksums.js +28 -0
  5. package/lib/agent-kit/classify.js +113 -0
  6. package/lib/agent-kit/claude-shim.js +61 -0
  7. package/lib/agent-kit/constants.js +55 -0
  8. package/lib/agent-kit/file-list.js +103 -0
  9. package/lib/agent-kit/host-approve.js +130 -0
  10. package/lib/agent-kit/hosting/github.js +63 -0
  11. package/lib/agent-kit/hosts.js +71 -0
  12. package/lib/agent-kit/init.js +319 -0
  13. package/lib/agent-kit/kit-root.js +17 -0
  14. package/lib/agent-kit/managed-section.js +79 -0
  15. package/lib/agent-kit/package-load.js +45 -0
  16. package/lib/agent-kit/plan-ops.js +69 -0
  17. package/lib/agent-kit/remote-prompts.js +239 -0
  18. package/lib/agent-kit/render-host-markdown.js +40 -0
  19. package/lib/agent-kit/repo-guard.js +47 -0
  20. package/lib/agent-kit/report.js +107 -0
  21. package/lib/agent-kit/run.js +82 -0
  22. package/lib/agent-kit/scm/git.js +122 -0
  23. package/lib/agent-kit/state-file.js +83 -0
  24. package/lib/agent-kit/status.js +50 -0
  25. package/lib/agent-kit/v1-detect.js +81 -0
  26. package/lib/agent-kit/validate-kit.js +87 -0
  27. package/lib/agent-kit/workspace-name.js +40 -0
  28. package/lib/agent-kit/workspace-skeleton.js +103 -0
  29. package/lib/api/assistants.api.js +8 -5
  30. package/lib/api/channel-identity.api.js +41 -0
  31. package/lib/api/evidence-authoring.api.js +5 -1
  32. package/lib/api/evidence.api.js +2 -0
  33. package/lib/api/role-assistant-test-pack.api.js +86 -0
  34. package/lib/api/types/evidence.types.js +2 -0
  35. package/lib/api/work-search.api.js +163 -0
  36. package/lib/api/work.api.js +19 -12
  37. package/lib/app/list-external-systems.js +2 -1
  38. package/lib/app/show-display.js +33 -6
  39. package/lib/app/show.js +25 -2
  40. package/lib/channels/add-channel.js +164 -126
  41. package/lib/channels/approval-guides/chatgpt.js +14 -18
  42. package/lib/channels/approval-guides/claude.js +29 -0
  43. package/lib/channels/approval-guides/index.js +88 -22
  44. package/lib/channels/approval-guides/mcp-client.js +27 -0
  45. package/lib/channels/approval-guides/microsoft-copilot.js +52 -3
  46. package/lib/channels/approval-guides/slack.js +10 -10
  47. package/lib/channels/approval-guides/teams-bot.js +8 -12
  48. package/lib/channels/channel-add-continuations.js +91 -0
  49. package/lib/channels/channel-add-ensure.js +124 -27
  50. package/lib/channels/channel-add-existing.js +160 -28
  51. package/lib/channels/channel-add-failure.js +61 -0
  52. package/lib/channels/channel-add-remaining.js +492 -0
  53. package/lib/channels/channel-add-tty.js +190 -0
  54. package/lib/channels/channel-add-wizard-config.js +138 -0
  55. package/lib/channels/channel-add-wizard.js +250 -0
  56. package/lib/channels/channel-artifact-generator.js +27 -13
  57. package/lib/channels/channel-cardinality.js +83 -0
  58. package/lib/channels/channel-catalog-icon.js +45 -0
  59. package/lib/channels/channel-cli-instructions.js +75 -0
  60. package/lib/channels/channel-configuration-map.js +213 -0
  61. package/lib/channels/channel-credential.js +11 -14
  62. package/lib/channels/channel-definition-project.js +101 -0
  63. package/lib/channels/channel-definition-registry.js +154 -0
  64. package/lib/channels/channel-definition-status.js +115 -0
  65. package/lib/channels/channel-description.js +60 -2
  66. package/lib/channels/channel-discovery.js +16 -2
  67. package/lib/channels/channel-external-system.js +86 -9
  68. package/lib/channels/channel-install-envelope-actions.js +88 -0
  69. package/lib/channels/channel-install-envelope-microsoft.js +155 -0
  70. package/lib/channels/channel-install-envelope.js +358 -0
  71. package/lib/channels/channel-install-help-md.js +172 -0
  72. package/lib/channels/channel-install-http-payload.js +62 -0
  73. package/lib/channels/channel-install-inventory.js +115 -0
  74. package/lib/channels/channel-install-profiles.js +90 -0
  75. package/lib/channels/channel-instance-collision.js +118 -0
  76. package/lib/channels/channel-instance-key.js +100 -0
  77. package/lib/channels/channel-instance-materialize.js +240 -0
  78. package/lib/channels/channel-integration-generator.js +18 -9
  79. package/lib/channels/channel-integration-template.js +101 -22
  80. package/lib/channels/channel-inventory-fetch.js +79 -0
  81. package/lib/channels/channel-oauth-preflight.js +104 -0
  82. package/lib/channels/channel-package-version.js +76 -0
  83. package/lib/channels/channel-predefined-client.js +154 -0
  84. package/lib/channels/channel-probe.js +7 -2
  85. package/lib/channels/channel-runtime-resolver.js +194 -72
  86. package/lib/channels/channel-status-display.js +86 -16
  87. package/lib/channels/channel-targets.js +132 -92
  88. package/lib/channels/chatgpt-callback.js +318 -0
  89. package/lib/channels/chatgpt-channel-add.js +229 -0
  90. package/lib/channels/chatgpt-preflight.js +396 -0
  91. package/lib/channels/chatgpt-runtime-contract.js +17 -0
  92. package/lib/channels/chatgpt-setup-values.js +124 -0
  93. package/lib/channels/claude-callback.js +67 -0
  94. package/lib/channels/claude-channel-add.js +254 -0
  95. package/lib/channels/claude-runtime-contract.js +40 -0
  96. package/lib/channels/claude-runtime.js +58 -0
  97. package/lib/channels/claude-setup-values.js +92 -0
  98. package/lib/channels/mcp-client/config-merge.js +148 -0
  99. package/lib/channels/mcp-client/ensure-client.js +231 -0
  100. package/lib/channels/mcp-client/paths.js +53 -0
  101. package/lib/channels/mcp-client/profiles.js +122 -0
  102. package/lib/channels/mcp-client/redirect-uris.js +99 -0
  103. package/lib/channels/mcp-client/runtime.js +59 -0
  104. package/lib/channels/mcp-client-channel-add.js +186 -0
  105. package/lib/channels/microsoft-copilot-channel-add.js +117 -7
  106. package/lib/channels/microsoft-copilot-entra-identifier-uris.js +187 -0
  107. package/lib/channels/microsoft-copilot-entra-sso-form.js +106 -18
  108. package/lib/channels/microsoft-copilot-entra-sso.js +31 -2
  109. package/lib/channels/microsoft-copilot-package-prior.js +107 -0
  110. package/lib/channels/microsoft-copilot-package.js +29 -28
  111. package/lib/channels/microsoft-provisioning/a365.js +80 -0
  112. package/lib/channels/microsoft-provisioning/auth-config.js +240 -0
  113. package/lib/channels/microsoft-provisioning/auth.js +179 -0
  114. package/lib/channels/microsoft-provisioning/cli.js +71 -0
  115. package/lib/channels/microsoft-provisioning/constants.js +75 -0
  116. package/lib/channels/microsoft-provisioning/errors.js +117 -0
  117. package/lib/channels/microsoft-provisioning/index.js +55 -0
  118. package/lib/channels/microsoft-provisioning/install-atk.js +158 -0
  119. package/lib/channels/microsoft-provisioning/install-teams.js +115 -0
  120. package/lib/channels/microsoft-provisioning/login-portal-device.js +236 -0
  121. package/lib/channels/microsoft-provisioning/login-portal-parse.js +71 -0
  122. package/lib/channels/microsoft-provisioning/login-portal-teams.js +193 -0
  123. package/lib/channels/microsoft-provisioning/login-portal.js +230 -0
  124. package/lib/channels/microsoft-provisioning/persist.js +110 -0
  125. package/lib/channels/microsoft-provisioning/teams-bot-args.js +119 -0
  126. package/lib/channels/microsoft-provisioning/teams-bot-controller.js +123 -0
  127. package/lib/channels/microsoft-provisioning/teams-bot-parse.js +134 -0
  128. package/lib/channels/microsoft-provisioning/teams-bot-persist.js +113 -0
  129. package/lib/channels/microsoft-provisioning/teams-bot-provision.js +234 -0
  130. package/lib/channels/microsoft-provisioning/teams-bot-secrets.js +45 -0
  131. package/lib/channels/microsoft-provisioning/teams-cli.js +82 -0
  132. package/lib/channels/runtime-tool-catalog.js +5 -2
  133. package/lib/channels/slack-channel-add-portal.js +130 -0
  134. package/lib/channels/slack-channel-add-tty-auth.js +95 -0
  135. package/lib/channels/slack-channel-add.js +311 -0
  136. package/lib/channels/slack-mcp-callback.js +51 -0
  137. package/lib/channels/slack-mcp-runtime.js +156 -0
  138. package/lib/channels/slack-provisioning/apps.js +181 -0
  139. package/lib/channels/slack-provisioning/auth-store.js +110 -0
  140. package/lib/channels/slack-provisioning/auth-ticket.js +185 -0
  141. package/lib/channels/slack-provisioning/auth.js +115 -0
  142. package/lib/channels/slack-provisioning/callbacks.js +41 -0
  143. package/lib/channels/slack-provisioning/cli.js +226 -0
  144. package/lib/channels/slack-provisioning/constants.js +37 -0
  145. package/lib/channels/slack-provisioning/credentials.js +169 -0
  146. package/lib/channels/slack-provisioning/curl-shim.js +132 -0
  147. package/lib/channels/slack-provisioning/developer-install.js +118 -0
  148. package/lib/channels/slack-provisioning/env-file.js +120 -0
  149. package/lib/channels/slack-provisioning/errors.js +47 -0
  150. package/lib/channels/slack-provisioning/go-ca-bundle.js +137 -0
  151. package/lib/channels/slack-provisioning/index.js +250 -0
  152. package/lib/channels/slack-provisioning/install-cli.js +335 -0
  153. package/lib/channels/slack-provisioning/manifest.js +89 -0
  154. package/lib/channels/slack-provisioning/oauth-lock.js +33 -0
  155. package/lib/channels/slack-provisioning/offer-cli.js +113 -0
  156. package/lib/channels/slack-provisioning/onboard-members.js +122 -0
  157. package/lib/channels/slack-provisioning/onboard.js +89 -0
  158. package/lib/channels/slack-provisioning/persist.js +95 -0
  159. package/lib/channels/slack-provisioning/remaining-urls.js +158 -0
  160. package/lib/channels/slack-provisioning/with-curl-on-path.js +53 -0
  161. package/lib/channels/teams-bot-channel-add.js +94 -0
  162. package/lib/channels/vendor-dataplane-url.js +249 -0
  163. package/lib/cli/index.js +4 -0
  164. package/lib/cli/setup-certification-commands.js +2 -2
  165. package/lib/cli/setup-certification.help.js +5 -1
  166. package/lib/cli/setup-external-system-help.js +2 -0
  167. package/lib/cli/setup-external-system.js +1 -1
  168. package/lib/commands/agent-kit-help.js +79 -0
  169. package/lib/commands/agent-kit.js +346 -0
  170. package/lib/commands/channel-add-help.js +366 -0
  171. package/lib/commands/channel-add-setup.js +162 -80
  172. package/lib/commands/channel-configure.js +118 -0
  173. package/lib/commands/channel.js +10 -1
  174. package/lib/commands/datasource-capability-relate-cli.js +5 -4
  175. package/lib/commands/governance-upload-external.js +6 -3
  176. package/lib/commands/lifecycle-command-action.js +2 -5
  177. package/lib/commands/lifecycle-external.js +93 -21
  178. package/lib/commands/repair-auth-apply.js +1 -1
  179. package/lib/commands/repair-datasource-key-skip.js +39 -0
  180. package/lib/commands/repair-datasource-keys.js +24 -12
  181. package/lib/commands/repair-datasource-test-payload.js +4 -2
  182. package/lib/commands/repair-datasource-webhooks-sync-bridge.js +23 -2
  183. package/lib/commands/repair-datasource.js +3 -0
  184. package/lib/commands/repair-external-run.js +59 -25
  185. package/lib/commands/repair-openapi-rest-runtime.js +127 -0
  186. package/lib/commands/repair-orchestration-tag-merge.js +339 -0
  187. package/lib/commands/repair-rbac-catalog-defaults.js +96 -0
  188. package/lib/commands/repair-rbac-platform-preset.js +26 -15
  189. package/lib/commands/repair-rbac-reader-roles.js +8 -21
  190. package/lib/commands/repair-rbac.js +26 -44
  191. package/lib/commands/repair-system-permissions.js +24 -22
  192. package/lib/commands/role-assistant-copy-output.js +61 -0
  193. package/lib/commands/role-assistant-copy.js +155 -0
  194. package/lib/commands/role-assistant-test-output.js +22 -9
  195. package/lib/commands/role-assistant-test-result-rows.js +42 -0
  196. package/lib/commands/role-assistant.js +150 -43
  197. package/lib/commands/search.js +143 -0
  198. package/lib/commands/test-e2e-external.js +148 -21
  199. package/lib/commands/test-trust-external.js +7 -5
  200. package/lib/commands/upload-credential-push-log.js +2 -1
  201. package/lib/commands/upload-publish-context.js +1 -1
  202. package/lib/commands/upload-role-assistant-shell.js +124 -0
  203. package/lib/commands/upload-sidecar-followups.js +10 -4
  204. package/lib/commands/upload.js +18 -3
  205. package/lib/commands/verify-operations-skip-e2e.js +131 -0
  206. package/lib/commands/verify-operations-step-plan.js +6 -33
  207. package/lib/commands/verify-operations-steps.js +3 -1
  208. package/lib/core/secrets-docker-env.js +4 -1
  209. package/lib/core/secrets-env-content.js +17 -3
  210. package/lib/datasource/capability/capability-manifest.js +0 -3
  211. package/lib/datasource/capability/copy-test-payload.js +3 -0
  212. package/lib/datasource/capability/relate-operations.js +28 -10
  213. package/lib/datasource/capability/run-capability-relate.js +48 -25
  214. package/lib/datasource/datasource-identifier.js +13 -5
  215. package/lib/deployment/deployer-poll-run.js +117 -35
  216. package/lib/external-system/deploy-dataplane-published.js +70 -0
  217. package/lib/external-system/deploy-helpers.js +26 -1
  218. package/lib/external-system/deploy.js +22 -8
  219. package/lib/external-system/download-helpers.js +29 -2
  220. package/lib/external-system/download-role-assistant.js +109 -4
  221. package/lib/external-system/download.js +46 -30
  222. package/lib/external-system/sync-deploy-manifest.js +3 -2
  223. package/lib/external-system/upload-identity.js +42 -0
  224. package/lib/generator/index.js +19 -15
  225. package/lib/generator/split.js +13 -2
  226. package/lib/generator/wizard-datasource-key.js +54 -0
  227. package/lib/generator/wizard.js +55 -54
  228. package/lib/integration-definition/apply-datasource-keys.js +75 -0
  229. package/lib/integration-definition/apply-relationships.js +195 -0
  230. package/lib/integration-definition/apply-static-enterprise.js +229 -0
  231. package/lib/integration-definition/apply-system-file.js +71 -0
  232. package/lib/integration-definition/apply-test-endpoint.js +89 -0
  233. package/lib/integration-definition/apply-viewpoint-defaults.js +157 -0
  234. package/lib/integration-definition/apply.js +78 -59
  235. package/lib/integration-definition/enrich-openapi-operations.js +36 -10
  236. package/lib/integration-definition/enrich-openapi-pick.js +87 -0
  237. package/lib/lifecycle/role-assistant-governance.js +181 -0
  238. package/lib/lifecycle/scenario-upload.js +181 -30
  239. package/lib/programmatic/builder-api-cors.js +143 -0
  240. package/lib/programmatic/builder-api-request.js +6 -0
  241. package/lib/programmatic/builder-api-route-dispatch.js +56 -42
  242. package/lib/programmatic/builder-api-server.js +8 -1
  243. package/lib/programmatic/capability-registry.js +55 -0
  244. package/lib/programmatic/channel-install-help-resolve.js +359 -0
  245. package/lib/programmatic/channel-install-session.js +218 -0
  246. package/lib/programmatic/help-content/channel-onboarding.md +2 -0
  247. package/lib/programmatic/help-content/cip-overview.md +3 -1
  248. package/lib/programmatic/http-raw-response.js +62 -0
  249. package/lib/programmatic/index.js +2 -0
  250. package/lib/programmatic/openapi-apply-result-schemas.js +8 -0
  251. package/lib/programmatic/openapi-channel-install-bindings.js +179 -0
  252. package/lib/programmatic/openapi-channel-install-schemas.js +289 -0
  253. package/lib/programmatic/openapi-component-schemas.js +19 -1
  254. package/lib/programmatic/openapi-description-enricher.js +3 -1
  255. package/lib/programmatic/openapi-descriptions.js +80 -3
  256. package/lib/programmatic/openapi-envelope-examples.js +124 -0
  257. package/lib/programmatic/openapi-operation-bindings.js +9 -1
  258. package/lib/programmatic/openapi-request-schemas.js +5 -0
  259. package/lib/programmatic/openapi-schema-descriptions-channel.js +319 -0
  260. package/lib/programmatic/openapi-schema-descriptions-operations.js +19 -0
  261. package/lib/programmatic/openapi-spec.js +13 -8
  262. package/lib/programmatic/platform-rbac-catalog.js +36 -18
  263. package/lib/programmatic/request-timeout.js +3 -0
  264. package/lib/programmatic/route-handler-map.js +58 -1
  265. package/lib/programmatic/route-handlers-context.js +2 -1
  266. package/lib/programmatic/run-auth-permissions.js +54 -0
  267. package/lib/programmatic/run-channel-catalog.js +238 -0
  268. package/lib/programmatic/run-channel-install-artifacts.js +137 -0
  269. package/lib/programmatic/run-channel-install-copilot.js +353 -0
  270. package/lib/programmatic/run-channel-install-options.js +236 -0
  271. package/lib/programmatic/run-channel-install-teams-bot.js +204 -0
  272. package/lib/programmatic/run-channel-install.js +346 -0
  273. package/lib/programmatic/run-channel-package.js +87 -7
  274. package/lib/programmatic/run-download.js +41 -0
  275. package/lib/programmatic/workspace-context.js +2 -0
  276. package/lib/protection/auth-context.js +3 -1
  277. package/lib/protection/protection-display.js +3 -2
  278. package/lib/protection/report-exit.js +50 -0
  279. package/lib/protection/run-commands.js +2 -0
  280. package/lib/role-assistant/evidence-sync.js +4 -2
  281. package/lib/role-assistant/evidence-validation-issues.js +51 -0
  282. package/lib/role-assistant/knowledge-sync.js +10 -4
  283. package/lib/role-assistant/package-validate.js +175 -0
  284. package/lib/role-assistant/settings.js +49 -2
  285. package/lib/role-assistant/test-case-assertion-row.js +36 -0
  286. package/lib/role-assistant/test-case-copy-bind.js +77 -0
  287. package/lib/role-assistant/test-case-copy-expected.js +127 -0
  288. package/lib/role-assistant/test-case-copy-from-work.js +90 -0
  289. package/lib/role-assistant/test-case-copy-interactions.js +67 -0
  290. package/lib/role-assistant/test-case-copy.js +119 -0
  291. package/lib/role-assistant/test-case-expected-catalog.js +135 -0
  292. package/lib/role-assistant/test-case-validate.js +88 -0
  293. package/lib/role-assistant/test-cases-bid.js +117 -4
  294. package/lib/role-assistant/test-cases-evaluate.js +159 -24
  295. package/lib/role-assistant/test-cases-evidence.js +175 -0
  296. package/lib/role-assistant/test-cases-honesty.js +155 -6
  297. package/lib/role-assistant/test-cases-lifecycle.js +291 -0
  298. package/lib/role-assistant/test-cases-search-graph.js +122 -0
  299. package/lib/role-assistant/test-cases-search.js +247 -0
  300. package/lib/role-assistant/test-cases.js +71 -172
  301. package/lib/role-assistant/test-pack-map.js +180 -0
  302. package/lib/role-assistant/test-pack-sync.js +187 -0
  303. package/lib/role-assistant/test-runner-debug.js +54 -0
  304. package/lib/role-assistant/test-runner-respond-body.js +36 -0
  305. package/lib/role-assistant/test-runner-search.js +164 -0
  306. package/lib/role-assistant/test-runner-start-payload.js +63 -10
  307. package/lib/role-assistant/test-runner-workhub-answers.js +45 -16
  308. package/lib/role-assistant/test-runner-workhub-helpers.js +40 -2
  309. package/lib/role-assistant/test-runner-workhub-soft.js +9 -3
  310. package/lib/role-assistant/test-runner-workhub.js +74 -32
  311. package/lib/role-assistant/test-runner.js +66 -11
  312. package/lib/schema/external-datasource.schema.json +146 -21
  313. package/lib/schema/external-system.schema.json +177 -2
  314. package/lib/schema/mcp-client-profile.schema.json +103 -0
  315. package/lib/schema/role-assistant-test-case.schema.json +408 -0
  316. package/lib/search/dataplane-context.js +23 -0
  317. package/lib/search/search-args.js +211 -0
  318. package/lib/search/search-display.js +238 -0
  319. package/lib/search/search-errors.js +50 -0
  320. package/lib/search/search-prompts.js +119 -0
  321. package/lib/search/search-roles.js +85 -0
  322. package/lib/search/search-run.js +241 -0
  323. package/lib/search/search-skills.js +198 -0
  324. package/lib/utils/app-path-resolve.js +4 -0
  325. package/lib/utils/authentication-env-template.js +44 -6
  326. package/lib/utils/authentication-slot-show.js +153 -0
  327. package/lib/utils/credential-display.js +43 -1
  328. package/lib/utils/credential-secrets-env.js +6 -1
  329. package/lib/utils/env-copy.js +19 -7
  330. package/lib/utils/external-env-template.js +20 -2
  331. package/lib/utils/external-system-readiness-compact-blocks.js +5 -1
  332. package/lib/utils/external-system-readiness-compact-display.js +30 -1
  333. package/lib/utils/external-system-validators.js +2 -1
  334. package/lib/utils/help-builder.js +3 -1
  335. package/lib/utils/paths.js +18 -1
  336. package/lib/utils/platform-shell-package.js +69 -0
  337. package/lib/utils/port-resolver.js +50 -1
  338. package/lib/utils/rewrite-name-flag.js +20 -0
  339. package/lib/utils/role-assistant-paths.js +13 -10
  340. package/lib/utils/schema-loader.js +37 -0
  341. package/lib/utils/schema-resolver.js +11 -1
  342. package/lib/utils/secrets-helpers.js +12 -21
  343. package/lib/utils/token-manager.js +10 -5
  344. package/lib/validation/validate-external-file.js +5 -1
  345. package/lib/validation/validate.js +41 -0
  346. package/package.json +1 -1
  347. package/templates/README.md +1 -1
  348. package/templates/agent-kit/adapters/claude/nested.CLAUDE.md +1 -0
  349. package/templates/agent-kit/adapters/claude/root.CLAUDE.md +5 -0
  350. package/templates/agent-kit/adapters/cursor/commands/cust-0-plan.md +5 -0
  351. package/templates/agent-kit/adapters/cursor/commands/cust-1-validate.md +5 -0
  352. package/templates/agent-kit/adapters/cursor/commands/cust-2-build.md +5 -0
  353. package/templates/agent-kit/adapters/cursor/commands/cust-3-push.md +5 -0
  354. package/templates/agent-kit/adapters/cursor/commands/cust-biz-1-validate.md +5 -0
  355. package/templates/agent-kit/adapters/cursor/commands/cust-biz-2-build.md +5 -0
  356. package/templates/agent-kit/adapters/cursor/commands/cust-biz-3-prove.md +5 -0
  357. package/templates/agent-kit/agent-kit.yaml +45 -0
  358. package/templates/agent-kit/instructions/AGENTKIT.md +83 -0
  359. package/templates/agent-kit/instructions/integration.AGENTS.md +25 -0
  360. package/templates/agent-kit/instructions/role-assistant.AGENTS.md +22 -0
  361. package/templates/agent-kit/instructions/root.AGENTS.md +37 -0
  362. package/templates/agent-kit/parity-inventory.yaml +188 -0
  363. package/templates/agent-kit/skills/aifabrix-connected-system/SKILL.md +58 -0
  364. package/templates/agent-kit/skills/aifabrix-connected-system/references/contract-checklist.md +40 -0
  365. package/templates/agent-kit/skills/aifabrix-connected-system/references/delivery-gates.md +54 -0
  366. package/templates/agent-kit/skills/aifabrix-connected-system/references/production-safety.md +35 -0
  367. package/templates/agent-kit/skills/aifabrix-connected-system/scripts/reserved-system-key.js +19 -0
  368. package/templates/agent-kit/skills/aifabrix-plan/SKILL.md +51 -0
  369. package/templates/agent-kit/skills/aifabrix-plan/references/challenge-checklist.md +108 -0
  370. package/templates/agent-kit/skills/aifabrix-plan/references/interaction.md +34 -0
  371. package/templates/agent-kit/skills/aifabrix-plan/references/plan-template.md +182 -0
  372. package/templates/agent-kit/skills/aifabrix-prove/SKILL.md +50 -0
  373. package/templates/agent-kit/skills/aifabrix-prove/references/demo-template.md +65 -0
  374. package/templates/agent-kit/skills/aifabrix-prove/references/evidence-lifecycle.md +68 -0
  375. package/templates/agent-kit/skills/aifabrix-prove/references/learning-template.md +66 -0
  376. package/templates/agent-kit/skills/aifabrix-role-assistant/SKILL.md +42 -0
  377. package/templates/agent-kit/skills/aifabrix-role-assistant/references/package-boundary.md +21 -0
  378. package/templates/agent-kit/skills/shared/hosts.md +78 -0
  379. package/templates/agent-kit/workspace/.cursor/plans/README.md +22 -0
  380. package/templates/agent-kit/workspace/LICENSE.mit +21 -0
  381. package/templates/agent-kit/workspace/README.md +89 -0
  382. package/templates/applications/builder-api/Dockerfile +3 -1
  383. package/templates/applications/builder-api/env.template +7 -0
  384. package/templates/applications/dataplane/application.yaml +6 -5
  385. package/templates/applications/dataplane/env.template +2 -2
  386. package/templates/applications/dataplane/rbac.yaml +35 -2
  387. package/templates/applications/keycloak/Dockerfile +30 -4
  388. package/templates/applications/keycloak/application.yaml +2 -2
  389. package/templates/applications/keycloak/cimd-lenient-parse/AbstractClientIdMetadataDocumentExecutor.java +896 -0
  390. package/templates/applications/keycloak/cimd-lenient-parse/SOURCE.md +19 -0
  391. package/templates/applications/keycloak/env.template +3 -0
  392. package/templates/applications/miso-controller/application.yaml +1 -2
  393. package/templates/applications/miso-controller/env.template +10 -9
  394. package/templates/channels/README.md +5 -5
  395. package/templates/channels/chatgpt/TROUBLESHOOTING.md +51 -0
  396. package/templates/channels/chatgpt/channel.json +59 -0
  397. package/templates/channels/chatgpt/icon.svg +1 -0
  398. package/templates/channels/chatgpt/install.template.md.hbs +20 -95
  399. package/templates/channels/chatgpt/integration/README.md +1 -1
  400. package/templates/channels/chatgpt/integration/application.json +2 -2
  401. package/templates/channels/chatgpt/integration/chatgpt-system.json +49 -4
  402. package/templates/channels/chatgpt/integration/env.template +2 -4
  403. package/templates/channels/chatgpt/integration/rbac.json +13 -0
  404. package/templates/channels/claude/TROUBLESHOOTING.md +44 -0
  405. package/templates/channels/claude/channel.json +59 -0
  406. package/templates/channels/claude/icon.svg +1 -0
  407. package/templates/channels/claude/install.template.md.hbs +22 -0
  408. package/templates/channels/claude/integration/README.md +14 -0
  409. package/templates/channels/claude/integration/application.json +15 -0
  410. package/templates/channels/claude/integration/claude-system.json +59 -0
  411. package/templates/channels/claude/integration/env.template +2 -0
  412. package/templates/channels/claude/integration/rbac.json +13 -0
  413. package/templates/channels/claude/manifest.template.json.hbs +40 -0
  414. package/templates/channels/mcp-client/channel.json +72 -0
  415. package/templates/channels/mcp-client/icon.svg +1 -0
  416. package/templates/channels/mcp-client/install.template.md.hbs +24 -0
  417. package/templates/channels/mcp-client/integration/README.md +13 -0
  418. package/templates/channels/mcp-client/integration/application.json +15 -0
  419. package/templates/channels/mcp-client/integration/env.template +2 -0
  420. package/templates/channels/mcp-client/integration/mcp-client-system.json +72 -0
  421. package/templates/channels/mcp-client/integration/rbac.json +13 -0
  422. package/templates/channels/mcp-client/manifest.template.json.hbs +41 -0
  423. package/templates/channels/mcp-client/profiles/cursor.json +26 -0
  424. package/templates/channels/mcp-client/profiles/github-copilot.json +29 -0
  425. package/templates/channels/mcp-client/profiles/vscode.json +29 -0
  426. package/templates/channels/microsoft-copilot/channel.json +73 -0
  427. package/templates/channels/microsoft-copilot/declarative-agent.template.json.hbs +8 -4
  428. package/templates/channels/microsoft-copilot/entra-sso-registration.template.md.hbs +65 -5
  429. package/templates/channels/microsoft-copilot/icon.svg +1 -0
  430. package/templates/channels/microsoft-copilot/install.template.md.hbs +9 -9
  431. package/templates/channels/microsoft-copilot/integration/README.md +1 -1
  432. package/templates/channels/microsoft-copilot/integration/application.json +2 -2
  433. package/templates/channels/microsoft-copilot/integration/env.template +3 -6
  434. package/templates/channels/microsoft-copilot/integration/microsoft-copilot-system.json +63 -4
  435. package/templates/channels/microsoft-copilot/integration/rbac.json +13 -0
  436. package/templates/channels/microsoft-copilot/oauth-plugin-vault-required.template.md.hbs +5 -5
  437. package/templates/channels/slack/channel.json +234 -0
  438. package/templates/channels/slack/icon.svg +1 -0
  439. package/templates/channels/slack/install.template.md.hbs +45 -28
  440. package/templates/channels/slack/integration/README.md +245 -22
  441. package/templates/channels/slack/integration/application.json +44 -7
  442. package/templates/channels/slack/integration/env.template +15 -6
  443. package/templates/channels/slack/integration/openapi/openapi.json +126 -0
  444. package/templates/channels/slack/integration/rbac.json +84 -0
  445. package/templates/channels/slack/integration/slack-datasource-commands.json +154 -0
  446. package/templates/channels/slack/integration/slack-datasource-conversations.json +28 -3
  447. package/templates/channels/slack/integration/slack-datasource-events.json +154 -0
  448. package/templates/channels/slack/integration/slack-datasource-interactive.json +154 -0
  449. package/templates/channels/slack/integration/slack-datasource-messages.json +40 -2
  450. package/templates/channels/slack/integration/slack-system.json +161 -72
  451. package/templates/channels/slack/manifest.template.json.hbs +10 -4
  452. package/templates/channels/teams-bot/channel.json +162 -0
  453. package/templates/channels/teams-bot/icon.svg +1 -0
  454. package/templates/channels/teams-bot/install.template.md.hbs +12 -13
  455. package/templates/channels/teams-bot/integration/README.md +5 -4
  456. package/templates/channels/teams-bot/integration/application.json +6 -4
  457. package/templates/channels/teams-bot/integration/env.template +5 -4
  458. package/templates/channels/teams-bot/integration/openapi/openapi.json +68 -0
  459. package/templates/channels/teams-bot/integration/rbac.json +21 -0
  460. package/templates/channels/teams-bot/integration/teams-bot-datasource-activities.json +154 -0
  461. package/templates/channels/teams-bot/integration/teams-bot-system.json +128 -23
  462. package/templates/channels/web-embed/channel.json +60 -0
  463. package/templates/channels/web-embed/install.template.md.hbs +1 -1
  464. package/templates/channels/web-embed/integration/README.md +2 -2
  465. package/templates/channels/web-embed/integration/application.json +2 -2
  466. package/templates/channels/web-embed/integration/env.template +1 -1
  467. package/templates/channels/web-embed/integration/rbac.json +13 -0
  468. package/templates/channels/web-embed/integration/web-embed-system.json +50 -4
  469. package/templates/python/docker-compose.hbs +14 -0
  470. package/templates/typescript/docker-compose.hbs +14 -0
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Teams Bot channel-add provisioning hook.
3
+ *
4
+ * @fileoverview Keep add-channel.js free of Teams Developer CLI argv
5
+ */
6
+
7
+ 'use strict';
8
+
9
+ const { provisionTeamsBot, TEAMS_CLI_MISSING_REMAINING } = require('./microsoft-provisioning/teams-bot-provision');
10
+ const { redactTeamsSecrets } = require('./microsoft-provisioning/errors');
11
+
12
+ const FAIL_CLOSED_CODES = new Set(['WRONG_TENANT', 'TEAMS_MANAGED', 'SECRET', 'SCAFFOLD']);
13
+
14
+ /**
15
+ * @param {Error} error
16
+ * @returns {string[]}
17
+ */
18
+ function remainingFromError(error) {
19
+ const code = error && error.code;
20
+ if (code === 'TEAMS_CLI_MISSING') {
21
+ return TEAMS_CLI_MISSING_REMAINING;
22
+ }
23
+ if (code === 'MISSING_AZURE') {
24
+ return [
25
+ 'Azure subscription and resource group were not found on the controller environment',
26
+ 'Deploy the environment, then re-run aifabrix channel add teams-bot'
27
+ ];
28
+ }
29
+ if (code === 'ENDPOINT') {
30
+ return ['Use a public HTTPS dataplane URL for the Teams Bot messaging endpoint'];
31
+ }
32
+ const detail = redactTeamsSecrets(
33
+ (error && error.message) || 'Teams Bot provisioning failed'
34
+ );
35
+ return [detail];
36
+ }
37
+
38
+ /**
39
+ * @param {Error} error
40
+ * @returns {boolean}
41
+ */
42
+ function shouldFailClosed(error) {
43
+ return FAIL_CLOSED_CODES.has(error && error.code);
44
+ }
45
+
46
+ /**
47
+ * @param {Error} error
48
+ * @returns {Object}
49
+ */
50
+ function recoveryFromError(error) {
51
+ return {
52
+ connected: false,
53
+ skipped: true,
54
+ remaining: remainingFromError(error)
55
+ };
56
+ }
57
+
58
+ /**
59
+ * @param {Object} params
60
+ * @returns {Promise<Object|null>}
61
+ */
62
+ async function maybeProvisionTeamsBotChannel(params) {
63
+ if (!params || params.channelTarget !== 'teams-bot') {
64
+ return null;
65
+ }
66
+ if (params.options && params.options.dryRun === true) {
67
+ return null;
68
+ }
69
+ const ctx = params.ctx || {};
70
+ const options = params.options || {};
71
+ const deps = options.teamsBotProvisioningDeps || {};
72
+ try {
73
+ return await provisionTeamsBot(
74
+ {
75
+ projectRoot: options.projectRoot || process.cwd(),
76
+ runtimeValues: params.runtimeValues,
77
+ ctx,
78
+ environment: ctx.environment,
79
+ options
80
+ },
81
+ deps
82
+ );
83
+ } catch (error) {
84
+ if (shouldFailClosed(error)) {
85
+ throw error;
86
+ }
87
+ return recoveryFromError(error);
88
+ }
89
+ }
90
+
91
+ module.exports = {
92
+ maybeProvisionTeamsBotChannel,
93
+ remainingFromError
94
+ };
@@ -0,0 +1,249 @@
1
+ /**
2
+ * Vendor-facing dataplane and controller bases for channel webhooks and packages.
3
+ *
4
+ * @fileoverview Keep DATAPLANE_URL / MISO_CONTROLLER_URL internal for API calls
5
+ */
6
+
7
+ 'use strict';
8
+
9
+ /**
10
+ * @param {unknown} value
11
+ * @returns {string}
12
+ */
13
+ function trimBase(value) {
14
+ return String(value || '').trim().replace(/\/$/, '');
15
+ }
16
+
17
+ /**
18
+ * @param {string} host
19
+ * @returns {boolean}
20
+ */
21
+ function isLoopbackHost(host) {
22
+ const hostname = String(host || '').toLowerCase();
23
+ return hostname === 'localhost' || hostname === '127.0.0.1' || hostname === '::1';
24
+ }
25
+
26
+ /**
27
+ * @param {unknown} value
28
+ * @returns {boolean}
29
+ */
30
+ function isPublicHttpsUrl(value) {
31
+ const raw = trimBase(value);
32
+ if (!raw) {
33
+ return false;
34
+ }
35
+ try {
36
+ const parsed = new URL(raw);
37
+ if (parsed.protocol !== 'https:') {
38
+ return false;
39
+ }
40
+ const host = parsed.hostname.toLowerCase();
41
+ return Boolean(host) && !isLoopbackHost(host) && host.includes('.');
42
+ } catch {
43
+ return false;
44
+ }
45
+ }
46
+
47
+ /**
48
+ * @param {string} internalUrl
49
+ * @returns {string}
50
+ */
51
+ function pathVdir(internalUrl) {
52
+ try {
53
+ const pathName = new URL(internalUrl).pathname.replace(/\/$/, '');
54
+ return pathName && pathName !== '/' ? pathName : '';
55
+ } catch {
56
+ return '';
57
+ }
58
+ }
59
+
60
+ /**
61
+ * @param {string} origin
62
+ * @param {string} vdir
63
+ * @returns {string}
64
+ */
65
+ function joinOriginAndVdir(origin, vdir) {
66
+ const base = trimBase(origin);
67
+ if (!base) {
68
+ return '';
69
+ }
70
+ if (!vdir) {
71
+ return base;
72
+ }
73
+ if (base.endsWith(vdir)) {
74
+ return base;
75
+ }
76
+ return `${base}${vdir.startsWith('/') ? vdir : `/${vdir}`}`;
77
+ }
78
+
79
+ /**
80
+ * Browser Origin / Referer that vendors can reach (portal host, not builder-api).
81
+ * @param {import('http').IncomingMessage|null|undefined} req
82
+ * @returns {string}
83
+ */
84
+ function publicOriginFromRequest(req) {
85
+ const headers = (req && req.headers) || {};
86
+ const origin = trimBase(headers.origin);
87
+ if (isPublicHttpsUrl(origin)) {
88
+ return new URL(origin).origin;
89
+ }
90
+ try {
91
+ const referer = new URL(String(headers.referer || ''));
92
+ if (isPublicHttpsUrl(referer.origin)) {
93
+ return referer.origin;
94
+ }
95
+ } catch {
96
+ // ignore invalid Referer
97
+ }
98
+ return '';
99
+ }
100
+
101
+ /**
102
+ * @param {NodeJS.ProcessEnv} [env]
103
+ * @returns {string}
104
+ */
105
+ function publicOriginFromAllowlist(env = process.env) {
106
+ for (const raw of String(env.ALLOWED_ORIGINS || '').split(',')) {
107
+ const candidate = trimBase(raw);
108
+ if (!candidate || candidate.includes('*')) {
109
+ continue;
110
+ }
111
+ try {
112
+ const parsed = new URL(candidate);
113
+ if (parsed.port && parsed.port !== '443') {
114
+ continue;
115
+ }
116
+ if (isPublicHttpsUrl(candidate)) {
117
+ return parsed.origin;
118
+ }
119
+ } catch {
120
+ // skip malformed allowlist entries
121
+ }
122
+ }
123
+ return '';
124
+ }
125
+
126
+ /**
127
+ * @param {string} [controllerUrl]
128
+ * @returns {string}
129
+ */
130
+ function publicOriginFromController(controllerUrl) {
131
+ const raw = trimBase(controllerUrl);
132
+ if (!isPublicHttpsUrl(raw)) {
133
+ return '';
134
+ }
135
+ try {
136
+ return new URL(raw).origin;
137
+ } catch {
138
+ return '';
139
+ }
140
+ }
141
+
142
+ /**
143
+ * @param {string} [internalUrl]
144
+ * @param {string} envKey
145
+ * @param {NodeJS.ProcessEnv} env
146
+ * @param {{ publicOrigin?: string, siblingPublicUrl?: string, defaultVdir?: string }} extras
147
+ * @returns {string}
148
+ */
149
+ function resolveVendorFacingBase(internalUrl, envKey, env, extras = {}) {
150
+ const internal = trimBase(internalUrl);
151
+ if (isPublicHttpsUrl(internal)) {
152
+ return internal;
153
+ }
154
+ const envUrl = trimBase(env[envKey]);
155
+ if (isPublicHttpsUrl(envUrl)) {
156
+ return envUrl;
157
+ }
158
+ const vdir = pathVdir(internal) || extras.defaultVdir || '';
159
+ const fromOrigin = joinOriginAndVdir(extras.publicOrigin, vdir);
160
+ if (isPublicHttpsUrl(fromOrigin)) {
161
+ return fromOrigin;
162
+ }
163
+ const fromAllow = joinOriginAndVdir(publicOriginFromAllowlist(env), vdir);
164
+ if (isPublicHttpsUrl(fromAllow)) {
165
+ return fromAllow;
166
+ }
167
+ const siblingOrigin = publicOriginFromController(extras.siblingPublicUrl);
168
+ const fromSibling = joinOriginAndVdir(siblingOrigin, vdir);
169
+ if (isPublicHttpsUrl(fromSibling)) {
170
+ return fromSibling;
171
+ }
172
+ return internal;
173
+ }
174
+
175
+ /**
176
+ * @param {NodeJS.ProcessEnv} env
177
+ * @param {string[]} keys
178
+ * @returns {string}
179
+ */
180
+ function firstPublicEnvUrl(env, keys) {
181
+ for (const key of keys) {
182
+ const value = trimBase(env[key]);
183
+ if (isPublicHttpsUrl(value)) {
184
+ return value;
185
+ }
186
+ }
187
+ return '';
188
+ }
189
+
190
+ /**
191
+ * @param {string} [internalUrl]
192
+ * @param {{ publicOrigin?: string, env?: NodeJS.ProcessEnv, controllerUrl?: string }} [options]
193
+ * @returns {string}
194
+ */
195
+ function resolveVendorFacingDataplaneUrl(internalUrl, options = {}) {
196
+ return resolveVendorFacingBase(internalUrl, 'DATAPLANE_PUBLIC_URL', options.env || process.env, {
197
+ publicOrigin: options.publicOrigin,
198
+ siblingPublicUrl: options.controllerUrl
199
+ });
200
+ }
201
+
202
+ /**
203
+ * @param {string} [internalUrl]
204
+ * @param {{ publicOrigin?: string, env?: NodeJS.ProcessEnv, dataplanePublicUrl?: string }} [options]
205
+ * @returns {string}
206
+ */
207
+ function resolveVendorFacingControllerUrl(internalUrl, options = {}) {
208
+ const env = options.env || process.env;
209
+ const dedicated = firstPublicEnvUrl(env, [
210
+ 'MISO_CONTROLLER_PUBLIC_URL',
211
+ 'CONTROLLER_PUBLIC_URL'
212
+ ]);
213
+ if (dedicated) {
214
+ return dedicated;
215
+ }
216
+ return resolveVendorFacingBase(internalUrl, 'MISO_CONTROLLER_PUBLIC_URL', env, {
217
+ publicOrigin: options.publicOrigin,
218
+ siblingPublicUrl: options.dataplanePublicUrl
219
+ });
220
+ }
221
+
222
+ /**
223
+ * @param {Object|null|undefined} ctx
224
+ * @param {NodeJS.ProcessEnv} [env]
225
+ * @returns {{ dataplaneBaseUrl: string, controllerUrl: string }}
226
+ */
227
+ function vendorFacingUrlsFromCtx(ctx, env) {
228
+ const options = {
229
+ publicOrigin: ctx && ctx.publicOrigin,
230
+ controllerUrl: ctx && ctx.controllerUrl,
231
+ env: env || process.env
232
+ };
233
+ const dataplaneBaseUrl = resolveVendorFacingDataplaneUrl(ctx && ctx.dataplaneUrl, options);
234
+ const controllerUrl = resolveVendorFacingControllerUrl(ctx && ctx.controllerUrl, {
235
+ publicOrigin: options.publicOrigin,
236
+ env: options.env,
237
+ dataplanePublicUrl: dataplaneBaseUrl
238
+ });
239
+ return { dataplaneBaseUrl, controllerUrl };
240
+ }
241
+
242
+ module.exports = {
243
+ isPublicHttpsUrl,
244
+ publicOriginFromRequest,
245
+ publicOriginFromAllowlist,
246
+ resolveVendorFacingDataplaneUrl,
247
+ resolveVendorFacingControllerUrl,
248
+ vendorFacingUrlsFromCtx
249
+ };
package/lib/cli/index.js CHANGED
@@ -25,9 +25,11 @@ const { setupDimensionCommands } = require('../commands/dimension');
25
25
  const { setupResourceTypeCommands } = require('../commands/resource-type');
26
26
  const { setupRoleCommands } = require('../commands/role');
27
27
  const { setupRoleAssistantCommands } = require('../commands/role-assistant');
28
+ const { setupSearchCommands } = require('../commands/search');
28
29
  const { setupEvidenceKindCommands } = require('../commands/evidence-kind');
29
30
  const { setupEnterpriseKnowledgeCommands } = require('../commands/enterprise-knowledge');
30
31
  const { setupIdentityCommands } = require('../commands/identity');
32
+ const { setupAgentKitCommands } = require('../commands/agent-kit');
31
33
  const { setupProtectionCommands } = require('../commands/protection');
32
34
  const { setupEvidenceCommands } = require('../commands/evidence');
33
35
  const { setupCredentialDeploymentCommands } = require('./setup-credential-deployment');
@@ -80,9 +82,11 @@ function setupExtendedCliCommands(program) {
80
82
  setupResourceTypeCommands(program);
81
83
  setupRoleCommands(program);
82
84
  setupRoleAssistantCommands(program);
85
+ setupSearchCommands(program);
83
86
  setupEvidenceKindCommands(program);
84
87
  setupEnterpriseKnowledgeCommands(program);
85
88
  setupIdentityCommands(program);
89
+ setupAgentKitCommands(program);
86
90
  setupProtectionCommands(program);
87
91
  setupEvidenceCommands(program);
88
92
  setupUtilityCommands(program);
@@ -20,7 +20,7 @@ function setupVerifyOperationsCommand(program) {
20
20
  .option('-e, --env <env>', 'Environment: dev, tst, or pro', 'dev')
21
21
  .option('-v, --verbose', 'Readiness breakdown and verification step checklist')
22
22
  .option('-d, --debug', 'Write debug logs under integration/<systemKey>/logs/')
23
- .option('--no-publish', 'Skip publishing local integration files before dataplane steps')
23
+ .option('--no-publish', 'Skip uploading local files (verify-operations does not upload by default)')
24
24
  .option(
25
25
  '--force',
26
26
  'With default sync, pass force to upload (same as aifabrix upload --force)'
@@ -39,7 +39,7 @@ function setupVerifyTrustCommand(program) {
39
39
  .option('-e, --env <env>', 'Environment: dev, tst, or pro', 'dev')
40
40
  .option('-v, --verbose', 'Per-datasource breakdown')
41
41
  .option('-d, --debug', 'Write debug log under integration/<systemKey>/logs/')
42
- .option('--no-publish', 'Skip publishing local integration files before validate')
42
+ .option('--no-publish', 'Skip uploading local files (verify-trust does not upload by default)')
43
43
  .option(
44
44
  '--force',
45
45
  'With default sync, pass force to upload (same as aifabrix upload --force)'
@@ -12,6 +12,8 @@ Examples:
12
12
 
13
13
  Notes:
14
14
  - Orchestrates validate → test → test-integration → test-e2e for the system.
15
+ - Does not upload. Upload is not publish; run aifabrix deploy to publish.
16
+ - Static custom packages (syncBridge disabled) skip live E2E (not FAILED).
15
17
  - Default output shows Operational Readiness % and OPERATIONS VERIFIED/FAILED only.
16
18
  - -v / --verbose adds readiness breakdown and verification step checklist at the end.
17
19
  - -v does not enable upload sidecar logs or inner E2E poll spinners (use aifabrix upload -v for upload detail).
@@ -28,7 +30,7 @@ Examples:
28
30
  Notes:
29
31
  - For one datasource: aifabrix datasource verify-trust <datasourceKey>
30
32
  - Does not call external vendor APIs (use verify-operations / test-e2e for connectivity).
31
- - Local integration files are published before run unless --no-publish.
33
+ - Does not upload. Upload is not publish; run aifabrix deploy to publish.
32
34
  `;
33
35
 
34
36
  const VERIFY_GOVERNANCE_HELP_AFTER = `
@@ -78,6 +80,8 @@ Examples:
78
80
 
79
81
  Notes:
80
82
  - Expert path: pushes integration/<systemKey>/scenarios/*.yaml to the dataplane.
83
+ - Each file is stored on the datasource named by the filename (scenarios/<datasourceKey>.yaml).
84
+ - Search datasourceKeys in the YAML are what verification searches; they may differ for views (carrier storage datasource).
81
85
  - Packs must satisfy the 424.0 schema (spec.coverage, metadata.generationState). Use governance generate
82
86
  or verify-governance for dataplane-first packs.
83
87
  `;
@@ -29,6 +29,7 @@ Notes:
29
29
  - --probe runs dataplane runtime checks after publish (slower).
30
30
  - --timeout sets publish budget in ms (HTTP client and dataplane); default 300000.
31
31
  - --env selects role-assistant.yaml section (dev|tst|pro) for digital workers; default dev.
32
+ - Role Assistant packages under role-assistant/ do not use application.yaml; upload applies settings and Evidence only.
32
33
  - test-e2e and test-integration publish local files first by default; use --no-publish on those commands to skip.
33
34
  - After dimension/FK edits on active datasources, use --force (or test-e2e / test-integration / datasource test-* with --sync --force).
34
35
  - For one datasource only: aifabrix datasource upload <datasourceKey>
@@ -45,6 +46,7 @@ Examples:
45
46
 
46
47
  Notes:
47
48
  - Requires login and a system that already exists on the dataplane.
49
+ - Omit --format to use the developer default from aifabrix dev set-format (else yaml).
48
50
  - Overwrite prompts apply when integration/<systemKey>/ already exists (--force for README).
49
51
  `;
50
52
 
@@ -63,7 +63,7 @@ function setupDownloadCommand(program) {
63
63
  program.command('download <systemKey>')
64
64
  .description('Pull external system from dataplane into integration/<key>/')
65
65
  .addHelpText('after', DOWNLOAD_HELP_AFTER)
66
- .option('--format <format>', 'Output format: json | yaml (default: yaml or config format)')
66
+ .option('--format <format>', 'Output format: json | yaml (default: aifabrix dev set-format, else yaml)')
67
67
  .option('--dry-run', 'Show what would be downloaded without actually downloading')
68
68
  .option('--force', 'Overwrite existing README.md without prompting')
69
69
  .option(
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Help text for `aifabrix agent-kit` leaves.
3
+ * @fileoverview Per-command examples so update -h is not install-centric
4
+ */
5
+
6
+ 'use strict';
7
+
8
+ const GROUP_HELP = `
9
+ Examples:
10
+ $ aifabrix agent-kit init cust-demo --host all --approve-all --yes
11
+ $ aifabrix agent-kit install --host all --approve-all --yes
12
+ $ aifabrix agent-kit update --host all --approve-all --yes
13
+ $ aifabrix agent-kit status
14
+ $ aifabrix agent-kit validate
15
+ `;
16
+
17
+ const INSTALL_HELP = `
18
+ Examples:
19
+ $ aifabrix agent-kit install
20
+ $ aifabrix agent-kit install --host all --approve-all --yes
21
+ $ aifabrix agent-kit install --host claude --approve-all --yes
22
+ $ aifabrix agent-kit install --skip-approve-all
23
+ $ aifabrix agent-kit install --dry-run
24
+
25
+ TTY asks to auto-approve Claude Code and Codex permissions (default yes). Silent: --approve-all --yes. Skip: --skip-approve-all.
26
+ `;
27
+
28
+ const STATUS_HELP = `
29
+ Examples:
30
+ $ aifabrix agent-kit status
31
+ $ aifabrix agent-kit status --json
32
+ `;
33
+
34
+ const UPDATE_HELP = `
35
+ Examples:
36
+ $ aifabrix agent-kit update
37
+ $ aifabrix agent-kit update --host all --approve-all --yes
38
+ $ aifabrix agent-kit update --host claude --force
39
+ $ aifabrix agent-kit update --dry-run
40
+
41
+ Omit --host to keep the coding hosts already recorded. Pass --host when you add or switch Cursor, Claude Code, or Codex.
42
+ `;
43
+
44
+ const VALIDATE_HELP = `
45
+ Examples:
46
+ $ aifabrix agent-kit validate
47
+ $ aifabrix agent-kit validate --json
48
+ `;
49
+
50
+ const INIT_HELP = `
51
+ Examples:
52
+ $ aifabrix agent-kit init cust-demo
53
+ $ aifabrix agent-kit init cust-demo --host all --approve-all --yes
54
+ $ aifabrix agent-kit init cust-demo --host all --remote --org my-org --yes
55
+ $ aifabrix agent-kit init ./path/to/cust-demo --dry-run --json
56
+
57
+ Interactive (TTY): omit --host / --yes to be prompted.
58
+ Silent local: --host all --approve-all --yes
59
+ Silent remote: --host all --remote --org <owner> --yes
60
+ `;
61
+
62
+ const REMOTE_HELP = `
63
+ Examples:
64
+ $ cd cust-demo && aifabrix agent-kit remote create
65
+ $ aifabrix agent-kit remote create --org my-org --yes
66
+ $ aifabrix agent-kit remote create --org my-org --dry-run --json
67
+
68
+ Interactive (TTY): omit flags to be prompted. Silent: --org <owner> --yes
69
+ `;
70
+
71
+ module.exports = {
72
+ GROUP_HELP,
73
+ INSTALL_HELP,
74
+ STATUS_HELP,
75
+ UPDATE_HELP,
76
+ VALIDATE_HELP,
77
+ INIT_HELP,
78
+ REMOTE_HELP
79
+ };