create-relkit 0.7.4 → 0.7.7
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/dist/create-capabilities.d.ts +24 -33
- package/dist/create-capabilities.d.ts.map +1 -1
- package/dist/create-capabilities.js +53 -10
- package/dist/create-capabilities.js.map +1 -1
- package/dist/create-capabilities.types.d.ts +55 -0
- package/dist/create-capabilities.types.d.ts.map +1 -0
- package/dist/create-capabilities.types.js +2 -0
- package/dist/create-capabilities.types.js.map +1 -0
- package/dist/domain-artifact.d.ts.map +1 -1
- package/dist/domain-artifact.js +11 -3
- package/dist/domain-artifact.js.map +1 -1
- package/dist/domain-planning.d.ts +5 -0
- package/dist/domain-planning.d.ts.map +1 -1
- package/dist/domain-planning.js +25 -16
- package/dist/domain-planning.js.map +1 -1
- package/dist/generate-deployment-manifest.d.ts +10 -0
- package/dist/generate-deployment-manifest.d.ts.map +1 -0
- package/dist/generate-deployment-manifest.js +56 -0
- package/dist/generate-deployment-manifest.js.map +1 -0
- package/dist/generate-deployment.d.ts +2 -3
- package/dist/generate-deployment.d.ts.map +1 -1
- package/dist/generate-deployment.js +6 -47
- package/dist/generate-deployment.js.map +1 -1
- package/dist/generate-examples.d.ts +11 -0
- package/dist/generate-examples.d.ts.map +1 -0
- package/dist/generate-examples.js +28 -0
- package/dist/generate-examples.js.map +1 -0
- package/dist/generate-files-utilities.d.ts +1 -8
- package/dist/generate-files-utilities.d.ts.map +1 -1
- package/dist/generate-files-utilities.js +5 -19
- package/dist/generate-files-utilities.js.map +1 -1
- package/dist/project-discovery-artifacts.d.ts +15 -0
- package/dist/project-discovery-artifacts.d.ts.map +1 -0
- package/dist/project-discovery-artifacts.js +107 -0
- package/dist/project-discovery-artifacts.js.map +1 -0
- package/dist/project-discovery-artifacts.types.d.ts +22 -0
- package/dist/project-discovery-artifacts.types.d.ts.map +1 -0
- package/dist/project-discovery-artifacts.types.js +2 -0
- package/dist/project-discovery-artifacts.types.js.map +1 -0
- package/dist/project-discovery-facts.d.ts +8 -9
- package/dist/project-discovery-facts.d.ts.map +1 -1
- package/dist/project-discovery-facts.js +29 -135
- package/dist/project-discovery-facts.js.map +1 -1
- package/dist/project-discovery-members.d.ts +16 -0
- package/dist/project-discovery-members.d.ts.map +1 -0
- package/dist/project-discovery-members.js +57 -0
- package/dist/project-discovery-members.js.map +1 -0
- package/dist/project-discovery-types.d.ts +8 -0
- package/dist/project-discovery-types.d.ts.map +1 -1
- package/dist/render-auth-database.d.ts +33 -0
- package/dist/render-auth-database.d.ts.map +1 -0
- package/dist/render-auth-database.js +69 -0
- package/dist/render-auth-database.js.map +1 -0
- package/dist/render-auth-sources.d.ts +8 -2
- package/dist/render-auth-sources.d.ts.map +1 -1
- package/dist/render-auth-sources.js +9 -3
- package/dist/render-auth-sources.js.map +1 -1
- package/dist/render-auth.d.ts +14 -11
- package/dist/render-auth.d.ts.map +1 -1
- package/dist/render-auth.js +41 -108
- package/dist/render-auth.js.map +1 -1
- package/dist/render-database-sources.d.ts +11 -1
- package/dist/render-database-sources.d.ts.map +1 -1
- package/dist/render-database-sources.js +30 -4
- package/dist/render-database-sources.js.map +1 -1
- package/dist/render-database.d.ts +7 -10
- package/dist/render-database.d.ts.map +1 -1
- package/dist/render-database.js +17 -7
- package/dist/render-database.js.map +1 -1
- package/dist/render-database.types.d.ts +15 -0
- package/dist/render-database.types.d.ts.map +1 -0
- package/dist/render-database.types.js +2 -0
- package/dist/render-database.types.js.map +1 -0
- package/dist/render-route-sources.d.ts +3 -1
- package/dist/render-route-sources.d.ts.map +1 -1
- package/dist/render-route-sources.js +4 -2
- package/dist/render-route-sources.js.map +1 -1
- package/dist/render-routes.d.ts +1 -0
- package/dist/render-routes.d.ts.map +1 -1
- package/dist/render-routes.js +2 -1
- package/dist/render-routes.js.map +1 -1
- package/dist/render-service-members.d.ts +32 -0
- package/dist/render-service-members.d.ts.map +1 -0
- package/dist/render-service-members.js +61 -0
- package/dist/render-service-members.js.map +1 -0
- package/dist/render-service-requests.d.ts +35 -0
- package/dist/render-service-requests.d.ts.map +1 -0
- package/dist/render-service-requests.js +62 -0
- package/dist/render-service-requests.js.map +1 -0
- package/dist/render-service-support.d.ts +37 -0
- package/dist/render-service-support.d.ts.map +1 -0
- package/dist/render-service-support.js +74 -0
- package/dist/render-service-support.js.map +1 -0
- package/dist/render-service.d.ts +16 -13
- package/dist/render-service.d.ts.map +1 -1
- package/dist/render-service.js +33 -149
- package/dist/render-service.js.map +1 -1
- package/dist/render-service.types.d.ts +13 -0
- package/dist/render-service.types.d.ts.map +1 -0
- package/dist/render-service.types.js +2 -0
- package/dist/render-service.types.js.map +1 -0
- package/dist/scaffold-layout.d.ts +10 -0
- package/dist/scaffold-layout.d.ts.map +1 -0
- package/dist/scaffold-layout.js +29 -0
- package/dist/scaffold-layout.js.map +1 -0
- package/dist/templates/default/README.md +1 -1
- package/dist/templates/default/v1/agent/.agents/skills/relkit/SKILL.md +48 -0
- package/dist/templates/default/v1/agent/.agents/skills/relkit/references/agent-apis.md +59 -0
- package/dist/templates/default/v1/agent/.agents/skills/relkit/references/cli.md +63 -0
- package/dist/templates/default/v1/agent/.agents/skills/relkit/references/config-environments.md +96 -0
- package/dist/templates/default/v1/agent/.agents/skills/relkit/references/data-apis.md +74 -0
- package/dist/templates/default/v1/agent/.agents/skills/relkit/references/domain-apis.md +92 -0
- package/dist/templates/default/v1/agent/.agents/skills/relkit/references/http-apis.md +70 -0
- package/dist/templates/default/v1/agent/.agents/skills/relkit/references/jobs-apis.md +49 -0
- package/dist/templates/default/v1/agent/.agents/skills/relkit/references/layout-migration.md +35 -0
- package/dist/templates/default/v1/agent/.agents/skills/relkit/references/observability-apis.md +53 -0
- package/dist/templates/default/v1/agent/.agents/skills/relkit/references/realtime-apis.md +98 -0
- package/dist/templates/default/v1/agent/.agents/skills/relkit/references/streaming-apis.md +75 -0
- package/dist/templates/default/v1/agent/.agents/skills/relkit/references/testing-apis.md +71 -0
- package/dist/templates/default/v1/agent/README.md +9 -0
- package/dist/templates/default/v1/agent/package.json +4 -4
- package/dist/templates/default/v1/agent/src/routes/hello/route.ts +2 -1
- package/dist/templates/default/v1/agent/src/{hello → services/hello}/agents/assistant.agent.ts +2 -1
- package/dist/templates/default/v1/agent/src/{hello → services/hello}/agents/review.agent.ts +1 -0
- package/dist/templates/default/v1/agent/src/{hello → services/hello}/functions/hello.function.ts +7 -0
- package/dist/templates/default/v1/agent/src/services/hello/service.ts +5 -0
- package/dist/templates/default/v1/agent/src/{hello → services/hello}/tools/lookup.tool.ts +2 -1
- package/dist/templates/default/v1/agent/tests/fixtures/lookup.tool.ts +2 -1
- package/dist/templates/default/v1/agent/tests/fixtures/mcp-options.ts +2 -1
- package/dist/templates/default/v1/agent/tests/unit/assistant.agent.test.ts +3 -2
- package/dist/templates/default/v1/agent/tests/unit/hello.function.test.ts +2 -1
- package/dist/templates/default/v1/agent/tests/unit/lookup.tool.test.ts +2 -1
- package/dist/templates/default/v1/agent/tests/unit/review.agent.test.ts +2 -1
- package/dist/templates/default/v1/agent/tsconfig.json +2 -1
- package/dist/templates/default/v1/api/.agents/skills/relkit/SKILL.md +48 -0
- package/dist/templates/default/v1/api/.agents/skills/relkit/references/agent-apis.md +59 -0
- package/dist/templates/default/v1/api/.agents/skills/relkit/references/cli.md +63 -0
- package/dist/templates/default/v1/api/.agents/skills/relkit/references/config-environments.md +96 -0
- package/dist/templates/default/v1/api/.agents/skills/relkit/references/data-apis.md +74 -0
- package/dist/templates/default/v1/api/.agents/skills/relkit/references/domain-apis.md +92 -0
- package/dist/templates/default/v1/api/.agents/skills/relkit/references/http-apis.md +70 -0
- package/dist/templates/default/v1/api/.agents/skills/relkit/references/jobs-apis.md +49 -0
- package/dist/templates/default/v1/api/.agents/skills/relkit/references/layout-migration.md +35 -0
- package/dist/templates/default/v1/api/.agents/skills/relkit/references/observability-apis.md +53 -0
- package/dist/templates/default/v1/api/.agents/skills/relkit/references/realtime-apis.md +98 -0
- package/dist/templates/default/v1/api/.agents/skills/relkit/references/streaming-apis.md +75 -0
- package/dist/templates/default/v1/api/.agents/skills/relkit/references/testing-apis.md +71 -0
- package/dist/templates/default/v1/api/README.md +10 -0
- package/dist/templates/default/v1/api/package.json +3 -3
- package/dist/templates/default/v1/api/src/routes/echo/route.ts +2 -1
- package/dist/templates/default/v1/api/src/routes/hello/route.ts +2 -1
- package/dist/templates/default/v1/api/src/routes/orders/route.ts +2 -1
- package/dist/templates/default/v1/api/src/{echo → services/echo}/functions/echo.function.ts +1 -0
- package/dist/templates/default/v1/api/src/services/echo/service.ts +5 -0
- package/dist/templates/default/v1/api/src/{hello → services/hello}/functions/hello.function.ts +7 -0
- package/dist/templates/default/v1/api/src/services/hello/service.ts +5 -0
- package/dist/templates/default/v1/api/src/{orders → services/orders}/functions/create-order.function.ts +2 -1
- package/dist/templates/default/v1/api/src/{orders → services/orders}/functions/price-order.function.ts +1 -0
- package/dist/templates/default/v1/api/src/services/orders/service.ts +8 -0
- package/dist/templates/default/v1/api/tests/unit/echo.function.test.ts +2 -1
- package/dist/templates/default/v1/api/tests/unit/hello.function.test.ts +2 -1
- package/dist/templates/default/v1/api/tests/unit/orders.function.test.ts +2 -1
- package/dist/templates/default/v1/api/tsconfig.json +2 -1
- package/dist/templates/default/v1/fullstack/.agents/skills/relkit/SKILL.md +48 -0
- package/dist/templates/default/v1/fullstack/.agents/skills/relkit/references/agent-apis.md +59 -0
- package/dist/templates/default/v1/fullstack/.agents/skills/relkit/references/cli.md +63 -0
- package/dist/templates/default/v1/fullstack/.agents/skills/relkit/references/config-environments.md +96 -0
- package/dist/templates/default/v1/fullstack/.agents/skills/relkit/references/data-apis.md +74 -0
- package/dist/templates/default/v1/fullstack/.agents/skills/relkit/references/domain-apis.md +92 -0
- package/dist/templates/default/v1/fullstack/.agents/skills/relkit/references/http-apis.md +70 -0
- package/dist/templates/default/v1/fullstack/.agents/skills/relkit/references/jobs-apis.md +49 -0
- package/dist/templates/default/v1/fullstack/.agents/skills/relkit/references/layout-migration.md +35 -0
- package/dist/templates/default/v1/fullstack/.agents/skills/relkit/references/observability-apis.md +53 -0
- package/dist/templates/default/v1/fullstack/.agents/skills/relkit/references/realtime-apis.md +98 -0
- package/dist/templates/default/v1/fullstack/.agents/skills/relkit/references/streaming-apis.md +75 -0
- package/dist/templates/default/v1/fullstack/.agents/skills/relkit/references/testing-apis.md +71 -0
- package/dist/templates/default/v1/fullstack/README.md +9 -0
- package/dist/templates/default/v1/fullstack/package.json +5 -5
- package/dist/templates/default/v1/fullstack/src/routes/hello/route.ts +2 -1
- package/dist/templates/default/v1/fullstack/src/{hello → services/hello}/agents/assistant.agent.ts +2 -1
- package/dist/templates/default/v1/fullstack/src/{hello → services/hello}/agents/review.agent.ts +1 -0
- package/dist/templates/default/v1/fullstack/src/{hello → services/hello}/functions/hello.function.ts +1 -0
- package/dist/templates/default/v1/fullstack/src/services/hello/service.ts +5 -0
- package/dist/templates/default/v1/fullstack/src/{hello → services/hello}/tools/lookup.tool.ts +2 -1
- package/dist/templates/default/v1/fullstack/tests/unit/assistant.agent.test.ts +3 -2
- package/dist/templates/default/v1/fullstack/tests/unit/hello.function.test.ts +2 -1
- package/dist/templates/default/v1/fullstack/tests/unit/review.agent.test.ts +2 -1
- package/dist/templates/default/v1/fullstack/tsconfig.json +2 -1
- package/dist/templates/default/v1/minimal/.agents/skills/relkit/SKILL.md +48 -0
- package/dist/templates/default/v1/minimal/.agents/skills/relkit/references/agent-apis.md +59 -0
- package/dist/templates/default/v1/minimal/.agents/skills/relkit/references/cli.md +63 -0
- package/dist/templates/default/v1/minimal/.agents/skills/relkit/references/config-environments.md +96 -0
- package/dist/templates/default/v1/minimal/.agents/skills/relkit/references/data-apis.md +74 -0
- package/dist/templates/default/v1/minimal/.agents/skills/relkit/references/domain-apis.md +92 -0
- package/dist/templates/default/v1/minimal/.agents/skills/relkit/references/http-apis.md +70 -0
- package/dist/templates/default/v1/minimal/.agents/skills/relkit/references/jobs-apis.md +49 -0
- package/dist/templates/default/v1/minimal/.agents/skills/relkit/references/layout-migration.md +35 -0
- package/dist/templates/default/v1/minimal/.agents/skills/relkit/references/observability-apis.md +53 -0
- package/dist/templates/default/v1/minimal/.agents/skills/relkit/references/realtime-apis.md +98 -0
- package/dist/templates/default/v1/minimal/.agents/skills/relkit/references/streaming-apis.md +75 -0
- package/dist/templates/default/v1/minimal/.agents/skills/relkit/references/testing-apis.md +71 -0
- package/dist/templates/default/v1/minimal/README.md +10 -0
- package/dist/templates/default/v1/minimal/package.json +3 -3
- package/dist/templates/default/v1/minimal/src/routes/hello/route.ts +2 -1
- package/dist/templates/default/v1/minimal/src/{hello → services/hello}/functions/hello.function.ts +7 -0
- package/dist/templates/default/v1/minimal/src/services/hello/service.ts +5 -0
- package/dist/templates/default/v1/minimal/tests/unit/hello.function.test.ts +2 -1
- package/dist/templates/default/v1/minimal/tsconfig.json +2 -1
- package/dist/templates/default/v1/tasks/.agents/skills/relkit/SKILL.md +48 -0
- package/dist/templates/default/v1/tasks/.agents/skills/relkit/references/agent-apis.md +59 -0
- package/dist/templates/default/v1/tasks/.agents/skills/relkit/references/cli.md +63 -0
- package/dist/templates/default/v1/tasks/.agents/skills/relkit/references/config-environments.md +96 -0
- package/dist/templates/default/v1/tasks/.agents/skills/relkit/references/data-apis.md +74 -0
- package/dist/templates/default/v1/tasks/.agents/skills/relkit/references/domain-apis.md +92 -0
- package/dist/templates/default/v1/tasks/.agents/skills/relkit/references/http-apis.md +70 -0
- package/dist/templates/default/v1/tasks/.agents/skills/relkit/references/jobs-apis.md +49 -0
- package/dist/templates/default/v1/tasks/.agents/skills/relkit/references/layout-migration.md +35 -0
- package/dist/templates/default/v1/tasks/.agents/skills/relkit/references/observability-apis.md +53 -0
- package/dist/templates/default/v1/tasks/.agents/skills/relkit/references/realtime-apis.md +98 -0
- package/dist/templates/default/v1/tasks/.agents/skills/relkit/references/streaming-apis.md +75 -0
- package/dist/templates/default/v1/tasks/.agents/skills/relkit/references/testing-apis.md +71 -0
- package/dist/templates/default/v1/tasks/README.md +8 -1
- package/dist/templates/default/v1/tasks/package.json +3 -3
- package/dist/templates/default/v1/tasks/src/routes/health/route.ts +2 -1
- package/dist/templates/default/v1/tasks/src/{orders → services/orders}/functions/health.function.ts +1 -0
- package/dist/templates/default/v1/tasks/src/{orders → services/orders}/jobs/export-orders.job.ts +2 -1
- package/dist/templates/default/v1/tasks/src/services/orders/service.ts +11 -0
- package/dist/templates/default/v1/tasks/src/{orders → services/orders}/tasks/export-orders.task.ts +1 -0
- package/dist/templates/default/v1/tasks/tests/unit/export-orders.task.test.ts +2 -1
- package/dist/templates/default/v1/tasks/tsconfig.json +3 -1
- package/package.json +3 -3
- package/dist/templates/default/v1/agent/src/hello/service.ts +0 -4
- package/dist/templates/default/v1/api/src/echo/service.ts +0 -4
- package/dist/templates/default/v1/api/src/hello/service.ts +0 -4
- package/dist/templates/default/v1/api/src/orders/service.ts +0 -7
- package/dist/templates/default/v1/fullstack/src/hello/service.ts +0 -4
- package/dist/templates/default/v1/minimal/src/hello/service.ts +0 -4
- package/dist/templates/default/v1/tasks/src/orders/service.ts +0 -10
|
@@ -1,43 +1,34 @@
|
|
|
1
1
|
import { type CreateOptions, type CreateTemplate } from "./options.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
readonly cloud: CreateOptions["cloud"];
|
|
5
|
-
readonly deploy: CreateOptions["deploy"];
|
|
6
|
-
readonly jobs?: CreateOptions["jobs"];
|
|
7
|
-
readonly examples: boolean;
|
|
8
|
-
}
|
|
9
|
-
export interface CreateCapabilityIdentity {
|
|
10
|
-
readonly release: string;
|
|
11
|
-
readonly bun: string;
|
|
12
|
-
readonly typescript: string;
|
|
13
|
-
readonly packageCatalogDigest: string;
|
|
14
|
-
readonly template: string;
|
|
15
|
-
readonly snapshotProtocol: number;
|
|
16
|
-
}
|
|
17
|
-
export interface CreateCapabilityEvidence extends CreateCapabilityTuple {
|
|
18
|
-
readonly identity: CreateCapabilityIdentity;
|
|
19
|
-
readonly templateDigest: string;
|
|
20
|
-
readonly freshEvidence: string;
|
|
21
|
-
readonly restartEvidence: string;
|
|
22
|
-
}
|
|
23
|
-
type PartialCreateCapability = Readonly<{
|
|
24
|
-
template?: string;
|
|
25
|
-
cloud?: string;
|
|
26
|
-
deploy?: string;
|
|
27
|
-
jobs?: string | undefined;
|
|
28
|
-
examples?: boolean;
|
|
29
|
-
}>;
|
|
2
|
+
import type { CreateCapabilityIdentity, CreateCapabilityEvidence, PartialCreateCapability } from "./create-capabilities.types.js";
|
|
3
|
+
export type { CreateCapabilityTuple, CreateCapabilityIdentity, CreateCapabilityEvidence, } from "./create-capabilities.types.js";
|
|
30
4
|
export declare const CREATE_CAPABILITY_TABLE: Readonly<{
|
|
31
5
|
version: 1;
|
|
32
6
|
entries: readonly CreateCapabilityEvidence[];
|
|
33
7
|
}>;
|
|
34
|
-
/**
|
|
8
|
+
/**
|
|
9
|
+
* Reads the executing SDK's release and pinned dependency catalog without acquiring application clients.
|
|
10
|
+
* @returns The complete identity that packaged evidence must match exactly.
|
|
11
|
+
*/
|
|
35
12
|
export declare function currentCreateCapabilityIdentity(): CreateCapabilityIdentity;
|
|
36
|
-
/**
|
|
13
|
+
/**
|
|
14
|
+
* Rejects missing or stale tuples before destination planning or installation.
|
|
15
|
+
* @param options - Complete public creation choice.
|
|
16
|
+
* @param identity - Executing tool identity, or an explicit identity used by compatibility checks.
|
|
17
|
+
* @returns When a current evidence entry admits the complete tuple.
|
|
18
|
+
*/
|
|
37
19
|
export declare function assertCreateCapability(options: Pick<CreateOptions, "template" | "cloud" | "deploy" | "jobs" | "examples">, identity?: CreateCapabilityIdentity): void;
|
|
38
|
-
/**
|
|
20
|
+
/**
|
|
21
|
+
* Filters interactive template choices through the same evidence allow-list.
|
|
22
|
+
* @param options - Choices resolved so far by the native prompt flow.
|
|
23
|
+
* @param identity - Executing tool identity.
|
|
24
|
+
* @returns Only templates admitted by current complete evidence entries.
|
|
25
|
+
*/
|
|
39
26
|
export declare function supportedCreateTemplates(options: PartialCreateCapability, identity?: CreateCapabilityIdentity): readonly CreateTemplate[];
|
|
40
|
-
/**
|
|
27
|
+
/**
|
|
28
|
+
* Checks every field of a complete tuple and its exact tool identity.
|
|
29
|
+
* @param options - Complete creation choice.
|
|
30
|
+
* @param identity - Executing tool identity.
|
|
31
|
+
* @returns Whether a current complete evidence entry admits this choice.
|
|
32
|
+
*/
|
|
41
33
|
export declare function supported(options: Pick<CreateOptions, "template" | "cloud" | "deploy" | "jobs" | "examples">, identity?: CreateCapabilityIdentity): boolean;
|
|
42
|
-
export {};
|
|
43
34
|
//# sourceMappingURL=create-capabilities.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-capabilities.d.ts","sourceRoot":"","sources":["../src/create-capabilities.ts"],"names":[],"mappings":"AAOA,OAAO,EAAsB,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAE3F,
|
|
1
|
+
{"version":3,"file":"create-capabilities.d.ts","sourceRoot":"","sources":["../src/create-capabilities.ts"],"names":[],"mappings":"AAOA,OAAO,EAAsB,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAE3F,OAAO,KAAK,EAEV,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,gCAAgC,CAAC;AACxC,YAAY,EACV,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,gCAAgC,CAAC;AAsBxC,eAAO,MAAM,uBAAuB;;;EAGlC,CAAC;AAEH;;;GAGG;AACH,wBAAgB,+BAA+B,IAAI,wBAAwB,CAU1E;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC,EACnF,QAAQ,GAAE,wBAA4D,GACrE,IAAI,CAKN;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,uBAAuB,EAChC,QAAQ,GAAE,wBAA4D,GACrE,SAAS,cAAc,EAAE,CAI3B;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CACvB,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC,EACnF,QAAQ,GAAE,wBAA4D,GACrE,OAAO,CAUT"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Packaged creation support is an allow-list backed by
|
|
2
|
+
* Packaged creation support is an allow-list backed by exact packed readiness evidence.
|
|
3
3
|
* Candidate literals remain parseable so explicit unsupported requests can return
|
|
4
4
|
* a precise pre-staging diagnostic instead of masquerading as syntax errors.
|
|
5
5
|
*/
|
|
@@ -13,23 +13,26 @@ const entries = Object.freeze([
|
|
|
13
13
|
deploy: "none",
|
|
14
14
|
examples: true,
|
|
15
15
|
identity: Object.freeze({
|
|
16
|
-
release: "0.7.
|
|
16
|
+
release: "0.7.7",
|
|
17
17
|
bun: "1.3.10",
|
|
18
18
|
typescript: "5.9.3",
|
|
19
19
|
packageCatalogDigest: "ac7c2f56e61fca5ab890775cf4c483722cb590e488ee7fc4741224cbb4f50ccd",
|
|
20
20
|
template: "default/v1/minimal",
|
|
21
21
|
snapshotProtocol: 1,
|
|
22
22
|
}),
|
|
23
|
-
templateDigest: "
|
|
24
|
-
freshEvidence: "docs/evidence/create-capabilities/0.7.
|
|
25
|
-
restartEvidence: "docs/evidence/create-capabilities/0.7.
|
|
23
|
+
templateDigest: "0988a030a6d7c12f495ba7d097618941061e2d2c4946eb0799c0929f7587da6b",
|
|
24
|
+
freshEvidence: "docs/evidence/create-capabilities/0.7.7/fresh.json",
|
|
25
|
+
restartEvidence: "docs/evidence/create-capabilities/0.7.7/restart.json",
|
|
26
26
|
}),
|
|
27
27
|
]);
|
|
28
28
|
export const CREATE_CAPABILITY_TABLE = Object.freeze({
|
|
29
29
|
version: 1,
|
|
30
30
|
entries,
|
|
31
31
|
});
|
|
32
|
-
/**
|
|
32
|
+
/**
|
|
33
|
+
* Reads the executing SDK's release and pinned dependency catalog without acquiring application clients.
|
|
34
|
+
* @returns The complete identity that packaged evidence must match exactly.
|
|
35
|
+
*/
|
|
33
36
|
export function currentCreateCapabilityIdentity() {
|
|
34
37
|
const catalog = manifest.relkit.buildCatalog;
|
|
35
38
|
return {
|
|
@@ -41,19 +44,34 @@ export function currentCreateCapabilityIdentity() {
|
|
|
41
44
|
snapshotProtocol: 1,
|
|
42
45
|
};
|
|
43
46
|
}
|
|
44
|
-
/**
|
|
47
|
+
/**
|
|
48
|
+
* Rejects missing or stale tuples before destination planning or installation.
|
|
49
|
+
* @param options - Complete public creation choice.
|
|
50
|
+
* @param identity - Executing tool identity, or an explicit identity used by compatibility checks.
|
|
51
|
+
* @returns When a current evidence entry admits the complete tuple.
|
|
52
|
+
*/
|
|
45
53
|
export function assertCreateCapability(options, identity = currentCreateCapabilityIdentity()) {
|
|
46
54
|
if (supported(options, identity))
|
|
47
55
|
return;
|
|
48
56
|
throw new CreateOptionsError(`Creation combination is not certified: ${formatTuple(options)}. Supported: ${supportedTuples(identity).join(", ") || "none for this tool identity"}.`);
|
|
49
57
|
}
|
|
50
|
-
/**
|
|
58
|
+
/**
|
|
59
|
+
* Filters interactive template choices through the same evidence allow-list.
|
|
60
|
+
* @param options - Choices resolved so far by the native prompt flow.
|
|
61
|
+
* @param identity - Executing tool identity.
|
|
62
|
+
* @returns Only templates admitted by current complete evidence entries.
|
|
63
|
+
*/
|
|
51
64
|
export function supportedCreateTemplates(options, identity = currentCreateCapabilityIdentity()) {
|
|
52
65
|
return CREATE_CAPABILITY_TABLE.entries
|
|
53
66
|
.filter((entry) => current(entry.identity, identity) && matchesPartial(entry, options))
|
|
54
67
|
.map((entry) => entry.template);
|
|
55
68
|
}
|
|
56
|
-
/**
|
|
69
|
+
/**
|
|
70
|
+
* Checks every field of a complete tuple and its exact tool identity.
|
|
71
|
+
* @param options - Complete creation choice.
|
|
72
|
+
* @param identity - Executing tool identity.
|
|
73
|
+
* @returns Whether a current complete evidence entry admits this choice.
|
|
74
|
+
*/
|
|
57
75
|
export function supported(options, identity = currentCreateCapabilityIdentity()) {
|
|
58
76
|
return CREATE_CAPABILITY_TABLE.entries.some((entry) => current(entry.identity, identity) &&
|
|
59
77
|
entry.template === options.template &&
|
|
@@ -62,11 +80,22 @@ export function supported(options, identity = currentCreateCapabilityIdentity())
|
|
|
62
80
|
entry.jobs === options.jobs &&
|
|
63
81
|
entry.examples === options.examples);
|
|
64
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* Formats the current complete choices for a public refusal diagnostic.
|
|
85
|
+
* @param identity - Executing tool identity.
|
|
86
|
+
* @returns Deterministic native option descriptions.
|
|
87
|
+
*/
|
|
65
88
|
function supportedTuples(identity) {
|
|
66
89
|
return CREATE_CAPABILITY_TABLE.entries
|
|
67
90
|
.filter((entry) => current(entry.identity, identity))
|
|
68
91
|
.map(formatTuple);
|
|
69
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* Compares all mandatory tool identity fields without ignoring patch versions.
|
|
95
|
+
* @param left - Recorded certification identity.
|
|
96
|
+
* @param right - Current executing identity.
|
|
97
|
+
* @returns Whether every mandatory field matches.
|
|
98
|
+
*/
|
|
70
99
|
function current(left, right) {
|
|
71
100
|
return (left.release === right.release &&
|
|
72
101
|
left.bun === right.bun &&
|
|
@@ -75,6 +104,12 @@ function current(left, right) {
|
|
|
75
104
|
left.template === right.template &&
|
|
76
105
|
left.snapshotProtocol === right.snapshotProtocol);
|
|
77
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* Preserves unresolved native prompt choices while filtering complete certified entries.
|
|
109
|
+
* @param entry - Complete recorded tuple.
|
|
110
|
+
* @param options - Choices already supplied by the user.
|
|
111
|
+
* @returns Whether the entry agrees with every resolved choice.
|
|
112
|
+
*/
|
|
78
113
|
function matchesPartial(entry, options) {
|
|
79
114
|
return ((options.template === undefined || entry.template === options.template) &&
|
|
80
115
|
(options.cloud === undefined || entry.cloud === options.cloud) &&
|
|
@@ -82,13 +117,21 @@ function matchesPartial(entry, options) {
|
|
|
82
117
|
(options.jobs === undefined || entry.jobs === options.jobs) &&
|
|
83
118
|
(options.examples === undefined || entry.examples === options.examples));
|
|
84
119
|
}
|
|
120
|
+
/**
|
|
121
|
+
* Describes native options using the public no-jobs and wildcard semantics.
|
|
122
|
+
* @param options - Complete or partially resolved tuple.
|
|
123
|
+
* @returns One portable diagnostic string.
|
|
124
|
+
*/
|
|
85
125
|
function formatTuple(options) {
|
|
126
|
+
let examples = "*";
|
|
127
|
+
if (options.examples !== undefined)
|
|
128
|
+
examples = options.examples ? "on" : "off";
|
|
86
129
|
return [
|
|
87
130
|
`template=${options.template ?? "*"}`,
|
|
88
131
|
`jobs=${options.jobs ?? "none"}`,
|
|
89
132
|
`cloud=${options.cloud ?? "*"}`,
|
|
90
133
|
`deploy=${options.deploy ?? "*"}`,
|
|
91
|
-
`examples=${
|
|
134
|
+
`examples=${examples}`,
|
|
92
135
|
].join("/");
|
|
93
136
|
}
|
|
94
137
|
//# sourceMappingURL=create-capabilities.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-capabilities.js","sourceRoot":"","sources":["../src/create-capabilities.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAA2C,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"create-capabilities.js","sourceRoot":"","sources":["../src/create-capabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/** Describes exact creation tuples and their recorded package, tool and template evidence identities. */
|
|
2
|
+
import type { CreateOptions } from "./options.js";
|
|
3
|
+
/** Complete public creation combination; absence of jobs preserves the native no-jobs option. */
|
|
4
|
+
export interface CreateCapabilityTuple {
|
|
5
|
+
/** Authored starter selected by the public CLI. */
|
|
6
|
+
readonly template: CreateOptions["template"];
|
|
7
|
+
/** Explicit cloud ownership selection. */
|
|
8
|
+
readonly cloud: CreateOptions["cloud"];
|
|
9
|
+
/** Explicit deployment engine selection. */
|
|
10
|
+
readonly deploy: CreateOptions["deploy"];
|
|
11
|
+
/** Optional durable-job integration selection. */
|
|
12
|
+
readonly jobs?: CreateOptions["jobs"];
|
|
13
|
+
/** Whether the starter's example sources are retained. */
|
|
14
|
+
readonly examples: boolean;
|
|
15
|
+
}
|
|
16
|
+
/** Every field must match the running packaged tool before a tuple is offered. */
|
|
17
|
+
export interface CreateCapabilityIdentity {
|
|
18
|
+
/** Exact first-party release version. */
|
|
19
|
+
readonly release: string;
|
|
20
|
+
/** Pinned native Bun version. */
|
|
21
|
+
readonly bun: string;
|
|
22
|
+
/** Exact TypeScript package version. */
|
|
23
|
+
readonly typescript: string;
|
|
24
|
+
/** SHA-256 of the complete tool dependency catalog. */
|
|
25
|
+
readonly packageCatalogDigest: string;
|
|
26
|
+
/** Exact source template directory identity. */
|
|
27
|
+
readonly template: string;
|
|
28
|
+
/** Prepared-input snapshot protocol version. */
|
|
29
|
+
readonly snapshotProtocol: number;
|
|
30
|
+
}
|
|
31
|
+
/** Offered tuple backed by complete fresh and restart measurements for its template bytes. */
|
|
32
|
+
export interface CreateCapabilityEvidence extends CreateCapabilityTuple {
|
|
33
|
+
/** Exact tool and package catalog identity measured by the recorded certification host. */
|
|
34
|
+
readonly identity: CreateCapabilityIdentity;
|
|
35
|
+
/** SHA-256 over ordered template paths and their complete bytes. */
|
|
36
|
+
readonly templateDigest: string;
|
|
37
|
+
/** Repository-relative complete 20-attempt fresh report. */
|
|
38
|
+
readonly freshEvidence: string;
|
|
39
|
+
/** Repository-relative complete 20-attempt restart report. */
|
|
40
|
+
readonly restartEvidence: string;
|
|
41
|
+
}
|
|
42
|
+
/** Unresolved interactive choices used only to filter certified complete tuples. */
|
|
43
|
+
export type PartialCreateCapability = Readonly<{
|
|
44
|
+
/** Optional starter choice. */
|
|
45
|
+
template?: string;
|
|
46
|
+
/** Optional cloud choice. */
|
|
47
|
+
cloud?: string;
|
|
48
|
+
/** Optional deployment choice. */
|
|
49
|
+
deploy?: string;
|
|
50
|
+
/** Optional job choice; undefined retains the native prompt semantics. */
|
|
51
|
+
jobs?: string | undefined;
|
|
52
|
+
/** Optional example choice. */
|
|
53
|
+
examples?: boolean;
|
|
54
|
+
}>;
|
|
55
|
+
//# sourceMappingURL=create-capabilities.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-capabilities.types.d.ts","sourceRoot":"","sources":["../src/create-capabilities.types.ts"],"names":[],"mappings":"AAAA,yGAAyG;AACzG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,iGAAiG;AACjG,MAAM,WAAW,qBAAqB;IACpC,mDAAmD;IACnD,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAC7C,0CAA0C;IAC1C,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IACvC,4CAA4C;IAC5C,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IACzC,kDAAkD;IAClD,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,0DAA0D;IAC1D,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED,kFAAkF;AAClF,MAAM,WAAW,wBAAwB;IACvC,yCAAyC;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,iCAAiC;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,uDAAuD;IACvD,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,gDAAgD;IAChD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,gDAAgD;IAChD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAED,8FAA8F;AAC9F,MAAM,WAAW,wBAAyB,SAAQ,qBAAqB;IACrE,2FAA2F;IAC3F,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC;IAC5C,oEAAoE;IACpE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,4DAA4D;IAC5D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,8DAA8D;IAC9D,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED,oFAAoF;AACpF,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC;IAC7C,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-capabilities.types.js","sourceRoot":"","sources":["../src/create-capabilities.types.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain-artifact.d.ts","sourceRoot":"","sources":["../src/domain-artifact.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"domain-artifact.d.ts","sourceRoot":"","sources":["../src/domain-artifact.ts"],"names":[],"mappings":"AAQA,OAAO,EAAyB,KAAK,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAEnF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAEvE;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,GAAE,SAAS,GAAG,OAAmB,GAC1C,cAAc,CAUhB;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,EAChC,KAAK,EAAE,MAAM,GACZ,kBAAkB,CAgBpB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAIxE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,GAC1C,MAAM,CAIR;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,sBAAsB,GAAG,MAAM,CAEpE;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAE5C;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAEhD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGhD;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC"}
|
package/dist/domain-artifact.js
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Derives scaffold source destinations from an already selected public boundary
|
|
3
|
+
* while preserving logical artifact IDs and bindings. Pure compatibility helpers
|
|
4
|
+
* report usage/collision exceptions; owning generator workflows translate them.
|
|
5
|
+
*/
|
|
6
|
+
import { dirname } from "node:path";
|
|
1
7
|
import { ADD_FAILURE_CODES, AddScaffoldError } from "./add-types.js";
|
|
2
8
|
import { normalizeArtifactName } from "./add-name.js";
|
|
3
9
|
import { PlanBuilder } from "./plan-builder.js";
|
|
@@ -16,7 +22,7 @@ export function domainArtifact(target, value, directory, fileSuffix, kindSuffix,
|
|
|
16
22
|
const suffix = kindSuffix ? normalizeArtifactName(kindSuffix) : undefined;
|
|
17
23
|
return {
|
|
18
24
|
name,
|
|
19
|
-
path:
|
|
25
|
+
path: `${dirname(target.servicePath)}/${directory}/${name.fileStem}.${fileSuffix}.ts`,
|
|
20
26
|
id: `${target.domain.idSegment}.${name.idSegment}${suffix ? `-${suffix.idSegment}` : ""}`,
|
|
21
27
|
binding: `${name.identifier}${suffix ? capitalize(suffix.identifier) : ""}`,
|
|
22
28
|
exportKind,
|
|
@@ -102,7 +108,9 @@ export function collision(message) {
|
|
|
102
108
|
* @returns The identifier with its first character capitalized.
|
|
103
109
|
*/
|
|
104
110
|
export function capitalize(value) {
|
|
105
|
-
|
|
111
|
+
if (value.length === 0)
|
|
112
|
+
throw new TypeError("A normalized identifier must not be empty.");
|
|
113
|
+
return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;
|
|
106
114
|
}
|
|
107
115
|
/**
|
|
108
116
|
* Reads the file stem before the first extension separator.
|
|
@@ -110,6 +118,6 @@ export function capitalize(value) {
|
|
|
110
118
|
* @returns The final path component up to its first dot.
|
|
111
119
|
*/
|
|
112
120
|
export function fileStem(path) {
|
|
113
|
-
return path.split("/").at(-1)
|
|
121
|
+
return path.split("/").at(-1)?.split(".")[0] ?? "";
|
|
114
122
|
}
|
|
115
123
|
//# sourceMappingURL=domain-artifact.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain-artifact.js","sourceRoot":"","sources":["../src/domain-artifact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAErE,OAAO,EAAE,qBAAqB,EAA+B,MAAM,eAAe,CAAC;AAEnF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAoB,EACpB,KAAa,EACb,SAAiB,EACjB,UAAkB,EAClB,UAAmB,EACnB,aAAkC,SAAS;IAE3C,MAAM,IAAI,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1E,OAAO;QACL,IAAI;QACJ,IAAI,EAAE,OAAO,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"domain-artifact.js","sourceRoot":"","sources":["../src/domain-artifact.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAErE,OAAO,EAAE,qBAAqB,EAA+B,MAAM,eAAe,CAAC;AAEnF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAoB,EACpB,KAAa,EACb,SAAiB,EACjB,UAAkB,EAClB,UAAmB,EACnB,aAAkC,SAAS;IAE3C,MAAM,IAAI,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1E,OAAO;QACL,IAAI;QACJ,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,SAAS,IAAI,IAAI,CAAC,QAAQ,IAAI,UAAU,KAAK;QACrF,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;QACzF,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;QAC3E,UAAU;KACX,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAoB,EACpB,MAAoB,EACpB,IAAgC,EAChC,KAAa;IAEb,MAAM,UAAU,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CACzC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,CACnF,CAAC;IACF,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CACzC,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CACzE,CAAC;IACF,MAAM,eAAe,GAAG,UAAU,CAAC,IAAI,CACrC,CAAC,QAAQ,EAAE,EAAE,CACX,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,QAAQ;QACxE,qBAAqB,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,QAAQ,CAClF,CAAC;IACF,MAAM,MAAM,GAAG,KAAK,IAAI,eAAe,CAAC;IACxC,IAAI,MAAM,KAAK,SAAS;QAAE,KAAK,CAAC,WAAW,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC,CAAC;IAC1F,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAoB,EAAE,EAAU;IAChE,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC7D,SAAS,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;AACtE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,OAAe,EACf,MAAc,EACd,UAA2C;IAE3C,OAAO,UAAU,KAAK,OAAO;QAC3B,CAAC,CAAC,YAAY,OAAO,YAAY,MAAM,IAAI;QAC3C,CAAC,CAAC,UAAU,OAAO,UAAU,MAAM,IAAI,CAAC;AAC5C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,MAA8B;IAC1D,OAAO,gGAAgG,MAAM,CAAC,SAAS,SAAS,CAAC;AACnI,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,OAAe;IACnC,MAAM,IAAI,gBAAgB,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC/D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,MAAM,IAAI,gBAAgB,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACnE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,4CAA4C,CAAC,CAAC;IAC1F,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAC7D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACrD,CAAC"}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plans service selection and public-member edits through generator filesystem
|
|
3
|
+
* authority. Shared layout discovery chooses physical destinations; operations
|
|
4
|
+
* remain lazy and translate expected scaffold failures without changing IDs.
|
|
5
|
+
*/
|
|
1
6
|
import { Effect } from "effect";
|
|
2
7
|
import { GeneratorFileSystem } from "./generator-filesystem.js";
|
|
3
8
|
import { type GeneratorDomainError, type GeneratorIoError } from "./generator-errors.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain-planning.d.ts","sourceRoot":"","sources":["../src/domain-planning.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"domain-planning.d.ts","sourceRoot":"","sources":["../src/domain-planning.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAOhC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAC;AAM/B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,qHAmD/B,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,wOA0BjC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAEzE;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,EACnD,QAAQ,EAAE,cAAc,EACxB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAIf;AAID,OAAO,EACL,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,aAAa,GACd,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC/E,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC"}
|
package/dist/domain-planning.js
CHANGED
|
@@ -1,4 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plans service selection and public-member edits through generator filesystem
|
|
3
|
+
* authority. Shared layout discovery chooses physical destinations; operations
|
|
4
|
+
* remain lazy and translate expected scaffold failures without changing IDs.
|
|
5
|
+
*/
|
|
1
6
|
import { Effect } from "effect";
|
|
7
|
+
import { domainError, domainTry } from "./generator-errors.js";
|
|
8
|
+
import { scaffoldServiceBoundary } from "./scaffold-layout.js";
|
|
9
|
+
import { ADD_FAILURE_CODES, AddScaffoldError } from "./add-types.js";
|
|
2
10
|
import { observeExecution } from "@relkit/contracts/operation";
|
|
3
11
|
import { GeneratorFileSystem } from "./generator-filesystem.js";
|
|
4
12
|
import { scaffoldErrors, } from "./generator-errors.js";
|
|
@@ -14,31 +22,32 @@ import { addFactoryObjectMember, addSourceImport } from "./source-edit.js";
|
|
|
14
22
|
export const resolveDomainEffect = Effect.fn("Scaffold.resolveDomain")(function* (builder) {
|
|
15
23
|
const request = builder.request;
|
|
16
24
|
if (request.service && request.createService)
|
|
17
|
-
usage
|
|
25
|
+
return yield* domainError(new AddScaffoldError(ADD_FAILURE_CODES.usage, "--service and --create-service are exclusive."));
|
|
18
26
|
if (request.createService) {
|
|
19
|
-
const domain = normalizeArtifactName(request.createService);
|
|
27
|
+
const domain = yield* domainTry(() => normalizeArtifactName(request.createService ?? ""));
|
|
20
28
|
if (builder.discovery.services.some((service) => service.domain === domain.fileStem)) {
|
|
21
|
-
collision
|
|
29
|
+
return yield* domainError(new AddScaffoldError(ADD_FAILURE_CODES.collision, `Service ${domain.fileStem} already exists.`));
|
|
22
30
|
}
|
|
23
|
-
const servicePath =
|
|
31
|
+
const servicePath = yield* domainTry(() => scaffoldServiceBoundary(builder.discovery, domain.fileStem));
|
|
24
32
|
yield* builder.createEffect(servicePath, serviceSource(domain));
|
|
25
33
|
return { domain, servicePath, service: undefined };
|
|
26
34
|
}
|
|
27
35
|
const generic = builder.discovery.services.filter((service) => service.capability === "generic");
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
36
|
+
let selected = generic.length === 1 ? generic[0] : undefined;
|
|
37
|
+
if (request.service) {
|
|
38
|
+
const selectedName = yield* domainTry(() => normalizeArtifactName(request.service ?? ""));
|
|
39
|
+
selected = generic.find((service) => [service.domain, service.binding].includes(selectedName.fileStem));
|
|
40
|
+
}
|
|
33
41
|
if (selected === undefined) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
42
|
+
let message = "Multiple generic services exist; use --service <name>.";
|
|
43
|
+
if (generic.length === 0)
|
|
44
|
+
message = "No generic service exists; use --create-service <name>.";
|
|
45
|
+
if (request.service)
|
|
46
|
+
message = `Unknown generic service: ${request.service}`;
|
|
47
|
+
return yield* domainError(new AddScaffoldError(ADD_FAILURE_CODES.usage, message));
|
|
39
48
|
}
|
|
40
49
|
return {
|
|
41
|
-
domain: normalizeArtifactName(selected.domain),
|
|
50
|
+
domain: yield* domainTry(() => normalizeArtifactName(selected.domain)),
|
|
42
51
|
servicePath: selected.path,
|
|
43
52
|
service: selected,
|
|
44
53
|
};
|
|
@@ -79,6 +88,6 @@ export function resolveDomain(builder) {
|
|
|
79
88
|
export function addPublicMember(builder, target, category, artifact, artifactPath) {
|
|
80
89
|
return runGeneratorPromise(addPublicMemberEffect(builder, target, category, artifact, artifactPath));
|
|
81
90
|
}
|
|
82
|
-
import { sourceModule, sourceImport, serviceSource
|
|
91
|
+
import { sourceModule, sourceImport, serviceSource } from "./domain-artifact.js";
|
|
83
92
|
export { domainArtifact, resolveArtifact, assertAvailableId, sourceModule, sourceImport, serviceSource, } from "./domain-artifact.js";
|
|
84
93
|
//# sourceMappingURL=domain-planning.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain-planning.js","sourceRoot":"","sources":["../src/domain-planning.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"domain-planning.js","sourceRoot":"","sources":["../src/domain-planning.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
import { GeneratorFileSystem } from "./generator-filesystem.js";
|
|
3
|
+
import type { CreateOptions } from "./options.js";
|
|
4
|
+
/** Applies the original validated manifest patch while preserving unrelated native JSON fields.
|
|
5
|
+
* @param root - Owned staged project root.
|
|
6
|
+
* @param options - Original explicit creation flags; no provider is acquired.
|
|
7
|
+
* @returns Completion after deterministic bytes and original mode are published.
|
|
8
|
+
*/
|
|
9
|
+
export declare const customizeDeploymentManifestEffect: (root: string, options: CreateOptions) => Effect.Effect<undefined, import("./generator-errors.js").GeneratorIoError | import("./generator-errors.js").GeneratorDomainError, GeneratorFileSystem>;
|
|
10
|
+
//# sourceMappingURL=generate-deployment-manifest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-deployment-manifest.d.ts","sourceRoot":"","sources":["../src/generate-deployment-manifest.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAIhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,kMA+C7C,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/** Updates only explicitly selected deployment/jobs dependency and script fields through the generator's captured filesystem authority. */
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { Effect, Schema } from "effect";
|
|
4
|
+
import { observeExecution } from "@relkit/contracts/operation";
|
|
5
|
+
import { GeneratorFileSystem } from "./generator-filesystem.js";
|
|
6
|
+
import { GenerateProjectError } from "./generate-types.js";
|
|
7
|
+
import { domainError, domainTry } from "./generator-errors.js";
|
|
8
|
+
import { TemplateManifest, JsonObject } from "./project-manifest.schemas.js";
|
|
9
|
+
/** Applies the original validated manifest patch while preserving unrelated native JSON fields.
|
|
10
|
+
* @param root - Owned staged project root.
|
|
11
|
+
* @param options - Original explicit creation flags; no provider is acquired.
|
|
12
|
+
* @returns Completion after deterministic bytes and original mode are published.
|
|
13
|
+
*/
|
|
14
|
+
export const customizeDeploymentManifestEffect = Effect.fn("ProjectFiles.customizeDeploymentManifest")(function* (root, options) {
|
|
15
|
+
const manifestPath = join(root, "package.json");
|
|
16
|
+
const fs = yield* GeneratorFileSystem;
|
|
17
|
+
const source = yield* fs.readText(manifestPath);
|
|
18
|
+
const parsed = yield* domainTry(() => JSON.parse(source));
|
|
19
|
+
const decoded = yield* Schema.decodeUnknownEffect(TemplateManifest)(parsed).pipe(Effect.mapError(domainError));
|
|
20
|
+
const original = yield* Schema.decodeUnknownEffect(JsonObject)(parsed).pipe(Effect.mapError(domainError));
|
|
21
|
+
const manifest = {
|
|
22
|
+
...original,
|
|
23
|
+
...decoded,
|
|
24
|
+
dependencies: { ...decoded.dependencies },
|
|
25
|
+
scripts: { ...decoded.scripts },
|
|
26
|
+
};
|
|
27
|
+
const version = manifest.dependencies["@relkit/app"];
|
|
28
|
+
if (version === undefined)
|
|
29
|
+
return yield* Effect.fail(domainError(new GenerateProjectError("RELKIT_CREATE_TEMPLATE_INVALID", "Template has no @relkit/app dependency.")));
|
|
30
|
+
if (options.cloud === "aws")
|
|
31
|
+
manifest.dependencies["@relkit/aws"] = version;
|
|
32
|
+
if (options.deploy === "pulumi")
|
|
33
|
+
manifest.dependencies["@relkit/pulumi"] = version;
|
|
34
|
+
if (options.jobs !== undefined) {
|
|
35
|
+
manifest.dependencies["@relkit/docker"] = version;
|
|
36
|
+
manifest.dependencies["@relkit/local"] = version;
|
|
37
|
+
manifest.dependencies[`@relkit/${options.jobs.replace(/-docker$/u, "")}`] = version;
|
|
38
|
+
}
|
|
39
|
+
if (options.cloud === "aws" && options.deploy === "pulumi") {
|
|
40
|
+
manifest.scripts["deploy:preview"] = "relkit deploy preview";
|
|
41
|
+
manifest.scripts.deploy = "relkit deploy up";
|
|
42
|
+
}
|
|
43
|
+
manifest.scripts = sorted(manifest.scripts);
|
|
44
|
+
manifest.dependencies = sorted(manifest.dependencies);
|
|
45
|
+
yield* fs.write(manifestPath, `${JSON.stringify(manifest, null, 2)}\n`);
|
|
46
|
+
yield* fs.chmod(manifestPath, 0o644);
|
|
47
|
+
}, (effect) => observeExecution("generator", "generation.deploymentManifest", effect));
|
|
48
|
+
/**
|
|
49
|
+
* Sorts owned manifest fields deterministically.
|
|
50
|
+
* @param values - Ordered declarations or argument values.
|
|
51
|
+
* @returns A new manifest string record sorted by key.
|
|
52
|
+
*/
|
|
53
|
+
function sorted(values) {
|
|
54
|
+
return Object.fromEntries(Object.entries(values).sort(([left], [right]) => left.localeCompare(right)));
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=generate-deployment-manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-deployment-manifest.js","sourceRoot":"","sources":["../src/generate-deployment-manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Effect } from "effect";
|
|
2
|
-
import { GeneratorFileSystem } from "./generator-filesystem.js";
|
|
3
2
|
import type { CreateOptions } from "./options.js";
|
|
4
3
|
/**
|
|
5
4
|
* Applies only explicit deployment and jobs flags, retaining concrete template dependency versions.
|
|
@@ -7,12 +6,12 @@ import type { CreateOptions } from "./options.js";
|
|
|
7
6
|
* @param options - Explicit options retaining existing defaults.
|
|
8
7
|
* @returns Completion after generated deployment/provider source and manifest fields match explicit flags.
|
|
9
8
|
*/
|
|
10
|
-
export declare const customizeDeploymentEffect: (root: string, options: CreateOptions) => Effect.Effect<
|
|
9
|
+
export declare const customizeDeploymentEffect: (root: string, options: CreateOptions) => Effect.Effect<void, import("./generator-errors.js").GeneratorIoError | import("./generator-errors.js").GeneratorDomainError, import("./generator-filesystem.js").GeneratorFileSystem>;
|
|
11
10
|
/**
|
|
12
11
|
* Adjusts the tasks fixture to the selected supported jobs adapter.
|
|
13
12
|
* @param root - Absolute project or owned resource root.
|
|
14
13
|
* @param options - Explicit options retaining existing defaults.
|
|
15
14
|
* @returns Completion after task/job examples match the selected provider's supported operations.
|
|
16
15
|
*/
|
|
17
|
-
export declare const customizeTaskFixtureEffect: (root: string, options: CreateOptions) => Effect.Effect<void, import("./generator-errors.js").GeneratorIoError | import("./generator-errors.js").GeneratorDomainError, GeneratorFileSystem>;
|
|
16
|
+
export declare const customizeTaskFixtureEffect: (root: string, options: CreateOptions) => Effect.Effect<void, import("./generator-errors.js").GeneratorIoError | import("./generator-errors.js").GeneratorDomainError, import("./generator-filesystem.js").GeneratorFileSystem>;
|
|
18
17
|
//# sourceMappingURL=generate-deployment.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-deployment.d.ts","sourceRoot":"","sources":["../src/generate-deployment.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generate-deployment.d.ts","sourceRoot":"","sources":["../src/generate-deployment.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,iOAkCrC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,iOA8BtC,CAAC"}
|