@agent-network-protocol/dsh-anp-identity 0.1.6 → 0.1.8

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 (116) hide show
  1. package/BOUNDARY.md +30 -5
  2. package/PUBLICATION.md +181 -0
  3. package/README.md +73 -1
  4. package/README.zh.md +44 -1
  5. package/V7-MANAGEMENT.md +18 -0
  6. package/cordis.patch.yml +9 -0
  7. package/examples/fresh-bootstrap.cordis.patch.yml +38 -0
  8. package/lib/authorization-types.d.ts +6 -0
  9. package/lib/authorization-types.d.ts.map +1 -1
  10. package/lib/authorization.d.ts.map +1 -1
  11. package/lib/authorization.js +23 -6
  12. package/lib/authorization.js.map +1 -1
  13. package/lib/catalog.d.ts +3 -1
  14. package/lib/catalog.d.ts.map +1 -1
  15. package/lib/catalog.js +15 -3
  16. package/lib/catalog.js.map +1 -1
  17. package/lib/client/controller.d.ts +18 -0
  18. package/lib/client/controller.d.ts.map +1 -1
  19. package/lib/client/controller.js +89 -5
  20. package/lib/client/controller.js.map +1 -1
  21. package/lib/client/views.d.ts.map +1 -1
  22. package/lib/client/views.js +37 -6
  23. package/lib/client/views.js.map +1 -1
  24. package/lib/client-metadata.d.ts +3 -0
  25. package/lib/client-metadata.d.ts.map +1 -0
  26. package/lib/client-metadata.js +11 -0
  27. package/lib/client-metadata.js.map +1 -0
  28. package/lib/client.js +260 -14
  29. package/lib/client.js.map +4 -4
  30. package/lib/host-management-secret.d.ts +41 -0
  31. package/lib/host-management-secret.d.ts.map +1 -0
  32. package/lib/host-management-secret.js +92 -0
  33. package/lib/host-management-secret.js.map +1 -0
  34. package/lib/index.d.ts +73 -3
  35. package/lib/index.d.ts.map +1 -1
  36. package/lib/index.js +331 -22
  37. package/lib/index.js.map +1 -1
  38. package/lib/initial-registration-proof.d.ts +13 -0
  39. package/lib/initial-registration-proof.d.ts.map +1 -0
  40. package/lib/initial-registration-proof.js +48 -0
  41. package/lib/initial-registration-proof.js.map +1 -0
  42. package/lib/installed-consumer.d.ts +25 -0
  43. package/lib/installed-consumer.d.ts.map +1 -0
  44. package/lib/installed-consumer.js +66 -0
  45. package/lib/installed-consumer.js.map +1 -0
  46. package/lib/management-credentials.d.ts +15 -0
  47. package/lib/management-credentials.d.ts.map +1 -0
  48. package/lib/management-credentials.js +126 -0
  49. package/lib/management-credentials.js.map +1 -0
  50. package/lib/management-driver.d.ts +83 -0
  51. package/lib/management-driver.d.ts.map +1 -0
  52. package/lib/management-driver.js +405 -0
  53. package/lib/management-driver.js.map +1 -0
  54. package/lib/management-remote.d.ts +27 -1
  55. package/lib/management-remote.d.ts.map +1 -1
  56. package/lib/management-remote.js +69 -3
  57. package/lib/management-remote.js.map +1 -1
  58. package/lib/management-types.d.ts +7 -0
  59. package/lib/management-types.d.ts.map +1 -1
  60. package/lib/pap-callback.d.ts +110 -0
  61. package/lib/pap-callback.d.ts.map +1 -0
  62. package/lib/pap-callback.js +51 -0
  63. package/lib/pap-callback.js.map +1 -0
  64. package/lib/protocol-bootstrap.d.ts +24 -0
  65. package/lib/protocol-bootstrap.d.ts.map +1 -0
  66. package/lib/protocol-bootstrap.js +34 -0
  67. package/lib/protocol-bootstrap.js.map +1 -0
  68. package/lib/protocol-client.d.ts +137 -0
  69. package/lib/protocol-client.d.ts.map +1 -0
  70. package/lib/protocol-client.js +11 -0
  71. package/lib/protocol-client.js.map +1 -0
  72. package/lib/provider-api.d.ts +6 -2
  73. package/lib/provider-api.d.ts.map +1 -1
  74. package/lib/provider-api.js.map +1 -1
  75. package/lib/publication-http.d.ts +19 -0
  76. package/lib/publication-http.d.ts.map +1 -0
  77. package/lib/publication-http.js +183 -0
  78. package/lib/publication-http.js.map +1 -0
  79. package/lib/publication-types.d.ts +161 -0
  80. package/lib/publication-types.d.ts.map +1 -0
  81. package/lib/publication-types.js +35 -0
  82. package/lib/publication-types.js.map +1 -0
  83. package/lib/publication.d.ts +21 -0
  84. package/lib/publication.d.ts.map +1 -0
  85. package/lib/publication.js +235 -0
  86. package/lib/publication.js.map +1 -0
  87. package/lib/registration-bootstrap.d.ts +56 -0
  88. package/lib/registration-bootstrap.d.ts.map +1 -0
  89. package/lib/registration-bootstrap.js +523 -0
  90. package/lib/registration-bootstrap.js.map +1 -0
  91. package/lib/registration-service-settings.d.ts +12 -0
  92. package/lib/registration-service-settings.d.ts.map +1 -0
  93. package/lib/registration-service-settings.js +124 -0
  94. package/lib/registration-service-settings.js.map +1 -0
  95. package/lib/registration-service-types.d.ts +11 -0
  96. package/lib/registration-service-types.d.ts.map +1 -0
  97. package/lib/registration-service-types.js +3 -0
  98. package/lib/registration-service-types.js.map +1 -0
  99. package/lib/remote.d.ts.map +1 -1
  100. package/lib/remote.js +11 -2
  101. package/lib/remote.js.map +1 -1
  102. package/lib/target-policy.d.ts +35 -0
  103. package/lib/target-policy.d.ts.map +1 -0
  104. package/lib/target-policy.js +319 -0
  105. package/lib/target-policy.js.map +1 -0
  106. package/lib/user-client.d.ts +6 -0
  107. package/lib/user-client.d.ts.map +1 -1
  108. package/lib/user-client.js.map +1 -1
  109. package/lib/user-operation.d.ts.map +1 -1
  110. package/lib/user-operation.js +9 -0
  111. package/lib/user-operation.js.map +1 -1
  112. package/lib/user-service.d.ts +8 -1
  113. package/lib/user-service.d.ts.map +1 -1
  114. package/lib/user-service.js +58 -4
  115. package/lib/user-service.js.map +1 -1
  116. package/package.json +51 -29
