@cat-factory/orchestration 0.59.2 → 0.60.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"frontend-infra.logic.js","sourceRoot":"","sources":["../../../src/modules/execution/frontend-infra.logic.ts"],"names":[],"mappings":"AAwBA;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,uBAAuB,CACrC,MAAsB,EACtB,kBAA+C;IAE/C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAmC,CAAA;IAC3D,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;QACpC,IAAI,CAAC,MAAM;YAAE,SAAQ;QACrB,MAAM,UAAU,GACd,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS;YAC/B,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC;YACvD,CAAC,CAAC,SAAS,CAAA;QACf,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;IACxE,CAAC;IACD,OAAO,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;AAC/B,CAAC;AAUD;;;;;;;;;GASG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAAgC,EAChC,eAAoC;IAEpC,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAkB,CAAA;IACpD,IAAI,eAAe,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,kBAAkB,CAAA;IACzD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAA;IAC1C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IACE,MAAM,CAAC,OAAO;YACd,MAAM,CAAC,GAAG;YACV,MAAM,CAAC,MAAM,KAAK,OAAO;YACzB,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;YACnC,MAAM,CAAC,SAAS,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,iBAAiB,CAAC,EAC9E,CAAC;YACD,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;YAC9C,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;QACpD,CAAC;IACH,CAAC;IACD,OAAO,kBAAkB,CAAA;AAC3B,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,oBAAoB,CAAC,MAAsB;IACzD,OAAO,IAAI,GAAG,CACZ,MAAM,CAAC,eAAe;SACnB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC;SAC1C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,MAAqC,CAAC,cAAc,CAAC,CACvE,CAAA;AACH,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,qBAAqB,CAAC,QAA4C;IAChF,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAA;AACzD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAsB;IACtD,OAAO,MAAM,CAAC,eAAe,CAAC,IAAI,CAChC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CACjE,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"frontend-infra.logic.js","sourceRoot":"","sources":["../../../src/modules/execution/frontend-infra.logic.ts"],"names":[],"mappings":"AAEA,6FAA6F;AAC7F,gGAAgG;AAChG,gGAAgG;AAChG,wFAAwF;AACxF,8FAA8F;AAC9F,yFAAyF;AACzF,kDAAkD;AAClD,EAAE;AACF,gGAAgG;AAChG,iGAAiG;AACjG,iGAAiG;AACjG,kGAAkG;AAClG,8FAA8F;AAC9F,kCAAkC;AAElC,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,wBAAwB,CAAA;AAG/B,kGAAkG;AAClG,MAAM,UAAU,qBAAqB,CAAC,QAA4C;IAChF,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAA;AACzD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAsB;IACtD,OAAO,MAAM,CAAC,eAAe,CAAC,IAAI,CAChC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CACjE,CAAA;AACH,CAAC"}
@@ -0,0 +1,59 @@
1
+ import type { Clock, IdGenerator, PackageRegistryConnectionRepository, SecretCipher, WorkspaceRepository } from '@cat-factory/kernel';
2
+ import type { AddPackageRegistryInput, PackageRegistryListView } from '@cat-factory/contracts';
3
+ /** HKDF domain-separation tag for the sealed registry entries (see WebCryptoSecretCipher). */
4
+ export declare const PACKAGE_REGISTRY_CIPHER_INFO = "cat-factory:package-registries";
5
+ export interface PackageRegistryServiceDependencies {
6
+ packageRegistryConnectionRepository: PackageRegistryConnectionRepository;
7
+ /** Seals the registry tokens at rest (domain tag 'cat-factory:package-registries'). */
8
+ packageRegistrySecretCipher: SecretCipher;
9
+ workspaceRepository: WorkspaceRepository;
10
+ clock: Clock;
11
+ idGenerator: IdGenerator;
12
+ }
13
+ /**
14
+ * The registry spec forwarded on a container job body: host derived from the fixed
15
+ * vendor set (never user-supplied), decrypted token included. The harness renders
16
+ * these into `~/.npmrc` before the agent runs.
17
+ */
18
+ export interface DispatchPackageRegistry {
19
+ ecosystem: 'npm';
20
+ host: string;
21
+ scopes: string[];
22
+ token: string;
23
+ }
24
+ /**
25
+ * Manages a workspace's private package-registry entries (npm private orgs, GitHub
26
+ * Packages): all entries sealed at rest as one JSON blob and never read back — the
27
+ * list view renders from the persisted non-secret summary. The tokens only leave the
28
+ * cipher in `resolveForDispatch`, on their way onto a container job body.
29
+ */
30
+ export declare class PackageRegistryService {
31
+ private readonly connections;
32
+ private readonly cipher;
33
+ private readonly workspaceRepository;
34
+ private readonly clock;
35
+ private readonly idGenerator;
36
+ constructor(deps: PackageRegistryServiceDependencies);
37
+ /** The workspace's registry entries, redacted (never returns a token). */
38
+ list(workspaceId: string): Promise<PackageRegistryListView>;
39
+ /** Add one registry entry, re-sealing the whole entry list at rest. */
40
+ add(workspaceId: string, input: AddPackageRegistryInput): Promise<PackageRegistryListView>;
41
+ /** Remove one entry; the row is deleted outright when the last entry goes. */
42
+ remove(workspaceId: string, entryId: string): Promise<void>;
43
+ /**
44
+ * Decrypt the workspace's entries for a container dispatch. Called by the agent
45
+ * executor's `resolvePackageRegistries` seam; a failure here PROPAGATES — a
46
+ * workspace that configured private registries must not silently run without them.
47
+ */
48
+ resolveForDispatch(workspaceId: string): Promise<DispatchPackageRegistry[]>;
49
+ private decryptEntries;
50
+ private persist;
51
+ }
52
+ /**
53
+ * Standalone dispatch-time resolution over the raw repo + cipher, so a facade can wire
54
+ * the agent executor's `resolvePackageRegistries` seam without constructing the full
55
+ * management service (the executor is built before the core container). The service's
56
+ * `resolveForDispatch` delegates here — one code path, two entry points.
57
+ */
58
+ export declare function resolvePackageRegistriesForDispatch(repository: PackageRegistryConnectionRepository, cipher: SecretCipher, workspaceId: string): Promise<DispatchPackageRegistry[]>;
59
+ //# sourceMappingURL=PackageRegistryService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PackageRegistryService.d.ts","sourceRoot":"","sources":["../../../src/modules/packageRegistries/PackageRegistryService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,WAAW,EACX,mCAAmC,EACnC,YAAY,EACZ,mBAAmB,EACpB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EACV,uBAAuB,EAEvB,uBAAuB,EACxB,MAAM,wBAAwB,CAAA;AAQ/B,8FAA8F;AAC9F,eAAO,MAAM,4BAA4B,mCAAmC,CAAA;AAE5E,MAAM,WAAW,kCAAkC;IACjD,mCAAmC,EAAE,mCAAmC,CAAA;IACxE,uFAAuF;IACvF,2BAA2B,EAAE,YAAY,CAAA;IACzC,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,KAAK,EAAE,KAAK,CAAA;IACZ,WAAW,EAAE,WAAW,CAAA;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,KAAK,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;;;GAKG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqC;IACjE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IACzD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;IAC7B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IAEzC,YAAY,IAAI,EAAE,kCAAkC,EAMnD;IAED,0EAA0E;IACpE,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAKhE;IAED,uEAAuE;IACjE,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAuB/F;IAED,8EAA8E;IACxE,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAahE;IAED;;;;OAIG;IACG,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAEhF;YAEa,cAAc;YAId,OAAO;CActB;AASD;;;;;GAKG;AACH,wBAAsB,mCAAmC,CACvD,UAAU,EAAE,mCAAmC,EAC/C,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAUpC"}
@@ -0,0 +1,113 @@
1
+ import { ConflictError, NotFoundError, requireWorkspace } from '@cat-factory/kernel';
2
+ import { packageRegistryHost, packageRegistrySummary, parsePackageRegistryEntries, parsePackageRegistrySummary, } from '@cat-factory/contracts';
3
+ /** HKDF domain-separation tag for the sealed registry entries (see WebCryptoSecretCipher). */
4
+ export const PACKAGE_REGISTRY_CIPHER_INFO = 'cat-factory:package-registries';
5
+ /**
6
+ * Manages a workspace's private package-registry entries (npm private orgs, GitHub
7
+ * Packages): all entries sealed at rest as one JSON blob and never read back — the
8
+ * list view renders from the persisted non-secret summary. The tokens only leave the
9
+ * cipher in `resolveForDispatch`, on their way onto a container job body.
10
+ */
11
+ export class PackageRegistryService {
12
+ connections;
13
+ cipher;
14
+ workspaceRepository;
15
+ clock;
16
+ idGenerator;
17
+ constructor(deps) {
18
+ this.connections = deps.packageRegistryConnectionRepository;
19
+ this.cipher = deps.packageRegistrySecretCipher;
20
+ this.workspaceRepository = deps.workspaceRepository;
21
+ this.clock = deps.clock;
22
+ this.idGenerator = deps.idGenerator;
23
+ }
24
+ /** The workspace's registry entries, redacted (never returns a token). */
25
+ async list(workspaceId) {
26
+ await requireWorkspace(this.workspaceRepository, workspaceId);
27
+ const connection = await this.connections.get(workspaceId);
28
+ if (!connection)
29
+ return { entries: [] };
30
+ return { entries: parsePackageRegistrySummary(JSON.parse(connection.summary)) };
31
+ }
32
+ /** Add one registry entry, re-sealing the whole entry list at rest. */
33
+ async add(workspaceId, input) {
34
+ await requireWorkspace(this.workspaceRepository, workspaceId);
35
+ const existing = await this.connections.get(workspaceId);
36
+ const entries = existing ? await this.decryptEntries(existing.entries) : [];
37
+ // One entry per vendor: the harness renders a single host-keyed `_authToken` line
38
+ // per registry host (which derives from the vendor), so a second entry for the same
39
+ // vendor would have its token silently dropped (last-write-wins) and leave one org's
40
+ // installs unauthenticated. Reject it and steer the user to edit (delete + re-add
41
+ // with all scopes) the existing entry instead.
42
+ if (entries.some((entry) => entry.vendor === input.vendor)) {
43
+ throw new ConflictError(`A ${input.vendor} registry entry already exists; remove it and re-add with all scopes.`);
44
+ }
45
+ entries.push({
46
+ id: this.idGenerator.next('pkgreg'),
47
+ ecosystem: input.ecosystem,
48
+ vendor: input.vendor,
49
+ scopes: input.scopes,
50
+ token: input.token,
51
+ });
52
+ await this.persist(workspaceId, entries, existing?.createdAt);
53
+ return { entries: packageRegistrySummary(entries) };
54
+ }
55
+ /** Remove one entry; the row is deleted outright when the last entry goes. */
56
+ async remove(workspaceId, entryId) {
57
+ await requireWorkspace(this.workspaceRepository, workspaceId);
58
+ const existing = await this.connections.get(workspaceId);
59
+ const entries = existing ? await this.decryptEntries(existing.entries) : [];
60
+ const remaining = entries.filter((entry) => entry.id !== entryId);
61
+ if (remaining.length === entries.length) {
62
+ throw new NotFoundError('PackageRegistryEntry', entryId);
63
+ }
64
+ if (remaining.length === 0) {
65
+ await this.connections.delete(workspaceId);
66
+ return;
67
+ }
68
+ await this.persist(workspaceId, remaining, existing?.createdAt);
69
+ }
70
+ /**
71
+ * Decrypt the workspace's entries for a container dispatch. Called by the agent
72
+ * executor's `resolvePackageRegistries` seam; a failure here PROPAGATES — a
73
+ * workspace that configured private registries must not silently run without them.
74
+ */
75
+ async resolveForDispatch(workspaceId) {
76
+ return resolvePackageRegistriesForDispatch(this.connections, this.cipher, workspaceId);
77
+ }
78
+ async decryptEntries(sealed) {
79
+ return decryptRegistryEntries(this.cipher, sealed);
80
+ }
81
+ async persist(workspaceId, entries, createdAt) {
82
+ const now = this.clock.now();
83
+ await this.connections.upsert({
84
+ workspaceId,
85
+ entries: await this.cipher.encrypt(JSON.stringify(entries)),
86
+ summary: JSON.stringify(packageRegistrySummary(entries)),
87
+ createdAt: createdAt ?? now,
88
+ updatedAt: now,
89
+ });
90
+ }
91
+ }
92
+ async function decryptRegistryEntries(cipher, sealed) {
93
+ return parsePackageRegistryEntries(JSON.parse(await cipher.decrypt(sealed)));
94
+ }
95
+ /**
96
+ * Standalone dispatch-time resolution over the raw repo + cipher, so a facade can wire
97
+ * the agent executor's `resolvePackageRegistries` seam without constructing the full
98
+ * management service (the executor is built before the core container). The service's
99
+ * `resolveForDispatch` delegates here — one code path, two entry points.
100
+ */
101
+ export async function resolvePackageRegistriesForDispatch(repository, cipher, workspaceId) {
102
+ const connection = await repository.get(workspaceId);
103
+ if (!connection)
104
+ return [];
105
+ const entries = await decryptRegistryEntries(cipher, connection.entries);
106
+ return entries.map((entry) => ({
107
+ ecosystem: entry.ecosystem,
108
+ host: packageRegistryHost(entry.vendor),
109
+ scopes: entry.scopes,
110
+ token: entry.token,
111
+ }));
112
+ }
113
+ //# sourceMappingURL=PackageRegistryService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PackageRegistryService.js","sourceRoot":"","sources":["../../../src/modules/packageRegistries/PackageRegistryService.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/orchestration",
3
- "version": "0.59.2",
3
+ "version": "0.60.0",
4
4
  "description": "Delivery-workflow engine for the Agent Architecture Board (execution, bootstrap, pipelines, board, boardScan, requirements, and composition root).",
