@enterpriseai/cli 3.19.2 → 3.19.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/README.md +28 -0
  2. package/dist/commands/chat.d.ts.map +1 -1
  3. package/dist/commands/chat.js +116 -35
  4. package/dist/commands/chat.js.map +1 -1
  5. package/dist/commands/eai-managed-deploy-customer-source.d.ts.map +1 -1
  6. package/dist/commands/eai-managed-deploy-customer-source.js +24 -0
  7. package/dist/commands/eai-managed-deploy-customer-source.js.map +1 -1
  8. package/dist/commands/eai-managed-deploy-github-dispatch.d.ts.map +1 -1
  9. package/dist/commands/eai-managed-deploy-github-dispatch.js +30 -0
  10. package/dist/commands/eai-managed-deploy-github-dispatch.js.map +1 -1
  11. package/dist/commands/eai-managed-source-move.js +2 -2
  12. package/dist/commands/eai-managed-source-move.js.map +1 -1
  13. package/dist/commands/env.js +15 -2
  14. package/dist/commands/env.js.map +1 -1
  15. package/dist/commands/gofer.js +8 -1
  16. package/dist/commands/gofer.js.map +1 -1
  17. package/dist/commands/init.d.ts +4 -0
  18. package/dist/commands/init.d.ts.map +1 -1
  19. package/dist/commands/init.js +187 -8
  20. package/dist/commands/init.js.map +1 -1
  21. package/dist/commands/login.d.ts.map +1 -1
  22. package/dist/commands/login.js +6 -2
  23. package/dist/commands/login.js.map +1 -1
  24. package/dist/commands/provision.d.ts.map +1 -1
  25. package/dist/commands/provision.js +27 -13
  26. package/dist/commands/provision.js.map +1 -1
  27. package/dist/commands/publicapi.d.ts.map +1 -1
  28. package/dist/commands/publicapi.js +14 -2
  29. package/dist/commands/publicapi.js.map +1 -1
  30. package/dist/commands/resources.d.ts.map +1 -1
  31. package/dist/commands/resources.js +41 -20
  32. package/dist/commands/resources.js.map +1 -1
  33. package/dist/commands/support.d.ts +18 -0
  34. package/dist/commands/support.d.ts.map +1 -0
  35. package/dist/commands/support.js +110 -0
  36. package/dist/commands/support.js.map +1 -0
  37. package/dist/commands/tenant.js +39 -3
  38. package/dist/commands/tenant.js.map +1 -1
  39. package/dist/commands/types.d.ts +12 -1
  40. package/dist/commands/types.d.ts.map +1 -1
  41. package/dist/commands/types.js +172 -35
  42. package/dist/commands/types.js.map +1 -1
  43. package/dist/commands/verify.d.ts.map +1 -1
  44. package/dist/commands/verify.js +89 -44
  45. package/dist/commands/verify.js.map +1 -1
  46. package/dist/commands/vertical.d.ts.map +1 -1
  47. package/dist/commands/vertical.js +163 -15
  48. package/dist/commands/vertical.js.map +1 -1
  49. package/dist/index.js +54 -7
  50. package/dist/index.js.map +1 -1
  51. package/dist/lib/agent-guide.d.ts.map +1 -1
  52. package/dist/lib/agent-guide.js +25 -4
  53. package/dist/lib/agent-guide.js.map +1 -1
  54. package/dist/lib/api.d.ts +25 -4
  55. package/dist/lib/api.d.ts.map +1 -1
  56. package/dist/lib/api.js +152 -39
  57. package/dist/lib/api.js.map +1 -1
  58. package/dist/lib/cloud-env.d.ts +1 -0
  59. package/dist/lib/cloud-env.d.ts.map +1 -1
  60. package/dist/lib/cloud-env.js +28 -15
  61. package/dist/lib/cloud-env.js.map +1 -1
  62. package/dist/lib/config.d.ts +6 -2
  63. package/dist/lib/config.d.ts.map +1 -1
  64. package/dist/lib/config.js +13 -1
  65. package/dist/lib/config.js.map +1 -1
  66. package/dist/lib/eai-managed-deploy-contract.d.ts +4 -0
  67. package/dist/lib/eai-managed-deploy-contract.d.ts.map +1 -1
  68. package/dist/lib/eai-managed-deploy-contract.js.map +1 -1
  69. package/dist/lib/eai-managed-deploy-operation.d.ts.map +1 -1
  70. package/dist/lib/eai-managed-deploy-operation.js +14 -0
  71. package/dist/lib/eai-managed-deploy-operation.js.map +1 -1
  72. package/dist/lib/eai-managed-deploy-state.d.ts.map +1 -1
  73. package/dist/lib/eai-managed-deploy-state.js +15 -1
  74. package/dist/lib/eai-managed-deploy-state.js.map +1 -1
  75. package/dist/lib/eai-managed-source-client-types.d.ts +3 -0
  76. package/dist/lib/eai-managed-source-client-types.d.ts.map +1 -1
  77. package/dist/lib/error-codes.d.ts.map +1 -1
  78. package/dist/lib/error-codes.js +6 -3
  79. package/dist/lib/error-codes.js.map +1 -1
  80. package/dist/lib/object-type-export-filesystem.d.ts +13 -0
  81. package/dist/lib/object-type-export-filesystem.d.ts.map +1 -0
  82. package/dist/lib/object-type-export-filesystem.js +112 -0
  83. package/dist/lib/object-type-export-filesystem.js.map +1 -0
  84. package/dist/lib/object-type-export.d.ts +13 -0
  85. package/dist/lib/object-type-export.d.ts.map +1 -0
  86. package/dist/lib/object-type-export.js +173 -0
  87. package/dist/lib/object-type-export.js.map +1 -0
  88. package/dist/lib/output.d.ts +1 -0
  89. package/dist/lib/output.d.ts.map +1 -1
  90. package/dist/lib/output.js +24 -1
  91. package/dist/lib/output.js.map +1 -1
  92. package/dist/lib/platform-diagnostics.d.ts +21 -0
  93. package/dist/lib/platform-diagnostics.d.ts.map +1 -0
  94. package/dist/lib/platform-diagnostics.js +50 -0
  95. package/dist/lib/platform-diagnostics.js.map +1 -0
  96. package/dist/lib/profile.d.ts +9 -2
  97. package/dist/lib/profile.d.ts.map +1 -1
  98. package/dist/lib/profile.js +139 -4
  99. package/dist/lib/profile.js.map +1 -1
  100. package/dist/lib/schema-builder.d.ts +2 -0
  101. package/dist/lib/schema-builder.d.ts.map +1 -1
  102. package/dist/lib/schema-builder.js +5 -0
  103. package/dist/lib/schema-builder.js.map +1 -1
  104. package/dist/lib/support-context.d.ts +31 -0
  105. package/dist/lib/support-context.d.ts.map +1 -0
  106. package/dist/lib/support-context.js +193 -0
  107. package/dist/lib/support-context.js.map +1 -0
  108. package/dist/lib/support-redaction.d.ts +10 -0
  109. package/dist/lib/support-redaction.d.ts.map +1 -0
  110. package/dist/lib/support-redaction.js +44 -0
  111. package/dist/lib/support-redaction.js.map +1 -0
  112. package/dist/lib/support-report.d.ts +68 -0
  113. package/dist/lib/support-report.d.ts.map +1 -0
  114. package/dist/lib/support-report.js +165 -0
  115. package/dist/lib/support-report.js.map +1 -0
  116. package/package.json +3 -2
  117. package/resources/deploy/eai-app-template/.github/workflows/eai-app.yml +46 -13
  118. package/resources/deploy/eai-app-template/producer-pin.json +8 -8
  119. package/resources/deploy/eai-app-template/scripts/source-unknown-deployment-evidence.mjs +29 -2
  120. package/resources/deploy/eai-app-template/tests/source-unknown-deployment-evidence.test.mjs +99 -1
  121. package/resources/gofer/agents-skills/eai/SKILL.md +20 -0
  122. package/resources/gofer/claude-commands/eai.md +20 -0
  123. package/resources/gofer/claude-skills/eai/SKILL.md +20 -0
  124. package/resources/gofer/commands/0_gofer_start.md +18 -0
  125. package/resources/gofer/commands/gofer_eai_first_run.md +18 -0
  126. package/resources/gofer/copilot-prompts/eai.prompt.md +20 -0
  127. package/resources/gofer/gemini/commands/gofer/eai.md +20 -0
  128. package/resources/gofer/github-skills/eai/SKILL.md +20 -0
  129. package/resources/gofer/grok-skills/eai/SKILL.md +20 -0
  130. package/resources/gofer/instruction-templates/base/agents-base.md +18 -0
  131. package/resources/gofer/instruction-templates/base/claude-base.md +18 -0
  132. package/resources/gofer/instruction-templates/base/copilot-base.md +18 -0
  133. package/resources/gofer/instruction-templates/gofer/gofer-claude.md +4 -0
  134. package/resources/gofer/node-scripts/generate-commands.mjs +26 -0
  135. package/resources/gofer/references/platform/eai-support.md +19 -0
  136. package/resources/gofer/specify-commands/0_gofer_start.md +18 -0
  137. package/resources/gofer/specify-commands/gofer_eai_first_run.md +18 -0
  138. package/resources/gofer/system-skills/eai/SKILL.md +20 -0
  139. package/resources/linked-sources.json +2 -2
