@passioncode-ai/fabric-agent-adapter 0.80.2 → 0.82.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 (92) hide show
  1. package/CHANGELOG.md +157 -0
  2. package/README.md +18 -5
  3. package/SECURITY.md +25 -8
  4. package/bin/fabric-agent-adapter.js +24 -1
  5. package/package.json +1 -1
  6. package/plugins/fabric-agent-adapter/.claude-plugin/plugin.json +1 -1
  7. package/plugins/fabric-agent-adapter/skills/adapting-projects-to-fabric/SKILL.md +6 -4
  8. package/plugins/fabric-agent-adapter/skills/adapting-projects-to-fabric/references/dashboard-links.md +16 -3
  9. package/plugins/fabric-agent-adapter/skills/adapting-projects-to-fabric/references/source-and-instance.md +44 -7
  10. package/plugins/fabric-agent-adapter/skills/adapting-projects-to-fabric/scripts/adapt_project.py +116 -4
  11. package/plugins/fabric-agent-adapter/skills/adapting-projects-to-fabric/scripts/check_dashboard_link.py +33 -3
  12. package/plugins/fabric-agent-adapter/skills/adapting-projects-to-fabric/scripts/fabric_secrets.py +257 -10
  13. package/plugins/fabric-agent-adapter/skills/adapting-projects-to-fabric/scripts/fabric_source_check.py +57 -77
  14. package/plugins/fabric-agent-adapter/skills/adapting-projects-to-fabric/scripts/fabric_source_restart.py +56 -0
  15. package/plugins/fabric-agent-adapter/skills/adapting-projects-to-fabric/scripts/fabric_source_tree.py +899 -0
  16. package/plugins/fabric-agent-adapter/skills/adapting-projects-to-fabric/scripts/new_agent.py +308 -0
  17. package/plugins/fabric-agent-adapter/skills/building-fabric-services/SKILL.md +7 -4
  18. package/plugins/fabric-agent-adapter/skills/building-fabric-services/assets/dashboard-kit/fabric-button.js +23 -5
  19. package/plugins/fabric-agent-adapter/skills/building-fabric-services/assets/dashboard-kit/fabric-dashboard.css +1 -1
  20. package/plugins/fabric-agent-adapter/skills/building-fabric-services/assets/dashboard-kit/fabric-dashboard.js +2 -2
  21. package/plugins/fabric-agent-adapter/skills/building-fabric-services/assets/dashboard-kit/kit.json +9 -4
  22. package/plugins/fabric-agent-adapter/skills/building-fabric-services/recipes/support-agent/README.md +1 -1
  23. package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/board.md +4 -2
  24. package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/dashboard-kit.md +15 -2
  25. package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/dashboard-links.md +16 -3
  26. package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/delegation.md +5 -2
  27. package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/interop.md +28 -0
  28. package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/kit-modules.md +4 -3
  29. package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/lifecycle.md +47 -10
  30. package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/migrating-a-service.md +1 -0
  31. package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/package.md +10 -0
  32. package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/protocol.md +31 -8
  33. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/check_dashboard_layout.mjs +21 -0
  34. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/check_dashboard_link.py +33 -3
  35. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/check_service.py +19 -28
  36. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/check_service_channel_agent.py +9 -6
  37. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/check_service_rules.py +146 -3
  38. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-connections.mjs +3 -2
  39. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-delegation.mjs +2 -0
  40. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-descriptor.mjs +79 -2
  41. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-holds.mjs +269 -0
  42. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-http.mjs +64 -5
  43. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-hub.mjs +16 -7
  44. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-lock.mjs +73 -3
  45. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-package.mjs +98 -1
  46. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-peer-owner.mjs +89 -22
  47. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-protocols.mjs +1 -1
  48. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-secrets.mjs +39 -6
  49. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-service.mjs +8 -0
  50. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-supervisors.mjs +76 -11
  51. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_connections.py +8 -153
  52. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_descriptor.py +86 -2
  53. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_holds.py +324 -0
  54. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_http.py +34 -3
  55. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_hub.py +35 -17
  56. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_lock.py +77 -4
  57. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_package.py +103 -1
  58. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_peer_owner.py +156 -133
  59. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_protocols.py +1 -1
  60. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_secrets.py +257 -10
  61. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_service.py +6 -0
  62. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_supervisors.py +64 -3
  63. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/kit.json +246 -24
  64. package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/SKILL.md +16 -6
  65. package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/references/agent-templates.md +44 -0
  66. package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/references/communication-agent-template.md +19 -328
  67. package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/references/dashboard-links.md +16 -3
  68. package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/references/models-and-providers.md +1 -1
  69. package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/references/new-agent.md +42 -0
  70. package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/references/source-and-instance.md +44 -7
  71. package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/schemas/template/access.schema.json +50 -0
  72. package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/schemas/template/connections.schema.json +23 -0
  73. package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/schemas/template/data-rooms.schema.json +74 -0
  74. package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/schemas/template/manifest.schema.json +170 -0
  75. package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/schemas/template/template-header.schema.json +25 -0
  76. package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/scripts/check_dashboard_link.py +33 -3
  77. package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/scripts/template_check.py +491 -0
  78. package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/templates/communication-agent/CHANGELOG.md +7 -0
  79. package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/templates/communication-agent/TEMPLATE.md +347 -0
  80. package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/templates/communication-agent/access.json +24 -0
  81. package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/templates/communication-agent/assembly.md +15 -0
  82. package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/templates/communication-agent/checks/acceptance.md +17 -0
  83. package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/templates/communication-agent/connections.json +29 -0
  84. package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/templates/communication-agent/data-rooms.json +9 -0
  85. package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/templates/communication-agent/manifest.json +32 -0
  86. package/plugins/fabric-agent-adapter/skills/observing-products/SKILL.md +1 -1
  87. package/plugins/fabric-agent-adapter/skills/working-with-fabric/SKILL.md +2 -2
  88. package/plugins/fabric-agent-adapter/skills/working-with-fabric/references/on-demand-session.md +16 -8
  89. package/plugins/fabric-agent-adapter/skills/working-with-fabric/references/project-board.md +46 -31
  90. package/plugins/fabric-agent-adapter/skills/working-with-fabric/references/session-hooks.md +1 -1
  91. package/plugins/fabric-agent-adapter/skills/working-with-fabric/scripts/fabric_session_cli.py +18 -16
  92. package/plugins/fabric-agent-adapter/skills/working-with-fabric/scripts/fabric_session_env.py +23 -13
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fabric-service-kit",
3
- "version": "0.80.2",
3
+ "version": "0.82.0",
4
4
  "about": "The service kit's modules in dependency order: a module imports only modules listed before it. Written by fabric_kit.py build; edit the order and layers by hand, never the digests.",
