@dharma-ai-labs/agent-fabric 0.2.208 → 0.2.210

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 (120) hide show
  1. package/dist/bin.js +2 -2
  2. package/dist/bin.js.map +1 -1
  3. package/dist/bootstrapHostScope.test.js +1 -1
  4. package/dist/bootstrapHostScope.test.js.map +1 -1
  5. package/dist/bootstrapProcessCaller.test.js +1 -0
  6. package/dist/bootstrapProcessCaller.test.js.map +1 -1
  7. package/dist/bootstrapVaultScope.test.js +25 -1
  8. package/dist/bootstrapVaultScope.test.js.map +1 -1
  9. package/dist/codexBoundSession.d.ts +59 -0
  10. package/dist/codexBoundSession.d.ts.map +1 -1
  11. package/dist/codexBoundSession.js +140 -1
  12. package/dist/codexBoundSession.js.map +1 -1
  13. package/dist/codexInboxSession.d.ts +1 -1
  14. package/dist/codexInboxSession.d.ts.map +1 -1
  15. package/dist/codexRecoveryController.test.d.ts +2 -0
  16. package/dist/codexRecoveryController.test.d.ts.map +1 -0
  17. package/dist/codexRecoveryController.test.js +295 -0
  18. package/dist/codexRecoveryController.test.js.map +1 -0
  19. package/dist/codexScopedDispatch.test.js +2 -1
  20. package/dist/codexScopedDispatch.test.js.map +1 -1
  21. package/dist/codexSetupChildProvider.test.js +20 -0
  22. package/dist/codexSetupChildProvider.test.js.map +1 -1
  23. package/dist/codexSetupNativeHost.test.js +2 -1
  24. package/dist/codexSetupNativeHost.test.js.map +1 -1
  25. package/dist/codexSetupSessionCaller.test.js +1 -0
  26. package/dist/codexSetupSessionCaller.test.js.map +1 -1
  27. package/dist/codexSigningRecoveryNativeHost.d.ts +50 -0
  28. package/dist/codexSigningRecoveryNativeHost.d.ts.map +1 -0
  29. package/dist/codexSigningRecoveryNativeHost.js +186 -0
  30. package/dist/codexSigningRecoveryNativeHost.js.map +1 -0
  31. package/dist/codexSigningRecoveryNativeHost.test.d.ts +2 -0
  32. package/dist/codexSigningRecoveryNativeHost.test.d.ts.map +1 -0
  33. package/dist/codexSigningRecoveryNativeHost.test.js +475 -0
  34. package/dist/codexSigningRecoveryNativeHost.test.js.map +1 -0
  35. package/dist/codexSigningRecoveryTool.d.ts +25 -0
  36. package/dist/codexSigningRecoveryTool.d.ts.map +1 -0
  37. package/dist/codexSigningRecoveryTool.js +24 -0
  38. package/dist/codexSigningRecoveryTool.js.map +1 -0
  39. package/dist/containerRelayLifecycle.d.ts +1 -1
  40. package/dist/cooperativeInboxSession.d.ts +1 -1
  41. package/dist/demoPackage.d.ts +1 -1
  42. package/dist/demoWatchControl.d.ts +6 -6
  43. package/dist/deviceSigningMaintenanceController.d.ts +35 -0
  44. package/dist/deviceSigningMaintenanceController.d.ts.map +1 -0
  45. package/dist/deviceSigningMaintenanceController.js +197 -0
  46. package/dist/deviceSigningMaintenanceController.js.map +1 -0
  47. package/dist/deviceSigningMaintenanceController.test.d.ts +2 -0
  48. package/dist/deviceSigningMaintenanceController.test.d.ts.map +1 -0
  49. package/dist/deviceSigningMaintenanceController.test.js +67 -0
  50. package/dist/deviceSigningMaintenanceController.test.js.map +1 -0
  51. package/dist/deviceSigningMaintenanceFlow.test.d.ts +2 -0
  52. package/dist/deviceSigningMaintenanceFlow.test.d.ts.map +1 -0
  53. package/dist/deviceSigningMaintenanceFlow.test.js +196 -0
  54. package/dist/deviceSigningMaintenanceFlow.test.js.map +1 -0
  55. package/dist/index.d.ts +9 -0
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +612 -469
  58. package/dist/index.js.map +1 -1
  59. package/dist/legacySigningMaintenanceBoundary.d.ts +14 -0
  60. package/dist/legacySigningMaintenanceBoundary.d.ts.map +1 -0
  61. package/dist/legacySigningMaintenanceBoundary.js +128 -0
  62. package/dist/legacySigningMaintenanceBoundary.js.map +1 -0
  63. package/dist/legacySigningMaintenanceBoundary.test.d.ts +2 -0
  64. package/dist/legacySigningMaintenanceBoundary.test.d.ts.map +1 -0
  65. package/dist/legacySigningMaintenanceBoundary.test.js +109 -0
  66. package/dist/legacySigningMaintenanceBoundary.test.js.map +1 -0
  67. package/dist/namedCodexThread.d.ts.map +1 -1
  68. package/dist/namedCodexThread.js +3 -1
  69. package/dist/namedCodexThread.js.map +1 -1
  70. package/dist/namedCodexThread.test.js +17 -1
  71. package/dist/namedCodexThread.test.js.map +1 -1
  72. package/dist/namedSessionMaintenance.d.ts +1 -1
  73. package/dist/namedSessionStartupFence.test.d.ts +2 -0
  74. package/dist/namedSessionStartupFence.test.d.ts.map +1 -0
  75. package/dist/namedSessionStartupFence.test.js +81 -0
  76. package/dist/namedSessionStartupFence.test.js.map +1 -0
  77. package/dist/providerSessionReplyRecovery.d.ts +1 -1
  78. package/dist/relayRuntimeUpgrade.d.ts +1 -1
  79. package/dist/repositoryRelayPreludeDiagnostic.test.d.ts +2 -0
  80. package/dist/repositoryRelayPreludeDiagnostic.test.d.ts.map +1 -0
  81. package/dist/repositoryRelayPreludeDiagnostic.test.js +27 -0
  82. package/dist/repositoryRelayPreludeDiagnostic.test.js.map +1 -0
  83. package/dist/repositoryRelaySupervisor.d.ts +1 -1
  84. package/dist/repositoryRelaySupervisor.d.ts.map +1 -1
  85. package/dist/repositoryRelaySupervisor.js +1 -1
  86. package/dist/repositoryRelaySupervisor.js.map +1 -1
  87. package/dist/schemas/codex-signing-recovery-native-progress.schema.json +16 -0
  88. package/dist/schemas/device-enrollment-recovery-journal.schema.json +20 -0
  89. package/dist/schemas/device-signing-maintenance-challenge.schema.json +185 -0
  90. package/dist/schemas/device-signing-maintenance-completion.schema.json +98 -0
  91. package/dist/schemas/device-signing-maintenance-context-request.schema.json +68 -0
  92. package/dist/schemas/device-signing-maintenance-context.schema.json +137 -0
  93. package/dist/schemas/device-signing-maintenance-control.schema.json +12 -0
  94. package/dist/schemas/device-signing-maintenance-controller-progress.schema.json +26 -0
  95. package/dist/schemas/device-signing-maintenance-delivery-request.schema.json +45 -0
  96. package/dist/schemas/device-signing-maintenance-host-progress.schema.json +121 -0
  97. package/dist/schemas/device-signing-maintenance-plan.schema.json +136 -0
  98. package/dist/schemas/device-signing-maintenance-preparation.schema.json +56 -0
  99. package/dist/schemas/device-signing-recovery-candidate.schema.json +28 -0
  100. package/dist/schemas/device-signing-recovery-challenge.schema.json +52 -0
  101. package/dist/schemas/device-signing-recovery-completion.schema.json +23 -0
  102. package/dist/schemas/device-signing-recovery-delivery-request.schema.json +16 -0
  103. package/dist/schemas/device-signing-recovery-delivery.schema.json +22 -0
  104. package/dist/schemas/device-signing-recovery-host-progress.schema.json +28 -0
  105. package/dist/schemas/device-signing-recovery-offer-progress.schema.json +32 -0
  106. package/dist/schemas/device-signing-recovery-offer-read-request.schema.json +16 -0
  107. package/dist/schemas/device-signing-recovery-offer-registration-receipt.schema.json +16 -0
  108. package/dist/schemas/device-signing-recovery-offer-registration-request.schema.json +18 -0
  109. package/dist/schemas/device-signing-recovery-offer-response.schema.json +43 -0
  110. package/dist/schemas/device-signing-recovery-plan.schema.json +40 -0
  111. package/dist/schemas/device-signing-recovery-preparation.schema.json +23 -0
  112. package/dist/schemas/provider-session-recovery-declaration.schema.json +21 -0
  113. package/dist/signingMaintenanceCohort.test.d.ts +2 -0
  114. package/dist/signingMaintenanceCohort.test.d.ts.map +1 -0
  115. package/dist/signingMaintenanceCohort.test.js +55 -0
  116. package/dist/signingMaintenanceCohort.test.js.map +1 -0
  117. package/dist/usage.d.ts.map +1 -1
  118. package/dist/usage.js +3 -2
  119. package/dist/usage.js.map +1 -1
  120. package/package.json +4 -4