@@ -5,3 +5,21 @@ See @AGENTS.md for project conventions, commands, and code style. {{workflow}}
5
5
  ## Gofer Pipeline
6
6
 
7
7
  {{goferCommands}}
8
+
9
+ ## Support after an unresolved EAI error
10
+
11
+ After an `eai` command fails, run `eai errors explain <code-or-reason> --format json`.
12
+ Follow its diagnostics, approval requirements, and fixes once. Stop at its retry limit.
13
+ If the command still fails, prepare a report with
14
+ `eai support --source harness --tool <current-tool> --format json`.
15
+ Use `codex`, `claude`, `vscode`, `grok`, or `antigravity` for `<current-tool>`.
16
+ This command previews the locally redacted bundle in a noninteractive harness.
17
+ Show the person the bundle summary and ask for explicit consent in the chat.
18
+ Only after they approve that bundle, repeat the command with `--yes --no-open` and give them the returned link.
19
+ If the bundle changes, show it again and ask for fresh consent. Never assume consent or run `--yes` automatically.
20
+ Keep secrets, tokens, raw logs, and local `.env` values out of the chat.
21
+ The CLI creates the draft; the AI never calls the support API itself.
22
+ Report content stays in the draft body. The Support link fragment carries only its id and token.
23
+ If sign-in is unavailable, give the person the plain Support page link returned by the CLI.
24
+ In the welcome reply, say: If anything fails, say "get help" or type `eai support`; I can prepare a report for you to approve.
25
+ If the person asks for help with a silent failure, start with the same report preview.
@@ -24,3 +24,21 @@
24
24
  - **Simplicity First**: Make every change as simple as possible. Impact minimal code.
