@the-ai-company/cbio-node-runtime 0.33.0 → 1.0.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 (108) hide show
  1. package/README.md +138 -9
  2. package/dist/clients/agent/client.d.ts +9 -0
  3. package/dist/clients/agent/client.js +72 -0
  4. package/dist/clients/agent/client.js.map +1 -0
  5. package/dist/clients/agent/contracts.d.ts +34 -0
  6. package/dist/clients/agent/contracts.js +2 -0
  7. package/dist/clients/agent/contracts.js.map +1 -0
  8. package/dist/clients/agent/index.d.ts +3 -0
  9. package/dist/clients/agent/index.js +2 -0
  10. package/dist/clients/agent/index.js.map +1 -0
  11. package/dist/clients/owner/client.d.ts +18 -0
  12. package/dist/clients/owner/client.js +169 -0
  13. package/dist/clients/owner/client.js.map +1 -0
  14. package/dist/clients/owner/contracts.d.ts +34 -0
  15. package/dist/clients/owner/contracts.js +2 -0
  16. package/dist/clients/owner/contracts.js.map +1 -0
  17. package/dist/clients/owner/index.d.ts +3 -0
  18. package/dist/clients/owner/index.js +2 -0
  19. package/dist/clients/owner/index.js.map +1 -0
  20. package/dist/errors.d.ts +2 -1
  21. package/dist/errors.js +1 -0
  22. package/dist/errors.js.map +1 -1
  23. package/dist/runtime/index.d.ts +8 -8
  24. package/dist/runtime/index.js +8 -5
  25. package/dist/runtime/index.js.map +1 -1
  26. package/dist/storage/fs.d.ts +1 -0
  27. package/dist/storage/fs.js +28 -0
  28. package/dist/storage/fs.js.map +1 -1
  29. package/dist/storage/memory.d.ts +1 -0
  30. package/dist/storage/memory.js +20 -0
  31. package/dist/storage/memory.js.map +1 -1
  32. package/dist/storage/provider.d.ts +2 -0
  33. package/dist/vault-core/contracts.d.ts +230 -0
  34. package/dist/vault-core/contracts.js +2 -0
  35. package/dist/vault-core/contracts.js.map +1 -0
  36. package/dist/vault-core/core.d.ts +21 -0
  37. package/dist/vault-core/core.js +335 -0
  38. package/dist/vault-core/core.js.map +1 -0
  39. package/dist/vault-core/defaults.d.ts +141 -0
  40. package/dist/vault-core/defaults.js +602 -0
  41. package/dist/vault-core/defaults.js.map +1 -0
  42. package/dist/vault-core/errors.d.ts +4 -0
  43. package/dist/vault-core/errors.js +9 -0
  44. package/dist/vault-core/errors.js.map +1 -0
  45. package/dist/vault-core/index.d.ts +6 -0
  46. package/dist/vault-core/index.js +5 -0
  47. package/dist/vault-core/index.js.map +1 -0
  48. package/dist/vault-core/persistence.d.ts +87 -0
  49. package/dist/vault-core/persistence.js +309 -0
  50. package/dist/vault-core/persistence.js.map +1 -0
  51. package/dist/vault-core/ports.d.ts +101 -0
  52. package/dist/vault-core/ports.js +2 -0
  53. package/dist/vault-core/ports.js.map +1 -0
  54. package/dist/vault-ingress/defaults.d.ts +14 -0
  55. package/dist/vault-ingress/defaults.js +41 -0
  56. package/dist/vault-ingress/defaults.js.map +1 -0
  57. package/dist/vault-ingress/flow-factories.d.ts +24 -0
  58. package/dist/vault-ingress/flow-factories.js +48 -0
  59. package/dist/vault-ingress/flow-factories.js.map +1 -0
  60. package/dist/vault-ingress/index.d.ts +81 -0
  61. package/dist/vault-ingress/index.js +357 -0
  62. package/dist/vault-ingress/index.js.map +1 -0
  63. package/docs/ARCHITECTURE.md +44 -76
  64. package/docs/REFERENCE.md +239 -133
  65. package/docs/WORKS_WITH_CUSTOM_FETCH.md +16 -191
  66. package/docs/es/README.md +8 -24
  67. package/docs/fr/README.md +8 -24
  68. package/docs/ja/README.md +8 -24
  69. package/docs/ko/README.md +8 -24
  70. package/docs/pt/README.md +8 -24
  71. package/docs/zh/README.md +21 -7
  72. package/package.json +2 -10
  73. package/dist/agent/agent.d.ts +0 -234
  74. package/dist/agent/agent.js +0 -565
  75. package/dist/agent/agent.js.map +0 -1
  76. package/dist/audit/ActivityLog.d.ts +0 -25
  77. package/dist/audit/ActivityLog.js +0 -66
  78. package/dist/audit/ActivityLog.js.map +0 -1
  79. package/dist/http/authClient.d.ts +0 -26
  80. package/dist/http/authClient.js +0 -132
  81. package/dist/http/authClient.js.map +0 -1
  82. package/dist/http/localAuthProxy.d.ts +0 -33
  83. package/dist/http/localAuthProxy.js +0 -93
  84. package/dist/http/localAuthProxy.js.map +0 -1
  85. package/dist/http/secretAcquisition.d.ts +0 -54
  86. package/dist/http/secretAcquisition.js +0 -177
  87. package/dist/http/secretAcquisition.js.map +0 -1
  88. package/dist/protocol/childSecretNaming.d.ts +0 -7
  89. package/dist/protocol/childSecretNaming.js +0 -12
  90. package/dist/protocol/childSecretNaming.js.map +0 -1
  91. package/dist/protocol/identity.d.ts +0 -8
  92. package/dist/protocol/identity.js +0 -16
  93. package/dist/protocol/identity.js.map +0 -1
  94. package/dist/sealed/index.d.ts +0 -6
  95. package/dist/sealed/index.js +0 -6
  96. package/dist/sealed/index.js.map +0 -1
  97. package/dist/vault/secretPolicy.d.ts +0 -3
  98. package/dist/vault/secretPolicy.js +0 -14
  99. package/dist/vault/secretPolicy.js.map +0 -1
  100. package/dist/vault/vault.d.ts +0 -91
  101. package/dist/vault/vault.js +0 -534
  102. package/dist/vault/vault.js.map +0 -1
  103. package/docs/TODO-multi-vault.md +0 -29
  104. package/docs/spec/runtime/README.md +0 -27
  105. package/docs/spec/runtime/activity-log.md +0 -67
  106. package/docs/spec/runtime/managed-agent-record.md +0 -52
  107. package/docs/spec/runtime/merge-rules.md +0 -52
  108. package/docs/spec/runtime/secret-origin-policy.md +0 -46
