@passioncode-ai/fabric-agent-adapter 0.77.0 → 0.79.1

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 (74) hide show
  1. package/CHANGELOG.md +207 -0
  2. package/README.md +31 -11
  3. package/SECURITY.md +17 -3
  4. package/package.json +1 -1
  5. package/plugins/fabric-agent-adapter/.claude-plugin/plugin.json +2 -2
  6. package/plugins/fabric-agent-adapter/hooks/hooks.json +1 -1
  7. package/plugins/fabric-agent-adapter/skills/adapting-projects-to-fabric/SKILL.md +15 -5
  8. package/plugins/fabric-agent-adapter/skills/adapting-projects-to-fabric/references/dashboard-links.md +37 -5
  9. package/plugins/fabric-agent-adapter/skills/adapting-projects-to-fabric/references/operator-channel-and-repository.md +13 -3
  10. package/plugins/fabric-agent-adapter/skills/adapting-projects-to-fabric/references/provider-entry.md +2 -2
  11. package/plugins/fabric-agent-adapter/skills/adapting-projects-to-fabric/references/when-to-use.md +5 -0
  12. package/plugins/fabric-agent-adapter/skills/adapting-projects-to-fabric/scripts/fabric_provider.py +14 -7
  13. package/plugins/fabric-agent-adapter/skills/building-fabric-services/SKILL.md +27 -39
  14. package/plugins/fabric-agent-adapter/skills/building-fabric-services/assets/dashboard-kit/fabric-button.js +6 -3
  15. package/plugins/fabric-agent-adapter/skills/building-fabric-services/assets/dashboard-kit/fabric-dashboard.css +1 -1
  16. package/plugins/fabric-agent-adapter/skills/building-fabric-services/assets/dashboard-kit/fabric-dashboard.js +34 -8
  17. package/plugins/fabric-agent-adapter/skills/building-fabric-services/assets/dashboard-kit/kit.json +9 -4
  18. package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/board.md +8 -5
  19. package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/connectors.md +2 -2
  20. package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/dashboard-kit.md +1 -1
  21. package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/dashboard-links.md +37 -5
  22. package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/delegation.md +4 -1
  23. package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/kit-modules.md +2 -1
  24. package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/lifecycle.md +74 -3
  25. package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/protocol.md +8 -3
  26. package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/remote-placement.md +5 -0
  27. package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/surfaces-and-auth.md +43 -1
  28. package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/when-to-use.md +5 -0
  29. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/check_service.py +3 -2
  30. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-base.mjs +5 -0
  31. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-board-link.mjs +2 -0
  32. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-board-session.mjs +12 -6
  33. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-board-slots.mjs +2 -2
  34. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-delegation.mjs +30 -2
  35. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-descriptor.mjs +7 -2
  36. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-lock.mjs +54 -20
  37. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-openrouter.mjs +4 -0
  38. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-peer-owner.mjs +3 -1
  39. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-secrets.mjs +4 -1
  40. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-service.mjs +6 -0
  41. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-supervisors.mjs +339 -26
  42. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-tailnet.mjs +198 -0
  43. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_base.py +6 -0
  44. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_board_link.py +3 -0
  45. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_board_session.py +13 -5
  46. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_board_slots.py +2 -2
  47. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_delegation.py +22 -4
  48. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_descriptor.py +14 -1
  49. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_lock.py +41 -1
  50. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_openrouter.py +6 -0
  51. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_service.py +6 -0
  52. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_supervisors.py +367 -27
  53. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_tailnet.py +208 -0
  54. package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/kit.json +323 -25
  55. package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/SKILL.md +19 -6
  56. package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/references/dashboard-links.md +37 -5
  57. package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/references/models-and-providers.md +6 -3
  58. package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/references/operator-channel-and-repository.md +13 -3
  59. package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/references/resilience-and-autonomy.md +6 -3
  60. package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/references/when-to-use.md +5 -0
  61. package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/references/where-agents-run.md +4 -0
  62. package/plugins/fabric-agent-adapter/skills/observing-products/SKILL.md +179 -0
  63. package/plugins/fabric-agent-adapter/skills/observing-products/references/channels.md +129 -0
  64. package/plugins/fabric-agent-adapter/skills/observing-products/references/cycle.md +129 -0
  65. package/plugins/fabric-agent-adapter/skills/observing-products/references/when-to-use.md +5 -0
  66. package/plugins/fabric-agent-adapter/skills/observing-products/scripts/observer_inventory.py +259 -0
  67. package/plugins/fabric-agent-adapter/skills/working-with-fabric/SKILL.md +30 -39
  68. package/plugins/fabric-agent-adapter/skills/working-with-fabric/references/native-host-hooks.md +2 -0
  69. package/plugins/fabric-agent-adapter/skills/working-with-fabric/references/on-demand-session.md +57 -37
  70. package/plugins/fabric-agent-adapter/skills/working-with-fabric/references/project-board.md +50 -25
  71. package/plugins/fabric-agent-adapter/skills/working-with-fabric/references/session-hooks.md +1 -1
  72. package/plugins/fabric-agent-adapter/skills/working-with-fabric/references/when-to-use.md +5 -0
  73. package/plugins/fabric-agent-adapter/skills/working-with-fabric/scripts/fabric_session_cli.py +26 -10
  74. package/plugins/fabric-agent-adapter/skills/working-with-fabric/scripts/fabric_session_env.py +11 -5
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fabric-service-kit",
3
- "version": "0.77.0",
3
+ "version": "0.79.1",
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
  {
@@ -40,6 +40,13 @@
40
40
  "imports": [],
41
41
  "sha256": "cc6ce03987a99a506608e6ac05cb32ac05fdd0305060a404b817de71d22b1317"
42
42
  },
43
+ {
44
+ "module": "fabric_tailnet",
45
+ "file": "fabric_tailnet.py",
46
+ "layer": "L0",
47
+ "imports": [],
48
+ "sha256": "c60416539be0199182f7969c24a37b14d0db50c8ea5e3e04cea43babfb483407"
49
+ },
43
50
  {
44
51
  "module": "fabric_crypto",
45
52
  "file": "fabric_crypto.py",
@@ -52,7 +59,7 @@
52
59
  "file": "fabric_base.py",
53
60
  "layer": "L1",
54
61
  "imports": [],
55
- "sha256": "f62bcc2ed9912660fa875d27a09f60867260cc4925f79873501fd9620be59611"
62
+ "sha256": "d8c67f345e30332cce3664af77b0e6e07cd477b78c961ac009e9efee1be7e1b2"
56
63
  },
57
64
  {
58
65
  "module": "fabric_platform",
@@ -118,9 +125,10 @@
118
125
  "fabric_estate",
119
126
  "fabric_jsvalue",
120
127
  "fabric_mandate",
121
- "fabric_paths"
128
+ "fabric_paths",
129
+ "fabric_peer_owner"
122
130
  ],
123
- "sha256": "716f0ff7ac01095f54b24970beac1962128e8ff33026b243fc0467876142ab03"
131
+ "sha256": "e923be4d2d901d5e0d8bf16b05a637119464009a51cffb247bd20de5e9c1d0c9"
124
132
  },
125
133
  {
126
134
  "module": "fabric_share",
@@ -237,7 +245,7 @@
237
245
  "fabric_paths",
238
246
  "fabric_platform"
239
247
  ],
240
- "sha256": "dfaf92a7086cbb097d832a305869b7964e2d2a9da0e3365c8ec1685a7bb4fef9"
248
+ "sha256": "10d6a2321ac8da47fc6f5bb01b32e2f8c8c966ef6d7145cf3b12bd35156bd650"
241
249
  },
242
250
  {
243
251
  "module": "fabric_usage",
@@ -277,7 +285,7 @@
277
285
  "fabric_secrets",
278
286
  "fabric_usage"
279
287
  ],
280
- "sha256": "c08c91ca0960c694ed7677e7e9247d6307c7b63f37a7e614db022c080cd92ccc"
288
+ "sha256": "16de580eb299ea9213d3e6711bf463cfeb47fcff6b9a4af42f0e95beee481b65"
281
289
  },
282
290
  {
283
291
  "module": "fabric_context",
@@ -338,7 +346,7 @@
338
346
  "fabric_peer_owner",
339
347
  "fabric_secrets"
340
348
  ],
341
- "sha256": "1d920062f8c9806f68f27c84035d17e3860558ac4ccb5dbe83cc7a776cef706a"
349
+ "sha256": "9aafbde1d19f36648257ace623547fb28eb595ea9ccc8db562f2acf0ab39ce15"
342
350
  },
