@passioncode-ai/fabric-agent-adapter 0.78.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.
- package/CHANGELOG.md +122 -0
- package/README.md +14 -7
- package/package.json +1 -1
- package/plugins/fabric-agent-adapter/.claude-plugin/plugin.json +1 -1
- package/plugins/fabric-agent-adapter/hooks/hooks.json +1 -1
- package/plugins/fabric-agent-adapter/skills/adapting-projects-to-fabric/SKILL.md +6 -4
- package/plugins/fabric-agent-adapter/skills/adapting-projects-to-fabric/references/dashboard-links.md +37 -5
- package/plugins/fabric-agent-adapter/skills/adapting-projects-to-fabric/references/operator-channel-and-repository.md +13 -3
- package/plugins/fabric-agent-adapter/skills/adapting-projects-to-fabric/references/provider-entry.md +2 -2
- package/plugins/fabric-agent-adapter/skills/adapting-projects-to-fabric/scripts/fabric_provider.py +14 -7
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/SKILL.md +1 -1
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/assets/dashboard-kit/fabric-button.js +6 -3
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/assets/dashboard-kit/fabric-dashboard.css +1 -1
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/assets/dashboard-kit/fabric-dashboard.js +34 -8
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/assets/dashboard-kit/kit.json +9 -4
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/board.md +8 -5
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/connectors.md +2 -2
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/dashboard-kit.md +1 -1
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/dashboard-links.md +37 -5
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/delegation.md +4 -1
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/lifecycle.md +6 -1
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/protocol.md +3 -0
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-base.mjs +5 -0
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-board-link.mjs +2 -0
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-board-session.mjs +12 -6
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-board-slots.mjs +2 -2
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-delegation.mjs +30 -2
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-descriptor.mjs +7 -2
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-lock.mjs +54 -20
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-openrouter.mjs +4 -0
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-peer-owner.mjs +3 -1
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-secrets.mjs +4 -1
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-service.mjs +2 -0
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-supervisors.mjs +17 -5
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_base.py +6 -0
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_board_link.py +3 -0
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_board_session.py +13 -5
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_board_slots.py +2 -2
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_delegation.py +22 -4
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_descriptor.py +14 -1
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_lock.py +41 -1
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_openrouter.py +6 -0
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_service.py +4 -0
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_supervisors.py +64 -10
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/kit.json +215 -25
- package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/SKILL.md +10 -5
- package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/references/dashboard-links.md +37 -5
- package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/references/models-and-providers.md +6 -3
- package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/references/operator-channel-and-repository.md +13 -3
- package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/references/resilience-and-autonomy.md +6 -3
- package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/references/where-agents-run.md +4 -0
- package/plugins/fabric-agent-adapter/skills/observing-products/SKILL.md +1 -1
- package/plugins/fabric-agent-adapter/skills/working-with-fabric/SKILL.md +10 -9
- package/plugins/fabric-agent-adapter/skills/working-with-fabric/references/on-demand-session.md +57 -37
- package/plugins/fabric-agent-adapter/skills/working-with-fabric/references/project-board.md +50 -25
- package/plugins/fabric-agent-adapter/skills/working-with-fabric/scripts/fabric_session_cli.py +26 -10
- 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.
|
|
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
|
{
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"file": "fabric_base.py",
|
|
60
60
|
"layer": "L1",
|
|
61
61
|
"imports": [],
|
|
62
|
-
"sha256": "
|
|
62
|
+
"sha256": "d8c67f345e30332cce3664af77b0e6e07cd477b78c961ac009e9efee1be7e1b2"
|
|
63
63
|
},
|
|
64
64
|
{
|
|
65
65
|
"module": "fabric_platform",
|
|
@@ -125,9 +125,10 @@
|
|
|
125
125
|
"fabric_estate",
|
|
126
126
|
"fabric_jsvalue",
|
|
127
127
|
"fabric_mandate",
|
|
128
|
-
"fabric_paths"
|
|
128
|
+
"fabric_paths",
|
|
129
|
+
"fabric_peer_owner"
|
|
129
130
|
],
|
|
130
|
-
"sha256": "
|
|
131
|
+
"sha256": "e923be4d2d901d5e0d8bf16b05a637119464009a51cffb247bd20de5e9c1d0c9"
|
|
131
132
|
},
|
|
132
133
|
{
|
|
133
134
|
"module": "fabric_share",
|
|
@@ -244,7 +245,7 @@
|
|
|
244
245
|
"fabric_paths",
|
|
245
246
|
"fabric_platform"
|
|
246
247
|
],
|
|
247
|
-
"sha256": "
|
|
248
|
+
"sha256": "10d6a2321ac8da47fc6f5bb01b32e2f8c8c966ef6d7145cf3b12bd35156bd650"
|
|
248
249
|
},
|
|
249
250
|
{
|
|
250
251
|
"module": "fabric_usage",
|
|
@@ -284,7 +285,7 @@
|
|
|
284
285
|
"fabric_secrets",
|
|
285
286
|
"fabric_usage"
|
|
286
287
|
],
|
|
287
|
-
"sha256": "
|
|
288
|
+
"sha256": "16de580eb299ea9213d3e6711bf463cfeb47fcff6b9a4af42f0e95beee481b65"
|
|
288
289
|
},
|
|
289
290
|
{
|
|
290
291
|
"module": "fabric_context",
|
|
@@ -345,7 +346,7 @@
|
|
|
345
346
|
"fabric_peer_owner",
|
|
346
347
|
"fabric_secrets"
|
|
347
348
|
],
|
|
348
|
-
"sha256": "
|
|
349
|
+
"sha256": "9aafbde1d19f36648257ace623547fb28eb595ea9ccc8db562f2acf0ab39ce15"
|
|
349
350
|
},
|
|
350
351
|
{
|
|
351
352
|
"module": "fabric_service",
|
|
@@ -369,7 +370,7 @@
|
|
|
369
370
|
"fabric_time",
|
|
370
371
|
"fabric_usage"
|
|
371
372
|
],
|
|
372
|
-
"sha256": "
|
|
373
|
+
"sha256": "cc619eea1467a6bdf32c00f51ac8de8e66afd8808d619050ad2a8e67126740c9"
|
|
373
374
|
},
|
|
374
375
|
{
|
|
375
376
|
"module": "fabric_profiles",
|
|
@@ -447,7 +448,7 @@
|
|
|
447
448
|
"fabric_service",
|
|
448
449
|
"fabric_time"
|
|
449
450
|
],
|
|
450
|
-
"sha256": "
|
|
451
|
+
"sha256": "37aacd7afb0b7971c60f434d489fbfc556a70d8da87257179d891be4d2b661b0"
|
|
451
452
|
},
|
|
452
453
|
{
|
|
453
454
|
"module": "fabric_board_slots",
|
|
@@ -456,7 +457,7 @@
|
|
|
456
457
|
"imports": [
|
|
457
458
|
"fabric_board_shapes"
|
|
458
459
|
],
|
|
459
|
-
"sha256": "
|
|
460
|
+
"sha256": "1bfc68207a23a737c3a6fb31b1fa46ec6ca8e4f9060cb4df7187ff32b2fa5f46"
|
|
460
461
|
},
|
|
461
462
|
{
|
|
462
463
|
"module": "fabric_board_session",
|
|
@@ -469,7 +470,7 @@
|
|
|
469
470
|
"fabric_hub",
|
|
470
471
|
"fabric_service"
|
|
471
472
|
],
|
|
472
|
-
"sha256": "
|
|
473
|
+
"sha256": "90ba8f2528c6c64c446cbd3237a584a7fe602a1441e4a7203f2bc20147d3edc4"
|
|
473
474
|
},
|
|
474
475
|
{
|
|
475
476
|
"module": "fabric_board_fixture",
|
|
@@ -512,7 +513,7 @@
|
|
|
512
513
|
"fabric_time",
|
|
513
514
|
"fabric_usage"
|
|
514
515
|
],
|
|
515
|
-
"sha256": "
|
|
516
|
+
"sha256": "a415db7475c3359fa15c85979a63a3a223a0ad7f85f878bcc2d638acccb44090"
|
|
516
517
|
}
|
|
517
518
|
],
|
|
518
519
|
"node": [
|
|
@@ -542,14 +543,14 @@
|
|
|
542
543
|
"file": "fabric-secrets.mjs",
|
|
543
544
|
"layer": "L0",
|
|
544
545
|
"imports": [],
|
|
545
|
-
"sha256": "
|
|
546
|
+
"sha256": "60fe70b64e1fc6a9802e533679af9d2a6623f51fe96aae72cdd6d655712d0845"
|
|
546
547
|
},
|
|
547
548
|
{
|
|
548
549
|
"module": "fabric-peer-owner",
|
|
549
550
|
"file": "fabric-peer-owner.mjs",
|
|
550
551
|
"layer": "L0",
|
|
551
552
|
"imports": [],
|
|
552
|
-
"sha256": "
|
|
553
|
+
"sha256": "c93cb426aa6a1be7de7cc29338d4d069f236c27b082ee53760d9d119351d3f77"
|
|
553
554
|
},
|
|
554
555
|
{
|
|
555
556
|
"module": "fabric-tailnet",
|
|
@@ -570,7 +571,7 @@
|
|
|
570
571
|
"file": "fabric-base.mjs",
|
|
571
572
|
"layer": "L1",
|
|
572
573
|
"imports": [],
|
|
573
|
-
"sha256": "
|
|
574
|
+
"sha256": "1a804bfc3ec5d2479ffc39d3c8d67b056b72af836e1b88102881f9ff632f1901"
|
|
574
575
|
},
|
|
575
576
|
{
|
|
576
577
|
"module": "fabric-platform",
|
|
@@ -636,9 +637,10 @@
|
|
|
636
637
|
"fabric-estate",
|
|
637
638
|
"fabric-jsvalue",
|
|
638
639
|
"fabric-mandate",
|
|
639
|
-
"fabric-paths"
|
|
640
|
+
"fabric-paths",
|
|
641
|
+
"fabric-peer-owner"
|
|
640
642
|
],
|
|
641
|
-
"sha256": "
|
|
643
|
+
"sha256": "27b8f28d072c756b60f5cb90957e22700500dc8eb86ba18bd61c451e6788390b"
|
|
642
644
|
},
|
|
643
645
|
{
|
|
644
646
|
"module": "fabric-share",
|
|
@@ -752,7 +754,7 @@
|
|
|
752
754
|
"fabric-base",
|
|
753
755
|
"fabric-paths"
|
|
754
756
|
],
|
|
755
|
-
"sha256": "
|
|
757
|
+
"sha256": "cf79c3aed04dfd36833929f7edd76404976699ac7a8fe38820f0fa02fc2243be"
|
|
756
758
|
},
|
|
757
759
|
{
|
|
758
760
|
"module": "fabric-usage",
|
|
@@ -793,7 +795,7 @@
|
|
|
793
795
|
"fabric-secrets",
|
|
794
796
|
"fabric-usage"
|
|
795
797
|
],
|
|
796
|
-
"sha256": "
|
|
798
|
+
"sha256": "a2d9cf633d49085a3d455a489dcc6c41b14d41f1f28a8de45f0690cd6c332d51"
|
|
797
799
|
},
|
|
798
800
|
{
|
|
799
801
|
"module": "fabric-context",
|
|
@@ -855,7 +857,7 @@
|
|
|
855
857
|
"fabric-peer-owner",
|
|
856
858
|
"fabric-secrets"
|
|
857
859
|
],
|
|
858
|
-
"sha256": "
|
|
860
|
+
"sha256": "af8518b8c7e87c1ecd6b865a2f4d9a51a377daa323200c4e90a6178b1725a7d6"
|
|
859
861
|
},
|
|
860
862
|
{
|
|
861
863
|
"module": "fabric-service",
|
|
@@ -877,7 +879,7 @@
|
|
|
877
879
|
"fabric-supervisors",
|
|
878
880
|
"fabric-usage"
|
|
879
881
|
],
|
|
880
|
-
"sha256": "
|
|
882
|
+
"sha256": "a62bba8c6314e482778b4b793bc60eacaef211a4b0bea571a7e05c58299cf944"
|
|
881
883
|
},
|
|
882
884
|
{
|
|
883
885
|
"module": "fabric-profiles",
|
|
@@ -949,7 +951,7 @@
|
|
|
949
951
|
"fabric-service",
|
|
950
952
|
"fabric-time"
|
|
951
953
|
],
|
|
952
|
-
"sha256": "
|
|
954
|
+
"sha256": "a21fcfe6f4e701b1f5142a008ceeb7eea42c251a01688f9022539235b6f80b62"
|
|
953
955
|
},
|
|
954
956
|
{
|
|
955
957
|
"module": "fabric-board-slots",
|
|
@@ -958,7 +960,7 @@
|
|
|
958
960
|
"imports": [
|
|
959
961
|
"fabric-board-shapes"
|
|
960
962
|
],
|
|
961
|
-
"sha256": "
|
|
963
|
+
"sha256": "c2e80445115c9eab620a5a3686034ba3adc26f32ed307ea0cd8bbc5bc7b87209"
|
|
962
964
|
},
|
|
963
965
|
{
|
|
964
966
|
"module": "fabric-board-session",
|
|
@@ -971,7 +973,7 @@
|
|
|
971
973
|
"fabric-hub",
|
|
972
974
|
"fabric-service"
|
|
973
975
|
],
|
|
974
|
-
"sha256": "
|
|
976
|
+
"sha256": "fd71362bf4d244885b54bf52bf14e345fdb05d3d98b7fd6c1da6136f79e4b871"
|
|
975
977
|
},
|
|
976
978
|
{
|
|
977
979
|
"module": "fabric-board-fixture",
|
|
@@ -1014,7 +1016,7 @@
|
|
|
1014
1016
|
"fabric-time",
|
|
1015
1017
|
"fabric-usage"
|
|
1016
1018
|
],
|
|
1017
|
-
"sha256": "
|
|
1019
|
+
"sha256": "4e3e73a1b8882bdde4cbb311f6f4a5e2f048fa81fa245409a16df1e6cab03e19"
|
|
1018
1020
|
}
|
|
1019
1021
|
],
|
|
1020
1022
|
"history": {
|
|
@@ -6353,6 +6355,194 @@
|
|
|
6353
6355
|
"fabric-openrouter.mjs": "6041f3ab30f516658e1dbab4897a651cc8509b2136cfa8e769802c6b40ec2f35",
|
|
6354
6356
|
"fabric-package.schema.json": "2ba799f576fad0f608029223c4ccccd122152f1c5dbfa8ce8b31cd63ac92ad44",
|
|
6355
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"
|
|
6356
6546
|
}
|
|
6357
6547
|
},
|
|
6358
6548
|
"data": {
|
|
@@ -9,7 +9,7 @@ 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.
|
|
12
|
+
version: "0.79.1"
|
|
13
13
|
contract-version: "0.1.0"
|
|
14
14
|
contract-commit: "18f8d48762edc5bfb1433657cbfe1c16196df1a6"
|
|
15
15
|
---
|
|
@@ -57,6 +57,8 @@ and say in the report which skill was missing.
|
|
|
57
57
|
|
|
58
58
|
No file is created until every row has an answer. An answer of "later" fails the grill.
|
|
59
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
|
+
|
|
60
62
|
Once the grill names the capability and its consumer, consult the [agents database](references/agents-database.md): `agents-db.consult` on the
|
|
61
63
|
board (or, with a grant, its scan tool over the source projects), and build from the template it names.
|
|
62
64
|
|
|
@@ -248,7 +250,9 @@ file and a test per line, or `NOT_RUN` where the agent has no such stage.
|
|
|
248
250
|
Report: capability, consumer, profile with the step-0 grill answers; the knowledge pack
|
|
249
251
|
and which traps became fixtures; created files; contract version and commit; the gate
|
|
250
252
|
table with `PASS`, `FAIL`, `NOT_RUN`, or `NOT_VERIFIED`; remaining placeholders; the
|
|
251
|
-
operator channel answer (step 6); the template it was built from (the database's id and version, the communication template prompt, or none);
|
|
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
|
|
252
256
|
"Fabric-compatible" unless every required admission gate passed against the real provider.
|
|
253
257
|
|
|
254
258
|
## Agent pages open only in Fabric Dashboards
|
|
@@ -262,9 +266,10 @@ host's `open` and `fallback=never`. Never `open <url>`, `open -a Safari`, `xdg-o
|
|
|
262
266
|
`not_installed` host; an installed host that failed to open is reported, never replaced by HTTP.
|
|
263
267
|
Links carry no token or login code.
|
|
264
268
|
|
|
265
|
-
The agent's `AGENTS.md` carries this as its dashboard rule block
|
|
266
|
-
(`scripts/check_dashboard_link.py` from this skill's own directory
|
|
267
|
-
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:
|
|
268
273
|
[dashboard links](references/dashboard-links.md) has the block, the gate's input and the remote case.
|
|
269
274
|
Headless agents need no dashboard.
|
|
270
275
|
|
package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/references/dashboard-links.md
CHANGED
|
@@ -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
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
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
|
|
|
@@ -97,8 +97,10 @@ change an embedding model without re-indexing every stored vector (search silent
|
|
|
97
97
|
(an organization's key follows its grant), and the agent's own
|
|
98
98
|
stop sits a little under the key's limit, so the provider never refuses first (the kit's OpenRouter client counts a
|
|
99
99
|
month with window="month"; its default window is a day).
|
|
100
|
-
Read it from the environment the service manager or the session gives the agent
|
|
101
|
-
the key of the project it starts in)
|
|
100
|
+
Read it from the environment the service manager, a vault runner or the session gives the agent's own process
|
|
101
|
+
(Fabric Switchboard hands an agent the key of the project it starts in); never pass it on to a child the agent starts:
|
|
102
|
+
scrub the child's environment and hand a child a key over a file descriptor or a per-command vault run
|
|
103
|
+
(references/resilience-and-autonomy.md, *Secrets and confinement* 1).
|
|
102
104
|
- **An organization's instance spends the organization's key** under its grant; a personal key never pays for an
|
|
103
105
|
organization's work.
|
|
104
106
|
- **Check every attempt against the ceiling before it is sent,** retries included, estimating at the full output
|
|
@@ -123,5 +125,6 @@ scope recorded next to the default. Re-run it when you change the model, the pro
|
|
|
123
125
|
- Each lane: primary, fallback of another vendor, open-vendor where it reads user content, a declared class.
|
|
124
126
|
- Each lane's input modalities checked in the catalog; media generation through one media service.
|
|
125
127
|
- Budgets that survive reasoning; empty answers retried, never shipped.
|
|
126
|
-
- One key per agent and context, read from the environment, with a ceiling
|
|
128
|
+
- One key per agent and context, read from the agent's own environment and never passed to a child, with a ceiling
|
|
129
|
+
checked before every call.
|
|
127
130
|
- The choice measured on real inputs, recorded with its date.
|
|
@@ -25,6 +25,16 @@ unless addressed (`/command@ThisBot`, a reply to its own message or a press of i
|
|
|
25
25
|
bare `/command` in a group is not addressed), and a channel nobody receives on is `degraded`
|
|
26
26
|
(`receiver-missing`). Say so in the proposal when the operator means to bind a shared group.
|
|
27
27
|
|
|
28
|
+
Where the estate runs a messaging gateway service the operator chose for sending (one service every
|
|
29
|
+
agent sends through, holding its own grants and allowlist), the channel sends through that gateway
|
|
30
|
+
and does not call the messenger itself; the agent's own bot above is the contract's form (DEC-0034,
|
|
31
|
+
OC-11) and the form used where no such gateway runs. A bot token read by polling (Telegram
|
|
32
|
+
`getUpdates`) has exactly one poller across every machine: a second poller on the same token gets
|
|
33
|
+
`409 Conflict` and the two take each other's updates. Check placement before polling: the instance
|
|
34
|
+
on the machine the estate's placement record names for the agent polls, an instance on any other
|
|
35
|
+
machine does not poll and reports `degraded` with the reason (`poller-elsewhere`), and a test starts a
|
|
36
|
+
second instance placed elsewhere and sees it stay off the token.
|
|
37
|
+
|
|
28
38
|
Record the answer (`accepted`, `declined` or `later`) in the agent's state and in its conformance
|
|
29
39
|
report, and do not ask again; an agent that serves `surfaces.operatorChannel` also shows it as
|
|
30
40
|
`proposal` in its status document. Creating the bot and putting its token into the secret store
|
|
@@ -57,9 +67,9 @@ For a PassionCode.ai repository, the agent's repository follows the organization
|
|
|
57
67
|
and a `CLAUDE.md` whose first line is `@AGENTS.md`.
|
|
58
68
|
|
|
59
69
|
Whoever owns the repository, an agent with a page gets the dashboard rule block in its `AGENTS.md`
|
|
60
|
-
(pages open only in Fabric Dashboards; the block is in `references/dashboard-links.md`)
|
|
61
|
-
|
|
62
|
-
the project).
|
|
70
|
+
(pages open only in Fabric Dashboards; the block is in `references/dashboard-links.md`); the agent runs the
|
|
71
|
+
adapter's link gate (`scripts/check_dashboard_link.py` from the skill's own directory, agent-side, never a copy in the
|
|
72
|
+
project or a step of its CI), and the project's own test pins the gate's negative fixture (the same reference).
|
|
63
73
|
|
|
64
74
|
org-index `scripts/check_format.py` reports 0 findings for it before it is called done. An agent
|
|
65
75
|
someone builds for themselves is not a PassionCode.ai repository: its licence is its owner's
|
|
@@ -218,9 +218,12 @@ leaves a held task still. The working-with-fabric skill's Step 5 carries it; Fab
|
|
|
218
218
|
|
|
219
219
|
## Secrets and confinement
|
|
220
220
|
|
|
221
|
-
1. **A secret never enters an environment, argv, URL or log a child can read.**
|
|
222
|
-
|
|
223
|
-
|
|
221
|
+
1. **A secret never enters an environment, argv, URL or log a child can read.** The agent's own
|
|
222
|
+
process may receive its key in its environment from its supervisor or a vault runner (the one
|
|
223
|
+
rule this page, `models-and-providers.md` and building-fabric-services' LC-21 share); it never
|
|
224
|
+
passes that key to a child it starts. Scrub the child's environment, and hand a child a secret
|
|
225
|
+
it needs over a pipe or file descriptor, or through a vault runner per command; never print a
|
|
226
|
+
configuration dump, and never filter one yourself.
|
|
224
227
|
2. **Confine what an agent runs by the operating system**, per run (filesystem, network, ports),
|
|
225
228
|
and treat prompt rules and command guards as tripwires, not boundaries.
|
|
226
229
|
3. **Fail closed.** When a reduced view or a scope cannot be built, answer an error, never the
|
package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/references/where-agents-run.md
CHANGED
|
@@ -28,6 +28,8 @@ The normative rules are the Fabric Agent Contract's, at the commit this plugin p
|
|
|
28
28
|
| **Personal cloud** | the person's own always-on machine in PassionCode's cloud (or the same stack self-hosted), one more machine of their estate | an agent that answers mail at night, a scheduled digest, a bot |
|
|
29
29
|
| **Organization** | the organization's cloud, its members' machines enrolled into it, its own server holding members, grants and usage | a support agent, an internal analyst, an agent the organization bought |
|
|
30
30
|
| **Enterprise** | an organization's dedicated cloud with personal onboarding | the same agents under the enterprise's own boundary |
|
|
31
|
+
| **One computer, a personal and an organization account** | one Mac (or other computer) with two counted OS accounts, the person's own and one an organization owns whole, each running its own Fabric and its own copy of each agent (contract DEC-0154, `docs/specification/service.md`, *Several OS accounts on one computer*) | the same agent once per account: its own port recorded per account and claimed in the computer's shared folder (HA-1), never the other account's; loopback reaches every account, so a caller checks the listener's owner (HA-2) and no door answers loopback without a token (HA-3) |
|
|
32
|
+
| **A member's virtual machine** | a virtual machine under a member's account, enrolled as a device of its own (DEC-0154 HA-4, `docs/specification/devices.md`); it may carry the computer's host label | an agent the member runs apart from the computer's accounts: its own enrollment, secrets and ports; a port forwarder that relays the guest onto loopback makes its callers T2, never token-free |
|
|
31
33
|
|
|
32
34
|
Every step up is paid as cloud only: the person or the organization pays for the cloud its agents run in, and the
|
|
33
35
|
order says which hosting it holds (`personal-cloud`, `org-cloud`, `enterprise-cloud` in `entitlement/1`). An agent never
|
|
@@ -129,6 +131,8 @@ and move only that capability to the cloud.
|
|
|
129
131
|
- Where does each instance run, and in which context? Write it in the knowledge pack.
|
|
130
132
|
- Does any state, secret, log line or cache key cross contexts? It must not.
|
|
131
133
|
- Which capabilities need the person's machine, and what do they answer when it is off?
|
|
134
|
+
- On a computer with more than one counted OS account, or under a member's virtual machine: a port recorded per
|
|
135
|
+
account, the listener's owner checked before a token is sent, no token-free loopback door (DEC-0154).
|
|
132
136
|
- Which uptime category is it, A (a cloud host from the first release) or B (local only)? The README names it.
|
|
133
137
|
- Who pays for each call (which grant, which key)? The person's personal key never pays for an organization.
|
|
134
138
|
- If it joins machines or applies the estate record: tokens from stdin or a 0600 file only, revisions verified with
|