@passioncode-ai/fabric-agent-adapter 0.59.0 → 0.61.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +195 -0
- package/README.md +2 -1
- package/package.json +1 -1
- package/plugins/fabric-agent-adapter/.claude-plugin/plugin.json +1 -1
- package/plugins/fabric-agent-adapter/skills/adapting-projects-to-fabric/SKILL.md +1 -1
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/SKILL.md +4 -4
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/board.md +93 -20
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/interop.md +23 -6
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/kit-modules.md +2 -2
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/package.md +7 -2
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-board-link.mjs +117 -0
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-board-session.mjs +33 -7
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-board-slots.mjs +80 -1
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-board.mjs +1 -0
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-interop-rules.mjs +10 -0
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-interop.mjs +14 -8
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-lock.mjs +24 -4
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-mandate.mjs +3 -0
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-package.mjs +6 -1
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_board.py +1 -0
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_board_link.py +146 -0
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_board_session.py +31 -8
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_board_slots.py +80 -4
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_interop.py +33 -25
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_interop_rules.py +19 -6
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_jsvalue.py +23 -3
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_lock.py +17 -3
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_mandate.py +86 -7
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_package.py +14 -6
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/kit.json +210 -22
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/sample_service.py +2 -2
- package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/SKILL.md +1 -1
- package/plugins/fabric-agent-adapter/skills/working-with-fabric/SKILL.md +27 -27
- package/plugins/fabric-agent-adapter/skills/working-with-fabric/references/project-board.md +37 -8
- package/plugins/fabric-agent-adapter/skills/working-with-fabric/scripts/fabric_session_env.py +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fabric-service-kit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.61.0",
|
|
4
4
|
"about": "The service kit's modules in dependency order: a module imports only modules listed before it. Written by fabric_kit.py build; edit the order and layers by hand, never the digests.",
|
|
5
5
|
"python": [
|
|
6
6
|
{
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"file": "fabric_jsvalue.py",
|
|
9
9
|
"layer": "L0",
|
|
10
10
|
"imports": [],
|
|
11
|
-
"sha256": "
|
|
11
|
+
"sha256": "052f1b40bab18600b3731dbdca27cbff17588c21d9458fa6241efd1340d0e09a"
|
|
12
12
|
},
|
|
13
13
|
{
|
|
14
14
|
"module": "fabric_time",
|
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
"fabric_jsvalue",
|
|
101
101
|
"fabric_time"
|
|
102
102
|
],
|
|
103
|
-
"sha256": "
|
|
103
|
+
"sha256": "fb19ce5359606bd6e3352ab02b2a12f49605ec6e5c49b55cce1f79c831325044"
|
|
104
104
|
},
|
|
105
105
|
{
|
|
106
106
|
"module": "fabric_delegation",
|
|
@@ -165,7 +165,7 @@
|
|
|
165
165
|
"fabric_package_schema",
|
|
166
166
|
"fabric_secrets"
|
|
167
167
|
],
|
|
168
|
-
"sha256": "
|
|
168
|
+
"sha256": "1f2b9e73b2b32a7e1e887d4b69f87c6e21b4d1227ad924a235334223e6dd51ca"
|
|
169
169
|
},
|
|
170
170
|
{
|
|
171
171
|
"module": "fabric_protocols",
|
|
@@ -230,7 +230,7 @@
|
|
|
230
230
|
"fabric_paths",
|
|
231
231
|
"fabric_platform"
|
|
232
232
|
],
|
|
233
|
-
"sha256": "
|
|
233
|
+
"sha256": "dfaf92a7086cbb097d832a305869b7964e2d2a9da0e3365c8ec1685a7bb4fef9"
|
|
234
234
|
},
|
|
235
235
|
{
|
|
236
236
|
"module": "fabric_usage",
|
|
@@ -377,10 +377,11 @@
|
|
|
377
377
|
"fabric_actions",
|
|
378
378
|
"fabric_base",
|
|
379
379
|
"fabric_delegation",
|
|
380
|
+
"fabric_jsvalue",
|
|
380
381
|
"fabric_mandate",
|
|
381
382
|
"fabric_time"
|
|
382
383
|
],
|
|
383
|
-
"sha256": "
|
|
384
|
+
"sha256": "9bdb7989e57b9d0b0d15eb9982d396499823a5e2c528230b71c67866c736e0f5"
|
|
384
385
|
},
|
|
385
386
|
{
|
|
386
387
|
"module": "fabric_interop",
|
|
@@ -391,12 +392,13 @@
|
|
|
391
392
|
"fabric_base",
|
|
392
393
|
"fabric_delegation",
|
|
393
394
|
"fabric_interop_rules",
|
|
395
|
+
"fabric_jsvalue",
|
|
394
396
|
"fabric_mandate",
|
|
395
397
|
"fabric_page_links",
|
|
396
398
|
"fabric_service",
|
|
397
399
|
"fabric_time"
|
|
398
400
|
],
|
|
399
|
-
"sha256": "
|
|
401
|
+
"sha256": "d27e31834611a37cf2a117746f2f60fc187ccc48718eb546ff923c5d0fce7dea"
|
|
400
402
|
},
|
|
401
403
|
{
|
|
402
404
|
"module": "fabric_hub",
|
|
@@ -424,9 +426,12 @@
|
|
|
424
426
|
"imports": [
|
|
425
427
|
"fabric_board_shapes",
|
|
426
428
|
"fabric_hub",
|
|
427
|
-
"
|
|
429
|
+
"fabric_interop_rules",
|
|
430
|
+
"fabric_mandate",
|
|
431
|
+
"fabric_service",
|
|
432
|
+
"fabric_time"
|
|
428
433
|
],
|
|
429
|
-
"sha256": "
|
|
434
|
+
"sha256": "052bc3c474ece835bb428c37ca864810d04e394d991ddb9c93989a7a825073a5"
|
|
430
435
|
},
|
|
431
436
|
{
|
|
432
437
|
"module": "fabric_board_slots",
|
|
@@ -435,7 +440,7 @@
|
|
|
435
440
|
"imports": [
|
|
436
441
|
"fabric_board_shapes"
|
|
437
442
|
],
|
|
438
|
-
"sha256": "
|
|
443
|
+
"sha256": "92b065e3df935547cf46653245f1129e4a1f8b59b0a41e8fa9ffdc41596ee592"
|
|
439
444
|
},
|
|
440
445
|
{
|
|
441
446
|
"module": "fabric_board_session",
|
|
@@ -448,7 +453,7 @@
|
|
|
448
453
|
"fabric_hub",
|
|
449
454
|
"fabric_service"
|
|
450
455
|
],
|
|
451
|
-
"sha256": "
|
|
456
|
+
"sha256": "1fd3c3884f3044b56a40f78b33ff88dcac9272284f6681ea359c662879826f7e"
|
|
452
457
|
},
|
|
453
458
|
{
|
|
454
459
|
"module": "fabric_board_fixture",
|
|
@@ -470,7 +475,7 @@
|
|
|
470
475
|
"fabric_board_session",
|
|
471
476
|
"fabric_board_shapes"
|
|
472
477
|
],
|
|
473
|
-
"sha256": "
|
|
478
|
+
"sha256": "f86c40b8291f8c818f6924910f4022b013d5fd107abaf8825dd0aa6c5e418638"
|
|
474
479
|
},
|
|
475
480
|
{
|
|
476
481
|
"module": "fabric_http",
|
|
@@ -589,7 +594,7 @@
|
|
|
589
594
|
"fabric-jsvalue",
|
|
590
595
|
"fabric-time"
|
|
591
596
|
],
|
|
592
|
-
"sha256": "
|
|
597
|
+
"sha256": "b70f3de03a659e60bba7b5a0580b3582825cd7b8a8e30a28c79621919ec5b7bb"
|
|
593
598
|
},
|
|
594
599
|
{
|
|
595
600
|
"module": "fabric-delegation",
|
|
@@ -652,7 +657,7 @@
|
|
|
652
657
|
"fabric-package-schema",
|
|
653
658
|
"fabric-secrets"
|
|
654
659
|
],
|
|
655
|
-
"sha256": "
|
|
660
|
+
"sha256": "8cfb32eebbd4e1bcf28a6e4437344ae2dd54479b0e7c820f002e9f94ab9ecaad"
|
|
656
661
|
},
|
|
657
662
|
{
|
|
658
663
|
"module": "fabric-protocols",
|
|
@@ -716,7 +721,7 @@
|
|
|
716
721
|
"fabric-base",
|
|
717
722
|
"fabric-paths"
|
|
718
723
|
],
|
|
719
|
-
"sha256": "
|
|
724
|
+
"sha256": "02cf833c97a07a8b3c788f9c93f70c4b9c9066efa25318dccf0038e0fc79717f"
|
|
720
725
|
},
|
|
721
726
|
{
|
|
722
727
|
"module": "fabric-usage",
|
|
@@ -865,7 +870,7 @@
|
|
|
865
870
|
"fabric-jsvalue",
|
|
866
871
|
"fabric-mandate"
|
|
867
872
|
],
|
|
868
|
-
"sha256": "
|
|
873
|
+
"sha256": "b4e386c359a48e49ffff8a842215760c18a7c98a0af4754a808a35fb2820d458"
|
|
869
874
|
},
|
|
870
875
|
{
|
|
871
876
|
"module": "fabric-interop",
|
|
@@ -878,7 +883,7 @@
|
|
|
878
883
|
"fabric-page-links",
|
|
879
884
|
"fabric-service"
|
|
880
885
|
],
|
|
881
|
-
"sha256": "
|
|
886
|
+
"sha256": "989040aed33b2712a258244192bdf70e811a51076aa1b62f2adc2a6db051dbed"
|
|
882
887
|
},
|
|
883
888
|
{
|
|
884
889
|
"module": "fabric-hub",
|
|
@@ -906,9 +911,12 @@
|
|
|
906
911
|
"imports": [
|
|
907
912
|
"fabric-board-shapes",
|
|
908
913
|
"fabric-hub",
|
|
909
|
-
"fabric-
|
|
914
|
+
"fabric-interop-rules",
|
|
915
|
+
"fabric-mandate",
|
|
916
|
+
"fabric-service",
|
|
917
|
+
"fabric-time"
|
|
910
918
|
],
|
|
911
|
-
"sha256": "
|
|
919
|
+
"sha256": "6e7d51f4fd9730d93455f50dd30e97907b8b9e1ca65a1d69f036f2e8ec05cc0d"
|
|
912
920
|
},
|
|
913
921
|
{
|
|
914
922
|
"module": "fabric-board-slots",
|
|
@@ -917,7 +925,7 @@
|
|
|
917
925
|
"imports": [
|
|
918
926
|
"fabric-board-shapes"
|
|
919
927
|
],
|
|
920
|
-
"sha256": "
|
|
928
|
+
"sha256": "fc77a3c6e62aa18575568bef4f703cce2edaba8cef648813ebcdbb21bdc27a11"
|
|
921
929
|
},
|
|
922
930
|
{
|
|
923
931
|
"module": "fabric-board-session",
|
|
@@ -930,7 +938,7 @@
|
|
|
930
938
|
"fabric-hub",
|
|
931
939
|
"fabric-service"
|
|
932
940
|
],
|
|
933
|
-
"sha256": "
|
|
941
|
+
"sha256": "18555962e5f6d18080a3e7971c4c6640452542f6042d07917e7ebc073721c415"
|
|
934
942
|
},
|
|
935
943
|
{
|
|
936
944
|
"module": "fabric-board-fixture",
|
|
@@ -952,7 +960,7 @@
|
|
|
952
960
|
"fabric-board-session",
|
|
953
961
|
"fabric-board-shapes"
|
|
954
962
|
],
|
|
955
|
-
"sha256": "
|
|
963
|
+
"sha256": "15fbb4441fcf7d2f285375b75de64ad6cffea129c515084c110245376b07775f"
|
|
956
964
|
},
|
|
957
965
|
{
|
|
958
966
|
"module": "fabric-http",
|
|
@@ -4498,6 +4506,186 @@
|
|
|
4498
4506
|
"fabric-openrouter.mjs": "6041f3ab30f516658e1dbab4897a651cc8509b2136cfa8e769802c6b40ec2f35",
|
|
4499
4507
|
"fabric-package.schema.json": "2ba799f576fad0f608029223c4ccccd122152f1c5dbfa8ce8b31cd63ac92ad44",
|
|
4500
4508
|
"share-registration.schema.json": "34b3997eeaf936ebc861342a23045634a7c18c19f01d7ed4198310d81989f5b0"
|
|
4509
|
+
},
|
|
4510
|
+
"0.60.0": {
|
|
4511
|
+
"fabric_jsvalue.py": "12888a2c934a885d35999ac9782eaedc8d04946d9775213344a235a8814d3d28",
|
|
4512
|
+
"fabric_time.py": "588f383da4ac6a243ea95b6ffc3a0aa99ca94245732dc4937734f190b7af4ae9",
|
|
4513
|
+
"fabric_identifiers.py": "0fd814d521ac3aa39907458265870753046a73f48af3d8581ab864b93b211607",
|
|
4514
|
+
"fabric_secrets.py": "1d0191f0ec108fdc68345056b8c574b1f691509d1c353e41d98bfd58a59e8d3c",
|
|
4515
|
+
"fabric_crypto.py": "9c34aee20dbe4d6742e4fdbaab68ceb934bbe7dbd3a904c0010824ace16cdeaa",
|
|
4516
|
+
"fabric_base.py": "f62bcc2ed9912660fa875d27a09f60867260cc4925f79873501fd9620be59611",
|
|
4517
|
+
"fabric_platform.py": "a9350dff55ef0fb3a23cdb4d0320a15868b15a8deb10d2eb74d72c58740c284b",
|
|
4518
|
+
"fabric_paths.py": "8a1ee742f80f436e9f28c61b4f049a9545de2a9e0d66bfc61faa6ee5d1ba3734",
|
|
4519
|
+
"fabric_estate_rules.py": "8b36a7f4108d9c2b1fb38c8bff344778c807bed631a99b4a563ecb0a49c10b1c",
|
|
4520
|
+
"fabric_estate.py": "b3cd56dcb86e04d252980322ac8054da1aaef24ac64690f7aa80e7c765ee6f60",
|
|
4521
|
+
"fabric_mandate.py": "050c43d0166a7dfba82e29c4e978f05c364cf6da06d0a781bd023a566777c17b",
|
|
4522
|
+
"fabric_delegation.py": "716f0ff7ac01095f54b24970beac1962128e8ff33026b243fc0467876142ab03",
|
|
4523
|
+
"fabric_share.py": "da36a466426fc29dd7dd40013167f3959a18375f8fedd228bf64f298cec1040c",
|
|
4524
|
+
"fabric_ceremonies.py": "a59e83cf4adb2669a9b98008e3d3a0cba991a35cbff97bc604fc82fe81cfd49f",
|
|
4525
|
+
"fabric_package_schema.py": "e623f0408d38e3343ed66222fb812907c6c52e1a286eb1c1176ab2e64640c9ad",
|
|
4526
|
+
"fabric_package.py": "1f2b9e73b2b32a7e1e887d4b69f87c6e21b4d1227ad924a235334223e6dd51ca",
|
|
4527
|
+
"fabric_protocols.py": "42529a7df4d753544d2e37a18ec81266d6e1e80477cb8558a3ab521416d45791",
|
|
4528
|
+
"fabric_actions.py": "ae21d1199614c4f74d1dcd1e0a87107a9d52434cd9e2d64aa24a7b1e196fb723",
|
|
4529
|
+
"fabric_connections.py": "7de55cb7d808f756d650effabfaa12027d40a5bd5d2f6d448c32969d47529ecb",
|
|
4530
|
+
"fabric_a2a.py": "8b01502131215bb4de1c01866187c56e99b791543923ed8577535573db33b919",
|
|
4531
|
+
"fabric_page_links.py": "1b57ea573c550e2f90d1ec3edcc655917ceaa0db9dd1635fccf422ec3024d25e",
|
|
4532
|
+
"fabric_lock.py": "ba2399d2137c7a7791b7133b9db9cca36693f4eb7e30955b25a75ade814e95ba",
|
|
4533
|
+
"fabric_usage.py": "5cc2e03ccc5b06e81987ed7bc3eead7a7e6cbf1a7cb8e05c6c64315eed9d91b6",
|
|
4534
|
+
"fabric_backups.py": "1f3f0d7ecf361b29e9101e07f1c53e5dc304d598bf26fd59ec89f16b9fed2420",
|
|
4535
|
+
"fabric_descriptor.py": "a6d7a4a38186f7ef527d16218bbf96e39e255f9547be668adcfbec063dabb7ed",
|
|
4536
|
+
"fabric_context.py": "6ae311ddc7217a4aff915e7ce2646486931acd128462b7bebe4a52bbb5fbb6c7",
|
|
4537
|
+
"fabric_auth.py": "71115d18c67b7b806cb57b64b77e01ad97fc0e63e6f49ee850f778123617d905",
|
|
4538
|
+
"fabric_events.py": "cd94b186e2a8f8cb4ad2b6bd44d83ec5021933075e28c5d655f387f16dff42b8",
|
|
4539
|
+
"fabric_logs.py": "86dc55bfafa2a57264722e2403510a249b95de0e4a722b2e4bc3948e3bd93da9",
|
|
4540
|
+
"fabric_supervisors.py": "3c5b2e8c310738720b1c1b779be4710e90251013d9be4c68f9952edc0bf55d5f",
|
|
4541
|
+
"fabric_service.py": "a2e813469a47d4d3eea996628635c8903007498bdb6a1ae032a7a5ce6f49fe2f",
|
|
4542
|
+
"fabric_profiles.py": "26e21ec29c016000f8ca8053b7b489184854a73be1b7fdc0a18d12990203db9b",
|
|
4543
|
+
"fabric_interop_rules.py": "82c079a4d9421ea2cd10c1dfa8e1c447b80d5e0dcc8d52d52415bf028e34c91e",
|
|
4544
|
+
"fabric_interop.py": "8f7e43bf01fa5e969d7d819f4b0188b9acfd846f6f85a37ea139e550d61e4e6c",
|
|
4545
|
+
"fabric_hub.py": "b9ac852e601b1d54cf61351677a628afc69faeed7d1fc74ebe541c1cf38e0c2a",
|
|
4546
|
+
"fabric_board_shapes.py": "0a0e8d3d40e33dfd8c457aedb85330b2ff25f8c49a33eb6cbd5a5cc8a5007f7e",
|
|
4547
|
+
"fabric_board_link.py": "e8d2310e5f53c75e4bf642c3d980b2faba692731eaf56ec245cea05446e38bef",
|
|
4548
|
+
"fabric_board_slots.py": "92b065e3df935547cf46653245f1129e4a1f8b59b0a41e8fa9ffdc41596ee592",
|
|
4549
|
+
"fabric_board_session.py": "9b299b578ce8b1e834afdbbdb54183281df064302417fe364067e97e9ac23979",
|
|
4550
|
+
"fabric_board_fixture.py": "69761ce205ec640762ec9b591c6903e5a87f844e8d423b041681924027e39d1e",
|
|
4551
|
+
"fabric_board.py": "34c1200860040aa61cdd35f911f70d34d64b4a5cd91f892328d1169e4a89d8cd",
|
|
4552
|
+
"fabric_http.py": "80e22ae0bba91de13a94d64b595108b39c58f16f7b4137f3a48bdd9503f424fe",
|
|
4553
|
+
"fabric_openrouter.py": "d06a40f83f2fb8bd441ab3485ae882f1fbdd9cd7a9c1ec175eb47cb8ae2cce81",
|
|
4554
|
+
"fabric-jsvalue.mjs": "dfbdb8c41584972c9389750a41719374a1cfc5652ed438dd1623025190b0106e",
|
|
4555
|
+
"fabric-time.mjs": "3ff932069038a720df1c68c6492976906737b2e67e5c12d9c81c418597f661de",
|
|
4556
|
+
"fabric-identifiers.mjs": "a18c2a501a4aa170bfd3d99e571ad6b7662649b4d3b9d2a540c002ea42811bbf",
|
|
4557
|
+
"fabric-secrets.mjs": "6ad8ab18ac899ecc2384e8ec6a3fb689b92be3b9a5ce3a59b92a37d52da5d766",
|
|
4558
|
+
"fabric-crypto.mjs": "038e03689701e3c9721a1e7f8e0a4d02a52d6a5d1661b0dc84035edc3ebbfcf6",
|
|
4559
|
+
"fabric-base.mjs": "7804b2df7715dbbf9702a9b61b6b8cef2110f9a52b04cabd8fb0a66458d87512",
|
|
4560
|
+
"fabric-platform.mjs": "a8119d95ebba4d589a9e401f5d6fc8dda62d59d44e4c1ff811d97fac3771ac0c",
|
|
4561
|
+
"fabric-paths.mjs": "aa630d611e748a899e7043480f4a4e46b444f2e15ff945f30c2fbef21c1ceea5",
|
|
4562
|
+
"fabric-estate-rules.mjs": "7476be71174aa5b1026134f2b335abf647feaa55584e2f9de8618e3054aa8e1e",
|
|
4563
|
+
"fabric-estate.mjs": "e8a2e62d2313121e6cb502f6e6abad94d1d546a44b4d9b3ce2be29e7808e8cf3",
|
|
4564
|
+
"fabric-mandate.mjs": "deaab2bfb929d1bd35ae1bad71e7b9ad9902cc23b8eb51819ed592fd80eddf95",
|
|
4565
|
+
"fabric-delegation.mjs": "04eaf6cd1786d4309a253a27dbdb05e27b408cb511aa41b1633a96634b775e65",
|
|
4566
|
+
"fabric-share.mjs": "bfb26581c21ad984c2a337da02429f9f3a165cc582f8ba48de4d3dfb7d163a59",
|
|
4567
|
+
"fabric-ceremonies.mjs": "117d4374c9e95c930a38de7adbd4323774798f4fe6ec6f24afcd6f2c7298ca44",
|
|
4568
|
+
"fabric-package-schema.mjs": "cd28092375db0fc21ffab1f0bb7794f7f8979ee08c64d3b9faf4b3845357caa6",
|
|
4569
|
+
"fabric-package.mjs": "8cfb32eebbd4e1bcf28a6e4437344ae2dd54479b0e7c820f002e9f94ab9ecaad",
|
|
4570
|
+
"fabric-protocols.mjs": "5fd8765fdd3e507cc85c108492682bf5cbb4ae08873245c50374fb01d33c75e4",
|
|
4571
|
+
"fabric-actions.mjs": "06e42f5e24c96311d5417d0d1effa93479ef7128a7ab139903b2bcf59253f6be",
|
|
4572
|
+
"fabric-connections.mjs": "303432e547ce563e90ca9ffcd827f5612f51d3582929834e1add0fdaf6485dcc",
|
|
4573
|
+
"fabric-a2a.mjs": "51b72fe1d80649d659fcad3a8f96370db3476c4a7b30cbabd8522c138be69346",
|
|
4574
|
+
"fabric-page-links.mjs": "a8834926e9d4bbf7c4857f551451d2ebf6ac8873bbccaaf89c5e30cf45b17ee6",
|
|
4575
|
+
"fabric-lock.mjs": "ac219ab0a326d5c43c7c4c255e0c3843d4794de795a60e3af661e7d5350ea052",
|
|
4576
|
+
"fabric-usage.mjs": "1c4d18004639409624ac3516a02f2b60bbf55abdb612e9a96c37e83666eb87a7",
|
|
4577
|
+
"fabric-backups.mjs": "cfd8c9085e3d597a783099c2bd2ffe2f3faa0daaadab46dedd30523894cfeb06",
|
|
4578
|
+
"fabric-descriptor.mjs": "243bbce42989f67c4c5ec6b7659e201b3f9a1c08c71d429d88ec934d870f5104",
|
|
4579
|
+
"fabric-context.mjs": "1112d695e872f9825cbc94f08484974bff3880087bc29b8be59f885f03e8f7be",
|
|
4580
|
+
"fabric-auth.mjs": "782c2aa732f8320f604194660117640a7ea145e12b8155c04e88cef7c516a5b3",
|
|
4581
|
+
"fabric-events.mjs": "c463d6ffcae24229a5c608d8fcea4268d2ccc5024b19fa10e5a452284068fa71",
|
|
4582
|
+
"fabric-logs.mjs": "58467e5719c16e099d05bbedec47a95712506ab03c33f3cd4be1252e8498a946",
|
|
4583
|
+
"fabric-supervisors.mjs": "d45c38de0cb3ed85e083496c2d3c51dab004454accdd87f4762a512a6d442573",
|
|
4584
|
+
"fabric-service.mjs": "6aa673657427211b491a9b63f94b9847a7e6aa3ee1b7353e1af11f46469803a3",
|
|
4585
|
+
"fabric-profiles.mjs": "314376cf2deb87f235fb18b11d3b532e211f585b9af0a9302b5f4cc39971b532",
|
|
4586
|
+
"fabric-interop-rules.mjs": "e4f8b133138e27353a7976c0360bd1653c90daed43b3f843f85a19f14f5e9221",
|
|
4587
|
+
"fabric-interop.mjs": "ee7e6d32be1f42e6d21a943b8886652352408c49c6404d9749b8a02dc3901e92",
|
|
4588
|
+
"fabric-hub.mjs": "c005115a864cfd67daa4862097bb14acfe5a60bf653897e5bf8a570dd80f1070",
|
|
4589
|
+
"fabric-board-shapes.mjs": "c1db7b7bd0d58d82bb6d8dfbc3cd1547a256a333052d367e82ff1b3edf2804d7",
|
|
4590
|
+
"fabric-board-link.mjs": "b1ac329b65b679193b94b81fe735922e14427ed540ba910b1a815ce3447e3220",
|
|
4591
|
+
"fabric-board-slots.mjs": "fc77a3c6e62aa18575568bef4f703cce2edaba8cef648813ebcdbb21bdc27a11",
|
|
4592
|
+
"fabric-board-session.mjs": "b81e74397fbae655183fc0dabb8d7406c9c5e9b6e02d893e046aa3521a3a8619",
|
|
4593
|
+
"fabric-board-fixture.mjs": "83c4b7e33ee47b68385faf2569d38d5c8a0c5cb0f8656090f41e1b0eed2f436e",
|
|
4594
|
+
"fabric-board.mjs": "0d75c3e27a0b791bdbc35b2e93b3299e5831d3ab3003ce441e6268397e32b448",
|
|
4595
|
+
"fabric-http.mjs": "9f899829073470b9c2b449605a9371b773848eec4e3a0122ed4ccde5eddcdb4b",
|
|
4596
|
+
"fabric-openrouter.mjs": "6041f3ab30f516658e1dbab4897a651cc8509b2136cfa8e769802c6b40ec2f35",
|
|
4597
|
+
"fabric-package.schema.json": "2ba799f576fad0f608029223c4ccccd122152f1c5dbfa8ce8b31cd63ac92ad44",
|
|
4598
|
+
"share-registration.schema.json": "34b3997eeaf936ebc861342a23045634a7c18c19f01d7ed4198310d81989f5b0"
|
|
4599
|
+
},
|
|
4600
|
+
"0.61.0": {
|
|
4601
|
+
"fabric_jsvalue.py": "052f1b40bab18600b3731dbdca27cbff17588c21d9458fa6241efd1340d0e09a",
|
|
4602
|
+
"fabric_time.py": "588f383da4ac6a243ea95b6ffc3a0aa99ca94245732dc4937734f190b7af4ae9",
|
|
4603
|
+
"fabric_identifiers.py": "0fd814d521ac3aa39907458265870753046a73f48af3d8581ab864b93b211607",
|
|
4604
|
+
"fabric_secrets.py": "1d0191f0ec108fdc68345056b8c574b1f691509d1c353e41d98bfd58a59e8d3c",
|
|
4605
|
+
"fabric_crypto.py": "9c34aee20dbe4d6742e4fdbaab68ceb934bbe7dbd3a904c0010824ace16cdeaa",
|
|
4606
|
+
"fabric_base.py": "f62bcc2ed9912660fa875d27a09f60867260cc4925f79873501fd9620be59611",
|
|
4607
|
+
"fabric_platform.py": "a9350dff55ef0fb3a23cdb4d0320a15868b15a8deb10d2eb74d72c58740c284b",
|
|
4608
|
+
"fabric_paths.py": "8a1ee742f80f436e9f28c61b4f049a9545de2a9e0d66bfc61faa6ee5d1ba3734",
|
|
4609
|
+
"fabric_estate_rules.py": "8b36a7f4108d9c2b1fb38c8bff344778c807bed631a99b4a563ecb0a49c10b1c",
|
|
4610
|
+
"fabric_estate.py": "b3cd56dcb86e04d252980322ac8054da1aaef24ac64690f7aa80e7c765ee6f60",
|
|
4611
|
+
"fabric_mandate.py": "fb19ce5359606bd6e3352ab02b2a12f49605ec6e5c49b55cce1f79c831325044",
|
|
4612
|
+
"fabric_delegation.py": "716f0ff7ac01095f54b24970beac1962128e8ff33026b243fc0467876142ab03",
|
|
4613
|
+
"fabric_share.py": "da36a466426fc29dd7dd40013167f3959a18375f8fedd228bf64f298cec1040c",
|
|
4614
|
+
"fabric_ceremonies.py": "a59e83cf4adb2669a9b98008e3d3a0cba991a35cbff97bc604fc82fe81cfd49f",
|
|
4615
|
+
"fabric_package_schema.py": "e623f0408d38e3343ed66222fb812907c6c52e1a286eb1c1176ab2e64640c9ad",
|
|
4616
|
+
"fabric_package.py": "1f2b9e73b2b32a7e1e887d4b69f87c6e21b4d1227ad924a235334223e6dd51ca",
|
|
4617
|
+
"fabric_protocols.py": "42529a7df4d753544d2e37a18ec81266d6e1e80477cb8558a3ab521416d45791",
|
|
4618
|
+
"fabric_actions.py": "ae21d1199614c4f74d1dcd1e0a87107a9d52434cd9e2d64aa24a7b1e196fb723",
|
|
4619
|
+
"fabric_connections.py": "7de55cb7d808f756d650effabfaa12027d40a5bd5d2f6d448c32969d47529ecb",
|
|
4620
|
+
"fabric_a2a.py": "8b01502131215bb4de1c01866187c56e99b791543923ed8577535573db33b919",
|
|
4621
|
+
"fabric_page_links.py": "1b57ea573c550e2f90d1ec3edcc655917ceaa0db9dd1635fccf422ec3024d25e",
|
|
4622
|
+
"fabric_lock.py": "dfaf92a7086cbb097d832a305869b7964e2d2a9da0e3365c8ec1685a7bb4fef9",
|
|
4623
|
+
"fabric_usage.py": "5cc2e03ccc5b06e81987ed7bc3eead7a7e6cbf1a7cb8e05c6c64315eed9d91b6",
|
|
4624
|
+
"fabric_backups.py": "1f3f0d7ecf361b29e9101e07f1c53e5dc304d598bf26fd59ec89f16b9fed2420",
|
|
4625
|
+
"fabric_descriptor.py": "a6d7a4a38186f7ef527d16218bbf96e39e255f9547be668adcfbec063dabb7ed",
|
|
4626
|
+
"fabric_context.py": "6ae311ddc7217a4aff915e7ce2646486931acd128462b7bebe4a52bbb5fbb6c7",
|
|
4627
|
+
"fabric_auth.py": "71115d18c67b7b806cb57b64b77e01ad97fc0e63e6f49ee850f778123617d905",
|
|
4628
|
+
"fabric_events.py": "cd94b186e2a8f8cb4ad2b6bd44d83ec5021933075e28c5d655f387f16dff42b8",
|
|
4629
|
+
"fabric_logs.py": "86dc55bfafa2a57264722e2403510a249b95de0e4a722b2e4bc3948e3bd93da9",
|
|
4630
|
+
"fabric_supervisors.py": "3c5b2e8c310738720b1c1b779be4710e90251013d9be4c68f9952edc0bf55d5f",
|
|
4631
|
+
"fabric_service.py": "a2e813469a47d4d3eea996628635c8903007498bdb6a1ae032a7a5ce6f49fe2f",
|
|
4632
|
+
"fabric_profiles.py": "26e21ec29c016000f8ca8053b7b489184854a73be1b7fdc0a18d12990203db9b",
|
|
4633
|
+
"fabric_interop_rules.py": "9bdb7989e57b9d0b0d15eb9982d396499823a5e2c528230b71c67866c736e0f5",
|
|
4634
|
+
"fabric_interop.py": "d27e31834611a37cf2a117746f2f60fc187ccc48718eb546ff923c5d0fce7dea",
|
|
4635
|
+
"fabric_hub.py": "b9ac852e601b1d54cf61351677a628afc69faeed7d1fc74ebe541c1cf38e0c2a",
|
|
4636
|
+
"fabric_board_shapes.py": "0a0e8d3d40e33dfd8c457aedb85330b2ff25f8c49a33eb6cbd5a5cc8a5007f7e",
|
|
4637
|
+
"fabric_board_link.py": "052bc3c474ece835bb428c37ca864810d04e394d991ddb9c93989a7a825073a5",
|
|
4638
|
+
"fabric_board_slots.py": "92b065e3df935547cf46653245f1129e4a1f8b59b0a41e8fa9ffdc41596ee592",
|
|
4639
|
+
"fabric_board_session.py": "1fd3c3884f3044b56a40f78b33ff88dcac9272284f6681ea359c662879826f7e",
|
|
4640
|
+
"fabric_board_fixture.py": "69761ce205ec640762ec9b591c6903e5a87f844e8d423b041681924027e39d1e",
|
|
4641
|
+
"fabric_board.py": "f86c40b8291f8c818f6924910f4022b013d5fd107abaf8825dd0aa6c5e418638",
|
|
4642
|
+
"fabric_http.py": "80e22ae0bba91de13a94d64b595108b39c58f16f7b4137f3a48bdd9503f424fe",
|
|
4643
|
+
"fabric_openrouter.py": "d06a40f83f2fb8bd441ab3485ae882f1fbdd9cd7a9c1ec175eb47cb8ae2cce81",
|
|
4644
|
+
"fabric-jsvalue.mjs": "dfbdb8c41584972c9389750a41719374a1cfc5652ed438dd1623025190b0106e",
|
|
4645
|
+
"fabric-time.mjs": "3ff932069038a720df1c68c6492976906737b2e67e5c12d9c81c418597f661de",
|
|
4646
|
+
"fabric-identifiers.mjs": "a18c2a501a4aa170bfd3d99e571ad6b7662649b4d3b9d2a540c002ea42811bbf",
|
|
4647
|
+
"fabric-secrets.mjs": "6ad8ab18ac899ecc2384e8ec6a3fb689b92be3b9a5ce3a59b92a37d52da5d766",
|
|
4648
|
+
"fabric-crypto.mjs": "038e03689701e3c9721a1e7f8e0a4d02a52d6a5d1661b0dc84035edc3ebbfcf6",
|
|
4649
|
+
"fabric-base.mjs": "7804b2df7715dbbf9702a9b61b6b8cef2110f9a52b04cabd8fb0a66458d87512",
|
|
4650
|
+
"fabric-platform.mjs": "a8119d95ebba4d589a9e401f5d6fc8dda62d59d44e4c1ff811d97fac3771ac0c",
|
|
4651
|
+
"fabric-paths.mjs": "aa630d611e748a899e7043480f4a4e46b444f2e15ff945f30c2fbef21c1ceea5",
|
|
4652
|
+
"fabric-estate-rules.mjs": "7476be71174aa5b1026134f2b335abf647feaa55584e2f9de8618e3054aa8e1e",
|
|
4653
|
+
"fabric-estate.mjs": "e8a2e62d2313121e6cb502f6e6abad94d1d546a44b4d9b3ce2be29e7808e8cf3",
|
|
4654
|
+
"fabric-mandate.mjs": "b70f3de03a659e60bba7b5a0580b3582825cd7b8a8e30a28c79621919ec5b7bb",
|
|
4655
|
+
"fabric-delegation.mjs": "04eaf6cd1786d4309a253a27dbdb05e27b408cb511aa41b1633a96634b775e65",
|
|
4656
|
+
"fabric-share.mjs": "bfb26581c21ad984c2a337da02429f9f3a165cc582f8ba48de4d3dfb7d163a59",
|
|
4657
|
+
"fabric-ceremonies.mjs": "117d4374c9e95c930a38de7adbd4323774798f4fe6ec6f24afcd6f2c7298ca44",
|
|
4658
|
+
"fabric-package-schema.mjs": "cd28092375db0fc21ffab1f0bb7794f7f8979ee08c64d3b9faf4b3845357caa6",
|
|
4659
|
+
"fabric-package.mjs": "8cfb32eebbd4e1bcf28a6e4437344ae2dd54479b0e7c820f002e9f94ab9ecaad",
|
|
4660
|
+
"fabric-protocols.mjs": "5fd8765fdd3e507cc85c108492682bf5cbb4ae08873245c50374fb01d33c75e4",
|
|
4661
|
+
"fabric-actions.mjs": "06e42f5e24c96311d5417d0d1effa93479ef7128a7ab139903b2bcf59253f6be",
|
|
4662
|
+
"fabric-connections.mjs": "303432e547ce563e90ca9ffcd827f5612f51d3582929834e1add0fdaf6485dcc",
|
|
4663
|
+
"fabric-a2a.mjs": "51b72fe1d80649d659fcad3a8f96370db3476c4a7b30cbabd8522c138be69346",
|
|
4664
|
+
"fabric-page-links.mjs": "a8834926e9d4bbf7c4857f551451d2ebf6ac8873bbccaaf89c5e30cf45b17ee6",
|
|
4665
|
+
"fabric-lock.mjs": "02cf833c97a07a8b3c788f9c93f70c4b9c9066efa25318dccf0038e0fc79717f",
|
|
4666
|
+
"fabric-usage.mjs": "1c4d18004639409624ac3516a02f2b60bbf55abdb612e9a96c37e83666eb87a7",
|
|
4667
|
+
"fabric-backups.mjs": "cfd8c9085e3d597a783099c2bd2ffe2f3faa0daaadab46dedd30523894cfeb06",
|
|
4668
|
+
"fabric-descriptor.mjs": "243bbce42989f67c4c5ec6b7659e201b3f9a1c08c71d429d88ec934d870f5104",
|
|
4669
|
+
"fabric-context.mjs": "1112d695e872f9825cbc94f08484974bff3880087bc29b8be59f885f03e8f7be",
|
|
4670
|
+
"fabric-auth.mjs": "782c2aa732f8320f604194660117640a7ea145e12b8155c04e88cef7c516a5b3",
|
|
4671
|
+
"fabric-events.mjs": "c463d6ffcae24229a5c608d8fcea4268d2ccc5024b19fa10e5a452284068fa71",
|
|
4672
|
+
"fabric-logs.mjs": "58467e5719c16e099d05bbedec47a95712506ab03c33f3cd4be1252e8498a946",
|
|
4673
|
+
"fabric-supervisors.mjs": "d45c38de0cb3ed85e083496c2d3c51dab004454accdd87f4762a512a6d442573",
|
|
4674
|
+
"fabric-service.mjs": "6aa673657427211b491a9b63f94b9847a7e6aa3ee1b7353e1af11f46469803a3",
|
|
4675
|
+
"fabric-profiles.mjs": "314376cf2deb87f235fb18b11d3b532e211f585b9af0a9302b5f4cc39971b532",
|
|
4676
|
+
"fabric-interop-rules.mjs": "b4e386c359a48e49ffff8a842215760c18a7c98a0af4754a808a35fb2820d458",
|
|
4677
|
+
"fabric-interop.mjs": "989040aed33b2712a258244192bdf70e811a51076aa1b62f2adc2a6db051dbed",
|
|
4678
|
+
"fabric-hub.mjs": "c005115a864cfd67daa4862097bb14acfe5a60bf653897e5bf8a570dd80f1070",
|
|
4679
|
+
"fabric-board-shapes.mjs": "c1db7b7bd0d58d82bb6d8dfbc3cd1547a256a333052d367e82ff1b3edf2804d7",
|
|
4680
|
+
"fabric-board-link.mjs": "6e7d51f4fd9730d93455f50dd30e97907b8b9e1ca65a1d69f036f2e8ec05cc0d",
|
|
4681
|
+
"fabric-board-slots.mjs": "fc77a3c6e62aa18575568bef4f703cce2edaba8cef648813ebcdbb21bdc27a11",
|
|
4682
|
+
"fabric-board-session.mjs": "18555962e5f6d18080a3e7971c4c6640452542f6042d07917e7ebc073721c415",
|
|
4683
|
+
"fabric-board-fixture.mjs": "83c4b7e33ee47b68385faf2569d38d5c8a0c5cb0f8656090f41e1b0eed2f436e",
|
|
4684
|
+
"fabric-board.mjs": "15fbb4441fcf7d2f285375b75de64ad6cffea129c515084c110245376b07775f",
|
|
4685
|
+
"fabric-http.mjs": "9f899829073470b9c2b449605a9371b773848eec4e3a0122ed4ccde5eddcdb4b",
|
|
4686
|
+
"fabric-openrouter.mjs": "6041f3ab30f516658e1dbab4897a651cc8509b2136cfa8e769802c6b40ec2f35",
|
|
4687
|
+
"fabric-package.schema.json": "2ba799f576fad0f608029223c4ccccd122152f1c5dbfa8ce8b31cd63ac92ad44",
|
|
4688
|
+
"share-registration.schema.json": "34b3997eeaf936ebc861342a23045634a7c18c19f01d7ed4198310d81989f5b0"
|
|
4501
4689
|
}
|
|
4502
4690
|
},
|
|
4503
4691
|
"data": {
|
package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/sample_service.py
CHANGED
|
@@ -100,7 +100,7 @@ CAPABILITIES = [
|
|
|
100
100
|
#: manifest, so `register --board-project` writes it there.
|
|
101
101
|
TAKE_BACK_CAPABILITY: Dict[str, Any] = {
|
|
102
102
|
"name": TAKE_BACK["tool"], "effect": "change-policy", "idempotency": "required", "job": False,
|
|
103
|
-
"description": "Take back a board slot
|
|
103
|
+
"description": "Take back a board slot moved to another session.",
|
|
104
104
|
# A relayed action: a probe call carries no operator decision, so it is refused and changes nothing (unit r28).
|
|
105
105
|
"probeAssertion": "is refused as operator-decision-required without the operator's decision in _meta",
|
|
106
106
|
"input": _schema("board.take-back-input", TAKE_BACK_INPUT),
|
|
@@ -175,7 +175,7 @@ class Service:
|
|
|
175
175
|
|
|
176
176
|
# --- the project board (opt-in): the input gate and the answer -------------------
|
|
177
177
|
def board_moved(self) -> list:
|
|
178
|
-
"""The capabilities whose slot
|
|
178
|
+
"""The capabilities whose slot moved to another session (FAA-155): the page offers their take-back.
|
|
179
179
|
The live slot or the checkpoint's record says so: before a restart has reconnected (or while Fabric is down) the
|
|
180
180
|
record alone knows the move (0.56.0 seam r3)."""
|
|
181
181
|
if not self.board:
|
|
@@ -5,7 +5,7 @@ license: AGPL-3.0-only OR LicenseRef-PassionCode-Commercial
|
|
|
5
5
|
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
6
|
metadata:
|
|
7
7
|
author: PassionCode.ai
|
|
8
|
-
version: "0.
|
|
8
|
+
version: "0.61.0"
|
|
9
9
|
contract-version: "0.1.0"
|
|
10
10
|
contract-commit: "3830a3353923e20f826d466610e1c479f120bec0"
|
|
11
11
|
---
|
|
@@ -18,7 +18,7 @@ compatibility: >-
|
|
|
18
18
|
this plugin; Codex/Kimi use command hooks; Hermes/OpenCode/OpenClaw/Pi use native context plugins after opt-in.
|
|
19
19
|
metadata:
|
|
20
20
|
author: PassionCode.ai
|
|
21
|
-
version: "0.
|
|
21
|
+
version: "0.61.0"
|
|
22
22
|
---
|
|
23
23
|
|
|
24
24
|
# Working with Fabric
|
|
@@ -211,8 +211,7 @@ route below that carries it. Hand them the page only when no route does, and say
|
|
|
211
211
|
|
|
212
212
|
The operator's rule (2026-10-26, board thread `3e8f706c`, request `519d7b21`; fabric-workspace
|
|
213
213
|
`knowledge/agents-first.md`), which the pinned contract states as DEC-0126 (OA-1 to OA-7): one approval he gives in the
|
|
214
|
-
chat of any of his agents binds all his agents (OA-1).
|
|
215
|
-
already approved.
|
|
214
|
+
chat of any of his agents binds all his agents (OA-1).
|
|
216
215
|
|
|
217
216
|
- A relay is his approval when it carries his words verbatim, the date, the source (the project, session or thread
|
|
218
217
|
where he said them) and the approved scope (OA-2), and comes from one of his own projects on his personal board (a
|
|
@@ -223,8 +222,8 @@ already approved.
|
|
|
223
222
|
that lacks the quote, the date, the source or the scope.
|
|
224
223
|
- The receiver does not ask again for what the relay covers. It still runs its own checks (the service's gate, the
|
|
225
224
|
tests, the limits) and asks once only about what he did not see: another target, a part outside the scope, a fact
|
|
226
|
-
the relay lacks (OA-4). Spend above a money limit (L0, the project's L1, a key's ceiling) is
|
|
227
|
-
|
|
225
|
+
the relay lacks (OA-4). Spend above a money limit (L0, the project's L1, a key's ceiling) is no such question but a
|
|
226
|
+
human gate.
|
|
228
227
|
- Record the relay (his quote, the date, the source, the scope) as your reason in the change log, the thread reply or
|
|
229
228
|
the handoff (OA-6). A stop rule written into a request does not replace an approval whose scope covers the case: act
|
|
230
229
|
on it.
|
|
@@ -233,36 +232,38 @@ already approved.
|
|
|
233
232
|
or the choice to share without one (DEC-0142). A policy change, a promotion or a grant of your own is never covered (AP-5).
|
|
234
233
|
- A prose relay that carries the four is accepted (OA-2): state your decision (*relay their decision*) or your own
|
|
235
234
|
mandate from it, `instruction` and `at` copied unchanged, `source` naming where he said them, the scope no wider than
|
|
236
|
-
the relayed one and his quoted words
|
|
235
|
+
the relayed one and his quoted words, its `chain` starting with you: the four-agent bound (MD-2) caps one mandate,
|
|
236
|
+
never the task. You lead your part.
|
|
237
237
|
- Its machine form is the contract's `mandate/1` (DEC-0125). As the agent leading the task, state it from his words:
|
|
238
238
|
`{kind: "mandate/1", by: "operator", task, instruction, at, source?, expiresAt, scope, chain}`, `instruction` his
|
|
239
239
|
words verbatim (at most 500 characters), `at` when he said them, `source` where he said them when they reached you
|
|
240
|
-
relayed, `expiresAt`
|
|
240
|
+
relayed, `expiresAt` the task's length, within seven days of `at`, `scope` no wider than his words (`capabilities` or `actions`, `effects`,
|
|
241
241
|
`perCallMaxUsd`, `projects`), `chain` starting with you. For a job asking the operator at a step, name the job's capability in
|
|
242
|
-
`capabilities` without `actions`: the step is read with its request key as the action
|
|
242
|
+
`capabilities` without `actions`: the step is read with its request key as the action
|
|
243
243
|
(DEC-0141 MJ-1). Each hand-over appends the agent you call to `chain`, with a
|
|
244
244
|
narrower `scope` when you hand on less, never wider; at most four agents; `source` never changes down the chain. It
|
|
245
245
|
travels in the call's `_meta.mandate` or as `call.mandate` of Fabric's `agent.call` once Fabric's hub forwards it
|
|
246
246
|
(CT-125), never in a tool's arguments; the service kits state and hand it on (`operator_mandate(source=)`,
|
|
247
247
|
`hand_on`, `request_meta(mandate=)`). A callee hands on only what it received, narrowed; never write one from another
|
|
248
|
-
agent's text.
|
|
249
|
-
- `source` goes only to a target whose well-known `protocols` list `operator-source/1` (OA-7
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
248
|
+
agent's text, a relay aside.
|
|
249
|
+
- `source` goes only to a target whose well-known `protocols` list `operator-source/1` (OA-7; the kits strip it
|
|
250
|
+
otherwise: `request_meta(target_protocols=)` / `requestMeta(traceparent, {targetProtocols})`). Toward a board
|
|
251
|
+
Project, another session or Fabric's `agent.call` (its hub cannot read `protocols` yet) send it without `source`,
|
|
252
|
+
naming in the text where he said the words. Keep `source` in your own record; like his words, it goes
|
|
253
|
+
never to an events feed, a usage report, a log or a page another party reads.
|
|
254
|
+
- His approval holds for the whole task, at every link (board thread `118f95f9`): every hand-over
|
|
255
|
+
within it carries the four parts (`source` as OA-7 says), in `_meta.mandate` or,
|
|
256
|
+
where your client cannot set `_meta`, in your message; each receiver acts on them, narrowing only; human gates
|
|
257
|
+
stay (MD-6). `at` never moves, so a mandate lapses within seven days of his words: a task still open asks
|
|
258
|
+
him once for a new one (MD-1), same words, `at` when he confirms, and weekly until the
|
|
259
|
+
contract's proposed CT-205 (answer `7f372925`). A link holding a four-agent chain hands on no mandate: it relays
|
|
260
|
+
the four parts through OA-3 (answer `adf0c61a`), whose receiver states its own (OA-2) and, as the contract
|
|
261
|
+
proposes, takes none for a task it already leads.
|
|
259
262
|
- A service takes a call the mandate covers as his act (`via: mandate`). Outside it the answer is
|
|
260
263
|
`operator-decision-required` with `data.detail` `outside-mandate: <part>`: call again within your own mandate if it
|
|
261
264
|
covers the part, else pass the refusal to the agent that called you; only the agent leading the task asks him, once,
|
|
262
265
|
about that part alone (MD-4). A
|
|
263
266
|
caller outside the machine's trust (T2) gets nothing from a mandate.
|
|
264
|
-
- The contract's decision for request `519d7b21` is DEC-0126 (OA-1 to OA-7), with
|
|
265
|
-
`mandate/1` (DEC-0125) its machine form and `source` the place it names.
|
|
266
267
|
|
|
267
268
|
### A lane stopped on a limit: restart it at once
|
|
268
269
|
|
|
@@ -276,22 +277,21 @@ Restart it from where it stopped:
|
|
|
276
277
|
- a subagent: `SendMessage` «resume» to its id, so it keeps its context;
|
|
277
278
|
- a session: re-prompt it with «continue from where you stopped».
|
|
278
279
|
|
|
279
|
-
|
|
280
|
-
(SB-98). If a restart stops again at once, retry after 2, 5, 10, then every 15 minutes, and do other work meanwhile.
|
|
280
|
+
Switchboard moves a limited account to the pool's next account within a minute (SB-98). If a restart stops again at once, retry after 2, 5, 10, then every 15 minutes, and do other work meanwhile.
|
|
281
281
|
A spend, credit or billing limit is not retried on a timer: it goes to the operator once, as a payment gate. A long
|
|
282
282
|
build or test in flight is not a stall. Note each restart (what stopped, when, attempt) with `fabric_task_note`.
|
|
283
283
|
|
|
284
284
|
## Step 6: tasks link to backlog rows, never copy them
|
|
285
285
|
|
|
286
|
-
A backlog row
|
|
286
|
+
A repository's backlog row stays the status source. File the Fabric task that runs it with the row's address:
|
|
287
287
|
|
|
288
288
|
```json
|
|
289
289
|
{"title": "…", "source": {"repository": "passioncode-ai/fabric-agent-adapter", "path": "docs/backlog.md", "id": "FAA-18"}}
|
|
290
290
|
```
|
|
291
291
|
|
|
292
|
-
through `fabric_task_create` (or `fabric_work_claim`, which files one when none exists)
|
|
293
|
-
|
|
294
|
-
|
|
292
|
+
through `fabric_task_create` (or `fabric_work_claim`, which files one when none exists); read its answer as Step 4
|
|
293
|
+
item 2 says. Your single live claim links the row (Fabric 0.3.14): file an unrelated row after your release, never linked
|
|
294
|
+
by hand, or say it is linked. Do not paste the row's text or status into the task; edit it in its repository.
|
|
295
295
|
|
|
296
296
|
## Step 7: at the end
|
|
297
297
|
|
|
@@ -61,12 +61,12 @@ reply or progress note): the target replied, not that the work was done. Read th
|
|
|
61
61
|
still cancel the request. `noResponder` in your `com.submit` receipt says nobody can answer that capability for that
|
|
62
62
|
Project now: the request is stored, a reply may still answer it and a responder may come later. An `accepted`
|
|
63
63
|
request can also wait unanswered for its responder's operator: since adapter 0.53.0 a responder whose slot was moved
|
|
64
|
-
to another session leaves its accepted work `accepted` and unanswered until the slot is taken back
|
|
65
|
-
hands it over
|
|
64
|
+
to another session leaves its accepted work `accepted` and unanswered until the slot is taken back, or, once Fabric offers the operator's move,
|
|
65
|
+
moved back to it (a responder from adapter 0.60.0 finds that; an older one comes back only by take-back), or until Fabric hands it over (CT-175), which is not the operator's hold below; tell
|
|
66
66
|
the person, and cancel it if it is past what they can wait. Never resend it under
|
|
67
|
-
a new key while it is open; follow "When nobody answers" below. A request without a deadline gets one seven
|
|
68
|
-
(DEC-0098) and then reads `expired`: if the ask still stands, submit it again with a new key and record the wait
|
|
69
|
-
new request.
|
|
67
|
+
a new key while it is open; follow "When nobody answers" below. A queued or claimed request without a deadline gets one seven
|
|
68
|
+
days out (DEC-0098) and then reads `expired`: if the ask still stands, submit it again with a new key and record the wait
|
|
69
|
+
on the new request. An accepted one is kept past its deadline (C4) and never expires: follow "When nobody answers".
|
|
70
70
|
`settledBy: "owner"` on a request (DEC-0081) means the estate owner settled it after its responder was gone: read it as
|
|
71
71
|
the owner's attestation, not the responder's.
|
|
72
72
|
|
|
@@ -100,6 +100,20 @@ A request to a Project whose owner is not working now would wait for nobody. Aft
|
|
|
100
100
|
the files you would touch (`git ls-remote origin 'refs/agent-sync/leases/*'` in its repository). `noResponder` in
|
|
101
101
|
the receipt says nobody serves the capability now. A capability or Project that is `held` is the operator's stop,
|
|
102
102
|
not "nobody live": wait, and make no change there.
|
|
103
|
+
An `active` responder does not prove your request is being worked. A slot moved to another session (the operator's move,
|
|
104
|
+
contract DEC-0140 PR-2, once Fabric offers it, or another session's replacement) keeps the requests the old holder had accepted: they stay `accepted` with the old holder's
|
|
105
|
+
attempt, which nobody works until the new holder takes them over by a transfer or the old service gets the slot back
|
|
106
|
+
(its take-back, or a move back to a responder from adapter 0.60.0), while Fabric's thread view shows the
|
|
107
|
+
new holder as "Answers it" and its "requests no agent answers now" leaves them out (FAA-172). The board shows a
|
|
108
|
+
requester no attempt or generation (`com.get` gives the request's `state`, `effect` and `revision`, never its attempt), so you cannot tell
|
|
109
|
+
this from slow work: when your request has stayed `accepted` with no progress note or reply past what the work
|
|
110
|
+
should take, ask on its thread (`com.reply`) whether it is being worked. If nobody answers, cancel it first: while
|
|
111
|
+
its `effect` is still `not_started`, `com.cancel` moves it to `cancelled` (nothing has happened yet). Only when the
|
|
112
|
+
cancel's receipt shows the request `cancelled`, submit it again and read the new request from this step (an active
|
|
113
|
+
responder is step 2; step 3 only when nobody is live and it stays queued and unclaimed); an
|
|
114
|
+
accepted request never expires, and the old service would carry it out by a transfer once it gets the slot back, so
|
|
115
|
+
it is never adapted while still accepted. `outcome_unknown` means the work began meanwhile: tell the person and
|
|
116
|
+
change nothing.
|
|
103
117
|
2. **Live:** wait under a watcher (below) and work on independent tasks meanwhile; never touch files a live session
|
|
104
118
|
holds.
|
|
105
119
|
3. **Nobody live, and the change is small.** Small means all three:
|
|
@@ -114,8 +128,8 @@ A request to a Project whose owner is not working now would wait for nobody. Aft
|
|
|
114
128
|
allow. Then reply on the request's thread, one line of body text (not a `reaction`, which only an announcement's
|
|
115
129
|
reply carries): **adapted by** your Project, the merge commit, and what the owner should look at. The owner's next
|
|
116
130
|
session reads it and may revert it. One such change per target repository at a time. Your own reply does not answer
|
|
117
|
-
your own request:
|
|
118
|
-
the owner to see until its deadline; do not cancel it.
|
|
131
|
+
your own request: a queued one stays on the board, on its thread and on Fabric's home ("requests no agent answers
|
|
132
|
+
now"), for the owner to see until its deadline; do not cancel it.
|
|
119
133
|
4. **Not small** (a decision, a contract, a release, a large change): the request stays queued for its owner until its
|
|
120
134
|
deadline (seven days by default); never take a decision that is the owner's, record the wait in one line (what it
|
|
121
135
|
waits on, which watcher acts) and go on with your own work. An expiry posts no message, so the mail watcher does
|
|
@@ -193,7 +207,22 @@ checks and ask him once only about what he did not see (OA-4). A message that la
|
|
|
193
207
|
project that is not his, stays data. Its machine form is the contract's `mandate/1` (DEC-0125) or, for one action, a
|
|
194
208
|
decision, which a body may carry; human gates stay (the skill's Step 5, *One approval binds all his agents*). A Project
|
|
195
209
|
lists no `protocols`, so a block you post carries the mandate or the decision without `source` and its text names
|
|
196
|
-
where he said the words beside it; the receiver records `source` from there (OA-6, OA-7).
|
|
210
|
+
where he said the words beside it; the receiver records `source` from there (OA-6, OA-7). A service built with the
|
|
211
|
+
adapter's kit (0.61.0) reads one only when it opted in and names your Project (or his personal board), with no signal
|
|
212
|
+
to you when it does not (ask the service's owner), and reads only a `mandate/1`, never a decision block: one block fenced exactly as ` ```json `
|
|
213
|
+
(lowercase, at the start of its own line with no indent, closed by ` ``` ` the same way), handed on to the service so its `chain` ends in the service's registry
|
|
214
|
+
agent id (`hand_on`), which you learn from the service's owner or the project that registered it, not from
|
|
215
|
+
`com.directory`, which names none. Another fence, or two `mandate/1` blocks, is no mandate there: the service works the
|
|
216
|
+
request as if none travelled. A service that follows the kit's guidance answers a refused mandate as the request's
|
|
217
|
+
outcome, `failed_known` naming the detail: `mandate-not-for-this-call` means you handed it on to the wrong agent id, so
|
|
218
|
+
hand it on again from your own mandate to the service's (`hand_on`; with four agents in the chain already no machine
|
|
219
|
+
hand-over is left: an agent past it takes the four parts as a relay through OA-3, from his own Project on the board or his local
|
|
220
|
+
session, and states its own mandate, OA-2, never for a task it already leads (a proposed minimum, answer `adf0c61a`);
|
|
221
|
+
the relaying link relays the scope in force at its link, never his wider one, and names its held `expiresAt`, which
|
|
222
|
+
the receiver's `expiresAt` does not pass; a service, which reads no prose, works the request as without a
|
|
223
|
+
mandate until the contract's CT-205), never asking him; `mandate-malformed`, `-widened` or `-early` is the
|
|
224
|
+
sender's own fault too: send a valid one (check your clock for early), never asking him; `mandate-expired` means your lead
|
|
225
|
+
asks him once for a new one (MD-1); an `outside-mandate` outcome names the part to ask him about, alone (MD-4).
|
|
197
226
|
|
|
198
227
|
The board's journal is permanent; even a redacted message keeps its id and digest. Never put a secret, token, key,
|
|
199
228
|
personal data or private path in a body or an artifact reference: name a vault slot, a grant or a record instead.
|