5
5
  "python": [
6
6
  {
@@ -31,14 +31,14 @@
31
31
  "file": "fabric_secrets.py",
32
32
  "layer": "L0",
33
33
  "imports": [],
34
- "sha256": "c42c92ad4010de69056cdc8f1e6cf4732c510dd158ba93af14d853d46a3e66ca"
34
+ "sha256": "2ebbd53d4b162fb41586b07ccc31534cbc3a9c6632a4ff84f56d29e90bd4294f"
35
35
  },
36
36
  {
37
37
  "module": "fabric_peer_owner",
38
38
  "file": "fabric_peer_owner.py",
39
39
  "layer": "L0",
40
40
  "imports": [],
41
- "sha256": "a6b6b9bebf8c6fe567a898cf20a6d2d8e8f76a755e7f872609587ca0bfe2678e"
41
+ "sha256": "7e007a74ab166e06046610c5961c134e523247e6d1ed010934369b7b27642bfc"
42
42
  },
43
43
  {
44
44
  "module": "fabric_tailnet",
@@ -180,7 +180,7 @@
180
180
  "fabric_package_schema",
181
181
  "fabric_secrets"
182
182
  ],
183
- "sha256": "1f2b9e73b2b32a7e1e887d4b69f87c6e21b4d1227ad924a235334223e6dd51ca"
183
+ "sha256": "8b835fcf173b8c345ea6d229edf8ebb98b0f94e9af4894c4a6bd1301f175e2b1"
184
184
  },
185
185
  {
186
186
  "module": "fabric_protocols",
@@ -189,7 +189,7 @@
189
189
  "imports": [
190
190
  "fabric_secrets"
191
191
  ],
192
- "sha256": "077c6f03f3b887a2e22d9ce6b5bd3750199d71a29d4c82b1d5af8a615b509d93"
192
+ "sha256": "3cba881f6f3468e8d8a8455a5d54c5567e748c37291211a1c7f22d195ea562c4"
193
193
  },
194
194
  {
195
195
  "module": "fabric_actions",
@@ -211,7 +211,7 @@
211
211
  "fabric_base",
212
212
  "fabric_secrets"
213
213
  ],
214
- "sha256": "5499d421c658f8bf00241e5e2291bd02d9ea473a229a812de3d3de9a62562ae6"
214
+ "sha256": "ca6a4735b21d285a3ef2c60724f3ead08f5aa707fdfaa3cb5757e02a226132a0"
215
215
  },
216
216
  {
217
217
  "module": "fabric_a2a",
@@ -257,7 +257,7 @@
257
257
  "fabric_paths",
258
258
  "fabric_platform"
259
259
  ],
260
- "sha256": "10d6a2321ac8da47fc6f5bb01b32e2f8c8c966ef6d7145cf3b12bd35156bd650"
260
+ "sha256": "6dac051969f2c331f7cc6a90b6bb1a506a5a23a4082425d07e708ce6682aedfb"
261
261
  },
262
262
  {
263
263
  "module": "fabric_usage",
@@ -298,7 +298,7 @@
298
298
  "fabric_secrets",
299
299
  "fabric_usage"
300
300
  ],
301
- "sha256": "53251b72d3849e609b31a15d7d2abe3aa6f8be817a76170c5adca012cfd4e799"
301
+ "sha256": "10728dffb641c267a6dd89e47f84aed7e8cc28a00189e6545432c683bc33d85c"
302
302
  },
303
303
  {
304
304
  "module": "fabric_context",
@@ -359,7 +359,7 @@
359
359
  "fabric_peer_owner",
360
360
  "fabric_secrets"
361
361
  ],
362
- "sha256": "a24148ff243608d987abae96f82a371ba3a7fb92716d55fc65c649b9ac2634b1"
362
+ "sha256": "e5e77c7ddac742fd1882d42be33eb694906e7eb869abbee0e825d4f687936698"
363
363
  },
364
364
  {
365
365
  "module": "fabric_service",
@@ -384,7 +384,7 @@
384
384
  "fabric_time",
385
385
  "fabric_usage"
386
386
  ],
387
- "sha256": "1d997c92acde1465494b5c47fd602d3af8e66bbdff7bc1322e2160e137c09408"
387
+ "sha256": "fb6bccc9f330df26a53287023da2ce4947f85e6b4fb2437db01c429ec809454d"
388
388
  },
389
389
  {
390
390
  "module": "fabric_profiles",
@@ -430,6 +430,19 @@
430
430
  ],
431
431
  "sha256": "2b4d6c144f496dbd8788f616de9956bb8b6e89290713c406aa601511c82f4a46"
432
432
  },
433
+ {
434
+ "module": "fabric_holds",
435
+ "file": "fabric_holds.py",
436
+ "layer": "L3",
437
+ "imports": [
438
+ "fabric_actions",
439
+ "fabric_base",
440
+ "fabric_interop_rules",
441
+ "fabric_paths",
442
+ "fabric_secrets"
443
+ ],
444
+ "sha256": "277533ec3bf1766a5a583d852dec9a048f63d9a8d1984cfc6e32df3218849c59"
445
+ },
433
446
  {
434
447
  "module": "fabric_hub",
435
448
  "file": "fabric_hub.py",
@@ -439,7 +452,7 @@
439
452
  "fabric_peer_owner",
440
453
  "fabric_service"
441
454
  ],
442
- "sha256": "484d0480e2ae2b82f62647104e1383576646f226045a444d4c9dc1c5e5c7eee2"
455
+ "sha256": "8809de7a2add22f4ce28bee5191458502e7b3bcf96efd3ad67b60de1aaaa529d"
443
456
  },
444
457
  {
445
458
  "module": "fabric_board_shapes",
@@ -516,7 +529,7 @@
516
529
  "fabric_jsvalue",
517
530
  "fabric_peer_owner"
518
531
  ],
519
- "sha256": "b2f5bbfa404c543cba9ca6b56773440e06f42c7f5b9e0bca7ca780621f7b4522"
532
+ "sha256": "5a6d5ccfb76239777ef4d95fe60f96dcb156e2b8fad329a7f83a85c5c9ac4a61"
520
533
  },
521
534
  {
522
535
  "module": "fabric_openrouter",
@@ -557,14 +570,14 @@
557
570
  "file": "fabric-secrets.mjs",
558
571
  "layer": "L0",
559
572
  "imports": [],
560
- "sha256": "60fe70b64e1fc6a9802e533679af9d2a6623f51fe96aae72cdd6d655712d0845"
573
+ "sha256": "af4b7023c20eb40d418a431f60a5ab94a0618b01891051aacc13772e97532297"
561
574
  },
562
575
  {
563
576
  "module": "fabric-peer-owner",
564
577
  "file": "fabric-peer-owner.mjs",
565
578
  "layer": "L0",
566
579
  "imports": [],
567
- "sha256": "a834f8f0f3b9abce069ba230a251001f6f802dd7e60a7a6a91abb562e1f54bb5"
580
+ "sha256": "c58f444df44df74f8d755d95fbb3c751ccc856c5fc2fc4e178a44df26cdd12d7"
568
581
  },
569
582
  {
570
583
  "module": "fabric-tailnet",
@@ -654,7 +667,7 @@
654
667
  "fabric-paths",
655
668
  "fabric-peer-owner"
656
669
  ],
657
- "sha256": "27b8f28d072c756b60f5cb90957e22700500dc8eb86ba18bd61c451e6788390b"
670
+ "sha256": "fbfefe8f48f9f926f6ecfe8dce1e2781eba2f4c4abef6eeec3f52837246344b6"
658
671
  },
659
672
  {
660
673
  "module": "fabric-share",
@@ -704,7 +717,7 @@
704
717
  "fabric-package-schema",
705
718
  "fabric-secrets"
706
719
  ],
