@passioncode-ai/passioncode 0.2.49 → 0.2.51
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 +30 -0
- package/README.md +12 -0
- package/SECURITY.md +3 -0
- package/bin/passioncode.js +12 -4
- package/family.json +1 -1
- package/lib/doctor.js +118 -16
- package/lib/releases.js +59 -7
- package/lib/setup.js +77 -10
- package/lib/trains.js +38 -0
- package/package.json +2 -1
- package/payload/.claude-plugin/marketplace.json +2 -2
- package/payload/manifest.json +8 -8
- package/payload/plugins/fabric-agent-adapter/.claude-plugin/plugin.json +1 -1
- package/payload/plugins/fabric-agent-adapter/skills/adapting-projects-to-fabric/SKILL.md +3 -3
- package/payload/plugins/fabric-agent-adapter/skills/adapting-projects-to-fabric/references/provider-entry.md +18 -7
- package/payload/plugins/fabric-agent-adapter/skills/adapting-projects-to-fabric/scripts/adapt_project.py +2 -2
- package/payload/plugins/fabric-agent-adapter/skills/adapting-projects-to-fabric/scripts/fabric_provider.py +25 -5
- package/payload/plugins/fabric-agent-adapter/skills/building-fabric-services/SKILL.md +2 -2
- package/payload/plugins/fabric-agent-adapter/skills/building-fabric-services/references/delegation.md +3 -1
- package/payload/plugins/fabric-agent-adapter/skills/building-fabric-services/references/interop.md +5 -1
- package/payload/plugins/fabric-agent-adapter/skills/building-fabric-services/references/protocol.md +5 -3
- package/payload/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-actions.mjs +2 -1
- package/payload/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-protocols.mjs +5 -3
- package/payload/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_actions.py +2 -1
- package/payload/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_protocols.py +4 -2
- package/payload/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/kit.json +95 -5
- package/payload/plugins/fabric-agent-adapter/skills/creating-fabric-agents/SKILL.md +3 -3
- package/payload/plugins/fabric-agent-adapter/skills/creating-fabric-agents/references/agents-that-answer-people.md +11 -5
- package/payload/plugins/fabric-agent-adapter/skills/working-with-fabric/SKILL.md +9 -9
- package/payload/plugins/fabric-agent-adapter/skills/working-with-fabric/scripts/fabric_session_env.py +1 -1
- package/payload/plugins/passioncode/.claude-plugin/plugin.json +1 -1
- package/payload/plugins/passioncode/hooks/session-start.js +3 -1
- package/payload/plugins/passioncode/skills/setting-up-passioncode/SKILL.md +4 -0
- package/trains/organization-r1.json +13 -0
|
@@ -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.57.0"
|
|
22
22
|
---
|
|
23
23
|
|
|
24
24
|
# Working with Fabric
|
|
@@ -35,12 +35,12 @@ Use it to work in a project through Fabric. Do not use it to:
|
|
|
35
35
|
|
|
36
36
|
- build, adapt or run an agent as a Fabric provider or service: `creating-fabric-agents`,
|
|
37
37
|
`adapting-projects-to-fabric`, `building-fabric-services`;
|
|
38
|
-
- change Fabric itself (its hub, enrollment, journal):
|
|
38
|
+
- change Fabric itself (its hub, enrollment, journal): Fabric's repository and rules own that;
|
|
39
39
|
- take agent-sync leases on a repository's guarded files: agent-sync owns those; Fabric only shows them.
|
|
40
40
|
|
|
41
41
|
## Step 0: where Fabric stands
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
The bundled status script reads files only, never a token, and prints one next action:
|
|
44
44
|
|
|
45
45
|
```bash
|
|
46
46
|
python3 <skill-dir>/scripts/fabric_session.py status # --json for a machine-readable report
|
|
@@ -55,7 +55,7 @@ By hand, when Python is absent: Fabric publishes `hub.json` in its folder while
|
|
|
55
55
|
| Linux | `$XDG_DATA_HOME/passioncode-fabric/` (default `~/.local/share/`) | the install folder's `resources/bin`; the `.deb` puts it in `/opt/Fabric` |
|
|
56
56
|
|
|
57
57
|
Fabric is up only when `hub.json` exists, says `"protocol": "fabric-hub/0.1"`, names the loopback origin
|
|
58
|
-
`http://127.0.0.1:<port>` and a `pid
|
|
58
|
+
`http://127.0.0.1:<port>` and a live `pid`. No file, or a dead pid, means no Fabric, whatever answers on
|
|
59
59
|
the port. Never send anything to the port yourself, and never read the door token `hub.json` names: `fabric-mcp`
|
|
60
60
|
does that. On Linux an AppImage mounts at a new path each start, so a registration pointing into it breaks; use the
|
|
61
61
|
`.deb`.
|
|
@@ -229,8 +229,8 @@ already approved.
|
|
|
229
229
|
the handoff (OA-6). A stop rule written into a request does not replace an approval whose scope covers the case: act
|
|
230
230
|
on it.
|
|
231
231
|
- Human gates stay (OA-5): sign-in, a one-time code, consent, payment or top-up, a typed secret, spend above a limit
|
|
232
|
-
(handed
|
|
233
|
-
a grant of your own is never covered (AP-5).
|
|
232
|
+
(handed over with its link and amount, never asked in chat), a passkey, a comparison of codes with another person
|
|
233
|
+
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
234
|
- A prose relay that carries the four is accepted (OA-2): state your decision (*relay their decision*) or your own
|
|
235
235
|
mandate from it, `instruction` and `at` copied unchanged, `source` naming where he said them, the scope no wider than
|
|
236
236
|
the relayed one and his quoted words. You then lead your own part of the task.
|
|
@@ -300,8 +300,8 @@ resolve (a repository the project does not hold) is refused, naming the part tha
|
|
|
300
300
|
3. `fabric_work_release` with how it ended: `done` (the task goes to review), handed over (to whom, with the note
|
|
301
301
|
the next agent reads) or let go (why). Older Fabric: `fabric_task_release`.
|
|
302
302
|
|
|
303
|
-
A session that ends without releasing lapses at its claim's expiry; release anyway
|
|
304
|
-
|
|
303
|
+
A session that ends without releasing lapses at its claim's expiry; release anyway: a lapsed claim reads as stuck
|
|
304
|
+
work.
|
|
305
305
|
|
|
306
306
|
## Refusals and lost answers
|
|
307
307
|
|
|
@@ -316,7 +316,7 @@ stuck work to the operator.
|
|
|
316
316
|
| `operator-decision-required` | a service's action needs the operator's decision and none travelled; with `data.detail` `outside-mandate: <part>`, the mandate does not cover that part | ask the operator about this action, then relay their answer by the first route of Step 5 that carries it, the page only when none does; under a mandate, call again within your own mandate if it covers the part, else pass the refusal to the agent that called you, and only the lead asks him, once, about that part alone; `mandate-capability-missing`: no mandate covers that step, only his decision |
|
|
317
317
|
| `decision-invalid` | the decision names another action or object, is older than 24 hours, lies over 60 s ahead of the service's clock, or is malformed; or the mandate is (`data.detail` `mandate-malformed`, `-widened`, `-expired`, `-early`, `-not-for-this-call`) | never edit, widen or re-date it; ask the operator again when their words do not cover this call |
|
|
318
318
|
| `approval-required` with `data.actionDigest` | a caller outside the machine's trust (T2): a chat decision changes nothing | an `approval/1` for that digest through the hub |
|
|
319
|
-
| `human-step-required` with `data.humanStep` and `data.url` | a
|
|
319
|
+
| `human-step-required` with `data.humanStep` and `data.url` | a human gate of OA-5 (above) stays the person's | hand the person `data.url`: a path on the service's origin as Fabric Dashboards' `open_link` (`fallback=never`), an https URL as it is; never take the step or ask for the secret; continue other work |
|
|
320
320
|
|
|
321
321
|
Never tell the person a call failed or succeeded when its outcome is unknown.
|
|
322
322
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
|
|
3
3
|
"name": "passioncode",
|
|
4
4
|
"displayName": "PassionCode.ai",
|
|
5
|
-
"version": "0.2.
|
|
5
|
+
"version": "0.2.51",
|
|
6
6
|
"description": "Set up and check PassionCode.ai on a computer with one command (setting-up-passioncode), the organisation's working rules for every contributor's agent (working-in-passioncode), and a once-a-day check at session start that keeps the PassionCode.ai skill set current.",
|
|
7
7
|
"author": {
|
|
8
8
|
"name": "PassionCode.ai",
|
|
@@ -79,7 +79,9 @@ async function main() {
|
|
|
79
79
|
if (fails > 0 && !stale) {
|
|
80
80
|
const ids = Array.isArray(last.failed) ? last.failed.filter((x) => typeof x === 'string').slice(0, 3) : [];
|
|
81
81
|
const when = typeof last.at === 'string' ? last.at.slice(0, 10) : 'an earlier session';
|
|
82
|
-
|
|
82
|
+
// A release train this launcher cannot use is not repaired by plain setup (PC-89).
|
|
83
|
+
const how = Array.isArray(last.failed) && last.failed.includes('train') ? 'setup --yes --no-apps --train none` (or a train this launcher ships) clears the unusable release train, `doctor' : 'setup` repairs them, `doctor';
|
|
84
|
+
lines.push(`[passioncode] the setup check of ${when} found ${fails} problem(s)${ids.length ? ` (${ids.join(', ')}${last.failed.length > 3 ? ', …' : ''})` : ''}; \`npx @passioncode-ai/passioncode@latest ${how}\` shows them.`);
|
|
83
85
|
}
|
|
84
86
|
if (lines.length) process.stdout.write(lines.join('\n') + '\n');
|
|
85
87
|
}
|
|
@@ -96,6 +96,10 @@ Reply in the person's language, briefly:
|
|
|
96
96
|
wait for the network.
|
|
97
97
|
- **The command fails to start** (npm error, registry down): report the error with its exit code
|
|
98
98
|
and stop. Do not fall back to manual installs.
|
|
99
|
+
- **An organization's machine**: when the person's organization runs a release train, add
|
|
100
|
+
`--train <name>` (today `organization-r1`): the apps are installed at the train's pinned versions
|
|
101
|
+
and `doctor` then shows a `train` line. An app newer than its pin is left alone. `--train none`
|
|
102
|
+
returns to the latest releases.
|
|
99
103
|
- **Not macOS**: the result names each app's download page; the person installs apps from there,
|
|
100
104
|
then runs `setup` again for the MCP servers. On Windows `doctor` reads which apps are installed
|
|
101
105
|
and their versions; a fix that names a download page is the person's install, not a command.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"train": "organization-r1",
|
|
3
|
+
"title": "Organization R1",
|
|
4
|
+
"pinned": "2026-10-28",
|
|
5
|
+
"record": "https://github.com/passioncode-ai/fabric-workspace/blob/main/knowledge/roadmap.md#sd-4",
|
|
6
|
+
"apps": {
|
|
7
|
+
"fabric": "0.3.15",
|
|
8
|
+
"switchboard": "0.7.0",
|
|
9
|
+
"dashboards": "0.8.15",
|
|
10
|
+
"observatory": "0.30.0",
|
|
11
|
+
"inbox": "0.77.3"
|
|
12
|
+
}
|
|
13
|
+
}
|