@noodleseed/one 0.90.0 → 0.92.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (221) hide show
  1. package/dist/cli.d.ts.map +1 -1
  2. package/dist/cli.js +3 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/auth-live-doctor.js +1 -1
  5. package/dist/commands/auth-live-doctor.js.map +1 -1
  6. package/dist/commands/catalog-data-hosted-deployment.d.ts.map +1 -1
  7. package/dist/commands/catalog-data-hosted-deployment.js +2 -2
  8. package/dist/commands/catalog-data-hosted-deployment.js.map +1 -1
  9. package/dist/commands/catalog-data-local-authoring.d.ts.map +1 -1
  10. package/dist/commands/catalog-data-local-authoring.js +27 -0
  11. package/dist/commands/catalog-data-local-authoring.js.map +1 -1
  12. package/dist/commands/deploy-dotenv-import.d.ts +28 -0
  13. package/dist/commands/deploy-dotenv-import.d.ts.map +1 -0
  14. package/dist/commands/deploy-dotenv-import.js +50 -0
  15. package/dist/commands/deploy-dotenv-import.js.map +1 -0
  16. package/dist/commands/deploy-fire-progress.d.ts +28 -0
  17. package/dist/commands/deploy-fire-progress.d.ts.map +1 -0
  18. package/dist/commands/deploy-fire-progress.js +64 -0
  19. package/dist/commands/deploy-fire-progress.js.map +1 -0
  20. package/dist/commands/deploy-first-flow.d.ts +72 -0
  21. package/dist/commands/deploy-first-flow.d.ts.map +1 -0
  22. package/dist/commands/deploy-first-flow.js +315 -0
  23. package/dist/commands/deploy-first-flow.js.map +1 -0
  24. package/dist/commands/deploy-ops.d.ts +1 -27
  25. package/dist/commands/deploy-ops.d.ts.map +1 -1
  26. package/dist/commands/deploy-ops.js +122 -145
  27. package/dist/commands/deploy-ops.js.map +1 -1
  28. package/dist/commands/deploy-output.d.ts +7 -1
  29. package/dist/commands/deploy-output.d.ts.map +1 -1
  30. package/dist/commands/deploy-output.js +21 -12
  31. package/dist/commands/deploy-output.js.map +1 -1
  32. package/dist/commands/deploy-preflight.d.ts +35 -0
  33. package/dist/commands/deploy-preflight.d.ts.map +1 -0
  34. package/dist/commands/deploy-preflight.js +74 -0
  35. package/dist/commands/deploy-preflight.js.map +1 -0
  36. package/dist/commands/deploy-resume.d.ts +23 -0
  37. package/dist/commands/deploy-resume.d.ts.map +1 -0
  38. package/dist/commands/deploy-resume.js +79 -0
  39. package/dist/commands/deploy-resume.js.map +1 -0
  40. package/dist/commands/design.d.ts +7 -0
  41. package/dist/commands/design.d.ts.map +1 -0
  42. package/dist/commands/design.js +95 -0
  43. package/dist/commands/design.js.map +1 -0
  44. package/dist/commands/devtools.d.ts.map +1 -1
  45. package/dist/commands/devtools.js +5 -1
  46. package/dist/commands/devtools.js.map +1 -1
  47. package/dist/deploy.d.ts +2 -0
  48. package/dist/deploy.d.ts.map +1 -1
  49. package/dist/deploy.js +3 -0
  50. package/dist/deploy.js.map +1 -1
  51. package/dist/dev.d.ts +2 -0
  52. package/dist/dev.d.ts.map +1 -1
  53. package/dist/dev.js +8 -2
  54. package/dist/dev.js.map +1 -1
  55. package/dist/devtools-design-brief.d.ts +10 -0
  56. package/dist/devtools-design-brief.d.ts.map +1 -0
  57. package/dist/devtools-design-brief.js +121 -0
  58. package/dist/devtools-design-brief.js.map +1 -0
  59. package/dist/devtools-design-contract.d.ts +74 -0
  60. package/dist/devtools-design-contract.d.ts.map +1 -0
  61. package/dist/devtools-design-contract.js +306 -0
  62. package/dist/devtools-design-contract.js.map +1 -0
  63. package/dist/devtools-design-element.d.ts +6 -0
  64. package/dist/devtools-design-element.d.ts.map +1 -0
  65. package/dist/devtools-design-element.js +233 -0
  66. package/dist/devtools-design-element.js.map +1 -0
  67. package/dist/devtools-design-preview.d.ts +6 -0
  68. package/dist/devtools-design-preview.d.ts.map +1 -0
  69. package/dist/devtools-design-preview.js +438 -0
  70. package/dist/devtools-design-preview.js.map +1 -0
  71. package/dist/devtools-design-routes.d.ts +14 -0
  72. package/dist/devtools-design-routes.d.ts.map +1 -0
  73. package/dist/devtools-design-routes.js +197 -0
  74. package/dist/devtools-design-routes.js.map +1 -0
  75. package/dist/devtools-design-store.d.ts +16 -0
  76. package/dist/devtools-design-store.d.ts.map +1 -0
  77. package/dist/devtools-design-store.js +209 -0
  78. package/dist/devtools-design-store.js.map +1 -0
  79. package/dist/devtools-design-styles.d.ts +3 -0
  80. package/dist/devtools-design-styles.d.ts.map +1 -0
  81. package/dist/devtools-design-styles.js +509 -0
  82. package/dist/devtools-design-styles.js.map +1 -0
  83. package/dist/devtools-design.d.ts +1 -3
  84. package/dist/devtools-design.d.ts.map +1 -1
  85. package/dist/devtools-design.js +449 -56
  86. package/dist/devtools-design.js.map +1 -1
  87. package/dist/devtools-harness.d.ts.map +1 -1
  88. package/dist/devtools-harness.js +13 -10
  89. package/dist/devtools-harness.js.map +1 -1
  90. package/dist/devtools-preview.d.ts +3 -0
  91. package/dist/devtools-preview.d.ts.map +1 -1
  92. package/dist/devtools-preview.js +3 -0
  93. package/dist/devtools-preview.js.map +1 -1
  94. package/dist/devtools-responsive-styles.d.ts.map +1 -1
  95. package/dist/devtools-responsive-styles.js +15 -0
  96. package/dist/devtools-responsive-styles.js.map +1 -1
  97. package/dist/devtools-styles.js +1 -1
  98. package/dist/devtools-styles.js.map +1 -1
  99. package/dist/fire.d.ts +2 -2
  100. package/dist/fire.d.ts.map +1 -1
  101. package/dist/fire.js +6 -6
  102. package/dist/fire.js.map +1 -1
  103. package/dist/first-run.d.ts.map +1 -1
  104. package/dist/first-run.js +39 -33
  105. package/dist/first-run.js.map +1 -1
  106. package/dist/local-config.d.ts +2 -1
  107. package/dist/local-config.d.ts.map +1 -1
  108. package/dist/local-config.js +29 -2
  109. package/dist/local-config.js.map +1 -1
  110. package/dist/plugin-mode/build-readiness-server.d.ts.map +1 -1
  111. package/dist/plugin-mode/build-readiness-server.js +54 -4
  112. package/dist/plugin-mode/build-readiness-server.js.map +1 -1
  113. package/dist/preview-session.d.ts +5 -0
  114. package/dist/preview-session.d.ts.map +1 -1
  115. package/dist/preview-session.js +1 -0
  116. package/dist/preview-session.js.map +1 -1
  117. package/dist/project-dotenv.d.ts +15 -0
  118. package/dist/project-dotenv.d.ts.map +1 -0
  119. package/dist/project-dotenv.js +135 -0
  120. package/dist/project-dotenv.js.map +1 -0
  121. package/dist/project-scaffold-templates.d.ts.map +1 -1
  122. package/dist/project-scaffold-templates.js +6 -3
  123. package/dist/project-scaffold-templates.js.map +1 -1
  124. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.d.ts.map +1 -1
  125. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js +4 -0
  126. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js.map +1 -1
  127. package/node_modules/@noodle-borg/agent-kit/dist/curated/hook-notes.js +1 -1
  128. package/node_modules/@noodle-borg/agent-kit/dist/curated/hook-notes.js.map +1 -1
  129. package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js +5 -5
  130. package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js.map +1 -1
  131. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.d.ts.map +1 -1
  132. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js +1 -0
  133. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js.map +1 -1
  134. package/node_modules/@noodle-borg/agent-kit/dist/index.js +1 -1
  135. package/node_modules/@noodle-borg/agent-kit/dist/index.js.map +1 -1
  136. package/node_modules/@noodle-borg/agent-kit/dist/plugin-bundle.js +2 -2
  137. package/node_modules/@noodle-borg/agent-kit/dist/plugin-bundle.js.map +1 -1
  138. package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js +1 -1
  139. package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js.map +1 -1
  140. package/node_modules/@noodle-borg/agent-kit/dist/skill-connect-refs.js +1 -1
  141. package/node_modules/@noodle-borg/agent-kit/dist/skill-connect-refs.js.map +1 -1
  142. package/node_modules/@noodle-borg/agent-kit/dist/skill-design-refs.d.ts.map +1 -1
  143. package/node_modules/@noodle-borg/agent-kit/dist/skill-design-refs.js +12 -0
  144. package/node_modules/@noodle-borg/agent-kit/dist/skill-design-refs.js.map +1 -1
  145. package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.d.ts.map +1 -1
  146. package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.js +3 -6
  147. package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.js.map +1 -1
  148. package/node_modules/@noodle-borg/agent-kit/dist/skill-operations-refs.js +2 -2
  149. package/node_modules/@noodle-borg/agent-kit/dist/skill-operations-refs.js.map +1 -1
  150. package/node_modules/@noodle-borg/agent-kit/dist/skill-router.js +1 -1
  151. package/node_modules/@noodle-borg/agent-kit/dist/skill-router.js.map +1 -1
  152. package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
  153. package/node_modules/@noodle-borg/auth/dist/verify.d.ts +3 -1
  154. package/node_modules/@noodle-borg/auth/dist/verify.d.ts.map +1 -1
  155. package/node_modules/@noodle-borg/auth/dist/verify.js +16 -4
  156. package/node_modules/@noodle-borg/auth/dist/verify.js.map +1 -1
  157. package/node_modules/@noodle-borg/compiler/dist/widget-ui-style.d.ts +0 -2
  158. package/node_modules/@noodle-borg/compiler/dist/widget-ui-style.d.ts.map +1 -1
  159. package/node_modules/@noodle-borg/compiler/dist/widget-ui-style.js +0 -76
  160. package/node_modules/@noodle-borg/compiler/dist/widget-ui-style.js.map +1 -1
  161. package/node_modules/@noodle-borg/connector-http/dist/http-connector.d.ts +2 -8
  162. package/node_modules/@noodle-borg/connector-http/dist/http-connector.d.ts.map +1 -1
  163. package/node_modules/@noodle-borg/connector-http/dist/http-connector.js +8 -237
  164. package/node_modules/@noodle-borg/connector-http/dist/http-connector.js.map +1 -1
  165. package/node_modules/@noodle-borg/connector-http/dist/http-response.d.ts +26 -0
  166. package/node_modules/@noodle-borg/connector-http/dist/http-response.d.ts.map +1 -0
  167. package/node_modules/@noodle-borg/connector-http/dist/http-response.js +249 -0
  168. package/node_modules/@noodle-borg/connector-http/dist/http-response.js.map +1 -0
  169. package/node_modules/@noodle-borg/service/dist/assistant-bindings.js +4 -4
  170. package/node_modules/@noodle-borg/service/dist/assistant-bindings.js.map +1 -1
  171. package/node_modules/@noodle-borg/service/dist/customer-verifier.d.ts.map +1 -1
  172. package/node_modules/@noodle-borg/service/dist/customer-verifier.js +8 -5
  173. package/node_modules/@noodle-borg/service/dist/customer-verifier.js.map +1 -1
  174. package/node_modules/@noodle-borg/service/dist/index.d.ts +1 -1
  175. package/node_modules/@noodle-borg/service/dist/index.d.ts.map +1 -1
  176. package/node_modules/@noodle-borg/service/dist/index.js.map +1 -1
  177. package/node_modules/@noodle-borg/service/dist/registry-deploy-transaction.d.ts +41 -0
  178. package/node_modules/@noodle-borg/service/dist/registry-deploy-transaction.d.ts.map +1 -0
  179. package/node_modules/@noodle-borg/service/dist/registry-deploy-transaction.js +93 -0
  180. package/node_modules/@noodle-borg/service/dist/registry-deploy-transaction.js.map +1 -0
  181. package/node_modules/@noodle-borg/service/dist/registry-targets.d.ts +2 -0
  182. package/node_modules/@noodle-borg/service/dist/registry-targets.d.ts.map +1 -1
  183. package/node_modules/@noodle-borg/service/dist/registry-targets.js +10 -4
  184. package/node_modules/@noodle-borg/service/dist/registry-targets.js.map +1 -1
  185. package/node_modules/@noodle-borg/service/dist/registry-types.d.ts +17 -0
  186. package/node_modules/@noodle-borg/service/dist/registry-types.d.ts.map +1 -1
  187. package/node_modules/@noodle-borg/service/dist/registry.d.ts +4 -2
  188. package/node_modules/@noodle-borg/service/dist/registry.d.ts.map +1 -1
  189. package/node_modules/@noodle-borg/service/dist/registry.js +79 -75
  190. package/node_modules/@noodle-borg/service/dist/registry.js.map +1 -1
  191. package/node_modules/@noodle-borg/service/dist/routes/control-plane.d.ts.map +1 -1
  192. package/node_modules/@noodle-borg/service/dist/routes/control-plane.js +16 -0
  193. package/node_modules/@noodle-borg/service/dist/routes/control-plane.js.map +1 -1
  194. package/node_modules/@noodle-borg/service/dist/routes/deploy-dispatch.d.ts +21 -0
  195. package/node_modules/@noodle-borg/service/dist/routes/deploy-dispatch.d.ts.map +1 -0
  196. package/node_modules/@noodle-borg/service/dist/routes/deploy-dispatch.js +25 -0
  197. package/node_modules/@noodle-borg/service/dist/routes/deploy-dispatch.js.map +1 -0
  198. package/node_modules/@noodle-borg/service/dist/routes/deploy-idempotency.d.ts +16 -0
  199. package/node_modules/@noodle-borg/service/dist/routes/deploy-idempotency.d.ts.map +1 -0
  200. package/node_modules/@noodle-borg/service/dist/routes/deploy-idempotency.js +20 -0
  201. package/node_modules/@noodle-borg/service/dist/routes/deploy-idempotency.js.map +1 -0
  202. package/node_modules/@noodle-borg/service/dist/routes/deploy-preflight.d.ts +12 -0
  203. package/node_modules/@noodle-borg/service/dist/routes/deploy-preflight.d.ts.map +1 -0
  204. package/node_modules/@noodle-borg/service/dist/routes/deploy-preflight.js +132 -0
  205. package/node_modules/@noodle-borg/service/dist/routes/deploy-preflight.js.map +1 -0
  206. package/node_modules/@noodle-borg/service/dist/routes/paths.d.ts +2 -1
  207. package/node_modules/@noodle-borg/service/dist/routes/paths.d.ts.map +1 -1
  208. package/node_modules/@noodle-borg/service/dist/routes/paths.js +3 -0
  209. package/node_modules/@noodle-borg/service/dist/routes/paths.js.map +1 -1
  210. package/node_modules/@noodle-borg/service/dist/service.d.ts.map +1 -1
  211. package/node_modules/@noodle-borg/service/dist/service.js +15 -12
  212. package/node_modules/@noodle-borg/service/dist/service.js.map +1 -1
  213. package/node_modules/@noodle-borg/wire-contracts/dist/index.d.ts +82 -0
  214. package/node_modules/@noodle-borg/wire-contracts/dist/index.d.ts.map +1 -1
  215. package/node_modules/@noodle-borg/wire-contracts/dist/index.js +37 -0
  216. package/node_modules/@noodle-borg/wire-contracts/dist/index.js.map +1 -1
  217. package/package.json +1 -1
  218. package/node_modules/@noodle-borg/compiler/dist/widget-tailwind-tokens.d.ts +0 -2
  219. package/node_modules/@noodle-borg/compiler/dist/widget-tailwind-tokens.d.ts.map +0 -1
  220. package/node_modules/@noodle-borg/compiler/dist/widget-tailwind-tokens.js +0 -22
  221. package/node_modules/@noodle-borg/compiler/dist/widget-tailwind-tokens.js.map +0 -1