25
25
  - **No Laziness**: Find root causes. No temporary fixes. Senior developer standards.
26
26
  - **Minimal Impact**: Changes should only touch what's necessary. Avoid introducing bugs.
27
+
28
+ ## Support after an unresolved EAI error
29
+
30
+ After an `eai` command fails, run `eai errors explain <code-or-reason> --format json`.
31
+ Follow its diagnostics, approval requirements, and fixes once. Stop at its retry limit.
32
+ If the command still fails, prepare a report with
33
+ `eai support --source harness --tool <current-tool> --format json`.
34
+ Use `codex`, `claude`, `vscode`, `grok`, or `antigravity` for `<current-tool>`.
35
+ This command previews the locally redacted bundle in a noninteractive harness.
36
+ Show the person the bundle summary and ask for explicit consent in the chat.
37
+ Only after they approve that bundle, repeat the command with `--yes --no-open` and give them the returned link.
38
+ If the bundle changes, show it again and ask for fresh consent. Never assume consent or run `--yes` automatically.
39
+ Keep secrets, tokens, raw logs, and local `.env` values out of the chat.
40
+ The CLI creates the draft; the AI never calls the support API itself.
41
+ Report content stays in the draft body. The Support link fragment carries only its id and token.
42
+ If sign-in is unavailable, give the person the plain Support page link returned by the CLI.
43
+ In the welcome reply, say: If anything fails, say "get help" or type `eai support`; I can prepare a report for you to approve.
44
+ If the person asks for help with a silent failure, start with the same report preview.
@@ -5,3 +5,7 @@ gate. Before EAI readiness, app delivery continues directly, while clear non-app
5
5
  work asks once before skipping EAI tenant/app setup. Checkpointing, branding,
