@aid-framework/cli 0.1.56 → 0.1.58

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.
@@ -39,13 +39,20 @@ export const CLI_DIAGNOSTIC_CODES = {
39
39
  // because they need different fixes; reporting both as "infra failed" would hide which.
40
40
  infraSubcommandRequired: 'cli/infra-subcommand-required',
41
41
  infraUnknownSubcommand: 'cli/infra-unknown-subcommand',
42
+ infraUnknownIac: 'cli/infra-unknown-iac',
42
43
  infraGeneratedOutdated: 'cli/infra-generated-outdated',
43
44
  infraNotGenerated: 'cli/infra-not-generated',
44
45
  infraEnvRootMissing: 'cli/infra-env-root-missing',
45
46
  infraTofuMissing: 'cli/infra-tofu-missing',
46
47
  infraTofuFailed: 'cli/infra-tofu-failed',
48
+ infraCdkMissing: 'cli/infra-cdk-missing',
49
+ infraCdkFailed: 'cli/infra-cdk-failed',
47
50
  infraDriftDetected: 'cli/infra-drift-detected',
48
51
  infraConfirmProdRequired: 'cli/infra-confirm-prod-required',
52
+ // `aid eject` answers a path it cannot place. Every other refusal comes from the SDK
53
+ // with a `generator/` code, so a reader can tell "you named the wrong tree" from
54
+ // "this file cannot be ejected".
55
+ ejectUnmanagedPath: 'cli/eject-unmanaged-path',
49
56
  };
