@dharma-ai-labs/agent-fabric 0.2.108 → 0.2.110

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 (57) hide show
  1. package/README.md +41 -0
  2. package/dist/codexBoundSession.d.ts.map +1 -1
  3. package/dist/codexBoundSession.js +2 -0
  4. package/dist/codexBoundSession.js.map +1 -1
  5. package/dist/codexBoundSession.test.js +509 -492
  6. package/dist/codexBoundSession.test.js.map +1 -1
  7. package/dist/codexInboxSession.d.ts +1 -1
  8. package/dist/cooperativeInboxSession.d.ts +1 -1
  9. package/dist/demoEnrollment.d.ts +2 -1
  10. package/dist/demoEnrollment.d.ts.map +1 -1
  11. package/dist/demoEnrollment.js +99 -21
  12. package/dist/demoEnrollment.js.map +1 -1
  13. package/dist/demoEnrollment.test.js +288 -2
  14. package/dist/demoEnrollment.test.js.map +1 -1
  15. package/dist/demoPackage.js +1 -1
  16. package/dist/demoPackage.js.map +1 -1
  17. package/dist/demoSigningTrust.d.ts +24 -0
  18. package/dist/demoSigningTrust.d.ts.map +1 -0
  19. package/dist/demoSigningTrust.js +326 -0
  20. package/dist/demoSigningTrust.js.map +1 -0
  21. package/dist/demoSigningTrust.test.d.ts +2 -0
  22. package/dist/demoSigningTrust.test.d.ts.map +1 -0
  23. package/dist/demoSigningTrust.test.js +445 -0
  24. package/dist/demoSigningTrust.test.js.map +1 -0
  25. package/dist/demoSigningUpgradeProof.d.ts +52 -0
  26. package/dist/demoSigningUpgradeProof.d.ts.map +1 -0
  27. package/dist/demoSigningUpgradeProof.js +137 -0
  28. package/dist/demoSigningUpgradeProof.js.map +1 -0
  29. package/dist/demoSigningUpgradeProof.test.d.ts +2 -0
  30. package/dist/demoSigningUpgradeProof.test.d.ts.map +1 -0
  31. package/dist/demoSigningUpgradeProof.test.js +564 -0
  32. package/dist/demoSigningUpgradeProof.test.js.map +1 -0
  33. package/dist/demoSigningUpgradeSubmission.d.ts +21 -0
  34. package/dist/demoSigningUpgradeSubmission.d.ts.map +1 -0
  35. package/dist/demoSigningUpgradeSubmission.js +178 -0
  36. package/dist/demoSigningUpgradeSubmission.js.map +1 -0
  37. package/dist/demoSupervisor.d.ts.map +1 -1
  38. package/dist/demoSupervisor.js +2 -1
  39. package/dist/demoSupervisor.js.map +1 -1
  40. package/dist/demoSupervisor.test.js +35 -0
  41. package/dist/demoSupervisor.test.js.map +1 -1
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +17 -3
  44. package/dist/index.js.map +1 -1
  45. package/dist/index.test.js +3 -2
  46. package/dist/index.test.js.map +1 -1
  47. package/dist/providerSessionReplyRecovery.d.ts +1 -1
  48. package/dist/schemas/demo-enrollment-approval.schema.json +19 -0
  49. package/dist/schemas/demo-signing-update.schema.json +18 -0
  50. package/dist/schemas/lifecycle-event.schema.json +178 -0
  51. package/dist/schemas/signing-upgrade-context.schema.json +28 -0
  52. package/dist/schemas/signing-upgrade-source.schema.json +32 -0
  53. package/dist/usage.d.ts +1 -1
  54. package/dist/usage.d.ts.map +1 -1
  55. package/dist/usage.js +1 -1
  56. package/dist/usage.js.map +1 -1
  57. package/package.json +5 -4
package/README.md CHANGED
@@ -31,6 +31,47 @@ is sent. An acknowledged message proves delivery, not that the recipient agent
31
31
  used or correctly applied the answer. The Demo peer transport is separate from
32
32
  the signed package, knowledge, Atlas, and autonomous-update readiness gates.
33
33
 