343
351
  {
344
352
  "module": "fabric_service",
@@ -362,7 +370,7 @@
362
370
  "fabric_time",
363
371
  "fabric_usage"
364
372
  ],
365
- "sha256": "cb163324ebef9dfe4017210d65e4da4f5e910b6e606c7d1d36d7becf9adcf3f8"
373
+ "sha256": "cc619eea1467a6bdf32c00f51ac8de8e66afd8808d619050ad2a8e67126740c9"
366
374
  },
367
375
  {
368
376
  "module": "fabric_profiles",
@@ -440,7 +448,7 @@
440
448
  "fabric_service",
441
449
  "fabric_time"
442
450
  ],
443
- "sha256": "052bc3c474ece835bb428c37ca864810d04e394d991ddb9c93989a7a825073a5"
451
+ "sha256": "37aacd7afb0b7971c60f434d489fbfc556a70d8da87257179d891be4d2b661b0"
444
452
  },
445
453
  {
446
454
  "module": "fabric_board_slots",
@@ -449,7 +457,7 @@
449
457
  "imports": [
450
458
  "fabric_board_shapes"
451
459
  ],
452
- "sha256": "92b065e3df935547cf46653245f1129e4a1f8b59b0a41e8fa9ffdc41596ee592"
460
+ "sha256": "1bfc68207a23a737c3a6fb31b1fa46ec6ca8e4f9060cb4df7187ff32b2fa5f46"
453
461
  },
454
462
  {
455
463
  "module": "fabric_board_session",
@@ -462,7 +470,7 @@
462
470
  "fabric_hub",
463
471
  "fabric_service"
464
472
  ],
465
- "sha256": "1fd3c3884f3044b56a40f78b33ff88dcac9272284f6681ea359c662879826f7e"
473
+ "sha256": "90ba8f2528c6c64c446cbd3237a584a7fe602a1441e4a7203f2bc20147d3edc4"
466
474
  },
467
475
  {
468
476
  "module": "fabric_board_fixture",
@@ -505,7 +513,7 @@
505
513
  "fabric_time",
506
514
  "fabric_usage"
507
515
  ],
508
- "sha256": "d06a40f83f2fb8bd441ab3485ae882f1fbdd9cd7a9c1ec175eb47cb8ae2cce81"
516
+ "sha256": "a415db7475c3359fa15c85979a63a3a223a0ad7f85f878bcc2d638acccb44090"
509
517
  }
510
518
  ],
511
519
  "node": [
@@ -535,14 +543,21 @@
535
543
  "file": "fabric-secrets.mjs",
536
544
  "layer": "L0",
537
545
  "imports": [],
538
- "sha256": "5822a7e25ecf2e87b5bab4f99c1074af7379d8b49e2784283b5d7d8c25022cde"
546
+ "sha256": "60fe70b64e1fc6a9802e533679af9d2a6623f51fe96aae72cdd6d655712d0845"
539
547
  },
540
548
  {
541
549
  "module": "fabric-peer-owner",
542
550
  "file": "fabric-peer-owner.mjs",
543
551
  "layer": "L0",
544
552
  "imports": [],
545
- "sha256": "ea6d58c06647d9b17778840b1aa775b3cd8715cdf8027a7037672bd5ba4aed64"
553
+ "sha256": "c93cb426aa6a1be7de7cc29338d4d069f236c27b082ee53760d9d119351d3f77"
554
+ },
555
+ {
556
+ "module": "fabric-tailnet",
557
+ "file": "fabric-tailnet.mjs",
558
+ "layer": "L0",
559
+ "imports": [],
560
+ "sha256": "aff3591552448bc042af306cd8a9e5cb9102c6b62d6dc05d53db35e35c51e347"
546
561
  },
547
562
  {
548
563
  "module": "fabric-crypto",
@@ -556,7 +571,7 @@
556
571
  "file": "fabric-base.mjs",
557
572
  "layer": "L1",
558
573
  "imports": [],
559
- "sha256": "7804b2df7715dbbf9702a9b61b6b8cef2110f9a52b04cabd8fb0a66458d87512"
574
+ "sha256": "1a804bfc3ec5d2479ffc39d3c8d67b056b72af836e1b88102881f9ff632f1901"
560
575
  },
561
576
  {
562
577
  "module": "fabric-platform",
@@ -622,9 +637,10 @@
622
637
  "fabric-estate",
623
638
  "fabric-jsvalue",
624
639
  "fabric-mandate",
625
- "fabric-paths"
640
+ "fabric-paths",
641
+ "fabric-peer-owner"
626
642
  ],
627
- "sha256": "8f63a63aab9a8746b7f664720b87e9398137d01b8d50880974d5070038e414a0"
643
+ "sha256": "27b8f28d072c756b60f5cb90957e22700500dc8eb86ba18bd61c451e6788390b"
628
644
  },
629
645
  {
630
646
  "module": "fabric-share",
@@ -738,7 +754,7 @@
738
754
  "fabric-base",
739
755
  "fabric-paths"
740
756
  ],
741
- "sha256": "02cf833c97a07a8b3c788f9c93f70c4b9c9066efa25318dccf0038e0fc79717f"
757
+ "sha256": "cf79c3aed04dfd36833929f7edd76404976699ac7a8fe38820f0fa02fc2243be"
742
758
  },
743
759
  {
744
760
  "module": "fabric-usage",
@@ -779,7 +795,7 @@
779
795
  "fabric-secrets",
780
796
  "fabric-usage"
781
797
  ],
782
- "sha256": "7c0ef7d245c037eb9e859ab481f6e66fb3e5ef2cf6d1e0a8d32b6d303097ca43"
798
+ "sha256": "a2d9cf633d49085a3d455a489dcc6c41b14d41f1f28a8de45f0690cd6c332d51"
783
799
  },
784
800
  {
785
801
  "module": "fabric-context",
@@ -841,7 +857,7 @@
841
857
  "fabric-peer-owner",
842
858
  "fabric-secrets"
843
859
  ],
844
- "sha256": "de6468aa2876be437a374499dd084281a10d62c3fd23bd7c65285da3ee282ce2"
860
+ "sha256": "af8518b8c7e87c1ecd6b865a2f4d9a51a377daa323200c4e90a6178b1725a7d6"
845
861
  },
846
862
  {
847
863
  "module": "fabric-service",
@@ -863,7 +879,7 @@
863
879
  "fabric-supervisors",
864
880
  "fabric-usage"
865
881
  ],
866
- "sha256": "a93148aafa1b4702382a55ce15ffeff5a7b7905fa58539ef6664b267917f849f"
882
+ "sha256": "a62bba8c6314e482778b4b793bc60eacaef211a4b0bea571a7e05c58299cf944"
867
883
  },
868
884
  {
869
885
  "module": "fabric-profiles",
@@ -935,7 +951,7 @@
935
951
  "fabric-service",
936
952
  "fabric-time"
937
953
  ],
938
- "sha256": "6e7d51f4fd9730d93455f50dd30e97907b8b9e1ca65a1d69f036f2e8ec05cc0d"
954
+ "sha256": "a21fcfe6f4e701b1f5142a008ceeb7eea42c251a01688f9022539235b6f80b62"
939
955
  },
940
956
  {
941
957
  "module": "fabric-board-slots",
@@ -944,7 +960,7 @@
944
960
  "imports": [
945
961
  "fabric-board-shapes"
946
962
  ],
947
- "sha256": "fc77a3c6e62aa18575568bef4f703cce2edaba8cef648813ebcdbb21bdc27a11"
963
+ "sha256": "c2e80445115c9eab620a5a3686034ba3adc26f32ed307ea0cd8bbc5bc7b87209"
948
964
  },
949
965
  {
950
966
  "module": "fabric-board-session",
@@ -957,7 +973,7 @@
957
973
  "fabric-hub",
958
974
  "fabric-service"
959
975
  ],
960
- "sha256": "18555962e5f6d18080a3e7971c4c6640452542f6042d07917e7ebc073721c415"
976
+ "sha256": "fd71362bf4d244885b54bf52bf14e345fdb05d3d98b7fd6c1da6136f79e4b871"
961
977
  },
962
978
  {
963
979
  "module": "fabric-board-fixture",
@@ -1000,7 +1016,7 @@
1000
1016
  "fabric-time",
1001
1017
  "fabric-usage"
1002
1018
  ],