@@ -0,0 +1,315 @@
1
+ import { ServiceRequestError, serviceJson } from '../control-plane.js';
2
+ import { printRecovery } from '../diagnostics.js';
3
+ import { ProjectDotenvError } from '../project-dotenv.js';
4
+ import { promptToImportMissingDotenvConfig } from './deploy-dotenv-import.js';
5
+ import { managedConfigSetCommand, promptAndSetMissingConfig } from './deploy-output.js';
6
+ import { DeployPreflightInputError, preflightHostedDeploy, } from './deploy-preflight.js';
7
+ import { clearDeployResume, loadOrCreateDeployResume } from './deploy-resume.js';
8
+ import { EXIT, printJsonFailure } from './output.js';
9
+ /**
10
+ * Run the read-only half of the canonical hosted deploy. It returns only after the complete
11
+ * configuration checklist is ready and a retry key has been durably recorded.
12
+ */
13
+ export async function prepareCanonicalDeploy(input, dependencies = {}) {
14
+ const resumeCommand = deployResumeCommand({
15
+ manifestPath: input.manifestPath,
16
+ ...(input.connectorsPath !== undefined ? { connectorsPath: input.connectorsPath } : {}),
17
+ serviceUrl: input.serviceUrl,
18
+ target: input.target,
19
+ accessMode: input.accessMode ?? 'owner-only',
20
+ serverVersion: input.serverVersion,
21
+ ...(input.saveLegacy !== undefined ? { saveLegacy: input.saveLegacy } : {}),
22
+ ...(input.noSave !== undefined ? { noSave: input.noSave } : {}),
23
+ noPrompt: input.noPrompt,
24
+ json: input.json,
25
+ });
26
+ if (input.token === undefined) {
27
+ return { ok: true, resumeCommand, verificationRequired: false };
28
+ }
29
+ const token = input.token;
30
+ try {
31
+ const runPreflight = () => preflightHostedDeploy({
32
+ manifestPath: input.manifestPath,
33
+ ...(input.connectorsPath !== undefined ? { connectorsPath: input.connectorsPath } : {}),
34
+ serviceUrl: input.serviceUrl,
35
+ token,
36
+ target: input.target,
37
+ ...(input.accessMode !== undefined ? { accessMode: input.accessMode } : {}),
38
+ ...(input.orgMembershipSources !== undefined
39
+ ? { orgMembershipSources: input.orgMembershipSources }
40
+ : {}),
41
+ serverVersion: input.serverVersion,
42
+ });
43
+ let preflight = await runPreflight();
44
+ if (!preflight.response.ready &&
45
+ configOnly(preflight.response.errors) &&
46
+ !input.noPrompt &&
47
+ input.interactive &&
48
+ !input.json) {
49
+ const dotenvImport = await promptToImportMissingDotenvConfig({
50
+ projectRoot: input.projectRoot,
51
+ missingSecrets: preflight.response.config.missingSecrets,
52
+ missingVariables: preflight.response.config.missingVariables,
53
+ serviceUrl: input.serviceUrl,
54
+ token,
55
+ target: input.target,
56
+ }, dependencies.confirmDotenvImport !== undefined
57
+ ? { confirmImport: dependencies.confirmDotenvImport }
58
+ : {});
59
+ if (dotenvImport.imported)
60
+ preflight = await runPreflight();
61
+ if (!preflight.response.ready && configOnly(preflight.response.errors)) {
62
+ const promptMissingConfig = dependencies.promptMissingConfig ?? promptAndSetMissingConfig;
63
+ await promptMissingConfig({
64
+ missingSecrets: preflight.response.config.missingSecrets,
65
+ missingVariables: preflight.response.config.missingVariables,
66
+ serviceUrl: input.serviceUrl,
67
+ token,
68
+ target: input.target,
69
+ });
70
+ preflight = await runPreflight();
71
+ }
72
+ }
73
+ if (!sameTarget(preflight.response.target, input.target)) {
74
+ throw new Error('deploy preflight returned a different target');
75
+ }
76
+ if (!preflight.response.ready) {
77
+ return preflightBlocked(preflight.response, input.target, resumeCommand, input.json, input.silent === true);
78
+ }
79
+ const resume = loadOrCreateDeployResume({
80
+ projectRoot: input.projectRoot,
81
+ fingerprint: preflight.fingerprint,
82
+ target: input.target,
83
+ serverVersion: input.serverVersion,
84
+ });
85
+ return {
86
+ ok: true,
87
+ idempotencyKey: resume.idempotencyKey,
88
+ resumeCommand,
89
+ verificationRequired: true,
90
+ };
91
+ }
92
+ catch (error) {
93
+ return preflightError(error, input.serviceUrl, input.target, input.json, input.silent === true);
94
+ }
95
+ }
96
+ export async function verifyHostedDeploy(input) {
97
+ if (!input.required || input.token === undefined)
98
+ return { required: false, ok: true };
99
+ try {
100
+ const raw = await serviceJson(`${input.serviceUrl}/v1/orgs/${encodeURIComponent(input.target.org)}` +
101
+ `/apps/${encodeURIComponent(input.target.app)}` +
102
+ `/envs/${encodeURIComponent(input.target.env)}/smoke`, input.token, { method: 'POST' });
103
+ if (!isSmokeResponse(raw)) {
104
+ return {
105
+ required: true,
106
+ ok: false,
107
+ message: 'hosted readiness response did not match the expected contract',
108
+ };
109
+ }
110
+ return {
111
+ required: true,
112
+ ok: raw.ok,
113
+ checks: raw.checks,
114
+ ...(!raw.ok ? { message: failedCheckMessage(raw.checks) } : {}),
115
+ };
116
+ }
117
+ catch (error) {
118
+ return {
119
+ required: true,
120
+ ok: false,
121
+ message: error instanceof Error ? error.message : String(error),
122
+ };
123
+ }
124
+ }
125
+ export function completeDeployResume(projectRoot, idempotencyKey) {
126
+ if (idempotencyKey !== undefined)
127
+ clearDeployResume(projectRoot, idempotencyKey);
128
+ }
129
+ export function deployResumeCommand(input) {
130
+ const args = [
131
+ 'noodle',
132
+ 'deploy',
133
+ input.manifestPath,
134
+ ...(input.connectorsPath !== undefined ? ['--connectors', input.connectorsPath] : []),
135
+ '--service',
136
+ input.serviceUrl,
137
+ '--org',
138
+ input.target.org,
139
+ '--app',
140
+ input.target.app,
141
+ '--env',
142
+ input.target.env,
143
+ '--version',
144
+ input.serverVersion,
145
+ '--access',
146
+ input.accessMode,
147
+ ...(input.noSave ? ['--no-save'] : input.saveLegacy ? ['--save'] : []),
148
+ ...(input.noPrompt ? ['--no-prompt'] : []),
149
+ ...(input.json ? ['--json'] : []),
150
+ ];
151
+ return args.map(shellQuoteCommandArgument).join(' ');
152
+ }
153
+ function shellQuoteCommandArgument(value) {
154
+ if (/^[a-zA-Z0-9_./:@%+,=-]+$/.test(value))
155
+ return value;
156
+ return `'${value.replaceAll("'", "'\"'\"'")}'`;
157
+ }
158
+ function preflightBlocked(response, target, resumeCommand, json, silent) {
159
+ const missingSecrets = response.config.missingSecrets;
160
+ const missingVariables = response.config.missingVariables;
161
+ const configMissing = missingSecrets.length > 0 || missingVariables.length > 0;
162
+ if (!configMissing || !configOnly(response.errors)) {
163
+ const cause = response.errors.map((error) => error.message).join('; ') || 'preflight failed';
164
+ const error = {
165
+ code: 'deploy_preflight_failed',
166
+ message: cause,
167
+ fix: 'Fix every reported deploy input error before retrying.',
168
+ next: 'noodle validate',
169
+ errors: response.errors,
170
+ detail: { target, resume: resumeCommand },
171
+ };
172
+ if (!silent) {
173
+ if (json)
174
+ printJsonFailure(error);
175
+ else {
176
+ printRecovery({
177
+ command: 'deploy',
178
+ cause,
179
+ fix: error.fix,
180
+ next: error.next,
181
+ });
182
+ }
183
+ }
184
+ return { ok: false, exitCode: EXIT.FAILURE, error };
185
+ }
186
+ const actions = [
187
+ ...missingVariables.map((name) => managedConfigSetCommand('variable', name, target)),
188
+ ...missingSecrets.map((name) => managedConfigSetCommand('secret', name, target)),
189
+ ];
190
+ const onlySecrets = missingSecrets.length > 0 && missingVariables.length === 0;
191
+ const onlyVariables = missingVariables.length > 0 && missingSecrets.length === 0;
192
+ const code = onlySecrets
193
+ ? 'missing_secret'
194
+ : onlyVariables
195
+ ? 'missing_variable'
196
+ : 'missing_config';
197
+ const message = onlySecrets
198
+ ? `Missing required managed secret(s): ${missingSecrets.join(', ')}`
199
+ : onlyVariables
200
+ ? `Missing required managed variable(s): ${missingVariables.join(', ')}`
201
+ : 'Required hosted variables and secrets are missing.';
202
+ const fix = onlySecrets
203
+ ? 'Set every missing secret at the environment scope, then rerun the same deploy command.'
204
+ : onlyVariables
205
+ ? 'Set every missing variable at the environment scope, then rerun the same deploy command.'
206
+ : 'Set every listed variable and secret, then rerun the same deploy command.';
207
+ const error = {
208
+ code,
209
+ message,
210
+ fix,
211
+ next: actions[0] ?? resumeCommand,
212
+ errors: response.errors,
213
+ detail: {
214
+ target,
215
+ missingSecrets,
216
+ missingVariables,
217
+ actions,
218
+ resume: resumeCommand,
219
+ },
220
+ };
221
+ if (!silent) {
222
+ if (json)
223
+ printJsonFailure(error);
224
+ else {
225
+ printRecovery({
226
+ command: 'deploy',
227
+ cause: message,
228
+ fix,
229
+ next: actions[0] ?? resumeCommand,
230
+ });
231
+ for (const action of actions.slice(1))
232
+ console.error(`Also set: ${action}`);
233
+ console.error(`Resume: ${resumeCommand}`);
234
+ }
235
+ }
236
+ return { ok: false, exitCode: EXIT.FAILURE, error };
237
+ }
238
+ function preflightError(error, serviceUrl, target, json, silent) {
239
+ const serviceError = error instanceof ServiceRequestError ? error : undefined;
240
+ const status = serviceError?.status ?? 0;
241
+ const message = error instanceof DeployPreflightInputError
242
+ ? error.message
243
+ : error instanceof Error
244
+ ? error.message
245
+ : String(error);
246
+ const dotenvFailure = error instanceof ProjectDotenvError;
247
+ const localInputFailure = serviceError === undefined;
248
+ const next = status === 401
249
+ ? `noodle login --service ${serviceUrl}`
250
+ : status === 403 || status === 404
251
+ ? 'noodle whoami'
252
+ : dotenvFailure
253
+ ? 'noodle deploy'
254
+ : localInputFailure
255
+ ? 'noodle validate'
256
+ : `noodle doctor --service ${serviceUrl}`;
257
+ const exitCode = status === 401 || status === 403
258
+ ? EXIT.AUTH
259
+ : status === 0 && serviceError !== undefined
260
+ ? EXIT.UNREACHABLE
261
+ : EXIT.FAILURE;
262
+ const fix = status === 401 || status === 403
263
+ ? 'Sign in and confirm access to the selected organization.'
264
+ : dotenvFailure
265
+ ? 'Fix the reported .env syntax line, then retry the deploy.'
266
+ : 'Repair the reported preflight problem before deploying.';
267
+ const failure = {
268
+ code: serviceError?.code ??
269
+ (status === 401 || status === 403 ? 'deploy_failed' : 'deploy_preflight_failed'),
270
+ message,
271
+ fix,
272
+ next,
273
+ ...(serviceError?.requestId !== undefined ? { requestId: serviceError.requestId } : {}),
274
+ ...(error instanceof DeployPreflightInputError ? { errors: error.errors } : {}),
275
+ detail: { status, target },
276
+ };
277
+ if (!silent) {
278
+ if (json)
279
+ printJsonFailure(failure, exitCode);
280
+ else {
281
+ printRecovery({
282
+ command: 'deploy',
283
+ cause: status === 403 || status === 404
284
+ ? `${message} (target: ${target.org}/${target.app}/${target.env})`
285
+ : message,
286
+ fix,
287
+ next,
288
+ });
289
+ }
290
+ }
291
+ return { ok: false, exitCode, error: failure };
292
+ }
293
+ function configOnly(errors) {
294
+ return (errors.length > 0 &&
295
+ errors.every((error) => error.code === 'missing_secret' || error.code === 'missing_variable'));
296
+ }
297
+ function sameTarget(left, right) {
298
+ return left.org === right.org && left.app === right.app && left.env === right.env;
299
+ }
300
+ function isSmokeResponse(value) {
301
+ if (typeof value !== 'object' || value === null)
302
+ return false;
303
+ const candidate = value;
304
+ return (typeof candidate.ok === 'boolean' &&
305
+ Array.isArray(candidate.checks) &&
306
+ candidate.checks.every((check) => typeof check === 'object' &&
307
+ check !== null &&
308
+ ['PASS', 'WARN', 'FAIL'].includes(String(check.level)) &&
309
+ typeof check.name === 'string' &&
310
+ typeof check.message === 'string'));
311
+ }
312
+ function failedCheckMessage(checks) {
313
+ return checks.find((check) => check.level === 'FAIL')?.message ?? 'hosted readiness check failed';
314
+ }
315
+ //# sourceMappingURL=deploy-first-flow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy-first-flow.js","sourceRoot":"","sources":["../../src/commands/deploy-first-flow.ts"],"names":[],"mappings":"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"}
@@ -1,36 +1,10 @@
1
1
  import type { ConfigLocation } from '../config.js';