@@ -0,0 +1,35 @@
1
+ /** Public material state only. Credentials and assertions never enter the catalog. */
2
+ import { z } from 'zod';
3
+ const LegacyPublicJwkSchema = z.object({
4
+ kty: z.literal('OKP'), crv: z.literal('Ed25519'), x: z.string().regex(/^[A-Za-z0-9_-]{43}$/u),
5
+ kid: z.string().min(1).max(1024), alg: z.literal('EdDSA'), use: z.literal('sig'),
6
+ }).strict();
7
+ export const EcPublicJwkSchema = z.object({
8
+ kty: z.literal('EC'), crv: z.literal('P-256'), x: z.string().regex(/^[A-Za-z0-9_-]{43}$/u),
9
+ y: z.string().regex(/^[A-Za-z0-9_-]{43}$/u), kid: z.string().min(1).max(1024),
10
+ alg: z.literal('ES256'), use: z.literal('sig'),
11
+ }).strict();
12
+ export const PublicJwkSchema = z.union([LegacyPublicJwkSchema, EcPublicJwkSchema]);
13
+ export const PublicationCapabilitiesSchema = z.object({
14
+ mcpMachine: z.boolean(), papSession: z.boolean(), papAccount: z.boolean(),
15
+ }).strict().refine(v => (v.mcpMachine || v.papSession) && (!v.papAccount || v.papSession), 'Invalid capability combination');
16
+ /** Derive the server profile from actual enabled capabilities. */
17
+ export function publicationProfile(v) {
18
+ return [v.mcpMachine ? 'mcp_machine' : '', v.papAccount ? 'pap_account' : v.papSession ? 'pap_session' : ''].filter(Boolean).join('_');
19
+ }
20
+ export const PublicationConfigSchema = z.object({
21
+ backend: z.string().min(1).max(128), documentId: z.string().regex(/^[A-Za-z0-9_-]{1,128}$/u),
22
+ clientName: z.string().trim().min(1).max(128), redirectUris: z.array(z.string().max(2048)).max(8),
23
+ capabilities: PublicationCapabilitiesSchema.optional(), activeKid: z.string().min(1).max(1024).optional(),
24
+ }).strict();
25
+ export const PublicationRecordSchema = z.object({
26
+ config: PublicationConfigSchema, operationId: z.string().regex(/^[A-Za-z0-9_-]{1,128}$/u),
27
+ expectedVersion: z.number().int().nonnegative(), state: z.enum(['awaiting_configuration', 'publishing', 'published', 'failed']),
28
+ clientId: z.string().max(2048), version: z.number().int().nonnegative(),
29
+ key: PublicJwkSchema,
30
+ metadata: z.string().max(16384).optional(), jwks: z.string().max(16384).optional(),
31
+ metadataSha256: z.string().regex(/^[a-f0-9]{64}$/u).optional(),
32
+ failure: z.enum(['unavailable', 'publication_failed', 'material_mismatch']).optional(),
33
+ }).strict().refine(value => value.state !== 'published' ||
34
+ (!!value.metadata && !!value.jwks && !!value.metadataSha256 && value.version > 0), 'Incomplete published materials');
35
+ //# sourceMappingURL=publication-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publication-types.js","sourceRoot":"","sources":["../src/publication-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { IdentityReference } from '@agent-network-protocol/anp-identity';
2
+ import type { ProviderLease } from '@agent-network-protocol/anp-identity/provider';
3
+ import { CatalogStore } from './catalog.js';
4
+ import { type PublicationBackend, type PublicationConfig, type PublicationRecord, type OAuthClientIdentity } from './publication-types.js';
5
+ export declare class PublicationCoordinator {
6
+ readonly store: CatalogStore;
7
+ readonly host: {
8
+ withNative<T>(operation: (native: ProviderLease) => Promise<T>): Promise<T>;
9
+ };
10
+ constructor(store: CatalogStore, host: {
11
+ withNative<T>(operation: (native: ProviderLease) => Promise<T>): Promise<T>;
12
+ });
13
+ status(reference: IdentityReference): Promise<OAuthClientIdentity>;
14
+ requirePublished(reference: IdentityReference): Promise<PublicationRecord>;
15
+ publish(reference: IdentityReference, raw: PublicationConfig, backend: PublicationBackend, assertActive: () => Promise<void>): Promise<OAuthClientIdentity>;
16
+ private materials;
17
+ private readBack;
18
+ private entry;
19
+ private save;
20
+ }
21
+ //# sourceMappingURL=publication.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publication.d.ts","sourceRoot":"","sources":["../src/publication.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAkB,MAAM,sCAAsC,CAAA;AAC7F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAA;AAClF,OAAO,EAAE,YAAY,EAAgC,MAAM,cAAc,CAAA;AAGzE,OAAO,EACL,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,KAAK,mBAAmB,EAC9C,MAAM,wBAAwB,CAAA;AAgBnF,qBAAa,sBAAsB;IACrB,QAAQ,CAAC,KAAK,EAAE,YAAY;IAAE,QAAQ,CAAC,IAAI,EAAE;QACvD,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;KAC5E;gBAFoB,KAAK,EAAE,YAAY,EAAW,IAAI,EAAE;QACvD,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;KAC5E;IAEK,MAAM,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAWlE,gBAAgB,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAY1E,OAAO,CAAC,SAAS,EAAE,iBAAiB,EAAE,GAAG,EAAE,iBAAiB,EAAE,OAAO,EAAE,kBAAkB,EAC7F,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA0GlE,OAAO,CAAC,SAAS;YAwBH,QAAQ;YAOR,KAAK;YAML,IAAI;CAOnB"}
@@ -0,0 +1,235 @@
1
+ /** Recoverable Host publication coordinator, sharing the existing identity and catalog. */
2
+ import { createHash, randomUUID } from 'node:crypto';
3
+ import { mkdir } from 'node:fs/promises';
4
+ import { join } from 'node:path';
5
+ import lockfile from 'proper-lockfile';
6
+ import { CatalogStore, findEntry } from './catalog.js';
7
+ import { pluginError } from './errors.js';
8
+ import { exactHttps, parsePublicJson, publicationRedirectUri } from './publication-http.js';
9
+ import { PublicationConfigSchema, PublicJwkSchema, publicationProfile } from './publication-types.js';
10
+ const sha = (value) => createHash('sha256').update(value).digest('hex');
11
+ function sameKey(left, right) {
12
+ const result = PublicJwkSchema.safeParse(left);
13
+ return result.success && Object.keys(result.data).every(key => result.data[key] === right[key]);
14
+ }
15
+ function binding(identity, record) {
16
+ const services = identity.document.service ?? [];
17
+ const matches = services.filter(service => service.type === 'ANPCIMD');
18
+ const service = matches[0];
19
+ if (matches.length !== 1 || !service || service.serviceEndpoint !== record.clientId
20
+ || service.anp_metadata_sha256 !== record.metadataSha256
21
+ || JSON.stringify(service.anp_oauth_keys) !== JSON.stringify([record.key.kid]))
22
+ throw pluginError('provider_incompatible');
23
+ }
24
+ export class PublicationCoordinator {
25
+ store;
26
+ host;
27
+ constructor(store, host) {
28
+ this.store = store;
29
+ this.host = host;
30
+ }
31
+ async status(reference) {
32
+ const entry = await this.entry(reference);
33
+ const record = entry.publication;
34
+ if (!record)
35
+ return { state: 'local', did: reference.did };
36
+ if (record.state === 'published')
37
+ await this.requirePublished(reference);
38
+ return { state: record.state, did: reference.did, clientId: record.clientId,
39
+ ...(record.metadata ? { jwksUri: parsePublicJson(record.metadata).jwks_uri } : {}),
40
+ keyId: record.key.kid, algorithm: record.key.alg, version: record.version, signerMode: 'local',
41
+ ...(record.config.capabilities ? { capabilities: record.config.capabilities } : {}) };
42
+ }
43
+ async requirePublished(reference) {
44
+ const record = (await this.entry(reference)).publication;
45
+ if (!record || record.state !== 'published' || !record.metadata || sha(record.metadata) !== record.metadataSha256)
46
+ throw pluginError('provider_unavailable');
47
+ await this.host.withNative(async (native) => {
48
+ const identity = await native.publicIdentity(reference);
49
+ const key = await native.oauthPublicJwk(reference, record.key.kid);
50
+ if (!sameKey(key, record.key))
51
+ throw pluginError('provider_incompatible');
52
+ binding(identity, record);
53
+ });
54
+ return structuredClone(record);
55
+ }
56
+ async publish(reference, raw, backend, assertActive) {
57
+ const parsed = PublicationConfigSchema.safeParse(raw);
58
+ if (!parsed.success)
59
+ throw pluginError('invalid_request');
60
+ const config = parsed.data;
61
+ exactHttps(backend.origin);
62
+ config.redirectUris.forEach(uri => publicationRedirectUri(uri, config.capabilities));
63
+ if (new Set(config.redirectUris).size !== config.redirectUris.length)
64
+ throw pluginError('invalid_request');
65
+ const clientId = exactHttps(await backend.clientId(config.documentId), true);
66
+ if (new URL(clientId).origin !== backend.origin)
67
+ throw pluginError('invalid_request');
68
+ const lockRoot = join(this.store.stateRoot, 'journal', 'publication', sha(JSON.stringify(reference)));
69
+ await mkdir(lockRoot, { recursive: true, mode: 0o700 });
70
+ const release = await lockfile.lock(lockRoot, { realpath: false, stale: 60000, update: 10000,
71
+ retries: { retries: 50, minTimeout: 20, maxTimeout: 100 } });
72
+ try {
73
+ await assertActive();
74
+ const previous = (await this.entry(reference)).publication;
75
+ const key = PublicJwkSchema.parse(await this.host.withNative(async (native) => {
76
+ if (!config.capabilities) {
77
+ const identity = await native.publicIdentity(reference);
78
+ const candidates = identity.activeKeys.filter(key => key.algorithm === 'ed25519' && key.purposes.includes('authentication') && !key.purposes.includes('device_assertion'));
79
+ const selected = config.activeKid ?? previous?.key.kid ?? (candidates.length === 1 ? candidates[0].kid : undefined);
80
+ if (!selected)
81
+ throw pluginError('provider_incompatible');
82
+ return native.oauthPublicJwk(reference, selected);
83
+ }
84
+ if (!config.activeKid || !config.activeKid.startsWith(reference.did + '#'))
85
+ throw pluginError('invalid_request');
86
+ try {
87
+ return await native.oauthPublicJwk(reference, config.activeKid);
88
+ }
89
+ catch { /* An unenrolled selected key must first pass the authorized DID update. */ }
90
+ const provider = native;
91
+ if (typeof provider.prepareOAuthKeyChange !== 'function' || typeof provider.exportCandidateOAuthPublicJwk !== 'function')
92
+ throw pluginError('provider_incompatible');
93
+ const identity = await native.publicIdentity(reference);
94
+ const session = await native.resumeDocumentChange(reference) ?? await provider.prepareOAuthKeyChange(reference, {
95
+ fragment: config.activeKid.slice(reference.did.length + 1), operation_id: 'oauth-key-' + sha(config.activeKid).slice(0, 48), expected_revision: identity.revision,
96
+ });
97
+ const selected = PublicJwkSchema.parse(await provider.exportCandidateOAuthPublicJwk(reference, config.activeKid));
98
+ if (selected.alg !== 'ES256' || selected.kid !== config.activeKid)
99
+ throw pluginError('provider_incompatible');
100
+ await assertActive();
101
+ await backend.publishDocument(reference, session, assertActive);
102
+ if (await native.resumeDocumentChange(reference))
103
+ throw pluginError('provider_unavailable');
104
+ return native.oauthPublicJwk(reference, config.activeKid);
105
+ }));
106
+ if (config.capabilities && (key.alg !== 'ES256' || !config.activeKid || key.kid !== config.activeKid))
107
+ throw pluginError('provider_incompatible');
108
+ if (previous && previous.clientId !== clientId)
109
+ throw pluginError('invalid_request');
110
+ const same = previous && JSON.stringify(previous.config) === JSON.stringify(config) && sameKey(previous.key, key);
111
+ if (previous && previous.state !== 'published' && previous.state !== 'awaiting_configuration' && !same)
112
+ throw pluginError('catalog_conflict');
113
+ let record = same ? structuredClone(previous) : {
114
+ config, clientId, key, state: 'publishing', operationId: randomUUID(),
115
+ expectedVersion: previous?.version ?? 0, version: previous?.version ?? 0,
116
+ };
117
+ if (same && record.state === 'published') {
118
+ try {
119
+ await this.readBack(backend, record);
120
+ }
121
+ catch {
122
+ await this.save(reference, { ...record, state: 'failed', failure: 'material_mismatch' });
123
+ throw pluginError('provider_unavailable');
124
+ }
125
+ return this.status(reference);
126
+ }
127
+ record = { ...record, state: (config.capabilities ? !config.capabilities.papAccount || config.redirectUris.length > 0 : config.redirectUris.length > 0) ? 'publishing' : 'awaiting_configuration' };
128
+ await this.save(reference, record);
129
+ if (record.state === 'awaiting_configuration')
130
+ return this.status(reference);
131
+ try {
132
+ await assertActive();
133
+ const prepared = await backend.prepare(config.documentId, {
134
+ operation_id: record.operationId, expected_version: record.expectedVersion,
135
+ client_name: config.clientName, redirect_uris: config.redirectUris,
136
+ ...(config.capabilities ? { schema_version: 2,
137
+ capabilities: { mcp_machine: config.capabilities.mcpMachine, pap_session: config.capabilities.papSession, pap_account: config.capabilities.papAccount },
138
+ signing_keys: [key], active_kid: key.kid } : { key: key }),
139
+ });
140
+ record = this.materials(record, prepared);
141
+ await this.save(reference, record);
142
+ await this.host.withNative(async (native) => {
143
+ await assertActive();
144
+ const identity = await native.publicIdentity(reference);
145
+ let current = false;
146
+ try {
147
+ binding(identity, record);
148
+ current = true;
149
+ }
150
+ catch { /* Prepare/reconcile below. */ }
151
+ const pending = await native.resumeDocumentChange(reference);
152
+ if (pending || !current) {
153
+ const session = pending ?? await native.prepareDocumentChange(reference, { changes: [{
154
+ change: 'bind_oauth_client', clientId, kid: key.kid, metadataSha256: record.metadataSha256,
155
+ }] });
156
+ const candidate = await session.candidate();
157
+ binding({ ...identity, document: candidate.candidateDocument }, record);
158
+ await backend.publishDocument(reference, session, assertActive);
159
+ if (await native.resumeDocumentChange(reference))
160
+ throw pluginError('provider_unavailable');
161
+ binding(await native.publicIdentity(reference), record);
162
+ }
163
+ });
164
+ await assertActive();
165
+ const activated = await backend.activate(config.documentId, record.operationId);
166
+ const accepted = this.materials(record, activated);
167
+ if (activated.state !== 'published' || accepted.version !== record.version
168
+ || accepted.metadata !== record.metadata || accepted.jwks !== record.jwks)
169
+ throw pluginError('provider_incompatible');
170
+ await this.readBack(backend, record);
171
+ await assertActive();
172
+ await this.save(reference, { ...record, state: 'published' });
173
+ return this.status(reference);
174
+ }
175
+ catch (error) {
176
+ await this.save(reference, { ...record, state: 'failed', failure: 'publication_failed' }).catch(() => { });
177
+ throw pluginError('provider_unavailable');
178
+ }
179
+ }
180
+ finally {
181
+ await release();
182
+ }
183
+ }
184
+ materials(record, result) {
185
+ if (!['prepared', 'published'].includes(result.state) || result.client_id !== record.clientId
186
+ || result.operation_id !== record.operationId || !Number.isSafeInteger(result.version) || result.version <= record.expectedVersion
187
+ || typeof result.metadata !== 'string' || typeof result.jwks !== 'string'
188
+ || result.metadata.length > 16384 || result.jwks.length > 16384 || sha(result.metadata) !== result.metadata_sha256)
189
+ throw pluginError('provider_incompatible');
190
+ if (record.config.capabilities && (result.schema_version !== 2 || result.profile !== publicationProfile(record.config.capabilities)
191
+ || result.active_kid !== record.key.kid || result.key_set_digest !== sha(result.jwks)
192
+ || !result.capabilities || result.capabilities.mcp_machine !== record.config.capabilities.mcpMachine
193
+ || result.capabilities.pap_session !== record.config.capabilities.papSession || result.capabilities.pap_account !== record.config.capabilities.papAccount))
194
+ throw pluginError('provider_incompatible');
195
+ const metadata = parsePublicJson(result.metadata);
196
+ const jwks = parsePublicJson(result.jwks);
197
+ if (metadata.client_id !== record.clientId || typeof metadata.jwks_uri !== 'string' || new URL(exactHttps(metadata.jwks_uri, true)).origin !== new URL(record.clientId).origin
198
+ || metadata.token_endpoint_auth_method !== 'private_key_jwt' || metadata.token_endpoint_auth_signing_alg !== record.key.alg
199
+ || metadata.client_name !== record.config.clientName || JSON.stringify(metadata.redirect_uris) !== JSON.stringify(record.config.redirectUris)
200
+ || JSON.stringify(metadata.grant_types) !== JSON.stringify(record.config.capabilities ? [
201
+ ...(record.config.capabilities.mcpMachine ? ['client_credentials'] : []),
202
+ ...(record.config.capabilities.papAccount ? ['authorization_code', 'refresh_token'] : []),
203
+ ] : ['authorization_code']) || JSON.stringify(metadata.response_types) !== JSON.stringify(record.config.capabilities ? (record.config.capabilities.papAccount ? ['code'] : []) : ['code'])
204
+ || !Array.isArray(jwks.keys) || jwks.keys.length !== 1 || !sameKey(jwks.keys[0], record.key))
205
+ throw pluginError('provider_incompatible');
206
+ const allowed = new Set(['client_id', 'jwks_uri', 'client_name', 'redirect_uris', 'grant_types', 'response_types', 'token_endpoint_auth_method', 'token_endpoint_auth_signing_alg']);
207
+ if (Object.keys(metadata).some(key => !allowed.has(key)) || Object.keys(jwks).some(key => key !== 'keys'))
208
+ throw pluginError('provider_incompatible');
209
+ return { ...record, version: result.version, metadata: result.metadata, jwks: result.jwks, metadataSha256: result.metadata_sha256 };
210
+ }
211
+ async readBack(backend, record) {
212
+ const [metadata, jwks] = await Promise.all([
213
+ backend.readPublic(record.config.documentId, 'client.json', record.clientId),
214
+ backend.readPublic(record.config.documentId, 'jwks.json', parsePublicJson(record.metadata).jwks_uri),
215
+ ]);
216
+ if (metadata !== record.metadata || jwks !== record.jwks || sha(metadata) !== record.metadataSha256)
217
+ throw pluginError('provider_incompatible');
218
+ }
219
+ async entry(reference) {
220
+ const catalog = await this.store.load().catch(() => { throw pluginError('catalog_corrupt'); });
221
+ const entry = findEntry(catalog, reference);
222
+ if (!entry || entry.state !== 'active')
223
+ throw pluginError('identity_not_found');
224
+ return entry;
225
+ }
226
+ async save(reference, record) {
227
+ await this.store.mutate(catalog => {
228
+ const entry = findEntry(catalog, reference);
229
+ if (!entry || entry.state !== 'active')
230
+ throw pluginError('identity_not_found');
231
+ return { ...catalog, entries: catalog.entries.map(item => item === entry ? { ...item, publication: structuredClone(record) } : item) };
232
+ });
233
+ }
234
+ }
235
+ //# sourceMappingURL=publication.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publication.js","sourceRoot":"","sources":["../src/publication.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /** Private Host orchestration from a real creation approval to verified device publication. */
2
+ import type { Context } from '@deepseek-ai/cordis';
3
+ import type { IdentityReference } from '@agent-network-protocol/anp-identity';
4
+ import type AnpIdentityService from './index.js';
5
+ import type { IdentityManagement } from './management-types.js';
6
+ import { z } from 'zod';
7
+ export declare const RegistrationBootstrapConfigSchema: z.ZodObject<{
8
+ id: z.ZodString;
9
+ requestId: z.ZodString;
10
+ stateRoot: z.ZodString;
11
+ origin: z.ZodDefault<z.ZodString>;
12
+ email: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
13
+ phone: z.ZodOptional<z.ZodString>;
14
+ clientName: z.ZodString;
15
+ capabilities: z.ZodDefault<z.ZodObject<{
16
+ mcpMachine: z.ZodBoolean;
17
+ papSession: z.ZodBoolean;
18
+ papAccount: z.ZodBoolean;
19
+ }, z.core.$strict>>;
20
+ redirectUris: z.ZodDefault<z.ZodArray<z.ZodString>>;
21
+ managementAudience: z.ZodDefault<z.ZodString>;
22
+ pollIntervalMs: z.ZodDefault<z.ZodNumber>;
23
+ providerReadyTimeoutMs: z.ZodDefault<z.ZodNumber>;
24
+ }, z.core.$strict>;
25
+ export type RegistrationBootstrapConfig = z.infer<typeof RegistrationBootstrapConfigSchema>;
26
+ export type RegistrationBootstrapInput = z.input<typeof RegistrationBootstrapConfigSchema>;
27
+ export type RegistrationBootstrapPhase = 'awaiting_approval' | 'awaiting_email_verification' | 'awaiting_phone_verification' | 'registering' | 'publishing' | 'published' | 'registration_uncertain' | 'blocked' | 'disposed';
28
+ export type RegistrationBootstrapReason = 'approval_unavailable' | 'approval_denied' | 'invalid_configuration' | 'credential_unavailable' | 'email_unavailable' | 'phone_unavailable' | 'provider_unavailable' | 'publication_failed' | 'client_upgrade_required';
29
+ /** Safe manager/UI projection; no factor, credential, key or remote response is returned. */
30
+ export interface RegistrationBootstrapStatus {
31
+ id: string;
32
+ requestId: string;
33
+ phase: RegistrationBootstrapPhase;
34
+ origin?: string;
35
+ clientVersion?: string;
36
+ reason?: RegistrationBootstrapReason;
37
+ reference?: IdentityReference;
38
+ clientId?: string;
39
+ }
40
+ export interface RegistrationBootstrapController {
41
+ submitOtp(code: string): void;
42
+ status(): RegistrationBootstrapStatus;
43
+ dispose(): Promise<void>;
44
+ }
45
+ /** Install the configured manager-owned flow. Its caller supplies the actual management facade and Context.
46
+ * @param options - Non-secret configuration, actual Host management authority and optional HTTP transport.
47
+ * @returns A safe status projection and quiescent disposer.
48
+ */
49
+ export declare function startRegistrationBootstrap(options: {
50
+ context: Context;
51
+ service: AnpIdentityService;
52
+ manager: IdentityManagement;
53
+ config: RegistrationBootstrapConfig;
54
+ fetch?: typeof fetch;
55
+ }): RegistrationBootstrapController;
56
+ //# sourceMappingURL=registration-bootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registration-bootstrap.d.ts","sourceRoot":"","sources":["../src/registration-bootstrap.ts"],"names":[],"mappings":"AACA,+FAA+F;AAC/F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAC7E,OAAO,KAAK,kBAAkB,MAAM,YAAY,CAAA;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAQ/D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAQvB,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;kBAyB5C,CAAA;AACF,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAA;AAC3F,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAA;AAC1F,MAAM,MAAM,0BAA0B,GAAG,mBAAmB,GAAG,6BAA6B,GAAG,6BAA6B,GAAG,aAAa,GACxI,YAAY,GAAG,WAAW,GAAG,wBAAwB,GAAG,SAAS,GAAG,UAAU,CAAA;AAClF,MAAM,MAAM,2BAA2B,GAAG,sBAAsB,GAAG,iBAAiB,GAAG,uBAAuB,GAC1G,wBAAwB,GAAG,mBAAmB,GAAG,mBAAmB,GAAG,sBAAsB,GAAG,oBAAoB,GAAG,yBAAyB,CAAA;AACpJ,6FAA6F;AAC7F,MAAM,WAAW,2BAA2B;IAC1C,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,0BAA0B,CAAA;IACjC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,MAAM,CAAC,EAAE,2BAA2B,CAAA;IACpC,SAAS,CAAC,EAAE,iBAAiB,CAAA;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AACD,MAAM,WAAW,+BAA+B;IAC9C,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,MAAM,IAAI,2BAA2B,CAAA;IACrC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACzB;AAkCD;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE;IAClD,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,kBAAkB,CAAA;IAC3B,OAAO,EAAE,kBAAkB,CAAA;IAC3B,MAAM,EAAE,2BAA2B,CAAA;IACnC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;CACrB,GAAG,+BAA+B,CA8RlC"}