@sema-ai/registry-core 0.10.3
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/CHANGELOG.md +131 -0
- package/README.md +84 -0
- package/dist/api/auth-bridge.d.ts +332 -0
- package/dist/api/auth-bridge.d.ts.map +1 -0
- package/dist/api/auth-bridge.js +211 -0
- package/dist/api/auth-bridge.js.map +1 -0
- package/dist/api/auth.d.ts +258 -0
- package/dist/api/auth.d.ts.map +1 -0
- package/dist/api/auth.js +204 -0
- package/dist/api/auth.js.map +1 -0
- package/dist/api/scopes.d.ts +353 -0
- package/dist/api/scopes.d.ts.map +1 -0
- package/dist/api/scopes.js +229 -0
- package/dist/api/scopes.js.map +1 -0
- package/dist/bundle.d.ts +14 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/bundle.js +68 -0
- package/dist/bundle.js.map +1 -0
- package/dist/config-fns.d.ts +236 -0
- package/dist/config-fns.d.ts.map +1 -0
- package/dist/config-fns.js +272 -0
- package/dist/config-fns.js.map +1 -0
- package/dist/cross-domain.d.ts +35 -0
- package/dist/cross-domain.d.ts.map +1 -0
- package/dist/cross-domain.js +119 -0
- package/dist/cross-domain.js.map +1 -0
- package/dist/file-edit.d.ts +37 -0
- package/dist/file-edit.d.ts.map +1 -0
- package/dist/file-edit.js +126 -0
- package/dist/file-edit.js.map +1 -0
- package/dist/file-store.d.ts +39 -0
- package/dist/file-store.d.ts.map +1 -0
- package/dist/file-store.js +142 -0
- package/dist/file-store.js.map +1 -0
- package/dist/fleet.d.ts +479 -0
- package/dist/fleet.d.ts.map +1 -0
- package/dist/fleet.js +303 -0
- package/dist/fleet.js.map +1 -0
- package/dist/hash.d.ts +33 -0
- package/dist/hash.d.ts.map +1 -0
- package/dist/hash.js +60 -0
- package/dist/hash.js.map +1 -0
- package/dist/hooks.d.ts +5478 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hooks.js +628 -0
- package/dist/hooks.js.map +1 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -0
- package/dist/local-load.d.ts +33 -0
- package/dist/local-load.d.ts.map +1 -0
- package/dist/local-load.js +164 -0
- package/dist/local-load.js.map +1 -0
- package/dist/migrate.d.ts +245 -0
- package/dist/migrate.d.ts.map +1 -0
- package/dist/migrate.js +543 -0
- package/dist/migrate.js.map +1 -0
- package/dist/node.d.ts +12 -0
- package/dist/node.d.ts.map +1 -0
- package/dist/node.js +12 -0
- package/dist/node.js.map +1 -0
- package/dist/reader.d.ts +19 -0
- package/dist/reader.d.ts.map +1 -0
- package/dist/reader.js +2 -0
- package/dist/reader.js.map +1 -0
- package/dist/remote-exec.d.ts +275 -0
- package/dist/remote-exec.d.ts.map +1 -0
- package/dist/remote-exec.js +183 -0
- package/dist/remote-exec.js.map +1 -0
- package/dist/resolve-roster.d.ts +29 -0
- package/dist/resolve-roster.d.ts.map +1 -0
- package/dist/resolve-roster.js +105 -0
- package/dist/resolve-roster.js.map +1 -0
- package/dist/safety-merge-spec.d.ts +328 -0
- package/dist/safety-merge-spec.d.ts.map +1 -0
- package/dist/safety-merge-spec.js +65 -0
- package/dist/safety-merge-spec.js.map +1 -0
- package/dist/scheduler-store-node.d.ts +15 -0
- package/dist/scheduler-store-node.d.ts.map +1 -0
- package/dist/scheduler-store-node.js +43 -0
- package/dist/scheduler-store-node.js.map +1 -0
- package/dist/scheduler-store.d.ts +65 -0
- package/dist/scheduler-store.d.ts.map +1 -0
- package/dist/scheduler-store.js +59 -0
- package/dist/scheduler-store.js.map +1 -0
- package/dist/secret-refs.d.ts +34 -0
- package/dist/secret-refs.d.ts.map +1 -0
- package/dist/secret-refs.js +49 -0
- package/dist/secret-refs.js.map +1 -0
- package/dist/sha256.d.ts +17 -0
- package/dist/sha256.d.ts.map +1 -0
- package/dist/sha256.js +115 -0
- package/dist/sha256.js.map +1 -0
- package/dist/skills-manifest.d.ts +13 -0
- package/dist/skills-manifest.d.ts.map +1 -0
- package/dist/skills-manifest.js +55 -0
- package/dist/skills-manifest.js.map +1 -0
- package/dist/types.d.ts +9911 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +1727 -0
- package/dist/types.js.map +1 -0
- package/package.json +130 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @sema-ai/registry-core — the public barrel. ONE source of truth for the config contract shared by
|
|
3
|
+
* sema-registry, sema-server, and the TOC desktop/CLI.
|
|
4
|
+
*/
|
|
5
|
+
export * from "./types.js";
|
|
6
|
+
export * from "./hash.js";
|
|
7
|
+
export * from "./sha256.js";
|
|
8
|
+
export * from "./skills-manifest.js";
|
|
9
|
+
export * from "./secret-refs.js";
|
|
10
|
+
export * from "./resolve-roster.js";
|
|
11
|
+
export * from "./config-fns.js";
|
|
12
|
+
export * from "./reader.js";
|
|
13
|
+
export * from "./cross-domain.js";
|
|
14
|
+
export * from "./remote-exec.js";
|
|
15
|
+
export * from "./safety-merge-spec.js";
|
|
16
|
+
export * from "./scheduler-store.js";
|
|
17
|
+
export * from "./hooks.js";
|
|
18
|
+
export * from "./fleet.js";
|
|
19
|
+
export * from "./migrate.js";
|
|
20
|
+
export * from "./api/auth.js";
|
|
21
|
+
export * from "./api/auth-bridge.js";
|
|
22
|
+
export * from "./api/scopes.js";
|
|
23
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @sema-ai/registry-core — the public barrel. ONE source of truth for the config contract shared by
|
|
3
|
+
* sema-registry, sema-server, and the TOC desktop/CLI.
|
|
4
|
+
*/
|
|
5
|
+
export * from "./types.js";
|
|
6
|
+
export * from "./hash.js";
|
|
7
|
+
export * from "./sha256.js";
|
|
8
|
+
export * from "./skills-manifest.js";
|
|
9
|
+
export * from "./secret-refs.js";
|
|
10
|
+
export * from "./resolve-roster.js";
|
|
11
|
+
export * from "./config-fns.js";
|
|
12
|
+
export * from "./reader.js";
|
|
13
|
+
export * from "./cross-domain.js"; // pure half only (no fleet placement)
|
|
14
|
+
export * from "./remote-exec.js";
|
|
15
|
+
export * from "./safety-merge-spec.js"; // #14 per-category safety merge-spec (settings resolver authority)
|
|
16
|
+
export * from "./scheduler-store.js"; // R7 self-wake scheduler store CONTRACT (pure: type + parse/serialize + SchedulerStore interface; fs binding in ./node)
|
|
17
|
+
export * from "./hooks.js"; // CC-parity hooks contract (30-event set + owner map + per-event input/output shapes + HooksConfig) & stop attribution (stoppedBy) — blackboard [473]/[474]/[475]/[476], pure/browser-safe
|
|
18
|
+
export * from "./fleet.js"; // scheduling/fleet contract (drain protocol · instance discovery · dispatch policy · quota lease · usage report · quota reset event) — CONTROL-PLANE-SCHEDULING-DESIGN, pure/browser-safe
|
|
19
|
+
export * from "./migrate.js"; // 0.5→0.6 migration tools (hosts grandfathering + worker.model→catalog migration PLAN — report/draft only, E1; EXPERT-REDESIGN §2-2/§3), pure/browser-safe
|
|
20
|
+
export * from "./api/auth.js"; // /api/v1/auth/* wire contract (RFC 8628 device flow + rotating refresh + logout + approve) — REGISTRY-REBUILD-DESIGN §2, M1 shipped shapes frozen, pure/browser-safe
|
|
21
|
+
export * from "./api/auth-bridge.js"; // 鉴权桥 contract: worker verifies registry user JWT (RS256-only, JWKS kid-miss refresh + throttle, offline grace fail-closed) → VerifiedIdentity — design §5, the service verifier's spec
|
|
22
|
+
export * from "./api/scopes.js"; // multi-tenant scope contract: /api/v1/scopes* + /api/v1/auth/scope wire shapes + THE minting/switch decision functions (resolveTokenScope / canSwitchScope / effectiveScopeRole / tokenScopeOf) — registry imports these, never re-implements
|
|
23
|
+
// NOTE: the Node-fs-backed helpers (FileConfigStore + the file editor) are NOT in this barrel — they pull
|
|
24
|
+
// `node:fs`/`node:path` and would break a browser/client bundle that only wants the contract (e.g.
|
|
25
|
+
// sema-registry's client components import the zod types through here). Import them from the Node-only
|
|
26
|
+
// subpath instead: `import { FileConfigStore } from "@sema-ai/registry-core/node"`.
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC,CAAC,sCAAsC;AACzE,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC,CAAC,mEAAmE;AAC3G,cAAc,sBAAsB,CAAC,CAAC,wHAAwH;AAC9J,cAAc,YAAY,CAAC,CAAC,2LAA2L;AACvN,cAAc,YAAY,CAAC,CAAC,0LAA0L;AACtN,cAAc,cAAc,CAAC,CAAC,2JAA2J;AACzL,cAAc,eAAe,CAAC,CAAC,sKAAsK;AACrM,cAAc,sBAAsB,CAAC,CAAC,wLAAwL;AAC9N,cAAc,iBAAiB,CAAC,CAAC,+OAA+O;AAChR,0GAA0G;AAC1G,mGAAmG;AACnG,uGAAuG;AACvG,oFAAoF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type RequiredEnvName } from "./file-edit.js";
|
|
2
|
+
import { RemoteExecSpec } from "./remote-exec.js";
|
|
3
|
+
import type { EffectiveConfig } from "./types.js";
|
|
4
|
+
/** The remoteExec file path under a config root (under config.d/, beside the per-domain files). */
|
|
5
|
+
export declare function remoteExecPath(root: string): string;
|
|
6
|
+
/** Read `<root>/config.d/remote-exec.json` → a VALIDATED RemoteExecSpec, or undefined if the file is absent
|
|
7
|
+
* (→ the engine defaults to `host` under CONFIG_PROVIDER=local). Throws (zod) on a present-but-invalid file. */
|
|
8
|
+
export declare function loadRemoteExec(root: string): Promise<RemoteExecSpec | undefined>;
|
|
9
|
+
/** Validate + ATOMICALLY write `<root>/config.d/remote-exec.json` (tmp → rename; never a half file). The
|
|
10
|
+
* client's `config` editor writes the exec backend through this; the engine reads it via loadRemoteExec. */
|
|
11
|
+
export declare function writeRemoteExec(root: string, spec: unknown): Promise<RemoteExecSpec>;
|
|
12
|
+
/** Parse `<root>/.env` (KEY=VALUE, `#` comments, optional surrounding quotes) MERGED OVER process.env (the
|
|
13
|
+
* file wins). The ONLY place secret VALUES live — the contract files carry env-NAMEs only. A `KEY=` with an
|
|
14
|
+
* empty value IS present (the caller may treat empty as a weak warning). Absent .env → just process.env.
|
|
15
|
+
* A `.env` value of `file:<path>` resolves to that file's trimmed content (file-NAME ref — key stays out of
|
|
16
|
+
* env, contract stays env-NAME-only). Schema still rejects pasted plaintext (the contract field is a NAME). */
|
|
17
|
+
export declare function loadEnvFile(root: string): Promise<Record<string, string>>;
|
|
18
|
+
export interface LocalConfig {
|
|
19
|
+
/** The resolved config the engine consumes — the FULL EffectiveConfig (skills carry full content; NOT the
|
|
20
|
+
* remote `/effective` wire shape). The service local ConfigProvider eats this directly (service [152] #4). */
|
|
21
|
+
effective: EffectiveConfig;
|
|
22
|
+
/** The chosen exec backend, or undefined → the engine defaults to `host` under CONFIG_PROVIDER=local. */
|
|
23
|
+
remoteExec: RemoteExecSpec | undefined;
|
|
24
|
+
/** `.env` merged over process.env — the secret VALUE source for resolving the env-NAME refs. */
|
|
25
|
+
env: Record<string, string>;
|
|
26
|
+
/** Every env-NAME the config requires + whether it's present — the "set these secrets" inventory. */
|
|
27
|
+
requiredEnv: RequiredEnvName[];
|
|
28
|
+
}
|
|
29
|
+
/** The ONE canonical local load — the service engine and the client CLI/desktop both call this so they cannot
|
|
30
|
+
* drift. Reads `config.d/*.json` (→ FULL EffectiveConfig) + `config.d/remote-exec.json` + `.env`, and computes
|
|
31
|
+
* the missing-env inventory. */
|
|
32
|
+
export declare function loadLocalConfig(root: string): Promise<LocalConfig>;
|
|
33
|
+
//# sourceMappingURL=local-load.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-load.d.ts","sourceRoot":"","sources":["../src/local-load.ts"],"names":[],"mappings":"AAaA,OAAO,EAAwB,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAE5E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAmBlD,mGAAmG;AACnG,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;iHACiH;AACjH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAoBtF;AAED;6GAC6G;AAC7G,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAa1F;AAyBD;;;;gHAIgH;AAChH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA8B/E;AAED,MAAM,WAAW,WAAW;IAC1B;mHAC+G;IAC/G,SAAS,EAAE,eAAe,CAAC;IAC3B,yGAAyG;IACzG,UAAU,EAAE,cAAc,GAAG,SAAS,CAAC;IACvC,gGAAgG;IAChG,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,qGAAqG;IACrG,WAAW,EAAE,eAAe,EAAE,CAAC;CAChC;AAED;;iCAEiC;AACjC,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAIxE"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TOC single-machine LOAD helpers — the CANONICAL local entry shared by the service engine
|
|
3
|
+
* (`CONFIG_PROVIDER=local`) AND the client CLI/desktop, so both read the SAME files with the SAME validation =
|
|
4
|
+
* zero drift (service [152]). Node-only (filesystem) → import from `@sema-ai/registry-core/node`.
|
|
5
|
+
*
|
|
6
|
+
* `remoteExec` is NOT a `DOMAIN_SCHEMAS` member (the resolver doesn't read it), so it lives in its OWN file
|
|
7
|
+
* `<root>/config.d/remote-exec.json` (service [152] vote), loaded/validated by loadRemoteExec — distinct from
|
|
8
|
+
* the per-domain `config.d/<domain>.json` the resolver reads. getEffective never reads it (not a DomainName).
|
|
9
|
+
*/
|
|
10
|
+
import { mkdir, readFile, rename, unlink, writeFile } from "node:fs/promises";
|
|
11
|
+
import { homedir } from "node:os";
|
|
12
|
+
import path from "node:path";
|
|
13
|
+
import { FileConfigStore } from "./file-store.js";
|
|
14
|
+
import { listRequiredEnvNames } from "./file-edit.js";
|
|
15
|
+
import { sanitizeZodError } from "./config-fns.js";
|
|
16
|
+
import { RemoteExecSpec } from "./remote-exec.js";
|
|
17
|
+
/** Parse a RemoteExecSpec with a SANITIZED error (zod echoes the offending value — never let a pasted secret
|
|
18
|
+
* ride the thrown error). A hostile getter/Proxy trap → a fixed message. R14 (codex). */
|
|
19
|
+
function parseRemoteExec(raw) {
|
|
20
|
+
let r;
|
|
21
|
+
try {
|
|
22
|
+
r = RemoteExecSpec.safeParse(raw);
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
throw new Error("invalid remoteExec (a value could not be read during validation)");
|
|
26
|
+
}
|
|
27
|
+
if (r.success)
|
|
28
|
+
return r.data;
|
|
29
|
+
throw sanitizeZodError(r.error);
|
|
30
|
+
}
|
|
31
|
+
// Monotonic suffix so two atomic writes in the SAME process+millisecond can't collide on the tmp name (which
|
|
32
|
+
// would make one rename hit ENOENT / lose a write). pid+Date.now() alone isn't unique under concurrency.
|
|
33
|
+
let tmpSeq = 0;
|
|
34
|
+
/** The remoteExec file path under a config root (under config.d/, beside the per-domain files). */
|
|
35
|
+
export function remoteExecPath(root) {
|
|
36
|
+
return path.join(root, "config.d", "remote-exec.json");
|
|
37
|
+
}
|
|
38
|
+
/** Read `<root>/config.d/remote-exec.json` → a VALIDATED RemoteExecSpec, or undefined if the file is absent
|
|
39
|
+
* (→ the engine defaults to `host` under CONFIG_PROVIDER=local). Throws (zod) on a present-but-invalid file. */
|
|
40
|
+
export async function loadRemoteExec(root) {
|
|
41
|
+
let text;
|
|
42
|
+
try {
|
|
43
|
+
text = await readFile(remoteExecPath(root), "utf8");
|
|
44
|
+
}
|
|
45
|
+
catch (e) {
|
|
46
|
+
if (e.code === "ENOENT")
|
|
47
|
+
return undefined;
|
|
48
|
+
throw e;
|
|
49
|
+
}
|
|
50
|
+
const trimmed = text.trim();
|
|
51
|
+
// A present-but-empty file is a corruption/half-write, NOT "use the default" — FAIL CLOSED (an empty file
|
|
52
|
+
// silently falling back to the host lane would be an isolation DOWNGRADE if the user meant local-docker).
|
|
53
|
+
// To get the host default, the file must be ABSENT, not empty.
|
|
54
|
+
if (!trimmed)
|
|
55
|
+
throw new Error(`${remoteExecPath(root)} is empty/corrupt — delete it for the host default, or write a valid remoteExec spec`);
|
|
56
|
+
let json;
|
|
57
|
+
try {
|
|
58
|
+
json = JSON.parse(trimmed); // sanitized: don't let a SyntaxError echo the raw (possibly secret-bearing) file text
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
throw new Error(`${remoteExecPath(root)} — invalid JSON (delete it for the host default, or write a valid remoteExec spec)`);
|
|
62
|
+
}
|
|
63
|
+
return parseRemoteExec(json);
|
|
64
|
+
}
|
|
65
|
+
/** Validate + ATOMICALLY write `<root>/config.d/remote-exec.json` (tmp → rename; never a half file). The
|
|
66
|
+
* client's `config` editor writes the exec backend through this; the engine reads it via loadRemoteExec. */
|
|
67
|
+
export async function writeRemoteExec(root, spec) {
|
|
68
|
+
const parsed = parseRemoteExec(spec);
|
|
69
|
+
const dir = path.join(root, "config.d");
|
|
70
|
+
await mkdir(dir, { recursive: true });
|
|
71
|
+
const tmp = path.join(dir, `.remote-exec.json.${process.pid}.${Date.now()}.${tmpSeq++}.tmp`);
|
|
72
|
+
try {
|
|
73
|
+
await writeFile(tmp, JSON.stringify(parsed, null, 2) + "\n", "utf8");
|
|
74
|
+
await rename(tmp, remoteExecPath(root));
|
|
75
|
+
}
|
|
76
|
+
catch (e) {
|
|
77
|
+
await unlink(tmp).catch(() => { }); // never leave a half-written tmp behind
|
|
78
|
+
throw e;
|
|
79
|
+
}
|
|
80
|
+
return parsed;
|
|
81
|
+
}
|
|
82
|
+
/** Resolve a `file:<path>` .env VALUE → the file's trimmed content (the file-NAME secret ref, config-research
|
|
83
|
+
* §5 #4). Keeps the env-NAME-only CONTRACT intact — the schema field is still a NAME (e.g. `apiKeyEnv`), only
|
|
84
|
+
* the VALUE in `.env` may say "read me from a file" (the key in `~/.ssh/…`, not in env). `~/` → homedir; a
|
|
85
|
+
* relative path is under the config root; missing file THROWS (fail-closed — never resolve a secret to ""). */
|
|
86
|
+
async function resolveFileRef(spec, root) {
|
|
87
|
+
let p = spec.trim();
|
|
88
|
+
if (!p)
|
|
89
|
+
throw new Error(`.env "file:" ref has an empty path`);
|
|
90
|
+
if (p === "~" || p.startsWith("~/"))
|
|
91
|
+
p = path.join(homedir(), p.slice(1));
|
|
92
|
+
const abs = path.isAbsolute(p) ? p : path.join(root, p);
|
|
93
|
+
let content;
|
|
94
|
+
try {
|
|
95
|
+
content = (await readFile(abs, "utf8")).trim();
|
|
96
|
+
}
|
|
97
|
+
catch (e) {
|
|
98
|
+
if (e.code === "ENOENT")
|
|
99
|
+
throw new Error(`.env "file:" ref points to a missing file: ${abs}`);
|
|
100
|
+
throw e;
|
|
101
|
+
}
|
|
102
|
+
// FAIL-CLOSED on an empty/whitespace file (same discipline as loadRemoteExec): otherwise the secret resolves
|
|
103
|
+
// to "" and listRequiredEnvNames marks it present (resolvedEnv[k] !== undefined) — the "set these secrets"
|
|
104
|
+
// panel goes green while the worker boots with an EMPTY credential. A secret file must be non-empty.
|
|
105
|
+
if (!content)
|
|
106
|
+
throw new Error(`.env "file:" ref resolved to an EMPTY file: ${abs} — a secret must not be empty (fail-closed, like a missing file)`);
|
|
107
|
+
return content;
|
|
108
|
+
}
|
|
109
|
+
/** Parse `<root>/.env` (KEY=VALUE, `#` comments, optional surrounding quotes) MERGED OVER process.env (the
|
|
110
|
+
* file wins). The ONLY place secret VALUES live — the contract files carry env-NAMEs only. A `KEY=` with an
|
|
111
|
+
* empty value IS present (the caller may treat empty as a weak warning). Absent .env → just process.env.
|
|
112
|
+
* A `.env` value of `file:<path>` resolves to that file's trimmed content (file-NAME ref — key stays out of
|
|
113
|
+
* env, contract stays env-NAME-only). Schema still rejects pasted plaintext (the contract field is a NAME). */
|
|
114
|
+
export async function loadEnvFile(root) {
|
|
115
|
+
const merged = {};
|
|
116
|
+
for (const [k, v] of Object.entries(process.env))
|
|
117
|
+
if (v !== undefined)
|
|
118
|
+
merged[k] = v;
|
|
119
|
+
let text;
|
|
120
|
+
try {
|
|
121
|
+
text = await readFile(path.join(root, ".env"), "utf8");
|
|
122
|
+
}
|
|
123
|
+
catch (e) {
|
|
124
|
+
if (e.code === "ENOENT")
|
|
125
|
+
return merged;
|
|
126
|
+
throw e;
|
|
127
|
+
}
|
|
128
|
+
for (const raw of text.split("\n")) {
|
|
129
|
+
const line = raw.trim();
|
|
130
|
+
if (!line || line.startsWith("#"))
|
|
131
|
+
continue;
|
|
132
|
+
const eq = line.indexOf("=");
|
|
133
|
+
if (eq <= 0)
|
|
134
|
+
continue;
|
|
135
|
+
let key = line.slice(0, eq).trim();
|
|
136
|
+
if (key.startsWith("export "))
|
|
137
|
+
key = key.slice("export ".length).trim(); // dotenv: strip the `export ` prefix
|
|
138
|
+
if (!key)
|
|
139
|
+
continue;
|
|
140
|
+
let val = line.slice(eq + 1).trim();
|
|
141
|
+
const quoted = (val.startsWith('"') && val.endsWith('"')) || (val.startsWith("'") && val.endsWith("'"));
|
|
142
|
+
if (quoted) {
|
|
143
|
+
val = val.slice(1, -1);
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
const hash = val.indexOf(" #"); // dotenv: strip an inline ` #...` comment from an UNQUOTED value
|
|
147
|
+
if (hash >= 0)
|
|
148
|
+
val = val.slice(0, hash).trimEnd();
|
|
149
|
+
}
|
|
150
|
+
if (val.startsWith("file:"))
|
|
151
|
+
val = await resolveFileRef(val.slice("file:".length), root); // file-NAME secret ref
|
|
152
|
+
merged[key] = val;
|
|
153
|
+
}
|
|
154
|
+
return merged;
|
|
155
|
+
}
|
|
156
|
+
/** The ONE canonical local load — the service engine and the client CLI/desktop both call this so they cannot
|
|
157
|
+
* drift. Reads `config.d/*.json` (→ FULL EffectiveConfig) + `config.d/remote-exec.json` + `.env`, and computes
|
|
158
|
+
* the missing-env inventory. */
|
|
159
|
+
export async function loadLocalConfig(root) {
|
|
160
|
+
const store = new FileConfigStore(root);
|
|
161
|
+
const [effective, remoteExec, env] = await Promise.all([store.getEffective(), loadRemoteExec(root), loadEnvFile(root)]);
|
|
162
|
+
return { effective, remoteExec, env, requiredEnv: listRequiredEnvNames(effective, remoteExec, env) };
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=local-load.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-load.js","sourceRoot":"","sources":["../src/local-load.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 0.5 → 0.6 迁移工具(EXPERT-REDESIGN §2-2 / §3,E1 批)。全部 PURE(无 I/O)——store 的读写由调用方
|
|
3
|
+
* (sema-registry 脚本 / 演练 harness)驱动;本文件只做计划与回填计算。
|
|
4
|
+
*
|
|
5
|
+
* 1. {@link grandfatherHosts} — hosts 改形的存量 grandfathering:既有机器批量回填 `approved:true`
|
|
6
|
+
* (新契约默认 false=待批,不回填则 E2 enforcement 生效时存量机器出现排布空窗,§11-9);顺手剥掉
|
|
7
|
+
* 已删除的 `capacity` 键(拍板:票数废除)。
|
|
8
|
+
* 2. {@link planWorkerModelMigration} — worker.model 七字段废除(§3)的迁移**计划**:扫描存量
|
|
9
|
+
* worker.model 按 modelId 归并合成 models 目录条目草稿 + 迁移报告。**只产报告与草稿,绝不执行**
|
|
10
|
+
* (E3 人工确认后才执行;model 字段真删=0.7)。要点:
|
|
11
|
+
* - 冲突裁决:同 modelId 而 apiKeyEnv/gatewayBaseUrl/cost/provider 不同 → 拆多条目(name 后缀区分)
|
|
12
|
+
* 并入报告,人工确认。
|
|
13
|
+
* - apiKeyEnv 命名空间转换:**不照搬** worker.secretRefs.apiKeyEnv(宿主机 env 名)——ModelEntry.
|
|
14
|
+
* apiKeyEnv 契约是 service 容器内 env 名;为每条目生成规范名 `MODEL_KEY_<NAME>`,orchestrator
|
|
15
|
+
* 渲染时把宿主 secret 值注入该名(报告里保留宿主名→规范名映射供接线)。
|
|
16
|
+
* - cheapId → roster 的 cheap 角色标记(0.6.3 契约位 `RosterEntry.cheapModel`,[546]/[548]②)。
|
|
17
|
+
* 3. {@link applyModelMigrationPlan} — 0.6.3(E3):计划的 PURE 执行器(三域文档进出,幂等,冲突部分
|
|
18
|
+
* 跳过进人工段;**不删 worker.model**——真删=0.7)。I/O 仍由调用方驱动。
|
|
19
|
+
* 4. {@link migrationDiffViolations} — 0.6.4(E3 双评审 C3):apply 前后三域的白名单结构 diff 门,
|
|
20
|
+
* 意外漂移=违规行,调用方 fail-closed。
|
|
21
|
+
*
|
|
22
|
+
* 0.6.4(E3 双评审 opus W1/W3 + codex C1/C2,PM 裁定):① REUSE 对 cost/maxTokens/contextWindow/
|
|
23
|
+
* reasoning 逐字段比对,不一致**降级为冲突**进人工段(不静默采用条目、不另造重复草稿);② cheap 签名
|
|
24
|
+
* 剔除主模型 cost(同 cheapId 仅主模型价不同不再误报冲突);③ 容器 env 名碰撞(canonicalModelKeyEnv
|
|
25
|
+
* 折叠)且宿主 key 不同 → 冲突;④ apply 接线现值 ≠ 期望 → 进人工段不静默接受。
|
|
26
|
+
*/
|
|
27
|
+
import type { z } from "zod";
|
|
28
|
+
import type { CollabConfig, ModelCost as ModelCostSchema, WorkerSpec } from "./types.js";
|
|
29
|
+
type ModelCost = z.infer<typeof ModelCostSchema>;
|
|
30
|
+
/** FROZEN copy of the pre-0.7 `worker.model` shape (the field was DELETED from WorkerSpec in 0.7.0).
|
|
31
|
+
* The migration tool's input is HISTORICAL stored JSON — pre-0.7 records still carry `model` (0.7's
|
|
32
|
+
* parseDomain strips it as an unknown key) — so this input type must not die with the contract field.
|
|
33
|
+
* Run the migration BEFORE bumping the store to 0.7 (a2 already closed the loop, E3 [551]). */
|
|
34
|
+
export interface LegacyWorkerModel {
|
|
35
|
+
provider?: string;
|
|
36
|
+
gatewayBaseUrl?: string;
|
|
37
|
+
modelId: string;
|
|
38
|
+
cheapId?: string;
|
|
39
|
+
reasoning?: boolean;
|
|
40
|
+
maxTokens?: number;
|
|
41
|
+
contextWindow?: number;
|
|
42
|
+
cost?: ModelCost;
|
|
43
|
+
}
|
|
44
|
+
export interface GrandfatherHostsResult {
|
|
45
|
+
/** 新的 hosts 域 RAW 文档(调用方经 parseDomain 校验后写回;未设过 hosts 域时为 undefined=无事可做)。 */
|
|
46
|
+
hosts: unknown;
|
|
47
|
+
/** 回填了 approved:true 的机器名(已显式带 approved 的条目不动)。 */
|
|
48
|
+
approvedBackfilled: string[];
|
|
49
|
+
/** 剥掉了已删除 capacity 键的机器名。 */
|
|
50
|
+
capacityStripped: string[];
|
|
51
|
+
}
|
|
52
|
+
/** 存量 hosts grandfathering(§2-2):对既有条目批量回填 `approved:true` 并剥掉 `capacity`。幂等——
|
|
53
|
+
* 已带 approved 的条目保持原值(重跑不覆盖 admin 手动置回待批的机器)。 */
|
|
54
|
+
export declare function grandfatherHosts(rawHosts: unknown): GrandfatherHostsResult;
|
|
55
|
+
/** 一条 models 目录草稿(ModelEntry 的 INPUT 形状——parseDomain 落库时再填默认)。 */
|
|
56
|
+
export interface ModelDraftEntry {
|
|
57
|
+
name: string;
|
|
58
|
+
id: string;
|
|
59
|
+
provider: string;
|
|
60
|
+
api: "openai-completions" | "anthropic-messages";
|
|
61
|
+
baseUrl?: string;
|
|
62
|
+
/** 规范名 MODEL_KEY_<NAME>(容器内 env 名)——**不是**宿主机 env 名。 */
|
|
63
|
+
apiKeyEnv: string;
|
|
64
|
+
reasoning?: boolean;
|
|
65
|
+
maxTokens?: number;
|
|
66
|
+
contextWindow?: number;
|
|
67
|
+
cost?: ModelCost;
|
|
68
|
+
notes?: string;
|
|
69
|
+
}
|
|
70
|
+
export interface ModelMigrationDraft {
|
|
71
|
+
entry: ModelDraftEntry;
|
|
72
|
+
/** 引用此条目的 worker 名(主模型引用;cheap 引用见 rosterActions)。 */
|
|
73
|
+
sourceWorkers: string[];
|
|
74
|
+
/** 宿主机 env 名(worker.secretRefs.apiKeyEnv)→ 规范名映射的左边(接线单:orchestrator 把该宿主
|
|
75
|
+
* secret 值注入 entry.apiKeyEnv)。同一条目多 worker 同签名,宿主名恒一致。 */
|
|
76
|
+
hostApiKeyEnv: string;
|
|
77
|
+
}
|
|
78
|
+
export interface ModelMigrationConflict {
|
|
79
|
+
modelId: string;
|
|
80
|
+
/** 同 modelId 下互相冲突的条目名(已按 name 后缀拆开)。 */
|
|
81
|
+
entryNames: string[];
|
|
82
|
+
reason: string;
|
|
83
|
+
}
|
|
84
|
+
/** 0.6.3(E3):worker.model 与**既有**目录条目内容匹配(id+provider+baseUrl)→ 复用不新建。
|
|
85
|
+
* 目录条目是前进方向的真值:cost/apiKeyEnv 以条目为准(worker.model 缺 cost 属退化存量,不算冲突)。 */
|
|
86
|
+
export interface ModelMigrationReuse {
|
|
87
|
+
/** 复用的既有目录条目名。 */
|
|
88
|
+
entryName: string;
|
|
89
|
+
modelId: string;
|
|
90
|
+
sourceWorkers: string[];
|
|
91
|
+
/** 宿主机 env 名(worker.secretRefs.apiKeyEnv)——接线单左边。 */
|
|
92
|
+
hostApiKeyEnv: string;
|
|
93
|
+
/** 既有条目缺 apiKeyEnv 时建议回填的规范名(apply 落库);条目已带 apiKeyEnv 则 undefined=沿用现名。 */
|
|
94
|
+
apiKeyEnvBackfill?: string;
|
|
95
|
+
/** 接线用的容器内 env 名(条目现名或回填名)。 */
|
|
96
|
+
containerApiKeyEnv: string;
|
|
97
|
+
}
|
|
98
|
+
/** cheapId/roster 归宿(§3②):0.6.3 契约位=RosterEntry.primaryModel/cheapModel;apply 据此落标记。 */
|
|
99
|
+
export interface RosterAction {
|
|
100
|
+
worker: string;
|
|
101
|
+
/** 该 worker 的主模型目录名。 */
|
|
102
|
+
mainModel: string;
|
|
103
|
+
/** cheapId 合成的目录名(cheap 角色标记指向它);无 cheapId 则缺。 */
|
|
104
|
+
cheapModel?: string;
|
|
105
|
+
}
|
|
106
|
+
export interface ModelMigrationPlan {
|
|
107
|
+
drafts: ModelMigrationDraft[];
|
|
108
|
+
conflicts: ModelMigrationConflict[];
|
|
109
|
+
/** 0.6.3:内容匹配既有目录条目的复用清单(不新建条目;apply 只回填缺失的 apiKeyEnv)。 */
|
|
110
|
+
reuses: ModelMigrationReuse[];
|
|
111
|
+
rosterActions: RosterAction[];
|
|
112
|
+
/** 人读报告(逐行)——E3 人工确认的底稿。 */
|
|
113
|
+
report: string[];
|
|
114
|
+
}
|
|
115
|
+
/** 0.6.3:计划入参可选项。 */
|
|
116
|
+
export interface PlanMigrationOpts {
|
|
117
|
+
/** 现 models 目录条目(内容级去重用;名字自动并入避让集)。匹配键=id/provider/baseUrl;
|
|
118
|
+
* 0.6.4(E3 双评审 W1/C1):cost/maxTokens/contextWindow/reasoning 四字段用于 REUSE 时逐字段比对——
|
|
119
|
+
* worker.model 侧有值且与条目不一致 → **降级为冲突**进人工确认段(不静默采用条目、也不另造重复草稿)。 */
|
|
120
|
+
existingModels?: ReadonlyArray<{
|
|
121
|
+
name: string;
|
|
122
|
+
id: string;
|
|
123
|
+
provider?: string;
|
|
124
|
+
baseUrl?: string;
|
|
125
|
+
apiKeyEnv?: string;
|
|
126
|
+
cost?: ModelCost;
|
|
127
|
+
maxTokens?: number;
|
|
128
|
+
contextWindow?: number;
|
|
129
|
+
reasoning?: boolean;
|
|
130
|
+
}>;
|
|
131
|
+
}
|
|
132
|
+
/** 规范容器内 env 名:MODEL_KEY_<NAME>(§3 apiKeyEnv 命名空间转换)。 */
|
|
133
|
+
export declare const canonicalModelKeyEnv: (name: string) => string;
|
|
134
|
+
/** 扫描存量 workers 的 model 七字段,产出 models 目录条目草稿 + 冲突报告 + cheapId→roster 计划。
|
|
135
|
+
* `existingModelNames` = 现 models 目录已占用的 name(避让后缀)。PURE——不写任何东西。
|
|
136
|
+
* 0.6.3:`opts.existingModels` 给出现目录条目时做内容级去重——worker.model 与既有条目 (id, provider,
|
|
137
|
+
* baseUrl) 相同 → 复用(进 `reuses`,不出新草稿;缺 apiKeyEnv 的条目给回填建议)。 */
|
|
138
|
+
export declare function planWorkerModelMigration(workers: (Pick<WorkerSpec, "name" | "secretRefs"> & {
|
|
139
|
+
model?: LegacyWorkerModel;
|
|
140
|
+
})[], existingModelNames?: readonly string[], opts?: PlanMigrationOpts): ModelMigrationPlan;
|
|
141
|
+
type LooseModels = {
|
|
142
|
+
models: Array<Record<string, unknown> & {
|
|
143
|
+
name: string;
|
|
144
|
+
apiKeyEnv?: string;
|
|
145
|
+
}>;
|
|
146
|
+
} & Record<string, unknown>;
|
|
147
|
+
type LooseRosters = {
|
|
148
|
+
rosters: Array<Record<string, unknown> & {
|
|
149
|
+
name: string;
|
|
150
|
+
models?: string[];
|
|
151
|
+
primaryModel?: string;
|
|
152
|
+
cheapModel?: string;
|
|
153
|
+
roles?: Record<string, unknown>;
|
|
154
|
+
}>;
|
|
155
|
+
} & Record<string, unknown>;
|
|
156
|
+
type LooseWorkers = {
|
|
157
|
+
workers: Array<Record<string, unknown> & {
|
|
158
|
+
name: string;
|
|
159
|
+
roster?: string;
|
|
160
|
+
secretEnv?: Record<string, string>;
|
|
161
|
+
}>;
|
|
162
|
+
} & Record<string, unknown>;
|
|
163
|
+
export interface ApplyMigrationDocs {
|
|
164
|
+
models: LooseModels;
|
|
165
|
+
rosters: LooseRosters;
|
|
166
|
+
workers: LooseWorkers;
|
|
167
|
+
}
|
|
168
|
+
export interface ApplyModelMigrationResult extends ApplyMigrationDocs {
|
|
169
|
+
/** 人读变更行(空=幂等无事可做)。 */
|
|
170
|
+
changes: string[];
|
|
171
|
+
/** 因冲突/缺信息被跳过的部分(人工确认段)。 */
|
|
172
|
+
skipped: string[];
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* 执行迁移计划(§3②③;**不删 worker.model**——真删=0.7):
|
|
176
|
+
* 1. models:追加非冲突草稿(同名已存在=幂等跳过);复用条目缺 apiKeyEnv 时回填规范名。
|
|
177
|
+
* 2. rosters:有 roster 的 worker → 该 roster 落 primaryModel/cheapModel 标记(已设且不同=skip 报冲突;
|
|
178
|
+
* 标记模型不在 roster.models 子集时补进子集);无 roster 的 worker → 指认「生效主/cheap 相同」的既有
|
|
179
|
+
* roster,否则按主模型名新建。
|
|
180
|
+
* 3. workers:secretEnv 接线 {容器内 apiKeyEnv ← 宿主 secretRefs.apiKeyEnv}(已接/宿主名缺失=跳过)+
|
|
181
|
+
* 无 roster 的 worker 写入指认结果。
|
|
182
|
+
* 幂等:对自身输出重跑 changes=[]。冲突 modelId 关联的 rosterAction/接线整条跳过(人工确认段)。
|
|
183
|
+
*/
|
|
184
|
+
export declare function applyModelMigrationPlan(plan: ModelMigrationPlan, docs: ApplyMigrationDocs): ApplyModelMigrationResult;
|
|
185
|
+
/**
|
|
186
|
+
* 迁移执行的**行为等价门**(C3,与 refIntegrityIssues 双门同点位):对 {@link applyModelMigrationPlan}
|
|
187
|
+
* 的前后三域做白名单式结构 diff——只允许迁移语义内的预期变更,任何意外漂移返回违规行(调用方 fail-closed
|
|
188
|
+
* 400,不落库)。白名单:
|
|
189
|
+
* - models:只许**新增**条目、既有条目只许 apiKeyEnv 从缺 → 有(回填);不许删、不许改其它字段。
|
|
190
|
+
* - rosters:只许新增 roster(且只带 name/models/primaryModel/cheapModel 四键);既有 roster 只许
|
|
191
|
+
* primaryModel/cheapModel 从缺 → 有、models 子集**追加**(且追加项必须是该 roster 的主/cheap 标记)。
|
|
192
|
+
* - workers:不许增删;每个 worker 只许 roster 从缺 → 有(指认)、secretEnv **添键且值严格匹配计划内
|
|
193
|
+
* (容器名 → 宿主名) 接线映射**(既有键不许动);其余键(含 model——真删=0.7)逐键必须不变。
|
|
194
|
+
* 空数组 = 通过。PURE,无 I/O。
|
|
195
|
+
*/
|
|
196
|
+
export declare function migrationDiffViolations(plan: ModelMigrationPlan, before: ApplyMigrationDocs, after: ApplyMigrationDocs): string[];
|
|
197
|
+
/** FROZEN copy of the pre-0.7 `teams` domain shape (the domain was DELETED in 0.7.0, replaced by `collab`).
|
|
198
|
+
* Input = historical stored JSON; same frozen-type rationale as {@link LegacyWorkerModel}. */
|
|
199
|
+
export interface LegacyTeamDef {
|
|
200
|
+
name: string;
|
|
201
|
+
members?: Array<{
|
|
202
|
+
role: string;
|
|
203
|
+
modelRole?: string;
|
|
204
|
+
model?: string;
|
|
205
|
+
systemPrompt?: string;
|
|
206
|
+
}>;
|
|
207
|
+
rounds?: number;
|
|
208
|
+
synthesizer?: {
|
|
209
|
+
role?: string;
|
|
210
|
+
modelRole?: string;
|
|
211
|
+
model?: string;
|
|
212
|
+
systemPrompt?: string;
|
|
213
|
+
};
|
|
214
|
+
scenario?: string;
|
|
215
|
+
maxTranscriptTokens?: number;
|
|
216
|
+
enabled?: boolean;
|
|
217
|
+
notes?: string;
|
|
218
|
+
}
|
|
219
|
+
/** 迁移合成模板的默认安全闸(拍板:多模型烧钱必须有闸——老 TeamDef 没有 budget 概念,迁移必须给一个;
|
|
220
|
+
* 调用方/admin 可再调)。 */
|
|
221
|
+
export declare const DEFAULT_COLLAB_BUDGET_TOKENS = 1000000;
|
|
222
|
+
export interface TeamsToCollabResult {
|
|
223
|
+
/** 新 collab 域文档(直接可 parseDomain("collab") 的 RAW 形状)。 */
|
|
224
|
+
collab: {
|
|
225
|
+
templates: unknown[];
|
|
226
|
+
};
|
|
227
|
+
/** 人读迁移报告(每 team 一行 + 丢弃项说明)。 */
|
|
228
|
+
report: string[];
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* teams → collab 存量迁移(EXPERT-REDESIGN §8-5):每个 TeamDef → star 模板。
|
|
232
|
+
* - members → "reviewer" 槽(cardinality "N")members[]:member.model(目录 name)→ modelRef;
|
|
233
|
+
* member.systemPrompt(+role 前缀)→ 成员级 rolePrompt。
|
|
234
|
+
* - `modelRole` 机制不入新形状(T1:只存目录引用或空)——带 modelRole 无 model 的成员迁为 modelRef 空
|
|
235
|
+
* (=跟随用户当前模型),丢弃记录进 report。
|
|
236
|
+
* - synthesizer → 独立 "synthesizer" 槽 + finalizer {type:"summarize", slot};无 synthesizer →
|
|
237
|
+
* finalizer {type:"summarize"}(runTeamDiscussion 的缺省综合行为)。
|
|
238
|
+
* - rounds 保留为 rounds.max;scenario → 迁移报告(工具展开需 scenario 定义,人工在槽位 tools 落地);
|
|
239
|
+
* maxTranscriptTokens/无 budget → budget.maxTokens 兜底 {@link DEFAULT_COLLAB_BUDGET_TOKENS}。
|
|
240
|
+
* 幂等:纯函数,同输入同输出;name 冲突由调用方 parseDomain 的 id 去重校验兜底(team name 本就唯一)。
|
|
241
|
+
*/
|
|
242
|
+
export declare function migrateTeamsToCollab(rawTeams: unknown): TeamsToCollabResult;
|
|
243
|
+
export type MigratedCollabConfig = CollabConfig;
|
|
244
|
+
export {};
|
|
245
|
+
//# sourceMappingURL=migrate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"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"}
|