@noodleseed/one 0.38.0 → 0.39.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 (175) 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/billing-apply-ops.d.ts +2 -0
  5. package/dist/commands/billing-apply-ops.d.ts.map +1 -0
  6. package/dist/commands/billing-apply-ops.js +224 -0
  7. package/dist/commands/billing-apply-ops.js.map +1 -0
  8. package/dist/commands/billing-migration-files.d.ts +13 -0
  9. package/dist/commands/billing-migration-files.d.ts.map +1 -0
  10. package/dist/commands/billing-migration-files.js +84 -0
  11. package/dist/commands/billing-migration-files.js.map +1 -0
  12. package/dist/commands/billing-ops.d.ts +3 -0
  13. package/dist/commands/billing-ops.d.ts.map +1 -0
  14. package/dist/commands/billing-ops.js +121 -0
  15. package/dist/commands/billing-ops.js.map +1 -0
  16. package/dist/commands/catalog-data-resources.d.ts.map +1 -1
  17. package/dist/commands/catalog-data-resources.js +19 -0
  18. package/dist/commands/catalog-data-resources.js.map +1 -1
  19. package/dist/index.d.ts +1 -1
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/widget-scaffold-template.d.ts.map +1 -1
  23. package/dist/widget-scaffold-template.js +9 -0
  24. package/dist/widget-scaffold-template.js.map +1 -1
  25. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.d.ts.map +1 -1
  26. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js +4 -0
  27. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js.map +1 -1
  28. package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js +3 -3
  29. package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js.map +1 -1
  30. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.d.ts.map +1 -1
  31. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js +1 -0
  32. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js.map +1 -1
  33. package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.d.ts.map +1 -1
  34. package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.js +28 -0
  35. package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.js.map +1 -1
  36. package/node_modules/@noodle-borg/agent-kit/dist/skill-operations-refs.d.ts.map +1 -1
  37. package/node_modules/@noodle-borg/agent-kit/dist/skill-operations-refs.js +5 -0
  38. package/node_modules/@noodle-borg/agent-kit/dist/skill-operations-refs.js.map +1 -1
  39. package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
  40. package/node_modules/@noodle-borg/authoring/dist/assistant.d.ts +44 -0
  41. package/node_modules/@noodle-borg/authoring/dist/assistant.d.ts.map +1 -1
  42. package/node_modules/@noodle-borg/authoring/dist/assistant.js.map +1 -1
  43. package/node_modules/@noodle-borg/authoring/dist/index.d.ts +1 -1
  44. package/node_modules/@noodle-borg/authoring/dist/index.d.ts.map +1 -1
  45. package/node_modules/@noodle-borg/authoring/dist/index.js.map +1 -1
  46. package/node_modules/@noodle-borg/authoring/dist/server.js +6 -1
  47. package/node_modules/@noodle-borg/authoring/dist/server.js.map +1 -1
  48. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts +83 -0
  49. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts.map +1 -1
  50. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js +82 -14
  51. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js.map +1 -1
  52. package/node_modules/@noodle-borg/module-audit/dist/index.d.ts +2 -1
  53. package/node_modules/@noodle-borg/module-audit/dist/index.d.ts.map +1 -1
  54. package/node_modules/@noodle-borg/module-audit/dist/index.js +1 -1
  55. package/node_modules/@noodle-borg/module-audit/dist/index.js.map +1 -1
  56. package/node_modules/@noodle-borg/module-audit/dist/postgres-audit.d.ts +12 -3
  57. package/node_modules/@noodle-borg/module-audit/dist/postgres-audit.d.ts.map +1 -1
  58. package/node_modules/@noodle-borg/module-audit/dist/postgres-audit.js +30 -20
  59. package/node_modules/@noodle-borg/module-audit/dist/postgres-audit.js.map +1 -1
  60. package/node_modules/@noodle-borg/service/dist/billing/in-memory-serialization.d.ts +6 -0
  61. package/node_modules/@noodle-borg/service/dist/billing/in-memory-serialization.d.ts.map +1 -0
  62. package/node_modules/@noodle-borg/service/dist/billing/in-memory-serialization.js +23 -0
  63. package/node_modules/@noodle-borg/service/dist/billing/in-memory-serialization.js.map +1 -0
  64. package/node_modules/@noodle-borg/service/dist/billing/in-memory.d.ts +32 -0
  65. package/node_modules/@noodle-borg/service/dist/billing/in-memory.d.ts.map +1 -0
  66. package/node_modules/@noodle-borg/service/dist/billing/in-memory.js +185 -0
  67. package/node_modules/@noodle-borg/service/dist/billing/in-memory.js.map +1 -0
  68. package/node_modules/@noodle-borg/service/dist/billing/migration-apply.d.ts +98 -0
  69. package/node_modules/@noodle-borg/service/dist/billing/migration-apply.d.ts.map +1 -0
  70. package/node_modules/@noodle-borg/service/dist/billing/migration-apply.js +194 -0
  71. package/node_modules/@noodle-borg/service/dist/billing/migration-apply.js.map +1 -0
  72. package/node_modules/@noodle-borg/service/dist/billing/migration-contract.d.ts +79 -0
  73. package/node_modules/@noodle-borg/service/dist/billing/migration-contract.d.ts.map +1 -0
  74. package/node_modules/@noodle-borg/service/dist/billing/migration-contract.js +86 -0
  75. package/node_modules/@noodle-borg/service/dist/billing/migration-contract.js.map +1 -0
  76. package/node_modules/@noodle-borg/service/dist/billing/migration.d.ts +13 -0
  77. package/node_modules/@noodle-borg/service/dist/billing/migration.d.ts.map +1 -0
  78. package/node_modules/@noodle-borg/service/dist/billing/migration.js +246 -0
  79. package/node_modules/@noodle-borg/service/dist/billing/migration.js.map +1 -0
  80. package/node_modules/@noodle-borg/service/dist/billing/model.d.ts +85 -0
  81. package/node_modules/@noodle-borg/service/dist/billing/model.d.ts.map +1 -0
  82. package/node_modules/@noodle-borg/service/dist/billing/model.js +134 -0
  83. package/node_modules/@noodle-borg/service/dist/billing/model.js.map +1 -0
  84. package/node_modules/@noodle-borg/service/dist/billing/postgres-migration-support.d.ts +36 -0
  85. package/node_modules/@noodle-borg/service/dist/billing/postgres-migration-support.d.ts.map +1 -0
  86. package/node_modules/@noodle-borg/service/dist/billing/postgres-migration-support.js +122 -0
  87. package/node_modules/@noodle-borg/service/dist/billing/postgres-migration-support.js.map +1 -0
  88. package/node_modules/@noodle-borg/service/dist/billing/postgres-migration.d.ts +9 -0
  89. package/node_modules/@noodle-borg/service/dist/billing/postgres-migration.d.ts.map +1 -0
  90. package/node_modules/@noodle-borg/service/dist/billing/postgres-migration.js +265 -0
  91. package/node_modules/@noodle-borg/service/dist/billing/postgres-migration.js.map +1 -0
  92. package/node_modules/@noodle-borg/service/dist/billing/postgres-records.d.ts +66 -0
  93. package/node_modules/@noodle-borg/service/dist/billing/postgres-records.d.ts.map +1 -0
  94. package/node_modules/@noodle-borg/service/dist/billing/postgres-records.js +163 -0
  95. package/node_modules/@noodle-borg/service/dist/billing/postgres-records.js.map +1 -0
  96. package/node_modules/@noodle-borg/service/dist/billing/postgres-schema.d.ts +4 -0
  97. package/node_modules/@noodle-borg/service/dist/billing/postgres-schema.d.ts.map +1 -0
  98. package/node_modules/@noodle-borg/service/dist/billing/postgres-schema.js +211 -0
  99. package/node_modules/@noodle-borg/service/dist/billing/postgres-schema.js.map +1 -0
  100. package/node_modules/@noodle-borg/service/dist/billing/postgres.d.ts +33 -0
  101. package/node_modules/@noodle-borg/service/dist/billing/postgres.d.ts.map +1 -0
  102. package/node_modules/@noodle-borg/service/dist/billing/postgres.js +285 -0
  103. package/node_modules/@noodle-borg/service/dist/billing/postgres.js.map +1 -0
  104. package/node_modules/@noodle-borg/service/dist/billing/store.d.ts +27 -0
  105. package/node_modules/@noodle-borg/service/dist/billing/store.d.ts.map +1 -0
  106. package/node_modules/@noodle-borg/service/dist/billing/store.js +2 -0
  107. package/node_modules/@noodle-borg/service/dist/billing/store.js.map +1 -0
  108. package/node_modules/@noodle-borg/service/dist/index.d.ts +4 -0
  109. package/node_modules/@noodle-borg/service/dist/index.d.ts.map +1 -1
  110. package/node_modules/@noodle-borg/service/dist/index.js +3 -0
  111. package/node_modules/@noodle-borg/service/dist/index.js.map +1 -1
  112. package/node_modules/@noodle-borg/service/dist/modules/host.js +3 -0
  113. package/node_modules/@noodle-borg/service/dist/modules/host.js.map +1 -1
  114. package/node_modules/@noodle-borg/service/dist/options.d.ts +17 -5
  115. package/node_modules/@noodle-borg/service/dist/options.d.ts.map +1 -1
  116. package/node_modules/@noodle-borg/service/dist/routes/billing.d.ts +23 -0
  117. package/node_modules/@noodle-borg/service/dist/routes/billing.d.ts.map +1 -0
  118. package/node_modules/@noodle-borg/service/dist/routes/billing.js +165 -0
  119. package/node_modules/@noodle-borg/service/dist/routes/billing.js.map +1 -0
  120. package/node_modules/@noodle-borg/service/dist/routes/commercial-dispatch.d.ts +28 -0
  121. package/node_modules/@noodle-borg/service/dist/routes/commercial-dispatch.d.ts.map +1 -0
  122. package/node_modules/@noodle-borg/service/dist/routes/commercial-dispatch.js +77 -0
  123. package/node_modules/@noodle-borg/service/dist/routes/commercial-dispatch.js.map +1 -0
  124. package/node_modules/@noodle-borg/service/dist/routes/control-plane.d.ts.map +1 -1
  125. package/node_modules/@noodle-borg/service/dist/routes/control-plane.js +17 -0
  126. package/node_modules/@noodle-borg/service/dist/routes/control-plane.js.map +1 -1
  127. package/node_modules/@noodle-borg/service/dist/serve.d.ts.map +1 -1
  128. package/node_modules/@noodle-borg/service/dist/serve.js +28 -6
  129. package/node_modules/@noodle-borg/service/dist/serve.js.map +1 -1
  130. package/node_modules/@noodle-borg/service/dist/service.d.ts.map +1 -1
  131. package/node_modules/@noodle-borg/service/dist/service.js +23 -30
  132. package/node_modules/@noodle-borg/service/dist/service.js.map +1 -1
  133. package/node_modules/@noodle-borg/service/dist/store/audit.d.ts +8 -0
  134. package/node_modules/@noodle-borg/service/dist/store/audit.d.ts.map +1 -1
  135. package/node_modules/@noodle-borg/service/dist/store/audit.js +15 -0
  136. package/node_modules/@noodle-borg/service/dist/store/audit.js.map +1 -1
  137. package/node_modules/@noodle-borg/service/dist/store/control-plane.d.ts +2 -1
  138. package/node_modules/@noodle-borg/service/dist/store/control-plane.d.ts.map +1 -1
  139. package/node_modules/@noodle-borg/service/dist/store/control-plane.js +81 -48
  140. package/node_modules/@noodle-borg/service/dist/store/control-plane.js.map +1 -1
  141. package/node_modules/@noodle-borg/service/dist/store/postgres-apps.d.ts +4 -2
  142. package/node_modules/@noodle-borg/service/dist/store/postgres-apps.d.ts.map +1 -1
  143. package/node_modules/@noodle-borg/service/dist/store/postgres-apps.js.map +1 -1
  144. package/node_modules/@noodle-borg/service/dist/store/postgres-billing.d.ts +11 -0
  145. package/node_modules/@noodle-borg/service/dist/store/postgres-billing.d.ts.map +1 -0
  146. package/node_modules/@noodle-borg/service/dist/store/postgres-billing.js +17 -0
  147. package/node_modules/@noodle-borg/service/dist/store/postgres-billing.js.map +1 -0
  148. package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.d.ts +1 -1
  149. package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.d.ts.map +1 -1
  150. package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.js +18 -6
  151. package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.js.map +1 -1
  152. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.d.ts.map +1 -1
  153. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js +4 -0
  154. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js.map +1 -1
  155. package/node_modules/@noodle-borg/service/dist/store/postgres-signup.d.ts +14 -1
  156. package/node_modules/@noodle-borg/service/dist/store/postgres-signup.d.ts.map +1 -1
  157. package/node_modules/@noodle-borg/service/dist/store/postgres-signup.js +28 -0
  158. package/node_modules/@noodle-borg/service/dist/store/postgres-signup.js.map +1 -1
  159. package/node_modules/@noodle-borg/service/dist/store/postgres.d.ts +2 -2
  160. package/node_modules/@noodle-borg/service/dist/store/postgres.d.ts.map +1 -1
  161. package/node_modules/@noodle-borg/service/dist/store/postgres.js +9 -5
  162. package/node_modules/@noodle-borg/service/dist/store/postgres.js.map +1 -1
  163. package/node_modules/@noodle-borg/service/dist/store/validate.d.ts +4 -0
  164. package/node_modules/@noodle-borg/service/dist/store/validate.d.ts.map +1 -1
  165. package/node_modules/@noodle-borg/service/dist/store/validate.js +13 -0
  166. package/node_modules/@noodle-borg/service/dist/store/validate.js.map +1 -1
  167. package/node_modules/@noodle-borg/service/dist/store.d.ts +5 -2
  168. package/node_modules/@noodle-borg/service/dist/store.d.ts.map +1 -1
  169. package/node_modules/@noodle-borg/service/dist/store.js +1 -1
  170. package/node_modules/@noodle-borg/service/dist/store.js.map +1 -1
  171. package/node_modules/@noodle-borg/wire-contracts/dist/assistant.d.ts +3 -2
  172. package/node_modules/@noodle-borg/wire-contracts/dist/assistant.d.ts.map +1 -1
  173. package/node_modules/@noodle-borg/wire-contracts/dist/assistant.js +3 -2
  174. package/node_modules/@noodle-borg/wire-contracts/dist/assistant.js.map +1 -1
  175. package/package.json +1 -1
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AA+DA,wBAAsB,GAAG,CACvB,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,IAAI,GAAE,MAAkB,GACvB,OAAO,CAAC,MAAM,CAAC,CAYjB"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAgEA,wBAAsB,GAAG,CACvB,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,IAAI,GAAE,MAAkB,GACvB,OAAO,CAAC,MAAM,CAAC,CAYjB"}
package/dist/cli.js CHANGED
@@ -22,6 +22,7 @@ import { runAssistant } from './commands/assistant-ops.js';
22
22
  import { runAudit } from './commands/audit-ops.js';