50
57
  export function cliError(init) {
51
58
  return errorDiagnostic({
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAKzE,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,cAAc,EAAE,qBAAqB;IACrC,aAAa,EAAE,oBAAoB;IACnC,mBAAmB,EAAE,2BAA2B;IAChD,aAAa,EAAE,oBAAoB;IACnC,aAAa,EAAE,qBAAqB;IACpC,kBAAkB,EAAE,0BAA0B;IAC9C,iBAAiB,EAAE,wBAAwB;IAC3C,iBAAiB,EAAE,wBAAwB;IAC3C,iBAAiB,EAAE,yBAAyB;IAC5C,oBAAoB,EAAE,4BAA4B;IAClD,iBAAiB,EAAE,wBAAwB;IAC3C,YAAY,EAAE,mBAAmB;IACjC,YAAY,EAAE,mBAAmB;IACjC,kFAAkF;IAClF,8EAA8E;IAC9E,eAAe,EAAE,sBAAsB;IACvC,kBAAkB,EAAE,yBAAyB;IAC7C,eAAe,EAAE,sBAAsB;IACvC,YAAY,EAAE,mBAAmB;IACjC,eAAe,EAAE,sBAAsB;IACvC,aAAa,EAAE,oBAAoB;IACnC,sFAAsF;IACtF,wFAAwF;IACxF,uBAAuB,EAAE,+BAA+B;IACxD,sBAAsB,EAAE,8BAA8B;IACtD,sBAAsB,EAAE,8BAA8B;IACtD,iBAAiB,EAAE,yBAAyB;IAC5C,mBAAmB,EAAE,4BAA4B;IACjD,gBAAgB,EAAE,wBAAwB;IAC1C,eAAe,EAAE,uBAAuB;IACxC,kBAAkB,EAAE,0BAA0B;IAC9C,wBAAwB,EAAE,iCAAiC;CACnD,CAAC;AAWX,MAAM,UAAU,QAAQ,CAAC,IAAuB;IAC9C,OAAO,eAAe,CAAC;QACrB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;QACrB,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;KACxD,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAuB;IAChD,OAAO,iBAAiB,CAAC;QACvB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;QACrB,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;KACxD,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAKzE,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,cAAc,EAAE,qBAAqB;IACrC,aAAa,EAAE,oBAAoB;IACnC,mBAAmB,EAAE,2BAA2B;IAChD,aAAa,EAAE,oBAAoB;IACnC,aAAa,EAAE,qBAAqB;IACpC,kBAAkB,EAAE,0BAA0B;IAC9C,iBAAiB,EAAE,wBAAwB;IAC3C,iBAAiB,EAAE,wBAAwB;IAC3C,iBAAiB,EAAE,yBAAyB;IAC5C,oBAAoB,EAAE,4BAA4B;IAClD,iBAAiB,EAAE,wBAAwB;IAC3C,YAAY,EAAE,mBAAmB;IACjC,YAAY,EAAE,mBAAmB;IACjC,kFAAkF;IAClF,8EAA8E;IAC9E,eAAe,EAAE,sBAAsB;IACvC,kBAAkB,EAAE,yBAAyB;IAC7C,eAAe,EAAE,sBAAsB;IACvC,YAAY,EAAE,mBAAmB;IACjC,eAAe,EAAE,sBAAsB;IACvC,aAAa,EAAE,oBAAoB;IACnC,sFAAsF;IACtF,wFAAwF;IACxF,uBAAuB,EAAE,+BAA+B;IACxD,sBAAsB,EAAE,8BAA8B;IACtD,eAAe,EAAE,uBAAuB;IACxC,sBAAsB,EAAE,8BAA8B;IACtD,iBAAiB,EAAE,yBAAyB;IAC5C,mBAAmB,EAAE,4BAA4B;IACjD,gBAAgB,EAAE,wBAAwB;IAC1C,eAAe,EAAE,uBAAuB;IACxC,eAAe,EAAE,uBAAuB;IACxC,cAAc,EAAE,sBAAsB;IACtC,kBAAkB,EAAE,0BAA0B;IAC9C,wBAAwB,EAAE,iCAAiC;IAC3D,qFAAqF;IACrF,iFAAiF;IACjF,iCAAiC;IACjC,kBAAkB,EAAE,0BAA0B;CACtC,CAAC;AAWX,MAAM,UAAU,QAAQ,CAAC,IAAuB;IAC9C,OAAO,eAAe,CAAC;QACrB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;QACrB,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;KACxD,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAuB;IAChD,OAAO,iBAAiB,CAAC;QACvB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;QACrB,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;KACxD,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * How `aid infra` talks to AWS CDK.
3
+ *
4
+ * CDK is an alternative backend, not a second truth: both drivers read the one plan in
5
+ * `infra/generated`, and this file -- like `tofu.ts` -- knows only what to run and how to
6
+ * read a status. Every policy decision stays in the command, so a test can assert the
7
+ * argv without a CDK project installed.
8
+ *
9
+ * Deliberate limit, the same one `emit.ts` states for HCL: an env root here is a CDK app
10
+ * owned by the project (`infra/cdk/<env>`), because a stack is business code -- it names
11
+ * accounts, regions and construct choices. The emitter supplies the plan and a spelling
12
+ * of it; it does not guess constructs it could not `cdk synth`.
13
+ */
14
+ import type { CliContext, SpawnResult } from '../context.js';
15
+ import type { InfraAction } from './tofu.js';
16
+ export declare const DEFAULT_CDK = "cdk";
17
+ /** Set to point `aid infra` at a specific binary, such as a pinned CDK install. */
18
+ export declare const CDK_ENV = "AID_CDK";
19
+ /** The env root an action runs in: `infra/cdk/<env>`, where the app's `cdk.json` lives. */
20
+ export declare function cdkRoot(env: string): string;
21
+ export declare function cdkArgs(action: InfraAction): string[];
22
+ export declare function cdkBinary(context: CliContext): string;
23
+ /**
24
+ * Run one action inside the env root, because CDK resolves its app from the nearest
25
+ * `cdk.json`, not from the project the command was started in.
26
+ */
27
+ export declare function runCdk(context: CliContext, action: InfraAction, env: string, stdio: 'inherit' | 'pipe'): SpawnResult;
28
+ /** What an exit status means for CDK, kept beside the argv that produced it. */
29
+ export declare function classifyCdk(action: InfraAction, status: number | null): 'ok' | 'drift' | 'failed';
30
+ //# sourceMappingURL=cdk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cdk.d.ts","sourceRoot":"","sources":["../../src/infra/cdk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,eAAO,MAAM,WAAW,QAAQ,CAAC;AAEjC,mFAAmF;AACnF,eAAO,MAAM,OAAO,YAAY,CAAC;AAEjC,2FAA2F;AAC3F,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE3C;AAwBD,wBAAgB,OAAO,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,EAAE,CAErD;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAGrD;AAED;;;GAGG;AACH,wBAAgB,MAAM,CACpB,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GAAG,MAAM,GACxB,WAAW,CAMb;AAED,gFAAgF;AAChF,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,OAAO,GAAG,QAAQ,CAIjG"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * How `aid infra` talks to AWS CDK.
3
+ *
4
+ * CDK is an alternative backend, not a second truth: both drivers read the one plan in
5
+ * `infra/generated`, and this file -- like `tofu.ts` -- knows only what to run and how to
6
+ * read a status. Every policy decision stays in the command, so a test can assert the
7
+ * argv without a CDK project installed.
8
+ *
9
+ * Deliberate limit, the same one `emit.ts` states for HCL: an env root here is a CDK app
10
+ * owned by the project (`infra/cdk/<env>`), because a stack is business code -- it names
11
+ * accounts, regions and construct choices. The emitter supplies the plan and a spelling
12
+ * of it; it does not guess constructs it could not `cdk synth`.
13
+ */
14
+ import { join, posix } from 'node:path';
15
+ export const DEFAULT_CDK = 'cdk';
16
+ /** Set to point `aid infra` at a specific binary, such as a pinned CDK install. */
17
+ export const CDK_ENV = 'AID_CDK';
18
+ /** The env root an action runs in: `infra/cdk/<env>`, where the app's `cdk.json` lives. */
19
+ export function cdkRoot(env) {
20
+ return posix.join('infra', 'cdk', env);
21
+ }
22
+ /**
23
+ * The argv for one action, relative to the env root.
24
+ *
25
+ * `deploy` passes `--require-approval never`, the equivalent of OpenTofu's
26
+ * `-auto-approve`: that flag is consent to change state, and prod still needs
27
+ * `--confirm-prod` before it is reached. Without it a CI apply would block on a prompt.
28
+ *
29
+ * `plan` deliberately omits `--fail`: `cdk diff` then exits 0 whether or not the plan is
30
+ * non-empty, which is exactly what `tofu plan` does without `-detailed-exitcode`. An `ok`
31
+ * here means "the plan ran", never "nothing would change", and the command says so.
32
+ *
33
+ * `drift` is `diff --fail`, which exits 1 when the stack differs. CDK has no
34
+ * `-detailed-exitcode`, so its own failures also exit 1 and read as drift; that is the
35
+ * fail-closed direction -- the check can report "not clean" too often, never clean by
36
+ * accident.
37
+ */
38
+ const ARGV = {
39
+ plan: ['diff', '--no-color'],
40
+ apply: ['deploy', '--require-approval', 'never', '--no-color'],
41
+ drift: ['diff', '--fail', '--no-color'],
42
+ };
43
+ export function cdkArgs(action) {
44
+ return [...ARGV[action]];
45
+ }
46
+ export function cdkBinary(context) {
47
+ const configured = context.env[CDK_ENV];
48
+ return configured === undefined || configured === '' ? DEFAULT_CDK : configured;
49
+ }
50
+ /**
51
+ * Run one action inside the env root, because CDK resolves its app from the nearest
52
+ * `cdk.json`, not from the project the command was started in.
53
+ */
54
+ export function runCdk(context, action, env, stdio) {
55
+ return context.spawn(cdkBinary(context), cdkArgs(action), {
56
+ cwd: join(context.cwd, ...cdkRoot(env).split('/')),
57
+ stdio,
58
+ env: context.env,
59
+ });
60
+ }
61
+ /** What an exit status means for CDK, kept beside the argv that produced it. */
62
+ export function classifyCdk(action, status) {
63
+ if (status === 0)
64
+ return 'ok';
65
+ if (action === 'drift' && status === 1)
66
+ return 'drift';
67
+ return 'failed';
68
+ }
69
+ //# sourceMappingURL=cdk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cdk.js","sourceRoot":"","sources":["../../src/infra/cdk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAKxC,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC;AAEjC,mFAAmF;AACnF,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAC;AAEjC,2FAA2F;AAC3F,MAAM,UAAU,OAAO,CAAC,GAAW;IACjC,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,IAAI,GAAqD;IAC7D,IAAI,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC;IAC5B,KAAK,EAAE,CAAC,QAAQ,EAAE,oBAAoB,EAAE,OAAO,EAAE,YAAY,CAAC;IAC9D,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC;CACxC,CAAC;AAEF,MAAM,UAAU,OAAO,CAAC,MAAmB;IACzC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,OAAmB;IAC3C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACxC,OAAO,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;AAClF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM,CACpB,OAAmB,EACnB,MAAmB,EACnB,GAAW,EACX,KAAyB;IAEzB,OAAO,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;QACxD,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClD,KAAK;QACL,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC,CAAC;AACL,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,WAAW,CAAC,MAAmB,EAAE,MAAqB;IACpE,IAAI,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9B,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IACvD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -1,10 +1,11 @@
1
1
  /**
2
- * The OpenTofu wiring, derived from the deployment plan.
2
+ * The deployment wiring, derived from the deployment plan.
3
3
  *
4
- * This emits the *derived* layer only: the plan itself, the tfvars an env root consumes,
5
- * and a README that says who owns what. Provider HCL (the `modules/` and `envs/` trees)
6
- * is not emitted here, because it carries no information the IR has -- and because an
7
- * emitter that wrote AWS resources it could not `tofu validate` would be guessing.
4
+ * This emits the *derived* layer only: the plan itself, the two spellings an env root
5
+ * consumes (Terraform tfvars, CDK context), and a README that says who owns what.
6
+ * Provider code -- the OpenTofu `modules/` and `envs/` trees, and CDK stacks -- is not
7
+ * emitted here, because it carries no information the IR has, and because an emitter
8
+ * that wrote AWS resources it could not `tofu validate` or `cdk synth` would be guessing.
8
9
  *
9
10
  * The load-bearing rule is enforced by construction: nothing in this file accepts an
10
11
  * account id, a region, a CIDR, a domain, or a sizing number, so none can appear in the
@@ -13,6 +14,10 @@
13
14
  import type { DeployPlan } from '@aid-framework/ir';
14
15
  /** Where every derived infrastructure file lives, relative to the project root. */
15
16
  export declare const INFRA_GENERATED_DIR = "infra/generated";
17
+ /** The plan both backends read. */
18
+ export declare const INFRA_PLAN_PATH = "infra/generated/deploy.plan.json";
19
+ /** The same plan spelled for a CDK app, which is TypeScript and therefore camelCase. */
20
+ export declare const INFRA_CDK_CONTEXT_PATH = "infra/generated/deploy.cdk-context.json";
16
21
  /** The manifest recording what this emitter wrote, so a hand edit is never overwritten. */
17
22
  export declare const INFRA_MANIFEST_PATH = "infra/aid.infra.manifest.json";
18
23
  export interface InfraFile {
@@ -69,10 +74,67 @@ export interface DeployTfvars {
69
74
  source: string;
70
75
  }[];
71
76
  }
77
+ /**
78
+ * The plan spelled for a CDK app: the same facts as `DeployTfvars`, keyed the way a
79
+ * TypeScript project reads them. Two spellings of one document are worth it because a
80
+ * CDK app cannot read HCL and a module tree cannot read JSON; what must not differ is
81
+ * the facts, and `infra.test.ts` asserts exactly that.
82
+ *
83
+ * Deliberately absent, as in the tfvars: any value a person must choose.
84
+ */
85
+ export interface DeployContext {
86
+ readonly project: {
87
+ readonly name: string;
88
+ readonly namespace: string;
89
+ };
90
+ readonly services: Readonly<Record<string, {
91
+ readonly target: string;
92
+ readonly streaming: boolean;
93
+ readonly routes: readonly {
94
+ pipeline: string;
95
+ method: string;
96
+ path: string;
97
+ }[];
98
+ readonly env: readonly {
99
+ name: string;
100
+ secret: boolean;
101
+ from: string;
102
+ value?: string;
103
+ }[];
104
+ readonly secrets: readonly string[];
105
+ readonly providers: readonly string[];
106
+ readonly ingest: readonly string[];
107
+ }>>;
108
+ readonly stores: Readonly<Record<string, {
109
+ readonly kind: string;
110
+ readonly secretRef?: string;
111
+ readonly requiresExtension?: string;
112
+ readonly retrievers: readonly string[];
113
+ }>>;
114
+ readonly tasks: readonly {
115
+ id: string;
116
+ kind: string;
117
+ source: string;
118
+ schedule?: string;
119
+ }[];
120
+ readonly alarms: readonly {
121
+ id: string;
122
+ metric: string;
123
+ source: string;
124
+ }[];
125
+ }
72
126
  /**
73
127
  * Every derived file, in a stable order. Pure: the same plan always yields the same bytes,
74
128
  * so `aid infra gen --check` can compare content instead of trusting a timestamp.
75
129
  */
76
130
  export declare function emitInfra(plan: DeployPlan): InfraFile[];
77
131
  export declare function tfvars(plan: DeployPlan): DeployTfvars;
132
+ /**
133
+ * The CDK spelling of the same document.
134
+ *
135
+ * It renames `tfvars(plan)` rather than re-deriving from the plan: two loops over the
136
+ * same plan would drift, and the backend that drifted would be silently missing a fact.
137
+ * Renaming keeps one source and makes parity structural instead of asserted.
138
+ */
139
+ export declare function cdkContext(plan: DeployPlan): DeployContext;
78
140
  //# sourceMappingURL=emit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"emit.d.ts","sourceRoot":"","sources":["../../src/infra/emit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,mFAAmF;AACnF,eAAO,MAAM,mBAAmB,oBAAoB,CAAC;AAErD,2FAA2F;AAC3F,eAAO,MAAM,mBAAmB,kCAAkC,CAAC;AAEnE,MAAM,WAAW,SAAS;IACxB,4CAA4C;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACxE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CACzB,MAAM,CACJ,MAAM,EACN;QACE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;QAC5B,QAAQ,CAAC,MAAM,EAAE,SAAS;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAC/E,QAAQ,CAAC,GAAG,EAAE,SAAS;YACrB,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,OAAO,CAAC;YAChB,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,CAAC,EAAE,MAAM,CAAC;SAChB,EAAE,CAAC;QACJ,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;QACzC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;QACtC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;KACpC,CACF,CACF,CAAC;IACF,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAC5B,MAAM,CACJ,MAAM,EACN;QACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;QACrC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;KACxC,CACF,CACF,CAAC;IACF,QAAQ,CAAC,KAAK,EAAE,SAAS;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC3F,QAAQ,CAAC,MAAM,EAAE,SAAS;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC5E;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,EAAE,CAMvD;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY,CAmDrD"}
1
+ {"version":3,"file":"emit.d.ts","sourceRoot":"","sources":["../../src/infra/emit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,mFAAmF;AACnF,eAAO,MAAM,mBAAmB,oBAAoB,CAAC;AAErD,mCAAmC;AACnC,eAAO,MAAM,eAAe,qCAA4C,CAAC;AAEzE,wFAAwF;AACxF,eAAO,MAAM,sBAAsB,4CAAmD,CAAC;AAEvF,2FAA2F;AAC3F,eAAO,MAAM,mBAAmB,kCAAkC,CAAC;AAEnE,MAAM,WAAW,SAAS;IACxB,4CAA4C;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACxE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CACzB,MAAM,CACJ,MAAM,EACN;QACE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;QAC5B,QAAQ,CAAC,MAAM,EAAE,SAAS;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAC/E,QAAQ,CAAC,GAAG,EAAE,SAAS;YACrB,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,OAAO,CAAC;YAChB,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,CAAC,EAAE,MAAM,CAAC;SAChB,EAAE,CAAC;QACJ,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;QACzC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;QACtC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;KACpC,CACF,CACF,CAAC;IACF,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAC5B,MAAM,CACJ,MAAM,EACN;QACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;QACrC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;KACxC,CACF,CACF,CAAC;IACF,QAAQ,CAAC,KAAK,EAAE,SAAS;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC3F,QAAQ,CAAC,MAAM,EAAE,SAAS;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC5E;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACxE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CACzB,MAAM,CACJ,MAAM,EACN;QACE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;QAC5B,QAAQ,CAAC,MAAM,EAAE,SAAS;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAC/E,QAAQ,CAAC,GAAG,EAAE,SAAS;YACrB,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,OAAO,CAAC;YAChB,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,CAAC,EAAE,MAAM,CAAC;SAChB,EAAE,CAAC;QACJ,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;QACpC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;QACtC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;KACpC,CACF,CACF,CAAC;IACF,QAAQ,CAAC,MAAM,EAAE,QAAQ,CACvB,MAAM,CACJ,MAAM,EACN;QACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QACpC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;KACxC,CACF,CACF,CAAC;IACF,QAAQ,CAAC,KAAK,EAAE,SAAS;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC3F,QAAQ,CAAC,MAAM,EAAE,SAAS;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC5E;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,EAAE,CAOvD;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY,CAmDrD;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,aAAa,CAwC1D"}
@@ -1,10 +1,11 @@
1
1
  /**
2
- * The OpenTofu wiring, derived from the deployment plan.
2
+ * The deployment wiring, derived from the deployment plan.
3
3
  *
4
- * This emits the *derived* layer only: the plan itself, the tfvars an env root consumes,
5
- * and a README that says who owns what. Provider HCL (the `modules/` and `envs/` trees)
6
- * is not emitted here, because it carries no information the IR has -- and because an
7
- * emitter that wrote AWS resources it could not `tofu validate` would be guessing.
4
+ * This emits the *derived* layer only: the plan itself, the two spellings an env root
5
+ * consumes (Terraform tfvars, CDK context), and a README that says who owns what.
6
+ * Provider code -- the OpenTofu `modules/` and `envs/` trees, and CDK stacks -- is not
7
+ * emitted here, because it carries no information the IR has, and because an emitter
8
+ * that wrote AWS resources it could not `tofu validate` or `cdk synth` would be guessing.
8
9
  *
9
10
  * The load-bearing rule is enforced by construction: nothing in this file accepts an
10
11
  * account id, a region, a CIDR, a domain, or a sizing number, so none can appear in the
@@ -12,6 +13,10 @@
12
13
  */
13
14
  /** Where every derived infrastructure file lives, relative to the project root. */
14
15
  export const INFRA_GENERATED_DIR = 'infra/generated';
16
+ /** The plan both backends read. */
17
+ export const INFRA_PLAN_PATH = `${INFRA_GENERATED_DIR}/deploy.plan.json`;
18
+ /** The same plan spelled for a CDK app, which is TypeScript and therefore camelCase. */
19
+ export const INFRA_CDK_CONTEXT_PATH = `${INFRA_GENERATED_DIR}/deploy.cdk-context.json`;
15
20
  /** The manifest recording what this emitter wrote, so a hand edit is never overwritten. */
16
21
  export const INFRA_MANIFEST_PATH = 'infra/aid.infra.manifest.json';
17
22
  /**
@@ -20,8 +25,9 @@ export const INFRA_MANIFEST_PATH = 'infra/aid.infra.manifest.json';
20
25
  */
21
26
  export function emitInfra(plan) {
22
27
  return [
23
- { path: `${INFRA_GENERATED_DIR}/deploy.plan.json`, contents: json(plan) },
28
+ { path: INFRA_PLAN_PATH, contents: json(plan) },
24
29
  { path: `${INFRA_GENERATED_DIR}/deploy.auto.tfvars.json`, contents: json(tfvars(plan)) },
30
+ { path: INFRA_CDK_CONTEXT_PATH, contents: json(cdkContext(plan)) },
25
31
  { path: `${INFRA_GENERATED_DIR}/README.md`, contents: readme(plan) },
26
32
  ];
27
33
  }
@@ -75,6 +81,51 @@ export function tfvars(plan) {
75
81
  })),
76
82
  };
77
83
  }
