@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.
- package/README.md +8 -0
- package/bin/aifabrix.js +2 -2
- package/lib/agent-kit/apply-ops.js +82 -0
- package/lib/agent-kit/checksums.js +28 -0
- package/lib/agent-kit/classify.js +113 -0
- package/lib/agent-kit/claude-shim.js +61 -0
- package/lib/agent-kit/constants.js +55 -0
- package/lib/agent-kit/file-list.js +103 -0
- package/lib/agent-kit/host-approve.js +130 -0
- package/lib/agent-kit/hosting/github.js +63 -0
- package/lib/agent-kit/hosts.js +71 -0
- package/lib/agent-kit/init.js +319 -0
- package/lib/agent-kit/kit-root.js +17 -0
- package/lib/agent-kit/managed-section.js +79 -0
- package/lib/agent-kit/package-load.js +45 -0
- package/lib/agent-kit/plan-ops.js +69 -0
- package/lib/agent-kit/remote-prompts.js +239 -0
- package/lib/agent-kit/render-host-markdown.js +40 -0
- package/lib/agent-kit/repo-guard.js +47 -0
- package/lib/agent-kit/report.js +107 -0
- package/lib/agent-kit/run.js +82 -0
- package/lib/agent-kit/scm/git.js +122 -0
- package/lib/agent-kit/state-file.js +83 -0
- package/lib/agent-kit/status.js +50 -0
- package/lib/agent-kit/v1-detect.js +81 -0
- package/lib/agent-kit/validate-kit.js +87 -0
- package/lib/agent-kit/workspace-name.js +40 -0
- package/lib/agent-kit/workspace-skeleton.js +103 -0
- package/lib/api/assistants.api.js +8 -5
- package/lib/api/channel-identity.api.js +41 -0
- package/lib/api/evidence-authoring.api.js +5 -1
- package/lib/api/evidence.api.js +2 -0
- package/lib/api/role-assistant-test-pack.api.js +86 -0
- package/lib/api/types/evidence.types.js +2 -0
- package/lib/api/work-search.api.js +163 -0
- package/lib/api/work.api.js +19 -12
- package/lib/app/list-external-systems.js +2 -1
- package/lib/app/show-display.js +33 -6
- package/lib/app/show.js +25 -2
- package/lib/channels/add-channel.js +164 -126
- package/lib/channels/approval-guides/chatgpt.js +14 -18
- package/lib/channels/approval-guides/claude.js +29 -0
- package/lib/channels/approval-guides/index.js +88 -22
- package/lib/channels/approval-guides/mcp-client.js +27 -0
- package/lib/channels/approval-guides/microsoft-copilot.js +52 -3
- package/lib/channels/approval-guides/slack.js +10 -10
- package/lib/channels/approval-guides/teams-bot.js +8 -12
- package/lib/channels/channel-add-continuations.js +91 -0
- package/lib/channels/channel-add-ensure.js +124 -27
- package/lib/channels/channel-add-existing.js +160 -28
- package/lib/channels/channel-add-failure.js +61 -0
- package/lib/channels/channel-add-remaining.js +492 -0
- package/lib/channels/channel-add-tty.js +190 -0
- package/lib/channels/channel-add-wizard-config.js +138 -0
- package/lib/channels/channel-add-wizard.js +250 -0
- package/lib/channels/channel-artifact-generator.js +27 -13
- package/lib/channels/channel-cardinality.js +83 -0
- package/lib/channels/channel-catalog-icon.js +45 -0
- package/lib/channels/channel-cli-instructions.js +75 -0
- package/lib/channels/channel-configuration-map.js +213 -0
- package/lib/channels/channel-credential.js +11 -14
- package/lib/channels/channel-definition-project.js +101 -0
- package/lib/channels/channel-definition-registry.js +154 -0
- package/lib/channels/channel-definition-status.js +115 -0
- package/lib/channels/channel-description.js +60 -2
- package/lib/channels/channel-discovery.js +16 -2
- package/lib/channels/channel-external-system.js +86 -9
- package/lib/channels/channel-install-envelope-actions.js +88 -0
- package/lib/channels/channel-install-envelope-microsoft.js +155 -0
- package/lib/channels/channel-install-envelope.js +358 -0
- package/lib/channels/channel-install-help-md.js +172 -0
- package/lib/channels/channel-install-http-payload.js +62 -0
- package/lib/channels/channel-install-inventory.js +115 -0
- package/lib/channels/channel-install-profiles.js +90 -0
- package/lib/channels/channel-instance-collision.js +118 -0
- package/lib/channels/channel-instance-key.js +100 -0
- package/lib/channels/channel-instance-materialize.js +240 -0
- package/lib/channels/channel-integration-generator.js +18 -9
- package/lib/channels/channel-integration-template.js +101 -22
- package/lib/channels/channel-inventory-fetch.js +79 -0
- package/lib/channels/channel-oauth-preflight.js +104 -0
- package/lib/channels/channel-package-version.js +76 -0
- package/lib/channels/channel-predefined-client.js +154 -0
- package/lib/channels/channel-probe.js +7 -2
- package/lib/channels/channel-runtime-resolver.js +194 -72
- package/lib/channels/channel-status-display.js +86 -16
- package/lib/channels/channel-targets.js +132 -92
- package/lib/channels/chatgpt-callback.js +318 -0
- package/lib/channels/chatgpt-channel-add.js +229 -0
- package/lib/channels/chatgpt-preflight.js +396 -0
- package/lib/channels/chatgpt-runtime-contract.js +17 -0
- package/lib/channels/chatgpt-setup-values.js +124 -0
- package/lib/channels/claude-callback.js +67 -0
- package/lib/channels/claude-channel-add.js +254 -0
- package/lib/channels/claude-runtime-contract.js +40 -0
- package/lib/channels/claude-runtime.js +58 -0
- package/lib/channels/claude-setup-values.js +92 -0
- package/lib/channels/mcp-client/config-merge.js +148 -0
- package/lib/channels/mcp-client/ensure-client.js +231 -0
- package/lib/channels/mcp-client/paths.js +53 -0
- package/lib/channels/mcp-client/profiles.js +122 -0
- package/lib/channels/mcp-client/redirect-uris.js +99 -0
- package/lib/channels/mcp-client/runtime.js +59 -0
- package/lib/channels/mcp-client-channel-add.js +186 -0
- package/lib/channels/microsoft-copilot-channel-add.js +117 -7
- package/lib/channels/microsoft-copilot-entra-identifier-uris.js +187 -0
- package/lib/channels/microsoft-copilot-entra-sso-form.js +106 -18
- package/lib/channels/microsoft-copilot-entra-sso.js +31 -2
- package/lib/channels/microsoft-copilot-package-prior.js +107 -0
- package/lib/channels/microsoft-copilot-package.js +29 -28
- package/lib/channels/microsoft-provisioning/a365.js +80 -0
- package/lib/channels/microsoft-provisioning/auth-config.js +240 -0
- package/lib/channels/microsoft-provisioning/auth.js +179 -0
- package/lib/channels/microsoft-provisioning/cli.js +71 -0
- package/lib/channels/microsoft-provisioning/constants.js +75 -0
- package/lib/channels/microsoft-provisioning/errors.js +117 -0
- package/lib/channels/microsoft-provisioning/index.js +55 -0
- package/lib/channels/microsoft-provisioning/install-atk.js +158 -0
- package/lib/channels/microsoft-provisioning/install-teams.js +115 -0
- package/lib/channels/microsoft-provisioning/login-portal-device.js +236 -0
- package/lib/channels/microsoft-provisioning/login-portal-parse.js +71 -0
- package/lib/channels/microsoft-provisioning/login-portal-teams.js +193 -0
- package/lib/channels/microsoft-provisioning/login-portal.js +230 -0
- package/lib/channels/microsoft-provisioning/persist.js +110 -0
- package/lib/channels/microsoft-provisioning/teams-bot-args.js +119 -0
- package/lib/channels/microsoft-provisioning/teams-bot-controller.js +123 -0
- package/lib/channels/microsoft-provisioning/teams-bot-parse.js +134 -0
- package/lib/channels/microsoft-provisioning/teams-bot-persist.js +113 -0
- package/lib/channels/microsoft-provisioning/teams-bot-provision.js +234 -0
- package/lib/channels/microsoft-provisioning/teams-bot-secrets.js +45 -0
- package/lib/channels/microsoft-provisioning/teams-cli.js +82 -0
- package/lib/channels/runtime-tool-catalog.js +5 -2
- package/lib/channels/slack-channel-add-portal.js +130 -0
- package/lib/channels/slack-channel-add-tty-auth.js +95 -0
- package/lib/channels/slack-channel-add.js +311 -0
- package/lib/channels/slack-mcp-callback.js +51 -0
- package/lib/channels/slack-mcp-runtime.js +156 -0
- package/lib/channels/slack-provisioning/apps.js +181 -0
- package/lib/channels/slack-provisioning/auth-store.js +110 -0
- package/lib/channels/slack-provisioning/auth-ticket.js +185 -0
- package/lib/channels/slack-provisioning/auth.js +115 -0
- package/lib/channels/slack-provisioning/callbacks.js +41 -0
- package/lib/channels/slack-provisioning/cli.js +226 -0
- package/lib/channels/slack-provisioning/constants.js +37 -0
- package/lib/channels/slack-provisioning/credentials.js +169 -0
- package/lib/channels/slack-provisioning/curl-shim.js +132 -0
- package/lib/channels/slack-provisioning/developer-install.js +118 -0
- package/lib/channels/slack-provisioning/env-file.js +120 -0
- package/lib/channels/slack-provisioning/errors.js +47 -0
- package/lib/channels/slack-provisioning/go-ca-bundle.js +137 -0
- package/lib/channels/slack-provisioning/index.js +250 -0
- package/lib/channels/slack-provisioning/install-cli.js +335 -0
- package/lib/channels/slack-provisioning/manifest.js +89 -0
- package/lib/channels/slack-provisioning/oauth-lock.js +33 -0
- package/lib/channels/slack-provisioning/offer-cli.js +113 -0
- package/lib/channels/slack-provisioning/onboard-members.js +122 -0
- package/lib/channels/slack-provisioning/onboard.js +89 -0
- package/lib/channels/slack-provisioning/persist.js +95 -0
- package/lib/channels/slack-provisioning/remaining-urls.js +158 -0
- package/lib/channels/slack-provisioning/with-curl-on-path.js +53 -0
- package/lib/channels/teams-bot-channel-add.js +94 -0
- package/lib/channels/vendor-dataplane-url.js +249 -0
- package/lib/cli/index.js +4 -0
- package/lib/cli/setup-certification-commands.js +2 -2
- package/lib/cli/setup-certification.help.js +5 -1
- package/lib/cli/setup-external-system-help.js +2 -0
- package/lib/cli/setup-external-system.js +1 -1
- package/lib/commands/agent-kit-help.js +79 -0
- package/lib/commands/agent-kit.js +346 -0
- package/lib/commands/channel-add-help.js +366 -0
- package/lib/commands/channel-add-setup.js +162 -80
- package/lib/commands/channel-configure.js +118 -0
- package/lib/commands/channel.js +10 -1
- package/lib/commands/datasource-capability-relate-cli.js +5 -4
- package/lib/commands/governance-upload-external.js +6 -3
- package/lib/commands/lifecycle-command-action.js +2 -5
- package/lib/commands/lifecycle-external.js +93 -21
- package/lib/commands/repair-auth-apply.js +1 -1
- package/lib/commands/repair-datasource-key-skip.js +39 -0
- package/lib/commands/repair-datasource-keys.js +24 -12
- package/lib/commands/repair-datasource-test-payload.js +4 -2
- package/lib/commands/repair-datasource-webhooks-sync-bridge.js +23 -2
- package/lib/commands/repair-datasource.js +3 -0
- package/lib/commands/repair-external-run.js +59 -25
- package/lib/commands/repair-openapi-rest-runtime.js +127 -0
- package/lib/commands/repair-orchestration-tag-merge.js +339 -0
- package/lib/commands/repair-rbac-catalog-defaults.js +96 -0
- package/lib/commands/repair-rbac-platform-preset.js +26 -15
- package/lib/commands/repair-rbac-reader-roles.js +8 -21
- package/lib/commands/repair-rbac.js +26 -44
- package/lib/commands/repair-system-permissions.js +24 -22
- package/lib/commands/role-assistant-copy-output.js +61 -0
- package/lib/commands/role-assistant-copy.js +155 -0
- package/lib/commands/role-assistant-test-output.js +22 -9
- package/lib/commands/role-assistant-test-result-rows.js +42 -0
- package/lib/commands/role-assistant.js +150 -43
- package/lib/commands/search.js +143 -0
- package/lib/commands/test-e2e-external.js +148 -21
- package/lib/commands/test-trust-external.js +7 -5
- package/lib/commands/upload-credential-push-log.js +2 -1
- package/lib/commands/upload-publish-context.js +1 -1
- package/lib/commands/upload-role-assistant-shell.js +124 -0
- package/lib/commands/upload-sidecar-followups.js +10 -4
- package/lib/commands/upload.js +18 -3
- package/lib/commands/verify-operations-skip-e2e.js +131 -0
- package/lib/commands/verify-operations-step-plan.js +6 -33
- package/lib/commands/verify-operations-steps.js +3 -1
- package/lib/core/secrets-docker-env.js +4 -1
- package/lib/core/secrets-env-content.js +17 -3
- package/lib/datasource/capability/capability-manifest.js +0 -3
- package/lib/datasource/capability/copy-test-payload.js +3 -0
- package/lib/datasource/capability/relate-operations.js +28 -10
- package/lib/datasource/capability/run-capability-relate.js +48 -25
- package/lib/datasource/datasource-identifier.js +13 -5
- package/lib/deployment/deployer-poll-run.js +117 -35
- package/lib/external-system/deploy-dataplane-published.js +70 -0
- package/lib/external-system/deploy-helpers.js +26 -1
- package/lib/external-system/deploy.js +22 -8
- package/lib/external-system/download-helpers.js +29 -2
- package/lib/external-system/download-role-assistant.js +109 -4
- package/lib/external-system/download.js +46 -30
- package/lib/external-system/sync-deploy-manifest.js +3 -2
- package/lib/external-system/upload-identity.js +42 -0
- package/lib/generator/index.js +19 -15
- package/lib/generator/split.js +13 -2
- package/lib/generator/wizard-datasource-key.js +54 -0
- package/lib/generator/wizard.js +55 -54
- package/lib/integration-definition/apply-datasource-keys.js +75 -0
- package/lib/integration-definition/apply-relationships.js +195 -0
- package/lib/integration-definition/apply-static-enterprise.js +229 -0
- package/lib/integration-definition/apply-system-file.js +71 -0
- package/lib/integration-definition/apply-test-endpoint.js +89 -0
- package/lib/integration-definition/apply-viewpoint-defaults.js +157 -0
- package/lib/integration-definition/apply.js +78 -59
- package/lib/integration-definition/enrich-openapi-operations.js +36 -10
- package/lib/integration-definition/enrich-openapi-pick.js +87 -0
- package/lib/lifecycle/role-assistant-governance.js +181 -0
- package/lib/lifecycle/scenario-upload.js +181 -30
- package/lib/programmatic/builder-api-cors.js +143 -0
- package/lib/programmatic/builder-api-request.js +6 -0
- package/lib/programmatic/builder-api-route-dispatch.js +56 -42
- package/lib/programmatic/builder-api-server.js +8 -1
- package/lib/programmatic/capability-registry.js +55 -0
- package/lib/programmatic/channel-install-help-resolve.js +359 -0
- package/lib/programmatic/channel-install-session.js +218 -0
- package/lib/programmatic/help-content/channel-onboarding.md +2 -0
- package/lib/programmatic/help-content/cip-overview.md +3 -1
- package/lib/programmatic/http-raw-response.js +62 -0
- package/lib/programmatic/index.js +2 -0
- package/lib/programmatic/openapi-apply-result-schemas.js +8 -0
- package/lib/programmatic/openapi-channel-install-bindings.js +179 -0
- package/lib/programmatic/openapi-channel-install-schemas.js +289 -0
- package/lib/programmatic/openapi-component-schemas.js +19 -1
- package/lib/programmatic/openapi-description-enricher.js +3 -1
- package/lib/programmatic/openapi-descriptions.js +80 -3
- package/lib/programmatic/openapi-envelope-examples.js +124 -0
- package/lib/programmatic/openapi-operation-bindings.js +9 -1
- package/lib/programmatic/openapi-request-schemas.js +5 -0
- package/lib/programmatic/openapi-schema-descriptions-channel.js +319 -0
- package/lib/programmatic/openapi-schema-descriptions-operations.js +19 -0
- package/lib/programmatic/openapi-spec.js +13 -8
- package/lib/programmatic/platform-rbac-catalog.js +36 -18
- package/lib/programmatic/request-timeout.js +3 -0
- package/lib/programmatic/route-handler-map.js +58 -1
- package/lib/programmatic/route-handlers-context.js +2 -1
- package/lib/programmatic/run-auth-permissions.js +54 -0
- package/lib/programmatic/run-channel-catalog.js +238 -0
- package/lib/programmatic/run-channel-install-artifacts.js +137 -0
- package/lib/programmatic/run-channel-install-copilot.js +353 -0
- package/lib/programmatic/run-channel-install-options.js +236 -0
- package/lib/programmatic/run-channel-install-teams-bot.js +204 -0
- package/lib/programmatic/run-channel-install.js +346 -0
- package/lib/programmatic/run-channel-package.js +87 -7
- package/lib/programmatic/run-download.js +41 -0
- package/lib/programmatic/workspace-context.js +2 -0
- package/lib/protection/auth-context.js +3 -1
- package/lib/protection/protection-display.js +3 -2
- package/lib/protection/report-exit.js +50 -0
- package/lib/protection/run-commands.js +2 -0
- package/lib/role-assistant/evidence-sync.js +4 -2
- package/lib/role-assistant/evidence-validation-issues.js +51 -0
- package/lib/role-assistant/knowledge-sync.js +10 -4
- package/lib/role-assistant/package-validate.js +175 -0
- package/lib/role-assistant/settings.js +49 -2
- package/lib/role-assistant/test-case-assertion-row.js +36 -0
- package/lib/role-assistant/test-case-copy-bind.js +77 -0
- package/lib/role-assistant/test-case-copy-expected.js +127 -0
- package/lib/role-assistant/test-case-copy-from-work.js +90 -0
- package/lib/role-assistant/test-case-copy-interactions.js +67 -0
- package/lib/role-assistant/test-case-copy.js +119 -0
- package/lib/role-assistant/test-case-expected-catalog.js +135 -0
- package/lib/role-assistant/test-case-validate.js +88 -0
- package/lib/role-assistant/test-cases-bid.js +117 -4
- package/lib/role-assistant/test-cases-evaluate.js +159 -24
- package/lib/role-assistant/test-cases-evidence.js +175 -0
- package/lib/role-assistant/test-cases-honesty.js +155 -6
- package/lib/role-assistant/test-cases-lifecycle.js +291 -0
- package/lib/role-assistant/test-cases-search-graph.js +122 -0
- package/lib/role-assistant/test-cases-search.js +247 -0
- package/lib/role-assistant/test-cases.js +71 -172
- package/lib/role-assistant/test-pack-map.js +180 -0
- package/lib/role-assistant/test-pack-sync.js +187 -0
- package/lib/role-assistant/test-runner-debug.js +54 -0
- package/lib/role-assistant/test-runner-respond-body.js +36 -0
- package/lib/role-assistant/test-runner-search.js +164 -0
- package/lib/role-assistant/test-runner-start-payload.js +63 -10
- package/lib/role-assistant/test-runner-workhub-answers.js +45 -16
- package/lib/role-assistant/test-runner-workhub-helpers.js +40 -2
- package/lib/role-assistant/test-runner-workhub-soft.js +9 -3
- package/lib/role-assistant/test-runner-workhub.js +74 -32
- package/lib/role-assistant/test-runner.js +66 -11
- package/lib/schema/external-datasource.schema.json +146 -21
- package/lib/schema/external-system.schema.json +177 -2
- package/lib/schema/mcp-client-profile.schema.json +103 -0
- package/lib/schema/role-assistant-test-case.schema.json +408 -0
- package/lib/search/dataplane-context.js +23 -0
- package/lib/search/search-args.js +211 -0
- package/lib/search/search-display.js +238 -0
- package/lib/search/search-errors.js +50 -0
- package/lib/search/search-prompts.js +119 -0
- package/lib/search/search-roles.js +85 -0
- package/lib/search/search-run.js +241 -0
- package/lib/search/search-skills.js +198 -0
- package/lib/utils/app-path-resolve.js +4 -0
- package/lib/utils/authentication-env-template.js +44 -6
- package/lib/utils/authentication-slot-show.js +153 -0
- package/lib/utils/credential-display.js +43 -1
- package/lib/utils/credential-secrets-env.js +6 -1
- package/lib/utils/env-copy.js +19 -7
- package/lib/utils/external-env-template.js +20 -2
- package/lib/utils/external-system-readiness-compact-blocks.js +5 -1
- package/lib/utils/external-system-readiness-compact-display.js +30 -1
- package/lib/utils/external-system-validators.js +2 -1
- package/lib/utils/help-builder.js +3 -1
- package/lib/utils/paths.js +18 -1
- package/lib/utils/platform-shell-package.js +69 -0
- package/lib/utils/port-resolver.js +50 -1
- package/lib/utils/rewrite-name-flag.js +20 -0
- package/lib/utils/role-assistant-paths.js +13 -10
- package/lib/utils/schema-loader.js +37 -0
- package/lib/utils/schema-resolver.js +11 -1
- package/lib/utils/secrets-helpers.js +12 -21
- package/lib/utils/token-manager.js +10 -5
- package/lib/validation/validate-external-file.js +5 -1
- package/lib/validation/validate.js +41 -0
- package/package.json +1 -1
- package/templates/README.md +1 -1
- package/templates/agent-kit/adapters/claude/nested.CLAUDE.md +1 -0
- package/templates/agent-kit/adapters/claude/root.CLAUDE.md +5 -0
- package/templates/agent-kit/adapters/cursor/commands/cust-0-plan.md +5 -0
- package/templates/agent-kit/adapters/cursor/commands/cust-1-validate.md +5 -0
- package/templates/agent-kit/adapters/cursor/commands/cust-2-build.md +5 -0
- package/templates/agent-kit/adapters/cursor/commands/cust-3-push.md +5 -0
- package/templates/agent-kit/adapters/cursor/commands/cust-biz-1-validate.md +5 -0
- package/templates/agent-kit/adapters/cursor/commands/cust-biz-2-build.md +5 -0
- package/templates/agent-kit/adapters/cursor/commands/cust-biz-3-prove.md +5 -0
- package/templates/agent-kit/agent-kit.yaml +45 -0
- package/templates/agent-kit/instructions/AGENTKIT.md +83 -0
- package/templates/agent-kit/instructions/integration.AGENTS.md +25 -0
- package/templates/agent-kit/instructions/role-assistant.AGENTS.md +22 -0
- package/templates/agent-kit/instructions/root.AGENTS.md +37 -0
- package/templates/agent-kit/parity-inventory.yaml +188 -0
- package/templates/agent-kit/skills/aifabrix-connected-system/SKILL.md +58 -0
- package/templates/agent-kit/skills/aifabrix-connected-system/references/contract-checklist.md +40 -0
- package/templates/agent-kit/skills/aifabrix-connected-system/references/delivery-gates.md +54 -0
- package/templates/agent-kit/skills/aifabrix-connected-system/references/production-safety.md +35 -0
- package/templates/agent-kit/skills/aifabrix-connected-system/scripts/reserved-system-key.js +19 -0
- package/templates/agent-kit/skills/aifabrix-plan/SKILL.md +51 -0
- package/templates/agent-kit/skills/aifabrix-plan/references/challenge-checklist.md +108 -0
- package/templates/agent-kit/skills/aifabrix-plan/references/interaction.md +34 -0
- package/templates/agent-kit/skills/aifabrix-plan/references/plan-template.md +182 -0
- package/templates/agent-kit/skills/aifabrix-prove/SKILL.md +50 -0
- package/templates/agent-kit/skills/aifabrix-prove/references/demo-template.md +65 -0
- package/templates/agent-kit/skills/aifabrix-prove/references/evidence-lifecycle.md +68 -0
- package/templates/agent-kit/skills/aifabrix-prove/references/learning-template.md +66 -0
- package/templates/agent-kit/skills/aifabrix-role-assistant/SKILL.md +42 -0
- package/templates/agent-kit/skills/aifabrix-role-assistant/references/package-boundary.md +21 -0
- package/templates/agent-kit/skills/shared/hosts.md +78 -0
- package/templates/agent-kit/workspace/.cursor/plans/README.md +22 -0
- package/templates/agent-kit/workspace/LICENSE.mit +21 -0
- package/templates/agent-kit/workspace/README.md +89 -0
- package/templates/applications/builder-api/Dockerfile +3 -1
- package/templates/applications/builder-api/env.template +7 -0
- package/templates/applications/dataplane/application.yaml +6 -5
- package/templates/applications/dataplane/env.template +2 -2
- package/templates/applications/dataplane/rbac.yaml +35 -2
- package/templates/applications/keycloak/Dockerfile +30 -4
- package/templates/applications/keycloak/application.yaml +2 -2
- package/templates/applications/keycloak/cimd-lenient-parse/AbstractClientIdMetadataDocumentExecutor.java +896 -0
- package/templates/applications/keycloak/cimd-lenient-parse/SOURCE.md +19 -0
- package/templates/applications/keycloak/env.template +3 -0
- package/templates/applications/miso-controller/application.yaml +1 -2
- package/templates/applications/miso-controller/env.template +10 -9
- package/templates/channels/README.md +5 -5
- package/templates/channels/chatgpt/TROUBLESHOOTING.md +51 -0
- package/templates/channels/chatgpt/channel.json +59 -0
- package/templates/channels/chatgpt/icon.svg +1 -0
- package/templates/channels/chatgpt/install.template.md.hbs +20 -95
- package/templates/channels/chatgpt/integration/README.md +1 -1
- package/templates/channels/chatgpt/integration/application.json +2 -2
- package/templates/channels/chatgpt/integration/chatgpt-system.json +49 -4
- package/templates/channels/chatgpt/integration/env.template +2 -4
- package/templates/channels/chatgpt/integration/rbac.json +13 -0
- package/templates/channels/claude/TROUBLESHOOTING.md +44 -0
- package/templates/channels/claude/channel.json +59 -0
- package/templates/channels/claude/icon.svg +1 -0
- package/templates/channels/claude/install.template.md.hbs +22 -0
- package/templates/channels/claude/integration/README.md +14 -0
- package/templates/channels/claude/integration/application.json +15 -0
- package/templates/channels/claude/integration/claude-system.json +59 -0
- package/templates/channels/claude/integration/env.template +2 -0
- package/templates/channels/claude/integration/rbac.json +13 -0
- package/templates/channels/claude/manifest.template.json.hbs +40 -0
- package/templates/channels/mcp-client/channel.json +72 -0
- package/templates/channels/mcp-client/icon.svg +1 -0
- package/templates/channels/mcp-client/install.template.md.hbs +24 -0
- package/templates/channels/mcp-client/integration/README.md +13 -0
- package/templates/channels/mcp-client/integration/application.json +15 -0
- package/templates/channels/mcp-client/integration/env.template +2 -0
- package/templates/channels/mcp-client/integration/mcp-client-system.json +72 -0
- package/templates/channels/mcp-client/integration/rbac.json +13 -0
- package/templates/channels/mcp-client/manifest.template.json.hbs +41 -0
- package/templates/channels/mcp-client/profiles/cursor.json +26 -0
- package/templates/channels/mcp-client/profiles/github-copilot.json +29 -0
- package/templates/channels/mcp-client/profiles/vscode.json +29 -0
- package/templates/channels/microsoft-copilot/channel.json +73 -0
- package/templates/channels/microsoft-copilot/declarative-agent.template.json.hbs +8 -4
- package/templates/channels/microsoft-copilot/entra-sso-registration.template.md.hbs +65 -5
- package/templates/channels/microsoft-copilot/icon.svg +1 -0
- package/templates/channels/microsoft-copilot/install.template.md.hbs +9 -9
- package/templates/channels/microsoft-copilot/integration/README.md +1 -1
- package/templates/channels/microsoft-copilot/integration/application.json +2 -2
- package/templates/channels/microsoft-copilot/integration/env.template +3 -6
- package/templates/channels/microsoft-copilot/integration/microsoft-copilot-system.json +63 -4
- package/templates/channels/microsoft-copilot/integration/rbac.json +13 -0
- package/templates/channels/microsoft-copilot/oauth-plugin-vault-required.template.md.hbs +5 -5
- package/templates/channels/slack/channel.json +234 -0
- package/templates/channels/slack/icon.svg +1 -0
- package/templates/channels/slack/install.template.md.hbs +45 -28
- package/templates/channels/slack/integration/README.md +245 -22
- package/templates/channels/slack/integration/application.json +44 -7
- package/templates/channels/slack/integration/env.template +15 -6
- package/templates/channels/slack/integration/openapi/openapi.json +126 -0
- package/templates/channels/slack/integration/rbac.json +84 -0
- package/templates/channels/slack/integration/slack-datasource-commands.json +154 -0
- package/templates/channels/slack/integration/slack-datasource-conversations.json +28 -3
- package/templates/channels/slack/integration/slack-datasource-events.json +154 -0
- package/templates/channels/slack/integration/slack-datasource-interactive.json +154 -0
- package/templates/channels/slack/integration/slack-datasource-messages.json +40 -2
- package/templates/channels/slack/integration/slack-system.json +161 -72
- package/templates/channels/slack/manifest.template.json.hbs +10 -4
- package/templates/channels/teams-bot/channel.json +162 -0
- package/templates/channels/teams-bot/icon.svg +1 -0
- package/templates/channels/teams-bot/install.template.md.hbs +12 -13
- package/templates/channels/teams-bot/integration/README.md +5 -4
- package/templates/channels/teams-bot/integration/application.json +6 -4
- package/templates/channels/teams-bot/integration/env.template +5 -4
- package/templates/channels/teams-bot/integration/openapi/openapi.json +68 -0
- package/templates/channels/teams-bot/integration/rbac.json +21 -0
- package/templates/channels/teams-bot/integration/teams-bot-datasource-activities.json +154 -0
- package/templates/channels/teams-bot/integration/teams-bot-system.json +128 -23
- package/templates/channels/web-embed/channel.json +60 -0
- package/templates/channels/web-embed/install.template.md.hbs +1 -1
- package/templates/channels/web-embed/integration/README.md +2 -2
- package/templates/channels/web-embed/integration/application.json +2 -2
- package/templates/channels/web-embed/integration/env.template +1 -1
- package/templates/channels/web-embed/integration/rbac.json +13 -0
- package/templates/channels/web-embed/integration/web-embed-system.json +50 -4
- package/templates/python/docker-compose.hbs +14 -0
- package/templates/typescript/docker-compose.hbs +14 -0
|
@@ -212,6 +212,15 @@ async function tryClientTokenAuth(environment, appName, controllerUrl) {
|
|
|
212
212
|
return null;
|
|
213
213
|
}
|
|
214
214
|
|
|
215
|
+
function throwNoDeploymentAuth(credentialApp) {
|
|
216
|
+
const err = new Error(
|
|
217
|
+
`No authentication method available. For CI: set AIFABRIX_DEPLOYMENT_AUTH=client-credentials and MISO_CLIENTID/MISO_CLIENTSECRET in .env or '${credentialApp}-client-idKeyVault' in secrets.local.yaml. For interactive use: aifabrix login`
|
|
218
|
+
);
|
|
219
|
+
err.statusCode = 401;
|
|
220
|
+
err.authFailure = true;
|
|
221
|
+
throw err;
|
|
222
|
+
}
|
|
223
|
+
|
|
215
224
|
/**
|
|
216
225
|
* Get deployment authentication configuration with priority:
|
|
217
226
|
* 1. Device token → type 'bearer' (user token) → send as Authorization: Bearer
|
|
@@ -265,11 +274,7 @@ async function getDeploymentAuth(controllerUrl, environment, appName, options =
|
|
|
265
274
|
}
|
|
266
275
|
}
|
|
267
276
|
|
|
268
|
-
|
|
269
|
-
'No authentication method available. For CI: set AIFABRIX_DEPLOYMENT_AUTH=client-credentials and ' +
|
|
270
|
-
`MISO_CLIENTID/MISO_CLIENTSECRET in .env or '${credentialApp}-client-idKeyVault' in secrets.local.yaml. ` +
|
|
271
|
-
'For interactive use: aifabrix login'
|
|
272
|
-
);
|
|
277
|
+
throwNoDeploymentAuth(credentialApp);
|
|
273
278
|
}
|
|
274
279
|
|
|
275
280
|
/**
|
|
@@ -13,7 +13,8 @@ const yaml = require('js-yaml');
|
|
|
13
13
|
const {
|
|
14
14
|
loadExternalSystemSchema,
|
|
15
15
|
loadExternalDataSourceSchema,
|
|
16
|
-
loadRoleAssistantSettingsSchema
|
|
16
|
+
loadRoleAssistantSettingsSchema,
|
|
17
|
+
loadRoleAssistantTestCaseSchema
|
|
17
18
|
} = require('../utils/schema-loader');
|
|
18
19
|
const { formatValidationErrors } = require('../utils/error-formatter');
|
|
19
20
|
const { validateFieldReferences } = require('../datasource/field-reference-validator');
|
|
@@ -60,6 +61,9 @@ function getValidatorForType(normalizedType) {
|
|
|
60
61
|
if (normalizedType === 'role-assistant-settings') {
|
|
61
62
|
return loadRoleAssistantSettingsSchema();
|
|
62
63
|
}
|
|
64
|
+
if (normalizedType === 'role-assistant-test-case') {
|
|
65
|
+
return loadRoleAssistantTestCaseSchema();
|
|
66
|
+
}
|
|
63
67
|
throw new Error(`Unknown file type: ${normalizedType}`);
|
|
64
68
|
}
|
|
65
69
|
|
|
@@ -23,6 +23,11 @@ const { validateControllerManifest } = require('./external-manifest-validator');
|
|
|
23
23
|
const { runExternalValidateWithOptionalCertSync } = require('./validate-external-cert-sync');
|
|
24
24
|
const { validateExternalFile } = require('./validate-external-file');
|
|
25
25
|
const { reservedSystemKeyError } = require('./reserved-system-key-prefixes');
|
|
26
|
+
const {
|
|
27
|
+
isRoleAssistantWorkspace,
|
|
28
|
+
isEnterpriseKnowledgeWorkspace
|
|
29
|
+
} = require('../utils/platform-shell-package');
|
|
30
|
+
const { validateRoleAssistantPackage } = require('../role-assistant/package-validate');
|
|
26
31
|
|
|
27
32
|
/**
|
|
28
33
|
* Validates a file path (detects type and validates)
|
|
@@ -323,6 +328,32 @@ function aggregateExternalValidationSteps(steps, appPath) {
|
|
|
323
328
|
};
|
|
324
329
|
}
|
|
325
330
|
|
|
331
|
+
function skippedValidationStep() {
|
|
332
|
+
return { valid: true, errors: [], warnings: [], skipped: true };
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
function skippedComponentsStep() {
|
|
336
|
+
return { valid: true, errors: [], warnings: [], files: [], skipped: true };
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
async function validatePlatformShellPackage(_appName, baseDir, appPath, _options) {
|
|
340
|
+
if (isEnterpriseKnowledgeWorkspace(baseDir)) {
|
|
341
|
+
return aggregateExternalValidationSteps({
|
|
342
|
+
application: skippedValidationStep(),
|
|
343
|
+
components: skippedComponentsStep(),
|
|
344
|
+
manifest: skippedValidationStep()
|
|
345
|
+
}, appPath);
|
|
346
|
+
}
|
|
347
|
+
if (!isRoleAssistantWorkspace(baseDir)) {
|
|
348
|
+
return null;
|
|
349
|
+
}
|
|
350
|
+
return aggregateExternalValidationSteps({
|
|
351
|
+
application: skippedValidationStep(),
|
|
352
|
+
components: await validateRoleAssistantPackage(appPath),
|
|
353
|
+
manifest: skippedValidationStep()
|
|
354
|
+
}, appPath);
|
|
355
|
+
}
|
|
356
|
+
|
|
326
357
|
/**
|
|
327
358
|
* Validates external system completely (components + full manifest)
|
|
328
359
|
* Performs step-by-step validation: application config → components → full manifest
|
|
@@ -355,6 +386,16 @@ async function validateExternalSystemComplete(appName, options = {}) {
|
|
|
355
386
|
};
|
|
356
387
|
|
|
357
388
|
const externalOptions = { ...options };
|
|
389
|
+
const platformResult = await validatePlatformShellPackage(
|
|
390
|
+
appName,
|
|
391
|
+
baseDir,
|
|
392
|
+
appPath,
|
|
393
|
+
externalOptions
|
|
394
|
+
);
|
|
395
|
+
if (platformResult) {
|
|
396
|
+
return platformResult;
|
|
397
|
+
}
|
|
398
|
+
|
|
358
399
|
steps.application = await validateApplicationStep(appName, externalOptions);
|
|
359
400
|
steps.components = await validateComponentsStep(appName, externalOptions);
|
|
360
401
|
|
package/package.json
CHANGED
package/templates/README.md
CHANGED
|
@@ -21,7 +21,7 @@ Application templates are folder-based and located under `templates/applications
|
|
|
21
21
|
| --- | --- |
|
|
22
22
|
| `aifabrix-builder/builder/builder-api/` | `templates/applications/builder-api/` |
|
|
23
23
|
| `aifabrix-miso/builder/miso-controller/` (`env.template`, `rbac.yaml`, `application.yaml`) | `templates/applications/miso-controller/` |
|
|
24
|
-
| `aifabrix-miso/builder/keycloak/` (`env.template`, `application.yaml`) | `templates/applications/keycloak/` |
|
|
24
|
+
| `aifabrix-miso/builder/keycloak/` (`env.template`, `application.yaml`, `Dockerfile`, `cimd-lenient-parse/`) | `templates/applications/keycloak/` |
|
|
25
25
|
| `aifabrix-dataplane/builder/dataplane/` (`env.template`, `rbac.yaml`, `application.yaml`) | `templates/applications/dataplane/` |
|
|
26
26
|
|
|
27
27
|
**Schema master (dataplane):** Also copies dataplane `app/schemas/json/` core integration schemas + `type/*` and `configs/deployment-rules.yaml` into `lib/schema/` (same contract as dataplane `make sync-json`). Do not hand-edit those mirrors — edit dataplane SSOT, then sync. Builder-owned schemas in `lib/schema/` (wizard, infra, etc.) are left alone.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@AGENTS.md
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
@AGENTS.md
|
|
2
|
+
|
|
3
|
+
Delivery skills: `/aifabrix-plan`, `/aifabrix-connected-system`, `/aifabrix-role-assistant`, `/aifabrix-prove`.
|
|
4
|
+
The skill body lives under `.agents/skills/`. Do not invent a parallel workflow.
|
|
5
|
+
Local vs SSH (tmux, Remote Control): `.agents/skills/shared/hosts.md`.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
schemaVersion: "1"
|
|
2
|
+
kitVersion: "1.1.1"
|
|
3
|
+
minimumBuilderVersion: "2.54.2"
|
|
4
|
+
skills:
|
|
5
|
+
- aifabrix-plan
|
|
6
|
+
- aifabrix-connected-system
|
|
7
|
+
- aifabrix-role-assistant
|
|
8
|
+
- aifabrix-prove
|
|
9
|
+
managed:
|
|
10
|
+
- source: skills
|
|
11
|
+
target: .agents/skills
|
|
12
|
+
mode: tree
|
|
13
|
+
- source: instructions/root.AGENTS.md
|
|
14
|
+
target: AGENTS.md
|
|
15
|
+
mode: managed-section
|
|
16
|
+
- source: instructions/integration.AGENTS.md
|
|
17
|
+
target: integration/AGENTS.md
|
|
18
|
+
mode: managed-section
|
|
19
|
+
- source: instructions/role-assistant.AGENTS.md
|
|
20
|
+
target: role-assistant/AGENTS.md
|
|
21
|
+
mode: managed-section
|
|
22
|
+
- source: instructions/AGENTKIT.md
|
|
23
|
+
target: AGENTKIT.md
|
|
24
|
+
mode: file
|
|
25
|
+
render: hosts
|
|
26
|
+
- source: workspace/README.md
|
|
27
|
+
target: README.md
|
|
28
|
+
mode: if-missing
|
|
29
|
+
optional:
|
|
30
|
+
- source: adapters/cursor/commands
|
|
31
|
+
target: .cursor/commands
|
|
32
|
+
mode: tree
|
|
33
|
+
when: v1-migration
|
|
34
|
+
- source: adapters/claude/root.CLAUDE.md
|
|
35
|
+
target: CLAUDE.md
|
|
36
|
+
mode: managed-section
|
|
37
|
+
when: host-claude
|
|
38
|
+
- source: adapters/claude/nested.CLAUDE.md
|
|
39
|
+
target: integration/CLAUDE.md
|
|
40
|
+
mode: managed-section
|
|
41
|
+
when: host-claude
|
|
42
|
+
- source: adapters/claude/nested.CLAUDE.md
|
|
43
|
+
target: role-assistant/CLAUDE.md
|
|
44
|
+
mode: managed-section
|
|
45
|
+
when: host-claude
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Agent Kit
|
|
2
|
+
|
|
3
|
+
Builder-owned. `aifabrix agent-kit update` refreshes this file. If workspace `README.md` is missing, install/update creates it. An existing README is never overwritten.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
From this git repository (Builder CLI on PATH):
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
aifabrix agent-kit install --host {{hostFlag}}{{#if autoApprove}} --approve-all --yes{{/if}}
|
|
11
|
+
aifabrix agent-kit status
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
`--host` may be `all`, `cursor`, `codex`, or `claude`. Shared skills always land in `.agents/skills/`.
|
|
15
|
+
{{#if claude}}
|
|
16
|
+
`claude` also writes `CLAUDE.md` and thin `.claude/skills` pointers.
|
|
17
|
+
{{/if}}
|
|
18
|
+
|
|
19
|
+
## Update
|
|
20
|
+
|
|
21
|
+
When this CLI is newer than the workspace kit, or you add or switch coding hosts:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
aifabrix agent-kit update --host {{hostFlag}}{{#if autoApprove}} --approve-all --yes{{/if}}
|
|
25
|
+
aifabrix agent-kit validate
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Omit `--host` to keep the hosts already recorded. Pass `--host` when the developer changes Cursor / Claude Code / Codex.
|
|
29
|
+
|
|
30
|
+
New workspace instead of an existing repo: `aifabrix agent-kit init <workspaceName> --host {{hostFlag}}`.
|
|
31
|
+
|
|
32
|
+
## Activate hosts
|
|
33
|
+
|
|
34
|
+
Install the coding app, then sign in. How to **run** it locally or over SSH is in `.agents/skills/shared/hosts.md` (linked from every Agent Kit skill).
|
|
35
|
+
{{#if autoApprove}}
|
|
36
|
+
|
|
37
|
+
On TTY, install **asks** to auto-approve tool permissions **in this workspace**. Claude Code also allows `Bash(aifabrix *)` (delivery CLI) and `Read(~/**)` (home Read). Silent (`--yes` / non-TTY) writes them; `--skip-approve-all` skips.
|
|
38
|
+
{{#if claude}}
|
|
39
|
+
- Claude Code writes `.claude/settings.local.json` (gitignored).
|
|
40
|
+
{{/if}}
|
|
41
|
+
{{#if codex}}
|
|
42
|
+
- Codex writes `.codex/config.toml` (gitignored).
|
|
43
|
+
{{/if}}
|
|
44
|
+
{{/if}}
|
|
45
|
+
{{#if cursor}}
|
|
46
|
+
|
|
47
|
+
### Cursor
|
|
48
|
+
|
|
49
|
+
Open this folder in Cursor (this machine, or Cursor Remote SSH). Skills: `/aifabrix-plan`, `/aifabrix-connected-system`, `/aifabrix-role-assistant`, `/aifabrix-prove`.
|
|
50
|
+
{{/if}}
|
|
51
|
+
{{#if claude}}
|
|
52
|
+
|
|
53
|
+
### Claude Code
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
curl -fsSL https://claude.ai/install.sh | bash
|
|
57
|
+
claude auth login
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Skills: same `/aifabrix-*` names. First `claude` must run inside this workspace, not your home directory.
|
|
61
|
+
{{/if}}
|
|
62
|
+
{{#if codex}}
|
|
63
|
+
|
|
64
|
+
### Codex
|
|
65
|
+
|
|
66
|
+
Install the Codex CLI, then sign in with your Codex account. Skills: `$aifabrix-plan` (and the other `$aifabrix-*` names). Codex reads `AGENTS.md`.
|
|
67
|
+
{{/if}}
|
|
68
|
+
|
|
69
|
+
## Auth for delivery CLI
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
aifabrix auth status
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
If still unauthenticated, run `aifabrix login` (the agent cannot log in for you).
|
|
76
|
+
|
|
77
|
+
## How to start
|
|
78
|
+
|
|
79
|
+
After this folder is open in the coding host, follow **How to start** in the workspace `README.md` (how to use prompts, then plan → validate/build → publish, then Role Assistant).
|
|
80
|
+
|
|
81
|
+
## Docs
|
|
82
|
+
|
|
83
|
+
Agents load the public index from `AGENTS.md`. Humans: the workspace `README.md` Docs section.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Connected System laws
|
|
2
|
+
|
|
3
|
+
Load when working under `integration/`. Follow skill `aifabrix-connected-system` and its references.
|
|
4
|
+
|
|
5
|
+
## Builder-first packages
|
|
6
|
+
|
|
7
|
+
Generate EDS with BID apply, wizard, repair, or `aifabrix json`. Do not hand-seed greenfield `*-system.json` / `*-datasource-*.json` / `application.*`. Manual deltas need `INTEGRATION_CHANGELOG.md`.
|
|
8
|
+
|
|
9
|
+
## Contract
|
|
10
|
+
|
|
11
|
+
- `exposed` needs `filterable`, real `profiles`, and `schema`. Schema-only is not BUILT.
|
|
12
|
+
- Every `exposed.filterable` field has `metadataSchema.properties.<field>.filter: true`.
|
|
13
|
+
- Foreign keys sit on the child (`from`) only; `targetFields: ["externalId"]`. No reverse parent FKs. Empty FK on business storage is not READY/BUILT unless config, logs, documented root, or self-tree (field only).
|
|
14
|
+
- Partitioned and current-state views need FK + dimensions (`type: fk`) + usually `accessControl.abac.applicability: required`.
|
|
15
|
+
- `roles[].value` must be a COM catalog key from `aifabrix role list`. Never invent `*-reader`.
|
|
16
|
+
|
|
17
|
+
## Publish
|
|
18
|
+
|
|
19
|
+
`aifabrix upload` is a draft application. `aifabrix deploy` publishes. Dataplane `show --online` status **published** is truth. Ignore upload banners that say Published.
|
|
20
|
+
|
|
21
|
+
## Safety
|
|
22
|
+
|
|
23
|
+
One designated mutation subject from the integration README. Credential-deferred live E2E may skip honestly; failed sync with a secret present is FAIL. See `production-safety.md` in the connected-system skill.
|
|
24
|
+
|
|
25
|
+
Do not bulk-sync views as storage. Do not invent a Connected System key starting with `ra-` or `ek-`.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Role Assistant laws
|
|
2
|
+
|
|
3
|
+
Load when working under `role-assistant/`. Follow skill `aifabrix-role-assistant`.
|
|
4
|
+
|
|
5
|
+
## Packages are separate
|
|
6
|
+
|
|
7
|
+
Connected Systems live under `integration/<systemKey>/`.
|
|
8
|
+
Role Assistants live under `role-assistant/ra-<catalogRole>/`.
|
|
9
|
+
Do not keep CS manifests inside an RA folder. Do not run `aifabrix convert` on RA packages.
|
|
10
|
+
|
|
11
|
+
## Authority
|
|
12
|
+
|
|
13
|
+
The catalog Business Role must exist (`aifabrix role list`). Package key is `ra-<catalogRole>`.
|
|
14
|
+
Download an existing assistant before editing generated yaml.
|
|
15
|
+
Candidate Evidence is not certified Evidence.
|
|
16
|
+
Missing CS capability is fixed on the Connected System, then re-subscribed — never as an RA-local operation.
|
|
17
|
+
|
|
18
|
+
## Publish and prove
|
|
19
|
+
|
|
20
|
+
CS must be dataplane **published** (deploy, not upload-only) before subscription-driven capabilities exist.
|
|
21
|
+
Do not upload or deploy an RA unless the user explicitly asks in this turn.
|
|
22
|
+
Agent prompts never supply the actor. Verified backend identity is authoritative.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# AI Fabrix customer workspace
|
|
2
|
+
|
|
3
|
+
This repository delivers Connected Systems and Role Assistants with the Builder CLI.
|
|
4
|
+
Do not edit platform product source (`aifabrix-dataplane`, `aifabrix-miso`, `aifabrix-builder`) from this workspace.
|
|
5
|
+
|
|
6
|
+
## Ownership
|
|
7
|
+
|
|
8
|
+
| Owner | Holds |
|
|
9
|
+
| --- | --- |
|
|
10
|
+
| This repository | Customer facts, specifications, plans, fixtures, tests, learning |
|
|
11
|
+
| Agent Kit | Reusable delivery behavior (installed skills and these managed sections) |
|
|
12
|
+
| Builder CLI | Commands, package validation, install/update of this kit |
|
|
13
|
+
| Dataplane / controller | Auth, RBAC, ABAC, Protection, publication, Runtime execution |
|
|
14
|
+
|
|
15
|
+
Vendor limits, tenant ids, credentials, PII stance, partitions, and the designated mutation subject live only in `integration/<systemKey>/README.md`.
|
|
16
|
+
|
|
17
|
+
## Secrets
|
|
18
|
+
|
|
19
|
+
Use `kv://` and `aifabrix secret`. Never store, print, ask for, or commit secret values.
|
|
20
|
+
Missing vendor secret: upload a draft, print the Authentication tab link, stop. Do not collect credentials in chat.
|
|
21
|
+
|
|
22
|
+
## Verdicts
|
|
23
|
+
|
|
24
|
+
`PLAN_READY` · `READY` · `BUILT` · `PASS` · `PASS_WITH_SKIPS` · `NEEDS_DECISIONS` · `NEEDS_FIXES` · `BLOCKED` · `ABORTED`
|
|
25
|
+
|
|
26
|
+
Do not collapse these into a generic success boolean. Do not start the next lifecycle phase unless the user selects it.
|
|
27
|
+
|
|
28
|
+
## Coding hosts
|
|
29
|
+
|
|
30
|
+
Cursor, Claude Code, and Codex — local machine or SSH (tmux, Claude Remote Control): `.agents/skills/shared/hosts.md`.
|
|
31
|
+
Install and sign-in: `AGENTKIT.md`.
|
|
32
|
+
|
|
33
|
+
## Docs
|
|
34
|
+
|
|
35
|
+
Integrator hub: https://docs.aifabrix.ai/docs/build-ai-ready-systems
|
|
36
|
+
CLI workflow: https://docs.aifabrix.ai/docs/build-ai-ready-systems-validate-test-cli-workflow
|
|
37
|
+
Index: https://docs.aifabrix.ai/llms.txt
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
# Frozen v1 → kit owner map. Not installed into customer repos.
|
|
2
|
+
schemaVersion: "1"
|
|
3
|
+
v1Files:
|
|
4
|
+
- source: commands/cust-0-plan.md
|
|
5
|
+
installedPath: .cursor/commands/cust-0-plan.md
|
|
6
|
+
sha256: a72c24163cafff97decd8382fdce1127e32ce416e05839128048b122de22b409
|
|
7
|
+
owner: aifabrix-plan
|
|
8
|
+
disposition: shim
|
|
9
|
+
- source: commands/cust-1-validate.md
|
|
10
|
+
installedPath: .cursor/commands/cust-1-validate.md
|
|
11
|
+
sha256: 8b84a1ba015516141959c311ac34ed9dd6b6dd66f286e8efc47bf34f5b2bb091
|
|
12
|
+
owner: aifabrix-connected-system
|
|
13
|
+
disposition: shim
|
|
14
|
+
- source: commands/cust-2-build.md
|
|
15
|
+
installedPath: .cursor/commands/cust-2-build.md
|
|
16
|
+
sha256: 7da4843cde98428b8f1c2ac991149d5ece8beccbfe7de7e99ef2cb80c98a42f5
|
|
17
|
+
owner: aifabrix-connected-system
|
|
18
|
+
disposition: shim
|
|
19
|
+
- source: commands/cust-3-push.md
|
|
20
|
+
installedPath: .cursor/commands/cust-3-push.md
|
|
21
|
+
sha256: f6ded45baa8517cb3280d58b92a3fd620707e2fe282726cd1087640ae92ebe30
|
|
22
|
+
owner: aifabrix-connected-system
|
|
23
|
+
disposition: shim
|
|
24
|
+
- source: commands/cust-biz-1-validate.md
|
|
25
|
+
installedPath: .cursor/commands/cust-biz-1-validate.md
|
|
26
|
+
sha256: 16ada9069f2a06d54ff63f52422283060c14de9c5bbb7b9abc6616d4451b1bee
|
|
27
|
+
owner: aifabrix-prove
|
|
28
|
+
disposition: shim
|
|
29
|
+
- source: commands/cust-biz-2-build.md
|
|
30
|
+
installedPath: .cursor/commands/cust-biz-2-build.md
|
|
31
|
+
sha256: 8b32f9b71261791d27ff0d3ae7b054334fc94ecaeb6389a1e2f50956a07b05b7
|
|
32
|
+
owner: aifabrix-prove
|
|
33
|
+
disposition: shim
|
|
34
|
+
- source: commands/cust-biz-3-prove.md
|
|
35
|
+
installedPath: .cursor/commands/cust-biz-3-prove.md
|
|
36
|
+
sha256: 7b7d6b69a74a6292cb2a581ebb68caee8d06c4ccf431ad79c044710ed167a58c
|
|
37
|
+
owner: aifabrix-prove
|
|
38
|
+
disposition: shim
|
|
39
|
+
- source: rules/README.md
|
|
40
|
+
installedPath: .cursor/rules/README.md
|
|
41
|
+
sha256: 17e691f791a5cfd686b89bf3298e55fe3fe1a933dc7f99b95ae6d08f294700d7
|
|
42
|
+
owner: package-manifest
|
|
43
|
+
disposition: obsolete
|
|
44
|
+
- source: rules/aifabrix-builder.mdc
|
|
45
|
+
installedPath: .cursor/rules/aifabrix-builder.mdc
|
|
46
|
+
sha256: 6bb6c2174c44c2489287765a8cc20121d46d8b0e7f7ab96571e2c666f710bf21
|
|
47
|
+
owner: integration/AGENTS.md
|
|
48
|
+
disposition: obsolete
|
|
49
|
+
- source: rules/builder-first-integration-generation.mdc
|
|
50
|
+
installedPath: .cursor/rules/builder-first-integration-generation.mdc
|
|
51
|
+
sha256: e52d3d15ee641affa979430b2cec5284508f4cecaf29e2a011280b95325114d1
|
|
52
|
+
owner: integration/AGENTS.md
|
|
53
|
+
disposition: obsolete
|
|
54
|
+
- source: rules/cip-field-mapping-rules.mdc
|
|
55
|
+
installedPath: .cursor/rules/cip-field-mapping-rules.mdc
|
|
56
|
+
sha256: 2f0039e8518a86902497e20e67d8fc288412105917b3c2f150f513a213180545
|
|
57
|
+
owner: contract-checklist.md
|
|
58
|
+
disposition: obsolete
|
|
59
|
+
- source: rules/credential-security-rules.mdc
|
|
60
|
+
installedPath: .cursor/rules/credential-security-rules.mdc
|
|
61
|
+
sha256: bf8089e23a65a05faf751d00178fb2d0b39308518bb7bea3f97bc8228154f076
|
|
62
|
+
owner: AGENTS.md
|
|
63
|
+
disposition: obsolete
|
|
64
|
+
- source: rules/cust-commands.mdc
|
|
65
|
+
installedPath: .cursor/rules/cust-commands.mdc
|
|
66
|
+
sha256: 7e48f104dd990a7e51d79e1a17463c0b40e98bf29f9ac4de85b49b600a03c693
|
|
67
|
+
owner: aifabrix-connected-system
|
|
68
|
+
disposition: obsolete
|
|
69
|
+
- source: rules/datasource-schema-validation.mdc
|
|
70
|
+
installedPath: .cursor/rules/datasource-schema-validation.mdc
|
|
71
|
+
sha256: eec532089e8416cbfce5859bfbf6eed187c8e6144ead2b0cd17aa36d1bdddd2f
|
|
72
|
+
owner: contract-checklist.md
|
|
73
|
+
disposition: obsolete
|
|
74
|
+
- source: rules/exposed-interface.mdc
|
|
75
|
+
installedPath: .cursor/rules/exposed-interface.mdc
|
|
76
|
+
sha256: 7fd19b564f9f31ab2d6c71b9f2d9f5f327a907909a1149861ccfa0e1cab088a9
|
|
77
|
+
owner: contract-checklist.md
|
|
78
|
+
disposition: obsolete
|
|
79
|
+
- source: rules/foreign-keys-challenge.mdc
|
|
80
|
+
installedPath: .cursor/rules/foreign-keys-challenge.mdc
|
|
81
|
+
sha256: 321ee8c2ebbecaef1132e95a27839978cfb705567a93576780c441f4d7865872
|
|
82
|
+
owner: contract-checklist.md
|
|
83
|
+
disposition: obsolete
|
|
84
|
+
- source: rules/integration-change-documentation.mdc
|
|
85
|
+
installedPath: .cursor/rules/integration-change-documentation.mdc
|
|
86
|
+
sha256: 6864f2aa7e57e4751ea75b4025ff084a6585ae4e7b679b58e5f8ed845bfe2ee3
|
|
87
|
+
owner: integration/AGENTS.md
|
|
88
|
+
disposition: obsolete
|
|
89
|
+
- source: rules/integration-test-lifecycle.mdc
|
|
90
|
+
installedPath: .cursor/rules/integration-test-lifecycle.mdc
|
|
91
|
+
sha256: ea884b9945f9effe8f026c8d713cd365aa6f94265cf8fa1ce5a0a3deff462d35
|
|
92
|
+
owner: delivery-gates.md
|
|
93
|
+
disposition: obsolete
|
|
94
|
+
- source: rules/production-system-safety.mdc
|
|
95
|
+
installedPath: .cursor/rules/production-system-safety.mdc
|
|
96
|
+
sha256: 80fc24104326aa5b0d01556a607b15cd7dac4e59248491ca11dc204b8e6db20e
|
|
97
|
+
owner: production-safety.md
|
|
98
|
+
disposition: obsolete
|
|
99
|
+
- source: rules/project.mdc
|
|
100
|
+
installedPath: .cursor/rules/project.mdc
|
|
101
|
+
sha256: 3f5692a2bd626d68e4b5c05939ee60c2d9e46d9f3dc257b2e042d65e46b22e75
|
|
102
|
+
owner: AGENTS.md
|
|
103
|
+
disposition: obsolete
|
|
104
|
+
- source: rules/rbac-abac-integration-rules.mdc
|
|
105
|
+
installedPath: .cursor/rules/rbac-abac-integration-rules.mdc
|
|
106
|
+
sha256: 2953c47dd148df8d2738e229dbe2784871ff3fabce6d64d08943de73a151177a
|
|
107
|
+
owner: contract-checklist.md
|
|
108
|
+
disposition: obsolete
|
|
109
|
+
- source: rules/role-assistant.mdc
|
|
110
|
+
installedPath: .cursor/rules/role-assistant.mdc
|
|
111
|
+
sha256: cc62ae840cbed94b7b9f50ccd52d94ab290f5c262e5e8158abfbf60db21b4f3f
|
|
112
|
+
owner: role-assistant/AGENTS.md
|
|
113
|
+
disposition: obsolete
|
|
114
|
+
- source: rules/viewpoint-fk-dimensions.mdc
|
|
115
|
+
installedPath: .cursor/rules/viewpoint-fk-dimensions.mdc
|
|
116
|
+
sha256: 76df5f2f29c15faafaed8c7c89f7d407eb2281c57c16b47bf149703a688b1736
|
|
117
|
+
owner: contract-checklist.md
|
|
118
|
+
disposition: obsolete
|
|
119
|
+
- source: skills/aifabrix-business-spec-to-plan/SKILL.md
|
|
120
|
+
installedPath: .cursor/skills/aifabrix-business-spec-to-plan/SKILL.md
|
|
121
|
+
sha256: 0b83e81d0852962dc4802a57857dfe02914165be6ab03c36c3f58f5a47e3ae33
|
|
122
|
+
owner: aifabrix-plan
|
|
123
|
+
disposition: obsolete
|
|
124
|
+
- source: skills/aifabrix-business-spec-to-plan/challenge-checklist.md
|
|
125
|
+
installedPath: .cursor/skills/aifabrix-business-spec-to-plan/challenge-checklist.md
|
|
126
|
+
sha256: 6e6d5b7340bddd9dba63626c718906420186ee490094a2db6681ea82541f9357
|
|
127
|
+
owner: aifabrix-plan/references/challenge-checklist.md
|
|
128
|
+
disposition: moved
|
|
129
|
+
- source: skills/aifabrix-business-spec-to-plan/plan-template.md
|
|
130
|
+
installedPath: .cursor/skills/aifabrix-business-spec-to-plan/plan-template.md
|
|
131
|
+
sha256: 06b46d9d45c0eb297b6e6deeb5b8803a7d79a12b8b77491dc3537e950dd6081c
|
|
132
|
+
owner: aifabrix-plan/references/plan-template.md
|
|
133
|
+
disposition: moved
|
|
134
|
+
- source: skills/aifabrix-foreign-keys-challenge/SKILL.md
|
|
135
|
+
installedPath: .cursor/skills/aifabrix-foreign-keys-challenge/SKILL.md
|
|
136
|
+
sha256: 28c9e2b41a3c89d66bb005e803b3c0655203a8e8a5ccbfe9b19eaaace46ae1a0
|
|
137
|
+
owner: contract-checklist.md
|
|
138
|
+
disposition: obsolete
|
|
139
|
+
- source: skills/aifabrix-identity-rbac/SKILL.md
|
|
140
|
+
installedPath: .cursor/skills/aifabrix-identity-rbac/SKILL.md
|
|
141
|
+
sha256: 2bc31b1a96c3a0a2cf6a9220b07c330e08b4dc0ddc6487eb4bd7c3fffdeabe63
|
|
142
|
+
owner: contract-checklist.md
|
|
143
|
+
disposition: obsolete
|
|
144
|
+
- source: skills/aifabrix-integration-e2e-tester/SKILL.md
|
|
145
|
+
installedPath: .cursor/skills/aifabrix-integration-e2e-tester/SKILL.md
|
|
146
|
+
sha256: 2dcad14746a03a88de869d8856584d8daa799312475467fd2a85ceb3ebd4b0e5
|
|
147
|
+
owner: delivery-gates.md
|
|
148
|
+
disposition: obsolete
|
|
149
|
+
- source: skills/aifabrix-integration-lifecycle/SKILL.md
|
|
150
|
+
installedPath: .cursor/skills/aifabrix-integration-lifecycle/SKILL.md
|
|
151
|
+
sha256: 6d67bdc9bee11d8e9a72b62de2133f9dc0fac80964d98f905d6a189e59bd2d76
|
|
152
|
+
owner: aifabrix-connected-system
|
|
153
|
+
disposition: obsolete
|
|
154
|
+
- source: skills/aifabrix-manifest-validator/SKILL.md
|
|
155
|
+
installedPath: .cursor/skills/aifabrix-manifest-validator/SKILL.md
|
|
156
|
+
sha256: 1dc366fb0efeafa87f643fcb6341021c42a6ce4b5a65ce9ccb4b24bb8f720c91
|
|
157
|
+
owner: aifabrix-connected-system
|
|
158
|
+
disposition: obsolete
|
|
159
|
+
- source: skills/aifabrix-package-format/SKILL.md
|
|
160
|
+
installedPath: .cursor/skills/aifabrix-package-format/SKILL.md
|
|
161
|
+
sha256: 51db0c52ff271cbe9c3f02582a1d629aab10d74a6bf0cc7b0837a936e8399fe2
|
|
162
|
+
owner: aifabrix-connected-system
|
|
163
|
+
disposition: obsolete
|
|
164
|
+
- source: skills/aifabrix-poc-business-case/SKILL.md
|
|
165
|
+
installedPath: .cursor/skills/aifabrix-poc-business-case/SKILL.md
|
|
166
|
+
sha256: b6e949292f6b9d2f1a87560594d23161a734d9cadb09b29efdf56f589ba9ac00
|
|
167
|
+
owner: aifabrix-prove
|
|
168
|
+
disposition: obsolete
|
|
169
|
+
- source: skills/aifabrix-poc-business-case/reference-demo-md.md
|
|
170
|
+
installedPath: .cursor/skills/aifabrix-poc-business-case/reference-demo-md.md
|
|
171
|
+
sha256: 3505779196339a63d4e0813de10695a59c887684e0cf1c14512f1c743c846592
|
|
172
|
+
owner: aifabrix-prove/references/demo-template.md
|
|
173
|
+
disposition: moved
|
|
174
|
+
- source: skills/aifabrix-poc-business-case/reference-evidence-lifecycle.md
|
|
175
|
+
installedPath: .cursor/skills/aifabrix-poc-business-case/reference-evidence-lifecycle.md
|
|
176
|
+
sha256: cfdeadb7417ea307028791c0a126b5ac5d6a7f1a456e05871b8d0d389c0c85a8
|
|
177
|
+
owner: aifabrix-prove/references/evidence-lifecycle.md
|
|
178
|
+
disposition: moved
|
|
179
|
+
- source: skills/aifabrix-poc-business-case/reference-learning-md.md
|
|
180
|
+
installedPath: .cursor/skills/aifabrix-poc-business-case/reference-learning-md.md
|
|
181
|
+
sha256: f89817be3dfcf5c821d565b022a8b8ead7d77b594f2561196f3b52c25999ade6
|
|
182
|
+
owner: aifabrix-prove/references/learning-template.md
|
|
183
|
+
disposition: moved
|
|
184
|
+
- source: skills/aifabrix-role-assistant-lifecycle/SKILL.md
|
|
185
|
+
installedPath: .cursor/skills/aifabrix-role-assistant-lifecycle/SKILL.md
|
|
186
|
+
sha256: 27781f1a5c5d4bb7b2e9551a063e66fceaf8f99a38dc2e6efe20048754a1de3f
|
|
187
|
+
owner: aifabrix-role-assistant
|
|
188
|
+
disposition: obsolete
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: aifabrix-connected-system
|
|
3
|
+
description: >
|
|
4
|
+
Plan, validate, build, or publish a customer Connected System with Builder.
|
|
5
|
+
Preserves READY, BUILT, PASS, and PASS_WITH_SKIPS gates. Use for integration
|
|
6
|
+
packages under integration/. Do not use to change Builder product source or
|
|
7
|
+
to author Role Assistant sidecars.
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# aifabrix-connected-system
|
|
11
|
+
|
|
12
|
+
Phases: `plan` | `validate` | `build` | `publish`.
|
|
13
|
+
Resolve phase: explicit argument → plan/package state → safe next → ask once.
|
|
14
|
+
|
|
15
|
+
Stop at the phase gate. Do not run the next phase without `next-yes`
|
|
16
|
+
([interaction.md](../aifabrix-plan/references/interaction.md)).
|
|
17
|
+
|
|
18
|
+
| Phase | Entry | Success |
|
|
19
|
+
| --- | --- | --- |
|
|
20
|
+
| plan | business specification exists | PLAN_READY via `aifabrix-plan` |
|
|
21
|
+
| validate | plan decisions locked | READY |
|
|
22
|
+
| build | READY | BUILT |
|
|
23
|
+
| publish | package exists and local validate passes | PASS or PASS_WITH_SKIPS |
|
|
24
|
+
|
|
25
|
+
Read current CLI help before composing commands. You own orchestration, not CLI implementation.
|
|
26
|
+
Host runtimes (local vs SSH): [hosts.md](../shared/hosts.md).
|
|
27
|
+
|
|
28
|
+
## Always
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
aifabrix auth status
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Refresh first. User runs `aifabrix login` only if still unauthenticated. Re-run on 401, then retry once.
|
|
35
|
+
|
|
36
|
+
System key: argument → active plan → sole `integration/` folder → ask once. Never invent. Reject `ra-` / `ek-` ([scripts/reserved-system-key.js](scripts/reserved-system-key.js)).
|
|
37
|
+
|
|
38
|
+
## References
|
|
39
|
+
|
|
40
|
+
- [delivery-gates.md](references/delivery-gates.md) — BID/wizard/repair, upload vs deploy, tests, identity, protection
|
|
41
|
+
- [contract-checklist.md](references/contract-checklist.md) — exposed, FK, viewpoints, RBAC/ABAC
|
|
42
|
+
- [production-safety.md](references/production-safety.md) — designated subject, credential-deferred E2E
|
|
43
|
+
|
|
44
|
+
## Hard gates
|
|
45
|
+
|
|
46
|
+
- Builder/BID/wizard/repair owns generated package shape
|
|
47
|
+
- Manual EDS delta requires changelog
|
|
48
|
+
- Schema-only `exposed` is not BUILT
|
|
49
|
+
- Unexplained empty FK on business storage is not READY/BUILT
|
|
50
|
+
- Non-catalog role fails
|
|
51
|
+
- Upload without deploy is not published and not PASS
|
|
52
|
+
- No system-level sync of views
|
|
53
|
+
- No publish continuation after an unresolved hard failure
|
|
54
|
+
|
|
55
|
+
## Trigger examples
|
|
56
|
+
|
|
57
|
+
- Validate and build the Person system integration
|
|
58
|
+
- Publish and certify this Connected System
|