707
- "sha256": "8cfb32eebbd4e1bcf28a6e4437344ae2dd54479b0e7c820f002e9f94ab9ecaad"
720
+ "sha256": "aa75c4f6ff3dade68a47c6187666332a3845b3f5da98b50e3da7824d918e941f"
708
721
  },
709
722
  {
710
723
  "module": "fabric-protocols",
@@ -713,7 +726,7 @@
713
726
  "imports": [
714
727
  "fabric-secrets"
715
728
  ],
716
- "sha256": "a560b7d6eb0d26204c5536711c3dda9daae90cc91e07cdc75412e75c86272767"
729
+ "sha256": "26eeb8c63e9881d8fa56389455626f2bb80725bbc25b9d6ed756af88c05a848e"
717
730
  },
718
731
  {
719
732
  "module": "fabric-actions",
@@ -736,7 +749,7 @@
736
749
  "fabric-jsvalue",
737
750
  "fabric-secrets"
738
751
  ],
739
- "sha256": "303432e547ce563e90ca9ffcd827f5612f51d3582929834e1add0fdaf6485dcc"
752
+ "sha256": "dd82998d7b854bfb4a11fa0fc442357e1037e379f849a91ec21f0f81d73a82fb"
740
753
  },
741
754
  {
742
755
  "module": "fabric-a2a",
@@ -780,7 +793,7 @@
780
793
  "fabric-base",
781
794
  "fabric-paths"
782
795
  ],
783
- "sha256": "cf79c3aed04dfd36833929f7edd76404976699ac7a8fe38820f0fa02fc2243be"
796
+ "sha256": "ffd569de66d214c18f2b739e1e5fd169d84fe8f034fee8ed3d1fcb1cd87325c7"
784
797
  },
785
798
  {
786
799
  "module": "fabric-usage",
@@ -822,7 +835,7 @@
822
835
  "fabric-secrets",
823
836
  "fabric-usage"
824
837
  ],
825
- "sha256": "3316373ecb5f8a5e8caf8f7ed5d60ce4e12d4529add93bc8c8507d7c9008056f"
838
+ "sha256": "d2380f116d62c076c7510a4f1b8fd6e266ac88818d4e841d7f08d4000e819c6b"
826
839
  },
827
840
  {
828
841
  "module": "fabric-context",
@@ -884,7 +897,7 @@
884
897
  "fabric-peer-owner",
885
898
  "fabric-secrets"
886
899
  ],
887
- "sha256": "e6dd1d4e46726fe25151009e0a4ea5a0a048a451307bd8fd3c8d15775ecf377d"
900
+ "sha256": "6d9fecb0f19e82548c991be2e7e76e1bde5405fa34c6606f90025cc14128395e"
888
901
  },
889
902
  {
890
903
  "module": "fabric-service",
@@ -907,7 +920,7 @@
907
920
  "fabric-supervisors",
908
921
  "fabric-usage"
909
922
  ],
910
- "sha256": "1d6388da72798708e3c953ef33bbfae5940c73f71ed70f639261afd526c2d70e"
923
+ "sha256": "0d21b3f6f4a51b3ede576e748d481ab831fec570f629883b95f138c8823ab320"
911
924
  },
912
925
  {
913
926
  "module": "fabric-profiles",
@@ -947,6 +960,19 @@
947
960
  ],
948
961
  "sha256": "989040aed33b2712a258244192bdf70e811a51076aa1b62f2adc2a6db051dbed"
949
962
  },
963
+ {
964
+ "module": "fabric-holds",
965
+ "file": "fabric-holds.mjs",
966
+ "layer": "L3",
967
+ "imports": [
968
+ "fabric-actions",
969
+ "fabric-base",
970
+ "fabric-interop-rules",
971
+ "fabric-paths",
972
+ "fabric-secrets"
973
+ ],
974
+ "sha256": "bab47b2cdad663dc39a581d0d30d33c59bb847016431e18a63b326fefd612160"
975
+ },
950
976
  {
951
977
  "module": "fabric-hub",
952
978
  "file": "fabric-hub.mjs",
@@ -956,7 +982,7 @@
956
982
  "fabric-peer-owner",
957
983
  "fabric-service"
958
984
  ],
959
- "sha256": "081d5b2fda552fe6ee737c22e1e87fa113568cb4e9d864c110a6a0aec758b22f"
985
+ "sha256": "2813beb86f72cc1932601678f81596de16f9876c9d3630874f27addf66d7b082"
960
986
  },
961
987
  {
962
988
  "module": "fabric-board-shapes",
@@ -1032,7 +1058,7 @@
1032
1058
  "imports": [
1033
1059
  "fabric-peer-owner"
1034
1060
  ],
1035
- "sha256": "011c05e2d4838d113ebb8bbf14febca0b1569fd3cc12e2bf1b3cac485e0ef1cd"
1061
+ "sha256": "7bb5e41d2fbd3ba2717946777be7fd91e41ec4514a92aae2351ae8c4f2439476"
1036
1062
  },