@@ -0,0 +1,45 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.dharma-ai.io/device-signing-maintenance-delivery-request/v1",
4
+ "title": "Device trust maintenance delivery-request; not native continuation",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schema",
9
+ "action",
10
+ "organizationId",
11
+ "recoveryId",
12
+ "approvalId",
13
+ "signature"
14
+ ],
15
+ "properties": {
16
+ "schema": {
17
+ "const": "dharma.device-signing-maintenance-delivery-request/v1"
18
+ },
19
+ "action": {
20
+ "const": "delivery"
21
+ },
22
+ "organizationId": {
23
+ "type": "string",
24
+ "pattern": "^org_[A-Za-z0-9]+$(?![\\s\\S])",
25
+ "maxLength": 200
26
+ },
27
+ "recoveryId": {
28
+ "$ref": "#/$defs/uuid"
29
+ },
30
+ "approvalId": {
31
+ "$ref": "#/$defs/uuid"
32
+ },
33
+ "signature": {
34
+ "type": "string",
35
+ "pattern": "^[A-Za-z0-9_-]{86}$(?![\\s\\S])"
36
+ }
37
+ },
38
+ "$defs": {
39
+ "uuid": {
40
+ "type": "string",
41
+ "format": "uuid",
42
+ "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$(?![\\s\\S])"
43
+ }
44
+ }
45
+ }
@@ -0,0 +1,121 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.dharma-ai.io/device-signing-maintenance-host-progress/v1",
4
+ "title": "Device trust maintenance host-progress; not native continuation",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schema",
9
+ "organizationId",
10
+ "deviceId",
11
+ "preparationId",
12
+ "state",
13
+ "expiresAt",
14
+ "clientTrustInstalled",
15
+ "ready",
16
+ "disposition",
17
+ "authorityKind",
18
+ "nativeContinuationAuthorized"
19
+ ],
20
+ "properties": {
21
+ "schema": {
22
+ "const": "dharma.device-signing-maintenance-host-progress/v1"
23
+ },
24
+ "organizationId": {
25
+ "type": "string",
26
+ "maxLength": 128,
27
+ "pattern": "^org_[A-Za-z0-9]+$"
28
+ },
29
+ "deviceId": {
30
+ "type": "string",
31
+ "format": "uuid"
32
+ },
33
+ "preparationId": {
34
+ "type": "string",
35
+ "format": "uuid"
36
+ },
37
+ "recoveryId": {
38
+ "type": "string",
39
+ "format": "uuid"
40
+ },
41
+ "approvalId": {
42
+ "type": "string",
43
+ "format": "uuid"
44
+ },
45
+ "state": {
46
+ "enum": [
47
+ "prepared",
48
+ "awaiting_browser_offer",
49
+ "pending_approval",
50
+ "submission_unconfirmed",
51
+ "offer_unconfirmed",
52
+ "delivery_unconfirmed",
53
+ "failed",
54
+ "trust_installed"
55
+ ]
56
+ },
57
+ "expiresAt": {
58
+ "type": "string",
59
+ "format": "date-time"
60
+ },
61
+ "clientTrustInstalled": {
62
+ "type": "boolean"
63
+ },
64
+ "ready": {
65
+ "const": false
66
+ },
67
+ "disposition": {
68
+ "const": "owned_host_progress_not_onboarding_ready"
69
+ },
70
+ "authorityKind": {
71
+ "const": "device_trust_maintenance"
72
+ },
73
+ "nativeContinuationAuthorized": {
74
+ "const": false
75
+ }
76
+ },
77
+ "allOf": [
78
+ {
79
+ "if": {
80
+ "properties": {
81
+ "state": {
82
+ "enum": [
83
+ "pending_approval",
84
+ "delivery_unconfirmed",
85
+ "trust_installed"
86
+ ]
87
+ }
88
+ }
89
+ },
90
+ "then": {
91
+ "required": [
92
+ "recoveryId",
93
+ "approvalId"
94
+ ]
95
+ }
96
+ },
97
+ {
98
+ "if": {
99
+ "properties": {
100
+ "state": {
101
+ "const": "trust_installed"
102
+ }
103
+ }
104
+ },
105
+ "then": {
106
+ "properties": {
107
+ "clientTrustInstalled": {
108
+ "const": true
109
+ }
110
+ }
111
+ },
112
+ "else": {
113
+ "properties": {
114
+ "clientTrustInstalled": {
115
+ "const": false
116
+ }
117
+ }
118
+ }
119
+ }
120
+ ]
121
+ }
@@ -0,0 +1,136 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.dharma-ai.io/device-signing-maintenance-plan/v1",
4
+ "title": "Existing-device signing maintenance plan; no native continuation authority",
5
+ "$comment": "Distinct device-maintenance origin. Device possession, both fresh browser consents, current member/device/source, independent configured-key provenance, publication CAS and protected installation remain separate and mandatory. Native session liveness or execution is not asserted.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": [
9
+ "schema",
10
+ "planId",
11
+ "authority",
12
+ "preparedAt",
13
+ "expiresAt",
14
+ "origin",
15
+ "issuer",
16
+ "audience",
17
+ "organizationId",
18
+ "recipientMembershipId",
19
+ "deviceId",
20
+ "installationId",
21
+ "workspaceId",
22
+ "publicKeyEd25519",
23
+ "repositoryFingerprint",
24
+ "policyRevision",
25
+ "scopeDigest",
26
+ "contractDigest",
27
+ "sourceSelectionDigest",
28
+ "controllerBindingDigest",
29
+ "previousAnchorHash",
30
+ "protectedConfigDigest",
31
+ "previousGeneration",
32
+ "previousKeysetHash",
33
+ "previousRootFingerprint"
34
+ ],
35
+ "properties": {
36
+ "schema": {
37
+ "const": "dharma.device-signing-maintenance-plan/v1"
38
+ },
39
+ "planId": {
40
+ "$ref": "#/$defs/uuid"
41
+ },
42
+ "authority": {
43
+ "const": "local_context_only_not_recovery_authorization"
44
+ },
45
+ "preparedAt": {
46
+ "type": "string",
47
+ "format": "date-time"
48
+ },
49
+ "expiresAt": {
50
+ "type": "string",
51
+ "format": "date-time"
52
+ },
53
+ "origin": {
54
+ "type": "string",
55
+ "maxLength": 256,
56
+ "format": "uri",
57
+ "pattern": "^https://[^/@?#\\s]+$(?![\\s\\S])"
58
+ },
59
+ "issuer": {
60
+ "type": "string",
61
+ "maxLength": 256,
62
+ "format": "uri",
63
+ "pattern": "^https://[^/@?#\\s]+$(?![\\s\\S])"
64
+ },
65
+ "audience": {
66
+ "const": "dharma.agent-fabric.signing-maintenance/v1"
67
+ },
68
+ "organizationId": {
69
+ "type": "string",
70
+ "maxLength": 256,
71
+ "pattern": "^org_[A-Za-z0-9]+$(?![\\s\\S])"
72
+ },
73
+ "recipientMembershipId": {
74
+ "$ref": "#/$defs/uuid"
75
+ },
76
+ "deviceId": {
77
+ "$ref": "#/$defs/uuid"
78
+ },
79
+ "installationId": {
80
+ "$ref": "#/$defs/uuid"
81
+ },
82
+ "workspaceId": {
83
+ "$ref": "#/$defs/uuid"
84
+ },
85
+ "publicKeyEd25519": {
86
+ "type": "string",
87
+ "pattern": "^[A-Za-z0-9_-]{42}[AEIMQUYcgkosw048]$(?![\\s\\S])"
88
+ },
89
+ "repositoryFingerprint": {
90
+ "$ref": "#/$defs/digest"
91
+ },
92
+ "policyRevision": {
93
+ "type": "string",
94
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$(?![\\s\\S])"
95
+ },
96
+ "scopeDigest": {
97
+ "$ref": "#/$defs/digest"
98
+ },
99
+ "contractDigest": {
100
+ "$ref": "#/$defs/digest"
101
+ },
102
+ "sourceSelectionDigest": {
103
+ "$ref": "#/$defs/digest"
104
+ },
105
+ "controllerBindingDigest": {
106
+ "$ref": "#/$defs/digest"
107
+ },
108
+ "previousAnchorHash": {
109
+ "$ref": "#/$defs/digest"
110
+ },
111
+ "protectedConfigDigest": {
112
+ "$ref": "#/$defs/digest"
113
+ },
114
+ "previousGeneration": {
115
+ "type": "integer",
116
+ "minimum": 1,
117
+ "maximum": 9007199254740991
118
+ },
119
+ "previousKeysetHash": {
120
+ "$ref": "#/$defs/digest"
121
+ },
122
+ "previousRootFingerprint": {
123
+ "$ref": "#/$defs/digest"
124
+ }
125
+ },
126
+ "$defs": {
127
+ "uuid": {
128
+ "type": "string",
129
+ "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$(?![\\s\\S])"
130
+ },
131
+ "digest": {
132
+ "type": "string",
133
+ "pattern": "^sha256:[a-f0-9]{64}$(?![\\s\\S])"
134
+ }
135
+ }
136
+ }
@@ -0,0 +1,56 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.dharma-ai.io/device-signing-maintenance-preparation/v1",
4
+ "title": "Existing-device signing maintenance preparation; no native continuation authority",
5
+ "$comment": "Distinct device-maintenance origin. Device possession, both fresh browser consents, current member/device/source, independent configured-key provenance, publication CAS and protected installation remain separate and mandatory. Native session liveness or execution is not asserted.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": [
9
+ "schema",
10
+ "purpose",
11
+ "method",
12
+ "path",
13
+ "plan",
14
+ "historicalKeysetCanonical",
15
+ "historicalRootPublicKey",
16
+ "credentialEncryptionPublicKey",
17
+ "nonce"
18
+ ],
19
+ "properties": {
20
+ "schema": {
21
+ "const": "dharma.device-signing-maintenance-preparation/v1"
22
+ },
23
+ "purpose": {
24
+ "const": "prepare_expired_signing_trust_recovery"
25
+ },
26
+ "method": {
27
+ "const": "POST"
28
+ },
29
+ "path": {
30
+ "const": "/api/v1/agent-fabric/signing-recovery/preparations"
31
+ },
32
+ "plan": {
33
+ "$ref": "https://schemas.dharma-ai.io/device-signing-maintenance-plan/v1"
34
+ },
35
+ "historicalKeysetCanonical": {
36
+ "type": "string",
37
+ "minLength": 2,
38
+ "maxLength": 16384
39
+ },
40
+ "historicalRootPublicKey": {
41
+ "$ref": "#/$defs/bytes32"
42
+ },
43
+ "credentialEncryptionPublicKey": {
44
+ "$ref": "#/$defs/bytes32"
45
+ },
46
+ "nonce": {
47
+ "$ref": "#/$defs/bytes32"
48
+ }
49
+ },
50
+ "$defs": {
51
+ "bytes32": {
52
+ "type": "string",
53
+ "pattern": "^[A-Za-z0-9_-]{42}[AEIMQUYcgkosw048]$(?![\\s\\S])"
54
+ }
55
+ }
56
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.dharma-ai.io/device-signing-recovery-candidate/v1",
4
+ "title": "Public candidate and publication evidence, not installation authority",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schema", "organizationId", "recoveryId", "approvalId", "keysetCanonical", "rootPublicKey", "publication"],
8
+ "properties": {
9
+ "schema": {"const": "dharma.device-signing-recovery-candidate/v1"},
10
+ "organizationId": {"type": "string", "pattern": "^org_[A-Za-z0-9]+$(?![\\s\\S])", "maxLength": 200},
11
+ "recoveryId": {"type": "string", "format": "uuid", "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$(?![\\s\\S])"},
12
+ "approvalId": {"type": "string", "format": "uuid", "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$(?![\\s\\S])"},
13
+ "keysetCanonical": {"type": "string", "minLength": 1, "maxLength": 16384},
14
+ "rootPublicKey": {"type": "string", "pattern": "^[A-Za-z0-9_-]{43}$(?![\\s\\S])"},
15
+ "publication": {
16
+ "type": "object", "additionalProperties": false,
17
+ "required": ["schema", "organizationId", "recoveryId", "generation", "artifactHash", "publishedAt"],
18
+ "properties": {
19
+ "schema": {"const": "dharma.signing-recovery-publication/v1"},
20
+ "organizationId": {"type": "string", "pattern": "^org_[A-Za-z0-9]+$(?![\\s\\S])", "maxLength": 200},
21
+ "recoveryId": {"type": "string", "format": "uuid", "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$(?![\\s\\S])"},
22
+ "generation": {"type": "integer", "minimum": 1, "maximum": 9007199254740991},
23
+ "artifactHash": {"type": "string", "pattern": "^sha256:[a-f0-9]{64}$(?![\\s\\S])"},
24
+ "publishedAt": {"type": "string", "format": "date-time"}
25
+ }
26
+ }
27
+ }
28
+ }
@@ -0,0 +1,52 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.dharma-ai.io/device-signing-recovery-challenge/v1",
4
+ "title": "Public device signing recovery proof; not consent or trust-installation authority",
5
+ "$comment": "Runtime validation additionally enforces canonical HTTPS origin/encoding/timestamps, matching expected context, strictly increasing generation, changed artifact and a live window no longer than 15 minutes. Server approval, provenance and replay fencing are separate.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": ["schema", "origin", "issuer", "audience", "recoveryId", "approvalId", "organizationId", "recipientMembershipId", "deviceId", "installationId", "workspaceId", "publicKeyEd25519", "credentialEncryptionPublicKey", "repositoryFingerprint", "policyRevision", "scopeDigest", "contractDigest", "sourceSelectionDigest", "nativeSessionBindingDigest", "previousAnchorHash", "protectedConfigDigest", "previousGeneration", "previousKeysetHash", "previousRootFingerprint", "candidateGeneration", "candidateKeysetHash", "candidateRootFingerprint", "candidateKeyVersionFingerprint", "purpose", "method", "path", "nonce", "issuedAt", "expiresAt", "authenticator"],
9
+ "properties": {
10
+ "schema": {"const": "dharma.device-signing-recovery-challenge/v1"},
11
+ "origin": {"type": "string", "maxLength": 256, "format": "uri", "pattern": "^https://[^/@?#\\s]+$"},
12
+ "issuer": {"type": "string", "maxLength": 256, "format": "uri", "pattern": "^https://[^/@?#\\s]+$"},
13
+ "audience": {"const": "dharma.agent-fabric.signing-recovery/v1"},
14
+ "recoveryId": {"$ref": "#/$defs/uuid"},
15
+ "approvalId": {"$ref": "#/$defs/uuid"},
16
+ "organizationId": {"type": "string", "maxLength": 256, "pattern": "^org_[A-Za-z0-9]+$"},
17
+ "recipientMembershipId": {"$ref": "#/$defs/uuid"},
18
+ "deviceId": {"$ref": "#/$defs/uuid"},
19
+ "installationId": {"$ref": "#/$defs/uuid"},
20
+ "workspaceId": {"$ref": "#/$defs/uuid"},
21
+ "publicKeyEd25519": {"$ref": "#/$defs/bytes32"},
22
+ "credentialEncryptionPublicKey": {"$ref": "#/$defs/bytes32"},
23
+ "repositoryFingerprint": {"$ref": "#/$defs/digest"},
24
+ "policyRevision": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"},
25
+ "scopeDigest": {"$ref": "#/$defs/digest"},
26
+ "contractDigest": {"$ref": "#/$defs/digest"},
27
+ "sourceSelectionDigest": {"$ref": "#/$defs/digest"},
28
+ "nativeSessionBindingDigest": {"$ref": "#/$defs/digest"},
29
+ "previousAnchorHash": {"$ref": "#/$defs/digest"},
30
+ "protectedConfigDigest": {"$ref": "#/$defs/digest"},
31
+ "previousGeneration": {"$ref": "#/$defs/generation"},
32
+ "previousKeysetHash": {"$ref": "#/$defs/digest"},
33
+ "previousRootFingerprint": {"$ref": "#/$defs/digest"},
34
+ "candidateGeneration": {"$ref": "#/$defs/generation"},
35
+ "candidateKeysetHash": {"$ref": "#/$defs/digest"},
36
+ "candidateRootFingerprint": {"$ref": "#/$defs/digest"},
37
+ "candidateKeyVersionFingerprint": {"$ref": "#/$defs/digest"},
38
+ "purpose": {"const": "expired_signing_trust_reapproval"},
39
+ "method": {"const": "POST"},
40
+ "path": {"const": "/api/v1/agent-fabric/signing-recovery"},
41
+ "nonce": {"$ref": "#/$defs/bytes32"},
42
+ "issuedAt": {"type": "string", "format": "date-time", "maxLength": 256},
43
+ "expiresAt": {"type": "string", "format": "date-time", "maxLength": 256},
44
+ "authenticator": {"$ref": "#/$defs/bytes32"}
45
+ },
46
+ "$defs": {
47
+ "uuid": {"type": "string", "format": "uuid", "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"},
48
+ "bytes32": {"type": "string", "pattern": "^[A-Za-z0-9_-]{42}[AEIMQUYcgkosw048]$"},
49
+ "digest": {"type": "string", "pattern": "^sha256:[a-f0-9]{64}$"},
50
+ "generation": {"type": "integer", "minimum": 1, "maximum": 9007199254740991}
51
+ }
52
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.dharma-ai.io/device-signing-recovery-completion/v1",
4
+ "title": "Trust installation receipt, not customer readiness",
5
+ "type": "object", "additionalProperties": false,
6
+ "required": ["schema", "organizationId", "deviceId", "installationId", "workspaceId", "recoveryId", "approvalId", "generation", "keysetHash", "rootFingerprint", "publicationArtifactHash", "observedAt", "connectionMode", "ready", "disposition"],
7
+ "properties": {
8
+ "schema": {"const": "dharma.device-signing-recovery-completion/v1"},
9
+ "organizationId": {"type": "string", "pattern": "^org_[A-Za-z0-9]+$(?![\\s\\S])", "maxLength": 200},
10
+ "deviceId": {"$ref": "#/$defs/uuid"}, "installationId": {"$ref": "#/$defs/uuid"},
11
+ "workspaceId": {"$ref": "#/$defs/uuid"}, "recoveryId": {"$ref": "#/$defs/uuid"}, "approvalId": {"$ref": "#/$defs/uuid"},
12
+ "generation": {"type": "integer", "minimum": 1, "maximum": 9007199254740991},
13
+ "keysetHash": {"$ref": "#/$defs/digest"}, "rootFingerprint": {"$ref": "#/$defs/digest"},
14
+ "publicationArtifactHash": {"$ref": "#/$defs/digest"},
15
+ "observedAt": {"type": "string", "format": "date-time"},
16
+ "connectionMode": {"enum": ["manual", "resume"]},
17
+ "ready": {"const": false}, "disposition": {"const": "signing_trust_installed_not_onboarding_ready"}
18
+ },
19
+ "$defs": {
20
+ "uuid": {"type": "string", "format": "uuid", "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$(?![\\s\\S])"},
21
+ "digest": {"type": "string", "pattern": "^sha256:[a-f0-9]{64}$(?![\\s\\S])"}
22
+ }
23
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.dharma-ai.io/device-signing-recovery-delivery-request/v1",
4
+ "title": "Existing device possession request for exact approved recovery delivery",
5
+ "type": "object", "additionalProperties": false,
6
+ "required": ["schema", "action", "organizationId", "recoveryId", "approvalId", "signature"],
7
+ "properties": {
8
+ "schema": {"const": "dharma.device-signing-recovery-delivery-request/v1"},
9
+ "action": {"const": "delivery"},
10
+ "organizationId": {"type": "string", "pattern": "^org_[A-Za-z0-9]+$(?![\\s\\S])", "maxLength": 200},
11
+ "recoveryId": {"$ref": "#/$defs/uuid"},
12
+ "approvalId": {"$ref": "#/$defs/uuid"},
13
+ "signature": {"type": "string", "pattern": "^[A-Za-z0-9_-]{86}$(?![\\s\\S])"}
14
+ },
15
+ "$defs": {"uuid": {"type": "string", "format": "uuid", "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$(?![\\s\\S])"}}
16
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.dharma-ai.io/device-signing-recovery-delivery/v1",
4
+ "title": "Encrypted device signing recovery delivery, not installation authority",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schema", "organizationId", "recoveryId", "approvalId", "deviceId", "issuedAt", "expiresAt", "ephemeralPublicKey", "iv", "ciphertext", "tag", "contextDigest"],
8
+ "properties": {
9
+ "schema": {"const": "dharma.device-signing-recovery-delivery/v1"},
10
+ "organizationId": {"type": "string", "pattern": "^org_[A-Za-z0-9]+$(?![\\s\\S])", "maxLength": 200},
11
+ "recoveryId": {"type": "string", "format": "uuid", "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$(?![\\s\\S])"},
12
+ "approvalId": {"type": "string", "format": "uuid", "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$(?![\\s\\S])"},
13
+ "deviceId": {"type": "string", "format": "uuid", "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$(?![\\s\\S])"},
14
+ "issuedAt": {"type": "string", "format": "date-time"},
15
+ "expiresAt": {"type": "string", "format": "date-time"},
16
+ "ephemeralPublicKey": {"type": "string", "pattern": "^[A-Za-z0-9_-]{43}$(?![\\s\\S])"},
17
+ "iv": {"type": "string", "pattern": "^[A-Za-z0-9_-]{16}$(?![\\s\\S])"},
18
+ "ciphertext": {"type": "string", "pattern": "^[A-Za-z0-9_-]+$(?![\\s\\S])", "minLength": 1, "maxLength": 43691},
19
+ "tag": {"type": "string", "pattern": "^[A-Za-z0-9_-]{22}$(?![\\s\\S])"},
20
+ "contextDigest": {"type": "string", "pattern": "^sha256:[a-f0-9]{64}$(?![\\s\\S])"}
21
+ }
22
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.dharma-ai.io/device-signing-recovery-host-progress/v1",
4
+ "title": "Owning-host signing recovery progress, not onboarding readiness",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schema", "organizationId", "deviceId", "preparationId", "state", "expiresAt", "clientTrustInstalled", "ready", "disposition"],
8
+ "properties": {
9
+ "schema": {"const": "dharma.device-signing-recovery-host-progress/v1"},
10
+ "organizationId": {"type": "string", "maxLength": 128, "pattern": "^org_[A-Za-z0-9]+$"},
11
+ "deviceId": {"type": "string", "format": "uuid"},
12
+ "preparationId": {"type": "string", "format": "uuid"},
13
+ "recoveryId": {"type": "string", "format": "uuid"},
14
+ "approvalId": {"type": "string", "format": "uuid"},
15
+ "state": {"enum": ["prepared", "awaiting_browser_offer", "pending_approval", "submission_unconfirmed", "offer_unconfirmed", "delivery_unconfirmed", "failed", "trust_installed"]},
16
+ "expiresAt": {"type": "string", "format": "date-time"},
17
+ "clientTrustInstalled": {"type": "boolean"},
18
+ "ready": {"const": false},
19
+ "disposition": {"const": "owned_host_progress_not_onboarding_ready"}
20
+ },
21
+ "allOf": [
22
+ {"if": {"properties": {"state": {"enum": ["pending_approval", "delivery_unconfirmed", "trust_installed"]}}},
23
+ "then": {"required": ["recoveryId", "approvalId"]}},
24
+ {"if": {"properties": {"state": {"const": "trust_installed"}}},
25
+ "then": {"properties": {"clientTrustInstalled": {"const": true}}},
26
+ "else": {"properties": {"clientTrustInstalled": {"const": false}}}}
27
+ ]
28
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.dharma-ai.io/device-signing-recovery-offer-progress/v1",
4
+ "title": "Prepared signing recovery offer progress without installed authority",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schema", "organizationId", "deviceId", "preparationId", "state", "expiresAt", "deviceProofRegistered", "clientTrustInstalled", "ready", "disposition"],
8
+ "properties": {
9
+ "schema": {"const": "dharma.device-signing-recovery-offer-progress/v1"},
10
+ "organizationId": {"type": "string", "maxLength": 128, "pattern": "^org_[A-Za-z0-9]+$"},
11
+ "deviceId": {"type": "string", "format": "uuid"},
12
+ "preparationId": {"type": "string", "format": "uuid"},
13
+ "recoveryId": {"type": "string", "format": "uuid"},
14
+ "approvalId": {"type": "string", "format": "uuid"},
15
+ "state": {"enum": ["awaiting_browser_offer", "pending_approval"]},
16
+ "expiresAt": {"type": "string", "format": "date-time"},
17
+ "deviceProofRegistered": {"type": "boolean"},
18
+ "clientTrustInstalled": {"const": false},
19
+ "ready": {"const": false},
20
+ "disposition": {"const": "awaiting_separate_browser_consent_not_onboarding_ready"}
21
+ },
22
+ "oneOf": [
23
+ {
24
+ "properties": {"state": {"const": "awaiting_browser_offer"}, "deviceProofRegistered": {"const": false}},
25
+ "not": {"anyOf": [{"required": ["recoveryId"]}, {"required": ["approvalId"]}]}
26
+ },
27
+ {
28
+ "required": ["recoveryId", "approvalId"],
29
+ "properties": {"state": {"const": "pending_approval"}, "deviceProofRegistered": {"const": true}}
30
+ }
31
+ ]
32
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "$schema":"https://json-schema.org/draft/2020-12/schema",
3
+ "$id":"https://schemas.dharma-ai.io/device-signing-recovery-offer-read-request/v1",
4
+ "title":"Exact signed-device pending offer read; not connected relay or browser authority",
5
+ "$comment":"Runtime also enforces canonical timestamps, a live maximum 60-second request window, exact expected selection and canonical base64. The server verifies device transport separately.",
6
+ "type":"object","additionalProperties":false,
7
+ "required":["schema","purpose","method","path","organizationId","deviceId","preparationId","requestId","nonce","issuedAt","expiresAt"],
8
+ "properties":{
9
+ "schema":{"const":"dharma.device-signing-recovery-offer-read-request/v1"},"purpose":{"const":"read_prepared_recovery_offer"},
10
+ "method":{"const":"POST"},"path":{"const":"/api/v1/agent-fabric/signing-recovery/offers/read"},
11
+ "organizationId":{"type":"string","maxLength":128,"pattern":"^org_[A-Za-z0-9]+$(?![\\s\\S])"},
12
+ "deviceId":{"type":"string","format":"uuid"},"preparationId":{"type":"string","format":"uuid"},"requestId":{"type":"string","format":"uuid"},
13
+ "nonce":{"type":"string","pattern":"^[A-Za-z0-9_-]{42}[AEIMQUYcgkosw048]$(?![\\s\\S])"},
14
+ "issuedAt":{"type":"string","format":"date-time","maxLength":40},"expiresAt":{"type":"string","format":"date-time","maxLength":40}
15
+ }
16
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "$schema":"https://json-schema.org/draft/2020-12/schema",
3
+ "$id":"https://schemas.dharma-ai.io/device-signing-recovery-offer-registration-receipt/v1",
4
+ "title":"Idempotent pending device proof receipt; no consent, publication or credentials",
5
+ "$comment":"Runtime binds all identifiers to the exact request and expiry to the already validated challenge, checks current time, and retains explicit not-ready state.",
6
+ "type":"object","additionalProperties":false,
7
+ "required":["schema","organizationId","deviceId","preparationId","recoveryId","approvalId","state","expiresAt","deviceProofRegistered","clientTrustInstalled","ready"],
8
+ "properties":{
9
+ "schema":{"const":"dharma.device-signing-recovery-offer-registration-receipt/v1"},
10
+ "organizationId":{"type":"string","maxLength":128,"pattern":"^org_[A-Za-z0-9]+$(?![\\s\\S])"},
11
+ "deviceId":{"type":"string","format":"uuid"},"preparationId":{"type":"string","format":"uuid"},
12
+ "recoveryId":{"type":"string","format":"uuid"},"approvalId":{"type":"string","format":"uuid"},
13
+ "state":{"const":"pending_approval"},"expiresAt":{"type":"string","format":"date-time","maxLength":40},
14
+ "deviceProofRegistered":{"const":true},"clientTrustInstalled":{"const":false},"ready":{"const":false}
15
+ }
16
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "$schema":"https://json-schema.org/draft/2020-12/schema",
3
+ "$id":"https://schemas.dharma-ai.io/device-signing-recovery-offer-registration-request/v1",
4
+ "title":"Exact retained-offer device proof registration; not consent or trust installation",
5
+ "$comment":"The request carries only identifiers and the dedicated device purpose proof. Server-owned intent, current authority, device transport and purpose proof are independently verified before an idempotent registration.",
6
+ "type":"object","additionalProperties":false,
7
+ "required":["schema","purpose","method","path","organizationId","deviceId","preparationId","requestId","nonce","issuedAt","expiresAt","recoveryId","approvalId","signature"],
8
+ "properties":{
9
+ "schema":{"const":"dharma.device-signing-recovery-offer-registration-request/v1"},"purpose":{"const":"register_prepared_recovery_proof"},
10
+ "method":{"const":"POST"},"path":{"const":"/api/v1/agent-fabric/signing-recovery/offers/register"},
11
+ "organizationId":{"type":"string","maxLength":128,"pattern":"^org_[A-Za-z0-9]+$(?![\\s\\S])"},
12
+ "deviceId":{"type":"string","format":"uuid"},"preparationId":{"type":"string","format":"uuid"},"requestId":{"type":"string","format":"uuid"},
13
+ "nonce":{"type":"string","pattern":"^[A-Za-z0-9_-]{42}[AEIMQUYcgkosw048]$(?![\\s\\S])"},
14
+ "issuedAt":{"type":"string","format":"date-time","maxLength":40},"expiresAt":{"type":"string","format":"date-time","maxLength":40},
15
+ "recoveryId":{"type":"string","format":"uuid"},"approvalId":{"type":"string","format":"uuid"},
16
+ "signature":{"type":"string","pattern":"^[A-Za-z0-9_-]{85}[AQgw]$(?![\\s\\S])"}
17
+ }
18
+ }