@kitsy/cnos 1.2.0 → 1.4.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.
Files changed (65) hide show
  1. package/README.md +3 -3
  2. package/dist/build/index.cjs +1003 -121
  3. package/dist/build/index.d.cts +1 -1
  4. package/dist/build/index.d.ts +1 -1
  5. package/dist/build/index.js +22 -10
  6. package/dist/{chunk-APCTXRUN.js → chunk-APIU4GTB.js} +1012 -195
  7. package/dist/chunk-EQSKV3DP.js +105 -0
  8. package/dist/{chunk-MLQGYCO7.js → chunk-FWJC4Y2D.js} +1 -1
  9. package/dist/{chunk-RD5WMHPM.js → chunk-HMM76UYZ.js} +1 -1
  10. package/dist/{chunk-EIN55XXA.js → chunk-J4K4JUJL.js} +1 -1
  11. package/dist/{chunk-SO5XREEU.js → chunk-JSBVYK2T.js} +32 -11
  12. package/dist/chunk-LJD4SM32.js +189 -0
  13. package/dist/{chunk-SXTMTACL.js → chunk-T6Y57KTT.js} +20 -31
  14. package/dist/chunk-WCHX2QFY.js +115 -0
  15. package/dist/{chunk-ZA74BO47.js → chunk-ZTPSFXWP.js} +1 -1
  16. package/dist/configure/index.cjs +3021 -0
  17. package/dist/configure/index.d.cts +12 -0
  18. package/dist/configure/index.d.ts +12 -0
  19. package/dist/configure/index.js +24 -0
  20. package/dist/{envNaming-CcsqAel3.d.ts → envNaming-Dvm_LP2D.d.ts} +1 -1
  21. package/dist/{envNaming-BTJpH93W.d.cts → envNaming-S4B-dHUx.d.cts} +1 -1
  22. package/dist/index.cjs +1243 -186
  23. package/dist/index.d.cts +2 -13
  24. package/dist/index.d.ts +2 -13
  25. package/dist/index.js +13 -25
  26. package/dist/internal.cjs +1525 -81
  27. package/dist/internal.d.cts +171 -14
  28. package/dist/internal.d.ts +171 -14
  29. package/dist/internal.js +652 -5
  30. package/dist/plugin/basic-schema.cjs +29 -2
  31. package/dist/plugin/basic-schema.d.cts +1 -1
  32. package/dist/plugin/basic-schema.d.ts +1 -1
  33. package/dist/plugin/basic-schema.js +2 -2
  34. package/dist/plugin/cli-args.cjs +29 -2
  35. package/dist/plugin/cli-args.d.cts +1 -1
  36. package/dist/plugin/cli-args.d.ts +1 -1
  37. package/dist/plugin/cli-args.js +2 -2
  38. package/dist/plugin/dotenv.cjs +36 -9
  39. package/dist/plugin/dotenv.d.cts +2 -2
  40. package/dist/plugin/dotenv.d.ts +2 -2
  41. package/dist/plugin/dotenv.js +2 -2
  42. package/dist/plugin/env-export.cjs +31 -2
  43. package/dist/plugin/env-export.d.cts +2 -2
  44. package/dist/plugin/env-export.d.ts +2 -2
  45. package/dist/plugin/env-export.js +2 -2
  46. package/dist/plugin/filesystem.cjs +65 -91
  47. package/dist/plugin/filesystem.d.cts +1 -1
  48. package/dist/plugin/filesystem.d.ts +1 -1
  49. package/dist/plugin/filesystem.js +2 -2
  50. package/dist/plugin/process-env.cjs +105 -11
  51. package/dist/plugin/process-env.d.cts +4 -3
  52. package/dist/plugin/process-env.d.ts +4 -3
  53. package/dist/plugin/process-env.js +6 -4
  54. package/dist/{plugin-DkOIT5uI.d.cts → plugin-B4xwySxw.d.cts} +15 -2
  55. package/dist/{plugin-DkOIT5uI.d.ts → plugin-B4xwySxw.d.ts} +15 -2
  56. package/dist/runtime/index.cjs +1057 -136
  57. package/dist/runtime/index.d.cts +1 -1
  58. package/dist/runtime/index.d.ts +1 -1
  59. package/dist/runtime/index.js +11 -186
  60. package/dist/{toPublicEnv-C9clvXLo.d.ts → toPublicEnv-CvhGAfsB.d.ts} +1 -1
  61. package/dist/{toPublicEnv-DvFeV3qG.d.cts → toPublicEnv-ggmphZFs.d.cts} +1 -1
  62. package/package.json +11 -1
  63. package/dist/chunk-JUHPBAEH.js +0 -20
  64. package/dist/chunk-PQ4KSV76.js +0 -50
  65. package/dist/chunk-WHUGFPE4.js +0 -49
