@aifabrix/builder 2.49.2 → 2.50.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 (409) hide show
  1. package/.cursor/rules/deploy-rules/docker-image-ip-policy.mdc +49 -0
  2. package/.cursor/rules/plan-rules/application-lifecycle.mdc +30 -0
  3. package/.cursor/rules/plan-rules/plan-frontmatter.mdc +35 -0
  4. package/.cursor/rules/plan-rules/plan-lifecycle.mdc +31 -0
  5. package/.cursor/rules/plan-rules/plan-validation-gate.mdc +34 -0
  6. package/.cursor/skills/README.md +1 -0
  7. package/.dockerignore +52 -0
  8. package/.eslintignore +22 -0
  9. package/README.md +2 -0
  10. package/bin/builder-api-cleanup.js +26 -0
  11. package/bin/builder-api-nest.js +10 -0
  12. package/bin/builder-api-spike.js +19 -0
  13. package/enterprise-knowledge/README.md +50 -0
  14. package/enterprise-knowledge/enterprise-integration-lifecycle/README.md +22 -0
  15. package/enterprise-knowledge/enterprise-integration-lifecycle/application.json +15 -0
  16. package/enterprise-knowledge/enterprise-integration-lifecycle/deploy.js +69 -0
  17. package/enterprise-knowledge/enterprise-integration-lifecycle/enterprise-integration-lifecycle-deploy.json +52 -0
  18. package/enterprise-knowledge/enterprise-integration-lifecycle/enterprise-integration-lifecycle-system.json +29 -0
  19. package/enterprise-knowledge/enterprise-integration-lifecycle/env.template +2 -0
  20. package/integration/README.md +81 -0
  21. package/integration/github/README.md +53 -0
  22. package/integration/github/application.json +21 -0
  23. package/integration/github/deploy.js +72 -0
  24. package/integration/github/env.template +11 -0
  25. package/integration/github/github-datasource-issue-comments.json +239 -0
  26. package/integration/github/github-datasource-issues.json +399 -0
  27. package/integration/github/github-datasource-repository.json +354 -0
  28. package/integration/github/github-deploy.json +1202 -0
  29. package/integration/github/github-system.json +82 -0
  30. package/integration/hubspot-test/README.md +1 -1
  31. package/jest.isolated-projects.js +31 -1
  32. package/jest.projects.js +87 -1
  33. package/lib/api/dev-server-https.js +1 -1
  34. package/lib/api/enterprise-knowledge.api.js +63 -0
  35. package/lib/api/evidence.api.js +172 -0
  36. package/lib/api/external-systems.api.js +8 -2
  37. package/lib/api/resource-types.api.js +1 -0
  38. package/lib/api/types/enterprise-knowledge.types.js +46 -0
  39. package/lib/api/types/evidence.types.js +67 -0
  40. package/lib/api/types/resource-types.types.js +2 -0
  41. package/lib/app/controller-application-filter.js +36 -0
  42. package/lib/app/deploy.js +1 -1
  43. package/lib/app/list-external-systems.js +130 -0
  44. package/lib/app/list.js +20 -8
  45. package/lib/app/run.js +3 -1
  46. package/lib/app/show-display.js +8 -3
  47. package/lib/app/show-online.js +178 -0
  48. package/lib/app/show.js +37 -88
  49. package/lib/build/builder-api-docker-staging.js +47 -0
  50. package/lib/build/miso-controller-npm-sdk-guard.js +2 -2
  51. package/lib/build/standard-docker-build.js +2 -0
  52. package/lib/certification/post-unified-cert-sync.js +4 -31
  53. package/lib/certification/sync-after-external-command.js +0 -1
  54. package/lib/certification/sync-system-certification.js +0 -3
  55. package/lib/channels/add-channel.js +40 -34
  56. package/lib/channels/approval-guides/chatgpt.js +33 -0
  57. package/lib/channels/approval-guides/credential-portal.js +38 -0
  58. package/lib/channels/approval-guides/index.js +110 -0
  59. package/lib/channels/approval-guides/microsoft-copilot.js +34 -0
  60. package/lib/channels/approval-guides/slack.js +34 -0
  61. package/lib/channels/approval-guides/teams-bot.js +35 -0
  62. package/lib/channels/approval-guides/web-embed.js +32 -0
  63. package/lib/channels/channel-approval-guide.js +11 -0
  64. package/lib/channels/channel-artifact-generator.js +16 -4
  65. package/lib/channels/channel-audit.js +3 -0
  66. package/lib/channels/channel-auth-context.js +1 -1
  67. package/lib/channels/channel-description.js +59 -0
  68. package/lib/channels/channel-integration-generator.js +13 -230
  69. package/lib/channels/channel-integration-template.js +94 -0
  70. package/lib/channels/channel-runtime-resolver.js +43 -3
  71. package/lib/channels/channel-status-display.js +66 -26
  72. package/lib/channels/channel-targets.js +3 -3
  73. package/lib/cli/index.js +27 -3
  74. package/lib/cli/infra-guided.js +5 -1
  75. package/lib/cli/setup-app-external-create.js +111 -0
  76. package/lib/cli/setup-app.help.js +1 -1
  77. package/lib/cli/setup-app.js +38 -125
  78. package/lib/cli/setup-app.test-commands.js +26 -52
  79. package/lib/cli/setup-certification-commands.js +4 -4
  80. package/lib/cli/setup-certification.help.js +9 -9
  81. package/lib/cli/setup-dev.js +7 -2
  82. package/lib/cli/setup-external-system-help.js +4 -6
  83. package/lib/cli/setup-external-system.js +58 -52
  84. package/lib/cli/setup-infra-up-builder-api-action.js +64 -0
  85. package/lib/cli/setup-infra-up-platform-action.js +3 -1
  86. package/lib/cli/setup-infra.js +15 -0
  87. package/lib/cli/setup-list.js +43 -0
  88. package/lib/cli/setup-utility-repair.js +26 -7
  89. package/lib/cli/setup-utility.js +5 -3
  90. package/lib/commands/app.js +15 -43
  91. package/lib/commands/channel-add-setup.js +110 -0
  92. package/lib/commands/channel.js +42 -8
  93. package/lib/commands/datasource-sync-display.js +96 -0
  94. package/lib/commands/datasource-sync-policy.js +210 -0
  95. package/lib/commands/datasource-test-trust-cli.js +6 -6
  96. package/lib/commands/datasource-unified-test-cli.js +2 -1
  97. package/lib/commands/datasource-unified-test-cli.options.js +33 -23
  98. package/lib/commands/deploy-gate-failure-details.js +163 -0
  99. package/lib/commands/deploy-gate-orchestrator.js +322 -0
  100. package/lib/commands/dev-cli-handlers.js +1 -59
  101. package/lib/commands/dev-host-ops-params.js +91 -0
  102. package/lib/commands/dev-host-ops-poll.js +111 -0
  103. package/lib/commands/dev-host-ops.js +107 -94
  104. package/lib/commands/dev-init.js +3 -1
  105. package/lib/commands/enterprise-knowledge.js +284 -0
  106. package/lib/commands/evidence-cli-leaves.js +250 -0
  107. package/lib/commands/evidence.js +51 -0
  108. package/lib/commands/governance-cli-shared.js +2 -2
  109. package/lib/commands/governance-command-action.js +2 -2
  110. package/lib/commands/governance-fixture-subjects.js +85 -0
  111. package/lib/commands/governance.js +1 -1
  112. package/lib/commands/lifecycle-command-action.js +2 -2
  113. package/lib/commands/lifecycle-external.js +3 -3
  114. package/lib/commands/manifest-cli-auth.js +29 -0
  115. package/lib/commands/manifest-cli-commands.js +170 -0
  116. package/lib/commands/manifest-cli-integration-path.js +63 -0
  117. package/lib/commands/manifest.js +21 -0
  118. package/lib/commands/protection-cli-leaves.js +3 -3
  119. package/lib/commands/repair-auth-apply.js +15 -1
  120. package/lib/commands/repair-authentications-454.js +169 -0
  121. package/lib/commands/repair-capability-openapi-warnings.js +126 -0
  122. package/lib/commands/repair-datasource-apply.js +135 -0
  123. package/lib/commands/repair-datasource-auto-rbac.js +62 -1
  124. package/lib/commands/repair-datasource-http-service-contract.js +239 -0
  125. package/lib/commands/repair-datasource-operation-security.js +180 -0
  126. package/lib/commands/repair-datasource-run.js +7 -2
  127. package/lib/commands/repair-datasource-sync-operations.js +177 -0
  128. package/lib/commands/repair-datasource-webhooks-sync-bridge.js +133 -0
  129. package/lib/commands/repair-datasource.js +12 -68
  130. package/lib/commands/repair-env-template.js +11 -1
  131. package/lib/commands/repair-external-run.js +121 -31
  132. package/lib/commands/repair-internal.js +1 -1
  133. package/lib/commands/repair-openapi-export.js +156 -0
  134. package/lib/commands/repair-openapi-sync.js +19 -2
  135. package/lib/commands/repair-orchestration-datasource-split.js +259 -0
  136. package/lib/commands/repair-persist.js +22 -1
  137. package/lib/commands/repair-rbac-platform-preset.js +204 -0
  138. package/lib/commands/repair-rbac-reader-roles.js +191 -0
  139. package/lib/commands/repair-rbac.js +163 -86
  140. package/lib/commands/repair-steps.js +83 -18
  141. package/lib/commands/repair-system-permissions.js +1 -0
  142. package/lib/commands/repair.js +1 -1
  143. package/lib/commands/resource-type.js +65 -26
  144. package/lib/commands/run-post-publish-data-sync.js +68 -0
  145. package/lib/commands/setup-modes.js +1 -1
  146. package/lib/commands/test-e2e-external.js +21 -8
  147. package/lib/commands/test-governance-cli-options.js +2 -2
  148. package/lib/commands/test-trust-cli-options.js +2 -2
  149. package/lib/commands/up-builder-api-bootstrap.js +71 -0
  150. package/lib/commands/up-builder-api-provision.js +241 -0
  151. package/lib/commands/up-builder-api.js +88 -0
  152. package/lib/commands/up-common.js +25 -1
  153. package/lib/commands/upload-credential-push-log.js +117 -0
  154. package/lib/commands/upload-data-sync-finalize.js +60 -0
  155. package/lib/commands/upload-probe.js +66 -0
  156. package/lib/commands/upload-publish-context.js +4 -1
  157. package/lib/commands/upload-sidecar-followups.js +55 -27
  158. package/lib/commands/upload.js +116 -157
  159. package/lib/commands/verify-governance-combined-external.js +1 -1
  160. package/lib/commands/verify-governance-db.js +2 -2
  161. package/lib/commands/verify-operations-command-action.js +2 -2
  162. package/lib/commands/verify-operations-step-plan.js +2 -2
  163. package/lib/commands/verify-operations-steps.js +2 -2
  164. package/lib/commands/verify-trust-command-action.js +1 -1
  165. package/lib/commands/wizard-core.js +1 -1
  166. package/lib/commands/wizard-headless.js +2 -1
  167. package/lib/core/admin-secrets.js +2 -6
  168. package/lib/core/secrets-env-content.js +10 -4
  169. package/lib/core/secrets-env-write.js +2 -13
  170. package/lib/datasource/agent-trust-run.js +3 -3
  171. package/lib/datasource/deploy.js +3 -1
  172. package/lib/datasource/test-e2e.js +6 -1
  173. package/lib/datasource/unified-validation-run-body.js +4 -1
  174. package/lib/datasource/unified-validation-run.js +1 -1
  175. package/lib/deployment/deploy-poll-ui.js +73 -12
  176. package/lib/deployment/deployer-poll-run.js +113 -0
  177. package/lib/deployment/deployer.js +17 -87
  178. package/lib/evidence/dataplane-context.js +21 -0
  179. package/lib/evidence/evidence-display.js +78 -0
  180. package/lib/evidence/evidence-service.js +392 -0
  181. package/lib/external-system/deploy.js +290 -112
  182. package/lib/external-system/download.js +7 -3
  183. package/lib/external-system/test-execution.js +1 -1
  184. package/lib/external-system/test-system-level.js +8 -10
  185. package/lib/external-system/test.js +12 -6
  186. package/lib/generator/deploy-script.js +73 -0
  187. package/lib/generator/external.js +2 -1
  188. package/lib/generator/index.js +17 -2
  189. package/lib/generator/wizard.js +3 -36
  190. package/lib/internal/fs-real-sync.js +22 -1
  191. package/lib/internal/node-fs.js +2 -0
  192. package/lib/lifecycle/lifecycle-governance-options.js +1 -1
  193. package/lib/lifecycle/verify-step-progress.js +1 -1
  194. package/lib/programmatic/access-log.js +26 -0
  195. package/lib/programmatic/auth-config.js +44 -0
  196. package/lib/programmatic/bearer-auth.js +176 -0
  197. package/lib/programmatic/builder-api-request.js +175 -0
  198. package/lib/programmatic/builder-api-route-dispatch.js +82 -0
  199. package/lib/programmatic/builder-api-runtime-config.js +42 -0
  200. package/lib/programmatic/builder-api-server.js +230 -0
  201. package/lib/programmatic/builder-help-authentication-catalog.js +282 -0
  202. package/lib/programmatic/builder-help-connected-system-ui.js +266 -0
  203. package/lib/programmatic/builder-help-enterprise-sync-fabrix.js +60 -0
  204. package/lib/programmatic/builder-help-envelope.js +36 -0
  205. package/lib/programmatic/builder-help-fixtures.js +200 -0
  206. package/lib/programmatic/builder-help-governance.js +172 -0
  207. package/lib/programmatic/builder-help-schema-catalog.js +92 -0
  208. package/lib/programmatic/builder-help.js +361 -0
  209. package/lib/programmatic/capability-registry.js +77 -0
  210. package/lib/programmatic/command-options.js +32 -0
  211. package/lib/programmatic/enterprise-mcp-client.js +98 -0
  212. package/lib/programmatic/http-problem-details.js +99 -0
  213. package/lib/programmatic/http-route-match.js +40 -0
  214. package/lib/programmatic/idempotency-cache.js +69 -0
  215. package/lib/programmatic/index.js +53 -0
  216. package/lib/programmatic/integration-path-scope.js +39 -0
  217. package/lib/programmatic/log-redaction.js +66 -0
  218. package/lib/programmatic/manifest-get-section.js +146 -0
  219. package/lib/programmatic/manifest-patch-section.js +252 -0
  220. package/lib/programmatic/manifest-repair.js +122 -0
  221. package/lib/programmatic/manifest-section-dependency-graph.js +160 -0
  222. package/lib/programmatic/manifest-section-io.js +225 -0
  223. package/lib/programmatic/manifest-section-quality.js +171 -0
  224. package/lib/programmatic/manifest-section-registry-data.js +269 -0
  225. package/lib/programmatic/manifest-section-registry.js +205 -0
  226. package/lib/programmatic/nest-http-bridge.js +34 -0
  227. package/lib/programmatic/openapi-component-schemas.js +68 -0
  228. package/lib/programmatic/openapi-description-enricher.js +117 -0
  229. package/lib/programmatic/openapi-descriptions.js +190 -0
  230. package/lib/programmatic/openapi-docs-serving.js +123 -0
  231. package/lib/programmatic/openapi-help-schemas.js +63 -0
  232. package/lib/programmatic/openapi-manifest-schemas.js +141 -0
  233. package/lib/programmatic/openapi-operation-bindings.js +274 -0
  234. package/lib/programmatic/openapi-request-schemas.js +155 -0
  235. package/lib/programmatic/openapi-result-schemas.js +476 -0
  236. package/lib/programmatic/openapi-schema-descriptions-certify.js +139 -0
  237. package/lib/programmatic/openapi-schema-descriptions-core.js +159 -0
  238. package/lib/programmatic/openapi-schema-descriptions-help.js +40 -0
  239. package/lib/programmatic/openapi-schema-descriptions-manifest.js +143 -0
  240. package/lib/programmatic/openapi-schema-descriptions-mcp.js +118 -0
  241. package/lib/programmatic/openapi-schema-descriptions-operations.js +281 -0
  242. package/lib/programmatic/openapi-schema-helpers.js +93 -0
  243. package/lib/programmatic/openapi-spec.js +203 -0
  244. package/lib/programmatic/orchestration-openapi-meta.js +159 -0
  245. package/lib/programmatic/platform-rbac-catalog.js +90 -0
  246. package/lib/programmatic/request-timeout.js +53 -0
  247. package/lib/programmatic/route-handler-map.js +143 -0
  248. package/lib/programmatic/route-handlers-context.js +29 -0
  249. package/lib/programmatic/route-handlers.js +33 -0
  250. package/lib/programmatic/run-certify.js +57 -0
  251. package/lib/programmatic/run-enterprise-mcp.js +32 -0
  252. package/lib/programmatic/run-lifecycle.js +29 -0
  253. package/lib/programmatic/run-repair.js +41 -0
  254. package/lib/programmatic/run-repository-emcp.js +54 -0
  255. package/lib/programmatic/run-template-workspace.js +61 -0
  256. package/lib/programmatic/run-test.js +49 -0
  257. package/lib/programmatic/run-upload.js +63 -0
  258. package/lib/programmatic/run-validate.js +53 -0
  259. package/lib/programmatic/run-wizard.js +40 -0
  260. package/lib/programmatic/system-key.js +48 -0
  261. package/lib/programmatic/wizard-config-normalize.js +118 -0
  262. package/lib/programmatic/workspace-cleanup.js +128 -0
  263. package/lib/programmatic/workspace-context.js +145 -0
  264. package/lib/programmatic/workspace-lock.js +75 -0
  265. package/lib/programmatic/workspace-meta.js +64 -0
  266. package/lib/programmatic/workspace-ops.js +149 -0
  267. package/lib/protection/run-commands-upload-sync.js +35 -0
  268. package/lib/protection/run-commands.js +2 -20
  269. package/lib/protection/upload-batch.js +11 -7
  270. package/lib/resolvers/resource-type-file.js +22 -0
  271. package/lib/schema/external-datasource.schema.json +161 -1
  272. package/lib/schema/external-system.schema.json +244 -118
  273. package/lib/schema/flag-map-validation-run.json +3 -0
  274. package/lib/schema/type/credential-field-registry.json +2 -2
  275. package/lib/schema/type/document-storage.json +9 -0
  276. package/lib/utils/agent-trust-run-display.js +1 -1
  277. package/lib/utils/app-path-resolve.js +168 -0
  278. package/lib/utils/authentication-env-template.js +222 -0
  279. package/lib/utils/cli-sync-options.js +7 -11
  280. package/lib/utils/cli-utils.js +4 -0
  281. package/lib/utils/cli-workspace-options.js +29 -0
  282. package/lib/utils/compose-generate-docker-compose.js +102 -0
  283. package/lib/utils/configuration-env-resolver.js +203 -27
  284. package/lib/utils/datasource-test-run-certificate-tty.js +28 -2
  285. package/lib/utils/datasource-test-run-certification-debug.js +130 -0
  286. package/lib/utils/datasource-test-run-debug-display.js +2 -0
  287. package/lib/utils/datasource-test-run-debug-slice.js +7 -0
  288. package/lib/utils/datasource-test-run-display.js +2 -1
  289. package/lib/utils/dev-init-ssh-merge.js +165 -23
  290. package/lib/utils/dev-pin-share-instructions.js +110 -0
  291. package/lib/utils/dev-ssh-config-helper.js +177 -33
  292. package/lib/utils/enterprise-knowledge-paths.js +142 -0
  293. package/lib/utils/env-copy.js +2 -1
  294. package/lib/utils/env-dotenv-format.js +103 -0
  295. package/lib/utils/external-env-template.js +4 -1
  296. package/lib/utils/external-system-display.js +5 -1
  297. package/lib/utils/external-system-readiness-compact-blocks.js +221 -0
  298. package/lib/utils/external-system-readiness-compact-display.js +324 -0
  299. package/lib/utils/external-system-readiness-core.js +16 -0
  300. package/lib/utils/external-system-readiness-deploy-display.js +29 -11
  301. package/lib/utils/external-system-readiness-display-internals.js +3 -1
  302. package/lib/utils/external-system-readiness-display.js +20 -30
  303. package/lib/utils/external-system-system-test-tty-certification.js +135 -0
  304. package/lib/utils/external-system-system-test-tty.js +5 -41
  305. package/lib/utils/help-builder.js +6 -1
  306. package/lib/utils/host-ops-job-labels.js +236 -0
  307. package/lib/utils/host-ops-job-result.js +61 -0
  308. package/lib/utils/host-ops-poll-ui.js +163 -0
  309. package/lib/utils/integration-path-resolve.js +112 -0
  310. package/lib/utils/paths-reload-source.js +148 -0
  311. package/lib/utils/paths-system-builder-keys.js +25 -0
  312. package/lib/utils/paths.js +151 -26
  313. package/lib/utils/runtime-configuration-values.js +64 -2
  314. package/lib/utils/secrets-helpers.js +5 -1
  315. package/lib/utils/ssh-known-hosts.js +130 -0
  316. package/lib/utils/test-target-cli-options.js +75 -0
  317. package/lib/utils/upload-sync-options.js +4 -0
  318. package/lib/utils/validation-run-request.js +11 -2
  319. package/lib/validation/external-manifest-validator.js +11 -1
  320. package/lib/validation/openapi-contract-surface-validator.js +426 -0
  321. package/lib/validation/openapi-contract-vendor-validation.js +238 -0
  322. package/lib/validation/validate-external-file.js +160 -0
  323. package/lib/validation/validate.js +6 -117
  324. package/package.json +46 -29
  325. package/packages/builder-api/README.md +120 -0
  326. package/packages/builder-api/package.json +30 -0
  327. package/packages/builder-api/src/app.module.ts +7 -0
  328. package/packages/builder-api/src/auth/auth.module.ts +5 -0
  329. package/packages/builder-api/src/external-system/external-system.module.ts +5 -0
  330. package/packages/builder-api/src/main.ts +16 -0
  331. package/packages/builder-api/tsconfig.json +15 -0
  332. package/scripts/check-builder-api-architecture-grep.js +79 -0
  333. package/scripts/docker_image_content_gate.js +47 -0
  334. package/scripts/docker_image_content_gate.sh +5 -0
  335. package/scripts/export-builder-api-evidence.js +262 -0
  336. package/scripts/lib/builder-api-docker-staging-copy.js +60 -0
  337. package/scripts/lib/builder-api-docker-staging-core.js +183 -0
  338. package/scripts/lib/docker-image-content-gate-core.js +166 -0
  339. package/scripts/lib/plan-actor.js +109 -0
  340. package/scripts/lib/plan-config.js +20 -0
  341. package/scripts/lib/plan-gates.js +154 -0
  342. package/scripts/lib/plan-meta.js +104 -0
  343. package/scripts/lib/plan-parse.js +162 -0
  344. package/scripts/lib/plan-prevalidate-gates.js +326 -0
  345. package/scripts/lib/plan-run-core.js +125 -0
  346. package/scripts/lib/plan-run-report.js +108 -0
  347. package/scripts/plan-approve.js +24 -0
  348. package/scripts/plan-archive.js +49 -0
  349. package/scripts/plan-run.js +13 -0
  350. package/scripts/plan-set-actor.js +21 -0
  351. package/scripts/plan-validate.js +80 -0
  352. package/scripts/pnpm/af.mjs +110 -0
  353. package/scripts/pnpm/check-quiet.mjs +32 -0
  354. package/scripts/pnpm/dev-install.mjs +29 -0
  355. package/scripts/pnpm/dev-reload.mjs +18 -0
  356. package/scripts/pnpm/help.mjs +55 -0
  357. package/scripts/pnpm/lib/dev-reload-core.mjs +189 -0
  358. package/scripts/pnpm/lib/dev-reload-log-capture.mjs +67 -0
  359. package/scripts/pnpm/lib/dev-reload-log-utils.mjs +32 -0
  360. package/scripts/pnpm/lib/resolve-aifabrix-bin.mjs +124 -0
  361. package/scripts/pnpm/lib/resolve-app-url.mjs +183 -0
  362. package/scripts/pnpm/lib/spinner.mjs +42 -0
  363. package/scripts/stage_builder_api_for_docker.js +65 -0
  364. package/scripts/sync-builder-api-template.js +44 -0
  365. package/templates/README.md +3 -0
  366. package/templates/applications/builder-api/Dockerfile +38 -0
  367. package/templates/applications/builder-api/application.yaml +75 -0
  368. package/templates/applications/builder-api/env.template +48 -0
  369. package/templates/applications/dataplane/application.yaml +1 -1
  370. package/templates/applications/dataplane/env.template +10 -6
  371. package/templates/applications/dataplane/rbac.yaml +21 -1
  372. package/templates/applications/miso-controller/application.yaml +1 -1
  373. package/templates/applications/miso-controller/env.template +1 -3
  374. package/templates/channels/README.md +18 -0
  375. package/templates/channels/ai-fabrix-icon.jpg +0 -0
  376. package/templates/channels/chatgpt/install.template.md.hbs +21 -24
  377. package/templates/channels/chatgpt/integration/README.md +11 -0
  378. package/templates/channels/chatgpt/integration/application.json +15 -0
  379. package/templates/channels/chatgpt/integration/chatgpt-system.json +29 -0
  380. package/templates/channels/chatgpt/integration/env.template +4 -0
  381. package/templates/channels/microsoft-copilot/install.template.md.hbs +20 -25
  382. package/templates/channels/microsoft-copilot/integration/README.md +11 -0
  383. package/templates/channels/microsoft-copilot/integration/application.json +15 -0
  384. package/templates/channels/microsoft-copilot/integration/env.template +6 -0
  385. package/templates/channels/microsoft-copilot/integration/microsoft-copilot-system.json +34 -0
  386. package/templates/channels/slack/install.template.md.hbs +48 -18
  387. package/templates/channels/slack/integration/README.md +38 -0
  388. package/templates/channels/slack/integration/application.json +18 -0
  389. package/templates/channels/slack/integration/env.template +29 -0
  390. package/templates/channels/slack/integration/slack-datasource-conversations.json +226 -0
  391. package/templates/channels/slack/integration/slack-datasource-messages.json +269 -0
  392. package/templates/channels/slack/integration/slack-system.json +86 -0
  393. package/templates/channels/slack/manifest.template.json.hbs +20 -10
  394. package/templates/channels/teams-bot/install.template.md.hbs +31 -17
  395. package/templates/channels/teams-bot/integration/README.md +18 -0
  396. package/templates/channels/teams-bot/integration/application.json +17 -0
  397. package/templates/channels/teams-bot/integration/env.template +5 -0
  398. package/templates/channels/teams-bot/integration/teams-bot-system.json +55 -0
  399. package/templates/channels/teams-bot/manifest.template.json.hbs +27 -0
  400. package/templates/channels/web-embed/install.template.md.hbs +16 -26
  401. package/templates/channels/web-embed/integration/README.md +11 -0
  402. package/templates/channels/web-embed/integration/application.json +15 -0
  403. package/templates/channels/web-embed/integration/env.template +4 -0
  404. package/templates/channels/web-embed/integration/web-embed-system.json +29 -0
  405. package/templates/openapi/redoc_page.html +86 -0
  406. package/templates/python/docker-compose.hbs +11 -0
  407. package/templates/python/requirements.txt +1 -1
  408. package/templates/typescript/docker-compose.hbs +11 -0
  409. package/lib/certification/cli-cert-sync-skip.js +0 -21