1037
1063
  {
1038
1064
  "module": "fabric-openrouter",
@@ -6859,6 +6885,202 @@
6859
6885
  "fabric-openrouter.mjs": "4e3e73a1b8882bdde4cbb311f6f4a5e2f048fa81fa245409a16df1e6cab03e19",
6860
6886
  "fabric-package.schema.json": "2ba799f576fad0f608029223c4ccccd122152f1c5dbfa8ce8b31cd63ac92ad44",
6861
6887
  "share-registration.schema.json": "34b3997eeaf936ebc861342a23045634a7c18c19f01d7ed4198310d81989f5b0"
6888
+ },
6889
+ "0.81.0": {
6890
+ "fabric_jsvalue.py": "052f1b40bab18600b3731dbdca27cbff17588c21d9458fa6241efd1340d0e09a",
6891
+ "fabric_time.py": "588f383da4ac6a243ea95b6ffc3a0aa99ca94245732dc4937734f190b7af4ae9",
6892
+ "fabric_identifiers.py": "0fd814d521ac3aa39907458265870753046a73f48af3d8581ab864b93b211607",
6893
+ "fabric_secrets.py": "b8ee6910591f33456e9bf88415b0ea433c807e0dbb7fa8a92051350e17683f15",
6894
+ "fabric_peer_owner.py": "7e71b9ac8da71da6b31852e4329dc8231075b8f391f04ede2b20900a8cbbb387",
6895
+ "fabric_tailnet.py": "c60416539be0199182f7969c24a37b14d0db50c8ea5e3e04cea43babfb483407",
6896
+ "fabric_crypto.py": "9c34aee20dbe4d6742e4fdbaab68ceb934bbe7dbd3a904c0010824ace16cdeaa",
6897
+ "fabric_base.py": "d8c67f345e30332cce3664af77b0e6e07cd477b78c961ac009e9efee1be7e1b2",
6898
+ "fabric_platform.py": "a9350dff55ef0fb3a23cdb4d0320a15868b15a8deb10d2eb74d72c58740c284b",
6899
+ "fabric_paths.py": "8a1ee742f80f436e9f28c61b4f049a9545de2a9e0d66bfc61faa6ee5d1ba3734",
6900
+ "fabric_estate_rules.py": "8b36a7f4108d9c2b1fb38c8bff344778c807bed631a99b4a563ecb0a49c10b1c",
6901
+ "fabric_estate.py": "0737ae1d1bb12586bae49de1f15ef1348bc207b5007cced9dad4c55bb5870874",
6902
+ "fabric_mandate.py": "fb19ce5359606bd6e3352ab02b2a12f49605ec6e5c49b55cce1f79c831325044",
6903
+ "fabric_delegation.py": "e923be4d2d901d5e0d8bf16b05a637119464009a51cffb247bd20de5e9c1d0c9",
6904
+ "fabric_share.py": "da36a466426fc29dd7dd40013167f3959a18375f8fedd228bf64f298cec1040c",
6905
+ "fabric_ceremonies.py": "a59e83cf4adb2669a9b98008e3d3a0cba991a35cbff97bc604fc82fe81cfd49f",
6906
+ "fabric_package_schema.py": "e623f0408d38e3343ed66222fb812907c6c52e1a286eb1c1176ab2e64640c9ad",
6907
+ "fabric_package.py": "8b835fcf173b8c345ea6d229edf8ebb98b0f94e9af4894c4a6bd1301f175e2b1",
6908
+ "fabric_protocols.py": "3cba881f6f3468e8d8a8455a5d54c5567e748c37291211a1c7f22d195ea562c4",
6909
+ "fabric_actions.py": "ae21d1199614c4f74d1dcd1e0a87107a9d52434cd9e2d64aa24a7b1e196fb723",
6910
+ "fabric_connections.py": "5499d421c658f8bf00241e5e2291bd02d9ea473a229a812de3d3de9a62562ae6",
6911
+ "fabric_a2a.py": "8b01502131215bb4de1c01866187c56e99b791543923ed8577535573db33b919",
6912
+ "fabric_page_links.py": "1b57ea573c550e2f90d1ec3edcc655917ceaa0db9dd1635fccf422ec3024d25e",
6913
+ "fabric_load.py": "0e97b6307108c5877a728be8f0c416686130ce98b31c4dfd5d788d9dc61a8860",
6914
+ "fabric_lock.py": "10d6a2321ac8da47fc6f5bb01b32e2f8c8c966ef6d7145cf3b12bd35156bd650",
6915
+ "fabric_usage.py": "c1a605a84e57c5ab5d3b2bd824412c20219c237dfc4bc13f778f75340905f51e",
6916
+ "fabric_backups.py": "1f3f0d7ecf361b29e9101e07f1c53e5dc304d598bf26fd59ec89f16b9fed2420",
6917
+ "fabric_descriptor.py": "15bc54a6f4419113bead2e482d64f6581d12be0b9eb8e97ede03a7399f6a325e",
6918
+ "fabric_context.py": "59e39fb9fd91f713f6e92ea3ec7e8252107efd148847f05934892158b326db4d",
6919
+ "fabric_auth.py": "74ccc10239b65a3567cec5213a7b344cbd88d6eee1fd1c5f7be1d6daf985993c",
6920
+ "fabric_events.py": "da3fe3e3e19d4c9754b90c719e9c069a3ac85e080b9fffd07adbaf63b5bfcf0d",
6921
+ "fabric_logs.py": "86dc55bfafa2a57264722e2403510a249b95de0e4a722b2e4bc3948e3bd93da9",
6922
+ "fabric_supervisors.py": "e5e77c7ddac742fd1882d42be33eb694906e7eb869abbee0e825d4f687936698",
6923
+ "fabric_service.py": "6ad0c177c2c83a3db5dede248eb10ba0947fffe0b345a9691c3e7db9ee1fba87",
6924
+ "fabric_profiles.py": "26e21ec29c016000f8ca8053b7b489184854a73be1b7fdc0a18d12990203db9b",
6925
+ "fabric_interop_rules.py": "9bdb7989e57b9d0b0d15eb9982d396499823a5e2c528230b71c67866c736e0f5",
6926
+ "fabric_interop.py": "2b4d6c144f496dbd8788f616de9956bb8b6e89290713c406aa601511c82f4a46",
6927
+ "fabric_holds.py": "cf4e8a92b685878adea9af6baf7d40037faee31e5359774b8d8481b8588c8cb3",
6928
+ "fabric_hub.py": "484d0480e2ae2b82f62647104e1383576646f226045a444d4c9dc1c5e5c7eee2",
6929
+ "fabric_board_shapes.py": "0a0e8d3d40e33dfd8c457aedb85330b2ff25f8c49a33eb6cbd5a5cc8a5007f7e",
6930
+ "fabric_board_link.py": "37aacd7afb0b7971c60f434d489fbfc556a70d8da87257179d891be4d2b661b0",
6931
+ "fabric_board_slots.py": "377407183d91f5cfe264274024f0895e58fa97a84cbcead51eaa78c671d5806d",
6932
+ "fabric_board_session.py": "21623dc42eb8be9f4586ab403c0dde597d1e3c38b366bf57621e1401ddbe5096",
6933
+ "fabric_board_fixture.py": "69761ce205ec640762ec9b591c6903e5a87f844e8d423b041681924027e39d1e",
6934
+ "fabric_board.py": "f86c40b8291f8c818f6924910f4022b013d5fd107abaf8825dd0aa6c5e418638",
6935
+ "fabric_http.py": "0efd3e84bdde304f5ddfe6ce0ea7f77bb28aa5187e3fb7940a82378f26c573d5",
6936
+ "fabric_openrouter.py": "a415db7475c3359fa15c85979a63a3a223a0ad7f85f878bcc2d638acccb44090",
6937
+ "fabric-jsvalue.mjs": "dfbdb8c41584972c9389750a41719374a1cfc5652ed438dd1623025190b0106e",
6938
+ "fabric-time.mjs": "3ff932069038a720df1c68c6492976906737b2e67e5c12d9c81c418597f661de",
6939
+ "fabric-identifiers.mjs": "a18c2a501a4aa170bfd3d99e571ad6b7662649b4d3b9d2a540c002ea42811bbf",
6940
+ "fabric-secrets.mjs": "e06af295ce278369de105a5138288b6a6b5efcc9e972de693610a018cf9bdbd6",
6941
+ "fabric-peer-owner.mjs": "eb2d6f0c2a601bd168f6b0987c64ad05a2dcf38c1c2009708f79eafc266ac1ff",
6942
+ "fabric-tailnet.mjs": "aff3591552448bc042af306cd8a9e5cb9102c6b62d6dc05d53db35e35c51e347",
6943
+ "fabric-crypto.mjs": "038e03689701e3c9721a1e7f8e0a4d02a52d6a5d1661b0dc84035edc3ebbfcf6",
6944
+ "fabric-base.mjs": "1a804bfc3ec5d2479ffc39d3c8d67b056b72af836e1b88102881f9ff632f1901",
6945
+ "fabric-platform.mjs": "a8119d95ebba4d589a9e401f5d6fc8dda62d59d44e4c1ff811d97fac3771ac0c",
6946
+ "fabric-paths.mjs": "aa630d611e748a899e7043480f4a4e46b444f2e15ff945f30c2fbef21c1ceea5",
6947
+ "fabric-estate-rules.mjs": "7476be71174aa5b1026134f2b335abf647feaa55584e2f9de8618e3054aa8e1e",
6948
+ "fabric-estate.mjs": "e8a2e62d2313121e6cb502f6e6abad94d1d546a44b4d9b3ce2be29e7808e8cf3",
6949
+ "fabric-mandate.mjs": "b70f3de03a659e60bba7b5a0580b3582825cd7b8a8e30a28c79621919ec5b7bb",
6950
+ "fabric-delegation.mjs": "27b8f28d072c756b60f5cb90957e22700500dc8eb86ba18bd61c451e6788390b",
6951
+ "fabric-share.mjs": "bfb26581c21ad984c2a337da02429f9f3a165cc582f8ba48de4d3dfb7d163a59",
6952
+ "fabric-ceremonies.mjs": "117d4374c9e95c930a38de7adbd4323774798f4fe6ec6f24afcd6f2c7298ca44",
6953
+ "fabric-package-schema.mjs": "cd28092375db0fc21ffab1f0bb7794f7f8979ee08c64d3b9faf4b3845357caa6",
6954
+ "fabric-package.mjs": "aa75c4f6ff3dade68a47c6187666332a3845b3f5da98b50e3da7824d918e941f",
6955
+ "fabric-protocols.mjs": "26eeb8c63e9881d8fa56389455626f2bb80725bbc25b9d6ed756af88c05a848e",
6956
+ "fabric-actions.mjs": "06e42f5e24c96311d5417d0d1effa93479ef7128a7ab139903b2bcf59253f6be",
6957
+ "fabric-connections.mjs": "303432e547ce563e90ca9ffcd827f5612f51d3582929834e1add0fdaf6485dcc",
6958
+ "fabric-a2a.mjs": "51b72fe1d80649d659fcad3a8f96370db3476c4a7b30cbabd8522c138be69346",
6959
+ "fabric-page-links.mjs": "a8834926e9d4bbf7c4857f551451d2ebf6ac8873bbccaaf89c5e30cf45b17ee6",
6960
+ "fabric-load.mjs": "88d9fc5576ac605a038b7ca8a8498aa0dc5848dee94f66c4c7900bd9de48e935",
6961
+ "fabric-lock.mjs": "cf79c3aed04dfd36833929f7edd76404976699ac7a8fe38820f0fa02fc2243be",
6962
+ "fabric-usage.mjs": "d42ae671a1182a542f94a83cc297b1ef2161376f4f56267a8915e7123c025087",
6963
+ "fabric-backups.mjs": "cfd8c9085e3d597a783099c2bd2ffe2f3faa0daaadab46dedd30523894cfeb06",
6964
+ "fabric-descriptor.mjs": "ac172e0f906b4f530ff03ab43c750e6a8079c4f21c0178ae1b58e99e7534df8e",
6965
+ "fabric-context.mjs": "ac88273a7ff0010a122c9bd309012a484c439ffd6e9e16923f103a3f8de7a539",
6966
+ "fabric-auth.mjs": "10ff37a39f9e3adb4d0f05db66c45f49b10eef582e9220c213907964109d7e52",
6967
+ "fabric-events.mjs": "c95c07e2745e52fddbb7237b89824123f240d4f8d6b14f5cb269a09e1845c3ba",
6968
+ "fabric-logs.mjs": "58467e5719c16e099d05bbedec47a95712506ab03c33f3cd4be1252e8498a946",
6969
+ "fabric-supervisors.mjs": "6d9fecb0f19e82548c991be2e7e76e1bde5405fa34c6606f90025cc14128395e",
6970
+ "fabric-service.mjs": "3beca77cacc4becdbc440ccc1449d1a7fc6451fb7e1f664ffbfaa5b1895938d1",
6971
+ "fabric-profiles.mjs": "314376cf2deb87f235fb18b11d3b532e211f585b9af0a9302b5f4cc39971b532",
6972
+ "fabric-interop-rules.mjs": "b4e386c359a48e49ffff8a842215760c18a7c98a0af4754a808a35fb2820d458",
6973
+ "fabric-interop.mjs": "989040aed33b2712a258244192bdf70e811a51076aa1b62f2adc2a6db051dbed",
6974
+ "fabric-holds.mjs": "8ecce5c18e1c7f9a26502dc77507c163e17d2cd4d661905e3c9d8f1964dbe2e8",
6975
+ "fabric-hub.mjs": "081d5b2fda552fe6ee737c22e1e87fa113568cb4e9d864c110a6a0aec758b22f",
6976
+ "fabric-board-shapes.mjs": "c1db7b7bd0d58d82bb6d8dfbc3cd1547a256a333052d367e82ff1b3edf2804d7",
6977
+ "fabric-board-link.mjs": "a21fcfe6f4e701b1f5142a008ceeb7eea42c251a01688f9022539235b6f80b62",
6978
+ "fabric-board-slots.mjs": "721c5f3ddb0bd76d6b5d9e08807e50392302e71efa4385e351d9bee2ad06c103",
6979
+ "fabric-board-session.mjs": "ccce0f335e85ce676edbaf15dc6c048e7fb50a9e34310724759b84cafd4139a0",
6980
+ "fabric-board-fixture.mjs": "83c4b7e33ee47b68385faf2569d38d5c8a0c5cb0f8656090f41e1b0eed2f436e",
6981
+ "fabric-board.mjs": "15fbb4441fcf7d2f285375b75de64ad6cffea129c515084c110245376b07775f",
6982
+ "fabric-http.mjs": "7bb5e41d2fbd3ba2717946777be7fd91e41ec4514a92aae2351ae8c4f2439476",
6983
+ "fabric-openrouter.mjs": "4e3e73a1b8882bdde4cbb311f6f4a5e2f048fa81fa245409a16df1e6cab03e19",
6984
+ "fabric-package.schema.json": "2ba799f576fad0f608029223c4ccccd122152f1c5dbfa8ce8b31cd63ac92ad44",
6985
+ "share-registration.schema.json": "34b3997eeaf936ebc861342a23045634a7c18c19f01d7ed4198310d81989f5b0"
6986
+ },
6987
+ "0.82.0": {
6988
+ "fabric_jsvalue.py": "052f1b40bab18600b3731dbdca27cbff17588c21d9458fa6241efd1340d0e09a",
6989
+ "fabric_time.py": "588f383da4ac6a243ea95b6ffc3a0aa99ca94245732dc4937734f190b7af4ae9",
6990
+ "fabric_identifiers.py": "0fd814d521ac3aa39907458265870753046a73f48af3d8581ab864b93b211607",
6991
+ "fabric_secrets.py": "2ebbd53d4b162fb41586b07ccc31534cbc3a9c6632a4ff84f56d29e90bd4294f",
6992
+ "fabric_peer_owner.py": "7e007a74ab166e06046610c5961c134e523247e6d1ed010934369b7b27642bfc",
6993
+ "fabric_tailnet.py": "c60416539be0199182f7969c24a37b14d0db50c8ea5e3e04cea43babfb483407",
6994
+ "fabric_crypto.py": "9c34aee20dbe4d6742e4fdbaab68ceb934bbe7dbd3a904c0010824ace16cdeaa",
6995
+ "fabric_base.py": "d8c67f345e30332cce3664af77b0e6e07cd477b78c961ac009e9efee1be7e1b2",
6996
+ "fabric_platform.py": "a9350dff55ef0fb3a23cdb4d0320a15868b15a8deb10d2eb74d72c58740c284b",
6997
+ "fabric_paths.py": "8a1ee742f80f436e9f28c61b4f049a9545de2a9e0d66bfc61faa6ee5d1ba3734",
6998
+ "fabric_estate_rules.py": "8b36a7f4108d9c2b1fb38c8bff344778c807bed631a99b4a563ecb0a49c10b1c",
6999
+ "fabric_estate.py": "0737ae1d1bb12586bae49de1f15ef1348bc207b5007cced9dad4c55bb5870874",
7000
+ "fabric_mandate.py": "fb19ce5359606bd6e3352ab02b2a12f49605ec6e5c49b55cce1f79c831325044",
7001
+ "fabric_delegation.py": "e923be4d2d901d5e0d8bf16b05a637119464009a51cffb247bd20de5e9c1d0c9",
7002
+ "fabric_share.py": "da36a466426fc29dd7dd40013167f3959a18375f8fedd228bf64f298cec1040c",
7003
+ "fabric_ceremonies.py": "a59e83cf4adb2669a9b98008e3d3a0cba991a35cbff97bc604fc82fe81cfd49f",
7004
+ "fabric_package_schema.py": "e623f0408d38e3343ed66222fb812907c6c52e1a286eb1c1176ab2e64640c9ad",
7005
+ "fabric_package.py": "8b835fcf173b8c345ea6d229edf8ebb98b0f94e9af4894c4a6bd1301f175e2b1",
7006
+ "fabric_protocols.py": "3cba881f6f3468e8d8a8455a5d54c5567e748c37291211a1c7f22d195ea562c4",
7007
+ "fabric_actions.py": "ae21d1199614c4f74d1dcd1e0a87107a9d52434cd9e2d64aa24a7b1e196fb723",
7008
+ "fabric_connections.py": "ca6a4735b21d285a3ef2c60724f3ead08f5aa707fdfaa3cb5757e02a226132a0",
7009
+ "fabric_a2a.py": "8b01502131215bb4de1c01866187c56e99b791543923ed8577535573db33b919",
7010
+ "fabric_page_links.py": "1b57ea573c550e2f90d1ec3edcc655917ceaa0db9dd1635fccf422ec3024d25e",
7011
+ "fabric_load.py": "0e97b6307108c5877a728be8f0c416686130ce98b31c4dfd5d788d9dc61a8860",
7012
+ "fabric_lock.py": "6dac051969f2c331f7cc6a90b6bb1a506a5a23a4082425d07e708ce6682aedfb",
7013
+ "fabric_usage.py": "c1a605a84e57c5ab5d3b2bd824412c20219c237dfc4bc13f778f75340905f51e",
7014
+ "fabric_backups.py": "1f3f0d7ecf361b29e9101e07f1c53e5dc304d598bf26fd59ec89f16b9fed2420",
7015
+ "fabric_descriptor.py": "10728dffb641c267a6dd89e47f84aed7e8cc28a00189e6545432c683bc33d85c",
7016
+ "fabric_context.py": "59e39fb9fd91f713f6e92ea3ec7e8252107efd148847f05934892158b326db4d",
7017
+ "fabric_auth.py": "74ccc10239b65a3567cec5213a7b344cbd88d6eee1fd1c5f7be1d6daf985993c",
7018
+ "fabric_events.py": "da3fe3e3e19d4c9754b90c719e9c069a3ac85e080b9fffd07adbaf63b5bfcf0d",
7019
+ "fabric_logs.py": "86dc55bfafa2a57264722e2403510a249b95de0e4a722b2e4bc3948e3bd93da9",
7020
+ "fabric_supervisors.py": "e5e77c7ddac742fd1882d42be33eb694906e7eb869abbee0e825d4f687936698",
7021
+ "fabric_service.py": "fb6bccc9f330df26a53287023da2ce4947f85e6b4fb2437db01c429ec809454d",
7022
+ "fabric_profiles.py": "26e21ec29c016000f8ca8053b7b489184854a73be1b7fdc0a18d12990203db9b",
7023
+ "fabric_interop_rules.py": "9bdb7989e57b9d0b0d15eb9982d396499823a5e2c528230b71c67866c736e0f5",
7024
+ "fabric_interop.py": "2b4d6c144f496dbd8788f616de9956bb8b6e89290713c406aa601511c82f4a46",
7025
+ "fabric_holds.py": "277533ec3bf1766a5a583d852dec9a048f63d9a8d1984cfc6e32df3218849c59",
7026
+ "fabric_hub.py": "8809de7a2add22f4ce28bee5191458502e7b3bcf96efd3ad67b60de1aaaa529d",
7027
+ "fabric_board_shapes.py": "0a0e8d3d40e33dfd8c457aedb85330b2ff25f8c49a33eb6cbd5a5cc8a5007f7e",
7028
+ "fabric_board_link.py": "37aacd7afb0b7971c60f434d489fbfc556a70d8da87257179d891be4d2b661b0",
7029
+ "fabric_board_slots.py": "377407183d91f5cfe264274024f0895e58fa97a84cbcead51eaa78c671d5806d",
7030
+ "fabric_board_session.py": "21623dc42eb8be9f4586ab403c0dde597d1e3c38b366bf57621e1401ddbe5096",
7031
+ "fabric_board_fixture.py": "69761ce205ec640762ec9b591c6903e5a87f844e8d423b041681924027e39d1e",
7032
+ "fabric_board.py": "f86c40b8291f8c818f6924910f4022b013d5fd107abaf8825dd0aa6c5e418638",
7033
+ "fabric_http.py": "5a6d5ccfb76239777ef4d95fe60f96dcb156e2b8fad329a7f83a85c5c9ac4a61",
7034
+ "fabric_openrouter.py": "a415db7475c3359fa15c85979a63a3a223a0ad7f85f878bcc2d638acccb44090",
7035
+ "fabric-jsvalue.mjs": "dfbdb8c41584972c9389750a41719374a1cfc5652ed438dd1623025190b0106e",
7036
+ "fabric-time.mjs": "3ff932069038a720df1c68c6492976906737b2e67e5c12d9c81c418597f661de",
7037
+ "fabric-identifiers.mjs": "a18c2a501a4aa170bfd3d99e571ad6b7662649b4d3b9d2a540c002ea42811bbf",
7038
+ "fabric-secrets.mjs": "af4b7023c20eb40d418a431f60a5ab94a0618b01891051aacc13772e97532297",
7039
+ "fabric-peer-owner.mjs": "c58f444df44df74f8d755d95fbb3c751ccc856c5fc2fc4e178a44df26cdd12d7",
7040
+ "fabric-tailnet.mjs": "aff3591552448bc042af306cd8a9e5cb9102c6b62d6dc05d53db35e35c51e347",
7041
+ "fabric-crypto.mjs": "038e03689701e3c9721a1e7f8e0a4d02a52d6a5d1661b0dc84035edc3ebbfcf6",
7042
+ "fabric-base.mjs": "1a804bfc3ec5d2479ffc39d3c8d67b056b72af836e1b88102881f9ff632f1901",
7043
+ "fabric-platform.mjs": "a8119d95ebba4d589a9e401f5d6fc8dda62d59d44e4c1ff811d97fac3771ac0c",
7044
+ "fabric-paths.mjs": "aa630d611e748a899e7043480f4a4e46b444f2e15ff945f30c2fbef21c1ceea5",
7045
+ "fabric-estate-rules.mjs": "7476be71174aa5b1026134f2b335abf647feaa55584e2f9de8618e3054aa8e1e",
7046
+ "fabric-estate.mjs": "e8a2e62d2313121e6cb502f6e6abad94d1d546a44b4d9b3ce2be29e7808e8cf3",
7047
+ "fabric-mandate.mjs": "b70f3de03a659e60bba7b5a0580b3582825cd7b8a8e30a28c79621919ec5b7bb",
7048
+ "fabric-delegation.mjs": "fbfefe8f48f9f926f6ecfe8dce1e2781eba2f4c4abef6eeec3f52837246344b6",
7049
+ "fabric-share.mjs": "bfb26581c21ad984c2a337da02429f9f3a165cc582f8ba48de4d3dfb7d163a59",
7050
+ "fabric-ceremonies.mjs": "117d4374c9e95c930a38de7adbd4323774798f4fe6ec6f24afcd6f2c7298ca44",
7051
+ "fabric-package-schema.mjs": "cd28092375db0fc21ffab1f0bb7794f7f8979ee08c64d3b9faf4b3845357caa6",
7052
+ "fabric-package.mjs": "aa75c4f6ff3dade68a47c6187666332a3845b3f5da98b50e3da7824d918e941f",
7053
+ "fabric-protocols.mjs": "26eeb8c63e9881d8fa56389455626f2bb80725bbc25b9d6ed756af88c05a848e",
7054
+ "fabric-actions.mjs": "06e42f5e24c96311d5417d0d1effa93479ef7128a7ab139903b2bcf59253f6be",
7055
+ "fabric-connections.mjs": "dd82998d7b854bfb4a11fa0fc442357e1037e379f849a91ec21f0f81d73a82fb",
7056
+ "fabric-a2a.mjs": "51b72fe1d80649d659fcad3a8f96370db3476c4a7b30cbabd8522c138be69346",
7057
+ "fabric-page-links.mjs": "a8834926e9d4bbf7c4857f551451d2ebf6ac8873bbccaaf89c5e30cf45b17ee6",
7058
+ "fabric-load.mjs": "88d9fc5576ac605a038b7ca8a8498aa0dc5848dee94f66c4c7900bd9de48e935",
7059
+ "fabric-lock.mjs": "ffd569de66d214c18f2b739e1e5fd169d84fe8f034fee8ed3d1fcb1cd87325c7",
7060
+ "fabric-usage.mjs": "d42ae671a1182a542f94a83cc297b1ef2161376f4f56267a8915e7123c025087",
7061
+ "fabric-backups.mjs": "cfd8c9085e3d597a783099c2bd2ffe2f3faa0daaadab46dedd30523894cfeb06",
7062
+ "fabric-descriptor.mjs": "d2380f116d62c076c7510a4f1b8fd6e266ac88818d4e841d7f08d4000e819c6b",
7063
+ "fabric-context.mjs": "ac88273a7ff0010a122c9bd309012a484c439ffd6e9e16923f103a3f8de7a539",
7064
+ "fabric-auth.mjs": "10ff37a39f9e3adb4d0f05db66c45f49b10eef582e9220c213907964109d7e52",
7065
+ "fabric-events.mjs": "c95c07e2745e52fddbb7237b89824123f240d4f8d6b14f5cb269a09e1845c3ba",
7066
+ "fabric-logs.mjs": "58467e5719c16e099d05bbedec47a95712506ab03c33f3cd4be1252e8498a946",
7067
+ "fabric-supervisors.mjs": "6d9fecb0f19e82548c991be2e7e76e1bde5405fa34c6606f90025cc14128395e",
7068
+ "fabric-service.mjs": "0d21b3f6f4a51b3ede576e748d481ab831fec570f629883b95f138c8823ab320",
7069
+ "fabric-profiles.mjs": "314376cf2deb87f235fb18b11d3b532e211f585b9af0a9302b5f4cc39971b532",
7070
+ "fabric-interop-rules.mjs": "b4e386c359a48e49ffff8a842215760c18a7c98a0af4754a808a35fb2820d458",
7071
+ "fabric-interop.mjs": "989040aed33b2712a258244192bdf70e811a51076aa1b62f2adc2a6db051dbed",
7072
+ "fabric-holds.mjs": "bab47b2cdad663dc39a581d0d30d33c59bb847016431e18a63b326fefd612160",
7073
+ "fabric-hub.mjs": "2813beb86f72cc1932601678f81596de16f9876c9d3630874f27addf66d7b082",
7074
+ "fabric-board-shapes.mjs": "c1db7b7bd0d58d82bb6d8dfbc3cd1547a256a333052d367e82ff1b3edf2804d7",
7075
+ "fabric-board-link.mjs": "a21fcfe6f4e701b1f5142a008ceeb7eea42c251a01688f9022539235b6f80b62",
7076
+ "fabric-board-slots.mjs": "721c5f3ddb0bd76d6b5d9e08807e50392302e71efa4385e351d9bee2ad06c103",
7077
+ "fabric-board-session.mjs": "ccce0f335e85ce676edbaf15dc6c048e7fb50a9e34310724759b84cafd4139a0",
7078
+ "fabric-board-fixture.mjs": "83c4b7e33ee47b68385faf2569d38d5c8a0c5cb0f8656090f41e1b0eed2f436e",
7079
+ "fabric-board.mjs": "15fbb4441fcf7d2f285375b75de64ad6cffea129c515084c110245376b07775f",
7080
+ "fabric-http.mjs": "7bb5e41d2fbd3ba2717946777be7fd91e41ec4514a92aae2351ae8c4f2439476",
7081
+ "fabric-openrouter.mjs": "4e3e73a1b8882bdde4cbb311f6f4a5e2f048fa81fa245409a16df1e6cab03e19",
7082
+ "fabric-package.schema.json": "2ba799f576fad0f608029223c4ccccd122152f1c5dbfa8ce8b31cd63ac92ad44",
7083
+ "share-registration.schema.json": "34b3997eeaf936ebc861342a23045634a7c18c19f01d7ed4198310d81989f5b0"
6862
7084
  }
