@dharma-ai-labs/agent-fabric 0.1.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.
@@ -0,0 +1,384 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.dharma-ai.io/task/v1",
4
+ "title": "Dharma Task Envelope",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schema",
9
+ "taskId",
10
+ "organizationId",
11
+ "workspaceId",
12
+ "taskType",
13
+ "target",
14
+ "skillBundle",
15
+ "instructions",
16
+ "requiredSkills",
17
+ "authority",
18
+ "execution",
19
+ "acceptance",
20
+ "budget",
21
+ "createdAt",
22
+ "expiresAt",
23
+ "nonce"
24
+ ],
25
+ "properties": {
26
+ "schema": {
27
+ "const": "dharma.task/v1"
28
+ },
29
+ "taskId": {
30
+ "type": "string",
31
+ "format": "uuid"
32
+ },
33
+ "organizationId": {
34
+ "type": "string",
35
+ "minLength": 1
36
+ },
37
+ "workspaceId": {
38
+ "type": "string",
39
+ "minLength": 1
40
+ },
41
+ "taskType": {
42
+ "type": "string",
43
+ "enum": [
44
+ "external_request",
45
+ "a2a_handoff",
46
+ "evaluation_retest",
47
+ "remediation_smoke"
48
+ ]
49
+ },
50
+ "target": {
51
+ "type": "object",
52
+ "additionalProperties": false,
53
+ "required": [
54
+ "deviceId",
55
+ "provider"
56
+ ],
57
+ "properties": {
58
+ "deviceId": {
59
+ "type": "string",
60
+ "minLength": 1
61
+ },
62
+ "provider": {
63
+ "type": "string",
64
+ "enum": ["codex", "claude", "agy"]
65
+ }
66
+ }
67
+ },
68
+ "source": {
69
+ "type": "object",
70
+ "additionalProperties": false,
71
+ "required": ["taskId", "endpointId"],
72
+ "properties": {
73
+ "taskId": { "type": "string", "format": "uuid" },
74
+ "endpointId": { "type": "string", "format": "uuid" }
75
+ }
76
+ },
77
+ "skillBundle": {
78
+ "oneOf": [
79
+ {
80
+ "type": "object",
81
+ "additionalProperties": false,
82
+ "required": ["bundleId", "bundleHash"],
83
+ "properties": {
84
+ "bundleId": {
85
+ "type": "string",
86
+ "format": "uuid"
87
+ },
88
+ "bundleHash": {
89
+ "type": "string",
90
+ "pattern": "^sha256:[a-f0-9]{64}$"
91
+ }
92
+ }
93
+ },
94
+ {
95
+ "type": "null"
96
+ }
97
+ ]
98
+ },
99
+ "instructions": {
100
+ "type": "string",
101
+ "minLength": 1,
102
+ "maxLength": 20000
103
+ },
104
+ "requiredSkills": {
105
+ "type": "array",
106
+ "maxItems": 50,
107
+ "items": {
108
+ "type": "object",
109
+ "additionalProperties": false,
110
+ "required": [
111
+ "skillId",
112
+ "version",
113
+ "commit",
114
+ "contentHash"
115
+ ],
116
+ "properties": {
117
+ "skillId": {
118
+ "type": "string",
119
+ "minLength": 1,
120
+ "maxLength": 200,
121
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._/@-]{0,199}$"
122
+ },
123
+ "version": {
124
+ "type": "string",
125
+ "minLength": 1,
126
+ "maxLength": 100
127
+ },
128
+ "commit": {
129
+ "type": "string",
130
+ "pattern": "^[A-Fa-f0-9]{40,64}$"
131
+ },
132
+ "contentHash": {
133
+ "type": "string",
134
+ "pattern": "^(sha256|blake3):[A-Fa-f0-9]{32,128}$"
135
+ }
136
+ }
137
+ }
138
+ },
139
+ "stateEnvelope": {
140
+ "type": "object",
141
+ "additionalProperties": false,
142
+ "required": [
143
+ "intent",
144
+ "evidence_used",
145
+ "known_state",
146
+ "unknown_or_missing_state",
147
+ "allowed_next_actions",
148
+ "blocked_actions",
149
+ "decision_authority",
150
+ "tool_results"
151
+ ],
152
+ "properties": {
153
+ "intent": { "type": "string", "minLength": 1, "maxLength": 1000 },
154
+ "evidence_used": {
155
+ "type": "array",
156
+ "maxItems": 50,
157
+ "items": { "type": "string", "minLength": 1, "maxLength": 500 }
158
+ },
159
+ "known_state": { "type": "object", "maxProperties": 100 },
160
+ "unknown_or_missing_state": {
161
+ "type": "array",
162
+ "maxItems": 50,
163
+ "items": { "type": "string", "minLength": 1, "maxLength": 1000 }
164
+ },
165
+ "allowed_next_actions": {
166
+ "type": "array",
167
+ "maxItems": 50,
168
+ "items": { "type": "string", "minLength": 1, "maxLength": 500 }
169
+ },
170
+ "blocked_actions": {
171
+ "type": "array",
172
+ "maxItems": 50,
173
+ "items": { "type": "string", "minLength": 1, "maxLength": 500 }
174
+ },
175
+ "decision_authority": { "type": "string", "minLength": 1, "maxLength": 1000 },
176
+ "tool_results": { "type": "array", "maxItems": 50 }
177
+ }
178
+ },
179
+ "evidenceReferences": {
180
+ "type": "array",
181
+ "maxItems": 20,
182
+ "items": {
183
+ "type": "object",
184
+ "additionalProperties": false,
185
+ "required": ["trajectoryId", "revision", "capsuleHash"],
186
+ "properties": {
187
+ "trajectoryId": { "type": "string", "format": "uuid" },
188
+ "revision": { "type": "integer", "minimum": 1 },
189
+ "capsuleHash": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" }
190
+ }
191
+ }
192
+ },
193
+ "authority": {
194
+ "type": "object",
195
+ "additionalProperties": false,
196
+ "required": [
197
+ "readPaths",
198
+ "writePaths",
199
+ "commands",
200
+ "network",
201
+ "git"
202
+ ],
203
+ "properties": {
204
+ "readPaths": {
205
+ "type": "array",
206
+ "items": {
207
+ "type": "string"
208
+ }
209
+ },
210
+ "writePaths": {
211
+ "type": "array",
212
+ "items": {
213
+ "type": "string"
214
+ }
215
+ },
216
+ "commands": {
217
+ "type": "array",
218
+ "items": {
219
+ "type": "object",
220
+ "additionalProperties": false,
221
+ "required": ["commandId"],
222
+ "properties": {
223
+ "commandId": {
224
+ "type": "string",
225
+ "minLength": 1,
226
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$"
227
+ }
228
+ }
229
+ }
230
+ },
231
+ "network": {
232
+ "type": "string",
233
+ "enum": [
234
+ "deny",
235
+ "package_registry_only",
236
+ "allowlisted_domains",
237
+ "inherit_local_provider"
238
+ ]
239
+ },
240
+ "git": {
241
+ "type": "string",
242
+ "enum": [
243
+ "read_only",
244
+ "task_branch",
245
+ "merge_allowed",
246
+ "deploy_allowed"
247
+ ]
248
+ },
249
+ "allowlistedDomains": {
250
+ "type": "array",
251
+ "items": {
252
+ "type": "string"
253
+ },
254
+ "default": []
255
+ }
256
+ }
257
+ },
258
+ "execution": {
259
+ "type": "object",
260
+ "additionalProperties": false,
261
+ "required": [
262
+ "isolation",
263
+ "timeoutSeconds",
264
+ "leaseSeconds",
265
+ "maximumConcurrentAgents"
266
+ ],
267
+ "properties": {
268
+ "isolation": {
269
+ "const": "git_worktree"
270
+ },
271
+ "timeoutSeconds": {
272
+ "type": "integer",
273
+ "minimum": 1
274
+ },
275
+ "leaseSeconds": {
276
+ "type": "integer",
277
+ "minimum": 1
278
+ },
279
+ "maximumConcurrentAgents": {
280
+ "type": "integer",
281
+ "minimum": 1
282
+ }
283
+ }
284
+ },
285
+ "acceptance": {
286
+ "type": "object",
287
+ "additionalProperties": false,
288
+ "required": [
289
+ "commands",
290
+ "requiredArtifacts"
291
+ ],
292
+ "properties": {
293
+ "commands": {
294
+ "type": "array",
295
+ "items": {
296
+ "type": "object",
297
+ "additionalProperties": false,
298
+ "required": ["commandId"],
299
+ "properties": {
300
+ "commandId": {
301
+ "type": "string",
302
+ "minLength": 1,
303
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$"
304
+ }
305
+ }
306
+ }
307
+ },
308
+ "requiredArtifacts": {
309
+ "type": "array",
310
+ "items": {
311
+ "type": "string"
312
+ }
313
+ }
314
+ }
315
+ },
316
+ "budget": {
317
+ "type": "object",
318
+ "additionalProperties": false,
319
+ "required": [
320
+ "mode",
321
+ "maximumDharmaCostCents"
322
+ ],
323
+ "properties": {
324
+ "mode": {
325
+ "type": "string",
326
+ "enum": [
327
+ "byok_local",
328
+ "byok_cloud",
329
+ "dharma_managed"
330
+ ]
331
+ },
332
+ "maximumDharmaCostCents": {
333
+ "type": "integer",
334
+ "minimum": 0
335
+ },
336
+ "maximumProviderCostCents": {
337
+ "type": [
338
+ "integer",
339
+ "null"
340
+ ],
341
+ "minimum": 0
342
+ }
343
+ }
344
+ },
345
+ "createdAt": {
346
+ "type": "string",
347
+ "format": "date-time"
348
+ },
349
+ "expiresAt": {
350
+ "type": "string",
351
+ "format": "date-time"
352
+ },
353
+ "nonce": {
354
+ "type": "string",
355
+ "minLength": 1
356
+ },
357
+ "signature": {
358
+ "type": [
359
+ "string",
360
+ "null"
361
+ ]
362
+ }
363
+ },
364
+ "allOf": [
365
+ {
366
+ "if": {
367
+ "properties": { "taskType": { "const": "a2a_handoff" } },
368
+ "required": ["taskType"]
369
+ },
370
+ "then": {
371
+ "required": ["source", "stateEnvelope", "evidenceReferences"]
372
+ },
373
+ "else": {
374
+ "not": {
375
+ "anyOf": [
376
+ { "required": ["source"] },
377
+ { "required": ["stateEnvelope"] },
378
+ { "required": ["evidenceReferences"] }
379
+ ]
380
+ }
381
+ }
382
+ }
383
+ ]
384
+ }
@@ -0,0 +1,281 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.dharma-ai.io/trajectory-capsule/v1",
4
+ "title": "Dharma Trajectory Capsule",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schema",
9
+ "trajectoryId",
10
+ "revision",
11
+ "organizationId",
12
+ "deviceId",
13
+ "workspaceId",
14
+ "provider",
15
+ "sessionId",
16
+ "timeRange",
17
+ "status",
18
+ "evidenceMode",
19
+ "coverage",
20
+ "events",
21
+ "contentIndex",
22
+ "redactionReceipt",
23
+ "localEvidenceAvailable",
24
+ "capsuleHash",
25
+ "createdAt"
26
+ ],
27
+ "properties": {
28
+ "schema": {
29
+ "const": "dharma.trajectory-capsule/v1"
30
+ },
31
+ "trajectoryId": {
32
+ "type": "string",
33
+ "format": "uuid"
34
+ },
35
+ "revision": {
36
+ "type": "integer",
37
+ "minimum": 1
38
+ },
39
+ "previousRevisionHash": {
40
+ "type": [
41
+ "string",
42
+ "null"
43
+ ],
44
+ "pattern": "^(sha256|blake3):[A-Fa-f0-9]{32,128}$"
45
+ },
46
+ "organizationId": {
47
+ "type": "string",
48
+ "minLength": 1
49
+ },
50
+ "deviceId": {
51
+ "type": "string",
52
+ "minLength": 1
53
+ },
54
+ "workspaceId": {
55
+ "type": "string",
56
+ "minLength": 1
57
+ },
58
+ "provider": {
59
+ "type": "string"
60
+ },
61
+ "sessionId": {
62
+ "type": "string",
63
+ "minLength": 1
64
+ },
65
+ "taskId": {
66
+ "type": [
67
+ "string",
68
+ "null"
69
+ ]
70
+ },
71
+ "timeRange": {
72
+ "type": "object",
73
+ "additionalProperties": false,
74
+ "required": [
75
+ "start",
76
+ "end"
77
+ ],
78
+ "properties": {
79
+ "start": {
80
+ "type": "string",
81
+ "format": "date-time"
82
+ },
83
+ "end": {
84
+ "type": "string",
85
+ "format": "date-time"
86
+ }
87
+ }
88
+ },
89
+ "status": {
90
+ "type": "string",
91
+ "enum": [
92
+ "open",
93
+ "completed",
94
+ "failed",
95
+ "cancelled",
96
+ "partial"
97
+ ]
98
+ },
99
+ "evidenceMode": {
100
+ "type": "string",
101
+ "enum": [
102
+ "structured",
103
+ "deep",
104
+ "reduced_full_session",
105
+ "incident_capture"
106
+ ]
107
+ },
108
+ "coverage": {
109
+ "type": "object",
110
+ "additionalProperties": false,
111
+ "required": [
112
+ "state",
113
+ "admittedSessions",
114
+ "excludedSessions",
115
+ "missingFields"
116
+ ],
117
+ "properties": {
118
+ "state": {
119
+ "type": "string",
120
+ "enum": [
121
+ "observed",
122
+ "partial",
123
+ "unavailable"
124
+ ]
125
+ },
126
+ "admittedSessions": {
127
+ "type": "integer",
128
+ "minimum": 0
129
+ },
130
+ "excludedSessions": {
131
+ "type": "integer",
132
+ "minimum": 0
133
+ },
134
+ "missingFields": {
135
+ "type": "array",
136
+ "items": {
137
+ "type": "string"
138
+ },
139
+ "uniqueItems": true
140
+ }
141
+ }
142
+ },
143
+ "repoState": {
144
+ "type": "object"
145
+ },
146
+ "skillState": {
147
+ "type": "object"
148
+ },
149
+ "events": {
150
+ "type": "array",
151
+ "items": {
152
+ "$ref": "https://schemas.dharma-ai.io/agent-event/v1"
153
+ }
154
+ },
155
+ "contentIndex": {
156
+ "type": "array",
157
+ "items": {
158
+ "type": "object",
159
+ "additionalProperties": false,
160
+ "required": [
161
+ "contentId",
162
+ "kind",
163
+ "bytes",
164
+ "uploaded",
165
+ "availableLocally"
166
+ ],
167
+ "properties": {
168
+ "contentId": {
169
+ "type": "string",
170
+ "pattern": "^(sha256|blake3):[A-Fa-f0-9]{32,128}$"
171
+ },
172
+ "kind": {
173
+ "type": "string"
174
+ },
175
+ "bytes": {
176
+ "type": "integer",
177
+ "minimum": 0
178
+ },
179
+ "uploaded": {
180
+ "type": "boolean"
181
+ },
182
+ "availableLocally": {
183
+ "type": "boolean"
184
+ },
185
+ "mimeType": {
186
+ "type": [
187
+ "string",
188
+ "null"
189
+ ]
190
+ },
191
+ "normalizedPath": {
192
+ "type": [
193
+ "string",
194
+ "null"
195
+ ]
196
+ }
197
+ }
198
+ }
199
+ },
200
+ "validationResults": {
201
+ "type": "array",
202
+ "items": {
203
+ "type": "object"
204
+ },
205
+ "default": []
206
+ },
207
+ "redactionReceipt": {
208
+ "type": "object",
209
+ "additionalProperties": false,
210
+ "required": [
211
+ "policyRevision",
212
+ "classes",
213
+ "redactedValues",
214
+ "excludedPaths",
215
+ "inputBytes",
216
+ "outputBytes"
217
+ ],
218
+ "properties": {
219
+ "policyRevision": {
220
+ "type": "string"
221
+ },
222
+ "classes": {
223
+ "type": "array",
224
+ "items": {
225
+ "type": "string"
226
+ },
227
+ "uniqueItems": true
228
+ },
229
+ "redactedValues": {
230
+ "type": "integer",
231
+ "minimum": 0
232
+ },
233
+ "excludedPaths": {
234
+ "type": "integer",
235
+ "minimum": 0
236
+ },
237
+ "inputBytes": {
238
+ "type": "integer",
239
+ "minimum": 0
240
+ },
241
+ "outputBytes": {
242
+ "type": "integer",
243
+ "minimum": 0
244
+ }
245
+ }
246
+ },
247
+ "localEvidenceAvailable": {
248
+ "type": "array",
249
+ "items": {
250
+ "type": "object",
251
+ "additionalProperties": false,
252
+ "required": [
253
+ "contentId",
254
+ "kind",
255
+ "bytes"
256
+ ],
257
+ "properties": {
258
+ "contentId": {
259
+ "type": "string",
260
+ "pattern": "^(sha256|blake3):[A-Fa-f0-9]{32,128}$"
261
+ },
262
+ "kind": {
263
+ "type": "string"
264
+ },
265
+ "bytes": {
266
+ "type": "integer",
267
+ "minimum": 0
268
+ }
269
+ }
270
+ }
271
+ },
272
+ "capsuleHash": {
273
+ "type": "string",
274
+ "pattern": "^(sha256|blake3):[A-Fa-f0-9]{32,128}$"
275
+ },
276
+ "createdAt": {
277
+ "type": "string",
278
+ "format": "date-time"
279
+ }
280
+ }
281
+ }
package/package.json ADDED
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "@dharma-ai-labs/agent-fabric",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "bin": { "dharma": "dist/index.js" },
8
+ "engines": { "node": ">=22.20.0 <25.0.0", "npm": ">=10.9.3 <12.0.0" },
9
+ "repository": { "type": "git", "url": "git+https://github.com/dharma-ai-labs/dharma-agent-fabric.git", "directory": "packages/cli" },
10
+ "files": ["dist"],
11
+ "publishConfig": { "access": "public", "provenance": true },
12
+ "scripts": { "test": "node --test dist/*.test.js" },
13
+ "dependencies": {
14
+ "@dharma-ai-labs/agent-fabric-contracts": "0.1.0",
15
+ "@dharma-ai-labs/agent-fabric-evidence-reduction": "0.1.0",
16
+ "@dharma-ai-labs/agent-fabric-local-vault": "0.1.0",
17
+ "@dharma-ai-labs/agent-fabric-policy": "0.1.0",
18
+ "@dharma-ai-labs/agent-fabric-provider-adapters": "0.1.0",
19
+ "@dharma-ai-labs/agent-fabric-relay-client": "0.1.0",
20
+ "@dharma-ai-labs/agent-fabric-skill-manager": "0.1.0",
21
+ "@dharma-ai-labs/agent-fabric-task-runner": "0.1.0"
22
+ }
23
+ }