@cat-factory/kernel 0.57.0 → 0.58.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,39 +1,58 @@
1
1
  import type { EnvironmentStatus } from '../domain/types.js';
2
2
  /**
3
- * A workspace's binding to an environment provider: the validated manifest and
4
- * the encrypted per-tenant secret bundle (the management-API credentials). The
5
- * bundle is decrypted only in-memory, at call time, by the provisioning path.
3
+ * A workspace's per-provision-type infra HANDLER: how a service's declared provision type
4
+ * (the "what + where") is stood up (the "how"). Keyed by `(workspaceId, provisionType,
5
+ * manifestId)` a workspace declares one handler per type, plus one per pinned custom
6
+ * `manifestId`. The serialized {@link handlerJson} (the engine connection, sans secrets) and
7
+ * the encrypted secret bundle are decrypted/built only in-memory, at provision time. See
8
+ * docs/initiatives/per-service-provision-types.md.
9
+ *
10
+ * `manifestId` is `null` for the non-custom types; on SQLite/Postgres it sits in the
11
+ * composite primary key as the `''` sentinel (the repos map `'' ⇄ null`), exactly like
12
+ * {@link EnvironmentUserHandlerRecord}.
6
13
  */
7
14
  export interface EnvironmentConnectionRecord {
8
15
  workspaceId: string;
16
+ /** The provision type this handler serves (`kubernetes` | `docker-compose` | `custom`). */
17
+ provisionType: string;
18
+ /** For `custom`: which manifest id this handler is keyed to; `null` otherwise. */
19
+ manifestId: string | null;
20
+ /** The engine that handles the type (`local-docker` | `local-k3s` | `remote-kubernetes` | `remote-custom`). */
21
+ engine: string;
9
22
  /**
10
- * Which backend kind interprets this connection (`manifest` | `kubernetes` | …).
11
- * Selects the registered environment-backend provider; absent rows default to
12
- * `manifest`. Mirrors `RunnerPoolConnectionRecord.kind`.
23
+ * The environment-backend REGISTRY kind that builds this handler's provider (`manifest` |
24
+ * `kubernetes` | `compose` | a custom kind). Distinct from {@link engine}: several backends
25
+ * can serve the same engine (e.g. a custom backend riding `remote-custom`), so the engine
26
+ * alone can't recover the exact provider — the registry is keyed by this kind.
13
27
  */
14
- kind: string;
28
+ backendKind: string;
15
29
  providerId: string;
16
30
  label: string;
17
31
  baseUrl: string;
18
32
  /**
19
- * The stored manifest, serialized as JSON. For a native backend (e.g. `kubernetes`)
20
- * the per-workspace settings ride the manifest's `providerConfig` bag the backend
21
- * registry builds + reads it. See `backend/docs/native-environment-adapter.md`.
33
+ * The serialized handler config (an `InfraHandlerConfig` the engine connection, sans
34
+ * secrets), as JSON. A native engine (`local-k3s`/`remote-kubernetes`) carries only the
35
+ * apiserver/sizing here; the manifests to apply come from the SERVICE at provision time
36
+ * (the deployer merges the two). Renamed from the pre-reshape `manifestJson`.
22
37
  */
23
- manifestJson: string;
38
+ handlerJson: string;
39
+ /** For a `remote-custom` engine: the custom manifest id this provider accepts; `null` otherwise. */
40
+ acceptsManifestId: string | null;
24
41
  /** Ciphertext of the `{ key: value }` secret bundle (SecretCipher envelope). */
25
42
  secretsCipher: string;
26
43
  createdAt: number;
27
- /** Set when the workspace unregisters (tombstone). */
44
+ /** Set when the workspace unregisters this handler (tombstone). */
28
45
  deletedAt: number | null;
29
46
  }
30
47
  export interface EnvironmentConnectionRepository {
31
- /** The workspace's live connection, or null if not registered. */
32
- getByWorkspace(workspaceId: string): Promise<EnvironmentConnectionRecord | null>;
33
- /** Create or replace the live connection for a workspace. */
48
+ /** Every live handler the workspace has registered (batched no per-type point reads). */
49
+ listByWorkspace(workspaceId: string): Promise<EnvironmentConnectionRecord[]>;
50
+ /** The live handler for one provision type (+ custom manifest id), or null. */
51
+ getByWorkspaceAndType(workspaceId: string, provisionType: string, manifestId: string | null): Promise<EnvironmentConnectionRecord | null>;
52
+ /** Create or replace one handler (keyed by workspace + provisionType + manifestId). */
34
53
  upsert(record: EnvironmentConnectionRecord): Promise<void>;
35
- /** Tombstone the workspace's connection. */
36
- softDelete(workspaceId: string, at: number): Promise<void>;
54
+ /** Tombstone one handler. */
55
+ softDelete(workspaceId: string, provisionType: string, manifestId: string | null, at: number): Promise<void>;
37
56
  }
38
57
  /** A user's override of how a provision type is handled, for a given workspace. */
39
58
  export interface EnvironmentUserHandlerRecord {
@@ -1 +1 @@
1
- {"version":3,"file":"environment-repositories.d.ts","sourceRoot":"","sources":["../../src/ports/environment-repositories.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"environment-repositories.d.ts","sourceRoot":"","sources":["../../src/ports/environment-repositories.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/kernel",
3
- "version": "0.57.0",
3
+ "version": "0.58.0",
4
4
  "description": "Shared vocabulary, pure logic, and port interfaces for the Agent Architecture Board.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -24,8 +24,8 @@
24
24
  "access": "public"
25
25
  },
26
26
  "dependencies": {
27
- "ai": "^6.0.209",
28
- "@cat-factory/contracts": "0.59.0"
27
+ "ai": "^6.0.214",
28
+ "@cat-factory/contracts": "0.60.0"
29
29
  },
30
30
  "devDependencies": {
31
31
  "typescript": "7.0.1-rc"