5
5
  "repository": {
6
6
  "type": "git",
@@ -25,19 +25,19 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "ai": "^6.0.214",
28
- "@cat-factory/agents": "0.26.15",
29
- "@cat-factory/contracts": "0.83.0",
30
- "@cat-factory/integrations": "0.56.3",
31
- "@cat-factory/kernel": "0.70.2",
32
- "@cat-factory/prompt-fragments": "0.9.43",
33
- "@cat-factory/sandbox": "0.8.86",
34
- "@cat-factory/spend": "0.10.76",
35
- "@cat-factory/workspaces": "0.10.23"
28
+ "@cat-factory/agents": "0.26.16",
29
+ "@cat-factory/contracts": "0.84.0",
30
+ "@cat-factory/integrations": "0.56.4",
31
+ "@cat-factory/kernel": "0.71.0",
32
+ "@cat-factory/prompt-fragments": "0.9.44",
33
+ "@cat-factory/sandbox": "0.8.87",
34
+ "@cat-factory/spend": "0.10.77",
35
+ "@cat-factory/workspaces": "0.10.24"
36
36
  },
37
37
  "devDependencies": {
38
38
  "typescript": "7.0.1-rc",
39
39
  "vitest": "^4.1.9",
40
- "@cat-factory/sandbox-fixtures": "0.7.96"
40
+ "@cat-factory/sandbox-fixtures": "0.7.97"
41
41
  },
42
42
  "scripts": {
43
43
  "build": "tsc -b tsconfig.build.json",