1003
- "sha256": "6041f3ab30f516658e1dbab4897a651cc8509b2136cfa8e769802c6b40ec2f35"
1019
+ "sha256": "4e3e73a1b8882bdde4cbb311f6f4a5e2f048fa81fa245409a16df1e6cab03e19"
1004
1020
  }
1005
1021
  ],
1006
1022
  "history": {
@@ -6245,6 +6261,288 @@
6245
6261
  "fabric-openrouter.mjs": "6041f3ab30f516658e1dbab4897a651cc8509b2136cfa8e769802c6b40ec2f35",
6246
6262
  "fabric-package.schema.json": "2ba799f576fad0f608029223c4ccccd122152f1c5dbfa8ce8b31cd63ac92ad44",
6247
6263
  "share-registration.schema.json": "34b3997eeaf936ebc861342a23045634a7c18c19f01d7ed4198310d81989f5b0"
6264
+ },
6265
+ "0.78.0": {
6266
+ "fabric_jsvalue.py": "052f1b40bab18600b3731dbdca27cbff17588c21d9458fa6241efd1340d0e09a",
6267
+ "fabric_time.py": "588f383da4ac6a243ea95b6ffc3a0aa99ca94245732dc4937734f190b7af4ae9",
6268
+ "fabric_identifiers.py": "0fd814d521ac3aa39907458265870753046a73f48af3d8581ab864b93b211607",
6269
+ "fabric_secrets.py": "53c5df8d6f2c87433c288853bfaad9a43f544789bdf1e39bda8d3ff14485c89d",
6270
+ "fabric_peer_owner.py": "cc6ce03987a99a506608e6ac05cb32ac05fdd0305060a404b817de71d22b1317",
6271
+ "fabric_tailnet.py": "c60416539be0199182f7969c24a37b14d0db50c8ea5e3e04cea43babfb483407",
6272
+ "fabric_crypto.py": "9c34aee20dbe4d6742e4fdbaab68ceb934bbe7dbd3a904c0010824ace16cdeaa",
6273
+ "fabric_base.py": "f62bcc2ed9912660fa875d27a09f60867260cc4925f79873501fd9620be59611",
6274
+ "fabric_platform.py": "a9350dff55ef0fb3a23cdb4d0320a15868b15a8deb10d2eb74d72c58740c284b",
6275
+ "fabric_paths.py": "8a1ee742f80f436e9f28c61b4f049a9545de2a9e0d66bfc61faa6ee5d1ba3734",
6276
+ "fabric_estate_rules.py": "8b36a7f4108d9c2b1fb38c8bff344778c807bed631a99b4a563ecb0a49c10b1c",
6277
+ "fabric_estate.py": "0737ae1d1bb12586bae49de1f15ef1348bc207b5007cced9dad4c55bb5870874",
6278
+ "fabric_mandate.py": "fb19ce5359606bd6e3352ab02b2a12f49605ec6e5c49b55cce1f79c831325044",
6279
+ "fabric_delegation.py": "716f0ff7ac01095f54b24970beac1962128e8ff33026b243fc0467876142ab03",
6280
+ "fabric_share.py": "da36a466426fc29dd7dd40013167f3959a18375f8fedd228bf64f298cec1040c",
6281
+ "fabric_ceremonies.py": "a59e83cf4adb2669a9b98008e3d3a0cba991a35cbff97bc604fc82fe81cfd49f",
6282
+ "fabric_package_schema.py": "e623f0408d38e3343ed66222fb812907c6c52e1a286eb1c1176ab2e64640c9ad",
6283
+ "fabric_package.py": "1f2b9e73b2b32a7e1e887d4b69f87c6e21b4d1227ad924a235334223e6dd51ca",
6284
+ "fabric_protocols.py": "077c6f03f3b887a2e22d9ce6b5bd3750199d71a29d4c82b1d5af8a615b509d93",
6285
+ "fabric_actions.py": "ae21d1199614c4f74d1dcd1e0a87107a9d52434cd9e2d64aa24a7b1e196fb723",
6286
+ "fabric_connections.py": "7de55cb7d808f756d650effabfaa12027d40a5bd5d2f6d448c32969d47529ecb",
6287
+ "fabric_a2a.py": "8b01502131215bb4de1c01866187c56e99b791543923ed8577535573db33b919",
6288
+ "fabric_page_links.py": "1b57ea573c550e2f90d1ec3edcc655917ceaa0db9dd1635fccf422ec3024d25e",
6289
+ "fabric_lock.py": "dfaf92a7086cbb097d832a305869b7964e2d2a9da0e3365c8ec1685a7bb4fef9",
6290
+ "fabric_usage.py": "5cc2e03ccc5b06e81987ed7bc3eead7a7e6cbf1a7cb8e05c6c64315eed9d91b6",
6291
+ "fabric_backups.py": "1f3f0d7ecf361b29e9101e07f1c53e5dc304d598bf26fd59ec89f16b9fed2420",
6292
+ "fabric_descriptor.py": "c08c91ca0960c694ed7677e7e9247d6307c7b63f37a7e614db022c080cd92ccc",
6293
+ "fabric_context.py": "6ae311ddc7217a4aff915e7ce2646486931acd128462b7bebe4a52bbb5fbb6c7",
6294
+ "fabric_auth.py": "74ccc10239b65a3567cec5213a7b344cbd88d6eee1fd1c5f7be1d6daf985993c",
6295
+ "fabric_events.py": "da3fe3e3e19d4c9754b90c719e9c069a3ac85e080b9fffd07adbaf63b5bfcf0d",
6296
+ "fabric_logs.py": "86dc55bfafa2a57264722e2403510a249b95de0e4a722b2e4bc3948e3bd93da9",
6297
+ "fabric_supervisors.py": "6f10d6e60222c6725434a93253873762e8c4b55fe1cc16ef12c18f2dfbb16798",
6298
+ "fabric_service.py": "8162f7c7934ba5d9c4b46be4cef060b1d5998afa940fbbb2f14b3f7a029bb6ea",
6299
+ "fabric_profiles.py": "26e21ec29c016000f8ca8053b7b489184854a73be1b7fdc0a18d12990203db9b",
6300
+ "fabric_interop_rules.py": "9bdb7989e57b9d0b0d15eb9982d396499823a5e2c528230b71c67866c736e0f5",
6301
+ "fabric_interop.py": "d27e31834611a37cf2a117746f2f60fc187ccc48718eb546ff923c5d0fce7dea",
6302
+ "fabric_hub.py": "c261a81616c52f603eb28cc12ec4034dc479f0517328a65f0dc48d436cf0708b",
6303
+ "fabric_board_shapes.py": "0a0e8d3d40e33dfd8c457aedb85330b2ff25f8c49a33eb6cbd5a5cc8a5007f7e",
6304
+ "fabric_board_link.py": "052bc3c474ece835bb428c37ca864810d04e394d991ddb9c93989a7a825073a5",
6305
+ "fabric_board_slots.py": "92b065e3df935547cf46653245f1129e4a1f8b59b0a41e8fa9ffdc41596ee592",
6306
+ "fabric_board_session.py": "1fd3c3884f3044b56a40f78b33ff88dcac9272284f6681ea359c662879826f7e",
6307
+ "fabric_board_fixture.py": "69761ce205ec640762ec9b591c6903e5a87f844e8d423b041681924027e39d1e",
6308
+ "fabric_board.py": "f86c40b8291f8c818f6924910f4022b013d5fd107abaf8825dd0aa6c5e418638",
6309
+ "fabric_http.py": "b11b9930c3f0ab911a9cd325086a4c07a5ed4c246799d290f6085245669f4994",
6310
+ "fabric_openrouter.py": "d06a40f83f2fb8bd441ab3485ae882f1fbdd9cd7a9c1ec175eb47cb8ae2cce81",
6311
+ "fabric-jsvalue.mjs": "dfbdb8c41584972c9389750a41719374a1cfc5652ed438dd1623025190b0106e",
6312
+ "fabric-time.mjs": "3ff932069038a720df1c68c6492976906737b2e67e5c12d9c81c418597f661de",
6313
+ "fabric-identifiers.mjs": "a18c2a501a4aa170bfd3d99e571ad6b7662649b4d3b9d2a540c002ea42811bbf",
6314
+ "fabric-secrets.mjs": "5822a7e25ecf2e87b5bab4f99c1074af7379d8b49e2784283b5d7d8c25022cde",
6315
+ "fabric-peer-owner.mjs": "ea6d58c06647d9b17778840b1aa775b3cd8715cdf8027a7037672bd5ba4aed64",
6316
+ "fabric-tailnet.mjs": "aff3591552448bc042af306cd8a9e5cb9102c6b62d6dc05d53db35e35c51e347",
6317
+ "fabric-crypto.mjs": "038e03689701e3c9721a1e7f8e0a4d02a52d6a5d1661b0dc84035edc3ebbfcf6",
6318
+ "fabric-base.mjs": "7804b2df7715dbbf9702a9b61b6b8cef2110f9a52b04cabd8fb0a66458d87512",
6319
+ "fabric-platform.mjs": "a8119d95ebba4d589a9e401f5d6fc8dda62d59d44e4c1ff811d97fac3771ac0c",
6320
+ "fabric-paths.mjs": "aa630d611e748a899e7043480f4a4e46b444f2e15ff945f30c2fbef21c1ceea5",
6321
+ "fabric-estate-rules.mjs": "7476be71174aa5b1026134f2b335abf647feaa55584e2f9de8618e3054aa8e1e",
6322
+ "fabric-estate.mjs": "e8a2e62d2313121e6cb502f6e6abad94d1d546a44b4d9b3ce2be29e7808e8cf3",
6323
+ "fabric-mandate.mjs": "b70f3de03a659e60bba7b5a0580b3582825cd7b8a8e30a28c79621919ec5b7bb",
6324
+ "fabric-delegation.mjs": "8f63a63aab9a8746b7f664720b87e9398137d01b8d50880974d5070038e414a0",
6325
+ "fabric-share.mjs": "bfb26581c21ad984c2a337da02429f9f3a165cc582f8ba48de4d3dfb7d163a59",
6326
+ "fabric-ceremonies.mjs": "117d4374c9e95c930a38de7adbd4323774798f4fe6ec6f24afcd6f2c7298ca44",
6327
+ "fabric-package-schema.mjs": "cd28092375db0fc21ffab1f0bb7794f7f8979ee08c64d3b9faf4b3845357caa6",
6328
+ "fabric-package.mjs": "8cfb32eebbd4e1bcf28a6e4437344ae2dd54479b0e7c820f002e9f94ab9ecaad",
6329
+ "fabric-protocols.mjs": "a560b7d6eb0d26204c5536711c3dda9daae90cc91e07cdc75412e75c86272767",
6330
+ "fabric-actions.mjs": "06e42f5e24c96311d5417d0d1effa93479ef7128a7ab139903b2bcf59253f6be",
6331
+ "fabric-connections.mjs": "303432e547ce563e90ca9ffcd827f5612f51d3582929834e1add0fdaf6485dcc",
6332
+ "fabric-a2a.mjs": "51b72fe1d80649d659fcad3a8f96370db3476c4a7b30cbabd8522c138be69346",
6333
+ "fabric-page-links.mjs": "a8834926e9d4bbf7c4857f551451d2ebf6ac8873bbccaaf89c5e30cf45b17ee6",
6334
+ "fabric-lock.mjs": "02cf833c97a07a8b3c788f9c93f70c4b9c9066efa25318dccf0038e0fc79717f",
6335
+ "fabric-usage.mjs": "1c4d18004639409624ac3516a02f2b60bbf55abdb612e9a96c37e83666eb87a7",
6336
+ "fabric-backups.mjs": "cfd8c9085e3d597a783099c2bd2ffe2f3faa0daaadab46dedd30523894cfeb06",
6337
+ "fabric-descriptor.mjs": "7c0ef7d245c037eb9e859ab481f6e66fb3e5ef2cf6d1e0a8d32b6d303097ca43",
6338
+ "fabric-context.mjs": "1112d695e872f9825cbc94f08484974bff3880087bc29b8be59f885f03e8f7be",
6339
+ "fabric-auth.mjs": "10ff37a39f9e3adb4d0f05db66c45f49b10eef582e9220c213907964109d7e52",
6340
+ "fabric-events.mjs": "c95c07e2745e52fddbb7237b89824123f240d4f8d6b14f5cb269a09e1845c3ba",
6341
+ "fabric-logs.mjs": "58467e5719c16e099d05bbedec47a95712506ab03c33f3cd4be1252e8498a946",
6342
+ "fabric-supervisors.mjs": "8301d7dace103688a46550ae13524438a66127f16281e00871529f625a841e70",
6343
+ "fabric-service.mjs": "eb30141440043b9a4f3f235b9d2dbfa15ba14dbaab35553f9591b0e2eb01c59a",
6344
+ "fabric-profiles.mjs": "314376cf2deb87f235fb18b11d3b532e211f585b9af0a9302b5f4cc39971b532",
6345
+ "fabric-interop-rules.mjs": "b4e386c359a48e49ffff8a842215760c18a7c98a0af4754a808a35fb2820d458",
6346
+ "fabric-interop.mjs": "989040aed33b2712a258244192bdf70e811a51076aa1b62f2adc2a6db051dbed",
6347
+ "fabric-hub.mjs": "73ab07f72320a50042f39b52893b563157be2ac94615614416df45a796eac988",
6348
+ "fabric-board-shapes.mjs": "c1db7b7bd0d58d82bb6d8dfbc3cd1547a256a333052d367e82ff1b3edf2804d7",
6349
+ "fabric-board-link.mjs": "6e7d51f4fd9730d93455f50dd30e97907b8b9e1ca65a1d69f036f2e8ec05cc0d",
6350
+ "fabric-board-slots.mjs": "fc77a3c6e62aa18575568bef4f703cce2edaba8cef648813ebcdbb21bdc27a11",
6351
+ "fabric-board-session.mjs": "18555962e5f6d18080a3e7971c4c6640452542f6042d07917e7ebc073721c415",
6352
+ "fabric-board-fixture.mjs": "83c4b7e33ee47b68385faf2569d38d5c8a0c5cb0f8656090f41e1b0eed2f436e",
6353
+ "fabric-board.mjs": "15fbb4441fcf7d2f285375b75de64ad6cffea129c515084c110245376b07775f",
6354
+ "fabric-http.mjs": "b83b4c0c208763d56c3eebda5fe9e4a46d595cd91227699bf6876e65a3c7f9b9",
6355
+ "fabric-openrouter.mjs": "6041f3ab30f516658e1dbab4897a651cc8509b2136cfa8e769802c6b40ec2f35",
6356
+ "fabric-package.schema.json": "2ba799f576fad0f608029223c4ccccd122152f1c5dbfa8ce8b31cd63ac92ad44",
6357
+ "share-registration.schema.json": "34b3997eeaf936ebc861342a23045634a7c18c19f01d7ed4198310d81989f5b0"
6358
+ },
6359
+ "0.79.0": {
6360
+ "fabric_jsvalue.py": "052f1b40bab18600b3731dbdca27cbff17588c21d9458fa6241efd1340d0e09a",
6361
+ "fabric_time.py": "588f383da4ac6a243ea95b6ffc3a0aa99ca94245732dc4937734f190b7af4ae9",
6362
+ "fabric_identifiers.py": "0fd814d521ac3aa39907458265870753046a73f48af3d8581ab864b93b211607",
6363
+ "fabric_secrets.py": "53c5df8d6f2c87433c288853bfaad9a43f544789bdf1e39bda8d3ff14485c89d",
6364
+ "fabric_peer_owner.py": "cc6ce03987a99a506608e6ac05cb32ac05fdd0305060a404b817de71d22b1317",
6365
+ "fabric_tailnet.py": "c60416539be0199182f7969c24a37b14d0db50c8ea5e3e04cea43babfb483407",
6366
+ "fabric_crypto.py": "9c34aee20dbe4d6742e4fdbaab68ceb934bbe7dbd3a904c0010824ace16cdeaa",
6367
+ "fabric_base.py": "d8c67f345e30332cce3664af77b0e6e07cd477b78c961ac009e9efee1be7e1b2",
6368
+ "fabric_platform.py": "a9350dff55ef0fb3a23cdb4d0320a15868b15a8deb10d2eb74d72c58740c284b",
6369
+ "fabric_paths.py": "8a1ee742f80f436e9f28c61b4f049a9545de2a9e0d66bfc61faa6ee5d1ba3734",
6370
+ "fabric_estate_rules.py": "8b36a7f4108d9c2b1fb38c8bff344778c807bed631a99b4a563ecb0a49c10b1c",
6371
+ "fabric_estate.py": "0737ae1d1bb12586bae49de1f15ef1348bc207b5007cced9dad4c55bb5870874",
6372
+ "fabric_mandate.py": "fb19ce5359606bd6e3352ab02b2a12f49605ec6e5c49b55cce1f79c831325044",
6373
+ "fabric_delegation.py": "e923be4d2d901d5e0d8bf16b05a637119464009a51cffb247bd20de5e9c1d0c9",
6374
+ "fabric_share.py": "da36a466426fc29dd7dd40013167f3959a18375f8fedd228bf64f298cec1040c",
6375
+ "fabric_ceremonies.py": "a59e83cf4adb2669a9b98008e3d3a0cba991a35cbff97bc604fc82fe81cfd49f",
6376
+ "fabric_package_schema.py": "e623f0408d38e3343ed66222fb812907c6c52e1a286eb1c1176ab2e64640c9ad",
6377
+ "fabric_package.py": "1f2b9e73b2b32a7e1e887d4b69f87c6e21b4d1227ad924a235334223e6dd51ca",
6378
+ "fabric_protocols.py": "077c6f03f3b887a2e22d9ce6b5bd3750199d71a29d4c82b1d5af8a615b509d93",
6379
+ "fabric_actions.py": "ae21d1199614c4f74d1dcd1e0a87107a9d52434cd9e2d64aa24a7b1e196fb723",
6380
+ "fabric_connections.py": "7de55cb7d808f756d650effabfaa12027d40a5bd5d2f6d448c32969d47529ecb",
6381
+ "fabric_a2a.py": "8b01502131215bb4de1c01866187c56e99b791543923ed8577535573db33b919",
6382
+ "fabric_page_links.py": "1b57ea573c550e2f90d1ec3edcc655917ceaa0db9dd1635fccf422ec3024d25e",
6383
+ "fabric_lock.py": "10d6a2321ac8da47fc6f5bb01b32e2f8c8c966ef6d7145cf3b12bd35156bd650",
6384
+ "fabric_usage.py": "5cc2e03ccc5b06e81987ed7bc3eead7a7e6cbf1a7cb8e05c6c64315eed9d91b6",
6385
+ "fabric_backups.py": "1f3f0d7ecf361b29e9101e07f1c53e5dc304d598bf26fd59ec89f16b9fed2420",
6386
+ "fabric_descriptor.py": "16de580eb299ea9213d3e6711bf463cfeb47fcff6b9a4af42f0e95beee481b65",
6387
+ "fabric_context.py": "6ae311ddc7217a4aff915e7ce2646486931acd128462b7bebe4a52bbb5fbb6c7",
6388
+ "fabric_auth.py": "74ccc10239b65a3567cec5213a7b344cbd88d6eee1fd1c5f7be1d6daf985993c",
6389
+ "fabric_events.py": "da3fe3e3e19d4c9754b90c719e9c069a3ac85e080b9fffd07adbaf63b5bfcf0d",
6390
+ "fabric_logs.py": "86dc55bfafa2a57264722e2403510a249b95de0e4a722b2e4bc3948e3bd93da9",
6391
+ "fabric_supervisors.py": "6842a1b1663950a05074b94de2d7f5f36475c543e08a22a441dbb94cf1281d33",
6392
+ "fabric_service.py": "cc619eea1467a6bdf32c00f51ac8de8e66afd8808d619050ad2a8e67126740c9",
6393
+ "fabric_profiles.py": "26e21ec29c016000f8ca8053b7b489184854a73be1b7fdc0a18d12990203db9b",
6394
+ "fabric_interop_rules.py": "9bdb7989e57b9d0b0d15eb9982d396499823a5e2c528230b71c67866c736e0f5",
6395
+ "fabric_interop.py": "d27e31834611a37cf2a117746f2f60fc187ccc48718eb546ff923c5d0fce7dea",
6396
+ "fabric_hub.py": "c261a81616c52f603eb28cc12ec4034dc479f0517328a65f0dc48d436cf0708b",
6397
+ "fabric_board_shapes.py": "0a0e8d3d40e33dfd8c457aedb85330b2ff25f8c49a33eb6cbd5a5cc8a5007f7e",
6398
+ "fabric_board_link.py": "37aacd7afb0b7971c60f434d489fbfc556a70d8da87257179d891be4d2b661b0",
6399
+ "fabric_board_slots.py": "edb4930bcda7ec356d74988dcd7f43e269fa9199fe45ae6ba2762533f08e3675",
6400
+ "fabric_board_session.py": "5b8984dd6f15bcb8156a661d4d62997a2d30a877d88da299562e18c1ad5e6d07",
6401
+ "fabric_board_fixture.py": "69761ce205ec640762ec9b591c6903e5a87f844e8d423b041681924027e39d1e",
6402
+ "fabric_board.py": "f86c40b8291f8c818f6924910f4022b013d5fd107abaf8825dd0aa6c5e418638",
6403
+ "fabric_http.py": "b11b9930c3f0ab911a9cd325086a4c07a5ed4c246799d290f6085245669f4994",
6404
+ "fabric_openrouter.py": "a415db7475c3359fa15c85979a63a3a223a0ad7f85f878bcc2d638acccb44090",
6405
+ "fabric-jsvalue.mjs": "dfbdb8c41584972c9389750a41719374a1cfc5652ed438dd1623025190b0106e",
6406
+ "fabric-time.mjs": "3ff932069038a720df1c68c6492976906737b2e67e5c12d9c81c418597f661de",
6407
+ "fabric-identifiers.mjs": "a18c2a501a4aa170bfd3d99e571ad6b7662649b4d3b9d2a540c002ea42811bbf",
6408
+ "fabric-secrets.mjs": "60fe70b64e1fc6a9802e533679af9d2a6623f51fe96aae72cdd6d655712d0845",
6409
+ "fabric-peer-owner.mjs": "ea6d58c06647d9b17778840b1aa775b3cd8715cdf8027a7037672bd5ba4aed64",
6410
+ "fabric-tailnet.mjs": "aff3591552448bc042af306cd8a9e5cb9102c6b62d6dc05d53db35e35c51e347",
6411
+ "fabric-crypto.mjs": "038e03689701e3c9721a1e7f8e0a4d02a52d6a5d1661b0dc84035edc3ebbfcf6",
6412
+ "fabric-base.mjs": "1a804bfc3ec5d2479ffc39d3c8d67b056b72af836e1b88102881f9ff632f1901",
6413
+ "fabric-platform.mjs": "a8119d95ebba4d589a9e401f5d6fc8dda62d59d44e4c1ff811d97fac3771ac0c",
6414
+ "fabric-paths.mjs": "aa630d611e748a899e7043480f4a4e46b444f2e15ff945f30c2fbef21c1ceea5",
6415
+ "fabric-estate-rules.mjs": "7476be71174aa5b1026134f2b335abf647feaa55584e2f9de8618e3054aa8e1e",
6416
+ "fabric-estate.mjs": "e8a2e62d2313121e6cb502f6e6abad94d1d546a44b4d9b3ce2be29e7808e8cf3",
6417
+ "fabric-mandate.mjs": "b70f3de03a659e60bba7b5a0580b3582825cd7b8a8e30a28c79621919ec5b7bb",
6418
+ "fabric-delegation.mjs": "27b8f28d072c756b60f5cb90957e22700500dc8eb86ba18bd61c451e6788390b",
6419
+ "fabric-share.mjs": "bfb26581c21ad984c2a337da02429f9f3a165cc582f8ba48de4d3dfb7d163a59",
6420
+ "fabric-ceremonies.mjs": "117d4374c9e95c930a38de7adbd4323774798f4fe6ec6f24afcd6f2c7298ca44",
6421
+ "fabric-package-schema.mjs": "cd28092375db0fc21ffab1f0bb7794f7f8979ee08c64d3b9faf4b3845357caa6",
6422
+ "fabric-package.mjs": "8cfb32eebbd4e1bcf28a6e4437344ae2dd54479b0e7c820f002e9f94ab9ecaad",
6423
+ "fabric-protocols.mjs": "a560b7d6eb0d26204c5536711c3dda9daae90cc91e07cdc75412e75c86272767",
6424
+ "fabric-actions.mjs": "06e42f5e24c96311d5417d0d1effa93479ef7128a7ab139903b2bcf59253f6be",
6425
+ "fabric-connections.mjs": "303432e547ce563e90ca9ffcd827f5612f51d3582929834e1add0fdaf6485dcc",
6426
+ "fabric-a2a.mjs": "51b72fe1d80649d659fcad3a8f96370db3476c4a7b30cbabd8522c138be69346",
6427
+ "fabric-page-links.mjs": "a8834926e9d4bbf7c4857f551451d2ebf6ac8873bbccaaf89c5e30cf45b17ee6",
6428
+ "fabric-lock.mjs": "cf79c3aed04dfd36833929f7edd76404976699ac7a8fe38820f0fa02fc2243be",
6429
+ "fabric-usage.mjs": "1c4d18004639409624ac3516a02f2b60bbf55abdb612e9a96c37e83666eb87a7",
6430
+ "fabric-backups.mjs": "cfd8c9085e3d597a783099c2bd2ffe2f3faa0daaadab46dedd30523894cfeb06",
6431
+ "fabric-descriptor.mjs": "a2d9cf633d49085a3d455a489dcc6c41b14d41f1f28a8de45f0690cd6c332d51",
6432
+ "fabric-context.mjs": "1112d695e872f9825cbc94f08484974bff3880087bc29b8be59f885f03e8f7be",
6433
+ "fabric-auth.mjs": "10ff37a39f9e3adb4d0f05db66c45f49b10eef582e9220c213907964109d7e52",
6434
+ "fabric-events.mjs": "c95c07e2745e52fddbb7237b89824123f240d4f8d6b14f5cb269a09e1845c3ba",
6435
+ "fabric-logs.mjs": "58467e5719c16e099d05bbedec47a95712506ab03c33f3cd4be1252e8498a946",
6436
+ "fabric-supervisors.mjs": "ed23afbf779440cc32418f18edf1721ae2e70c6687b5e5859b22372874c67d8e",
6437
+ "fabric-service.mjs": "a62bba8c6314e482778b4b793bc60eacaef211a4b0bea571a7e05c58299cf944",
6438
+ "fabric-profiles.mjs": "314376cf2deb87f235fb18b11d3b532e211f585b9af0a9302b5f4cc39971b532",
6439
+ "fabric-interop-rules.mjs": "b4e386c359a48e49ffff8a842215760c18a7c98a0af4754a808a35fb2820d458",
6440
+ "fabric-interop.mjs": "989040aed33b2712a258244192bdf70e811a51076aa1b62f2adc2a6db051dbed",
6441
+ "fabric-hub.mjs": "73ab07f72320a50042f39b52893b563157be2ac94615614416df45a796eac988",
6442
+ "fabric-board-shapes.mjs": "c1db7b7bd0d58d82bb6d8dfbc3cd1547a256a333052d367e82ff1b3edf2804d7",
6443
+ "fabric-board-link.mjs": "a21fcfe6f4e701b1f5142a008ceeb7eea42c251a01688f9022539235b6f80b62",
6444
+ "fabric-board-slots.mjs": "ee454c53110506d39175a4b139ecd4ddead5c204f6b209f0cc25a6f10e442f8b",
6445
+ "fabric-board-session.mjs": "584c7937aa10f624e094970b08fc867edfbf546433d4226b029b9f91c8ec620c",
6446
+ "fabric-board-fixture.mjs": "83c4b7e33ee47b68385faf2569d38d5c8a0c5cb0f8656090f41e1b0eed2f436e",
6447
+ "fabric-board.mjs": "15fbb4441fcf7d2f285375b75de64ad6cffea129c515084c110245376b07775f",
6448
+ "fabric-http.mjs": "b83b4c0c208763d56c3eebda5fe9e4a46d595cd91227699bf6876e65a3c7f9b9",
6449
+ "fabric-openrouter.mjs": "4e3e73a1b8882bdde4cbb311f6f4a5e2f048fa81fa245409a16df1e6cab03e19",
6450
+ "fabric-package.schema.json": "2ba799f576fad0f608029223c4ccccd122152f1c5dbfa8ce8b31cd63ac92ad44",
6451
+ "share-registration.schema.json": "34b3997eeaf936ebc861342a23045634a7c18c19f01d7ed4198310d81989f5b0"
6452
+ },
6453
+ "0.79.1": {
6454
+ "fabric_jsvalue.py": "052f1b40bab18600b3731dbdca27cbff17588c21d9458fa6241efd1340d0e09a",
6455
+ "fabric_time.py": "588f383da4ac6a243ea95b6ffc3a0aa99ca94245732dc4937734f190b7af4ae9",
6456
+ "fabric_identifiers.py": "0fd814d521ac3aa39907458265870753046a73f48af3d8581ab864b93b211607",
6457
+ "fabric_secrets.py": "53c5df8d6f2c87433c288853bfaad9a43f544789bdf1e39bda8d3ff14485c89d",
6458
+ "fabric_peer_owner.py": "cc6ce03987a99a506608e6ac05cb32ac05fdd0305060a404b817de71d22b1317",
6459
+ "fabric_tailnet.py": "c60416539be0199182f7969c24a37b14d0db50c8ea5e3e04cea43babfb483407",
6460
+ "fabric_crypto.py": "9c34aee20dbe4d6742e4fdbaab68ceb934bbe7dbd3a904c0010824ace16cdeaa",
6461
+ "fabric_base.py": "d8c67f345e30332cce3664af77b0e6e07cd477b78c961ac009e9efee1be7e1b2",
6462
+ "fabric_platform.py": "a9350dff55ef0fb3a23cdb4d0320a15868b15a8deb10d2eb74d72c58740c284b",
6463
+ "fabric_paths.py": "8a1ee742f80f436e9f28c61b4f049a9545de2a9e0d66bfc61faa6ee5d1ba3734",
6464
+ "fabric_estate_rules.py": "8b36a7f4108d9c2b1fb38c8bff344778c807bed631a99b4a563ecb0a49c10b1c",
6465
+ "fabric_estate.py": "0737ae1d1bb12586bae49de1f15ef1348bc207b5007cced9dad4c55bb5870874",
6466
+ "fabric_mandate.py": "fb19ce5359606bd6e3352ab02b2a12f49605ec6e5c49b55cce1f79c831325044",
6467
+ "fabric_delegation.py": "e923be4d2d901d5e0d8bf16b05a637119464009a51cffb247bd20de5e9c1d0c9",
6468
+ "fabric_share.py": "da36a466426fc29dd7dd40013167f3959a18375f8fedd228bf64f298cec1040c",
6469
+ "fabric_ceremonies.py": "a59e83cf4adb2669a9b98008e3d3a0cba991a35cbff97bc604fc82fe81cfd49f",
6470
+ "fabric_package_schema.py": "e623f0408d38e3343ed66222fb812907c6c52e1a286eb1c1176ab2e64640c9ad",
6471
+ "fabric_package.py": "1f2b9e73b2b32a7e1e887d4b69f87c6e21b4d1227ad924a235334223e6dd51ca",
6472
+ "fabric_protocols.py": "077c6f03f3b887a2e22d9ce6b5bd3750199d71a29d4c82b1d5af8a615b509d93",
6473
+ "fabric_actions.py": "ae21d1199614c4f74d1dcd1e0a87107a9d52434cd9e2d64aa24a7b1e196fb723",
6474
+ "fabric_connections.py": "7de55cb7d808f756d650effabfaa12027d40a5bd5d2f6d448c32969d47529ecb",
6475
+ "fabric_a2a.py": "8b01502131215bb4de1c01866187c56e99b791543923ed8577535573db33b919",
6476
+ "fabric_page_links.py": "1b57ea573c550e2f90d1ec3edcc655917ceaa0db9dd1635fccf422ec3024d25e",
6477
+ "fabric_lock.py": "10d6a2321ac8da47fc6f5bb01b32e2f8c8c966ef6d7145cf3b12bd35156bd650",
6478
+ "fabric_usage.py": "5cc2e03ccc5b06e81987ed7bc3eead7a7e6cbf1a7cb8e05c6c64315eed9d91b6",
6479
+ "fabric_backups.py": "1f3f0d7ecf361b29e9101e07f1c53e5dc304d598bf26fd59ec89f16b9fed2420",
6480
+ "fabric_descriptor.py": "16de580eb299ea9213d3e6711bf463cfeb47fcff6b9a4af42f0e95beee481b65",
6481
+ "fabric_context.py": "6ae311ddc7217a4aff915e7ce2646486931acd128462b7bebe4a52bbb5fbb6c7",
6482
+ "fabric_auth.py": "74ccc10239b65a3567cec5213a7b344cbd88d6eee1fd1c5f7be1d6daf985993c",
6483
+ "fabric_events.py": "da3fe3e3e19d4c9754b90c719e9c069a3ac85e080b9fffd07adbaf63b5bfcf0d",
6484
+ "fabric_logs.py": "86dc55bfafa2a57264722e2403510a249b95de0e4a722b2e4bc3948e3bd93da9",
6485
+ "fabric_supervisors.py": "9aafbde1d19f36648257ace623547fb28eb595ea9ccc8db562f2acf0ab39ce15",
6486
+ "fabric_service.py": "cc619eea1467a6bdf32c00f51ac8de8e66afd8808d619050ad2a8e67126740c9",
6487
+ "fabric_profiles.py": "26e21ec29c016000f8ca8053b7b489184854a73be1b7fdc0a18d12990203db9b",
6488
+ "fabric_interop_rules.py": "9bdb7989e57b9d0b0d15eb9982d396499823a5e2c528230b71c67866c736e0f5",
6489
+ "fabric_interop.py": "d27e31834611a37cf2a117746f2f60fc187ccc48718eb546ff923c5d0fce7dea",
6490
+ "fabric_hub.py": "c261a81616c52f603eb28cc12ec4034dc479f0517328a65f0dc48d436cf0708b",
6491
+ "fabric_board_shapes.py": "0a0e8d3d40e33dfd8c457aedb85330b2ff25f8c49a33eb6cbd5a5cc8a5007f7e",
6492
+ "fabric_board_link.py": "37aacd7afb0b7971c60f434d489fbfc556a70d8da87257179d891be4d2b661b0",
6493
+ "fabric_board_slots.py": "1bfc68207a23a737c3a6fb31b1fa46ec6ca8e4f9060cb4df7187ff32b2fa5f46",
6494
+ "fabric_board_session.py": "90ba8f2528c6c64c446cbd3237a584a7fe602a1441e4a7203f2bc20147d3edc4",
6495
+ "fabric_board_fixture.py": "69761ce205ec640762ec9b591c6903e5a87f844e8d423b041681924027e39d1e",
6496
+ "fabric_board.py": "f86c40b8291f8c818f6924910f4022b013d5fd107abaf8825dd0aa6c5e418638",
6497
+ "fabric_http.py": "b11b9930c3f0ab911a9cd325086a4c07a5ed4c246799d290f6085245669f4994",
6498
+ "fabric_openrouter.py": "a415db7475c3359fa15c85979a63a3a223a0ad7f85f878bcc2d638acccb44090",
6499
+ "fabric-jsvalue.mjs": "dfbdb8c41584972c9389750a41719374a1cfc5652ed438dd1623025190b0106e",
6500
+ "fabric-time.mjs": "3ff932069038a720df1c68c6492976906737b2e67e5c12d9c81c418597f661de",
6501
+ "fabric-identifiers.mjs": "a18c2a501a4aa170bfd3d99e571ad6b7662649b4d3b9d2a540c002ea42811bbf",
6502
+ "fabric-secrets.mjs": "60fe70b64e1fc6a9802e533679af9d2a6623f51fe96aae72cdd6d655712d0845",
6503
+ "fabric-peer-owner.mjs": "c93cb426aa6a1be7de7cc29338d4d069f236c27b082ee53760d9d119351d3f77",
6504
+ "fabric-tailnet.mjs": "aff3591552448bc042af306cd8a9e5cb9102c6b62d6dc05d53db35e35c51e347",
6505
+ "fabric-crypto.mjs": "038e03689701e3c9721a1e7f8e0a4d02a52d6a5d1661b0dc84035edc3ebbfcf6",
6506
+ "fabric-base.mjs": "1a804bfc3ec5d2479ffc39d3c8d67b056b72af836e1b88102881f9ff632f1901",
6507
+ "fabric-platform.mjs": "a8119d95ebba4d589a9e401f5d6fc8dda62d59d44e4c1ff811d97fac3771ac0c",
6508
+ "fabric-paths.mjs": "aa630d611e748a899e7043480f4a4e46b444f2e15ff945f30c2fbef21c1ceea5",
6509
+ "fabric-estate-rules.mjs": "7476be71174aa5b1026134f2b335abf647feaa55584e2f9de8618e3054aa8e1e",
6510
+ "fabric-estate.mjs": "e8a2e62d2313121e6cb502f6e6abad94d1d546a44b4d9b3ce2be29e7808e8cf3",
6511
+ "fabric-mandate.mjs": "b70f3de03a659e60bba7b5a0580b3582825cd7b8a8e30a28c79621919ec5b7bb",
6512
+ "fabric-delegation.mjs": "27b8f28d072c756b60f5cb90957e22700500dc8eb86ba18bd61c451e6788390b",
6513
+ "fabric-share.mjs": "bfb26581c21ad984c2a337da02429f9f3a165cc582f8ba48de4d3dfb7d163a59",
6514
+ "fabric-ceremonies.mjs": "117d4374c9e95c930a38de7adbd4323774798f4fe6ec6f24afcd6f2c7298ca44",
6515
+ "fabric-package-schema.mjs": "cd28092375db0fc21ffab1f0bb7794f7f8979ee08c64d3b9faf4b3845357caa6",
6516
+ "fabric-package.mjs": "8cfb32eebbd4e1bcf28a6e4437344ae2dd54479b0e7c820f002e9f94ab9ecaad",
6517
+ "fabric-protocols.mjs": "a560b7d6eb0d26204c5536711c3dda9daae90cc91e07cdc75412e75c86272767",
6518
+ "fabric-actions.mjs": "06e42f5e24c96311d5417d0d1effa93479ef7128a7ab139903b2bcf59253f6be",
6519
+ "fabric-connections.mjs": "303432e547ce563e90ca9ffcd827f5612f51d3582929834e1add0fdaf6485dcc",
6520
+ "fabric-a2a.mjs": "51b72fe1d80649d659fcad3a8f96370db3476c4a7b30cbabd8522c138be69346",
6521
+ "fabric-page-links.mjs": "a8834926e9d4bbf7c4857f551451d2ebf6ac8873bbccaaf89c5e30cf45b17ee6",
6522
+ "fabric-lock.mjs": "cf79c3aed04dfd36833929f7edd76404976699ac7a8fe38820f0fa02fc2243be",
6523
+ "fabric-usage.mjs": "1c4d18004639409624ac3516a02f2b60bbf55abdb612e9a96c37e83666eb87a7",
6524
+ "fabric-backups.mjs": "cfd8c9085e3d597a783099c2bd2ffe2f3faa0daaadab46dedd30523894cfeb06",
6525
+ "fabric-descriptor.mjs": "a2d9cf633d49085a3d455a489dcc6c41b14d41f1f28a8de45f0690cd6c332d51",
6526
+ "fabric-context.mjs": "1112d695e872f9825cbc94f08484974bff3880087bc29b8be59f885f03e8f7be",
6527
+ "fabric-auth.mjs": "10ff37a39f9e3adb4d0f05db66c45f49b10eef582e9220c213907964109d7e52",
6528
+ "fabric-events.mjs": "c95c07e2745e52fddbb7237b89824123f240d4f8d6b14f5cb269a09e1845c3ba",
6529
+ "fabric-logs.mjs": "58467e5719c16e099d05bbedec47a95712506ab03c33f3cd4be1252e8498a946",
6530
+ "fabric-supervisors.mjs": "af8518b8c7e87c1ecd6b865a2f4d9a51a377daa323200c4e90a6178b1725a7d6",
6531
+ "fabric-service.mjs": "a62bba8c6314e482778b4b793bc60eacaef211a4b0bea571a7e05c58299cf944",
6532
+ "fabric-profiles.mjs": "314376cf2deb87f235fb18b11d3b532e211f585b9af0a9302b5f4cc39971b532",
6533
+ "fabric-interop-rules.mjs": "b4e386c359a48e49ffff8a842215760c18a7c98a0af4754a808a35fb2820d458",
6534
+ "fabric-interop.mjs": "989040aed33b2712a258244192bdf70e811a51076aa1b62f2adc2a6db051dbed",
6535
+ "fabric-hub.mjs": "73ab07f72320a50042f39b52893b563157be2ac94615614416df45a796eac988",
6536
+ "fabric-board-shapes.mjs": "c1db7b7bd0d58d82bb6d8dfbc3cd1547a256a333052d367e82ff1b3edf2804d7",
6537
+ "fabric-board-link.mjs": "a21fcfe6f4e701b1f5142a008ceeb7eea42c251a01688f9022539235b6f80b62",
6538
+ "fabric-board-slots.mjs": "c2e80445115c9eab620a5a3686034ba3adc26f32ed307ea0cd8bbc5bc7b87209",
6539
+ "fabric-board-session.mjs": "fd71362bf4d244885b54bf52bf14e345fdb05d3d98b7fd6c1da6136f79e4b871",
6540
+ "fabric-board-fixture.mjs": "83c4b7e33ee47b68385faf2569d38d5c8a0c5cb0f8656090f41e1b0eed2f436e",
6541
+ "fabric-board.mjs": "15fbb4441fcf7d2f285375b75de64ad6cffea129c515084c110245376b07775f",
6542
+ "fabric-http.mjs": "b83b4c0c208763d56c3eebda5fe9e4a46d595cd91227699bf6876e65a3c7f9b9",
6543
+ "fabric-openrouter.mjs": "4e3e73a1b8882bdde4cbb311f6f4a5e2f048fa81fa245409a16df1e6cab03e19",
6544
+ "fabric-package.schema.json": "2ba799f576fad0f608029223c4ccccd122152f1c5dbfa8ce8b31cd63ac92ad44",
6545
+ "share-registration.schema.json": "34b3997eeaf936ebc861342a23045634a7c18c19f01d7ed4198310d81989f5b0"
6248
6546
  }