@@ -0,0 +1,139 @@
1
+ /**
2
+ * OpenAPI schema descriptions — certify, lifecycle, governance, trust.
3
+ *
4
+ * @fileoverview Request/result models for certification routes
5
+ * @author AI Fabrix Team
6
+ * @version 1.0.0
7
+ */
8
+
9
+ 'use strict';
10
+
11
+ /** @type {Record<string, Object>} */
12
+ const CERTIFY_SCHEMA_DESCRIPTIONS = {
13
+ CertifyRequest: {
14
+ _schema: 'Optional flags for certification pillar commands.',
15
+ noPublish: 'When true, skip publishing local files before verify commands.',
16
+ pack: 'Governance scenario pack key for verify-governance.',
17
+ lifecycleBody: 'Optional subject and dry-run options when pillar is lifecycle-run.'
18
+ },
19
+ LifecycleRunRequest: {
20
+ _schema: 'Options for lifecycle-run certification pillar.',
21
+ subjectEmail: 'Email of the subject user for lifecycle scenarios.',
22
+ dryRun: 'When true, execute lifecycle checks without persisting outcomes.'
23
+ },
24
+ CertificationSummary: {
25
+ _schema: 'Certification level and readiness status from Dataplane lifecycle.',
26
+ level: 'Certification tier (BRONZE through PLATINUM or NONE).',
27
+ status: 'Readiness label (e.g. AI_READY, NOT_CERTIFIED).'
28
+ },
29
+ OperationsCheckDetail: {
30
+ _schema: 'Single operational readiness check from verify-operations.',
31
+ key: 'Check identifier or rule key.',
32
+ passed: 'True when this check passed.',
33
+ message: 'Human-readable check outcome message.'
34
+ },
35
+ OperationsStepResult: {
36
+ _schema: 'Result of one step in the verify-operations ladder.',
37
+ step: 'Step name or command label.',
38
+ success: 'True when the step completed successfully.',
39
+ error: 'Error detail when success is false.'
40
+ },
41
+ CertifyOperationsResultData: {
42
+ _schema: 'verify-operations pillar result with readiness percentage.',
43
+ command: 'Always verify-operations for this variant.',
44
+ systemKey: 'Integration system key certified.',
45
+ verdict: 'Lifecycle verdict for operations pillar.',
46
+ operationalReadinessPercent: 'Operational readiness score 0–100.',
47
+ certification: 'Certification level and status summary.',
48
+ warnings: 'Non-blocking operational warnings.',
49
+ details: 'Per-check operational readiness details.',
50
+ stepResults: 'Ordered step outcomes for the operations ladder.'
51
+ },
52
+ TrustDatasourceRow: {
53
+ _schema: 'Trust verification row for one datasource from verify-trust.',
54
+ datasourceKey: 'Datasource key evaluated.',
55
+ verdict: 'Trust verdict for this datasource.',
56
+ trustDecision: 'Trust decision label from Dataplane.',
57
+ validationStatus: 'Validation status string from trust checks.',
58
+ error: 'Error detail when verdict is not VERIFIED.'
59
+ },
60
+ CertifyTrustResultData: {
61
+ _schema: 'verify-trust pillar result with AI trust percentages.',
62
+ command: 'Always verify-trust for this variant.',
63
+ systemKey: 'Integration system key certified.',
64
+ verdict: 'Aggregate trust verdict.',
65
+ aiTrustPercent: 'AI trust score 0–100, or null when not computed.',
66
+ accessConfidencePercent: 'Access confidence score, or null when not computed.',
67
+ businessConfidencePercent: 'Business confidence score, or null when not computed.',
68
+ findings: 'Trust findings and recommendations.',
69
+ datasourceRows: 'Per-datasource trust outcomes.'
70
+ },
71
+ GovernanceScenarioCount: {
72
+ _schema: 'Passed vs total governance enforcement scenarios.',
73
+ passed: 'Number of scenarios that passed.',
74
+ total: 'Total scenarios executed.'
75
+ },
76
+ GovernanceDatasourceRow: {
77
+ _schema: 'Governance verification row for one datasource.',
78
+ datasourceKey: 'Datasource key evaluated.',
79
+ verdict: 'Governance verdict for this datasource.',
80
+ policyCoveragePercent: 'Policy coverage percentage, or null when unavailable.',
81
+ dimensionCoveragePercent: 'Dimension coverage percentage, or null when unavailable.',
82
+ scenarios: 'Passed and total enforcement scenario counts.'
83
+ },
84
+ CertifyGovernanceResultData: {
85
+ _schema: 'verify-governance pillar result with policy and dimension coverage.',
86
+ command: 'Always verify-governance for this variant.',
87
+ systemKey: 'Integration system key certified.',
88
+ verdict: 'Aggregate governance verdict.',
89
+ policyCoveragePercent: 'System-level policy coverage percentage.',
90
+ dimensionCoveragePercent: 'System-level dimension coverage percentage.',
91
+ enforcementScenarios: 'Aggregate scenario pass counts.',
92
+ datasourceRows: 'Per-datasource governance outcomes.'
93
+ },
94
+ LifecycleRunStep: {
95
+ _schema: 'One pillar executed during lifecycle-run.',
96
+ pillar: 'Pillar name (operations, trust, governance, etc.).',
97
+ success: 'True when this pillar run succeeded.',
98
+ error: 'Error detail when success is false.'
99
+ },
100
+ LifecycleRunReport: {
101
+ _schema: 'Summary report embedded in lifecycle-run results.',
102
+ systemKey: 'Integration system key.',
103
+ certification: 'Certification level and status after lifecycle-run.'
104
+ },
105
+ CertifyLifecycleRunResultData: {
106
+ _schema: 'lifecycle-run pillar result executing multiple certification pillars.',
107
+ report: 'Lifecycle certification report summary.',
108
+ stepsRun: 'Ordered list of pillars executed and their outcomes.'
109
+ },
110
+ CertifyResultData: {
111
+ _schema: 'Discriminated union of certification pillar results (see command field).'
112
+ },
113
+ LifecycleReportData: {
114
+ _schema: 'Lifecycle report fetched from Dataplane for a systemKey.',
115
+ systemKey: 'Integration system key.',
116
+ certification: 'Current certification level and status.',
117
+ operationalReadinessPercent: 'Operational readiness when included in report.',
118
+ summary: 'True when response is summary-only.',
119
+ details: 'True when detailed sections are included.'
120
+ },
121
+ CertifyResultResponse: {
122
+ _schema: '200 response envelope for runCertifyPillar.',
123
+ success: 'Always true for successful builder-api JSON responses.',
124
+ data: 'Typed payload; see CertifyResultData.',
125
+ correlationId: 'UUID correlating logs for this request.',
126
+ requestId: 'Optional per-request UUID when emitted by the server.'
127
+ },
128
+ LifecycleReportResponse: {
129
+ _schema: '200 response envelope for getLifecycleReport.',
130
+ success: 'Always true for successful builder-api JSON responses.',
131
+ data: 'Typed payload; see LifecycleReportData.',
132
+ correlationId: 'UUID correlating logs for this request.',
133
+ requestId: 'Optional per-request UUID when emitted by the server.'
134
+ }
135
+ };
136
+
137
+ module.exports = {
138
+ CERTIFY_SCHEMA_DESCRIPTIONS
139
+ };
@@ -0,0 +1,159 @@
1
+ /**
2
+ * OpenAPI schema descriptions — core types, workspace, health, errors, envelopes.
3
+ *
4
+ * @fileoverview `_schema` = component description; property values = field descriptions
5
+ * @author AI Fabrix Team
6
+ * @version 1.0.0
7
+ */
8
+
9
+ 'use strict';
10
+
11
+ /** @type {Record<string, Object>} */
12
+ const CORE_SCHEMA_DESCRIPTIONS = {
13
+ SystemKey: {
14
+ _schema: 'External integration system key (lowercase alphanumeric, hyphen, underscore).'
15
+ },
16
+ CertifyPillar: {
17
+ _schema: 'Certification pillar: operations, trust, governance, or lifecycle-run.'
18
+ },
19
+ TestRunType: {
20
+ _schema: 'Test ladder stage: unit (local files), integration (Dataplane pipeline), or e2e (live APIs).'
21
+ },
22
+ RepositorySyncDirection: {
23
+ _schema: 'Repository sync direction: pull remote into workspace or push workspace to remote.'
24
+ },
25
+ ProblemDetails: {
26
+ _schema: 'RFC 7807 problem response for builder-api errors (application/problem+json).',
27
+ type: 'Problem type URI or identifier.',
28
+ title: 'Short human-readable error title.',
29
+ status: 'HTTP status code echoed in the body.',
30
+ detail: 'Actionable error detail safe for operators and agents.',
31
+ instance: 'Request path or instance identifier.',
32
+ correlationId: 'Correlation id for log lookup across services.',
33
+ errors: 'Field-level validation errors when status is 400.'
34
+ },
35
+ ProblemValidationError: {
36
+ _schema: 'Single field validation error inside ProblemDetails.errors.',
37
+ field: 'JSON pointer or field name that failed validation.',
38
+ message: 'Validation failure message.',
39
+ value: 'Rejected value when safe to echo (may be omitted for secrets).'
40
+ },
41
+ LifecycleVerdict: {
42
+ _schema: 'Lifecycle verification outcome: VERIFIED, FAILED, or NOT_VERIFIED.'
43
+ },
44
+ CertificationLevel: {
45
+ _schema: 'Certification tier: BRONZE through PLATINUM, or NONE when uncertified.'
46
+ },
47
+ CertificationStatus: {
48
+ _schema: 'Readiness label derived from certification level and pillar results.'
49
+ },
50
+ WorkspaceMeta: {
51
+ _schema: 'Persisted workspace metadata for one integration systemKey.',
52
+ ownerUserId: 'Authenticated user id owning the workspace folder.',
53
+ systemKey: 'Integration system key for this workspace.',
54
+ createdAt: 'ISO timestamp when the workspace was first created.',
55
+ lastModifiedAt: 'ISO timestamp of the last mutating workspace operation.',
56
+ lastOperation: 'Handler id or label of the last completed operation.',
57
+ lastUploadId: 'Dataplane upload id from the last successful dev publish, if any.'
58
+ },
59
+ WorkspaceSystemSummary: {
60
+ _schema: 'Summary row for one system in the user workspace list.',
61
+ systemKey: 'Integration system key.',
62
+ meta: 'Workspace metadata when the folder exists; null when only the key is reserved.'
63
+ },
64
+ WorkspaceManifestFileEntry: {
65
+ _schema: 'One file or directory entry in the workspace manifest listing.',
66
+ path: 'Relative path from the integration workspace root.',
67
+ isDirectory: 'True when the entry is a directory.',
68
+ sizeBytes: 'File size in bytes; omitted or zero for directories.',
69
+ redacted: 'True when content is omitted from listings for sensitivity.'
70
+ },
71
+ ListSystemsData: {
72
+ _schema: 'Payload for listSystems: integration keys under the authenticated user.',
73
+ systems: 'Workspace summaries ordered by systemKey.'
74
+ },
75
+ CreateSystemData: {
76
+ _schema: 'Payload after createSystem: new workspace folder and metadata.',
77
+ systemKey: 'Created integration system key.',
78
+ meta: 'Initial workspace metadata including owner and timestamps.'
79
+ },
80
+ SystemManifestData: {
81
+ _schema: 'Local workspace manifest: metadata plus file listing for one systemKey.',
82
+ systemKey: 'Integration system key.',
83
+ meta: 'Workspace metadata; null if folder exists but meta file is missing.',
84
+ files: 'Recursive file manifest under the integration workspace.'
85
+ },
86
+ DeleteSystemData: {
87
+ _schema: 'Confirmation payload after deleteSystem removes the local workspace.',
88
+ systemKey: 'Deleted integration system key.',
89
+ deleted: 'Always true when the workspace folder was removed.'
90
+ },
91
+ HealthData: {
92
+ _schema: 'Liveness probe payload when the builder-api process is running.',
93
+ status: 'Always ok for successful liveness checks.'
94
+ },
95
+ ReadyData: {
96
+ _schema: 'Readiness probe payload; does not verify Dataplane connectivity in V1.',
97
+ status: 'Always ready when the service accepts traffic.',
98
+ dataplaneUrl: 'Configured dev Dataplane base URL, or null when unset.'
99
+ },
100
+ EmptyResultData: {
101
+ _schema: 'Empty data object for operations with no structured payload.'
102
+ },
103
+ EmptyRequestBody: {
104
+ _schema: 'Optional empty JSON body for routes that accept {}.'
105
+ },
106
+ ListSystemsResponse: {
107
+ _schema: '200 response envelope for listSystems.',
108
+ success: 'Always true for successful builder-api JSON responses.',
109
+ data: 'Typed payload; see ListSystemsData.',
110
+ correlationId: 'UUID correlating logs for this request.',
111
+ requestId: 'Optional per-request UUID when emitted by the server.'
112
+ },
113
+ CreateSystemResponse: {
114
+ _schema: '200 response envelope for createSystem.',
115
+ success: 'Always true for successful builder-api JSON responses.',
116
+ data: 'Typed payload; see CreateSystemData.',
117
+ correlationId: 'UUID correlating logs for this request.',
118
+ requestId: 'Optional per-request UUID when emitted by the server.'
119
+ },
120
+ SystemManifestResponse: {
121
+ _schema: '200 response envelope for getSystemManifest.',
122
+ success: 'Always true for successful builder-api JSON responses.',
123
+ data: 'Typed payload; see SystemManifestData.',
124
+ correlationId: 'UUID correlating logs for this request.',
125
+ requestId: 'Optional per-request UUID when emitted by the server.'
126
+ },
127
+ DeleteSystemResponse: {
128
+ _schema: '200 response envelope for deleteSystem.',
129
+ success: 'Always true for successful builder-api JSON responses.',
130
+ data: 'Typed payload; see DeleteSystemData.',
131
+ correlationId: 'UUID correlating logs for this request.',
132
+ requestId: 'Optional per-request UUID when emitted by the server.'
133
+ },
134
+ HealthResponse: {
135
+ _schema: '200 response envelope for GET /health (no authentication).',
136
+ success: 'Always true for successful builder-api JSON responses.',
137
+ data: 'Typed payload; see HealthData.',
138
+ correlationId: 'UUID correlating logs for this request.',
139
+ requestId: 'Optional per-request UUID when emitted by the server.'
140
+ },
141
+ ReadyResponse: {
142
+ _schema: '200 response envelope for GET /health/ready.',
143
+ success: 'Always true for successful builder-api JSON responses.',
144
+ data: 'Typed payload; see ReadyData.',
145
+ correlationId: 'UUID correlating logs for this request.',
146
+ requestId: 'Optional per-request UUID when emitted by the server.'
147
+ },
148
+ EmptyResultResponse: {
149
+ _schema: '200 response envelope when data is an empty object.',
150
+ success: 'Always true for successful builder-api JSON responses.',
151
+ data: 'Empty object when no structured result is returned.',
152
+ correlationId: 'UUID correlating logs for this request.',
153
+ requestId: 'Optional per-request UUID when emitted by the server.'
154
+ }
155
+ };
156
+
157
+ module.exports = {
158
+ CORE_SCHEMA_DESCRIPTIONS
159
+ };
@@ -0,0 +1,40 @@
1
+ /**
2
+ * OpenAPI schema descriptions for builder-api help models (plan 154.5).
3
+ *
4
+ * @fileoverview MCP-friendly help schema descriptions
5
+ * @author AI Fabrix Team
6
+ * @version 1.0.0
7
+ */
8
+
9
+ 'use strict';
10
+
11
+ /** @type {Record<string, Object>} */
12
+ const HELP_SCHEMA_DESCRIPTIONS = Object.freeze({
13
+ BuilderHelpTopic: {
14
+ _schema:
15
+ 'Help topic enum: overview, sections, section, dependencyGraph, repairRules, workflow, schemaCatalog, subscriptionGuide, cipOverview, goldenExamples, goldenExample, evidencePatterns, evidencePattern.'
16
+ },
17
+ BuilderHelpData: {
18
+ _schema: 'Deterministic LLM help payload for one topic (read-only product documentation).',
19
+ version: 'Help content release id (bump when topics or fixtures change).',
20
+ schemaVersion: 'Envelope and fixture JSON schema version.',
21
+ topic: 'Topic that produced this payload.',
22
+ key: 'Primary identifier (sectionKey, exampleKey, or topic name).',
23
+ title: 'Human-readable title for the topic payload.',
24
+ summary: 'Short summary suitable for MCP tool preambles.',
25
+ data: 'Topic-specific structured content (sections, graph, hooks, examples, or prose).',
26
+ related: 'Related help topic enum values (no URLs).',
27
+ recommendedNext: 'Suggested next help topics for agent bootstrap.'
28
+ },
29
+ BuilderHelpResponse: {
30
+ _schema: '200 response envelope for GET /help (no authentication).',
31
+ success: 'Always true for successful builder-api JSON responses.',
32
+ data: 'Typed payload; see BuilderHelpData.',
33
+ correlationId: 'UUID correlating logs for this request.',
34
+ requestId: 'Optional per-request UUID when emitted by the server.'
35
+ }
36
+ });
37
+
38
+ module.exports = {
39
+ HELP_SCHEMA_DESCRIPTIONS
40
+ };
@@ -0,0 +1,143 @@
1
+ /**
2
+ * OpenAPI schema descriptions — governed manifest section editing.
3
+ *
4
+ * @fileoverview Request/result models for manifest get/patch/repair routes
5
+ * @author AI Fabrix Team
6
+ * @version 1.0.0
7
+ */
8
+
9
+ 'use strict';
10
+
11
+ /** @type {Record<string, Object>} */
12
+ const MANIFEST_SCHEMA_DESCRIPTIONS = {
13
+ SectionKey: {
14
+ _schema: 'Governed manifest section key (e.g. datasource.metadata, system.basics).'
15
+ },
16
+ DatasourceKey: {
17
+ _schema: 'Datasource key within the external system workspace.'
18
+ },
19
+ MissingInput: {
20
+ _schema: 'Field the agent must ask the user for before patching (do not guess).',
21
+ field: 'Field name requiring user input.',
22
+ question: 'Question to ask the user verbatim.',
23
+ required: 'When true, AI must not guess — ask user first.'
24
+ },
25
+ SectionQuality: {
26
+ _schema: 'Deterministic quality assessment for a manifest section.',
27
+ score: 'Quality score 0–100 from rule-based checks.',
28
+ blockingIssues: {
29
+ _schema: 'Issues that block safe patch or upload.',
30
+ _arrayItems: {
31
+ severity: 'Issue severity (error, warning, info).',
32
+ message: 'Human-readable blocking issue description.'
33
+ }
34
+ },
35
+ warnings: 'Non-blocking quality warnings.',
36
+ missingInputs: 'Fields requiring explicit user input before patching.',
37
+ assumptions: 'Assumptions recorded during quality scoring.'
38
+ },
39
+ ManifestPatchSectionRequest: {
40
+ _schema: 'Governed patch body; requires prior GET sectionReadToken.',
41
+ intent: 'Why this patch is made — audit and repair hints.',
42
+ patch: 'Section-scoped merge or replace payload.',
43
+ mode: 'Merge into existing section value or replace entirely.',
44
+ sectionReadToken: 'Token from prior GET; stale token returns 409.',
45
+ dryRun: 'Validate patch without writing files.'
46
+ },
47
+ ManifestRepairRequest: {
48
+ _schema: 'Run named repair hooks after section patches.',
49
+ hooks: 'Repair hook names to execute in dependency order.',
50
+ sectionKey: 'Optional section context for targeted repair.',
51
+ datasourceKey: 'Optional datasource context when repairing datasource sections.',
52
+ dryRun: 'Preview hook execution without writing files.',
53
+ auth: 'Optional auth repair mode passed to repair command.'
54
+ },
55
+ ManifestSectionViewData: {
56
+ _schema: 'Governed section view for LLM/MCP editing workflows.',
57
+ sectionKey: 'Section key for this view.',
58
+ target: 'Whether the section applies to system or datasource scope.',
59
+ datasourceKey: 'Datasource key when target is datasource; null for system sections.',
60
+ currentValue: 'Current JSON value for the section.',
61
+ schemaFragment: 'JSON Schema fragment describing allowed shape.',
62
+ required: 'True when the section must be present for validation.',
63
+ mutable: 'True when PATCH is allowed for this section.',
64
+ sourceOfTruth: 'True when this section is authoritative over derived files.',
65
+ dependencyGraph: {
66
+ _schema: 'Downstream sections affected by changes to this section.',
67
+ downstreamFromThis: 'Section keys that may need repair after patching.'
68
+ },
69
+ repairHooks: 'Suggested repair hook names after patch.',
70
+ recommendedNextActions: 'Agent-facing next steps (validate, repair, ask user).',
71
+ sectionReadToken: 'Opaque token required for PATCH; obtained from this GET.',
72
+ quality: 'Deterministic quality score and blocking issues.'
73
+ },
74
+ ManifestPatchResultData: {
75
+ _schema: 'Result after governed section patch.',
76
+ sectionKey: 'Patched section key.',
77
+ datasourceKey: 'Datasource key when a datasource section was patched.',
78
+ intent: 'Echo of the patch intent from the request.',
79
+ changedPaths: 'JSON pointer paths modified by the patch.',
80
+ beforeHash: 'Content hash before patch.',
81
+ afterHash: 'Content hash after patch.',
82
+ derivedSectionsAffected: 'Section keys invalidated or updated downstream.',
83
+ repairRecommended: 'True when repair hooks should run next.',
84
+ repairHooks: 'Repair hook names recommended after this patch.',
85
+ validationPreview: 'Inline validation preview object when dryRun or post-patch.',
86
+ riskHints: 'Risk hints for agents (governance, auth, exposure).',
87
+ nextActions: 'Suggested next API calls or user questions.',
88
+ dryRun: 'True when no files were written.',
89
+ quality: 'Updated quality assessment for the section.'
90
+ },
91
+ ManifestSectionsListData: {
92
+ _schema: 'Catalog of governed sections and datasource keys for a systemKey.',
93
+ systemKey: 'Integration system key.',
94
+ sections: {
95
+ _schema: 'Governed sections available for GET/PATCH.',
96
+ _arrayItems: {
97
+ sectionKey: 'Section key identifier.',
98
+ target: 'system or datasource scope for this section.'
99
+ }
100
+ },
101
+ datasourceKeys: 'Datasource keys present in the workspace.'
102
+ },
103
+ ManifestRepairResultData: {
104
+ _schema: 'Result after manifest repair hooks execute.',
105
+ hooksRun: 'Repair hooks that were executed.',
106
+ derivedSectionsUpdated: 'Section keys refreshed by repair.',
107
+ repairResult: 'Opaque repair command result object.',
108
+ dryRun: 'True when hooks were previewed only.',
109
+ quality: 'Optional aggregate quality after repair; null when not computed.'
110
+ },
111
+ ManifestSectionViewResponse: {
112
+ _schema: '200 response envelope for getManifestSection / getDatasourceManifestSection.',
113
+ success: 'Always true for successful builder-api JSON responses.',
114
+ data: 'Typed payload; see ManifestSectionViewData.',
115
+ correlationId: 'UUID correlating logs for this request.',
116
+ requestId: 'Optional per-request UUID when emitted by the server.'
117
+ },
118
+ ManifestPatchResultResponse: {
119
+ _schema: '200 response envelope for patchManifestSection / patchDatasourceManifestSection.',
120
+ success: 'Always true for successful builder-api JSON responses.',
121
+ data: 'Typed payload; see ManifestPatchResultData.',
122
+ correlationId: 'UUID correlating logs for this request.',
123
+ requestId: 'Optional per-request UUID when emitted by the server.'
124
+ },
125
+ ManifestSectionsListResponse: {
126
+ _schema: '200 response envelope for listManifestSections.',
127
+ success: 'Always true for successful builder-api JSON responses.',
128
+ data: 'Typed payload; see ManifestSectionsListData.',
129
+ correlationId: 'UUID correlating logs for this request.',
130
+ requestId: 'Optional per-request UUID when emitted by the server.'
131
+ },
132
+ ManifestRepairResultResponse: {
133
+ _schema: '200 response envelope for runManifestRepair.',
134
+ success: 'Always true for successful builder-api JSON responses.',
135
+ data: 'Typed payload; see ManifestRepairResultData.',
136
+ correlationId: 'UUID correlating logs for this request.',
137
+ requestId: 'Optional per-request UUID when emitted by the server.'
138
+ }
139
+ };
140
+
141
+ module.exports = {
142
+ MANIFEST_SCHEMA_DESCRIPTIONS
143
+ };
@@ -0,0 +1,118 @@
1
+ /**
2
+ * OpenAPI schema descriptions — Enterprise MCP, repository, template, workspace remote.
3
+ *
4
+ * @fileoverview Request/result models for MCP-delegated routes
5
+ * @author AI Fabrix Team
6
+ * @version 1.0.0
7
+ */
8
+
9
+ 'use strict';
10
+
11
+ /** @type {Record<string, Object>} */
12
+ const MCP_SCHEMA_DESCRIPTIONS = {
13
+ TemplateMaterializeRequest: {
14
+ _schema: 'Materialize workspace files from an Enterprise MCP template.',
15
+ templateKey: 'Template identifier registered in Enterprise MCP.',
16
+ params: 'Optional branch and path filters for materialization.'
17
+ },
18
+ TemplateMaterializeParams: {
19
+ _schema: 'Optional parameters for template.materializeWorkspace.',
20
+ branch: 'Git branch or template branch to materialize from.',
21
+ paths: 'Restrict materialization to these workspace-relative paths.'
22
+ },
23
+ WorkspaceDiffRequest: {
24
+ _schema: 'Compare local workspace draft against a baseline via Enterprise MCP.',
25
+ baseline: 'Baseline label (e.g. remote, template, last-upload).',
26
+ paths: 'Optional path filter for the diff operation.'
27
+ },
28
+ WorkspaceResetRequest: {
29
+ _schema: 'Reset workspace from template via Enterprise MCP workspace.resetFromTemplate.',
30
+ templateKey: 'Template to reset from; defaults when omitted.',
31
+ confirm: 'Must be true to execute destructive reset.'
32
+ },
33
+ RepositorySyncRequest: {
34
+ _schema: 'Sync workspace with remote repository via Enterprise MCP repository.sync.',
35
+ direction: 'Pull remote changes or push local workspace.',
36
+ branch: 'Target branch for sync.',
37
+ paths: 'Optional path filter for partial sync.',
38
+ commitMessage: 'Commit message when direction is push.'
39
+ },
40
+ RepositoryCreateReviewRequest: {
41
+ _schema: 'Create or update a code review via Enterprise MCP repository.createReview.',
42
+ title: 'Review title (PR title or provider equivalent).',
43
+ body: 'Review description body.',
44
+ sourceBranch: 'Branch containing changes.',
45
+ targetBranch: 'Merge target branch.',
46
+ draft: 'When true, create as draft review.'
47
+ },
48
+ RepositoryDispatchPipelineRequest: {
49
+ _schema: 'Dispatch CI/CD workflow via Enterprise MCP repository.dispatchPipeline.',
50
+ workflow: 'Workflow file name or id to dispatch.',
51
+ ref: 'Git ref (branch or tag) to run the workflow on.',
52
+ inputs: 'Optional workflow inputs key-value map.'
53
+ },
54
+ RepositoryPipelineInputs: {
55
+ _schema: 'Named inputs passed to the dispatched pipeline workflow.',
56
+ environment: 'Target deployment environment input.',
57
+ ref: 'Git ref override input for the workflow.'
58
+ },
59
+ EnterpriseMcpToolOutput: {
60
+ _schema: 'Normalized result object from an Enterprise MCP tool invocation.',
61
+ success: 'True when the MCP tool reported success.',
62
+ status: 'Provider-specific status string.',
63
+ message: 'Human-readable outcome message.',
64
+ branch: 'Branch name affected by the operation.',
65
+ pullRequestUrl: 'URL to created or updated review when applicable.',
66
+ syncDirection: 'Pull or push when the tool was repository.sync.',
67
+ commitSha: 'Resulting commit SHA after sync or push.',
68
+ workflowRunId: 'CI workflow run id after dispatchPipeline.'
69
+ },
70
+ WorkspaceRemoteUnavailable: {
71
+ _schema: 'Placeholder when Enterprise MCP workspace.status is unavailable.',
72
+ unavailable: 'Always true for this variant.',
73
+ message: 'Reason remote status could not be fetched.'
74
+ },
75
+ WorkspaceRemoteStatus: {
76
+ _schema: 'Remote workspace status from MCP, unavailable marker, or null.'
77
+ },
78
+ EnterpriseMcpInvocationData: {
79
+ _schema: 'Wrapper for Enterprise MCP tool results returned by builder-api.',
80
+ capabilityKey: 'MCP capability key that was invoked (e.g. repository.sync).',
81
+ result: 'Normalized MCP tool output.'
82
+ },
83
+ WorkspaceStatusData: {
84
+ _schema: 'Combined local manifest and optional remote workspace status.',
85
+ local: 'Local workspace manifest (same shape as getSystemManifest).',
86
+ remote: 'Enterprise MCP workspace.status result, unavailable marker, or null.'
87
+ },
88
+ RepositoryStatusData: {
89
+ _schema: 'Enterprise MCP repository.status result for a systemKey.',
90
+ capabilityKey: 'Always repository.status for this route.',
91
+ result: 'Normalized MCP tool output for repository status.'
92
+ },
93
+ EnterpriseMcpInvocationResponse: {
94
+ _schema: '200 response envelope for MCP-delegated mutating or diff routes.',
95
+ success: 'Always true for successful builder-api JSON responses.',
96
+ data: 'Typed payload; see EnterpriseMcpInvocationData.',
97
+ correlationId: 'UUID correlating logs for this request.',
98
+ requestId: 'Optional per-request UUID when emitted by the server.'
99
+ },
100
+ WorkspaceStatusResponse: {
101
+ _schema: '200 response envelope for getWorkspaceStatus.',
102
+ success: 'Always true for successful builder-api JSON responses.',
103
+ data: 'Typed payload; see WorkspaceStatusData.',
104
+ correlationId: 'UUID correlating logs for this request.',
105
+ requestId: 'Optional per-request UUID when emitted by the server.'
106
+ },
107
+ RepositoryStatusResponse: {
108
+ _schema: '200 response envelope for getRepositoryStatus.',
109
+ success: 'Always true for successful builder-api JSON responses.',
110
+ data: 'Typed payload; see RepositoryStatusData.',
111
+ correlationId: 'UUID correlating logs for this request.',
112
+ requestId: 'Optional per-request UUID when emitted by the server.'
113
+ }
114
+ };
115
+
116
+ module.exports = {
117
+ MCP_SCHEMA_DESCRIPTIONS
118
+ };