@@ -1,5 +1,5 @@
1
- import { i as LoadManifestOptions, j as LoadedManifest, N as NormalizedManifest, g as LogicalKey, V as VaultDefinition, d as CnosRuntime, k as ValidationSummary, R as ResolvedGraph } from './plugin-DkOIT5uI.cjs';
2
- export { l as ValidationIssue, W as WorkspaceFile } from './plugin-DkOIT5uI.cjs';
1
+ import { j as LoadManifestOptions, k as LoadedManifest, N as NormalizedManifest, b as LogicalKey, l as NamespaceDefinition, m as VaultDefinition, i as NamespaceName, g as CnosRuntime, n as ValidationSummary, R as ResolvedGraph } from './plugin-B4xwySxw.cjs';
2
+ export { o as ValidationIssue, p as WorkspaceFile } from './plugin-B4xwySxw.cjs';
3
3
 
4
4
  declare class CnosError extends Error {
5
5
  constructor(message: string);
@@ -7,36 +7,89 @@ declare class CnosError extends Error {
7
7
  declare class CnosSecurityError extends CnosError {
8
8
  constructor(message: string);
9
9
  }
10
+ declare class CnosAuthenticationError extends CnosError {
11
+ constructor(message: string);
12
+ }
13
+
14
+ declare function readKeychain(entry: string): Promise<string | undefined>;
15
+ declare function writeKeychain(entry: string, value: string): Promise<void>;
10
16
 
11
17
  declare function loadManifest(options?: LoadManifestOptions): Promise<LoadedManifest>;
12
18
 
13
19
  type ProjectionTarget = 'public' | 'env';
20
+ declare function getNamespaceDefinition(manifest: NormalizedManifest, namespaceOrKey: string): NamespaceDefinition;
14
21
  declare function ensureProjectionAllowed(manifest: NormalizedManifest, key: LogicalKey, target: ProjectionTarget): void;
15
22
 
16
- declare function flattenObject(value: Record<string, unknown>, prefix?: string): Record<string, unknown>;
17
-
18
- declare function resolveManifestRoot(root?: string): Promise<string>;
19
- declare function resolveConfigDocumentPath(workspaceRoot: string, namespace: 'value' | 'secret', configPath: string, profile?: string): string;
20
-
21
23
  interface SecretReference {
22
24
  provider: string;
23
25
  ref: string;
24
26
  vault?: string;
25
27
  }
28
+ interface VaultAuthConfig {
29
+ passphrase?: string;
30
+ token?: string;
31
+ derivedKey?: Buffer;
32
+ method: 'passphrase' | 'environment' | 'token' | 'iam' | 'keychain';
33
+ config?: Record<string, unknown>;
34
+ }
35
+ interface SecretVaultProvider {
36
+ readonly vaultId: string;
37
+ readonly definition: VaultDefinition;
38
+ authenticate(authConfig: VaultAuthConfig): Promise<void>;
39
+ isAuthenticated(): boolean;
40
+ batchGet(refs: string[]): Promise<Map<string, string>>;
41
+ get(ref: string): Promise<string | undefined>;
42
+ set(ref: string, value: string): Promise<void>;
43
+ delete(ref: string): Promise<void>;
44
+ list(): Promise<string[]>;
45
+ }
46
+
47
+ declare function resolveVaultAuth(vaultId: string, definition: VaultDefinition, processEnv?: Record<string, string | undefined>): Promise<VaultAuthConfig>;
48
+
49
+ declare function writeVaultSessionKey(vault: string, derivedKey: Buffer, processEnv?: Record<string, string | undefined>): Promise<string>;
50
+ declare function clearVaultSessionKey(vault: string, processEnv?: Record<string, string | undefined>): Promise<void>;
51
+ declare function clearAllVaultSessionKeys(processEnv?: Record<string, string | undefined>): Promise<void>;
52
+
53
+ declare function createSecretVaultProvider(vaultId: string, definition: VaultDefinition, processEnv?: Record<string, string | undefined>): SecretVaultProvider;
54
+
55
+ declare function flattenObject(value: Record<string, unknown>, prefix?: string): Record<string, unknown>;
56
+
57
+ declare function resolveManifestRoot(root?: string): Promise<string>;
58
+ declare function resolveConfigDocumentPath(workspaceRoot: string, namespace: NamespaceName, configPath: string, profile?: string): string;
59
+
26
60
  interface ResolvedVaultDefinition extends VaultDefinition {
27
61
  name: string;
28
- requiresPassphrase: boolean;
62
+ requiresAuthentication: boolean;
63
+ }
64
+ interface VaultMetadata {
65
+ version: 1;
66
+ algorithm: 'aes-256-gcm';
67
+ kdf: 'pbkdf2-sha512';
68
+ iterations: number;
69
+ salt: string;
70
+ createdAt: string;
71
+ secretCount: number;
29
72
  }
73
+ declare function isSecretReference(value: unknown): value is SecretReference;
30
74
  declare function resolveSecretStoreRoot(processEnv?: Record<string, string | undefined>): string;
31
- declare function resolveSecretVaultFile(storeRoot: string, vault?: string): string;
32
- declare function resolveSecretPassphrase(vault?: string, processEnv?: Record<string, string | undefined>): string | undefined;
33
75
  declare function getVaultPassphraseEnvVar(vault?: string): string;
34
76
  declare function isPassphraseEnvRef(value: string | undefined): boolean;
77
+ declare function getVaultSessionKeyEnvVar(vault?: string): string;
78
+ declare function resolveSecretPassphrase(vault?: string, processEnv?: Record<string, string | undefined>): string | undefined;
79
+ declare function deriveVaultKey(passphrase: string, salt: Buffer, iterations?: number): Buffer;
80
+ declare function resolveSecretVaultFile(storeRoot: string, vault?: string): string;
81
+ declare function detectLegacyVaultFormat(storeRoot: string, vault?: string): Promise<string | undefined>;
82
+ declare function readVaultMetadata(storeRoot: string, vault?: string): Promise<VaultMetadata | undefined>;
83
+ declare function listSecretVaults(storeRoot: string): Promise<string[]>;
84
+ declare function createSecretVault(storeRoot: string, vault: string, passphrase: string): Promise<string>;
35
85
  declare function resolveConfiguredVaultPassphrase(definition: VaultDefinition | undefined, vault?: string, processEnv?: Record<string, string | undefined>): string | undefined;
86
+ declare function resolveVaultAccessKey(storeRoot: string, definition: VaultDefinition | undefined, vault?: string, processEnv?: Record<string, string | undefined>): Promise<VaultAuthConfig | undefined>;
87
+ declare function writeLocalSecret(storeRoot: string, ref: string, value: string, authOrPassphrase: VaultAuthConfig | string, vault?: string): Promise<string>;
88
+ declare function deleteLocalSecret(storeRoot: string, ref: string, auth: VaultAuthConfig, vault?: string): Promise<boolean>;
89
+ declare function readLocalSecret(storeRoot: string, ref: string, auth: VaultAuthConfig, vault?: string): Promise<string>;
90
+ declare function listLocalSecrets(storeRoot: string, auth: VaultAuthConfig, vault?: string): Promise<string[]>;
36
91
  declare function resolveVaultDefinition(vaults: Record<string, VaultDefinition> | undefined, vault?: string): ResolvedVaultDefinition;
37
- declare function createSecretVault(storeRoot: string, vault: string, passphrase: string): Promise<string>;
38
- declare function listSecretVaults(storeRoot: string): Promise<string[]>;
39
- declare function writeLocalSecret(storeRoot: string, ref: string, value: string, passphrase: string, vault?: string): Promise<string>;
92
+ declare function removeLocalVaultFiles(storeRoot: string, vault?: string): Promise<void>;
40
93
 
41
94
  declare function parseYaml<T>(source: string): T;
42
95
  declare function stringifyYaml(value: unknown): string;
@@ -44,8 +97,112 @@ declare function stringifyYaml(value: unknown): string;
44
97
  declare function validateRuntime(runtime: CnosRuntime): Promise<ValidationSummary>;
45
98
 
46
99
  declare const CNOS_GRAPH_ENV_VAR = "__CNOS_GRAPH__";
100
+ declare const CNOS_SECRET_PAYLOAD_ENV_VAR = "__CNOS_SECRET_PAYLOAD__";
101
+ declare const CNOS_SESSION_KEY_ENV_VAR = "__CNOS_SESSION_KEY__";
47
102
  declare function serializeRuntimeGraph(graph: ResolvedGraph): string;
48
103
  declare function deserializeRuntimeGraph(source: string): ResolvedGraph;
104
+ declare function serializeSecretPayload(values: Record<string, unknown>): {
105
+ payload: string;
106
+ sessionKey: string;
107
+ };
49
108
  declare function readRuntimeGraphFromEnv(processEnv?: Record<string, string | undefined>): ResolvedGraph | undefined;
109
+ declare function graphRequiresSecretHydration(graph: ResolvedGraph): boolean;
110
+
111
+ interface GeneratedCodegenContent {
112
+ typesContent: string;
113
+ runtimeContent: string;
114
+ schemaEntryCount: number;
115
+ hasSchema: boolean;
116
+ }
117
+ declare function generateCodegenContent(manifest: NormalizedManifest, sourcePath: string, typeModuleImport?: string): GeneratedCodegenContent;
118
+
119
+ interface WriteCodegenOutputOptions {
120
+ root?: string;
121
+ out?: string;
122
+ }
123
+ interface CodegenWriteResult {
124
+ manifestPath: string;
125
+ typesPath: string;
126
+ runtimePath: string;
127
+ schemaEntryCount: number;
128
+ hasSchema: boolean;
129
+ }
130
+ declare function resolveCodegenPaths(repoRoot: string, out?: string): {
131
+ typesPath: string;
132
+ runtimePath: string;
133
+ typeImportPath: string;
134
+ };
135
+ declare function writeCodegenOutput(options?: WriteCodegenOutputOptions): Promise<CodegenWriteResult>;
136
+
137
+ interface WatchSchemaOptions extends WriteCodegenOutputOptions {
138
+ debounceMs?: number;
139
+ onWrite?: (result: CodegenWriteResult) => void | Promise<void>;
140
+ onError?: (error: unknown) => void | Promise<void>;
141
+ }
142
+ interface CnosWatchHandle {
143
+ close(): void;
144
+ on(event: 'close', listener: () => void): this;
145
+ }
146
+ declare function watchSchema(options?: WatchSchemaOptions): Promise<CnosWatchHandle>;
147
+
148
+ interface DriftIssue {
149
+ key: string;
150
+ expectedType?: string;
151
+ actualType?: string;
152
+ value?: unknown;
153
+ sourceFile?: string;
154
+ }
155
+ interface DriftReport {
156
+ profile: string;
157
+ workspace: string;
158
+ missing: DriftIssue[];
159
+ undeclared: DriftIssue[];
160
+ mismatches: DriftIssue[];
161
+ defaultsApplied: DriftIssue[];
162
+ }
163
+ declare function compareSchemaToGraph(runtime: CnosRuntime): DriftReport;
164
+
165
+ declare function formatDriftReport(report: DriftReport): string;
166
+
167
+ interface EnvMappingProposal {
168
+ envVar: string;
169
+ namespace: 'value' | 'secret';
170
+ logicalPath: string;
171
+ logicalKey: string;
172
+ public: boolean;
173
+ framework?: 'vite' | 'next';
174
+ }
175
+ declare function proposeMapping(envVar: string): EnvMappingProposal;
176
+
177
+ interface ApplyManifestResult {
178
+ manifestPath: string;
179
+ appliedMappings: number;
180
+ appliedPromotions: number;
181
+ }
182
+ declare function applyManifestMappings(proposals: EnvMappingProposal[], root?: string): Promise<ApplyManifestResult>;
183
+
184
+ interface EnvUsage {
185
+ filePath: string;
186
+ envVar: string;
187
+ source: string;
188
+ kind: 'process-env' | 'import-meta-env';
189
+ }
190
+ declare function scanEnvUsage(scanRoot: string): Promise<EnvUsage[]>;
191
+
192
+ interface RewriteSourceResult {
193
+ rewrittenFiles: string[];
194
+ backupFiles: string[];
195
+ skippedUsages: string[];
196
+ }
197
+ declare function rewriteSourceFiles(usages: EnvUsage[], proposals: Map<string, EnvMappingProposal>): Promise<RewriteSourceResult>;
198
+
199
+ declare function diffGraphs(previous: ResolvedGraph, next: ResolvedGraph): string[];
200
+
201
+ interface WatchTargetSet {
202
+ manifestPath: string;
203
+ roots: string[];
204
+ files: string[];
205
+ }
206
+ declare function watchFiles(runtime: CnosRuntime, root?: string): Promise<WatchTargetSet>;
50
207
 
51
- export { CNOS_GRAPH_ENV_VAR, CnosSecurityError, type ResolvedVaultDefinition, type SecretReference, ValidationSummary, VaultDefinition, createSecretVault, deserializeRuntimeGraph, ensureProjectionAllowed, flattenObject, getVaultPassphraseEnvVar, isPassphraseEnvRef, listSecretVaults, loadManifest, parseYaml, readRuntimeGraphFromEnv, resolveConfigDocumentPath, resolveConfiguredVaultPassphrase, resolveManifestRoot, resolveSecretPassphrase, resolveSecretStoreRoot, resolveSecretVaultFile, resolveVaultDefinition, serializeRuntimeGraph, stringifyYaml, validateRuntime, writeLocalSecret };
208
+ export { CNOS_GRAPH_ENV_VAR, CNOS_SECRET_PAYLOAD_ENV_VAR, CNOS_SESSION_KEY_ENV_VAR, CnosAuthenticationError, CnosSecurityError, type ResolvedVaultDefinition, type SecretReference, ValidationSummary, VaultDefinition, applyManifestMappings, clearAllVaultSessionKeys, clearVaultSessionKey, compareSchemaToGraph, createSecretVault, createSecretVaultProvider, deleteLocalSecret, deriveVaultKey, deserializeRuntimeGraph, detectLegacyVaultFormat, diffGraphs, ensureProjectionAllowed, flattenObject, formatDriftReport, generateCodegenContent, getNamespaceDefinition, getVaultPassphraseEnvVar, getVaultSessionKeyEnvVar, graphRequiresSecretHydration, isPassphraseEnvRef, isSecretReference, listLocalSecrets, listSecretVaults, loadManifest, parseYaml, proposeMapping, readKeychain, readLocalSecret, readRuntimeGraphFromEnv, readVaultMetadata, removeLocalVaultFiles, resolveCodegenPaths, resolveConfigDocumentPath, resolveConfiguredVaultPassphrase, resolveManifestRoot, resolveSecretPassphrase, resolveSecretStoreRoot, resolveSecretVaultFile, resolveVaultAccessKey, resolveVaultAuth, resolveVaultDefinition, rewriteSourceFiles, scanEnvUsage, serializeRuntimeGraph, serializeSecretPayload, stringifyYaml, validateRuntime, watchFiles, watchSchema, writeCodegenOutput, writeKeychain, writeLocalSecret, writeVaultSessionKey };
@@ -1,5 +1,5 @@
1
- import { i as LoadManifestOptions, j as LoadedManifest, N as NormalizedManifest, g as LogicalKey, V as VaultDefinition, d as CnosRuntime, k as ValidationSummary, R as ResolvedGraph } from './plugin-DkOIT5uI.js';
2
- export { l as ValidationIssue, W as WorkspaceFile } from './plugin-DkOIT5uI.js';
1
+ import { j as LoadManifestOptions, k as LoadedManifest, N as NormalizedManifest, b as LogicalKey, l as NamespaceDefinition, m as VaultDefinition, i as NamespaceName, g as CnosRuntime, n as ValidationSummary, R as ResolvedGraph } from './plugin-B4xwySxw.js';
2
+ export { o as ValidationIssue, p as WorkspaceFile } from './plugin-B4xwySxw.js';
3
3
 
4
4
  declare class CnosError extends Error {
5
5
  constructor(message: string);
@@ -7,36 +7,89 @@ declare class CnosError extends Error {
7
7
  declare class CnosSecurityError extends CnosError {
8
8
  constructor(message: string);
9
9
  }
10
+ declare class CnosAuthenticationError extends CnosError {
11
+ constructor(message: string);
12
+ }
13
+
14
+ declare function readKeychain(entry: string): Promise<string | undefined>;
15
+ declare function writeKeychain(entry: string, value: string): Promise<void>;
10
16
 
11
17
  declare function loadManifest(options?: LoadManifestOptions): Promise<LoadedManifest>;
12
18
 
13
19
  type ProjectionTarget = 'public' | 'env';
20
+ declare function getNamespaceDefinition(manifest: NormalizedManifest, namespaceOrKey: string): NamespaceDefinition;
14
21
  declare function ensureProjectionAllowed(manifest: NormalizedManifest, key: LogicalKey, target: ProjectionTarget): void;
15
22
 
16
- declare function flattenObject(value: Record<string, unknown>, prefix?: string): Record<string, unknown>;
17
-
18
- declare function resolveManifestRoot(root?: string): Promise<string>;
19
- declare function resolveConfigDocumentPath(workspaceRoot: string, namespace: 'value' | 'secret', configPath: string, profile?: string): string;
20
-
21
23
  interface SecretReference {
22
24
  provider: string;
23
25
  ref: string;
24
26
  vault?: string;
25
27
  }
28
+ interface VaultAuthConfig {
29
+ passphrase?: string;
30
+ token?: string;
31
+ derivedKey?: Buffer;
32
+ method: 'passphrase' | 'environment' | 'token' | 'iam' | 'keychain';
33
+ config?: Record<string, unknown>;
34
+ }
35
+ interface SecretVaultProvider {
36
+ readonly vaultId: string;
37
+ readonly definition: VaultDefinition;
38
+ authenticate(authConfig: VaultAuthConfig): Promise<void>;
39
+ isAuthenticated(): boolean;
40
+ batchGet(refs: string[]): Promise<Map<string, string>>;
41
+ get(ref: string): Promise<string | undefined>;
42
+ set(ref: string, value: string): Promise<void>;
43
+ delete(ref: string): Promise<void>;
44
+ list(): Promise<string[]>;
45
+ }
46
+
47
+ declare function resolveVaultAuth(vaultId: string, definition: VaultDefinition, processEnv?: Record<string, string | undefined>): Promise<VaultAuthConfig>;
48
+
49
+ declare function writeVaultSessionKey(vault: string, derivedKey: Buffer, processEnv?: Record<string, string | undefined>): Promise<string>;
50
+ declare function clearVaultSessionKey(vault: string, processEnv?: Record<string, string | undefined>): Promise<void>;
51
+ declare function clearAllVaultSessionKeys(processEnv?: Record<string, string | undefined>): Promise<void>;
52
+
53
+ declare function createSecretVaultProvider(vaultId: string, definition: VaultDefinition, processEnv?: Record<string, string | undefined>): SecretVaultProvider;
54
+
55
+ declare function flattenObject(value: Record<string, unknown>, prefix?: string): Record<string, unknown>;
56
+
57
+ declare function resolveManifestRoot(root?: string): Promise<string>;
58
+ declare function resolveConfigDocumentPath(workspaceRoot: string, namespace: NamespaceName, configPath: string, profile?: string): string;
59
+
26
60
  interface ResolvedVaultDefinition extends VaultDefinition {
27
61
  name: string;
28
- requiresPassphrase: boolean;
62
+ requiresAuthentication: boolean;
63
+ }
64
+ interface VaultMetadata {
65
+ version: 1;
66
+ algorithm: 'aes-256-gcm';
67
+ kdf: 'pbkdf2-sha512';
68
+ iterations: number;
69
+ salt: string;
70
+ createdAt: string;
71
+ secretCount: number;
29
72
  }
73
+ declare function isSecretReference(value: unknown): value is SecretReference;
30
74
  declare function resolveSecretStoreRoot(processEnv?: Record<string, string | undefined>): string;
31
- declare function resolveSecretVaultFile(storeRoot: string, vault?: string): string;
32
- declare function resolveSecretPassphrase(vault?: string, processEnv?: Record<string, string | undefined>): string | undefined;
33
75
  declare function getVaultPassphraseEnvVar(vault?: string): string;
34
76
  declare function isPassphraseEnvRef(value: string | undefined): boolean;
77
+ declare function getVaultSessionKeyEnvVar(vault?: string): string;
78
+ declare function resolveSecretPassphrase(vault?: string, processEnv?: Record<string, string | undefined>): string | undefined;
79
+ declare function deriveVaultKey(passphrase: string, salt: Buffer, iterations?: number): Buffer;
80
+ declare function resolveSecretVaultFile(storeRoot: string, vault?: string): string;
81
+ declare function detectLegacyVaultFormat(storeRoot: string, vault?: string): Promise<string | undefined>;
82
+ declare function readVaultMetadata(storeRoot: string, vault?: string): Promise<VaultMetadata | undefined>;
83
+ declare function listSecretVaults(storeRoot: string): Promise<string[]>;
84
+ declare function createSecretVault(storeRoot: string, vault: string, passphrase: string): Promise<string>;
35
85
  declare function resolveConfiguredVaultPassphrase(definition: VaultDefinition | undefined, vault?: string, processEnv?: Record<string, string | undefined>): string | undefined;
86
+ declare function resolveVaultAccessKey(storeRoot: string, definition: VaultDefinition | undefined, vault?: string, processEnv?: Record<string, string | undefined>): Promise<VaultAuthConfig | undefined>;
87
+ declare function writeLocalSecret(storeRoot: string, ref: string, value: string, authOrPassphrase: VaultAuthConfig | string, vault?: string): Promise<string>;
88
+ declare function deleteLocalSecret(storeRoot: string, ref: string, auth: VaultAuthConfig, vault?: string): Promise<boolean>;
89
+ declare function readLocalSecret(storeRoot: string, ref: string, auth: VaultAuthConfig, vault?: string): Promise<string>;
90
+ declare function listLocalSecrets(storeRoot: string, auth: VaultAuthConfig, vault?: string): Promise<string[]>;
36
91
  declare function resolveVaultDefinition(vaults: Record<string, VaultDefinition> | undefined, vault?: string): ResolvedVaultDefinition;
37
- declare function createSecretVault(storeRoot: string, vault: string, passphrase: string): Promise<string>;
38
- declare function listSecretVaults(storeRoot: string): Promise<string[]>;
39
- declare function writeLocalSecret(storeRoot: string, ref: string, value: string, passphrase: string, vault?: string): Promise<string>;
92
+ declare function removeLocalVaultFiles(storeRoot: string, vault?: string): Promise<void>;
40
93
 
41
94
  declare function parseYaml<T>(source: string): T;
42
95
  declare function stringifyYaml(value: unknown): string;
@@ -44,8 +97,112 @@ declare function stringifyYaml(value: unknown): string;
44
97
  declare function validateRuntime(runtime: CnosRuntime): Promise<ValidationSummary>;
45
98
 
46
99
  declare const CNOS_GRAPH_ENV_VAR = "__CNOS_GRAPH__";
100
+ declare const CNOS_SECRET_PAYLOAD_ENV_VAR = "__CNOS_SECRET_PAYLOAD__";
101
+ declare const CNOS_SESSION_KEY_ENV_VAR = "__CNOS_SESSION_KEY__";
47
102
  declare function serializeRuntimeGraph(graph: ResolvedGraph): string;
48
103
  declare function deserializeRuntimeGraph(source: string): ResolvedGraph;
104
+ declare function serializeSecretPayload(values: Record<string, unknown>): {
105
+ payload: string;
106
+ sessionKey: string;
107
+ };
49
108
  declare function readRuntimeGraphFromEnv(processEnv?: Record<string, string | undefined>): ResolvedGraph | undefined;
109
+ declare function graphRequiresSecretHydration(graph: ResolvedGraph): boolean;
110
+
111
+ interface GeneratedCodegenContent {
112
+ typesContent: string;
113
+ runtimeContent: string;
114
+ schemaEntryCount: number;
115
+ hasSchema: boolean;
116
+ }
117
+ declare function generateCodegenContent(manifest: NormalizedManifest, sourcePath: string, typeModuleImport?: string): GeneratedCodegenContent;
118
+
119
+ interface WriteCodegenOutputOptions {
120
+ root?: string;
121
+ out?: string;
122
+ }
123
+ interface CodegenWriteResult {
124
+ manifestPath: string;
125
+ typesPath: string;
126
+ runtimePath: string;
127
+ schemaEntryCount: number;
128
+ hasSchema: boolean;
129
+ }
130
+ declare function resolveCodegenPaths(repoRoot: string, out?: string): {
131
+ typesPath: string;
132
+ runtimePath: string;
133
+ typeImportPath: string;
134
+ };
135
+ declare function writeCodegenOutput(options?: WriteCodegenOutputOptions): Promise<CodegenWriteResult>;
136
+
137
+ interface WatchSchemaOptions extends WriteCodegenOutputOptions {
138
+ debounceMs?: number;
139
+ onWrite?: (result: CodegenWriteResult) => void | Promise<void>;
140
+ onError?: (error: unknown) => void | Promise<void>;
141
+ }
142
+ interface CnosWatchHandle {
143
+ close(): void;
144
+ on(event: 'close', listener: () => void): this;
145
+ }
146
+ declare function watchSchema(options?: WatchSchemaOptions): Promise<CnosWatchHandle>;
147
+
148
+ interface DriftIssue {
149
+ key: string;
150
+ expectedType?: string;
151
+ actualType?: string;
152
+ value?: unknown;
153
+ sourceFile?: string;
154
+ }
155
+ interface DriftReport {
156
+ profile: string;
157
+ workspace: string;
158
+ missing: DriftIssue[];
159
+ undeclared: DriftIssue[];
160
+ mismatches: DriftIssue[];
161
+ defaultsApplied: DriftIssue[];
162
+ }
163
+ declare function compareSchemaToGraph(runtime: CnosRuntime): DriftReport;
164
+
165
+ declare function formatDriftReport(report: DriftReport): string;
166
+
167
+ interface EnvMappingProposal {
168
+ envVar: string;
169
+ namespace: 'value' | 'secret';
170
+ logicalPath: string;
171
+ logicalKey: string;
172
+ public: boolean;
173
+ framework?: 'vite' | 'next';
174
+ }
175
+ declare function proposeMapping(envVar: string): EnvMappingProposal;
176
+
177
+ interface ApplyManifestResult {
178
+ manifestPath: string;
179
+ appliedMappings: number;
180
+ appliedPromotions: number;
181
+ }
182
+ declare function applyManifestMappings(proposals: EnvMappingProposal[], root?: string): Promise<ApplyManifestResult>;
183
+
184
+ interface EnvUsage {
185
+ filePath: string;
186
+ envVar: string;
187
+ source: string;
188
+ kind: 'process-env' | 'import-meta-env';
189
+ }
190
+ declare function scanEnvUsage(scanRoot: string): Promise<EnvUsage[]>;
191
+
192
+ interface RewriteSourceResult {
193
+ rewrittenFiles: string[];
194
+ backupFiles: string[];
195
+ skippedUsages: string[];
196
+ }
197
+ declare function rewriteSourceFiles(usages: EnvUsage[], proposals: Map<string, EnvMappingProposal>): Promise<RewriteSourceResult>;
198
+
199
+ declare function diffGraphs(previous: ResolvedGraph, next: ResolvedGraph): string[];
200
+
201
+ interface WatchTargetSet {
202
+ manifestPath: string;
203
+ roots: string[];
204
+ files: string[];
205
+ }
206
+ declare function watchFiles(runtime: CnosRuntime, root?: string): Promise<WatchTargetSet>;
50
207
 
51
- export { CNOS_GRAPH_ENV_VAR, CnosSecurityError, type ResolvedVaultDefinition, type SecretReference, ValidationSummary, VaultDefinition, createSecretVault, deserializeRuntimeGraph, ensureProjectionAllowed, flattenObject, getVaultPassphraseEnvVar, isPassphraseEnvRef, listSecretVaults, loadManifest, parseYaml, readRuntimeGraphFromEnv, resolveConfigDocumentPath, resolveConfiguredVaultPassphrase, resolveManifestRoot, resolveSecretPassphrase, resolveSecretStoreRoot, resolveSecretVaultFile, resolveVaultDefinition, serializeRuntimeGraph, stringifyYaml, validateRuntime, writeLocalSecret };
208
+ export { CNOS_GRAPH_ENV_VAR, CNOS_SECRET_PAYLOAD_ENV_VAR, CNOS_SESSION_KEY_ENV_VAR, CnosAuthenticationError, CnosSecurityError, type ResolvedVaultDefinition, type SecretReference, ValidationSummary, VaultDefinition, applyManifestMappings, clearAllVaultSessionKeys, clearVaultSessionKey, compareSchemaToGraph, createSecretVault, createSecretVaultProvider, deleteLocalSecret, deriveVaultKey, deserializeRuntimeGraph, detectLegacyVaultFormat, diffGraphs, ensureProjectionAllowed, flattenObject, formatDriftReport, generateCodegenContent, getNamespaceDefinition, getVaultPassphraseEnvVar, getVaultSessionKeyEnvVar, graphRequiresSecretHydration, isPassphraseEnvRef, isSecretReference, listLocalSecrets, listSecretVaults, loadManifest, parseYaml, proposeMapping, readKeychain, readLocalSecret, readRuntimeGraphFromEnv, readVaultMetadata, removeLocalVaultFiles, resolveCodegenPaths, resolveConfigDocumentPath, resolveConfiguredVaultPassphrase, resolveManifestRoot, resolveSecretPassphrase, resolveSecretStoreRoot, resolveSecretVaultFile, resolveVaultAccessKey, resolveVaultAuth, resolveVaultDefinition, rewriteSourceFiles, scanEnvUsage, serializeRuntimeGraph, serializeSecretPayload, stringifyYaml, validateRuntime, watchFiles, watchSchema, writeCodegenOutput, writeKeychain, writeLocalSecret, writeVaultSessionKey };