34
+ ## Signing Upgrade Proof Preparation
35
+
36
+ For a reviewed Demo signing-consumer upgrade, an operator supplies the bounded
37
+ `dharma.signing-upgrade-context/v1` review JSON for the exact organization and
38
+ repository. It identifies the candidate, predecessor, installed preload hash,
39
+ unchanged original-client inventory, current and requested consumer versions,
40
+ and a proof expiry no more than 15 minutes away. This file is a review request,
41
+ not authorization. Never put a grant, credential or private key in it.
42
+
43
+ ```bash
44
+ dharma demo signing-client-proof --organization-id <org> --repository-id <repo> --normalized-repository <normalized-remote> --review-context <review.json>
45
+ dharma demo signing-client-proof --organization-id <org> --repository-id <repo> --normalized-repository <normalized-remote> --review-context <review.json> --submit
46
+ dharma demo signing-owner-proof --organization-id <org> --repository-id <repo> --normalized-repository <normalized-remote> --review-context <review.json>
47
+ ```
48
+
49
+ `--submit` records only an original enrolled client's signing-upgrade proof. It
50
+ uses the existing device key and still-valid protected preload, verifies the
51
+ exact server receipt, and preserves the same pending proof for a grant-free
52
+ retry after a lost response. Run the same command with the same review context
53
+ to resume; do not delete the pending proof or change trust files. A recorded
54
+ proof is not activation. Owner proofs still require explicit ordinary-session
55
+ browser review; `signing-owner-proof --submit` is rejected. Expired trust requires
56
+ browser-authorized re-enrollment, not a locally extended anchor.
57
+
58
+ Both commands verify the current Git remote, use the existing enrolled device
59
+ and protected, still-valid preload, and read versions from the actual installed
60
+ CLI/contracts packages. `--dry-run` verifies the repository scope and reports
61
+ only a plan; it does not attest installed trust or issue a signature.
62
+
63
+ Without `--submit`, the JSON result has `stage: "proof_prepared"` and
64
+ `submitted: false`. It contains
65
+ the device signature and source hash, not enrollment credentials. Preparing an
66
+ owner proof does not prove owner authority or approve rotation: the current
67
+ owner must separately review and confirm it in the ordinary browser session.
68
+ The server must independently check current access, preload and inventory for
69
+ every submitted source and final registration. Only client `--submit` sends the
70
+ proof. Neither command rotates or activates keys, extends trust, replaces an original client, alters
71
+ financial records, or bypass browser approval. Missing OS credentials or a
72
+ missing protected signing anchor fail without recreating them. Expired trust requires supported
73
+ browser-authorized re-enrollment, never editing local trust files.
74
+
34
75
  ## Autonomous organization setup
35
76
 
36
77
  Requires Node.js 22.20.0 through 24.x.
@@ -1 +1 @@
1
- {"version":3,"file":"codexBoundSession.d.ts","sourceRoot":"","sources":["../src/codexBoundSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACxH,OAAO,KAAK,EAAE,4BAA4B,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AACzG,OAAO,EAA0B,KAAK,kBAAkB,EAAE,MAAM,2EAA2E,CAAC;AAC5I,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6EAA6E,CAAC;AAEvH,UAAU,sBAAsB;IAC9B,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,4BAA4B,CAAC;IAEvC,aAAa,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC9C,QAAQ,EAAE,uBAAuB,CAAC;IAClC,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAED,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,sBAAsB;;;yBAkC1C;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,IAAI,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;;;;;;;;GA0BnF;AAED,wBAAsB,4BAA4B,CAAC,KAAK,EAAE,sBAAsB,GAAG;IACjF,QAAQ,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;;;;;;;GAmBA"}
1
+ {"version":3,"file":"codexBoundSession.d.ts","sourceRoot":"","sources":["../src/codexBoundSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACxH,OAAO,KAAK,EAAE,4BAA4B,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AACzG,OAAO,EAA0B,KAAK,kBAAkB,EAAE,MAAM,2EAA2E,CAAC;AAC5I,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6EAA6E,CAAC;AAEvH,UAAU,sBAAsB;IAC9B,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,4BAA4B,CAAC;IAEvC,aAAa,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC9C,QAAQ,EAAE,uBAAuB,CAAC;IAClC,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAED,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,sBAAsB;;;yBAmC1C;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,IAAI,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;;;;;;;;GA0BnF;AAED,wBAAsB,4BAA4B,CAAC,KAAK,EAAE,sBAAsB,GAAG;IACjF,QAAQ,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;;;;;;;GAmBA"}
@@ -5,6 +5,8 @@ export async function openCodexBoundSession(input) {
5
5
  if (!binding || binding.provider !== 'codex' || binding.owner !== 'dharma_bridge') {
6
6
  throw new Error('codex_session_binding_unavailable');
7
7
  }
8
+ if (process.platform !== 'linux')
9
+ throw new Error('codex_session_sandbox_unqualified');
8
10
  const codexBinding = { ...binding, threadId: binding.sessionId };
9
11
  const lease = input.vault.tryAcquireProviderSessionLease(input.bindingId, input.identity);
10
12
  if (!lease)
@@ -1 +1 @@
1
- {"version":3,"file":"codexBoundSession.js","sourceRoot":"","sources":["../src/codexBoundSession.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codexBoundSession.js","sourceRoot":"","sources":["../src/codexBoundSession.ts"],"names":[],"mappings":"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"}