6863
7085
  },
6864
7086
  "data": {
@@ -9,9 +9,9 @@ license: AGPL-3.0-only OR LicenseRef-PassionCode-Commercial
9
9
  compatibility: Requires filesystem access and Python 3.9+. Exact schema checks additionally need git, Node.js, pnpm, and the pinned fabric-agent-contract checkout (a public repository). Works without those tools in an explicitly degraded structural-check mode. Ships in one plugin with adapting-projects-to-fabric, whose scripts it reuses.
10
10
  metadata:
11
11
  author: PassionCode.ai
12
- version: "0.80.2"
12
+ version: "0.82.0"
13
13
  contract-version: "0.1.0"
14
- contract-commit: "18f8d48762edc5bfb1433657cbfe1c16196df1a6"
14
+ contract-commit: "93e7db164c7829e2783b4b7705c4113bb5201131"
15
15
  ---
16
16
 
17
17
  # Creating Fabric-compatible agents
@@ -116,9 +116,12 @@ prior art of its own:
116
116
  calling other agents, stops for a person, learning loops, the loop guard.
117
117
  - [agents-that-answer-people.md](references/agents-that-answer-people.md): what an agent that
118
118
  answers people carries from its first release, each part with the check that proves it.
119
- - [communication-agent-template.md](references/communication-agent-template.md): the template prompt
120
- for an agent that talks with people on a channel (support, sales and leads, community, inbox, reviews): the measured
121
- inbound pipeline, business patterns, knowledge, the learning loop and acceptance.
119
+ - [communication-agent-template.md](references/communication-agent-template.md): how to use the template
120
+ for an agent that talks with people on a channel (support, sales and leads, community, inbox, reviews); its prompt
121
+ (the measured inbound pipeline, business patterns, knowledge, the learning loop and acceptance) is the folder
122
+ `templates/communication-agent/`.
123
+ - [agent-templates.md](references/agent-templates.md): a template folder for a kind of agent, its schema and
124
+ `scripts/template_check.py`, which a template passes before it is done.
122
125
 
123
126
  ## Step 2: the project skeleton
124
127
 
@@ -159,6 +162,9 @@ run it with the owner's list of their own strings, or record that none was given
159
162
 
160
163
  ## Step 3: scaffold the provider bundle
161
164
 
165
+ For a project that does not exist yet, one command writes this step's bundle with the source manifest and the
166
+ placement guard: `npx @passioncode-ai/fabric-agent-adapter new <folder> --id <agent-id>` ([new-agent.md](references/new-agent.md)).
167
+
162
168
  Reuse the sibling skill's scaffolder against the new skeleton with the profile chosen at
163
169
  step 0:
164
170
 
@@ -171,10 +177,14 @@ python3 <plugin-dir>/skills/adapting-projects-to-fabric/scripts/adapt_project.py
171
177
  [--idempotency required|supported|none] [--cost-preset <id> <max-usd> "<label>" ... --default-cost-preset <id>]
172
178
  ```
173
179
 
180
+ The source manifest comes with the bundle: `adapt_project.py source <project-root>` lays down `fabric.source.json`
181
+ (DEC-0149) with the kit's slots, and the source check reads the source under it ([the source and the
182
+ instance](references/source-and-instance.md), *The source manifest*).
183
+
174
184
  The effect class is declared, never defaulted: ask the author what the agent does outside itself when the request
175
185
  does not say. Cost presets are only for a run whose cost varies; their amounts come from the author or measured runs.
176
186
 
177
- Pin exactly contract `0.1.0` at commit `18f8d48762edc5bfb1433657cbfe1c16196df1a6` and
187
+ Pin exactly contract `0.1.0` at commit `93e7db164c7829e2783b4b7705c4113bb5201131` and
178
188
  read the pinned guide before implementing protocol details. If this skill is installed
179
189
  without its sibling, the scaffolder is absent: create the bundle by hand from the pinned
180
190
  contract's `docs/guides/connecting-compatible-agents.md` and mark the structural check
@@ -0,0 +1,44 @@
1
+ # Agent templates: the folder, its schema and its check
2
+
3
+ An organization's agents are built from **templates**: one folder per kind of agent, which a developer agent fills for
4
+ one organization (fabric-workspace `knowledge/system/templates.md`, decision W0-Q8; FAA-265). The adapter holds the
5
+ format, versioned with it: the JSON Schemas in [`schemas/template/`](../schemas/template/) and the check
6
+ [`scripts/template_check.py`](../scripts/template_check.py). The templates themselves live in the agents database
7
+ (format v2, see [agents-database.md](agents-database.md)); the adapter keeps one neutral example for its tests,
8
+ `test/fixtures/templates/example-agent/`, and one public template, the communication agent
9
+ ([`templates/communication-agent/`](../templates/communication-agent/), released as one file in 0.75.0 and moved into
10
+ its folder by FAA-265). Whether the agents database takes that folder as its template of the kind or merges it into a
11
+ close one is its owner's decision, open; `test/validate.py` runs the check on every folder a skill ships.
12
+
13
+ ## The folder
14
+
15
+ | Part | Holds | Checked |
16
+ |---|---|---|
17
+ | `TEMPLATE.md` | a front matter block with one `template:` mapping (`id`, `name`, `version`, `family`, `checked`, `readiness`, `variants`, optional `sources`), then the prompt: role, duties, never, escalation | the header against `template-header.schema.json`; `id` equals the folder's name; the text names the operating rules A1 to A12 it inherits |
18
+ | `manifest.json` | `template`, `version`, `contract` (one protocol `{name, home, checked_against}` or a map of them), `placement`, `doors`, `models`, `dashboard`, `budget` | `manifest.schema.json`; `template` and `version` equal the header's; the last five sit at the top or in every entry of `variants` |
19
+ | `connections.json` | a list of `{source_class, connector, grant, required, direction}` with optional `when`, `scope`, `spends`, `variants`, `notes` | `connections.schema.json`; `direction` is `read`, `write`, `read-write` or `call`, the detail in `scope` |
20
+ | `access.json` | `levels` with `owner`, `administrator`, `project_architect` and `member`, each `{without_asking, with_approval, escalates}`, and `never` | `access.schema.json`; the owner escalates to nobody |
21
+ | `data-rooms.json` | a list of `{room, blocks, access}` with optional `scope`, `classes`, `level`, `required`, `variants`, `use`, `notes`; `[]` when none | `data-rooms.schema.json` |
22
+ | `checks/` | the acceptance tests the assembled agent passes before it serves anyone | at least one file |
23
+ | `assembly.md` | how a developer agent fills it for one organization | present, not empty |
24
+ | `CHANGELOG.md` | the template's versions | names the header's version |
25
+
26
+ Every variant a file names is one the header declares. A key a template needs beyond the schema goes in as `x-<name>`
27
+ in `manifest.json` or `access.json` (an entry of the manifest's `variants` may carry keys of its own); anywhere else
28
+ an unknown key is an error, so a typo never passes as a new field. A grant is named, never its value. Schema 1 checks
29
+ only the presence and type of `placement`, `doors`, `models`, `dashboard` and `budget`, not their inner shape.
30
+
31
+ ## Running the check
32
+
33
+ ```
34
+ python3 <skill>/scripts/template_check.py [--legacy] [--json] <template-folder> [...]
35
+ ```
36
+
37
+ Run it from the skill's own directory, not a copy. It reads only and exits 0 when no folder has an error, 1 when one
38
+ has, 2 on a usage error; `--json` prints `{ok, folders: {<folder>: [{level, file, path, message}]}}`.
39
+
40
+ `--legacy` reads the older spellings the first templates used (`class` for `source_class`, `mode` or a sentence for
41
+ `direction`, `required` as a sentence, levels outside `levels`, `project architect` or `architect`, `withApproval`,
42
+ `never_*` keys, `block`, `spend`, `checkedAgainst`) and names each as a warning with its canonical form; a missing
43
+ `direction` or manifest `version` is a warning there and an error otherwise. Use it to migrate a folder, then fix the
44
+ warnings: a template is done when the check passes without it.