6
6
  tests, stakeholder communications, first-run setup, and diagnostics remain
7
7
  internal contracts routed by Gofer. Artifacts go to `.specify/specs/{feature}/`.
8
+
9
+ For unresolved CLI errors and requests to "get help", follow
10
+ `.specify/references/platform/eai-support.md`. Prepare reports with `eai support`
11
+ and require the person's explicit consent before sending the previewed bundle.
@@ -439,6 +439,26 @@ For app delivery, make EAI Platform choices for the business user.
439
439
  15. Ask the user only for material business, security, cost, deployment, destructive, or external-system decisions.`;
440
440
  }
441
441
 
442
+ function buildSupportReportContract() {
443
+ return `## Support after an unresolved EAI error
444
+
445
+ After an \`eai\` command fails, run \`eai errors explain <code-or-reason> --format json\`.
446
+ Follow its diagnostics, approval requirements, and fixes once. Stop at its retry limit.
447
+ If the command still fails, prepare a report with
448
+ \`eai support --source harness --tool <current-tool> --format json\`.
449
+ Use \`codex\`, \`claude\`, \`vscode\`, \`grok\`, or \`antigravity\` for \`<current-tool>\`.
450
+ This command previews the locally redacted bundle in a noninteractive harness.
451
+ Show the person the bundle summary and ask for explicit consent in the chat.
452
+ Only after they approve that bundle, repeat the command with \`--yes --no-open\` and give them the returned link.
453
+ If the bundle changes, show it again and ask for fresh consent. Never assume consent or run \`--yes\` automatically.
454
+ Keep secrets, tokens, raw logs, and local \`.env\` values out of the chat.
455
+ The CLI creates the draft; the AI never calls the support API itself.
456
+ Report content stays in the draft body. The Support link fragment carries only its id and token.
457
+ If sign-in is unavailable, give the person the plain Support page link returned by the CLI.
458
+ In the welcome reply, say: If anything fails, say "get help" or type \`eai support\`; I can prepare a report for you to approve.
459
+ If the person asks for help with a silent failure, start with the same report preview.`;
460
+ }
461
+
442
462
  function buildPublicEntrypointMarkdown(entry, stages, host) {
443
463
  if (entry.name === 'eai-update') {
444
464
  return buildEaiUpdateEntrypointMarkdown(host);
@@ -526,6 +546,8 @@ ${buildAuthAccessDecisionContract()}
526
546
  7. After any \`eai\` error, run \`eai errors explain <code-or-reason> --format json\` when available before guessing remediation.
527
547
  8. Do not write tokens, secrets, private workspace IDs, Entra/CIAM authority tenant IDs, or local \`.env\` values into artifacts.
528
548
 
549
+ ${buildSupportReportContract()}
550
+
529
551
  ${buildVerifiedEaiCliCommandContract()}
530
552
 
531
553
  ${buildEaiPlatformDecisionSection()}
@@ -553,6 +575,8 @@ The EAI Platform supports every step with secure data, identity, multi-tenancy,
553
575
 
554
576
  I’ll walk you through the whole process and ask short questions as we go. Tell me what you want me to do, or ask **“What’s next?”**, **“What else can you help with?”**, or **“Show me the admin screen.”**
555
577
 
578
+ If anything fails, say "get help" or type \`eai support\`; I can prepare a report for you to approve.
579
+
556
580
  **First question:** What process would you like to improve, or what would you like the application to help people do?
557
581
  \`\`\`
558
582
 
@@ -1917,6 +1941,8 @@ ${buildAlwaysEaiSection()}
1917
1941
 
1918
1942
  ${buildVerifiedEaiCliCommandContract()}
1919
1943
 
1944
+ ${buildSupportReportContract()}
1945
+
1920
1946
  ## EAI CLI Discovery And Recovery
1921
1947
 
1922
1948
  - Classify work before EAI readiness: app delivery continues directly; clear non-app work asks once before skipping EAI workspace/app setup.
@@ -0,0 +1,19 @@
1
+ # EAI support reports
2
+
3
+ ## Support after an unresolved EAI error
4
+
5
+ After an `eai` command fails, run `eai errors explain <code-or-reason> --format json`.
6
+ Follow its diagnostics, approval requirements, and fixes once. Stop at its retry limit.
7
+ If the command still fails, prepare a report with
8
+ `eai support --source harness --tool <current-tool> --format json`.
9
+ Use `codex`, `claude`, `vscode`, `grok`, or `antigravity` for `<current-tool>`.
10
+ This command previews the locally redacted bundle in a noninteractive harness.
11
+ Show the person the bundle summary and ask for explicit consent in the chat.
12
+ Only after they approve that bundle, repeat the command with `--yes --no-open` and give them the returned link.
13
+ If the bundle changes, show it again and ask for fresh consent. Never assume consent or run `--yes` automatically.
14
+ Keep secrets, tokens, raw logs, and local `.env` values out of the chat.
15
+ The CLI creates the draft; the AI never calls the support API itself.
16
+ Report content stays in the draft body. The Support link fragment carries only its id and token.
17
+ If sign-in is unavailable, give the person the plain Support page link returned by the CLI.
18
+ In the welcome reply, say: If anything fails, say "get help" or type `eai support`; I can prepare a report for you to approve.
19
+ If the person asks for help with a silent failure, start with the same report preview.
@@ -333,6 +333,24 @@ in `{FEATURE_DIR}/service-fit-matrix.md` as `unavailable without new platform
333
333
  work`, `operator_required`, or `upgrade_required`. Do not silently replace it
334
334
  with an unrelated non-EAI stack.
335
335
 
336
+ ## Support after an unresolved EAI error
337
+
338
+ After an `eai` command fails, run `eai errors explain <code-or-reason> --format json`.
339
+ Follow its diagnostics, approval requirements, and fixes once. Stop at its retry limit.
340
+ If the command still fails, prepare a report with
341
+ `eai support --source harness --tool <current-tool> --format json`.
342
+ Use `codex`, `claude`, `vscode`, `grok`, or `antigravity` for `<current-tool>`.
343
+ This command previews the locally redacted bundle in a noninteractive harness.
344
+ Show the person the bundle summary and ask for explicit consent in the chat.
345
+ Only after they approve that bundle, repeat the command with `--yes --no-open` and give them the returned link.
346
+ If the bundle changes, show it again and ask for fresh consent. Never assume consent or run `--yes` automatically.
347
+ Keep secrets, tokens, raw logs, and local `.env` values out of the chat.
348
+ The CLI creates the draft; the AI never calls the support API itself.
349
+ Report content stays in the draft body. The Support link fragment carries only its id and token.
350
+ If sign-in is unavailable, give the person the plain Support page link returned by the CLI.
351
+ In the welcome reply, say: If anything fails, say "get help" or type `eai support`; I can prepare a report for you to approve.
352
+ If the person asks for help with a silent failure, start with the same report preview.
353
+
336
354
  ### EAI Preflight Checks
337
355
 
338
356
  1. **Classify the build path**
@@ -340,6 +340,24 @@ Specifically note whether the installed CLI advertises the commands needed for:
340
340
  - AI-agent guidance via `eai agent guide`
341
341
  - error recovery guidance via `eai errors explain`
342
342
 
343
+ ## Support after an unresolved EAI error
344
+
345
+ After an `eai` command fails, run `eai errors explain <code-or-reason> --format json`.
346
+ Follow its diagnostics, approval requirements, and fixes once. Stop at its retry limit.
347
+ If the command still fails, prepare a report with
348
+ `eai support --source harness --tool <current-tool> --format json`.
349
+ Use `codex`, `claude`, `vscode`, `grok`, or `antigravity` for `<current-tool>`.
350
+ This command previews the locally redacted bundle in a noninteractive harness.
351
+ Show the person the bundle summary and ask for explicit consent in the chat.
352
+ Only after they approve that bundle, repeat the command with `--yes --no-open` and give them the returned link.
353
+ If the bundle changes, show it again and ask for fresh consent. Never assume consent or run `--yes` automatically.
354
+ Keep secrets, tokens, raw logs, and local `.env` values out of the chat.
355
+ The CLI creates the draft; the AI never calls the support API itself.
356
+ Report content stays in the draft body. The Support link fragment carries only its id and token.
357
+ If sign-in is unavailable, give the person the plain Support page link returned by the CLI.
358
+ In the welcome reply, say: If anything fails, say "get help" or type `eai support`; I can prepare a report for you to approve.
359
+ If the person asks for help with a silent failure, start with the same report preview.
360
+
343
361
  ## Step 5: Login, Workspace, And Account Readiness
344
362
 
345
363
  Run:
@@ -185,6 +185,24 @@ Confirm the sign-in method separately: EAI sign-in or client SSO through EAI. Ve
185
185
  7. After any `eai` error, run `eai errors explain <code-or-reason> --format json` when available before guessing remediation.
186
186
  8. Do not write tokens, secrets, private workspace IDs, Entra/CIAM authority tenant IDs, or local `.env` values into artifacts.
187
187
 
188
+ ## Support after an unresolved EAI error
189
+
190
+ After an `eai` command fails, run `eai errors explain <code-or-reason> --format json`.
191
+ Follow its diagnostics, approval requirements, and fixes once. Stop at its retry limit.
192
+ If the command still fails, prepare a report with
193
+ `eai support --source harness --tool <current-tool> --format json`.
194
+ Use `codex`, `claude`, `vscode`, `grok`, or `antigravity` for `<current-tool>`.
195
+ This command previews the locally redacted bundle in a noninteractive harness.
196
+ Show the person the bundle summary and ask for explicit consent in the chat.
197
+ Only after they approve that bundle, repeat the command with `--yes --no-open` and give them the returned link.
198
+ If the bundle changes, show it again and ask for fresh consent. Never assume consent or run `--yes` automatically.
199
+ Keep secrets, tokens, raw logs, and local `.env` values out of the chat.
200
+ The CLI creates the draft; the AI never calls the support API itself.
201
+ Report content stays in the draft body. The Support link fragment carries only its id and token.
202
+ If sign-in is unavailable, give the person the plain Support page link returned by the CLI.
203
+ In the welcome reply, say: If anything fails, say "get help" or type `eai support`; I can prepare a report for you to approve.
204
+ If the person asks for help with a silent failure, start with the same report preview.
205
+
188
206
  ## Verified EAI CLI Command Contract
189
207
 
190
208
  Do not invent, guess, or complete EAI CLI commands from memory.
@@ -277,6 +295,8 @@ The EAI Platform supports every step with secure data, identity, multi-tenancy,
277
295
 
278
296
  I’ll walk you through the whole process and ask short questions as we go. Tell me what you want me to do, or ask **“What’s next?”**, **“What else can you help with?”**, or **“Show me the admin screen.”**
279
297
 
298
+ If anything fails, say "get help" or type `eai support`; I can prepare a report for you to approve.
299
+
280
300
  **First question:** What process would you like to improve, or what would you like the application to help people do?
281
301
  ```
282
302
 
@@ -7,8 +7,8 @@
7
7
  },
8
8
  "appTemplate": {
9
9
  "repo": "https://github.com/eai-support/eai-app-template.git",
10
- "version": "v1.0.10",
11
- "commit": "3a117e2cd12ef2375a80ebdc6031927b2da2be78",
10
+ "version": "v1.0.13",
11
+ "commit": "623c4430ba017b8da5b36e84e2fcafd819f79169",
12
12
  "packageLockSha256": "5b04e0be44ef93a817e4dc5076914d0f0684712b41155ee2934ce42f184df415",
13
13
  "enterpriseRegistry": "https://enterpriseaigroup.github.io/enterpriseai-packages/registry",
14
14
  "enterprisePackageFingerprint": "3286fdf91d6a25a55a4d84de21bf5c592bcf11abffb96dc2be90e93414eeb646",