@empire-builder-kit/nx 1.0.0-rc.40 → 1.0.0-rc.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -10
- package/package.json +3 -3
- package/src/blueprints/external-sandbox.d.ts +1 -1
- package/src/cli/deploy-runtime.d.ts +25 -1
- package/src/cli/deploy-runtime.js +120 -4
- package/src/cli/dev-command.d.ts +2 -0
- package/src/cli/dev-command.js +8 -0
- package/src/cli/main.js +20 -6
- package/src/cli/personal-secret-runtime.d.ts +12 -0
- package/src/cli/personal-secret-runtime.js +18 -3
- package/src/cli/secret-terminal.js +1 -1
- package/src/container-images.d.ts +1 -1
- package/src/container-images.js +1 -1
- package/src/developer-agent/operation-registry.d.ts +10 -0
- package/src/developer-agent/operation-registry.js +60 -13
- package/src/developer-agent/planning.d.ts +8 -1
- package/src/developer-agent/planning.js +23 -3
- package/src/executors/local-deploy/local-approval.js +1 -1
- package/src/executors/sst-lifecycle/governed-native-operation.js +3 -2
- package/src/executors/sst-lifecycle/run-sst-command.d.ts +6 -0
- package/src/executors/sst-lifecycle/run-sst-command.js +3 -33
- package/src/foundation/cost-estimate.d.ts +170 -0
- package/src/foundation/cost-estimate.js +683 -0
- package/src/generators/preset/tool-versions.d.ts +0 -2
- package/src/generators/preset/tool-versions.js +1 -3
- package/src/generators/preset/workspace-files-adopter-skills.js +39 -18
- package/src/generators/preset/workspace-files-developer-agent.js +83 -27
- package/src/generators/preset/workspace-files-shared-operation-claims.d.ts +10 -0
- package/src/generators/preset/workspace-files-shared-operation-claims.js +59 -0
- package/src/generators/preset/workspace-files-stage-authority.js +13 -2
- package/src/generators/preset/workspace-files-thin-deploy.d.ts +10 -0
- package/src/generators/preset/workspace-files-thin-deploy.js +54 -20
- package/src/generators/preset/workspace-files-thin-docs.js +32 -14
- package/src/generators/preset/workspace-files.js +28 -8
- package/src/generators/slice/built-in-plan-api-contract-files.js +7 -4
- package/src/generators/slice/built-in-plan-authorization-files.js +10 -5
- package/src/generators/slice/built-in-plan-authorization-infrastructure-files.js +933 -249
- package/src/generators/slice/built-in-plan-data-files.js +17 -8
- package/src/generators/slice/built-in-plan-database-retirement-rehearsal-files.js +5 -1
- package/src/generators/slice/built-in-plan-frontend-files.js +7 -0
- package/src/generators/slice/built-in-plan-infrastructure-files.js +0 -1
- package/src/generators/slice/built-in-plan-infrastructure-safety-files.js +8 -3
- package/src/generators/slice/built-in-plan-metadata-files.js +2 -1
- package/src/generators/slice/built-in-plan-reliability-files.js +4 -1
- package/src/generators/slice/built-in-plan-shared.d.ts +2 -2
- package/src/generators/slice/built-in-plan-shared.js +2 -2
- package/src/generators/slice/built-in-plan-testing-persistence-event-files.d.ts +7 -0
- package/src/generators/slice/built-in-plan-testing-persistence-event-files.js +487 -0
- package/src/generators/slice/built-in-plan-testing-persistence-files.js +2 -0
- package/src/generators/slice/built-in-plan.js +3 -1
- package/src/generators/workload/frozen-container.d.ts +1 -1
- package/src/git-policy/github-bootstrap.d.ts +9 -0
- package/src/git-policy/github-bootstrap.js +16 -2
- package/src/local-dev/fleet-inventory.js +18 -10
- package/src/local-dev/fleet-launcher.js +2 -2
- package/src/secrets/personal-command.d.ts +18 -2
- package/src/secrets/personal-command.js +66 -12
- package/src/secrets/verification.js +6 -1
|
@@ -292,8 +292,8 @@ human-supplied—controls cleanup.
|
|
|
292
292
|
|
|
293
293
|
## Personal human-supplied development value
|
|
294
294
|
|
|
295
|
-
|
|
296
|
-
|
|
295
|
+
Setting a human-supplied operator-declared personal value is a human-only
|
|
296
|
+
step. Removing one carries no value and may be started by an agent:
|
|
297
297
|
|
|
298
298
|
\`\`\`bash
|
|
299
299
|
ebk secret set ${name} <logical-name>
|
|
@@ -303,10 +303,15 @@ ebk secret remove ${name} <logical-name>
|
|
|
303
303
|
The CLI derives the personal stage, reads the profile and Region saved by
|
|
304
304
|
\`ebk dev configure\`, proves the current AWS account is the development
|
|
305
305
|
Foundation account, and invokes the workspace-pinned SST CLI. Set accepts the
|
|
306
|
-
value only through a hidden TTY prompt
|
|
306
|
+
value only through a hidden TTY prompt and refuses agent and CI environments,
|
|
307
|
+
because a hidden prompt does not hide the value from the process that owns the
|
|
308
|
+
terminal: a human runs it in a terminal no agent spawned. An agent prepares
|
|
309
|
+
that step by naming the exact logical name and command, then resumes without
|
|
310
|
+
reading the value. Remove may be started by an agent; the human types the
|
|
311
|
+
hidden \`REMOVE <logical-name>\` confirmation in that interactive terminal.
|
|
307
312
|
Neither command accepts a stage, profile, Region, value argument, environment
|
|
308
|
-
value, file, fallback, or placeholder.
|
|
309
|
-
|
|
313
|
+
value, file, fallback, or placeholder. Never ask an agent or CI job to run
|
|
314
|
+
\`ebk secret set\`.
|
|
310
315
|
|
|
311
316
|
## Development metadata
|
|
312
317
|
|
|
@@ -357,9 +362,13 @@ Account-level role materialization remains an adopter responsibility.
|
|
|
357
362
|
|
|
358
363
|
After an empty human-supplied container exists, a human secret operator enters
|
|
359
364
|
or rotates the value through the approved hidden-input or provider-owned
|
|
360
|
-
ceremony.
|
|
361
|
-
|
|
362
|
-
|
|
365
|
+
ceremony. Only the value entry is human-only: an agent may confirm the empty
|
|
366
|
+
container through the value-blind \`secret-metadata\` report, tell the operator
|
|
367
|
+
the exact container name and stage, and verify afterwards with the same report
|
|
368
|
+
and the deployment; it never enters, reads, or relays the value. Do not
|
|
369
|
+
delegate that human-supplied ceremony to an agent and do not pass a value
|
|
370
|
+
through argv, source, a file, a ticket, a work marker, GitHub, logs, or
|
|
371
|
+
evidence. Routine operator authority is write-only for exact approved
|
|
363
372
|
paths and has no application or Foundation deployment authority. Value reads
|
|
364
373
|
require a separate audited break-glass path. Machine-generated declarations
|
|
365
374
|
instead use \`secret-initialize\`; they never accept a human value.
|
|
@@ -428,7 +428,11 @@ The command accepts no arguments, so an operator cannot supply a stage, Slice,
|
|
|
428
428
|
database, state machine, task, role, network, image, or command override.
|
|
429
429
|
|
|
430
430
|
Run the generated \`db-retirement-rehearsal\` target only through the protected
|
|
431
|
-
workflow
|
|
431
|
+
workflow: the run binds the reviewed candidate image digest and a deployment role
|
|
432
|
+
scoped to the one registered state machine, and those exist only there. Locally,
|
|
433
|
+
an agent may complete the registration and binding edits above, prepare them
|
|
434
|
+
for review, and propose the workflow run; it does not start the state machine
|
|
435
|
+
from a workstation. The deployment role needs
|
|
432
436
|
\`states:StartExecution\` on the exact registered state machine and
|
|
433
437
|
\`states:DescribeExecution\` on its exact execution namespace. It receives no
|
|
434
438
|
database credential, secret-value, SQL, \`rds-db:connect\`, or arbitrary ECS
|
|
@@ -309,6 +309,13 @@ looks reusable.
|
|
|
309
309
|
|
|
310
310
|
## Manual review
|
|
311
311
|
|
|
312
|
+
An agent driving a real browser may perform and record the keyboard, focus,
|
|
313
|
+
zoom/reflow, reduced-motion, and announcement checks below and attach them to
|
|
314
|
+
the visual report. A human using actual assistive technology (screen reader,
|
|
315
|
+
switch access, or magnifier) completes the assistive-technology pass and is
|
|
316
|
+
recorded as the reviewer for that pass; the quarantine approver must still be
|
|
317
|
+
distinct from the owner.
|
|
318
|
+
|
|
312
319
|
Confirm, at minimum:
|
|
313
320
|
|
|
314
321
|
1. landmark and heading order, names, roles, descriptions, and state;
|
|
@@ -976,7 +976,6 @@ ${sql
|
|
|
976
976
|
},
|
|
977
977
|
handler: 'authorization/machine-client-provisioner.handler',
|
|
978
978
|
link: secretLinksFor('machine-client-provisioner'),
|
|
979
|
-
runtime: 'python3.12',
|
|
980
979
|
timeout: '2 minutes',
|
|
981
980
|
...lambdaLogging(machineClientProvisionerLogs.logGroup.name),
|
|
982
981
|
},
|
|
@@ -332,7 +332,9 @@ apply; it is never promoted to \`no-drift\`. The exact SST/provider call
|
|
|
332
332
|
inventory still requires protected CloudTrail calibration evidence.
|
|
333
333
|
|
|
334
334
|
When a plan requires human review, commit
|
|
335
|
-
the workspace-level \`operations/infrastructure-approval.json\` batch.
|
|
335
|
+
the workspace-level \`operations/infrastructure-approval.json\` batch. An agent
|
|
336
|
+
may draft that batch from the sanitized plan; a CODEOWNER other than its author
|
|
337
|
+
reviews and approves it before it is committed. It binds
|
|
336
338
|
the exact ordered project set, action, stage, and one sanitized planned
|
|
337
339
|
plan/digest-bound decision per project. The resume run permits only that one
|
|
338
340
|
aggregate file to differ from the planned source commit and recomputes every
|
|
@@ -343,8 +345,11 @@ import, and cutover/data/collision/rollback/recovery proof for every
|
|
|
343
345
|
replacement. Their canonical digests are retained in both authorization and
|
|
344
346
|
the immediate pre-mutation binding; changing one after review fails closed.
|
|
345
347
|
|
|
346
|
-
|
|
347
|
-
authoritative refresh are governed recovery
|
|
348
|
+
In staging and production, state edit, import operations inside a deploy
|
|
349
|
+
preview, remove, repair, and authoritative refresh are governed recovery
|
|
350
|
+
operations. In the development stage, refresh, unlock, and remove run locally
|
|
351
|
+
through their explicit Nx targets without non-author approval. For the
|
|
352
|
+
protected stages, retain a state backup,
|
|
348
353
|
exact physical target inventory, non-author approval, command/result evidence,
|
|
349
354
|
and a finalized post-repair convergence record. Remove additionally requires
|
|
350
355
|
the complete deletion inventory, drained dependents, retained Foundation,
|
|
@@ -194,7 +194,8 @@ Service or Job recovery procedures as those capabilities are added.
|
|
|
194
194
|
## Operator secrets
|
|
195
195
|
|
|
196
196
|
Use \`docs/runbooks/operator-secret-management.md\` for value-free metadata
|
|
197
|
-
convergence and the separate
|
|
197
|
+
convergence, which agents may run, and the separate personal-stage value
|
|
198
|
+
ceremony, whose value entry is human-only.
|
|
198
199
|
|
|
199
200
|
## Performance, capacity, and cost
|
|
200
201
|
|
|
@@ -1621,7 +1621,10 @@ binding; callers cannot label it.
|
|
|
1621
1621
|
|
|
1622
1622
|
A bounded log query requires a human approval naming the approver, invoking
|
|
1623
1623
|
human, incident, reason, account, region, stage, Slice, exact log groups, query
|
|
1624
|
-
class, time window, and expiry. The
|
|
1624
|
+
class, time window, and expiry. The invoking human is the person whose session
|
|
1625
|
+
runs the query; an agent may prepare the request and run the query inside that
|
|
1626
|
+
human's session, and the approver must be a different human. Unmasking remains
|
|
1627
|
+
a separate break-glass authority. The approved query window is at most one hour.
|
|
1625
1628
|
The script returns an authorization plan; the existing protected query runner
|
|
1626
1629
|
retains attributable evidence. Empty results never prove recovery.
|
|
1627
1630
|
`,
|
|
@@ -15,9 +15,9 @@ export declare const PRODUCT_VERSIONS: {
|
|
|
15
15
|
readonly awsSqs: "^3.700.0";
|
|
16
16
|
readonly awsSsm: "^3.700.0";
|
|
17
17
|
readonly awsSts: "^3.700.0";
|
|
18
|
-
readonly drizzle: "^0.45.
|
|
18
|
+
readonly drizzle: "^0.45.2";
|
|
19
19
|
readonly drizzleKit: "^0.31.4";
|
|
20
|
-
readonly next: "16.3.
|
|
20
|
+
readonly next: "16.3.6";
|
|
21
21
|
readonly pg: "^8.22.0";
|
|
22
22
|
readonly playwright: "^1.59.1";
|
|
23
23
|
readonly react: "19.2.8";
|
|
@@ -25,9 +25,9 @@ exports.PRODUCT_VERSIONS = {
|
|
|
25
25
|
awsSqs: '^3.700.0',
|
|
26
26
|
awsSsm: '^3.700.0',
|
|
27
27
|
awsSts: '^3.700.0',
|
|
28
|
-
drizzle: '^0.45.
|
|
28
|
+
drizzle: '^0.45.2',
|
|
29
29
|
drizzleKit: '^0.31.4',
|
|
30
|
-
next: '16.3.
|
|
30
|
+
next: '16.3.6',
|
|
31
31
|
pg: '^8.22.0',
|
|
32
32
|
playwright: '^1.59.1',
|
|
33
33
|
react: '19.2.8',
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Seeded behavioral integration specs that drive the seeded event consumer
|
|
3
|
+
* against the disposable worker stores. They never write DynamoDB outbox rows
|
|
4
|
+
* (integration/record.spec.ts owns the exactly-one-outbox assertion on the
|
|
5
|
+
* shared worker table), assert by seed-scoped key, and never wait in real time.
|
|
6
|
+
*/
|
|
7
|
+
export declare function renderTestingPersistenceEventFiles(name: string, pascalName: string, sql: boolean): Readonly<Record<string, string>>;
|