2
- import { type DeployFireController } from '../fire.js';
3
2
  import type { PluginMode } from '../plugin-mode/profile.js';
4
3
  export { productionCapacityRecovery } from './billing-admission-output.js';
4
+ export { instrumentFireFetch, shouldRunDeployFire } from './deploy-fire-progress.js';
5
5
  export { maybePrintGithubHint } from './deploy-github-hint.js';
6
6
  export { assetFailureRecovery, formatAssetSummary } from './deploy-output.js';
7
7
  export { isLocalServiceUrl } from './deploy-target.js';
8
- /**
9
- * Whether this `deploy` run is eligible for the animated fire band in place of the plain spinner:
10
- * a genuinely interactive, colored TTY on *both* streams (dismissal needs stdin), not `--json`,
11
- * and not explicitly opted out by setting `NOODLE_NO_FIRE` (any value — presence-based, like
12
- * `NO_COLOR`). `CI`/`NO_COLOR` are checked on the INJECTED env (presence, mirroring
13
- * `detectColorMode`'s semantics) so the gate honors its seam rather than only the global env.
14
- */
15
- export declare function shouldRunDeployFire(opts: {
16
- readonly json: boolean;
17
- readonly stdout: {
18
- readonly isTTY?: boolean;
19
- };
20
- readonly stdin: {
21
- readonly isTTY?: boolean;
22
- };
23
- readonly env: NodeJS.ProcessEnv;
24
- }): boolean;
25
- /**
26
- * Wrap a `fetch` so the fire band's progress reflects real network milestones instead of a timer:
27
- * the first call proves compile finished (nothing else could have made a request yet); the assets
28
- * preflight response proves assets are checked; each asset upload nudges progress toward the upload
29
- * milestone; and starting the final `/deploy` POST proves uploads are done (deploy.ts always awaits
30
- * them first) and marks entry into the indeterminate activate wait — which a deploy that packaged no
31
- * assets also reaches directly, correctly collapsing the assets/upload stages to instant.
32
- */
33
- export declare function instrumentFireFetch(base: typeof fetch, fire: DeployFireController): typeof fetch;
34
8
  export declare function runDeploy(rest: readonly string[], env: NodeJS.ProcessEnv, home: ConfigLocation, pluginMode?: PluginMode): Promise<number>;