@@ -1,16 +0,0 @@
1
- /**
2
- * Claw-biometric Core Identity. Runtime utilities over protocol primitives.
3
- * getVaultPath (runtime). Re-exports protocol for consumers.
4
- */
5
- import * as os from 'node:os';
6
- import * as path from 'node:path';
7
- import * as crypto from 'node:crypto';
8
- import { deriveRootAgentId } from '@the-ai-company/cbio-protocol';
9
- import { getChildIdentitySecretName, CHILD_KEY_PREFIX } from './childSecretNaming.js';
10
- export { deriveRootAgentId, getChildIdentitySecretName, CHILD_KEY_PREFIX };
11
- export function getVaultPath(publicKey) {
12
- const hash = crypto.createHash('sha256').update(publicKey).digest('hex').substring(0, 12);
13
- const baseDir = process.env.C_BIO_VAULT_DIR || path.join(os.homedir(), '.c-bio');
14
- return path.join(baseDir, `vault_${hash}.enc`);
15
- }
16
- //# sourceMappingURL=identity.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/protocol/identity.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAEtF,OAAO,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,CAAC;AAE3E,MAAM,UAAU,YAAY,CAAC,SAAiB;IAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1F,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;IACjF,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,IAAI,MAAM,CAAC,CAAC;AACnD,CAAC"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Sealed blob export. Seal/unseal primitives and sealed blob format helpers.
3
- * Do not depend on CbioAgent.
4
- */
5
- export { sealBlob, unsealBlob, SEALED_BLOB_VERSION } from './seal.js';
6
- export type { SealedBlobPayload } from './seal.js';
@@ -1,6 +0,0 @@
1
- /**
2
- * Sealed blob export. Seal/unseal primitives and sealed blob format helpers.
3
- * Do not depend on CbioAgent.
4
- */
5
- export { sealBlob, unsealBlob, SEALED_BLOB_VERSION } from './seal.js';
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sealed/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC"}
@@ -1,3 +0,0 @@
1
- export declare function isLoopbackHost(hostname: string): boolean;
2
- export declare function isAllowedSecretUrl(url: URL): boolean;
3
- export declare function normalizeSecretPolicyOrigin(origin: string): string;
@@ -1,14 +0,0 @@
1
- export function isLoopbackHost(hostname) {
2
- return hostname === 'localhost' || hostname === '127.0.0.1' || hostname === '::1';
3
- }
4
- export function isAllowedSecretUrl(url) {
5
- return url.protocol === 'https:' || (url.protocol === 'http:' && isLoopbackHost(url.hostname));
6
- }
7
- export function normalizeSecretPolicyOrigin(origin) {
8
- const url = new URL(origin);
9
- if (!isAllowedSecretUrl(url)) {
10
- throw new Error(`Secret policy requires HTTPS origin or loopback HTTP for local development. Received: ${origin}`);
11
- }
12
- return url.origin;
13
- }
14
- //# sourceMappingURL=secretPolicy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"secretPolicy.js","sourceRoot":"","sources":["../../src/vault/secretPolicy.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC3C,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,KAAK,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAQ;IACvC,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;AACnG,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,MAAc;IACtD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,yFAAyF,MAAM,EAAE,CAAC,CAAC;IACvH,CAAC;IACD,OAAO,GAAG,CAAC,MAAM,CAAC;AACtB,CAAC"}
@@ -1,91 +0,0 @@
1
- import { Signer } from '../protocol/crypto.js';
2
- import type { IStorageProvider } from '../storage/provider.js';
3
- import { type ActivityLogEntry, type ActivityLogMetadata } from '../audit/ActivityLog.js';
4
- export interface SecretPolicy {
5
- allowedOrigins?: string[];
6
- }
7
- /**
8
- * CbioVault
9
- *
10
- * A secure container for third-party API keys and secrets.
11
- * Secrets are stored in a private field (#) and are inaccessible
12
- * to the outside Agent logic. Vault stores ONLY secrets (encrypted).
13
- */
14
- export declare class CbioVault {
15
- #private;
16
- private static readonly PERSIST_SALT;
17
- private static readonly VERSIONED_SECRET_PREFIX;
18
- /**
19
- * @internal Used by Owner. Binds storage and loads vault from disk. Do not call directly.
20
- */
21
- initFromStorage(signer: Signer, storageKey: string, storage?: IStorageProvider, activityLogKey?: string, activityLogKeyIsDerived?: boolean): Promise<void>;
22
- /**
23
- * @internal Used by Owner.importIdentity. Binds storage and loads vault from blob. Do not call directly.
24
- */
25
- initFromBlob(signer: Signer, blob: string, storageKey: string, storage?: IStorageProvider, activityLogKey?: string, activityLogKeyIsDerived?: boolean): Promise<void>;
26
- /**
27
- * Add a new secret. Fails if secretName already exists.
28
- */
29
- addSecret(secretName: string, secretValue: string, options?: SecretPolicy): Promise<void>;
30
- /**
31
- * Update an existing secret. Fails if secretName does not exist.
32
- */
33
- updateSecret(secretName: string, secretValue: string): Promise<void>;
34
- setSecretAllowedOrigins(secretName: string, allowedOrigins: readonly string[]): Promise<void>;
35
- rotateSecret(secretName: string, secretValue: string, sourceOrigin: string): Promise<void>;
36
- /**
37
- * Case 3: Retrieve a secret in plaintext.
38
- * @internal @admin
39
- * WARNING: This is an ADMIN-ONLY method. Do not use in Agent's autonomous logic.
40
- */
41
- getSecret(secretName: string): string | undefined;
42
- /**
43
- * Case 4: Permanently delete a secret from memory and disk.
44
- * @internal @admin
45
- * WARNING: This is an ADMIN-ONLY method. Agent should NEVER be allowed
46
- * to delete its own memory autonomously. Only Owner (Human) can call this.
47
- */
48
- deleteSecret(secretName: string): Promise<void>;
49
- /**
50
- * @internal Used by AuthClient to append activity log entries.
51
- */
52
- appendActivityLogEntry(entry: ActivityLogEntry): Promise<void>;
53
- /**
54
- * Persistence: Atomic save with write-read-verify.
55
- */
56
- save(signer: Signer, storageKey?: string, storage?: IStorageProvider): Promise<void>;
57
- serializeToBlob(signer: Signer): Promise<string>;
58
- /**
59
- * Seal vault with external key (AES-256-GCM) for portable local storage.
60
- */
61
- seal(kdk: string): string;
62
- /**
63
- * Unseal vault from blob encrypted with kdk.
64
- */
65
- unseal(kdk: string, sealed: string): void;
66
- hasSecret(secretName: string): boolean;
67
- listSecretNames(): string[];
68
- /**
69
- * Read activity log. Owner-only. Returns [] if activity log not enabled.
70
- */
71
- getActivityLog(): Promise<readonly ActivityLogEntry[]>;
72
- /**
73
- * Read activity log metadata (agentId, storageKey). Returns null if not present.
74
- */
75
- getActivityLogMetadata(): Promise<ActivityLogMetadata | null>;
76
- /**
77
- * Merge secrets from another vault instance.
78
- * Only allowed if both vaults belong to the same identity.
79
- * @param options.onConflict 'abort' = return conflicts (default); 'skip' = merge non-conflicting only; 'overwrite' = use other's value for conflicts.
80
- */
81
- mergeFrom(otherVault: CbioVault, options?: {
82
- onConflict?: 'abort' | 'skip' | 'overwrite';
83
- }): Promise<MergeResult>;
84
- }
85
- export interface MergeResult {
86
- merged: boolean;
87
- added: string[];
88
- skipped: string[];
89
- overwritten: string[];
90
- conflicts?: string[];
91
- }