23
23
  import { runAuth } from './commands/auth-ops.js';
24
24
  import { runDev, runSmoke as runLocalSmoke, runLocalTest, runValidate, } from './commands/author-loop.js';
25
+ import { runBilling } from './commands/billing-ops.js';
25
26
  import { handleUnknownCommand, interceptCatalogHelp } from './commands/catalog-dispatch.js';
26
27
  import { runCommands } from './commands/commands-ops.js';
27
28
  import { runConfigValues } from './commands/config-values.js';
@@ -124,6 +125,8 @@ async function runCommand(command, rest, env, home) {
124
125
  return runDevtools(rest);
125
126
  case 'audit':
126
127
  return runAudit(rest, env, home);
128
+ case 'billing':
129
+ return runBilling(rest, env, home);
127
130
  case 'logs':
128
131
  return runLogs(rest, env, home);
129
132
  case 'metrics':
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function runBillingMigrationApply(rest: readonly string[], env: NodeJS.ProcessEnv, home: string): Promise<number>;
2
+ //# sourceMappingURL=billing-apply-ops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing-apply-ops.d.ts","sourceRoot":"","sources":["../../src/commands/billing-apply-ops.ts"],"names":[],"mappings":"AA+BA,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC,CA8GjB"}
@@ -0,0 +1,224 @@
1
+ import { resolveControlPlaneToken, ServiceRequestError, serviceJson } from '../control-plane.js';
2
+ import { confirm, isInteractive } from '../prompts.js';
3
+ import { approvedPreviewFileFailure, mappingFileFailure, planEvidenceFileFailure, readApprovedPreview, readMappingRequest, readPlanEvidence, } from './billing-migration-files.js';
4
+ import { EXIT, printJsonOk } from './output.js';
5
+ import { printCliFailure, serviceFailure } from './shared.js';
6
+ export async function runBillingMigrationApply(rest, env, home) {
7
+ const json = rest.includes('--json');
8
+ const parsed = parseBillingApplyArgs(rest);
9
+ if (!parsed.ok)
10
+ return printCliFailure('billing migration apply', parsed.error, json);
11
+ const args = parsed.args;
12
+ if (!args.yes && (args.json || !isInteractive())) {
13
+ return printCliFailure('billing migration apply', confirmationRequired(args), args.json);
14
+ }
15
+ let mapping;
16
+ try {
17
+ mapping = await readMappingRequest(args.file);
18
+ }
19
+ catch (error) {
20
+ return printCliFailure('billing migration apply', mappingFileFailure(args.file, error), args.json);
21
+ }
22
+ let approved;
23
+ try {
24
+ approved = await readApprovedPreview(args.previewFile);
25
+ }
26
+ catch (error) {
27
+ return printCliFailure('billing migration apply', approvedPreviewFileFailure(args.previewFile, error), args.json);
28
+ }
29
+ if (!approved.preview.ready) {
30
+ return printCliFailure('billing migration apply', blockedApprovedPreview(args.previewFile, approved.preview.blockers), args.json);
31
+ }
32
+ let legacyPlanEvidence;
33
+ try {
34
+ legacyPlanEvidence = await readPlanEvidence(args.planEvidenceFile);
35
+ }
36
+ catch (error) {
37
+ return printCliFailure('billing migration apply', planEvidenceFileFailure(args.planEvidenceFile, error), args.json);
38
+ }
39
+ if (!args.yes) {
40
+ const organizations = approved.preview.organizations.length + approved.preview.linkedOrganizations.length;
41
+ const confirmed = await confirm(`Prepare shadow billing data for ${organizations} organizations? This writes billing accounts and links, but does not start enforcement, usage metering, or the 90-day grant clock.`, { initial: false });
42
+ if (!confirmed) {
43
+ console.error('billing migration apply: cancelled');
44
+ return EXIT.USAGE;
45
+ }
46
+ }
47
+ const resolved = await resolveControlPlaneToken({
48
+ serviceFlag: args.service,
49
+ authFlag: args.authToken,
50
+ env,
51
+ home,
52
+ });
53
+ if (resolved.token === undefined) {
54
+ return printCliFailure('billing migration apply', missingLogin(), args.json);
55
+ }
56
+ if (normalizeService(approved.service) !== resolved.serviceUrl ||
57
+ normalizeService(legacyPlanEvidence.service) !== resolved.serviceUrl) {
58
+ return printCliFailure('billing migration apply', evidenceServiceMismatch(resolved.serviceUrl), args.json);
59
+ }
60
+ const request = {
61
+ schemaVersion: 1,
62
+ mode: args.mode,
63
+ mappings: mapping.mappings ?? [],
64
+ expectedPreviewChecksum: approved.preview.previewChecksum,
65
+ legacyPlanEvidence,
66
+ idempotencyKey: args.idempotencyKey,
67
+ reason: args.reason,
68
+ confirmed: true,
69
+ };
70
+ try {
71
+ const body = await serviceJson(`${resolved.serviceUrl}/v1/billing-accounts/migrations/legacy/apply`, resolved.token, {
72
+ method: 'POST',
73
+ headers: { 'content-type': 'application/json' },
74
+ body: JSON.stringify(request),
75
+ });
76
+ if (args.json)
77
+ printJsonOk({ service: resolved.serviceUrl, migration: body.data });
78
+ else
79
+ printHumanApply(body.data);
80
+ return EXIT.OK;
81
+ }
82
+ catch (error) {
83
+ return printCliFailure('billing migration apply', applyServiceFailure(error, args), args.json);
84
+ }
85
+ }
86
+ function printHumanApply(result) {
87
+ console.log(`Billing migration: ${result.replayed ? 'ALREADY PREPARED' : 'PREPARED'}`);
88
+ console.log(`Organizations: ${result.counts.organizations}`);
89
+ console.log(`Billing accounts: ${result.counts.accountsCreated} created, ${result.counts.accountsReused} reused`);
90
+ console.log(`Organization links: ${result.counts.linksCreated} created, ${result.counts.linksPreserved} preserved`);
91
+ console.log(`Migration ID: ${result.migrationId}`);
92
+ if (result.replayed) {
93
+ console.log('The existing shadow preparation was returned; no duplicate writes were made.');
94
+ }
95
+ else {
96
+ console.log('Billing data was written. Enforcement remains unchanged.');
97
+ }
98
+ console.log('Usage metering has not started. No 90-day grant clock has started.');
99
+ }
100
+ function parseBillingApplyArgs(rest) {
101
+ const values = new Map();
102
+ let json = false;
103
+ let yes = false;
104
+ const valueFlags = new Set([
105
+ '--file',
106
+ '--preview-file',
107
+ '--plan-evidence',
108
+ '--mode',
109
+ '--reason',
110
+ '--idempotency-key',
111
+ '--service',
112
+ '--auth-token',
113
+ ]);
114
+ for (let index = 0; index < rest.length; index++) {
115
+ const arg = rest[index];
116
+ if (arg === '--json')
117
+ json = true;
118
+ else if (arg === '--yes')
119
+ yes = true;
120
+ else if (arg !== undefined && valueFlags.has(arg)) {
121
+ const value = rest[index + 1];
122
+ if (value === undefined || value.length === 0 || value.startsWith('--')) {
123
+ return { ok: false, error: applyUsage(`a value for ${arg} is required`) };
124
+ }
125
+ if (values.has(arg))
126
+ return { ok: false, error: applyUsage(`${arg} may be supplied once`) };
127
+ values.set(arg, value);
128
+ index++;
129
+ }
130
+ else {
131
+ return { ok: false, error: applyUsage(`unknown argument: ${arg ?? ''}`) };
132
+ }
133
+ }
134
+ for (const flag of [
135
+ '--file',
136
+ '--preview-file',
137
+ '--plan-evidence',
138
+ '--mode',
139
+ '--reason',
140
+ '--idempotency-key',
141
+ ]) {
142
+ if (!values.has(flag))
143
+ return { ok: false, error: applyUsage(`${flag} is required`) };
144
+ }
145
+ if (values.get('--mode') !== 'shadow') {
146
+ return { ok: false, error: applyUsage('--mode must be shadow') };
147
+ }
148
+ return {
149
+ ok: true,
150
+ args: {
151
+ file: values.get('--file'),
152
+ previewFile: values.get('--preview-file'),
153
+ planEvidenceFile: values.get('--plan-evidence'),
154
+ mode: 'shadow',
155
+ reason: values.get('--reason'),
156
+ idempotencyKey: values.get('--idempotency-key'),
157
+ ...(values.has('--service') ? { service: values.get('--service') } : {}),
158
+ ...(values.has('--auth-token') ? { authToken: values.get('--auth-token') } : {}),
159
+ json,
160
+ yes,
161
+ },
162
+ };
163
+ }
164
+ function applyUsage(message) {
165
+ return {
166
+ code: 'usage',
167
+ message,
168
+ cause: 'Shadow preparation requires the reviewed mapping, preview, and plan-evidence files.',
169
+ fix: 'Supply every required flag and use only --mode shadow.',
170
+ next: 'noodle billing migration apply --file <mapping.json> --preview-file <ready-preview.json> --plan-evidence <plan-evidence.json> --mode shadow --reason <text> --idempotency-key <key> --yes',
171
+ exitCode: EXIT.USAGE,
172
+ };
173
+ }
174
+ function confirmationRequired(args) {
175
+ return {
176
+ code: 'confirmation_required',
177
+ message: 'billing migration shadow apply requires confirmation',
178
+ cause: 'The operation writes billing accounts and organization links in shadow mode.',
179
+ fix: 'Review the private evidence, then re-run with --yes.',
180
+ next: `noodle billing migration apply --file ${args.file} --preview-file ${args.previewFile} --plan-evidence ${args.planEvidenceFile} --mode shadow --reason <text> --idempotency-key <key> --yes`,
181
+ exitCode: EXIT.USAGE,
182
+ };
183
+ }
184
+ function blockedApprovedPreview(file, blockers) {
185
+ const codes = blockers.map((blocker) => `${blocker.org}:${blocker.code}`).join(', ');
186
+ return {
187
+ code: 'approved_preview_blocked',
188
+ message: 'The approved billing migration preview is not READY.',
189
+ cause: codes.length > 0 ? codes : 'The saved preview is blocked.',
190
+ fix: 'Resolve every blocker and capture a new READY preview.',
191
+ next: `noodle billing migration preview --file <mapping.json> --json > ${file}`,
192
+ exitCode: EXIT.FAILURE,
193
+ };
194
+ }
195
+ function evidenceServiceMismatch(service) {
196
+ return {
197
+ code: 'evidence_service_mismatch',
198
+ message: 'The private migration evidence targets a different service.',
199
+ cause: `The approved preview and plan evidence must both name ${service}.`,
200
+ fix: 'Re-capture both evidence files from the exact service being migrated.',
201
+ next: `noodle billing migration preview --service ${service} --file <mapping.json> --json`,
202
+ exitCode: EXIT.FAILURE,
203
+ };
204
+ }
205
+ function applyServiceFailure(error, args) {
206
+ const failure = serviceFailure('billing migration apply', error, `noodle billing migration apply --file ${args.file} --preview-file ${args.previewFile} --plan-evidence ${args.planEvidenceFile} --mode shadow --reason <text> --idempotency-key ${args.idempotencyKey} --yes`);
207
+ if (!(error instanceof ServiceRequestError) || error.code === undefined)
208
+ return failure;
209
+ return { ...failure, code: error.code, message: error.message, cause: error.message };
210
+ }
211
+ function missingLogin() {
212
+ return {
213
+ code: 'auth_required',
214
+ message: 'A control-plane login token is required.',
215
+ cause: 'No control-plane login token is available.',
216
+ fix: 'Sign in or pass an explicit auth token.',
217
+ next: 'noodle login',
218
+ exitCode: EXIT.AUTH,
219
+ };
220
+ }
221
+ function normalizeService(value) {
222
+ return value.replace(/\/+$/, '');
223
+ }
224
+ //# sourceMappingURL=billing-apply-ops.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing-apply-ops.js","sourceRoot":"","sources":["../../src/commands/billing-apply-ops.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { type LegacyBillingMigrationPreview, type LegacyBillingMigrationRequest, type LegacyBillingPlanEvidence } from '@noodle-borg/service';
2
+ import type { CliFailure } from './shared.js';
3
+ export interface ApprovedLegacyBillingMigrationPreview {
4
+ readonly service: string;
5
+ readonly preview: LegacyBillingMigrationPreview;
6
+ }
7
+ export declare function readMappingRequest(file: string | undefined): Promise<LegacyBillingMigrationRequest>;
8
+ export declare function readApprovedPreview(file: string): Promise<ApprovedLegacyBillingMigrationPreview>;
9
+ export declare function readPlanEvidence(file: string): Promise<LegacyBillingPlanEvidence>;
10
+ export declare function mappingFileFailure(file: string | undefined, error: unknown): CliFailure;
11
+ export declare function approvedPreviewFileFailure(file: string, error: unknown): CliFailure;
12
+ export declare function planEvidenceFileFailure(file: string, error: unknown): CliFailure;
13
+ //# sourceMappingURL=billing-migration-files.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing-migration-files.d.ts","sourceRoot":"","sources":["../../src/commands/billing-migration-files.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,6BAA6B,EAClC,KAAK,6BAA6B,EAClC,KAAK,yBAAyB,EAI/B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,qCAAqC;IACpD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,6BAA6B,CAAC;CACjD;AAED,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,GAAG,SAAS,GACvB,OAAO,CAAC,6BAA6B,CAAC,CAKxC;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,qCAAqC,CAAC,CAyBhD;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAEvF;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,UAAU,CAUvF;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,UAAU,CASnF;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,UAAU,CAShF"}
@@ -0,0 +1,84 @@
1
+ import { readFile } from 'node:fs/promises';
2
+ import { legacyBillingMigrationPreviewChecksum, parseLegacyBillingMigrationPlanEvidence, parseLegacyBillingMigrationRequest, } from '@noodle-borg/service';
3
+ import { errorMessage } from '../diagnostics.js';
4
+ import { EXIT } from './output.js';
5
+ export async function readMappingRequest(file) {
6
+ if (file === undefined) {
7
+ return parseLegacyBillingMigrationRequest({ schemaVersion: 1, mappings: [] });
8
+ }
9
+ return parseLegacyBillingMigrationRequest(await readJsonFile(file, 'mapping'));
10
+ }
11
+ export async function readApprovedPreview(file) {
12
+ const value = await readJsonFile(file, 'approved preview');
13
+ if (!isRecord(value) || value.ok !== true || !isRecord(value.data)) {
14
+ throw new Error('expected the JSON envelope written by billing migration preview --json');
15
+ }
16
+ const { service, preview } = value.data;
17
+ if (typeof service !== 'string' ||
18
+ !isRecord(preview) ||
19
+ preview.schemaVersion !== 1 ||
20
+ typeof preview.ready !== 'boolean' ||
21
+ !Array.isArray(preview.organizations) ||
22
+ !Array.isArray(preview.linkedOrganizations) ||
23
+ !Array.isArray(preview.fundingSets) ||
24
+ !Array.isArray(preview.blockers) ||
25
+ !isRecord(preview.grantPolicy) ||
26
+ !isSha256(preview.previewChecksum)) {
27
+ throw new Error('approved preview file does not match the billing migration preview schema');
28
+ }
29
+ const approvedPreview = preview;
30
+ if (legacyBillingMigrationPreviewChecksum(approvedPreview) !== approvedPreview.previewChecksum) {
31
+ throw new Error('approved preview checksum does not match its contents');
32
+ }
33
+ return { service, preview: approvedPreview };
34
+ }
35
+ export async function readPlanEvidence(file) {
36
+ return parseLegacyBillingMigrationPlanEvidence(await readJsonFile(file, 'plan evidence'));
37
+ }
38
+ export function mappingFileFailure(file, error) {
39
+ const path = file ?? '<mapping.json>';
40
+ return {
41
+ code: 'invalid_mapping_file',
42
+ message: `Cannot use billing migration mapping file ${path}.`,
43
+ cause: errorMessage(error),
44
+ fix: 'Ensure the file exists, is readable JSON, and matches the billing migration schema.',
45
+ next: `noodle billing migration preview --file ${path}`,
46
+ exitCode: EXIT.FAILURE,
47
+ };
48
+ }
49
+ export function approvedPreviewFileFailure(file, error) {
50
+ return {
51
+ code: 'invalid_preview_file',
52
+ message: `Cannot use approved billing migration preview file ${file}.`,
53
+ cause: errorMessage(error),
54
+ fix: 'Save a READY JSON preview from the same service and do not edit it.',
55
+ next: `noodle billing migration preview --file <mapping.json> --json > ${file}`,
56
+ exitCode: EXIT.FAILURE,
57
+ };
58
+ }
59
+ export function planEvidenceFileFailure(file, error) {
60
+ return {
61
+ code: 'invalid_plan_evidence_file',
62
+ message: `Cannot use legacy billing plan evidence file ${file}.`,
63
+ cause: errorMessage(error),
64
+ fix: 'Ensure the file is readable JSON and contains a complete default-Free reconciliation.',
65
+ next: 'Re-capture and review the authoritative legacy plan projections.',
66
+ exitCode: EXIT.FAILURE,
67
+ };
68
+ }
69
+ async function readJsonFile(file, label) {
70
+ const text = await readFile(file, 'utf8');
71
+ try {
72
+ return JSON.parse(text);
73
+ }
74
+ catch (error) {
75
+ throw new Error(`${label} file is not valid JSON: ${errorMessage(error)}`);
76
+ }
77
+ }
78
+ function isRecord(value) {
79
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
80
+ }
81
+ function isSha256(value) {
82
+ return typeof value === 'string' && /^[a-f0-9]{64}$/.test(value);
83
+ }
84
+ //# sourceMappingURL=billing-migration-files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing-migration-files.js","sourceRoot":"","sources":["../../src/commands/billing-migration-files.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /** Operator-only billing migration commands. */
2
+ export declare function runBilling(rest: readonly string[], env: NodeJS.ProcessEnv, home: string): Promise<number>;
3
+ //# sourceMappingURL=billing-ops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing-ops.d.ts","sourceRoot":"","sources":["../../src/commands/billing-ops.ts"],"names":[],"mappings":"AAiBA,gDAAgD;AAChD,wBAAsB,UAAU,CAC9B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC,CAwDjB"}
@@ -0,0 +1,121 @@
1
+ import { resolveControlPlaneToken, serviceJson } from '../control-plane.js';
2
+ import { runBillingMigrationApply } from './billing-apply-ops.js';
3
+ import { mappingFileFailure, readMappingRequest } from './billing-migration-files.js';
4
+ import { EXIT, printJsonOk } from './output.js';
5
+ import { printCliFailure, serviceFailure } from './shared.js';
6
+ /** Operator-only billing migration commands. */
7
+ export async function runBilling(rest, env, home) {
8
+ const json = rest.includes('--json');
9
+ if (rest[0] === 'migration' && rest[1] === 'apply') {
10
+ return runBillingMigrationApply(rest.slice(2), env, home);
11
+ }
12
+ if (rest[0] !== 'migration' || rest[1] !== 'preview') {
13
+ return printCliFailure('billing', billingUsage(), json);
14
+ }
15
+ const parsed = parseBillingArgs(rest.slice(2));
16
+ if (!parsed.ok)
17
+ return printCliFailure('billing migration preview', parsed.error, json);
18
+ const args = parsed.args;
19
+ const resolved = await resolveControlPlaneToken({
20
+ serviceFlag: args.service,
21
+ authFlag: args.authToken,
22
+ env,
23
+ home,
24
+ });
25
+ if (resolved.token === undefined) {
26
+ return printCliFailure('billing migration preview', missingLogin(), args.json);
27
+ }
28
+ let request;
29
+ try {
30
+ request = await readMappingRequest(args.file);
31
+ }
32
+ catch (error) {
33
+ return printCliFailure('billing migration preview', mappingFileFailure(args.file, error), args.json);
34
+ }
35
+ try {
36
+ const body = await serviceJson(`${resolved.serviceUrl}/v1/billing-accounts/migrations/legacy/preview`, resolved.token, {
37
+ method: 'POST',
38
+ headers: { 'content-type': 'application/json' },
39
+ body: JSON.stringify(request),
40
+ });
41
+ if (args.json)
42
+ printJsonOk({ service: resolved.serviceUrl, preview: body.data });
43
+ else
44
+ printHumanPreview(body.data, args.file);
45
+ return body.data.ready ? EXIT.OK : EXIT.FAILURE;
46
+ }
47
+ catch (error) {
48
+ return printCliFailure('billing migration preview', serviceFailure('billing migration preview', error, 'noodle billing migration preview --file <mapping.json>'), args.json);
49
+ }
50
+ }
51
+ function printHumanPreview(preview, file) {
52
+ console.log(`Billing migration preview: ${preview.ready ? 'READY' : 'BLOCKED'}`);
53
+ console.log(`Organizations requiring mapping: ${preview.organizations.length}`);
54
+ console.log(`Already linked: ${preview.linkedOrganizations.length}`);
55
+ console.log(`Funding sets: ${preview.fundingSets.length}`);
56
+ console.log(`Legacy cohort grant policy: ${preview.grantPolicy.durationDays} days when the account footprint exceeds plan capacity`);
57
+ if (preview.blockers.length > 0) {
58
+ console.log('Blockers:');
59
+ for (const blocker of preview.blockers) {
60
+ console.log(` ${blocker.org} [${blocker.code}] ${blocker.message}`);
61
+ }
62
+ console.log(`Next: noodle billing migration preview --file ${file ?? '<mapping.json>'}`);
63
+ }
64
+ console.log('No changes were made.');
65
+ }
66
+ function parseBillingArgs(rest) {
67
+ let file;
68
+ let service;
69
+ let authToken;
70
+ let json = false;
71
+ for (let index = 0; index < rest.length; index++) {
72
+ const arg = rest[index];
73
+ if (arg === '--json')
74
+ json = true;
75
+ else if (arg === '--file' || arg === '--service' || arg === '--auth-token') {
76
+ const value = rest[index + 1];
77
+ if (value === undefined || value.length === 0 || value.startsWith('--')) {
78
+ return { ok: false, error: billingUsage('a flag value is missing') };
79
+ }
80
+ if (arg === '--file')
81
+ file = value;
82
+ else if (arg === '--service')
83
+ service = value;
84
+ else
85
+ authToken = value;
86
+ index++;
87
+ }
88
+ else
89
+ return { ok: false, error: billingUsage(`unknown argument: ${arg ?? ''}`) };
90
+ }
91
+ return {
92
+ ok: true,
93
+ args: {
94
+ ...(file !== undefined ? { file } : {}),
95
+ ...(service !== undefined ? { service } : {}),
96
+ ...(authToken !== undefined ? { authToken } : {}),
97
+ json,
98
+ },
99
+ };
100
+ }
101
+ function billingUsage(message = 'billing migration requires preview or apply') {
102
+ return {
103
+ code: 'usage',
104
+ message,
105
+ cause: 'The billing command or one of its arguments is invalid.',
106
+ fix: 'Run preview first; use apply only with reviewed private evidence.',
107
+ next: 'noodle billing migration preview [--file <mapping.json>] [--json]',
108
+ exitCode: EXIT.USAGE,
109
+ };
110
+ }
111
+ function missingLogin() {
112
+ return {
113
+ code: 'auth_required',
114
+ message: 'A control-plane login token is required.',
115
+ cause: 'No control-plane login token is available.',
116
+ fix: 'Sign in or pass an explicit auth token.',
117
+ next: 'noodle login',
118
+ exitCode: EXIT.AUTH,
119
+ };
120
+ }
121
+ //# sourceMappingURL=billing-ops.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing-ops.js","sourceRoot":"","sources":["../../src/commands/billing-ops.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"catalog-data-resources.d.ts","sourceRoot":"","sources":["../../src/commands/catalog-data-resources.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,WAAW,EAAY,MAAM,oBAAoB,CAAC;AA2BhE,eAAO,MAAM,iBAAiB,EAAE,SAAS,WAAW,EAumBnD,CAAC"}
1
+ {"version":3,"file":"catalog-data-resources.d.ts","sourceRoot":"","sources":["../../src/commands/catalog-data-resources.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,WAAW,EAAY,MAAM,oBAAoB,CAAC;AA2BhE,eAAO,MAAM,iBAAiB,EAAE,SAAS,WAAW,EA4nBnD,CAAC"}
@@ -21,6 +21,25 @@ const WATCH_FLAGS = [
21
21
  },
22
22
  ];
23
23
  export const CATALOG_RESOURCES = [
24
+ {
25
+ name: 'billing',
26
+ section: 'operate',
27
+ helpRank: 15,
28
+ summary: 'Super-admin preview and explicitly confirmed shadow preparation of the legacy billing-account migration.',
29
+ usage: 'migration preview [--file <mapping.json>] [--json]\nnoodle billing migration apply --file <mapping.json> --preview-file <ready-preview.json> --plan-evidence <plan-evidence.json> --mode shadow --reason <text> --idempotency-key <key> [--yes] [--json]',
30
+ flags: [
31
+ { name: 'file', type: 'string', value: '<mapping.json>' },
32
+ { name: 'preview-file', type: 'string', value: '<ready-preview.json>' },
33
+ { name: 'plan-evidence', type: 'string', value: '<plan-evidence.json>' },
34
+ { name: 'mode', type: 'string', value: 'shadow' },
35
+ { name: 'reason', type: 'string', value: '<text>' },
36
+ { name: 'idempotency-key', type: 'string', value: '<key>' },
37
+ { name: 'yes', type: 'boolean', summary: 'Confirm the shadow billing-data write.' },
38
+ { name: 'service', type: 'string', value: '<url>' },
39
+ { name: 'auth-token', type: 'string', value: '<t>' },
40
+ { name: 'json', type: 'boolean' },
41
+ ],
42
+ },
24
43
  {
25
44
  name: 'assistant',
26
45
  section: 'operate',