35
9
  export declare function runOpen(rest: readonly string[], env: NodeJS.ProcessEnv, home: ConfigLocation): Promise<number>;
36
10
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"deploy-ops.d.ts","sourceRoot":"","sources":["../../src/commands/deploy-ops.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAKnD,OAAO,EAAE,KAAK,oBAAoB,EAA6B,MAAM,YAAY,CAAC;AAElF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAqC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAIvD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC9C,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC7C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;CACjC,GAAG,OAAO,CAUV;AAQD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,KAAK,EAAE,IAAI,EAAE,oBAAoB,GAAG,OAAO,KAAK,CA+BhG;AAED,wBAAsB,SAAS,CAC7B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,IAAI,EAAE,cAAc,EACpB,UAAU,CAAC,EAAE,UAAU,GACtB,OAAO,CAAC,MAAM,CAAC,CA4hBjB;AAED,wBAAsB,OAAO,CAC3B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,MAAM,CAAC,CAwBjB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO,CAEjE;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,SAAS,EAAE,OAAO,GACjB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,GAC3C,MAAM,GAAG,SAAS,CAQpB;AAUD,6FAA6F;AAC7F,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAQ9D;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE,CAiB5D;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC3E,MAAM,CAKR"}
1
+ {"version":3,"file":"deploy-ops.d.ts","sourceRoot":"","sources":["../../src/commands/deploy-ops.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAMnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AA0C5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,wBAAsB,SAAS,CAC7B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,IAAI,EAAE,cAAc,EACpB,UAAU,CAAC,EAAE,UAAU,GACtB,OAAO,CAAC,MAAM,CAAC,CAmkBjB;AAED,wBAAsB,OAAO,CAC3B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,MAAM,CAAC,CAwBjB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO,CAEjE;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,SAAS,EAAE,OAAO,GACjB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,GAC3C,MAAM,GAAG,SAAS,CAQpB;AAUD,6FAA6F;AAC7F,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAQ9D;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE,CAiB5D;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC3E,MAAM,CAKR"}