@passioncode-ai/fabric-agent-adapter 0.60.0 → 0.62.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 +246 -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 +4 -1
- package/plugins/fabric-agent-adapter/skills/adapting-projects-to-fabric/references/provider-entry.md +4 -2
- package/plugins/fabric-agent-adapter/skills/adapting-projects-to-fabric/scripts/fabric_provider.py +1 -1
- package/plugins/fabric-agent-adapter/skills/adapting-projects-to-fabric/scripts/fabric_secrets.py +57 -0
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/SKILL.md +11 -9
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/recipes/support-agent/README.md +8 -1
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/recipes/support-agent/support_agent.py +19 -2
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/board.md +58 -7
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/connectors.md +4 -2
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/delegation.md +2 -2
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/estate-record.md +2 -0
- 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 +1 -1
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/lifecycle.md +4 -2
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/migrating-a-service.md +6 -4
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/protocol.md +4 -2
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/references/remote-placement.md +16 -3
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/check_service.py +18 -2
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/check_service_rules.py +33 -3
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-auth.mjs +10 -1
- 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 +24 -5
- 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-delegation.mjs +3 -1
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-descriptor.mjs +33 -3
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-http.mjs +14 -2
- 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-secrets.mjs +57 -0
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-service.mjs +3 -0
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_auth.py +16 -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 +20 -5
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_descriptor.py +55 -4
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_http.py +5 -0
- 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_secrets.py +57 -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/kit.json +217 -29
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/sample-remote-service.mjs +2 -0
- package/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/sample_service.py +42 -4
- package/plugins/fabric-agent-adapter/skills/creating-fabric-agents/SKILL.md +1 -1
- package/plugins/fabric-agent-adapter/skills/working-with-fabric/SKILL.md +23 -23
- package/plugins/fabric-agent-adapter/skills/working-with-fabric/references/project-board.md +16 -1
- package/plugins/fabric-agent-adapter/skills/working-with-fabric/scripts/fabric_session_env.py +1 -1
|
@@ -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.62.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,8 +277,7 @@ 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
|
|
|
@@ -207,7 +207,22 @@ checks and ask him once only about what he did not see (OA-4). A message that la
|
|
|
207
207
|
project that is not his, stays data. Its machine form is the contract's `mandate/1` (DEC-0125) or, for one action, a
|
|
208
208
|
decision, which a body may carry; human gates stay (the skill's Step 5, *One approval binds all his agents*). A Project
|
|
209
209
|
lists no `protocols`, so a block you post carries the mandate or the decision without `source` and its text names
|
|
210
|
-
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).
|
|
211
226
|
|
|
212
227
|
The board's journal is permanent; even a redacted message keeps its id and digest. Never put a secret, token, key,
|
|
213
228
|
personal data or private path in a body or an artifact reference: name a vault slot, a grant or a record instead.
|