@enterpriseai/cli 0.0.0-bootstrap.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/LICENSE +183 -0
- package/NOTICE +4 -0
- package/README.md +714 -0
- package/dist/commands/agent.d.ts +3 -0
- package/dist/commands/agent.d.ts.map +1 -0
- package/dist/commands/agent.js +69 -0
- package/dist/commands/agent.js.map +1 -0
- package/dist/commands/blocks.d.ts +3 -0
- package/dist/commands/blocks.d.ts.map +1 -0
- package/dist/commands/blocks.js +249 -0
- package/dist/commands/blocks.js.map +1 -0
- package/dist/commands/chat.d.ts +6 -0
- package/dist/commands/chat.d.ts.map +1 -0
- package/dist/commands/chat.js +105 -0
- package/dist/commands/chat.js.map +1 -0
- package/dist/commands/deploy.d.ts +36 -0
- package/dist/commands/deploy.d.ts.map +1 -0
- package/dist/commands/deploy.js +712 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/dev.d.ts +15 -0
- package/dist/commands/dev.d.ts.map +1 -0
- package/dist/commands/dev.js +133 -0
- package/dist/commands/dev.js.map +1 -0
- package/dist/commands/docs.d.ts +6 -0
- package/dist/commands/docs.d.ts.map +1 -0
- package/dist/commands/docs.js +118 -0
- package/dist/commands/docs.js.map +1 -0
- package/dist/commands/env.d.ts +10 -0
- package/dist/commands/env.d.ts.map +1 -0
- package/dist/commands/env.js +200 -0
- package/dist/commands/env.js.map +1 -0
- package/dist/commands/errors.d.ts +3 -0
- package/dist/commands/errors.d.ts.map +1 -0
- package/dist/commands/errors.js +72 -0
- package/dist/commands/errors.js.map +1 -0
- package/dist/commands/gofer.d.ts +3 -0
- package/dist/commands/gofer.d.ts.map +1 -0
- package/dist/commands/gofer.js +134 -0
- package/dist/commands/gofer.js.map +1 -0
- package/dist/commands/init.d.ts +14 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +1437 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/login.d.ts +7 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +117 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/provision.d.ts +6 -0
- package/dist/commands/provision.d.ts.map +1 -0
- package/dist/commands/provision.js +855 -0
- package/dist/commands/provision.js.map +1 -0
- package/dist/commands/publicapi.d.ts +6 -0
- package/dist/commands/publicapi.d.ts.map +1 -0
- package/dist/commands/publicapi.js +184 -0
- package/dist/commands/publicapi.js.map +1 -0
- package/dist/commands/resources.d.ts +38 -0
- package/dist/commands/resources.d.ts.map +1 -0
- package/dist/commands/resources.js +1010 -0
- package/dist/commands/resources.js.map +1 -0
- package/dist/commands/runtime.d.ts +3 -0
- package/dist/commands/runtime.d.ts.map +1 -0
- package/dist/commands/runtime.js +78 -0
- package/dist/commands/runtime.js.map +1 -0
- package/dist/commands/template.d.ts +3 -0
- package/dist/commands/template.d.ts.map +1 -0
- package/dist/commands/template.js +365 -0
- package/dist/commands/template.js.map +1 -0
- package/dist/commands/tenant.d.ts +45 -0
- package/dist/commands/tenant.d.ts.map +1 -0
- package/dist/commands/tenant.js +1036 -0
- package/dist/commands/tenant.js.map +1 -0
- package/dist/commands/types.d.ts +130 -0
- package/dist/commands/types.d.ts.map +1 -0
- package/dist/commands/types.js +1636 -0
- package/dist/commands/types.js.map +1 -0
- package/dist/commands/update.d.ts +13 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +163 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/user.d.ts +6 -0
- package/dist/commands/user.d.ts.map +1 -0
- package/dist/commands/user.js +359 -0
- package/dist/commands/user.js.map +1 -0
- package/dist/commands/verify.d.ts +40 -0
- package/dist/commands/verify.d.ts.map +1 -0
- package/dist/commands/verify.js +1442 -0
- package/dist/commands/verify.js.map +1 -0
- package/dist/commands/vertical.d.ts +24 -0
- package/dist/commands/vertical.d.ts.map +1 -0
- package/dist/commands/vertical.js +301 -0
- package/dist/commands/vertical.js.map +1 -0
- package/dist/commands/whoami.d.ts +6 -0
- package/dist/commands/whoami.d.ts.map +1 -0
- package/dist/commands/whoami.js +73 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/commands/workflow.d.ts +6 -0
- package/dist/commands/workflow.d.ts.map +1 -0
- package/dist/commands/workflow.js +400 -0
- package/dist/commands/workflow.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +272 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/agent-guide.d.ts +24 -0
- package/dist/lib/agent-guide.d.ts.map +1 -0
- package/dist/lib/agent-guide.js +155 -0
- package/dist/lib/agent-guide.js.map +1 -0
- package/dist/lib/api.d.ts +338 -0
- package/dist/lib/api.d.ts.map +1 -0
- package/dist/lib/api.js +991 -0
- package/dist/lib/api.js.map +1 -0
- package/dist/lib/auth.d.ts +65 -0
- package/dist/lib/auth.d.ts.map +1 -0
- package/dist/lib/auth.js +592 -0
- package/dist/lib/auth.js.map +1 -0
- package/dist/lib/azure-cli.d.ts +6 -0
- package/dist/lib/azure-cli.d.ts.map +1 -0
- package/dist/lib/azure-cli.js +13 -0
- package/dist/lib/azure-cli.js.map +1 -0
- package/dist/lib/block-catalog-normalize.d.ts +47 -0
- package/dist/lib/block-catalog-normalize.d.ts.map +1 -0
- package/dist/lib/block-catalog-normalize.js +355 -0
- package/dist/lib/block-catalog-normalize.js.map +1 -0
- package/dist/lib/block-catalog-types.d.ts +111 -0
- package/dist/lib/block-catalog-types.d.ts.map +1 -0
- package/dist/lib/block-catalog-types.js +41 -0
- package/dist/lib/block-catalog-types.js.map +1 -0
- package/dist/lib/block-catalog-utils.d.ts +7 -0
- package/dist/lib/block-catalog-utils.d.ts.map +1 -0
- package/dist/lib/block-catalog-utils.js +47 -0
- package/dist/lib/block-catalog-utils.js.map +1 -0
- package/dist/lib/block-catalog-validation.d.ts +5 -0
- package/dist/lib/block-catalog-validation.d.ts.map +1 -0
- package/dist/lib/block-catalog-validation.js +112 -0
- package/dist/lib/block-catalog-validation.js.map +1 -0
- package/dist/lib/block-catalog.d.ts +3 -0
- package/dist/lib/block-catalog.d.ts.map +1 -0
- package/dist/lib/block-catalog.js +284 -0
- package/dist/lib/block-catalog.js.map +1 -0
- package/dist/lib/cloud-env.d.ts +25 -0
- package/dist/lib/cloud-env.d.ts.map +1 -0
- package/dist/lib/cloud-env.js +79 -0
- package/dist/lib/cloud-env.js.map +1 -0
- package/dist/lib/config.d.ts +116 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +195 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/context.d.ts +43 -0
- package/dist/lib/context.d.ts.map +1 -0
- package/dist/lib/context.js +68 -0
- package/dist/lib/context.js.map +1 -0
- package/dist/lib/error-codes.d.ts +56 -0
- package/dist/lib/error-codes.d.ts.map +1 -0
- package/dist/lib/error-codes.js +211 -0
- package/dist/lib/error-codes.js.map +1 -0
- package/dist/lib/error-guidance/catalog.d.ts +648 -0
- package/dist/lib/error-guidance/catalog.d.ts.map +1 -0
- package/dist/lib/error-guidance/catalog.js +940 -0
- package/dist/lib/error-guidance/catalog.js.map +1 -0
- package/dist/lib/error-guidance/match.d.ts +3 -0
- package/dist/lib/error-guidance/match.d.ts.map +1 -0
- package/dist/lib/error-guidance/match.js +46 -0
- package/dist/lib/error-guidance/match.js.map +1 -0
- package/dist/lib/error-guidance/render.d.ts +5 -0
- package/dist/lib/error-guidance/render.d.ts.map +1 -0
- package/dist/lib/error-guidance/render.js +92 -0
- package/dist/lib/error-guidance/render.js.map +1 -0
- package/dist/lib/error-guidance/types.d.ts +76 -0
- package/dist/lib/error-guidance/types.d.ts.map +1 -0
- package/dist/lib/error-guidance/types.js +2 -0
- package/dist/lib/error-guidance/types.js.map +1 -0
- package/dist/lib/error-guidance/validate.d.ts +3 -0
- package/dist/lib/error-guidance/validate.d.ts.map +1 -0
- package/dist/lib/error-guidance/validate.js +59 -0
- package/dist/lib/error-guidance/validate.js.map +1 -0
- package/dist/lib/gofer-installer.d.ts +32 -0
- package/dist/lib/gofer-installer.d.ts.map +1 -0
- package/dist/lib/gofer-installer.js +589 -0
- package/dist/lib/gofer-installer.js.map +1 -0
- package/dist/lib/gofer-refresh.d.ts +46 -0
- package/dist/lib/gofer-refresh.d.ts.map +1 -0
- package/dist/lib/gofer-refresh.js +536 -0
- package/dist/lib/gofer-refresh.js.map +1 -0
- package/dist/lib/next-route-exports.d.ts +6 -0
- package/dist/lib/next-route-exports.d.ts.map +1 -0
- package/dist/lib/next-route-exports.js +127 -0
- package/dist/lib/next-route-exports.js.map +1 -0
- package/dist/lib/npm.d.ts +2 -0
- package/dist/lib/npm.d.ts.map +1 -0
- package/dist/lib/npm.js +4 -0
- package/dist/lib/npm.js.map +1 -0
- package/dist/lib/object-type-defaults.d.ts +4 -0
- package/dist/lib/object-type-defaults.d.ts.map +1 -0
- package/dist/lib/object-type-defaults.js +72 -0
- package/dist/lib/object-type-defaults.js.map +1 -0
- package/dist/lib/output.d.ts +35 -0
- package/dist/lib/output.d.ts.map +1 -0
- package/dist/lib/output.js +166 -0
- package/dist/lib/output.js.map +1 -0
- package/dist/lib/profile.d.ts +52 -0
- package/dist/lib/profile.d.ts.map +1 -0
- package/dist/lib/profile.js +116 -0
- package/dist/lib/profile.js.map +1 -0
- package/dist/lib/project-manifest.d.ts +42 -0
- package/dist/lib/project-manifest.d.ts.map +1 -0
- package/dist/lib/project-manifest.js +191 -0
- package/dist/lib/project-manifest.js.map +1 -0
- package/dist/lib/resourceapi-bundle.d.ts +33 -0
- package/dist/lib/resourceapi-bundle.d.ts.map +1 -0
- package/dist/lib/resourceapi-bundle.js +79 -0
- package/dist/lib/resourceapi-bundle.js.map +1 -0
- package/dist/lib/runtime-contract.d.ts +84 -0
- package/dist/lib/runtime-contract.d.ts.map +1 -0
- package/dist/lib/runtime-contract.js +318 -0
- package/dist/lib/runtime-contract.js.map +1 -0
- package/dist/lib/schema-builder.d.ts +28 -0
- package/dist/lib/schema-builder.d.ts.map +1 -0
- package/dist/lib/schema-builder.js +69 -0
- package/dist/lib/schema-builder.js.map +1 -0
- package/dist/lib/tenant-context.d.ts +127 -0
- package/dist/lib/tenant-context.d.ts.map +1 -0
- package/dist/lib/tenant-context.js +573 -0
- package/dist/lib/tenant-context.js.map +1 -0
- package/dist/lib/update-check.d.ts +52 -0
- package/dist/lib/update-check.d.ts.map +1 -0
- package/dist/lib/update-check.js +271 -0
- package/dist/lib/update-check.js.map +1 -0
- package/dist/lib/update-maintenance.d.ts +15 -0
- package/dist/lib/update-maintenance.d.ts.map +1 -0
- package/dist/lib/update-maintenance.js +187 -0
- package/dist/lib/update-maintenance.js.map +1 -0
- package/dist/lib/utils.d.ts +23 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +48 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/lib/workflow-provisioning.d.ts +54 -0
- package/dist/lib/workflow-provisioning.d.ts.map +1 -0
- package/dist/lib/workflow-provisioning.js +281 -0
- package/dist/lib/workflow-provisioning.js.map +1 -0
- package/package.json +96 -0
- package/resources/gofer/.gofer-version +7 -0
- package/resources/gofer/agents-skills/0_gofer_start/SKILL.md +1287 -0
- package/resources/gofer/agents-skills/0a_problem_validation/SKILL.md +429 -0
- package/resources/gofer/agents-skills/10_gofer_cloud/SKILL.md +635 -0
- package/resources/gofer/agents-skills/1_gofer_research/SKILL.md +1159 -0
- package/resources/gofer/agents-skills/2_gofer_specify/SKILL.md +860 -0
- package/resources/gofer/agents-skills/3_gofer_plan/SKILL.md +886 -0
- package/resources/gofer/agents-skills/4_gofer_tasks/SKILL.md +748 -0
- package/resources/gofer/agents-skills/5_gofer_implement/SKILL.md +924 -0
- package/resources/gofer/agents-skills/6_gofer_validate/SKILL.md +2269 -0
- package/resources/gofer/agents-skills/7_gofer_save/SKILL.md +423 -0
- package/resources/gofer/agents-skills/7a_stakeholder_comms/SKILL.md +508 -0
- package/resources/gofer/agents-skills/8_gofer_branding/SKILL.md +315 -0
- package/resources/gofer/agents-skills/9_gofer_tests/SKILL.md +558 -0
- package/resources/gofer/agents-skills/gofer_bootstrap_workspace/SKILL.md +148 -0
- package/resources/gofer/agents-skills/gofer_check_workspace/SKILL.md +119 -0
- package/resources/gofer/agents-skills/gofer_constitution/SKILL.md +612 -0
- package/resources/gofer/agents-skills/gofer_diagnose/SKILL.md +114 -0
- package/resources/gofer/agents-skills/gofer_eai_first_run/SKILL.md +397 -0
- package/resources/gofer/agents-skills/gofer_hydrate/SKILL.md +561 -0
- package/resources/gofer/agents-skills/gofer_personality/SKILL.md +44 -0
- package/resources/gofer/agents-skills/gofer_plan/SKILL.md +40 -0
- package/resources/gofer/agents-skills/gofer_side/SKILL.md +45 -0
- package/resources/gofer/agents-skills/gofer_spec_summary/SKILL.md +112 -0
- package/resources/gofer/agents-skills/gofer_tdd/SKILL.md +112 -0
- package/resources/gofer/agents-skills/gofer_vocabulary/SKILL.md +112 -0
- package/resources/gofer/agents-skills/gofer_zoom_out/SKILL.md +112 -0
- package/resources/gofer/bash-scripts/check-context-health.sh +365 -0
- package/resources/gofer/bash-scripts/check-persona-pack.sh +81 -0
- package/resources/gofer/bash-scripts/check-prerequisites.sh +168 -0
- package/resources/gofer/bash-scripts/common.sh +192 -0
- package/resources/gofer/bash-scripts/create-new-feature.sh +260 -0
- package/resources/gofer/bash-scripts/install-optional-tools.sh +270 -0
- package/resources/gofer/bash-scripts/log-stage.sh +224 -0
- package/resources/gofer/bash-scripts/mark-task-complete.sh +74 -0
- package/resources/gofer/bash-scripts/pipeline-state.sh +306 -0
- package/resources/gofer/bash-scripts/read-failed-approaches.sh +114 -0
- package/resources/gofer/bash-scripts/read-session-memories.sh +96 -0
- package/resources/gofer/bash-scripts/save-checkpoint.sh +407 -0
- package/resources/gofer/bash-scripts/setup-plan.sh +62 -0
- package/resources/gofer/bash-scripts/sync-implementation-status.sh +47 -0
- package/resources/gofer/bash-scripts/update-agent-context.sh +772 -0
- package/resources/gofer/bash-scripts/validate-artifact.sh +335 -0
- package/resources/gofer/bash-scripts/verify-task.sh +384 -0
- package/resources/gofer/bash-scripts/write-failed-approach.sh +110 -0
- package/resources/gofer/bash-scripts/write-periodic-checkpoint.sh +128 -0
- package/resources/gofer/bash-scripts/write-session-memory.sh +118 -0
- package/resources/gofer/claude-agents/assumption-tracker.md +168 -0
- package/resources/gofer/claude-agents/business-metrics-analyzer.md +169 -0
- package/resources/gofer/claude-agents/business-problem-validator.md +168 -0
- package/resources/gofer/claude-agents/codebase-analyzer.md +124 -0
- package/resources/gofer/claude-agents/codebase-locator.md +95 -0
- package/resources/gofer/claude-agents/codebase-pattern-finder.md +180 -0
- package/resources/gofer/claude-agents/comms-writer.md +158 -0
- package/resources/gofer/claude-agents/engineer-review.md +169 -0
- package/resources/gofer/claude-agents/implement-bug-triangulator.md +94 -0
- package/resources/gofer/claude-agents/implement-code-review-council.md +89 -0
- package/resources/gofer/claude-agents/implement-doc-writer.md +89 -0
- package/resources/gofer/claude-agents/implement-error-hardener.md +84 -0
- package/resources/gofer/claude-agents/implement-performance-explorer.md +95 -0
- package/resources/gofer/claude-agents/implement-test-diversifier.md +82 -0
- package/resources/gofer/claude-agents/implement-variant-generator.md +80 -0
- package/resources/gofer/claude-agents/multi-perspective-judge.md +114 -0
- package/resources/gofer/claude-agents/plan-api-comparator.md +90 -0
- package/resources/gofer/claude-agents/plan-architecture-diverger.md +100 -0
- package/resources/gofer/claude-agents/plan-data-model-stress-tester.md +95 -0
- package/resources/gofer/claude-agents/plan-migration-path-finder.md +95 -0
- package/resources/gofer/claude-agents/plan-refactor-rewrite-advisor.md +97 -0
- package/resources/gofer/claude-agents/research-dependency-evaluator.md +106 -0
- package/resources/gofer/claude-agents/research-horizon-scanner.md +100 -0
- package/resources/gofer/claude-agents/research-market-scanner.md +137 -0
- package/resources/gofer/claude-agents/research-perspective-multiplier.md +102 -0
- package/resources/gofer/claude-agents/scope-creep-detector.md +152 -0
- package/resources/gofer/claude-agents/specify-ambiguity-detector.md +95 -0
- package/resources/gofer/claude-agents/specify-journey-stress-tester.md +92 -0
- package/resources/gofer/claude-agents/tasks-cross-cutting-scanner.md +91 -0
- package/resources/gofer/claude-agents/tasks-rollback-planner.md +89 -0
- package/resources/gofer/claude-agents/validate-security-red-team.md +102 -0
- package/resources/gofer/claude-agents/validation-correctness.md +103 -0
- package/resources/gofer/claude-agents/validation-integration.md +129 -0
- package/resources/gofer/claude-agents/validation-performance.md +120 -0
- package/resources/gofer/claude-agents/validation-security.md +115 -0
- package/resources/gofer/claude-agents/validation-standards.md +151 -0
- package/resources/gofer/claude-agents/validation-test-quality.md +146 -0
- package/resources/gofer/claude-agents/visual-bounded-context-writer.md +40 -0
- package/resources/gofer/claude-agents/visual-c4-writer.md +45 -0
- package/resources/gofer/claude-agents/visual-erd-writer.md +34 -0
- package/resources/gofer/claude-agents/visual-heatmap-writer.md +63 -0
- package/resources/gofer/claude-agents/visual-risk-writer.md +64 -0
- package/resources/gofer/claude-commands/0_gofer_start.md +1282 -0
- package/resources/gofer/claude-commands/0a_problem_validation.md +424 -0
- package/resources/gofer/claude-commands/10_gofer_cloud.md +630 -0
- package/resources/gofer/claude-commands/1_gofer_research.md +1154 -0
- package/resources/gofer/claude-commands/2_gofer_specify.md +855 -0
- package/resources/gofer/claude-commands/3_gofer_plan.md +881 -0
- package/resources/gofer/claude-commands/4_gofer_tasks.md +743 -0
- package/resources/gofer/claude-commands/5_gofer_implement.md +919 -0
- package/resources/gofer/claude-commands/6_gofer_validate.md +2264 -0
- package/resources/gofer/claude-commands/7_gofer_save.md +418 -0
- package/resources/gofer/claude-commands/7a_stakeholder_comms.md +503 -0
- package/resources/gofer/claude-commands/8_gofer_branding.md +310 -0
- package/resources/gofer/claude-commands/9_gofer_tests.md +553 -0
- package/resources/gofer/claude-commands/gofer_bootstrap_workspace.md +143 -0
- package/resources/gofer/claude-commands/gofer_check_workspace.md +114 -0
- package/resources/gofer/claude-commands/gofer_constitution.md +607 -0
- package/resources/gofer/claude-commands/gofer_diagnose.md +109 -0
- package/resources/gofer/claude-commands/gofer_eai_first_run.md +392 -0
- package/resources/gofer/claude-commands/gofer_hydrate.md +556 -0
- package/resources/gofer/claude-commands/gofer_personality.md +39 -0
- package/resources/gofer/claude-commands/gofer_plan.md +35 -0
- package/resources/gofer/claude-commands/gofer_side.md +40 -0
- package/resources/gofer/claude-commands/gofer_spec_summary.md +107 -0
- package/resources/gofer/claude-commands/gofer_tdd.md +107 -0
- package/resources/gofer/claude-commands/gofer_vocabulary.md +107 -0
- package/resources/gofer/claude-commands/gofer_zoom_out.md +107 -0
- package/resources/gofer/claude-skills/eai-gofer/SKILL.md +56 -0
- package/resources/gofer/commands/.gitkeep +0 -0
- package/resources/gofer/commands/0_gofer_start.md +1299 -0
- package/resources/gofer/commands/0a_problem_validation.md +405 -0
- package/resources/gofer/commands/10_gofer_cloud.md +611 -0
- package/resources/gofer/commands/1_gofer_research.md +1135 -0
- package/resources/gofer/commands/2_gofer_specify.md +836 -0
- package/resources/gofer/commands/3_gofer_plan.md +862 -0
- package/resources/gofer/commands/4_gofer_tasks.md +724 -0
- package/resources/gofer/commands/5_gofer_implement.md +900 -0
- package/resources/gofer/commands/6_gofer_validate.md +2245 -0
- package/resources/gofer/commands/7_gofer_save.md +399 -0
- package/resources/gofer/commands/7a_stakeholder_comms.md +484 -0
- package/resources/gofer/commands/8_gofer_branding.md +291 -0
- package/resources/gofer/commands/9_gofer_tests.md +534 -0
- package/resources/gofer/commands/gofer_bootstrap_workspace.md +159 -0
- package/resources/gofer/commands/gofer_check_workspace.md +130 -0
- package/resources/gofer/commands/gofer_constitution.md +588 -0
- package/resources/gofer/commands/gofer_diagnose.md +89 -0
- package/resources/gofer/commands/gofer_eai_first_run.md +392 -0
- package/resources/gofer/commands/gofer_hydrate.md +537 -0
- package/resources/gofer/commands/gofer_personality.md +61 -0
- package/resources/gofer/commands/gofer_plan.md +51 -0
- package/resources/gofer/commands/gofer_side.md +56 -0
- package/resources/gofer/commands/gofer_spec_summary.md +87 -0
- package/resources/gofer/commands/gofer_tdd.md +87 -0
- package/resources/gofer/commands/gofer_vocabulary.md +87 -0
- package/resources/gofer/commands/gofer_zoom_out.md +87 -0
- package/resources/gofer/copilot-instructions/gofer-cost.instructions.md +13 -0
- package/resources/gofer/copilot-instructions/language-server.instructions.md +49 -0
- package/resources/gofer/copilot-instructions/typescript.instructions.md +47 -0
- package/resources/gofer/copilot-instructions/vscode-extension.instructions.md +46 -0
- package/resources/gofer/copilot-prompts/0_gofer_start.prompt.md +1308 -0
- package/resources/gofer/copilot-prompts/0a_problem_validation.prompt.md +429 -0
- package/resources/gofer/copilot-prompts/10_gofer_cloud.prompt.md +644 -0
- package/resources/gofer/copilot-prompts/1_gofer_research.prompt.md +1177 -0
- package/resources/gofer/copilot-prompts/2_gofer_specify.prompt.md +878 -0
- package/resources/gofer/copilot-prompts/3_gofer_plan.prompt.md +904 -0
- package/resources/gofer/copilot-prompts/4_gofer_tasks.prompt.md +766 -0
- package/resources/gofer/copilot-prompts/5_gofer_implement.prompt.md +942 -0
- package/resources/gofer/copilot-prompts/6_gofer_validate.prompt.md +2277 -0
- package/resources/gofer/copilot-prompts/7_gofer_save.prompt.md +433 -0
- package/resources/gofer/copilot-prompts/7a_stakeholder_comms.prompt.md +516 -0
- package/resources/gofer/copilot-prompts/8_gofer_branding.prompt.md +323 -0
- package/resources/gofer/copilot-prompts/9_gofer_tests.prompt.md +566 -0
- package/resources/gofer/copilot-prompts/gofer_bootstrap_workspace.prompt.md +161 -0
- package/resources/gofer/copilot-prompts/gofer_check_workspace.prompt.md +132 -0
- package/resources/gofer/copilot-prompts/gofer_constitution.prompt.md +621 -0
- package/resources/gofer/copilot-prompts/gofer_diagnose.prompt.md +127 -0
- package/resources/gofer/copilot-prompts/gofer_eai_first_run.prompt.md +410 -0
- package/resources/gofer/copilot-prompts/gofer_hydrate.prompt.md +571 -0
- package/resources/gofer/copilot-prompts/gofer_personality.prompt.md +57 -0
- package/resources/gofer/copilot-prompts/gofer_plan.prompt.md +53 -0
- package/resources/gofer/copilot-prompts/gofer_side.prompt.md +58 -0
- package/resources/gofer/copilot-prompts/gofer_spec_summary.prompt.md +125 -0
- package/resources/gofer/copilot-prompts/gofer_tdd.prompt.md +125 -0
- package/resources/gofer/copilot-prompts/gofer_vocabulary.prompt.md +125 -0
- package/resources/gofer/copilot-prompts/gofer_zoom_out.prompt.md +125 -0
- package/resources/gofer/gemini/agents/assumption-tracker.md +171 -0
- package/resources/gofer/gemini/agents/business-metrics-analyzer.md +172 -0
- package/resources/gofer/gemini/agents/business-problem-validator.md +171 -0
- package/resources/gofer/gemini/agents/codebase-analyzer.md +127 -0
- package/resources/gofer/gemini/agents/codebase-locator.md +98 -0
- package/resources/gofer/gemini/agents/codebase-pattern-finder.md +183 -0
- package/resources/gofer/gemini/agents/comms-writer.md +161 -0
- package/resources/gofer/gemini/agents/engineer-review.md +172 -0
- package/resources/gofer/gemini/agents/implement-bug-triangulator.md +97 -0
- package/resources/gofer/gemini/agents/implement-code-review-council.md +92 -0
- package/resources/gofer/gemini/agents/implement-doc-writer.md +92 -0
- package/resources/gofer/gemini/agents/implement-error-hardener.md +87 -0
- package/resources/gofer/gemini/agents/implement-performance-explorer.md +98 -0
- package/resources/gofer/gemini/agents/implement-test-diversifier.md +85 -0
- package/resources/gofer/gemini/agents/implement-variant-generator.md +83 -0
- package/resources/gofer/gemini/agents/multi-perspective-judge.md +117 -0
- package/resources/gofer/gemini/agents/plan-api-comparator.md +93 -0
- package/resources/gofer/gemini/agents/plan-architecture-diverger.md +103 -0
- package/resources/gofer/gemini/agents/plan-data-model-stress-tester.md +98 -0
- package/resources/gofer/gemini/agents/plan-migration-path-finder.md +98 -0
- package/resources/gofer/gemini/agents/plan-refactor-rewrite-advisor.md +100 -0
- package/resources/gofer/gemini/agents/research-dependency-evaluator.md +109 -0
- package/resources/gofer/gemini/agents/research-horizon-scanner.md +103 -0
- package/resources/gofer/gemini/agents/research-market-scanner.md +140 -0
- package/resources/gofer/gemini/agents/research-perspective-multiplier.md +105 -0
- package/resources/gofer/gemini/agents/scope-creep-detector.md +155 -0
- package/resources/gofer/gemini/agents/specify-ambiguity-detector.md +98 -0
- package/resources/gofer/gemini/agents/specify-journey-stress-tester.md +95 -0
- package/resources/gofer/gemini/agents/tasks-cross-cutting-scanner.md +94 -0
- package/resources/gofer/gemini/agents/tasks-rollback-planner.md +92 -0
- package/resources/gofer/gemini/agents/validate-security-red-team.md +105 -0
- package/resources/gofer/gemini/agents/validation-correctness.md +106 -0
- package/resources/gofer/gemini/agents/validation-integration.md +132 -0
- package/resources/gofer/gemini/agents/validation-performance.md +123 -0
- package/resources/gofer/gemini/agents/validation-security.md +118 -0
- package/resources/gofer/gemini/agents/validation-standards.md +154 -0
- package/resources/gofer/gemini/agents/validation-test-quality.md +149 -0
- package/resources/gofer/gemini/agents/visual-bounded-context-writer.md +40 -0
- package/resources/gofer/gemini/agents/visual-c4-writer.md +44 -0
- package/resources/gofer/gemini/agents/visual-erd-writer.md +36 -0
- package/resources/gofer/gemini/agents/visual-heatmap-writer.md +63 -0
- package/resources/gofer/gemini/agents/visual-risk-writer.md +64 -0
- package/resources/gofer/gemini/commands/gofer/.gitkeep +0 -0
- package/resources/gofer/gemini/commands/gofer/0_gofer_start.md +1282 -0
- package/resources/gofer/gemini/commands/gofer/0_gofer_start.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/0a_problem_validation.md +424 -0
- package/resources/gofer/gemini/commands/gofer/0a_problem_validation.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/10_gofer_cloud.md +630 -0
- package/resources/gofer/gemini/commands/gofer/10_gofer_cloud.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/1_gofer_research.md +1154 -0
- package/resources/gofer/gemini/commands/gofer/1_gofer_research.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/2_gofer_specify.md +855 -0
- package/resources/gofer/gemini/commands/gofer/2_gofer_specify.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/3_gofer_plan.md +881 -0
- package/resources/gofer/gemini/commands/gofer/3_gofer_plan.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/4_gofer_tasks.md +743 -0
- package/resources/gofer/gemini/commands/gofer/4_gofer_tasks.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/5_gofer_implement.md +919 -0
- package/resources/gofer/gemini/commands/gofer/5_gofer_implement.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/6_gofer_validate.md +2264 -0
- package/resources/gofer/gemini/commands/gofer/6_gofer_validate.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/7_gofer_save.md +418 -0
- package/resources/gofer/gemini/commands/gofer/7_gofer_save.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/7a_stakeholder_comms.md +503 -0
- package/resources/gofer/gemini/commands/gofer/7a_stakeholder_comms.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/8_gofer_branding.md +310 -0
- package/resources/gofer/gemini/commands/gofer/8_gofer_branding.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/9_gofer_tests.md +553 -0
- package/resources/gofer/gemini/commands/gofer/9_gofer_tests.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_bootstrap_workspace.md +143 -0
- package/resources/gofer/gemini/commands/gofer/gofer_bootstrap_workspace.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_check_workspace.md +114 -0
- package/resources/gofer/gemini/commands/gofer/gofer_check_workspace.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_constitution.md +607 -0
- package/resources/gofer/gemini/commands/gofer/gofer_constitution.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_diagnose.md +109 -0
- package/resources/gofer/gemini/commands/gofer/gofer_diagnose.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_eai_first_run.md +392 -0
- package/resources/gofer/gemini/commands/gofer/gofer_eai_first_run.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_hydrate.md +556 -0
- package/resources/gofer/gemini/commands/gofer/gofer_hydrate.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_personality.md +39 -0
- package/resources/gofer/gemini/commands/gofer/gofer_personality.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_plan.md +35 -0
- package/resources/gofer/gemini/commands/gofer/gofer_plan.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_side.md +40 -0
- package/resources/gofer/gemini/commands/gofer/gofer_side.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_spec_summary.md +107 -0
- package/resources/gofer/gemini/commands/gofer/gofer_spec_summary.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_tdd.md +107 -0
- package/resources/gofer/gemini/commands/gofer/gofer_tdd.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_vocabulary.md +107 -0
- package/resources/gofer/gemini/commands/gofer/gofer_vocabulary.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/gofer_zoom_out.md +107 -0
- package/resources/gofer/gemini/commands/gofer/gofer_zoom_out.toml +2 -0
- package/resources/gofer/gemini/commands/gofer/manifest.json +32 -0
- package/resources/gofer/gemini/extension.json +16 -0
- package/resources/gofer/github-agents/gofer-business.agent.md +20 -0
- package/resources/gofer/github-agents/gofer-implement.agent.md +15 -0
- package/resources/gofer/github-agents/gofer-plan.agent.md +15 -0
- package/resources/gofer/github-agents/gofer-research.agent.md +15 -0
- package/resources/gofer/github-agents/gofer-validate.agent.md +10 -0
- package/resources/gofer/github-skills/eai-gofer/SKILL.md +56 -0
- package/resources/gofer/hook-scripts/agent-stop.mjs +655 -0
- package/resources/gofer/hook-scripts/log-stage-launch-time.mjs +77 -0
- package/resources/gofer/hook-scripts/post-tool-use.mjs +333 -0
- package/resources/gofer/hook-scripts/queued-input.mjs +188 -0
- package/resources/gofer/hook-scripts/session-lifecycle.mjs +93 -0
- package/resources/gofer/hook-scripts/user-prompt-submit.mjs +228 -0
- package/resources/gofer/instruction-templates/base/agents-base.md +37 -0
- package/resources/gofer/instruction-templates/base/claude-base.md +7 -0
- package/resources/gofer/instruction-templates/base/copilot-base.md +26 -0
- package/resources/gofer/instruction-templates/gofer/gofer-claude.md +5 -0
- package/resources/gofer/instruction-templates/gofer/gofer-copilot.md +9 -0
- package/resources/gofer/instruction-templates/languages/generic.md +7 -0
- package/resources/gofer/instruction-templates/languages/go.md +8 -0
- package/resources/gofer/instruction-templates/languages/java.md +8 -0
- package/resources/gofer/instruction-templates/languages/python.md +9 -0
- package/resources/gofer/instruction-templates/languages/rust.md +9 -0
- package/resources/gofer/instruction-templates/languages/typescript.md +19 -0
- package/resources/gofer/instruction-templates/workflow/principles.md +52 -0
- package/resources/gofer/memory/constitution.md +391 -0
- package/resources/gofer/memory/context-profiles.yaml +74 -0
- package/resources/gofer/memory/decisions/000-use-adr-for-decisions.md +67 -0
- package/resources/gofer/memory/decisions/001-di-framework.md +190 -0
- package/resources/gofer/memory/decisions/002-module-extraction.md +305 -0
- package/resources/gofer/memory/decisions/003-error-handling.md +368 -0
- package/resources/gofer/memory/decisions/004-cache-eviction.md +436 -0
- package/resources/gofer/memory/decisions/005-constants-management.md +520 -0
- package/resources/gofer/memory/decisions/README.md +129 -0
- package/resources/gofer/memory/diagrams/di-container.mmd +321 -0
- package/resources/gofer/memory/diagrams/extension-activation.mmd +184 -0
- package/resources/gofer/memory/diagrams/module-dependencies.mmd +264 -0
- package/resources/gofer/memory/gofer-model-policy.yaml +97 -0
- package/resources/gofer/memory/lessons.md +46 -0
- package/resources/gofer/node-scripts/canonical-descriptions.mjs +86 -0
- package/resources/gofer/node-scripts/check-version-alignment.mjs +131 -0
- package/resources/gofer/node-scripts/codex-doctor.mjs +425 -0
- package/resources/gofer/node-scripts/generate-commands.mjs +1366 -0
- package/resources/gofer/node-scripts/generate-issues.js +563 -0
- package/resources/gofer/node-scripts/gofer-closed-loop-audit.mjs +893 -0
- package/resources/gofer/node-scripts/gofer-loop-audit.mjs +541 -0
- package/resources/gofer/node-scripts/gofer-performance-report.mjs +306 -0
- package/resources/gofer/node-scripts/gofer-workspace-bootstrap.mjs +56 -0
- package/resources/gofer/node-scripts/gofer-workspace-check.mjs +56 -0
- package/resources/gofer/node-scripts/lib/ai-leverage-tagger.mjs +103 -0
- package/resources/gofer/node-scripts/lib/assemble-stakeholder-pack.mjs +114 -0
- package/resources/gofer/node-scripts/lib/marp-deck.mjs +87 -0
- package/resources/gofer/node-scripts/lib/mermaid-tabular-fallback.mjs +264 -0
- package/resources/gofer/node-scripts/lib/render-visual.mjs +54 -0
- package/resources/gofer/node-scripts/lib/validate-aliases.mjs +85 -0
- package/resources/gofer/node-scripts/lib/visual-counts.mjs +44 -0
- package/resources/gofer/node-scripts/lib/visual-pass-pipeline.mjs +134 -0
- package/resources/gofer/node-scripts/mermaid-export.mjs +72 -0
- package/resources/gofer/node-scripts/package-agent-plugin.mjs +940 -0
- package/resources/gofer/node-scripts/parse-stage-command.mjs +211 -0
- package/resources/gofer/node-scripts/schemas/.gitkeep +0 -0
- package/resources/gofer/node-scripts/schemas/stage-command.schema.json +72 -0
- package/resources/gofer/node-scripts/sync-extension-resources.mjs +110 -0
- package/resources/gofer/node-scripts/workspace-bootstrap-lib.mjs +1166 -0
- package/resources/gofer/powershell-scripts/install-optional-tools.ps1 +214 -0
- package/resources/gofer/references/platform/README.md +17 -0
- package/resources/gofer/references/platform/deployment-repo.md +9 -0
- package/resources/gofer/references/platform/eai-app-template.md +45 -0
- package/resources/gofer/references/platform/eai-config-driven-ui.md +156 -0
- package/resources/gofer/references/platform/eai-error-catalog.yaml +197 -0
- package/resources/gofer/references/platform/eai-repo-contract.md +134 -0
- package/resources/gofer/references/platform/eai-service-patterns.md +56 -0
- package/resources/gofer/references/platform/eai.md +85 -0
- package/resources/gofer/references/platform/vertical-template.md +49 -0
- package/resources/gofer/specify-commands/.gitkeep +0 -0
- package/resources/gofer/specify-commands/0_gofer_start.md +1299 -0
- package/resources/gofer/specify-commands/0a_problem_validation.md +405 -0
- package/resources/gofer/specify-commands/10_gofer_cloud.md +611 -0
- package/resources/gofer/specify-commands/1_gofer_research.md +1135 -0
- package/resources/gofer/specify-commands/2_gofer_specify.md +836 -0
- package/resources/gofer/specify-commands/3_gofer_plan.md +862 -0
- package/resources/gofer/specify-commands/4_gofer_tasks.md +724 -0
- package/resources/gofer/specify-commands/5_gofer_implement.md +900 -0
- package/resources/gofer/specify-commands/6_gofer_validate.md +2245 -0
- package/resources/gofer/specify-commands/7_gofer_save.md +399 -0
- package/resources/gofer/specify-commands/7a_stakeholder_comms.md +484 -0
- package/resources/gofer/specify-commands/8_gofer_branding.md +291 -0
- package/resources/gofer/specify-commands/9_gofer_tests.md +534 -0
- package/resources/gofer/specify-commands/gofer_bootstrap_workspace.md +159 -0
- package/resources/gofer/specify-commands/gofer_check_workspace.md +130 -0
- package/resources/gofer/specify-commands/gofer_constitution.md +588 -0
- package/resources/gofer/specify-commands/gofer_diagnose.md +89 -0
- package/resources/gofer/specify-commands/gofer_eai_first_run.md +392 -0
- package/resources/gofer/specify-commands/gofer_hydrate.md +537 -0
- package/resources/gofer/specify-commands/gofer_personality.md +61 -0
- package/resources/gofer/specify-commands/gofer_plan.md +51 -0
- package/resources/gofer/specify-commands/gofer_side.md +56 -0
- package/resources/gofer/specify-commands/gofer_spec_summary.md +87 -0
- package/resources/gofer/specify-commands/gofer_tdd.md +87 -0
- package/resources/gofer/specify-commands/gofer_vocabulary.md +87 -0
- package/resources/gofer/specify-commands/gofer_zoom_out.md +87 -0
- package/resources/gofer/system-skills/0_gofer_start/SKILL.md +1287 -0
- package/resources/gofer/system-skills/0a_problem_validation/SKILL.md +429 -0
- package/resources/gofer/system-skills/10_gofer_cloud/SKILL.md +635 -0
- package/resources/gofer/system-skills/1_gofer_research/SKILL.md +1159 -0
- package/resources/gofer/system-skills/2_gofer_specify/SKILL.md +860 -0
- package/resources/gofer/system-skills/3_gofer_plan/SKILL.md +886 -0
- package/resources/gofer/system-skills/4_gofer_tasks/SKILL.md +748 -0
- package/resources/gofer/system-skills/5_gofer_implement/SKILL.md +924 -0
- package/resources/gofer/system-skills/6_gofer_validate/SKILL.md +2269 -0
- package/resources/gofer/system-skills/7_gofer_save/SKILL.md +423 -0
- package/resources/gofer/system-skills/7a_stakeholder_comms/SKILL.md +508 -0
- package/resources/gofer/system-skills/8_gofer_branding/SKILL.md +315 -0
- package/resources/gofer/system-skills/9_gofer_tests/SKILL.md +558 -0
- package/resources/gofer/system-skills/gofer_bootstrap_workspace/SKILL.md +148 -0
- package/resources/gofer/system-skills/gofer_check_workspace/SKILL.md +119 -0
- package/resources/gofer/system-skills/gofer_constitution/SKILL.md +612 -0
- package/resources/gofer/system-skills/gofer_diagnose/SKILL.md +114 -0
- package/resources/gofer/system-skills/gofer_eai_first_run/SKILL.md +397 -0
- package/resources/gofer/system-skills/gofer_hydrate/SKILL.md +561 -0
- package/resources/gofer/system-skills/gofer_personality/SKILL.md +44 -0
- package/resources/gofer/system-skills/gofer_plan/SKILL.md +40 -0
- package/resources/gofer/system-skills/gofer_side/SKILL.md +45 -0
- package/resources/gofer/system-skills/gofer_spec_summary/SKILL.md +112 -0
- package/resources/gofer/system-skills/gofer_tdd/SKILL.md +112 -0
- package/resources/gofer/system-skills/gofer_vocabulary/SKILL.md +112 -0
- package/resources/gofer/system-skills/gofer_zoom_out/SKILL.md +112 -0
- package/resources/gofer/templates/agent-file-template.md +28 -0
- package/resources/gofer/templates/assumptions-template.md +94 -0
- package/resources/gofer/templates/audit-history-template.md +35 -0
- package/resources/gofer/templates/brand/brand-profile-template.json +45 -0
- package/resources/gofer/templates/brand/document-style-template.md +50 -0
- package/resources/gofer/templates/brand/marp-theme-template.css +58 -0
- package/resources/gofer/templates/brownfield-analysis.md +44 -0
- package/resources/gofer/templates/business-metrics-template.md +120 -0
- package/resources/gofer/templates/business-owner-summary-template.md +83 -0
- package/resources/gofer/templates/checklist-template.md +40 -0
- package/resources/gofer/templates/ciso-security-summary-template.md +70 -0
- package/resources/gofer/templates/context-bundle-template.md +76 -0
- package/resources/gofer/templates/contract-pack-template.md +109 -0
- package/resources/gofer/templates/cto-architecture-summary-template.md +83 -0
- package/resources/gofer/templates/discovery-template.md +92 -0
- package/resources/gofer/templates/eai-preflight-template.md +144 -0
- package/resources/gofer/templates/goal-ledger-template.json +69 -0
- package/resources/gofer/templates/gofer-model-policy.yaml +97 -0
- package/resources/gofer/templates/issues-template.md +106 -0
- package/resources/gofer/templates/journey/base-journey.md +95 -0
- package/resources/gofer/templates/journey/industry-variants.yaml +277 -0
- package/resources/gofer/templates/loop-contract-template.json +68 -0
- package/resources/gofer/templates/plan-template.md +215 -0
- package/resources/gofer/templates/problem-brief-template.md +85 -0
- package/resources/gofer/templates/proposal-review-template.md +79 -0
- package/resources/gofer/templates/research-template.md +222 -0
- package/resources/gofer/templates/reuse-scan-template.md +43 -0
- package/resources/gofer/templates/sequence-diagrams/option-spectrum.yaml +178 -0
- package/resources/gofer/templates/service-fit-matrix-template.md +29 -0
- package/resources/gofer/templates/session-handoff-template.md +172 -0
- package/resources/gofer/templates/spec-summary-template.md +118 -0
- package/resources/gofer/templates/spec-template.md +196 -0
- package/resources/gofer/templates/stakeholder-comms-template.md +330 -0
- package/resources/gofer/templates/stakeholder-review-index-template.md +54 -0
- package/resources/gofer/templates/tasks-template.md +323 -0
- package/resources/gofer/templates/ui-approval-template.md +32 -0
- package/resources/gofer/templates/ui-preview-brief-template.md +65 -0
- package/resources/gofer/templates/ui-review-log-template.md +11 -0
- package/resources/gofer/templates/visuals/.gitkeep +0 -0
- package/resources/gofer/templates/visuals/bounded-context-map.md +19 -0
- package/resources/gofer/templates/visuals/bounded-context-template.md +47 -0
- package/resources/gofer/templates/visuals/c4-container-template.md +38 -0
- package/resources/gofer/templates/visuals/c4-container.md +20 -0
- package/resources/gofer/templates/visuals/c4-context-template.md +46 -0
- package/resources/gofer/templates/visuals/capability-heatmap-template.md +54 -0
- package/resources/gofer/templates/visuals/data-model-erd-template.md +41 -0
- package/resources/gofer/templates/visuals/erd.md +19 -0
- package/resources/gofer/templates/visuals/impact-canvas.md +40 -0
- package/resources/gofer/templates/visuals/risk-heatmap-template.md +51 -0
- package/resources/gofer/templates/visuals/roi-projection.md +17 -0
- package/resources/gofer/templates/visuals/value-stream-asis.md +16 -0
- package/resources/gofer/templates/visuals/value-stream-tobe.md +18 -0
- package/resources/gofer/templates/working-backwards-prfaq-template.md +165 -0
- package/resources/linked-sources.json +25 -0
package/README.md
ADDED
|
@@ -0,0 +1,714 @@
|
|
|
1
|
+
# eai — Enterprise AI Platform CLI
|
|
2
|
+
|
|
3
|
+
[](https://github.com/eai-tools/eai/actions/workflows/ci.yml)
|
|
4
|
+
[](https://securityscorecards.dev/viewer/?uri=github.com/eai-tools/eai)
|
|
5
|
+
[](https://github.com/eai-tools/eai/actions/workflows/docs.yml)
|
|
6
|
+
[](LICENSE)
|
|
7
|
+
|
|
8
|
+
Scaffold, seed, deploy, and manage applications on the EAI platform.
|
|
9
|
+
|
|
10
|
+
Every command wraps platform API calls — developers work with **resources, types, tenants, chat, and authorized PublicAPI V4 interfaces** using simple, intuitive commands.
|
|
11
|
+
|
|
12
|
+
## Public Repository
|
|
13
|
+
|
|
14
|
+
This repository is the public source for the EnterpriseAI CLI. The README is the
|
|
15
|
+
fast path for developers who want to install the tool, understand what it does,
|
|
16
|
+
and find the maintained documentation.
|
|
17
|
+
|
|
18
|
+
| Surface | URL | Purpose |
|
|
19
|
+
|---------|-----|---------|
|
|
20
|
+
| Source | https://github.com/eai-tools/eai | CLI source, issues, pull requests, and release tags |
|
|
21
|
+
| Documentation | https://eai-tools.github.io/eai/ | Docusaurus documentation, scenarios, and command reference |
|
|
22
|
+
| npmjs packages | https://www.npmjs.com/package/eai-cli | Primary install/update channel for the `eai` command |
|
|
23
|
+
| Static npm registry fallback | https://eai-tools.github.io/eai/registry/ | GitHub Pages fallback for `@enterpriseai/cli` when npmjs is unavailable |
|
|
24
|
+
| Releases | https://github.com/eai-tools/eai/releases | Versioned GitHub releases and packaged tarballs |
|
|
25
|
+
| Security | [SECURITY.md](SECURITY.md) | Private vulnerability reporting and supported versions |
|
|
26
|
+
| Contributing | [CONTRIBUTING.md](CONTRIBUTING.md) | Public-safe contribution and release workflow |
|
|
27
|
+
| License | [Apache-2.0](LICENSE) | Open source license and patent grant |
|
|
28
|
+
|
|
29
|
+
Public-readiness rule for maintainers: everything committed here should be safe
|
|
30
|
+
for a public audience. Do not commit secrets, customer data, private tenant
|
|
31
|
+
details, local `.env` files, unpublished internal architecture notes, or
|
|
32
|
+
temporary build output.
|
|
33
|
+
|
|
34
|
+
Generated Gofer specs, memory files, logs, checkpoints, and local runtime state
|
|
35
|
+
are intentionally ignored. The committed `.specify` directory contains only the
|
|
36
|
+
reusable scripts and templates needed by `eai init` and `eai gofer refresh`.
|
|
37
|
+
|
|
38
|
+
## Install
|
|
39
|
+
|
|
40
|
+
Recommended install:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
npm install -g eai-cli
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Canonical package:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
npm install -g @enterpriseai/cli
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Static registry fallback:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
npm install -g @enterpriseai/cli --@enterpriseai:registry=https://eai-tools.github.io/eai/registry/
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Persistent static fallback setup:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
npm config set @enterpriseai:registry https://eai-tools.github.io/eai/registry/ --location=user
|
|
62
|
+
npm install -g @enterpriseai/cli
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
If you are validating the generated registry from a local checkout of this repo, install the tarball instead of the packument file:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
npm install -g ./docs-site/static/registry/-/@enterpriseai/cli-latest.tgz
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
`docs-site/static/registry/@enterpriseai/cli` is the registry metadata file. It is not an installable package directory.
|
|
72
|
+
|
|
73
|
+
## Quick Start
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
# 1. Create a new app
|
|
77
|
+
eai init my-app
|
|
78
|
+
cd my-app
|
|
79
|
+
npm install
|
|
80
|
+
|
|
81
|
+
# 2. Authenticate
|
|
82
|
+
eai login
|
|
83
|
+
|
|
84
|
+
# 3. Choose the tenant to work with
|
|
85
|
+
eai tenant select
|
|
86
|
+
|
|
87
|
+
# 4. Create child tenants only when you need them
|
|
88
|
+
# `eai tenant create --parent <id>` now creates the tenant record,
|
|
89
|
+
# attempts first-admin bootstrap for the current login, and only marks
|
|
90
|
+
# the tenant usable after direct tenant-admin membership is confirmed.
|
|
91
|
+
# The child home region defaults to the parent region; pass
|
|
92
|
+
# `--home-region au|ca|eu` when the child must use another region.
|
|
93
|
+
|
|
94
|
+
# 5. Sync project environment if your app needs local config/secrets
|
|
95
|
+
eai env pull --include-secrets
|
|
96
|
+
|
|
97
|
+
# 6. Define your data model
|
|
98
|
+
# Edit src/eai.config/object-types.ts
|
|
99
|
+
|
|
100
|
+
# 7. Validate and seed
|
|
101
|
+
eai types validate
|
|
102
|
+
eai types seed
|
|
103
|
+
|
|
104
|
+
# 8. Start developing
|
|
105
|
+
eai dev
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
`eai init` installs Gofer AI terminal assets by default. New app repos include
|
|
109
|
+
Claude commands and agents, Codex skills, Gemini commands, Copilot prompts and
|
|
110
|
+
CLI skills, and the `.specify` commands/scripts/templates/hooks required to run
|
|
111
|
+
the Gofer pipeline.
|
|
112
|
+
Use `eai init my-app --no-gofer` only when you need a bare scaffold.
|
|
113
|
+
|
|
114
|
+
By default, `eai init my-app` creates a new `./my-app` folder. If you already
|
|
115
|
+
created and entered a project folder, run `eai init`, enter the app name, and
|
|
116
|
+
answer yes when asked to use the current folder. For automation, pass
|
|
117
|
+
`--current-dir` with the kebab-case app name. Current-folder init preserves
|
|
118
|
+
unrelated existing files and Git metadata, and updates files that are part of
|
|
119
|
+
the generated scaffold.
|
|
120
|
+
|
|
121
|
+
## Global Flags
|
|
122
|
+
|
|
123
|
+
All commands support these global flags:
|
|
124
|
+
|
|
125
|
+
| Flag | Description |
|
|
126
|
+
|------|-------------|
|
|
127
|
+
| `--profile <name>` | Use a locally configured private profile |
|
|
128
|
+
| `--simple` | Plain text output without colors or symbols (for screen readers) |
|
|
129
|
+
| `--no-color` | Disable colored output |
|
|
130
|
+
| `--color` | Force colored output (for testing) |
|
|
131
|
+
| `--describe` | Output JSON schema of command structure (for AI agents) |
|
|
132
|
+
| `--format <format>` | Output format: `text` (default), `json`, or `yaml` |
|
|
133
|
+
|
|
134
|
+
## Commands
|
|
135
|
+
|
|
136
|
+
### Scaffolding
|
|
137
|
+
|
|
138
|
+
| Command | Description |
|
|
139
|
+
|---------|-------------|
|
|
140
|
+
| `eai init [name]` | Interactive scaffold from the CLI-pinned public EAI application template with Gofer AI CLI assets |
|
|
141
|
+
| `eai dev` | Start local dev server with connectivity checks |
|
|
142
|
+
|
|
143
|
+
The bundled default template is pinned to the latest `eai-app-template` `main`
|
|
144
|
+
commit captured when this CLI release was cut. Use `--from` to override it with
|
|
145
|
+
a different repository or a local template path.
|
|
146
|
+
|
|
147
|
+
### Authentication
|
|
148
|
+
|
|
149
|
+
| Command | Description |
|
|
150
|
+
|---------|-------------|
|
|
151
|
+
| `eai login` | Authenticate with Entra CIAM (browser-based PKCE flow with localhost callback) |
|
|
152
|
+
| `eai logout` | Clear stored tokens |
|
|
153
|
+
| `eai whoami` | Show auth status and project context |
|
|
154
|
+
| `eai provision entra` | Create or confirm the app's Entra app registration in the CIAM for the active platform environment |
|
|
155
|
+
| `eai provision entra --rotate-secret` | Rotate the existing app registration secret and write the new value to `.env.local` |
|
|
156
|
+
| `eai provision entra --deauthorize --force` | Remove tenant authorization, delete the app registration, and remove local Entra credentials |
|
|
157
|
+
| `eai user invite --email <email> --role <role>` | Invite or provision a user into the active tenant or an explicit tenant with a V4 member role |
|
|
158
|
+
| `eai user list` | List tenant members in the active tenant or an explicit tenant |
|
|
159
|
+
| `eai user roles` | List tenant role definitions available for user invitation |
|
|
160
|
+
| `eai user role set --email <email> --role <role>` | Assign a role by email through the V4 invite/add flow |
|
|
161
|
+
| `eai user provision-me` | Provision yourself to the active tenant or an explicit tenant |
|
|
162
|
+
|
|
163
|
+
Codespaces and other remote dev environments can keep the standard localhost
|
|
164
|
+
callback by forwarding a fixed callback port from the Codespace to your local
|
|
165
|
+
machine:
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
# Local machine, keep this running in a separate terminal
|
|
169
|
+
gh codespace ports forward -c <codespace-name> 3476:3476
|
|
170
|
+
|
|
171
|
+
# Codespace terminal
|
|
172
|
+
eai login --callback-port 3476
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
`eai login --callback-port <port>` still uses `http://localhost:<port>` for the
|
|
176
|
+
OAuth callback; it just pins the port instead of choosing a random one. That
|
|
177
|
+
keeps the public Entra app registration unchanged while allowing your local
|
|
178
|
+
machine to tunnel the callback into the Codespace.
|
|
179
|
+
|
|
180
|
+
### Environment
|
|
181
|
+
|
|
182
|
+
| Command | Description |
|
|
183
|
+
|---------|-------------|
|
|
184
|
+
| `eai env pull` | Sync Azure App Config + Key Vault → `.env.local` |
|
|
185
|
+
| `eai env list` | Show current environment variables |
|
|
186
|
+
| `eai env push` | Push local overrides to cloud (admin) |
|
|
187
|
+
|
|
188
|
+
### Object Types
|
|
189
|
+
|
|
190
|
+
| Command | Description |
|
|
191
|
+
|---------|-------------|
|
|
192
|
+
| `eai types validate` | Check types against platform schema rules |
|
|
193
|
+
| `eai types seed` | Push Object Types to platform and verify remote convergence |
|
|
194
|
+
| `eai types diff` | Compare local definitions with remote state |
|
|
195
|
+
| `eai types pull` | Download remote types to local TypeScript |
|
|
196
|
+
|
|
197
|
+
### Resources
|
|
198
|
+
|
|
199
|
+
| Command | Description |
|
|
200
|
+
|---------|-------------|
|
|
201
|
+
| `eai resources list <type>` | List resources (paginated, supports `--tenant-id`) |
|
|
202
|
+
| `eai resources get <type> <id>` | Get a single resource (supports `--tenant-id`) |
|
|
203
|
+
| `eai resources create <type>` | Create with `--data` JSON or `--file` |
|
|
204
|
+
| `eai resources update <type> <id>` | Update (auto-fetches version) |
|
|
205
|
+
| `eai resources delete <type> <id>` | Delete (with confirmation) |
|
|
206
|
+
| `eai resources query` | Cross-type query with `--types`, `--where`, and optional `--tenant-id` |
|
|
207
|
+
| `eai resources schema` | Show published Object Types for tenant (supports `--tenant-id`) |
|
|
208
|
+
|
|
209
|
+
### Tenants
|
|
210
|
+
|
|
211
|
+
| Command | Description |
|
|
212
|
+
|---------|-------------|
|
|
213
|
+
| `eai tenant list` | List active tenants where you are a `tenant-admin` |
|
|
214
|
+
| `eai tenant select [tenant]` | Choose the active tenant for platform operations |
|
|
215
|
+
| `eai tenant info <id>` | Show tenant details |
|
|
216
|
+
| `eai tenant create` | Create a new tenant and verify child usability truthfully |
|
|
217
|
+
| `eai tenant bootstrap-admin --parent <id> --child <id>` | Repair first child-tenant admin access when the parent admin should be able to administer an existing child |
|
|
218
|
+
|
|
219
|
+
### AI & Documents
|
|
220
|
+
|
|
221
|
+
| Command | Description |
|
|
222
|
+
|---------|-------------|
|
|
223
|
+
| `eai chat send <message>` | Send a single chat message |
|
|
224
|
+
| `eai chat stream <message>` | Stream a conversation (SSE) |
|
|
225
|
+
| `eai workflow readiness [keys...]` | Check tenant access, plan metadata, and optional workflow readiness together |
|
|
226
|
+
| `eai workflow status <key>` | Check whether an AI runtime workflow key is bound for the active tenant |
|
|
227
|
+
| `eai workflow request <key>` | Request operator-assisted workflow binding when a workflow is not ready yet |
|
|
228
|
+
| `eai docs upload <file>` | Upload a document |
|
|
229
|
+
| `eai docs classify <file>` | Classify a document |
|
|
230
|
+
| `eai docs index <id>` | Index a document for RAG |
|
|
231
|
+
|
|
232
|
+
### PublicAPI V4
|
|
233
|
+
|
|
234
|
+
| Command | Description |
|
|
235
|
+
|---------|-------------|
|
|
236
|
+
| `eai publicapi get <path>` | Call an authorized PublicAPI V4 GET route |
|
|
237
|
+
| `eai publicapi post <path>` | Call an authorized PublicAPI V4 POST route with optional `--data` or `--file` JSON |
|
|
238
|
+
| `eai publicapi patch <path>` | Call an authorized PublicAPI V4 PATCH route |
|
|
239
|
+
| `eai publicapi put <path>` | Call an authorized PublicAPI V4 PUT route |
|
|
240
|
+
| `eai publicapi delete <path>` | Call an authorized PublicAPI V4 DELETE route |
|
|
241
|
+
|
|
242
|
+
Use named commands first for normal workflows. `eai publicapi` is the advanced
|
|
243
|
+
V4-only surface for route families that do not yet have a polished command,
|
|
244
|
+
such as geo, realtime, platform administration, integrations, or DAISY-specific
|
|
245
|
+
diagnostics. It still uses your current login and tenant context, and PublicAPI
|
|
246
|
+
still enforces platform tenant authorization.
|
|
247
|
+
|
|
248
|
+
### Deployment
|
|
249
|
+
|
|
250
|
+
| Command | Description |
|
|
251
|
+
|---------|-------------|
|
|
252
|
+
| `eai runtime validate` | Validate the provider-neutral EAI app runtime contract |
|
|
253
|
+
| `eai deploy env --provider <provider>` | Translate the runtime contract into provider env/secret requirements |
|
|
254
|
+
| `eai deploy setup` | Generate deploy-demo.yml + GitHub secrets |
|
|
255
|
+
| `eai deploy trigger` | Trigger deployment workflow |
|
|
256
|
+
| `eai deploy status` | Check deployment status |
|
|
257
|
+
| `eai deploy doctor --url <deployed-url>` | Black-box check health, Auth.js, runtime config, smoke tests, and BFF readiness |
|
|
258
|
+
|
|
259
|
+
The runtime contract lives in `eai.runtime.json`. It declares required
|
|
260
|
+
environment variable names, required secrets, health/runtime endpoints, Auth.js
|
|
261
|
+
callback path, tenant/workflow key patterns, optional app-only service identity,
|
|
262
|
+
and post-deploy smoke tests. It is host-neutral: Vercel, Docker, AWS, Azure,
|
|
263
|
+
Kubernetes, VM-style hosts, and internal demo environments should translate the
|
|
264
|
+
same contract into their provider-specific env and secret setup.
|
|
265
|
+
|
|
266
|
+
`eai deploy doctor` deliberately does more than `/health`. A deployment can have
|
|
267
|
+
`/health` returning 200 and still fail because Auth.js providers are missing,
|
|
268
|
+
the Entra callback URL is wrong, tenant/workflow config is empty, service
|
|
269
|
+
identity is absent for anonymous server-side platform calls, PublicAPI rejects
|
|
270
|
+
authorization, or the app runtime is throwing errors.
|
|
271
|
+
|
|
272
|
+
### Diagnostics
|
|
273
|
+
|
|
274
|
+
| Command | Description |
|
|
275
|
+
|---------|-------------|
|
|
276
|
+
| `eai verify` | Run platform connectivity checks (supports read-only `--tenant-id`) |
|
|
277
|
+
| `eai verify calls` | Audit platform API contracts used by the CLI (supports read-only `--tenant-id`) |
|
|
278
|
+
| `eai doctor` | Comprehensive diagnostics with fix suggestions |
|
|
279
|
+
| `eai gofer refresh` | Safely refresh repo-local Gofer-managed assets with backups and conflict detection |
|
|
280
|
+
| `eai template check` | Preview app-template and UI drift without writing files |
|
|
281
|
+
|
|
282
|
+
## Tenant Lifecycle Truth
|
|
283
|
+
|
|
284
|
+
`eai tenant create` now distinguishes these states:
|
|
285
|
+
|
|
286
|
+
- `created`: the tenant document exists
|
|
287
|
+
- `bootstrapped`: the CLI successfully called the constrained first-admin bootstrap flow for a child tenant
|
|
288
|
+
- `usable`: a refreshed membership check confirmed the current login now holds direct `tenant-admin` on that tenant
|
|
289
|
+
|
|
290
|
+
For child tenants, the CLI only auto-selects the new tenant when `usable` is true. If bootstrap is blocked or downstream membership confirmation has not landed yet, the command leaves the active tenant unchanged and reports that explicitly.
|
|
291
|
+
|
|
292
|
+
The first-admin bootstrap path is intentionally narrow:
|
|
293
|
+
|
|
294
|
+
- the caller must already be `tenant-admin` on the direct parent tenant
|
|
295
|
+
- the target must be an immediate child of that parent
|
|
296
|
+
- the child must not already have a tenant admin
|
|
297
|
+
- parent child allowance is enforced from `limits.tenants`
|
|
298
|
+
|
|
299
|
+
For existing child tenants that were created before the bootstrap completed, a parent tenant admin can run:
|
|
300
|
+
|
|
301
|
+
```bash
|
|
302
|
+
eai tenant bootstrap-admin --parent <parent-tenant-id> --child <child-tenant-id>
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
By default this bootstraps the current login. To repair another known parent member, pass `--user-oid <entra-user-oid>` and optionally `--user-email <email>`.
|
|
306
|
+
|
|
307
|
+
## Tenant Member And Role Management
|
|
308
|
+
|
|
309
|
+
Use `eai user invite` for normal "add this person to a tenant" and "make this
|
|
310
|
+
person a tenant admin/member" requests. The command calls the V4 tenant member
|
|
311
|
+
invite/add flow and can assign these base roles:
|
|
312
|
+
|
|
313
|
+
- `tenant-viewer`
|
|
314
|
+
- `tenant-staff`
|
|
315
|
+
- `tenant-builder`
|
|
316
|
+
- `tenant-admin`
|
|
317
|
+
|
|
318
|
+
Common examples:
|
|
319
|
+
|
|
320
|
+
```bash
|
|
321
|
+
eai user roles --tenant <tenant-id> --format json
|
|
322
|
+
eai user invite --email user@example.com --tenant <tenant-id> --role tenant-viewer
|
|
323
|
+
eai user invite --email admin@example.com --tenant <tenant-id> --role tenant-admin
|
|
324
|
+
eai user list --tenant <tenant-id> --search admin@example.com --format json
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
If `eai user invite` fails with a 5xx or `EXTERNAL_SERVICE_ERROR`, do not guess
|
|
328
|
+
or edit the database directly. Run:
|
|
329
|
+
|
|
330
|
+
```bash
|
|
331
|
+
eai errors explain user_invite_external_service_existing_member --format json
|
|
332
|
+
eai user list --tenant <tenant-id> --search <email> --format json
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
If the person already exists as a direct tenant member and you approve the role
|
|
336
|
+
change, repair the role through EAI CLI and verify read-back:
|
|
337
|
+
|
|
338
|
+
```bash
|
|
339
|
+
eai user role set --tenant <tenant-id> --member-id <member-id> --role tenant-admin --format json
|
|
340
|
+
eai user list --tenant <tenant-id> --search <email> --format json
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
The affected app user may need to sign out and sign back in because Auth.js
|
|
344
|
+
session or JWT role data can be cached.
|
|
345
|
+
|
|
346
|
+
`eai tenant bootstrap-admin` is not a general "make this user an admin" command.
|
|
347
|
+
It is only for repairing first tenant-admin access on an existing immediate
|
|
348
|
+
child tenant when the caller is already tenant-admin on the direct parent.
|
|
349
|
+
|
|
350
|
+
## Architecture
|
|
351
|
+
|
|
352
|
+
```
|
|
353
|
+
Developer Terminal EAI Platform
|
|
354
|
+
────────────────── ────────────
|
|
355
|
+
eai login ──────────────────────────→ Entra CIAM (browser PKCE + localhost callback)
|
|
356
|
+
eai tenant select ──────────────────→ Current-user memberships → active tenant context
|
|
357
|
+
eai env pull ───────────────────────→ Azure App Config + Key Vault
|
|
358
|
+
eai types seed ─────────────────────→ Platform API → Type Registry
|
|
359
|
+
eai resources list ─────────────────→ Platform API → Data Service
|
|
360
|
+
eai workflow status ────────────────→ Platform API → AI runtime readiness
|
|
361
|
+
eai chat stream ────────────────────→ Platform API → AI Service
|
|
362
|
+
eai docs classify ──────────────────→ Platform API → AI Service
|
|
363
|
+
eai runtime validate ────────────────→ eai.runtime.json → local contract evidence
|
|
364
|
+
eai deploy env ──────────────────────→ eai.runtime.json → provider env/secret checklist
|
|
365
|
+
eai deploy doctor ───────────────────→ deployed app URL → black-box runtime checks
|
|
366
|
+
eai deploy trigger ─────────────────→ GitHub Actions → deployment workflow
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
The CLI authenticates via browser-based authorization code flow with PKCE, stores tokens locally in `~/.eai/`, persists the active working tenant from your tenant-admin memberships, and calls the platform API directly with a Bearer token. `.env.local` is still available for project runtime configuration, but tenant selection for CLI platform commands comes from `eai login` and `eai tenant select`.
|
|
370
|
+
|
|
371
|
+
Runtime workflow checks are intentionally public-safe. They tell you whether a workflow key is `available`, `operator_required`, `paid_upgrade_required`, `rate_limited`, `blocked`, `unsupported`, or not ready without exposing private platform topology. Use `eai workflow request <key>` when the platform reports `operator_required`.
|
|
372
|
+
|
|
373
|
+
## Error Guidance
|
|
374
|
+
|
|
375
|
+
The CLI uses structured error guidance for consistent human and AI-agent recovery:
|
|
376
|
+
|
|
377
|
+
- **E001-E099**: Project errors (not in EAI project, config missing)
|
|
378
|
+
- **E100-E199**: Auth errors (not logged in, token expired)
|
|
379
|
+
- **E200-E299**: Platform errors (API unreachable, resource not found)
|
|
380
|
+
- **E300-E399**: Validation errors (invalid schema, missing field)
|
|
381
|
+
|
|
382
|
+
Error output explains why the error may have happened, what read-only diagnostics
|
|
383
|
+
to run first, what mutating `eai` commands can fix it, and when to stop retrying.
|
|
384
|
+
|
|
385
|
+
```
|
|
386
|
+
✗ Not logged in.
|
|
387
|
+
|
|
388
|
+
Why this might happen:
|
|
389
|
+
- The CLI does not have a usable local sign-in token.
|
|
390
|
+
- The token may have expired or been created for a different local profile.
|
|
391
|
+
|
|
392
|
+
Try next:
|
|
393
|
+
1. eai whoami [read-only]
|
|
394
|
+
Show the current login and active tenant status.
|
|
395
|
+
2. eai login [changes state]
|
|
396
|
+
Authenticate with the EAI identity flow.
|
|
397
|
+
|
|
398
|
+
Error code: E101
|
|
399
|
+
Reason: not_logged_in
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
JSON output keeps the legacy `suggestion` field and adds structured guidance for
|
|
403
|
+
AI agents:
|
|
404
|
+
|
|
405
|
+
```json
|
|
406
|
+
{
|
|
407
|
+
"error": {
|
|
408
|
+
"code": "E101",
|
|
409
|
+
"message": "Not logged in",
|
|
410
|
+
"suggestion": "Run `eai login` to authenticate with the platform",
|
|
411
|
+
"guidance": {
|
|
412
|
+
"reasonCode": "not_logged_in",
|
|
413
|
+
"why": ["The CLI does not have a usable local sign-in token."],
|
|
414
|
+
"diagnostics": [{ "command": "eai whoami", "mutates": false }],
|
|
415
|
+
"fixes": [{ "command": "eai login", "mutates": true }]
|
|
416
|
+
},
|
|
417
|
+
"exitCode": 1
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
Use `eai errors explain <code-or-reason>` for the release-aligned explanation:
|
|
423
|
+
|
|
424
|
+
```bash
|
|
425
|
+
eai errors explain E101
|
|
426
|
+
eai errors explain tenant_authorization_incomplete --format json
|
|
427
|
+
eai errors explain user_invite_external_service_existing_member --format json
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
## Machine-Readable Output
|
|
431
|
+
|
|
432
|
+
Most data-returning commands that advertise `--format <format>` support
|
|
433
|
+
`--format json` for automation. Check `eai --describe` or command help before
|
|
434
|
+
scripting a subcommand; status-only commands such as `eai whoami` and quick
|
|
435
|
+
`eai verify` are plain text today.
|
|
436
|
+
|
|
437
|
+
```bash
|
|
438
|
+
# Get JSON output
|
|
439
|
+
eai resources list User --format json
|
|
440
|
+
|
|
441
|
+
# Parse with jq
|
|
442
|
+
eai tenant list --format json | jq '.tenants[] | .slug'
|
|
443
|
+
|
|
444
|
+
# Use in scripts
|
|
445
|
+
if eai verify calls --format json | jq -e '.summary.failed == 0' > /dev/null; then
|
|
446
|
+
echo "Platform contracts are healthy"
|
|
447
|
+
fi
|
|
448
|
+
```
|
|
449
|
+
|
|
450
|
+
The `--describe` flag outputs the CLI command structure as JSON Schema, enabling AI agents and automation tools to discover capabilities at runtime:
|
|
451
|
+
|
|
452
|
+
```bash
|
|
453
|
+
eai --describe # Describe all commands
|
|
454
|
+
eai types --describe # Describe types subcommands
|
|
455
|
+
```
|
|
456
|
+
|
|
457
|
+
For AI agents that need to use `eai` without extra instructions, start with the
|
|
458
|
+
built-in operating guide:
|
|
459
|
+
|
|
460
|
+
```bash
|
|
461
|
+
eai agent guide --format json
|
|
462
|
+
```
|
|
463
|
+
|
|
464
|
+
The same guide is embedded in `eai --describe` as `agentGuide`. It tells agents
|
|
465
|
+
to prefer structured output, run read-only diagnostics before fixes, call
|
|
466
|
+
`eai errors explain <code-or-reason> --format json` after failures, use named
|
|
467
|
+
commands before raw `publicapi` calls, and stop when retry or escalation
|
|
468
|
+
conditions match.
|
|
469
|
+
|
|
470
|
+
To test whether a weak agent can discover that behavior without EAI-specific
|
|
471
|
+
prompt instructions, run the built-in discovery eval:
|
|
472
|
+
|
|
473
|
+
```bash
|
|
474
|
+
npm run build
|
|
475
|
+
npm run eval:agent-discovery -- --json
|
|
476
|
+
```
|
|
477
|
+
|
|
478
|
+
The default `regex-small` agent is intentionally limited: it starts from generic
|
|
479
|
+
help/describe output, parses visible error codes or reason codes, and only runs
|
|
480
|
+
commands it discovers from the CLI output. Use `--agent-command <cmd>` to plug
|
|
481
|
+
in a real model runner that accepts the eval JSON turn on stdin and returns a
|
|
482
|
+
JSON decision.
|
|
483
|
+
|
|
484
|
+
## Gofer AI Terminal Assets
|
|
485
|
+
|
|
486
|
+
Every `eai init` project includes the repo-local Gofer assets needed by the AI
|
|
487
|
+
terminals used in this workspace:
|
|
488
|
+
|
|
489
|
+
| CLI | Installed surface | First command |
|
|
490
|
+
|-----|-------------------|---------------|
|
|
491
|
+
| Claude CLI | `.claude/commands`, `.claude/agents`, `.claude/settings.json` hooks | `/0_gofer_start` |
|
|
492
|
+
| Codex CLI | `.agents/skills/` with a legacy `.system/skills/` mirror | Ask Codex to use the relevant Gofer skill |
|
|
493
|
+
| Gemini CLI | `.gemini/commands/gofer`, `.gemini/extension.json` | `/gofer:1_gofer_research` |
|
|
494
|
+
| GitHub Copilot | `.github/prompts`, `.github/instructions`, `.github/skills` | Use the Gofer prompt or matching local skill |
|
|
495
|
+
|
|
496
|
+
The shared workflow artifacts live under `.specify/`: commands, scripts,
|
|
497
|
+
templates, hooks, memory, logs, and generated feature specs. Runtime state is
|
|
498
|
+
added to `.gitignore`; command definitions and templates are committed with the
|
|
499
|
+
app.
|
|
500
|
+
|
|
501
|
+
### Updating an existing repo safely
|
|
502
|
+
|
|
503
|
+
`eai update` keeps the local EAI toolchain current. It checks the installed CLI
|
|
504
|
+
against npmjs first, falls back to the public static registry when needed, installs the newer CLI when available, then
|
|
505
|
+
refreshes safe Gofer-managed files in the current EAI project. It does **not**
|
|
506
|
+
blindly rewrite template files or UI components inside an existing app repo.
|
|
507
|
+
|
|
508
|
+
Use these commands for the full maintenance loop:
|
|
509
|
+
|
|
510
|
+
```bash
|
|
511
|
+
# See whether a newer CLI release, Gofer refresh, or template review is available
|
|
512
|
+
eai update --check
|
|
513
|
+
|
|
514
|
+
# Same report through the broader doctor command
|
|
515
|
+
eai doctor --check-updates
|
|
516
|
+
|
|
517
|
+
# Preview safe Gofer-managed asset updates for the current repo
|
|
518
|
+
eai gofer refresh --check
|
|
519
|
+
|
|
520
|
+
# Apply safe Gofer-managed file updates, with backups and conflict detection
|
|
521
|
+
eai gofer refresh
|
|
522
|
+
|
|
523
|
+
# Preview app-template and UI component drift before copying changes manually
|
|
524
|
+
eai template check
|
|
525
|
+
```
|
|
526
|
+
|
|
527
|
+
Important boundaries:
|
|
528
|
+
|
|
529
|
+
- `eai update --check` is read-only. `eai update` may write only
|
|
530
|
+
Gofer-managed files in an EAI project.
|
|
531
|
+
- `eai gofer refresh` prefers the latest public `eai-gofer` release at runtime,
|
|
532
|
+
so Gofer asset updates do not require a new `eai` CLI release. If the latest
|
|
533
|
+
release cannot be reached or prepared, it falls back to the bundled snapshot.
|
|
534
|
+
- `eai gofer refresh` manages the Gofer-owned surfaces copied by `eai init`
|
|
535
|
+
such as `.specify/`, `.claude/`, `.agents/skills/`, `.gemini/`, and
|
|
536
|
+
generated Copilot Gofer files.
|
|
537
|
+
- It writes or updates `.eai-manifest.json` so future refreshes can detect
|
|
538
|
+
local edits and avoid overwriting them accidentally.
|
|
539
|
+
- If a tracked managed file has local edits, refresh leaves it untouched unless
|
|
540
|
+
you explicitly pass `--force`, and even then it backs the file up first.
|
|
541
|
+
- `eai template check` previews file-level drift against the app-template
|
|
542
|
+
`main` snapshot pinned in the installed CLI release and highlights which
|
|
543
|
+
files are new versus which need manual review, including likely UI paths under
|
|
544
|
+
`src/app` and `src/components`.
|
|
545
|
+
- Template or UI component changes are **not** auto-merged into existing repos
|
|
546
|
+
yet. Copy additions first, then diff/review existing files that `eai template
|
|
547
|
+
check` marks for manual review.
|
|
548
|
+
- During normal interactive CLI use, if the CLI has already cached that a newer
|
|
549
|
+
release is available, it can ask whether to run `eai update` immediately.
|
|
550
|
+
That prompt is suppressed for CI, non-TTY, `--describe`, `--format json`, and
|
|
551
|
+
`--json` output.
|
|
552
|
+
|
|
553
|
+
## Development
|
|
554
|
+
|
|
555
|
+
```bash
|
|
556
|
+
git clone https://github.com/eai-tools/eai.git
|
|
557
|
+
cd eai
|
|
558
|
+
npm install
|
|
559
|
+
npm run build # Compile TypeScript
|
|
560
|
+
npm run dev # Watch mode
|
|
561
|
+
npm run typecheck # Type check without emitting
|
|
562
|
+
npm run lint # Run ESLint
|
|
563
|
+
```
|
|
564
|
+
|
|
565
|
+
## Documentation and GitHub Pages
|
|
566
|
+
|
|
567
|
+
The documentation site lives in `docs-site/` and renders the source content from
|
|
568
|
+
`.tech-docs/`, the scenario library, and the generated command/API reference.
|
|
569
|
+
GitHub Pages is the public deployment target for both the documentation site and
|
|
570
|
+
the static npm registry fallback used by the install flow.
|
|
571
|
+
|
|
572
|
+
The `Deploy Docs` workflow builds `docs-site/` on `main` when documentation,
|
|
573
|
+
release-doc, registry, or LLM-help assets change. It uploads `docs-site/build`
|
|
574
|
+
with the official GitHub Pages artifact action and deploys it to the
|
|
575
|
+
`github-pages` environment.
|
|
576
|
+
|
|
577
|
+
Pages serves these public artifacts:
|
|
578
|
+
|
|
579
|
+
- `/docs/` and `/scenarios/` — documentation and scenario library
|
|
580
|
+
- `/registry/` — static npm registry fallback metadata and tarballs
|
|
581
|
+
- `/llms.txt`, `/llms-full.txt`, and `/cli-help.txt` — release-facing AI/help
|
|
582
|
+
surfaces generated from the current CLI
|
|
583
|
+
|
|
584
|
+
## Releasing
|
|
585
|
+
|
|
586
|
+
Releases are managed with `release.sh`. It validates the release candidate locally, bumps the version, refreshes the release-facing docs/help surfaces, regenerates the static registry fallback artifacts, pushes `main` plus the annotated tag, waits for GitHub Actions to publish the npmjs packages and create the GitHub release, waits for the docs deployment that updates the static registry fallback, and then verifies npmjs plus the public static registry expose the new version.
|
|
587
|
+
|
|
588
|
+
```bash
|
|
589
|
+
./release.sh <patch|minor|major> "Release message"
|
|
590
|
+
```
|
|
591
|
+
|
|
592
|
+
Examples:
|
|
593
|
+
|
|
594
|
+
```bash
|
|
595
|
+
./release.sh patch "Fix auth token refresh bug"
|
|
596
|
+
./release.sh minor "Add bulk resource import command"
|
|
597
|
+
./release.sh major "New config format, breaking changes to types CLI"
|
|
598
|
+
```
|
|
599
|
+
|
|
600
|
+
### Release prerequisites
|
|
601
|
+
|
|
602
|
+
- Run from a clean `main` checkout
|
|
603
|
+
- `gh` must be installed and authenticated
|
|
604
|
+
|
|
605
|
+
### What `release.sh` validates before tagging
|
|
606
|
+
|
|
607
|
+
The script runs `npm run release:check`, which covers the main `$6_gofer_validate` style release gates:
|
|
608
|
+
|
|
609
|
+
1. Verifies you're on `main` with a clean working tree
|
|
610
|
+
2. Pulls latest and installs dependencies (`npm ci`)
|
|
611
|
+
3. Typecheck (`tsc --noEmit`)
|
|
612
|
+
4. Lint (`eslint`)
|
|
613
|
+
5. Build (`tsc`)
|
|
614
|
+
6. Test (`vitest run`)
|
|
615
|
+
- Focused SRP CLI evidence also runs as `npm run test:eai-cli:ci` in
|
|
616
|
+
GitHub Actions check `ci/eai-cli-tests`
|
|
617
|
+
7. Smoke tests — `eai --version`, `eai --help`, and the shipped command groups
|
|
618
|
+
8. Docs site build
|
|
619
|
+
9. Release-facing docs/help generation (`llms.txt`, `llms-full.txt`, `cli-help.txt`)
|
|
620
|
+
10. Registry artifact generation (`npm pack` + `generate-registry.cjs`)
|
|
621
|
+
11. The `eai-cli` npm alias package builds and installs the `eai` command
|
|
622
|
+
12. Static-registry fallback metadata stays aligned with the documented install flow
|
|
623
|
+
13. Full e2e smoke traceability stays aligned with `eai --describe`
|
|
624
|
+
|
|
625
|
+
### Optional live full e2e smoke
|
|
626
|
+
|
|
627
|
+
`release:check` always validates the full command/CRUD traceability table in
|
|
628
|
+
[`.tech-docs/full-e2e-smoke-traceability.md`](.tech-docs/full-e2e-smoke-traceability.md).
|
|
629
|
+
The destructive live suite is opt-in because it creates a disposable app,
|
|
630
|
+
publishes Object Types, provisions storage, and CRUDs PostgreSQL, DocumentDB,
|
|
631
|
+
Blob-backed file, and Search-indexed resources in a dedicated test tenant.
|
|
632
|
+
|
|
633
|
+
Use a dedicated test user and tenant. Do not paste the password into a chat or
|
|
634
|
+
commit it to the repo; store it in your shell only for the run, or in GitHub
|
|
635
|
+
Actions secrets.
|
|
636
|
+
|
|
637
|
+
```bash
|
|
638
|
+
export EAI_RELEASE_FULL_E2E_SMOKE=1
|
|
639
|
+
export EAI_E2E_TEST_PROFILE=test
|
|
640
|
+
export EAI_E2E_TEST_USERNAME='<dedicated-test-user-email>'
|
|
641
|
+
export EAI_E2E_PARENT_TENANT_ID='<dedicated-test-tenant-id>'
|
|
642
|
+
|
|
643
|
+
# Authenticate the profile before the run:
|
|
644
|
+
eai --profile "$EAI_E2E_TEST_PROFILE" login
|
|
645
|
+
|
|
646
|
+
# Or provide a secure bootstrap command that leaves whoami working:
|
|
647
|
+
export EAI_E2E_AUTH_COMMAND='<secure-auth-bootstrap-command>'
|
|
648
|
+
|
|
649
|
+
npm run smoke:eai-full:live
|
|
650
|
+
```
|
|
651
|
+
|
|
652
|
+
If an external bootstrap command needs a password, pass it through an
|
|
653
|
+
environment secret such as `EAI_E2E_TEST_PASSWORD`. The smoke runner redacts
|
|
654
|
+
password-like values from failures and does not print or persist the password.
|
|
655
|
+
|
|
656
|
+
### What happens after the local checks pass
|
|
657
|
+
|
|
658
|
+
1. `release.sh` bumps the requested semver level
|
|
659
|
+
2. It updates the visible `.tech-docs/` release metadata to the new version and release message
|
|
660
|
+
3. It regenerates `docs-site/static/registry/`, `docs-site/static/llms.txt`, `docs-site/static/llms-full.txt`, and `docs-site/static/cli-help.txt`
|
|
661
|
+
4. It commits the release, creates an annotated `vX.Y.Z` tag, and pushes `main --follow-tags`
|
|
662
|
+
5. The tag-triggered GitHub Actions `Release` workflow verifies the committed release docs/help surfaces, publishes `@enterpriseai/cli` and `eai-cli` to npmjs with trusted publishing, then creates the GitHub release and attaches the packaged tarballs
|
|
663
|
+
6. The `Deploy Docs` workflow publishes the matching static registry fallback and release-doc bundle to GitHub Pages
|
|
664
|
+
7. `release.sh` waits for both workflows and verifies npmjs plus the canonical `@enterpriseai/cli` static fallback
|
|
665
|
+
|
|
666
|
+
If npmjs or the static registry fallback does not converge to the new version, the script exits non-zero so the release is treated as incomplete.
|
|
667
|
+
|
|
668
|
+
The EAI CLI is also part of SRP release evidence. Repo-local CLI behavior is
|
|
669
|
+
owned here through `ci/eai-cli-tests`; deployed read-only CLI schema, error,
|
|
670
|
+
auth, and preview canaries live in `enterpriseaigroup/eai-testing-dev` under the
|
|
671
|
+
`eai-cli` cross-service surface. Keep prod CLI canaries read-only; preview
|
|
672
|
+
lifecycle checks must stay explicit and cleanup-backed.
|
|
673
|
+
|
|
674
|
+
The release path publishes the repository exactly as committed. Bundled Gofer and linked-source refreshes happen separately via `npm run sync:gofer` / `npm run sync:linked-sources` and should be committed before you cut a release. At runtime, `eai gofer refresh` still checks the public latest `eai-gofer` release and falls back to that bundled snapshot when offline.
|
|
675
|
+
|
|
676
|
+
Before making or keeping the repository public, run a public-readiness check:
|
|
677
|
+
|
|
678
|
+
```bash
|
|
679
|
+
npm run release:check
|
|
680
|
+
git grep -n -E "SECRET|TOKEN|PASSWORD|PRIVATE KEY|CLIENT_SECRET|API_KEY|connection string|AccountKey|Bearer "
|
|
681
|
+
```
|
|
682
|
+
|
|
683
|
+
GitHub secret scanning and push protection should also be enabled for the
|
|
684
|
+
repository so accidental credential commits are blocked or alerted before they
|
|
685
|
+
become a public incident.
|
|
686
|
+
|
|
687
|
+
Helpful maintainer commands:
|
|
688
|
+
|
|
689
|
+
```bash
|
|
690
|
+
npm run docs:release-assets
|
|
691
|
+
npm run docs:release-assets:check
|
|
692
|
+
```
|
|
693
|
+
|
|
694
|
+
### Release channel policy
|
|
695
|
+
|
|
696
|
+
- **npmjs is the primary release and update channel**
|
|
697
|
+
- Recommended install: `npm install -g eai-cli`
|
|
698
|
+
- Canonical package install: `npm install -g @enterpriseai/cli`
|
|
699
|
+
- Static fallback: `npm install -g @enterpriseai/cli --@enterpriseai:registry=https://eai-tools.github.io/eai/registry/`
|
|
700
|
+
- Persistent fallback setup: `npm config set @enterpriseai:registry https://eai-tools.github.io/eai/registry/ --location=user`
|
|
701
|
+
- Use `eai update` to update the installed CLI and refresh safe project assets
|
|
702
|
+
|
|
703
|
+
## Documentation
|
|
704
|
+
|
|
705
|
+
Full documentation: https://eai-tools.github.io/eai/
|
|
706
|
+
|
|
707
|
+
93 pages covering getting started, guides, concepts, command reference, 50 industry scenarios, and examples in 7 languages.
|
|
708
|
+
|
|
709
|
+
## Roadmap
|
|
710
|
+
|
|
711
|
+
- [ ] `eai types define` — interactive Object Type builder
|
|
712
|
+
- [ ] `eai dev --offline` — local mock gateway for offline development
|
|
713
|
+
- [ ] `eai tunnel` — Cloudflare tunnel for webhook testing
|
|
714
|
+
- [x] npmjs install alias (`npm install -g eai-cli`) with static registry fallback
|