@cleocode/core 2026.9.15 → 2026.9.17
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/changesets/parser.d.ts.map +1 -1
- package/dist/changesets/parser.js +67 -0
- package/dist/changesets/parser.js.map +1 -1
- package/dist/crypto/credentials.d.ts +128 -26
- package/dist/crypto/credentials.d.ts.map +1 -1
- package/dist/crypto/credentials.js +183 -142
- package/dist/crypto/credentials.js.map +1 -1
- package/dist/docs/export-document.js +14705 -12949
- package/dist/docs/export-document.js.map +3 -3
- package/dist/doctor/index.d.ts +1 -1
- package/dist/doctor/index.d.ts.map +1 -1
- package/dist/doctor/index.js +1 -1
- package/dist/doctor/index.js.map +1 -1
- package/dist/doctor/nexus-schema-residency.d.ts +1 -1
- package/dist/doctor/nexus-schema-residency.d.ts.map +1 -1
- package/dist/doctor/nexus-schema-residency.js +1 -0
- package/dist/doctor/nexus-schema-residency.js.map +1 -1
- package/dist/doctor/project-identity.d.ts +124 -0
- package/dist/doctor/project-identity.d.ts.map +1 -0
- package/dist/doctor/project-identity.js +307 -0
- package/dist/doctor/project-identity.js.map +1 -0
- package/dist/doctor/superseded-store.d.ts +8 -0
- package/dist/doctor/superseded-store.d.ts.map +1 -1
- package/dist/doctor/superseded-store.js +48 -3
- package/dist/doctor/superseded-store.js.map +1 -1
- package/dist/init.d.ts +7 -0
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +17 -2
- package/dist/init.js.map +1 -1
- package/dist/internal.d.ts +5 -2
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +4 -2
- package/dist/internal.js.map +1 -1
- package/dist/llm/credentials-store.d.ts +10 -0
- package/dist/llm/credentials-store.d.ts.map +1 -1
- package/dist/llm/credentials-store.js +7 -1
- package/dist/llm/credentials-store.js.map +1 -1
- package/dist/llm/plugin-facade.js +13368 -1550
- package/dist/llm/plugin-facade.js.map +3 -3
- package/dist/nexus/analyze-orchestrator.d.ts +20 -3
- package/dist/nexus/analyze-orchestrator.d.ts.map +1 -1
- package/dist/nexus/analyze-orchestrator.js +159 -10
- package/dist/nexus/analyze-orchestrator.js.map +1 -1
- package/dist/nexus/assessment-store.d.ts +57 -0
- package/dist/nexus/assessment-store.d.ts.map +1 -0
- package/dist/nexus/assessment-store.js +73 -0
- package/dist/nexus/assessment-store.js.map +1 -0
- package/dist/nexus/freshness.d.ts +131 -0
- package/dist/nexus/freshness.d.ts.map +1 -0
- package/dist/nexus/freshness.js +391 -0
- package/dist/nexus/freshness.js.map +1 -0
- package/dist/nexus/graph-manifest.d.ts +88 -0
- package/dist/nexus/graph-manifest.d.ts.map +1 -0
- package/dist/nexus/graph-manifest.js +114 -0
- package/dist/nexus/graph-manifest.js.map +1 -0
- package/dist/nexus/knowledge.d.ts +21 -1
- package/dist/nexus/knowledge.d.ts.map +1 -1
- package/dist/nexus/knowledge.js +76 -37
- package/dist/nexus/knowledge.js.map +1 -1
- package/dist/nexus/path-map.d.ts +55 -0
- package/dist/nexus/path-map.d.ts.map +1 -0
- package/dist/nexus/path-map.js +87 -0
- package/dist/nexus/path-map.js.map +1 -0
- package/dist/nexus/projects-clean.d.ts +21 -28
- package/dist/nexus/projects-clean.d.ts.map +1 -1
- package/dist/nexus/projects-clean.js +168 -85
- package/dist/nexus/projects-clean.js.map +1 -1
- package/dist/nexus/query.d.ts.map +1 -1
- package/dist/nexus/query.js +3 -2
- package/dist/nexus/query.js.map +1 -1
- package/dist/nexus/registry-hygiene.d.ts +70 -0
- package/dist/nexus/registry-hygiene.d.ts.map +1 -0
- package/dist/nexus/registry-hygiene.js +113 -0
- package/dist/nexus/registry-hygiene.js.map +1 -0
- package/dist/nexus/registry.d.ts +2 -2
- package/dist/nexus/registry.d.ts.map +1 -1
- package/dist/nexus/registry.js +48 -12
- package/dist/nexus/registry.js.map +1 -1
- package/dist/paths.d.ts +26 -0
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +99 -6
- package/dist/paths.js.map +1 -1
- package/dist/render/nexus/graph/index.d.ts.map +1 -1
- package/dist/render/nexus/graph/index.js +8 -0
- package/dist/render/nexus/graph/index.js.map +1 -1
- package/dist/resources/spawn-wrapper.d.ts +0 -11
- package/dist/resources/spawn-wrapper.d.ts.map +1 -1
- package/dist/resources/spawn-wrapper.js +62 -6
- package/dist/resources/spawn-wrapper.js.map +1 -1
- package/dist/scaffold/ensure-config.d.ts +12 -3
- package/dist/scaffold/ensure-config.d.ts.map +1 -1
- package/dist/scaffold/ensure-config.js +61 -38
- package/dist/scaffold/ensure-config.js.map +1 -1
- package/dist/scaffold/project-identity.d.ts +136 -0
- package/dist/scaffold/project-identity.d.ts.map +1 -0
- package/dist/scaffold/project-identity.js +225 -0
- package/dist/scaffold/project-identity.js.map +1 -0
- package/dist/selfimprove/fix-gen.js +13319 -1556
- package/dist/selfimprove/fix-gen.js.map +3 -3
- package/dist/store/agent-api-key.d.ts +114 -0
- package/dist/store/agent-api-key.d.ts.map +1 -0
- package/dist/store/agent-api-key.js +136 -0
- package/dist/store/agent-api-key.js.map +1 -0
- package/dist/store/agent-registry-accessor.d.ts +4 -2
- package/dist/store/agent-registry-accessor.d.ts.map +1 -1
- package/dist/store/agent-registry-accessor.js +39 -89
- package/dist/store/agent-registry-accessor.js.map +1 -1
- package/dist/store/api-key-kdf.d.ts +7 -0
- package/dist/store/api-key-kdf.d.ts.map +1 -1
- package/dist/store/api-key-kdf.js +7 -0
- package/dist/store/api-key-kdf.js.map +1 -1
- package/dist/store/backup-crypto.d.ts +49 -0
- package/dist/store/backup-crypto.d.ts.map +1 -1
- package/dist/store/backup-crypto.js +154 -0
- package/dist/store/backup-crypto.js.map +1 -1
- package/dist/store/credential-transfer.d.ts +303 -0
- package/dist/store/credential-transfer.d.ts.map +1 -0
- package/dist/store/credential-transfer.js +774 -0
- package/dist/store/credential-transfer.js.map +1 -0
- package/dist/store/exodus/column-transforms.d.ts +79 -4
- package/dist/store/exodus/column-transforms.d.ts.map +1 -1
- package/dist/store/exodus/column-transforms.js +121 -4
- package/dist/store/exodus/column-transforms.js.map +1 -1
- package/dist/store/exodus/index.d.ts +1 -0
- package/dist/store/exodus/index.d.ts.map +1 -1
- package/dist/store/exodus/index.js +1 -0
- package/dist/store/exodus/index.js.map +1 -1
- package/dist/store/exodus/migrate.d.ts +17 -1
- package/dist/store/exodus/migrate.d.ts.map +1 -1
- package/dist/store/exodus/migrate.js +155 -33
- package/dist/store/exodus/migrate.js.map +1 -1
- package/dist/store/exodus/on-open.d.ts +14 -0
- package/dist/store/exodus/on-open.d.ts.map +1 -1
- package/dist/store/exodus/on-open.js +115 -6
- package/dist/store/exodus/on-open.js.map +1 -1
- package/dist/store/exodus/reconcile.d.ts +103 -0
- package/dist/store/exodus/reconcile.d.ts.map +1 -0
- package/dist/store/exodus/reconcile.js +728 -0
- package/dist/store/exodus/reconcile.js.map +1 -0
- package/dist/store/exodus/recovery.d.ts.map +1 -1
- package/dist/store/exodus/recovery.js +14 -2
- package/dist/store/exodus/recovery.js.map +1 -1
- package/dist/store/exodus/runtime-targets.d.ts +39 -0
- package/dist/store/exodus/runtime-targets.d.ts.map +1 -0
- package/dist/store/exodus/runtime-targets.js +63 -0
- package/dist/store/exodus/runtime-targets.js.map +1 -0
- package/dist/store/exodus/table-name-map.d.ts.map +1 -1
- package/dist/store/exodus/table-name-map.js +5 -0
- package/dist/store/exodus/table-name-map.js.map +1 -1
- package/dist/store/exodus/table-order.d.ts +35 -0
- package/dist/store/exodus/table-order.d.ts.map +1 -0
- package/dist/store/exodus/table-order.js +62 -0
- package/dist/store/exodus/table-order.js.map +1 -0
- package/dist/store/exodus/verify-migration.d.ts +4 -1
- package/dist/store/exodus/verify-migration.d.ts.map +1 -1
- package/dist/store/exodus/verify-migration.js +142 -10
- package/dist/store/exodus/verify-migration.js.map +1 -1
- package/dist/store/global-salt.d.ts +16 -0
- package/dist/store/global-salt.d.ts.map +1 -1
- package/dist/store/global-salt.js +22 -7
- package/dist/store/global-salt.js.map +1 -1
- package/dist/store/legacy-tasks-lineage.d.ts +86 -0
- package/dist/store/legacy-tasks-lineage.d.ts.map +1 -0
- package/dist/store/legacy-tasks-lineage.js +285 -0
- package/dist/store/legacy-tasks-lineage.js.map +1 -0
- package/dist/store/migration-manager.d.ts +27 -0
- package/dist/store/migration-manager.d.ts.map +1 -1
- package/dist/store/migration-manager.js +63 -0
- package/dist/store/migration-manager.js.map +1 -1
- package/dist/store/portable-bundle-import.d.ts +117 -0
- package/dist/store/portable-bundle-import.d.ts.map +1 -0
- package/dist/store/portable-bundle-import.js +589 -0
- package/dist/store/portable-bundle-import.js.map +1 -0
- package/dist/store/portable-bundle-relocate.d.ts +66 -0
- package/dist/store/portable-bundle-relocate.d.ts.map +1 -0
- package/dist/store/portable-bundle-relocate.js +304 -0
- package/dist/store/portable-bundle-relocate.js.map +1 -0
- package/dist/store/portable-bundle-scan.d.ts +167 -0
- package/dist/store/portable-bundle-scan.d.ts.map +1 -0
- package/dist/store/portable-bundle-scan.js +569 -0
- package/dist/store/portable-bundle-scan.js.map +1 -0
- package/dist/store/portable-bundle.d.ts +146 -0
- package/dist/store/portable-bundle.d.ts.map +1 -0
- package/dist/store/portable-bundle.js +674 -0
- package/dist/store/portable-bundle.js.map +1 -0
- package/dist/store/regenerators.d.ts +3 -1
- package/dist/store/regenerators.d.ts.map +1 -1
- package/dist/store/regenerators.js +6 -2
- package/dist/store/regenerators.js.map +1 -1
- package/dist/store/schema/cleo-global/nexus.d.ts +98 -0
- package/dist/store/schema/cleo-global/nexus.d.ts.map +1 -1
- package/dist/store/schema/cleo-global/nexus.js +19 -0
- package/dist/store/schema/cleo-global/nexus.js.map +1 -1
- package/dist/store/schema/nexus-schema.d.ts +102 -0
- package/dist/store/schema/nexus-schema.d.ts.map +1 -1
- package/dist/store/schema/nexus-schema.js +24 -0
- package/dist/store/schema/nexus-schema.js.map +1 -1
- package/dist/store/split-brain-import.d.ts +176 -0
- package/dist/store/split-brain-import.d.ts.map +1 -0
- package/dist/store/split-brain-import.js +680 -0
- package/dist/store/split-brain-import.js.map +1 -0
- package/dist/store/sqlite.d.ts +29 -0
- package/dist/store/sqlite.d.ts.map +1 -1
- package/dist/store/sqlite.js +57 -5
- package/dist/store/sqlite.js.map +1 -1
- package/dist/system/health.d.ts.map +1 -1
- package/dist/system/health.js +30 -5
- package/dist/system/health.js.map +1 -1
- package/dist/upgrade.d.ts.map +1 -1
- package/dist/upgrade.js +60 -0
- package/dist/upgrade.js.map +1 -1
- package/dist/validation/doctor/checks.d.ts +14 -0
- package/dist/validation/doctor/checks.d.ts.map +1 -1
- package/dist/validation/doctor/checks.js +33 -0
- package/dist/validation/doctor/checks.js.map +1 -1
- package/migrations/drizzle-cleo-global/20260924000000_t12354-project-paths/migration.sql +40 -0
- package/migrations/drizzle-nexus/20260924000000_t12315-nexus-parse-cache/migration.sql +21 -0
- package/package.json +13 -13
- package/templates/CLEO-INJECTION.md +3 -3
- package/templates/cleo-gitignore +7 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/changesets/parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,EACL,KAAK,cAAc,EAGpB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/changesets/parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,EACL,KAAK,cAAc,EAGpB,MAAM,qBAAqB,CAAC;AA4N7B;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAsF/D;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,EAAE,CAU/D"}
|
|
@@ -103,6 +103,54 @@ function locateSchemaIssueLine(frontmatter, issuePath) {
|
|
|
103
103
|
}
|
|
104
104
|
return lastMatchLine;
|
|
105
105
|
}
|
|
106
|
+
// ─── Reserved leading character hint (T12351) ────────────────────────────────
|
|
107
|
+
/**
|
|
108
|
+
* Characters that cannot start a YAML plain scalar, or that silently change
|
|
109
|
+
* its meaning: backtick and `@` are reserved, `%` is a directive, `|`/`>`
|
|
110
|
+
* start block scalars, `*` an alias, `&` an anchor, `!` a tag, `#` a comment.
|
|
111
|
+
* Flow collections (`[`, `{`) are omitted — `tasks: [T1]` is legitimate — and
|
|
112
|
+
* so are quotes, which are the fix.
|
|
113
|
+
*/
|
|
114
|
+
const RESERVED_LEADING = new Set(['`', '@', '%', '|', '>', '*', '&', '!', '#']);
|
|
115
|
+
/**
|
|
116
|
+
* Find top-level `key: value` lines whose unquoted value starts with a
|
|
117
|
+
* YAML-reserved character. A bare block-scalar header (`summary: >-`) is a
|
|
118
|
+
* legitimate multi-line value and is not reported.
|
|
119
|
+
*
|
|
120
|
+
* @internal
|
|
121
|
+
* @task T12351
|
|
122
|
+
*/
|
|
123
|
+
function findReservedLeadingValues(frontmatter) {
|
|
124
|
+
const found = [];
|
|
125
|
+
const lines = frontmatter.split(/\r?\n/);
|
|
126
|
+
for (let i = 0; i < lines.length; i++) {
|
|
127
|
+
const match = lines[i]?.match(/^([A-Za-z_][\w-]*):[ \t]+(\S.*?)\s*$/);
|
|
128
|
+
if (!match)
|
|
129
|
+
continue;
|
|
130
|
+
const key = match[1] ?? '';
|
|
131
|
+
const value = match[2] ?? '';
|
|
132
|
+
const char = value[0] ?? '';
|
|
133
|
+
if (!RESERVED_LEADING.has(char))
|
|
134
|
+
continue;
|
|
135
|
+
if ((char === '|' || char === '>') && /^[|>][+-]?\d*$/.test(value))
|
|
136
|
+
continue;
|
|
137
|
+
found.push({ line: i + 1, key, value, char });
|
|
138
|
+
}
|
|
139
|
+
return found;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Build the remediation for a reserved leading character: the exact line to
|
|
143
|
+
* write, with the value wrapped in double quotes and inner quotes/backslashes
|
|
144
|
+
* escaped.
|
|
145
|
+
*
|
|
146
|
+
* @internal
|
|
147
|
+
* @task T12351
|
|
148
|
+
*/
|
|
149
|
+
function reservedLeadingHint(entry) {
|
|
150
|
+
const quoted = entry.value.replace(/\\/g, '\\\\').replace(/"/g, '\\"');
|
|
151
|
+
return (`'${entry.key}' starts with the YAML-reserved character '${entry.char}' — ` +
|
|
152
|
+
`wrap the value in double quotes: ${entry.key}: "${quoted}"`);
|
|
153
|
+
}
|
|
106
154
|
/**
|
|
107
155
|
* Split a markdown file into its YAML frontmatter and body sections.
|
|
108
156
|
*
|
|
@@ -167,11 +215,30 @@ export function parseChangesetFile(path) {
|
|
|
167
215
|
// the surfaced line number matches the actual file line.
|
|
168
216
|
const line = yamlLine !== null ? split.frontmatterStartLine + yamlLine : null;
|
|
169
217
|
const snippet = yamlLine !== null ? extractSnippet(split.frontmatter, yamlLine) : undefined;
|
|
218
|
+
// T12351: name the fix. Prefer the reserved value on the reported line.
|
|
219
|
+
const reserved = findReservedLeadingValues(split.frontmatter);
|
|
220
|
+
const culprit = reserved.find((entry) => entry.line === yamlLine) ?? reserved[0];
|
|
170
221
|
throw new ChangesetYamlInvalidError({
|
|
171
222
|
file: path,
|
|
172
223
|
line,
|
|
173
224
|
...(snippet !== undefined ? { snippet } : {}),
|
|
174
225
|
parserMessage,
|
|
226
|
+
...(culprit !== undefined ? { hint: reservedLeadingHint(culprit) } : {}),
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
// T12351: `&` (anchor), `!` (tag) and `#` (comment) do not fail to parse —
|
|
230
|
+
// they silently drop text from the value (`summary: &x fixed` reads as
|
|
231
|
+
// "fixed"). Any unquoted reserved leading character is rejected with the fix.
|
|
232
|
+
const silent = findReservedLeadingValues(split.frontmatter)[0];
|
|
233
|
+
if (silent !== undefined) {
|
|
234
|
+
const line = split.frontmatterStartLine + silent.line;
|
|
235
|
+
const snippet = extractSnippet(split.frontmatter, silent.line);
|
|
236
|
+
throw new ChangesetYamlInvalidError({
|
|
237
|
+
file: path,
|
|
238
|
+
line,
|
|
239
|
+
...(snippet !== undefined ? { snippet } : {}),
|
|
240
|
+
parserMessage: `'${silent.key}' value starts with the YAML indicator '${silent.char}', which YAML reads as syntax, not text`,
|
|
241
|
+
hint: reservedLeadingHint(silent),
|
|
175
242
|
});
|
|
176
243
|
}
|
|
177
244
|
if (frontmatterData === null || typeof frontmatterData !== 'object') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/changesets/parser.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/changesets/parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,42 +1,142 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Credential encryption — AES-256-GCM with
|
|
2
|
+
* Credential encryption — AES-256-GCM with device-bound key derivation.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Every key derives from the 32-byte `machine-key` in the CLEO home. That key
|
|
5
|
+
* NEVER leaves the device; credentials cross devices only through the
|
|
6
|
+
* passphrase-sealed path in `store/credential-transfer.ts`.
|
|
6
7
|
*
|
|
7
|
-
*
|
|
8
|
-
* + project path
|
|
9
|
-
* = HMAC-SHA256(machine-key, project-path) → per-project AES key
|
|
8
|
+
* Two KDFs:
|
|
10
9
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
10
|
+
* - **Project** (T12326): `HMAC-SHA256(machine-key, "cleo:project-credential:v2\0"
|
|
11
|
+
* ‖ projectId)`, ciphertext version `0x02`. Keyed by project IDENTITY, so a
|
|
12
|
+
* moved or renamed project still decrypts. The pre-T12326 path-bound KDF
|
|
13
|
+
* (`HMAC-SHA256(machine-key, projectPath)`, version `0x01`) is read-only and
|
|
14
|
+
* migrated on first successful decrypt ({@link decryptProjectSecret}).
|
|
15
|
+
* - **Global** (ADR-037 §5): `HMAC-SHA256(machine-key ‖ global-salt, id)`,
|
|
16
|
+
* version `0x01`, for project-independent credentials.
|
|
13
17
|
*
|
|
14
18
|
* @see docs/specs/SIGNALDOCK-UNIFIED-AGENT-REGISTRY.md Section 3.6
|
|
15
19
|
* @module crypto/credentials
|
|
16
20
|
*/
|
|
17
21
|
/**
|
|
18
|
-
*
|
|
22
|
+
* Absolute path to the machine key file: `<cleoHome>/machine-key`.
|
|
19
23
|
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
24
|
+
* Resolved through {@link getCleoHome} — the same root as `global-salt` and
|
|
25
|
+
* the agent registry's key reader — so `CLEO_HOME` relocates all of them
|
|
26
|
+
* together. (Before T12326 this function re-derived the XDG path itself and
|
|
27
|
+
* ignored `CLEO_HOME`, so a relocated home read the salt from one directory
|
|
28
|
+
* and the key from another.) On every platform the default resolves to the
|
|
29
|
+
* same file as before.
|
|
25
30
|
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
31
|
+
* The machine key is DEVICE-LOCAL by design: it is never exported in any
|
|
32
|
+
* backup bundle. Credentials move between devices through
|
|
33
|
+
* `store/credential-transfer.ts` instead.
|
|
34
|
+
*
|
|
35
|
+
* @param cleoHome - CLEO home to resolve against (defaults to the ambient home).
|
|
36
|
+
* @returns Absolute path to the machine key.
|
|
37
|
+
* @task T12326
|
|
29
38
|
*/
|
|
30
|
-
export declare function
|
|
39
|
+
export declare function getMachineKeyPath(cleoHome?: string): string;
|
|
31
40
|
/**
|
|
32
|
-
*
|
|
41
|
+
* Options shared by every credential encrypt/decrypt call.
|
|
33
42
|
*
|
|
34
|
-
* @
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
43
|
+
* @task T12326
|
|
44
|
+
*/
|
|
45
|
+
export interface CredentialKeyOptions {
|
|
46
|
+
/**
|
|
47
|
+
* CLEO home whose `machine-key` (and `global-salt`, for the global KDF) keys
|
|
48
|
+
* the operation. Defaults to the ambient home. A backup import passes the
|
|
49
|
+
* home it is restoring INTO, which need not be the process's own; an explicit
|
|
50
|
+
* home also reads the salt fresh instead of from the process memo.
|
|
51
|
+
*/
|
|
52
|
+
readonly cleoHome?: string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Ciphertext version written by the pre-T12326 project KDF,
|
|
56
|
+
* `HMAC-SHA256(machine-key, projectPath)`. Read-only: decrypted during
|
|
57
|
+
* migration, never written.
|
|
58
|
+
*/
|
|
59
|
+
export declare const PROJECT_CIPHERTEXT_VERSION_LEGACY_PATH = 1;
|
|
60
|
+
/**
|
|
61
|
+
* Ciphertext version written by the project-identity KDF,
|
|
62
|
+
* `HMAC-SHA256(machine-key, "cleo:project-credential:v2\0" ‖ projectId)`.
|
|
63
|
+
*/
|
|
64
|
+
export declare const PROJECT_CIPHERTEXT_VERSION_PROJECT_ID = 2;
|
|
65
|
+
/**
|
|
66
|
+
* Which KDF decrypted a project credential.
|
|
67
|
+
*
|
|
68
|
+
* @task T12326
|
|
69
|
+
*/
|
|
70
|
+
export type ProjectCredentialKdf = 'project-id' | 'legacy-path';
|
|
71
|
+
/**
|
|
72
|
+
* Key context for {@link decryptProjectSecret}.
|
|
73
|
+
*
|
|
74
|
+
* @task T12326
|
|
75
|
+
*/
|
|
76
|
+
export interface ProjectSecretContext extends CredentialKeyOptions {
|
|
77
|
+
/**
|
|
78
|
+
* Stable project identity — the `projectId` of `.cleo/project-info.json`
|
|
79
|
+
* (or its tracked successor). Travels with the project directory, so a
|
|
80
|
+
* moved or renamed checkout derives the same key.
|
|
81
|
+
*/
|
|
82
|
+
readonly projectId: string;
|
|
83
|
+
/**
|
|
84
|
+
* Candidate project paths for ciphertexts still under the legacy path KDF
|
|
85
|
+
* (typically the current root plus the path the registry last recorded).
|
|
86
|
+
* Tried in order; unused for project-id ciphertexts.
|
|
87
|
+
*/
|
|
88
|
+
readonly legacyProjectPaths?: readonly string[];
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Result of {@link decryptProjectSecret}.
|
|
92
|
+
*
|
|
93
|
+
* @task T12326
|
|
94
|
+
*/
|
|
95
|
+
export interface ProjectSecretReadResult {
|
|
96
|
+
/** The decrypted secret. */
|
|
97
|
+
readonly plaintext: string;
|
|
98
|
+
/** Which KDF opened it. */
|
|
99
|
+
readonly kdf: ProjectCredentialKdf;
|
|
100
|
+
/**
|
|
101
|
+
* When the ciphertext was legacy (path-bound): the same secret re-encrypted
|
|
102
|
+
* under the project-id KDF. The caller persists it in place of the old
|
|
103
|
+
* ciphertext. `null` when the ciphertext was already current.
|
|
104
|
+
*/
|
|
105
|
+
readonly rewrapped: string | null;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Encrypt a project-scoped secret under the project-identity KDF.
|
|
109
|
+
*
|
|
110
|
+
* The key is `HMAC-SHA256(machine-key, "cleo:project-credential:v2\0" ‖
|
|
111
|
+
* projectId)`: bound to this device (machine-key) and to the project's
|
|
112
|
+
* identity, but NOT to where the project directory lives. Moving or renaming
|
|
113
|
+
* the checkout keeps the key; a different device does not (see
|
|
114
|
+
* `store/credential-transfer.ts` for the portable path).
|
|
115
|
+
*
|
|
116
|
+
* @param plaintext - The secret (e.g. an agent API key).
|
|
117
|
+
* @param projectId - Stable project identity.
|
|
118
|
+
* @param options - Key options (which CLEO home's machine-key).
|
|
119
|
+
* @returns Base64 ciphertext, version byte {@link PROJECT_CIPHERTEXT_VERSION_PROJECT_ID}.
|
|
120
|
+
* @task T12326
|
|
121
|
+
*/
|
|
122
|
+
export declare function encryptProjectSecret(plaintext: string, projectId: string, options?: CredentialKeyOptions): Promise<string>;
|
|
123
|
+
/**
|
|
124
|
+
* Decrypt a project-scoped secret, migrating legacy ciphertexts on the way.
|
|
125
|
+
*
|
|
126
|
+
* - Version `0x02` ciphertexts open with the project-identity key.
|
|
127
|
+
* - Version `0x01` (legacy, path-bound) ciphertexts are tried against each of
|
|
128
|
+
* `legacyProjectPaths`; the first that authenticates wins and the secret is
|
|
129
|
+
* re-encrypted under the project-identity KDF and returned as `rewrapped`
|
|
130
|
+
* for the caller to persist. The legacy ciphertext is never needed again.
|
|
131
|
+
*
|
|
132
|
+
* @param ciphertext - Base64 ciphertext from either KDF.
|
|
133
|
+
* @param context - Project identity plus legacy path candidates.
|
|
134
|
+
* @returns The plaintext, which KDF opened it, and any re-wrapped ciphertext.
|
|
135
|
+
* @throws {Error} If no key authenticates. The message names the paths tried
|
|
136
|
+
* so the caller can report which credential to re-enter.
|
|
137
|
+
* @task T12326
|
|
38
138
|
*/
|
|
39
|
-
export declare function
|
|
139
|
+
export declare function decryptProjectSecret(ciphertext: string, context: ProjectSecretContext): Promise<ProjectSecretReadResult>;
|
|
40
140
|
/**
|
|
41
141
|
* Encrypt a plaintext string using AES-256-GCM with a global, machine-bound key.
|
|
42
142
|
*
|
|
@@ -53,12 +153,13 @@ export declare function decrypt(ciphertext: string, projectPath: string): Promis
|
|
|
53
153
|
*
|
|
54
154
|
* @param plaintext - The string to encrypt (e.g. an LLM API key).
|
|
55
155
|
* @param id - The stable identity used for key derivation (e.g. an agentId).
|
|
156
|
+
* @param options - Key options (which CLEO home's machine-key + salt).
|
|
56
157
|
* @returns Base64-encoded ciphertext.
|
|
57
158
|
*
|
|
58
159
|
* @see decryptGlobal — the inverse operation.
|
|
59
160
|
* @task T11710
|
|
60
161
|
*/
|
|
61
|
-
export declare function encryptGlobal(plaintext: string, id: string): Promise<string>;
|
|
162
|
+
export declare function encryptGlobal(plaintext: string, id: string, options?: CredentialKeyOptions): Promise<string>;
|
|
62
163
|
/**
|
|
63
164
|
* Decrypt a base64-encoded ciphertext produced by {@link encryptGlobal} using
|
|
64
165
|
* the global, machine-bound key derived from `id`.
|
|
@@ -66,6 +167,7 @@ export declare function encryptGlobal(plaintext: string, id: string): Promise<st
|
|
|
66
167
|
* @param ciphertext - Base64-encoded string from {@link encryptGlobal}.
|
|
67
168
|
* @param id - The identity used at encryption time. A mismatched `id` derives a
|
|
68
169
|
* different key and fails the GCM auth tag (throws).
|
|
170
|
+
* @param options - Key options (which CLEO home's machine-key + salt).
|
|
69
171
|
* @returns The original plaintext string.
|
|
70
172
|
* @throws If decryption fails (wrong id, corrupted data, or machine-key/
|
|
71
173
|
* global-salt mismatch).
|
|
@@ -73,5 +175,5 @@ export declare function encryptGlobal(plaintext: string, id: string): Promise<st
|
|
|
73
175
|
* @see encryptGlobal — the inverse operation.
|
|
74
176
|
* @task T11710
|
|
75
177
|
*/
|
|
76
|
-
export declare function decryptGlobal(ciphertext: string, id: string): Promise<string>;
|
|
178
|
+
export declare function decryptGlobal(ciphertext: string, id: string, options?: CredentialKeyOptions): Promise<string>;
|
|
77
179
|
//# sourceMappingURL=credentials.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/crypto/credentials.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/crypto/credentials.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAqBH;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,GAAE,MAAsB,GAAG,MAAM,CAE1E;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAuID;;;;GAIG;AACH,eAAO,MAAM,sCAAsC,IAAO,CAAC;AAE3D;;;GAGG;AACH,eAAO,MAAM,qCAAqC,IAAO,CAAC;AAK1D;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG,aAAa,CAAC;AAEhE;;;;GAIG;AACH,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;IAChE;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACjD;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,4BAA4B;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,2BAA2B;IAC3B,QAAQ,CAAC,GAAG,EAAE,oBAAoB,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AA2BD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,uBAAuB,CAAC,CAyClC;AAyCD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,aAAa,CACjC,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,MAAM,EACV,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,EACV,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,MAAM,CAAC,CAiBjB"}
|