84
+ /**
85
+ * The CDK spelling of the same document.
86
+ *
87
+ * It renames `tfvars(plan)` rather than re-deriving from the plan: two loops over the
88
+ * same plan would drift, and the backend that drifted would be silently missing a fact.
89
+ * Renaming keeps one source and makes parity structural instead of asserted.
90
+ */
91
+ export function cdkContext(plan) {
92
+ const spelled = tfvars(plan);
93
+ const services = {};
94
+ for (const [id, service] of Object.entries(spelled.services)) {
95
+ services[id] = {
96
+ target: service.target,
97
+ streaming: service.streaming,
98
+ routes: service.routes.map((route) => ({ ...route })),
99
+ env: service.env.map((variable) => ({
100
+ name: variable.name,
101
+ secret: variable.secret,
102
+ from: variable.from,
103
+ ...(variable.value === undefined ? {} : { value: variable.value }),
104
+ })),
105
+ secrets: [...service.secret_names],
106
+ providers: [...service.providers],
107
+ ingest: [...service.ingest],
108
+ };
109
+ }
110
+ const stores = {};
111
+ for (const [id, store] of Object.entries(spelled.data_stores)) {
112
+ stores[id] = {
113
+ kind: store.kind,
114
+ ...(store.secret_ref === undefined ? {} : { secretRef: store.secret_ref }),
115
+ ...(store.requires_extension === undefined
116
+ ? {}
117
+ : { requiresExtension: store.requires_extension }),
118
+ retrievers: [...store.retrievers],
119
+ };
120
+ }
121
+ return {
122
+ project: { name: spelled.project.name, namespace: spelled.project.namespace },
123
+ services,
124
+ stores,
125
+ tasks: spelled.tasks.map((task) => ({ ...task })),
126
+ alarms: spelled.alarms.map((alarm) => ({ ...alarm })),
127
+ };
128
+ }
78
129
  function readme(plan) {
79
130
  const routes = plan.services.reduce((total, service) => total + service.endpoints.length, 0);
80
131
  return [
@@ -87,15 +138,28 @@ function readme(plan) {
87
138
  '| --- | --- |',
88
139
  '| `deploy.plan.json` | The provider-neutral deployment plan both backends render. |',
89
140
  '| `deploy.auto.tfvars.json` | The same plan spelled as Terraform inputs. |',
141
+ '| `deploy.cdk-context.json` | The same plan spelled for a CDK app, with camelCase keys. |',
90
142
  '',
91
143
  '## Using it',
92
144
  '',
93
- 'An env root consumes the tfvars directly, so dev and prod share one module tree:',
145
+ 'With OpenTofu, an env root consumes the tfvars directly, so dev and prod share one',
146
+ 'module tree:',
94
147
  '',
95
148
  '```sh',
96
149
  'tofu -chdir=infra/envs/dev plan -var-file=../../generated/deploy.auto.tfvars.json',
97
150
  '```',
98
151
  '',
152
+ 'With CDK, an app in `infra/cdk/<env>` reads the context file and supplies the',
153
+ 'constructs, account and region itself:',
154
+ '',
155
+ '```sh',
156
+ 'aid infra plan --iac cdk --env dev',
157
+ 'aid infra apply --iac cdk --env dev',
158
+ '```',
159
+ '',
160
+ '`aid infra` defaults to `--iac tofu`; the generated bytes are identical either way,',
161
+ 'because both backends consume this one plan.',
162
+ '',
99
163
  '## What is here, and what is not',
100
164
  '',
101
165
  `- Services: ${plan.services.length}`,
@@ -1 +1 @@
1
- {"version":3,"file":"emit.js","sourceRoot":"","sources":["../../src/infra/emit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emit.js","sourceRoot":"","sources":["../../src/infra/emit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,mFAAmF;AACnF,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;AAErD,mCAAmC;AACnC,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,mBAAmB,mBAAmB,CAAC;AAEzE,wFAAwF;AACxF,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,mBAAmB,0BAA0B,CAAC;AAEvF,2FAA2F;AAC3F,MAAM,CAAC,MAAM,mBAAmB,GAAG,+BAA+B,CAAC;AAgGnE;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,IAAgB;IACxC,OAAO;QACL,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;QAC/C,EAAE,IAAI,EAAE,GAAG,mBAAmB,0BAA0B,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE;QACxF,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE;QAClE,EAAE,IAAI,EAAE,GAAG,mBAAmB,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE;KACrE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,IAAgB;IACrC,MAAM,QAAQ,GAAqD,EAAE,CAAC;IACtE,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG;YACrB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC3C,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,IAAI,EAAE,QAAQ,CAAC,IAAI;aACpB,CAAC,CAAC;YACH,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAClC,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,GAAG,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;aACnE,CAAC,CAAC;YACH,YAAY,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;YAClC,SAAS,EAAE,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;YACjC,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;SAC5B,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAwD,EAAE,CAAC;IAC3E,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG;YACrB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;YACzE,GAAG,CAAC,KAAK,CAAC,iBAAiB,KAAK,SAAS;gBACvC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,kBAAkB,EAAE,KAAK,CAAC,iBAAiB,EAAE,CAAC;YACpD,UAAU,EAAE,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC;SAClC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;QACvE,QAAQ;QACR,WAAW,EAAE,UAAU;QACvB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC/B,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;SACpE,CAAC,CAAC;QACH,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAClC,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,IAAgB;IACzC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAE7B,MAAM,QAAQ,GAAsD,EAAE,CAAC;IACvE,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7D,QAAQ,CAAC,EAAE,CAAC,GAAG;YACb,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;YACrD,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAClC,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,GAAG,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;aACnE,CAAC,CAAC;YACH,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;YAClC,SAAS,EAAE,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;YACjC,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;SAC5B,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAoD,EAAE,CAAC;IACnE,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9D,MAAM,CAAC,EAAE,CAAC,GAAG;YACX,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;YAC1E,GAAG,CAAC,KAAK,CAAC,kBAAkB,KAAK,SAAS;gBACxC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,iBAAiB,EAAE,KAAK,CAAC,kBAAkB,EAAE,CAAC;YACpD,UAAU,EAAE,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC;SAClC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE;QAC7E,QAAQ;QACR,MAAM;QACN,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QACjD,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;KACtD,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CAAC,IAAgB;IAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC7F,OAAO;QACL,4BAA4B;QAC5B,EAAE;QACF,sFAAsF;QACtF,4EAA4E;QAC5E,EAAE;QACF,uBAAuB;QACvB,eAAe;QACf,qFAAqF;QACrF,4EAA4E;QAC5E,2FAA2F;QAC3F,EAAE;QACF,aAAa;QACb,EAAE;QACF,oFAAoF;QACpF,cAAc;QACd,EAAE;QACF,OAAO;QACP,mFAAmF;QACnF,KAAK;QACL,EAAE;QACF,+EAA+E;QAC/E,wCAAwC;QACxC,EAAE;QACF,OAAO;QACP,qCAAqC;QACrC,qCAAqC;QACrC,KAAK;QACL,EAAE;QACF,qFAAqF;QACrF,8CAA8C;QAC9C,EAAE;QACF,kCAAkC;QAClC,EAAE;QACF,eAAe,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;QACrC,aAAa,MAAM,EAAE;QACrB,kBAAkB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;QACtC,YAAY,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;QAC/B,kBAAkB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;QACtC,EAAE;QACF,sFAAsF;QACtF,wFAAwF;QACxF,2DAA2D;QAC3D,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,IAAI,CAAC,KAAc;IAC1B,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;AAC/C,CAAC"}
@@ -22,6 +22,8 @@ export declare function envRoot(env: string): string;
22
22
  * human output.
23
23
  */
24
24
  export declare function tofuArgs(action: InfraAction, env: string): string[];
25
+ /** What an exit status means for OpenTofu, kept beside the argv that produced it. */
26
+ export declare function classifyTofu(action: InfraAction, status: number | null): 'ok' | 'drift' | 'failed';
25
27
  export declare function tofuBinary(context: CliContext): string;
26
28
  /**
27
29
  * Run one action inside the env root, because `-var-file` is resolved relative to the
@@ -1 +1 @@
1
- {"version":3,"file":"tofu.d.ts","sourceRoot":"","sources":["../../src/infra/tofu.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE7D,eAAO,MAAM,YAAY,SAAS,CAAC;AAEnC,yFAAyF;AACzF,eAAO,MAAM,QAAQ,aAAa,CAAC;AAEnC,eAAO,MAAM,WAAW,4CAA4C,CAAC;AAErE,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AASrD,0DAA0D;AAC1D,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAUnE;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAGtD;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CACrB,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GAAG,MAAM,GACxB,WAAW,CAMb"}
1
+ {"version":3,"file":"tofu.d.ts","sourceRoot":"","sources":["../../src/infra/tofu.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE7D,eAAO,MAAM,YAAY,SAAS,CAAC;AAEnC,yFAAyF;AACzF,eAAO,MAAM,QAAQ,aAAa,CAAC;AAEnC,eAAO,MAAM,WAAW,4CAA4C,CAAC;AAErE,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AASrD,0DAA0D;AAC1D,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAUnE;AAED,qFAAqF;AACrF,wBAAgB,YAAY,CAC1B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,GAAG,IAAI,GACpB,IAAI,GAAG,OAAO,GAAG,QAAQ,CAM3B;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAGtD;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CACrB,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GAAG,MAAM,GACxB,WAAW,CAMb"}
@@ -39,6 +39,16 @@ export function tofuArgs(action, env) {
39
39
  ...APPROVALS[action],
40
40
  ];
41
41
  }
42
+ /** What an exit status means for OpenTofu, kept beside the argv that produced it. */
43
+ export function classifyTofu(action, status) {
44
+ if (status === 0)
45
+ return 'ok';
46
+ // OpenTofu reserves exit 2 for "the plan is non-empty" under `-detailed-exitcode`, so
47
+ // drift is a distinguishable status rather than a guess over human output.
48
+ if (action === 'drift' && status === 2)
49
+ return 'drift';
50
+ return 'failed';
51
+ }
42
52
  export function tofuBinary(context) {
43
53
  const configured = context.env[TOFU_ENV];
44
54
  return configured === undefined || configured === '' ? DEFAULT_TOFU : configured;
@@ -1 +1 @@
1
- {"version":3,"file":"tofu.js","sourceRoot":"","sources":["../../src/infra/tofu.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAIxC,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC;AAEnC,yFAAyF;AACzF,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;AAEnC,MAAM,CAAC,MAAM,WAAW,GAAG,yCAAyC,CAAC;AAIrE,6FAA6F;AAC7F,MAAM,SAAS,GAAqD;IAClE,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,CAAC,eAAe,CAAC;CACzB,CAAC;AAEF,0DAA0D;AAC1D,MAAM,UAAU,OAAO,CAAC,GAAW;IACjC,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAmB,EAAE,GAAW;IACvD,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC;IAC1D,OAAO;QACL,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;QACpC,GAAG,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,aAAa,OAAO,EAAE;QACtB,cAAc;QACd,WAAW;QACX,GAAG,SAAS,CAAC,MAAM,CAAC;KACrB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAAmB;IAC5C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzC,OAAO,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC;AACnF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CACrB,OAAmB,EACnB,MAAmB,EACnB,GAAW,EACX,KAAyB;IAEzB,OAAO,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;QAC/D,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClD,KAAK;QACL,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"tofu.js","sourceRoot":"","sources":["../../src/infra/tofu.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAIxC,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC;AAEnC,yFAAyF;AACzF,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;AAEnC,MAAM,CAAC,MAAM,WAAW,GAAG,yCAAyC,CAAC;AAIrE,6FAA6F;AAC7F,MAAM,SAAS,GAAqD;IAClE,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,CAAC,eAAe,CAAC;CACzB,CAAC;AAEF,0DAA0D;AAC1D,MAAM,UAAU,OAAO,CAAC,GAAW;IACjC,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAmB,EAAE,GAAW;IACvD,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC;IAC1D,OAAO;QACL,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;QACpC,GAAG,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,aAAa,OAAO,EAAE;QACtB,cAAc;QACd,WAAW;QACX,GAAG,SAAS,CAAC,MAAM,CAAC;KACrB,CAAC;AACJ,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,YAAY,CAC1B,MAAmB,EACnB,MAAqB;IAErB,IAAI,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9B,sFAAsF;IACtF,2EAA2E;IAC3E,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IACvD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAAmB;IAC5C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzC,OAAO,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC;AACnF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CACrB,OAAmB,EACnB,MAAmB,EACnB,GAAW,EACX,KAAyB;IAEzB,OAAO,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;QAC/D,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClD,KAAK;QACL,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AASjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,UAAU,OAAQ,SAAQ,WAAW;IACnC,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,KAAK,cAAc,CAAC;IAC7E,kEAAkE;IAClE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAQD,eAAO,MAAM,QAAQ,EAAE,SAAS,OAAO,EAwHtC,CAAC;AA0BF,wBAAgB,GAAG,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,GAAG,QAAQ,CA6C1E"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAUjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,UAAU,OAAQ,SAAQ,WAAW;IACnC,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,KAAK,cAAc,CAAC;IAC7E,kEAAkE;IAClE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAQD,eAAO,MAAM,QAAQ,EAAE,SAAS,OAAO,EA+ItC,CAAC;AA0BF,wBAAgB,GAAG,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,GAAG,QAAQ,CA6C1E"}
package/dist/main.js CHANGED
@@ -13,6 +13,7 @@
13
13
  */
14
14
  import { booleanFlag, JSON_FLAG, parseArguments, valueFlag } from './args.js';
15
15
  import { doctor } from './commands/doctor.js';
16
+ import { eject } from './commands/eject.js';
16
17
  import { evaluate } from './commands/eval.js';
17
18
  import { generate } from './commands/gen.js';
18
19
  import { infra } from './commands/infra.js';
@@ -114,15 +115,27 @@ export const COMMANDS = [
114
115
  target: args.values.get('target'),
115
116
  }),
116
117
  },
118
+ {
119
+ name: 'eject',
120
+ summary: 'take ownership of a generated file: move it to business/ and stop generating it',
121
+ usage: 'eject <path> [--target <name>] [--dry-run]',
122
+ flags: [TARGET_FLAG, booleanFlag('dry-run', 'report the move, and write nothing'), JSON_FLAG],
123
+ run: (context, args) => eject(context, {
124
+ path: args.positionals[0],
125
+ target: args.values.get('target'),
126
+ dryRun: args.booleans.has('dry-run'),
127
+ }),
128
+ },
117
129
  {
118
130
  name: 'infra',
119
- summary: 'derive the deployment wiring from the spec and drive OpenTofu',
120
- usage: 'infra <gen|plan|apply|drift> [spec] [--dry-run|--check] [--env <name>] [--force]',
131
+ summary: 'derive the deployment wiring from the spec and drive OpenTofu or AWS CDK',
132
+ usage: 'infra <gen|plan|apply|drift> [spec] [--dry-run|--check] [--env <name>] [--iac <tofu|cdk>] [--force]',
121
133
  maxPositionals: 2,
122
134
  flags: [
123
135
  booleanFlag('dry-run', 'gen: report what would change, and write nothing'),
124
136
  booleanFlag('check', 'gen: exit non-zero when the generated tree is out of date'),
125
- valueFlag('env', 'name', 'environment root under infra/envs; plan, apply and drift use dev'),
137
+ valueFlag('env', 'name', 'environment root (infra/envs/<name> or infra/cdk/<name>); plan, apply and drift use dev'),
138
+ valueFlag('iac', 'tofu|cdk', 'plan, apply and drift: which backend to drive; defaults to tofu'),
126
139
  booleanFlag('confirm-prod', 'required to apply to prod'),
127
140
  booleanFlag('force', 'gen: overwrite generated files that were edited by hand'),
128
141
  JSON_FLAG,
@@ -134,6 +147,7 @@ export const COMMANDS = [
134
147
  check: args.booleans.has('check'),
135
148
  force: args.booleans.has('force'),
136
149
  env: args.values.get('env'),
150
+ iac: args.values.get('iac'),
137
151
  confirmProd: args.booleans.has('confirm-prod'),
138
152
  json: args.booleans.has('json'),
139
153
  }),
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aid-framework/cli",
3
- "version": "0.1.56",
3
+ "version": "0.1.58",
4
4
  "description": "The `aid` command: scaffold a project, validate its spec, generate its code, and run its eval gate.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -33,11 +33,11 @@
33
33
  "access": "public"
34
34
  },
35
35
  "dependencies": {
36
- "@aid-framework/generator-py-fastapi": "0.1.56",
37
- "@aid-framework/generator-sdk": "0.1.56",
38
- "@aid-framework/generator-ts-vercel": "0.1.56",
39
- "@aid-framework/ir": "0.1.56",
40
- "@aid-framework/spec": "0.1.56"
36
+ "@aid-framework/generator-py-fastapi": "0.1.58",
37
+ "@aid-framework/generator-sdk": "0.1.58",
38
+ "@aid-framework/generator-ts-vercel": "0.1.58",
39
+ "@aid-framework/ir": "0.1.58",
40
+ "@aid-framework/spec": "0.1.58"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@types/node": "^26.6.5"