6249
6547
  },
6250
6548
  "data": {
@@ -1,11 +1,15 @@
1
1
  ---
2
2
  name: creating-fabric-agents
3
- description: Use when designing and building a NEW agent or provider that must be Fabric-compatible from its first commit, «создай агента, совместимого с фабрикой Passion Code», «новый агент под Fabric», "create a fabric-compatible agent", "build a new Fabric provider", "fabric-ready agent from scratch", «агент в облаке организации», "which models and OpenRouter key for a new Fabric agent". Runs the intake grill (capability, named consumer, workflow or agent, profile, effects, where it runs, models, who pays, how it learns), turns source projects' recorded failures into planted eval fixtures, scaffolds the pinned contract bundle and sets the canary expectation. NOT for adapting an existing project (adapting-projects-to-fabric), making an agent a local or online Fabric service with a dashboard (building-fabric-services), a coding session working through Fabric or its board (working-with-fabric), the Fabric host or orchestrator, or an agent, bot or A2A server that need not speak Fabric.
3
+ description: >-
4
+ Use when designing a NEW agent that speaks Fabric from its first commit: intake grill, models and budget, eval
5
+ fixtures, contract bundle. Triggers: "create a fabric-compatible agent", «новый агент под Fabric». NOT for an
6
+ existing project (adapting-projects-to-fabric), running it as a service (building-fabric-services) or a session
7
+ (working-with-fabric).
4
8
  license: AGPL-3.0-only OR LicenseRef-PassionCode-Commercial
5
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.
6
10
  metadata:
7
11
  author: PassionCode.ai
8
- version: "0.77.0"
12
+ version: "0.79.1"
9
13
  contract-version: "0.1.0"
10
14
  contract-commit: "18f8d48762edc5bfb1433657cbfe1c16196df1a6"
11
15
  ---
@@ -18,6 +22,10 @@ exists; this one runs the stages that come *before* an interface exists (the int
18
22
  grill and the knowledge intake), then hands the scaffolding and verification to the same
19
23
  pinned machinery, so both doors lead into one pipeline.
20
24
 
25
+ ## When to use
26
+
27
+ The description above stays short for the skill listing budget; the whole reach, every trigger included, is in [references/when-to-use.md](references/when-to-use.md).
28
+
21
29
  ## Boundary
22
30
 
23
31
  Use this skill to design and build a new provider. Do not use it to:
@@ -49,6 +57,8 @@ and say in the report which skill was missing.
49
57
 
50
58
  No file is created until every row has an answer. An answer of "later" fails the grill.
51
59
 
60
+ If your organization keeps a private catalogue of agent templates with an architect, ask it first: it names the template, version, variant and known traps; this skill runs after it.
61
+
52
62
  Once the grill names the capability and its consumer, consult the [agents database](references/agents-database.md): `agents-db.consult` on the
53
63
  board (or, with a grant, its scan tool over the source projects), and build from the template it names.
54
64
 
@@ -240,7 +250,9 @@ file and a test per line, or `NOT_RUN` where the agent has no such stage.
240
250
  Report: capability, consumer, profile with the step-0 grill answers; the knowledge pack
241
251
  and which traps became fixtures; created files; contract version and commit; the gate
242
252
  table with `PASS`, `FAIL`, `NOT_RUN`, or `NOT_VERIFIED`; remaining placeholders; the
243
- operator channel answer (step 6); the template it was built from (the database's id and version, the communication template prompt, or none); and the exact next command. Never summarize the outcome as
253
+ operator channel answer (step 6); the template it was built from (the database's id and version, the communication template prompt, or none); for an agent that answers people, one line per item of
254
+ the *Checklist* in [agents that answer people](references/agents-that-answer-people.md), each with a file and a test or `NOT_RUN`, its
255
+ first-reply time measured from the person's message; and the exact next command. Never summarize the outcome as
244
256
  "Fabric-compatible" unless every required admission gate passed against the real provider.
245
257
 
246
258
  ## Agent pages open only in Fabric Dashboards
@@ -254,9 +266,10 @@ host's `open` and `fallback=never`. Never `open <url>`, `open -a Safari`, `xdg-o
254
266
  `not_installed` host; an installed host that failed to open is reported, never replaced by HTTP.
255
267
  Links carry no token or login code.
256
268
 
257
- The agent's `AGENTS.md` carries this as its dashboard rule block, and its checks run the adapter's link gate
258
- (`scripts/check_dashboard_link.py` from this skill's own directory; it is not copied into the project) on every
259
- completion and notification action before delivery:
269
+ The agent's `AGENTS.md` carries this as its dashboard rule block; the agent runs the adapter's link gate
270
+ (`scripts/check_dashboard_link.py` from this skill's own directory, an agent-side gate never copied into the project or
271
+ run by its CI) on every completion and notification action before delivery, and the project's own test pins the
272
+ negative fixture:
260
273
  [dashboard links](references/dashboard-links.md) has the block, the gate's input and the remote case.
261
274
  Headless agents need no dashboard.
262
275
 
@@ -125,11 +125,43 @@ its acceptance does not authorize or deliver it. Enforce grants/dedup/expiry in
125
125
  the transport. Unknown or failed host status produces no executable local action.
126
126
  A separately labelled copyable link for diagnosis is not an open action.
127
127
 
128
- Add this check to the generated project's dashboard completion/notification
129
- renderer before delivery. A raw-HTTP primary action with an available host is the
130
- negative fixture; a valid native action is the positive one. Keep diagnostics
131
- separate. This gate checks structured actions, not arbitrary prose: a CLI invocation
132
- or instructions alone do not prove all final answers from every agent are filtered.
128
+ The gate is **agent-side**: the agent runs it from this skill's directory before it
129
+ delivers an action. It is never copied into the generated project and never run by
130
+ that project's CI: the adapter's versioned plugin folder has no stable path there, so
131
+ its result in a project's pipeline would always be NOT_RUN. A raw-HTTP primary action
132
+ with an available host is the gate's negative fixture; a valid native action is the
133
+ positive one. Keep diagnostics separate. This gate checks structured actions, not
134
+ arbitrary prose: a CLI invocation or instructions alone do not prove all final answers
135
+ from every agent are filtered.
136
+
137
+ The generated project pins the same negative fixture in its own test suite, without
138
+ calling the gate: a test that renders its completion and notification output with an
139
+ available host and fails when a raw loopback `http_url` or a legacy `open?service=`
140
+ link appears in it. The snippet is self-contained; `render` stands for the project's
141
+ own renderer:
142
+
143
+ ```python
144
+ import re
145
+ import unittest
146
+
147
+ RAW_LOOPBACK = re.compile(r"https?://(?:127\.0\.0\.1|localhost|\[::1\])")
148
+ LEGACY = "fabric-dashboards://open?service="
149
+ RESOLVED = {"service": "example-agent.default",
150
+ "open_link": "fabric-dashboards://service/example-agent.default?path=%2Fdashboard",
151
+ "http_url": "http://127.0.0.1:47195/dashboard"}
152
+
153
+
154
+ def render(resolved, host_state): # replace with the project's completion/notification renderer
155
+ raise NotImplementedError
156
+
157
+
158
+ class RenderedDashboardLinks(unittest.TestCase):
159
+ def test_rendered_output_has_no_raw_loopback_or_legacy_link(self):
160
+ out = render(RESOLVED, host_state="available")
161
+ self.assertIn(RESOLVED["open_link"], out)
162
+ self.assertIsNone(RAW_LOOPBACK.search(out), out)
163
+ self.assertNotIn(LEGACY, out)
164
+ ```
133
165
 
134
166
  ## Degradation
135
167