@passioncode-ai/passioncode 0.1.12 → 0.1.14

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 CHANGED
@@ -1,5 +1,24 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.14 - 2026-10-01
4
+
5
+ ### Changed
6
+
7
+ - Fabric Agent Adapter 0.5.5 in the set (`family.json` pins `v0.5.5`, was `v0.5.4`): its shipped
8
+ docs no longer call the public Fabric Agent Contract private; no behaviour changes.
9
+ - Observatory Log 0.13.0 in the set (`family.json` pins Project Observatory `v0.10.0`, was
10
+ `v0.8.2`, which shipped plugin 0.12.3): the plugin's licence metadata is `AGPL-3.0-only OR
11
+ LicenseRef-PassionCode-Commercial`, and `handling-secrets` documents the new Cloudflare presets.
12
+ - The README, `--help`, `family.json` and `package.json` descriptions say what is true: the
13
+ launcher installs the set listed in `family.json`, not every PassionCode.ai skill and plugin.
14
+
15
+ ## 0.1.13 - 2026-10-01
16
+
17
+ ### Changed
18
+
19
+ - Fabric Agent Adapter 0.5.4 in the set (`family.json` pins `v0.5.4`, was `v0.5.3`): the adapter pins
20
+ the public Fabric Agent Contract, re-created with one clean history; no behaviour changes.
21
+
3
22
  ## 0.1.12 - 2026-09-30
4
23
 
5
24
  ### Changed
package/CLA.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Contributor License Agreement
2
2
 
3
3
  This agreement lets PassionCode.ai accept your contribution and keep offering the
4
- software under its source-available licenses and under separate commercial licenses.
4
+ software under the GNU AGPL-3.0 and under separate commercial licenses.
5
5
  It is between you and Siarhei Sheleh (the "Maintainer").
6
6
 
7
7
  By opening a pull request or otherwise submitting a contribution to a PassionCode.ai
package/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # PassionCode.ai launcher
2
2
 
3
- The **PassionCode.ai launcher** (`@passioncode-ai/passioncode` on npm) installs and updates every
4
- PassionCode.ai agent skill and plugin — the Fabric Agent Adapter, Observatory Log and the
5
- organization's working rules — for Claude Code and every other agent on your machine, as one set.
3
+ The **PassionCode.ai launcher** (`@passioncode-ai/passioncode` on npm) installs and updates the
4
+ PassionCode.ai skills and plugins listed in [`family.json`](family.json) — the Fabric Agent Adapter,
5
+ Observatory Log and the organization's working rules — for Claude Code and every other agent on your machine, as one set.
6
6
  It is how a teammate's agent gets the tools that build for Fabric, PassionCode.ai's CEO AI agent,
7
7
  and it works on its own: no Fabric install, no account, no key.
8
8
 
@@ -2,7 +2,7 @@
2
2
  'use strict';
3
3
  const L = require('../lib/launcher');
4
4
 
5
- const HELP = `passioncode — every PassionCode.ai skill, for every agent on this machine
5
+ const HELP = `passioncode — the PassionCode.ai skill set (family.json), for every agent on this machine
6
6
 
7
7
  npx @passioncode-ai/passioncode@latest update [--dry-run] [--json] install or update the whole set
8
8
  npx @passioncode-ai/passioncode@latest status [--json] what is installed where
package/family.json CHANGED
@@ -2,13 +2,13 @@
2
2
  "name": "passioncode",
3
3
  "owner": "passioncode-ai",
4
4
  "displayName": "PassionCode.ai",
5
- "description": "Every PassionCode.ai agent skill, for Claude Code and every other agent on the machine, updated as one set.",
5
+ "description": "The PassionCode.ai agent skills listed in this set, for Claude Code and every other agent on the machine, updated as one set.",
6
6
  "members": [
7
7
  {
8
8
  "name": "fabric-agent-adapter",
9
9
  "displayName": "Fabric Agent Adapter",
10
10
  "repo": "passioncode-ai/fabric-agent-adapter",
11
- "ref": "v0.5.3",
11
+ "ref": "v0.5.5",
12
12
  "kind": "plugin",
13
13
  "path": "plugins/fabric-agent-adapter",
14
14
  "legacyPluginIds": [
@@ -22,7 +22,7 @@
22
22
  "name": "observatory-log",
23
23
  "displayName": "Observatory Log",
24
24
  "repo": "passioncode-ai/project-observatory-dashboard",
25
- "ref": "v0.8.2",
25
+ "ref": "v0.10.0",
26
26
  "kind": "plugin",
27
27
  "path": "observatory/engine/skill/plugins/observatory-log",
28
28
  "legacyPluginIds": [
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@passioncode-ai/passioncode",
3
- "version": "0.1.12",
4
- "description": "Every PassionCode.ai agent skill — Fabric Agent Adapter, Observatory Log and the organisation's working rules — for Claude Code and every other agent on the machine, updated as one set.",
3
+ "version": "0.1.14",
4
+ "description": "The PassionCode.ai agent skill set — Fabric Agent Adapter, Observatory Log and the organisation's working rules — for Claude Code and every other agent on the machine, updated as one set.",
5
5
  "bin": {
6
6
  "passioncode": "bin/passioncode.js"
7
7
  },
@@ -5,13 +5,13 @@
5
5
  "name": "PassionCode.ai",
6
6
  "url": "https://passioncode.ai/"
7
7
  },
8
- "description": "Every PassionCode.ai agent skill, for Claude Code and every other agent on the machine, updated as one set.",
8
+ "description": "The PassionCode.ai agent skills listed in this set, for Claude Code and every other agent on the machine, updated as one set.",
9
9
  "plugins": [
10
10
  {
11
11
  "name": "fabric-agent-adapter",
12
12
  "displayName": "Fabric Agent Adapter",
13
13
  "source": "./plugins/fabric-agent-adapter",
14
- "version": "0.5.3",
14
+ "version": "0.5.5",
15
15
  "description": "Create new Fabric-compatible agents, build them as always-alive local services with dashboards (fabric-service/0.1), and adapt existing projects to the Fabric Agent Contract through evidence-backed MCP, A2A, or local-runner provider bundles.",
16
16
  "author": {
17
17
  "name": "PassionCode.ai",
@@ -23,19 +23,19 @@
23
23
  "name": "observatory-log",
24
24
  "displayName": "Observatory Log",
25
25
  "source": "./plugins/observatory-log",
26
- "version": "0.12.3",
26
+ "version": "0.13.0",
27
27
  "description": "Records what changed in a watched project at the end of every turn, and asks for the one thing a diff cannot contain: why.",
28
28
  "author": {
29
29
  "name": "PassionCode.ai",
30
30
  "url": "https://passioncode.ai/"
31
31
  },
32
- "license": "PolyForm-Noncommercial-1.0.0 OR LicenseRef-PolyForm-Internal-Use-1.0.0"
32
+ "license": "AGPL-3.0-only OR LicenseRef-PassionCode-Commercial"
33
33
  },
34
34
  {
35
35
  "name": "passioncode",
36
36
  "displayName": "PassionCode.ai",
37
37
  "source": "./plugins/passioncode",
38
- "version": "0.1.12",
38
+ "version": "0.1.14",
39
39
  "description": "The organisation's working rules for every contributor's agent (working-in-passioncode), and a once-a-day check that keeps the PassionCode.ai set current.",
40
40
  "author": {
41
41
  "name": "PassionCode.ai",
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "family": "passioncode",
3
- "version": "0.1.12",
3
+ "version": "0.1.14",
4
4
  "release": true,
5
5
  "members": [
6
6
  {
7
7
  "name": "fabric-agent-adapter",
8
8
  "displayName": "Fabric Agent Adapter",
9
9
  "repo": "passioncode-ai/fabric-agent-adapter",
10
- "ref": "v0.5.3",
11
- "commit": "951b2910e450c491078486ddf022489d4742bbaf",
12
- "version": "0.5.3",
10
+ "ref": "v0.5.5",
11
+ "commit": "f302123b97b0c4aaf2b447f6054b583b62b3caf3",
12
+ "version": "0.5.5",
13
13
  "via": "clone of https://***@github.com/passioncode-ai/fabric-agent-adapter.git",
14
14
  "skills": [
15
15
  "adapting-projects-to-fabric",
@@ -22,7 +22,7 @@
22
22
  "legacyMarketplaces": [
23
23
  "fabric-agent-adapter"
24
24
  ],
25
- "contentHash": "sha256:1b9d3028d72947aa3dc99f2cc979ffb9a6710a99ab0a89773f7de9ce673be210",
25
+ "contentHash": "sha256:6e4ba6f36e9d2f62a621a1dee0d0feb5532c7e959acdf4bfa5c8edfa82304711",
26
26
  "description": "Create new Fabric-compatible agents, build them as always-alive local services with dashboards (fabric-service/0.1), and adapt existing projects to the Fabric Agent Contract through evidence-backed MCP, A2A, or local-runner provider bundles.",
27
27
  "author": {
28
28
  "name": "PassionCode.ai",
@@ -34,9 +34,9 @@
34
34
  "name": "observatory-log",
35
35
  "displayName": "Observatory Log",
36
36
  "repo": "passioncode-ai/project-observatory-dashboard",
37
- "ref": "v0.8.2",
38
- "commit": "4f3591de65cd9a28de18212d53da966405f46f22",
39
- "version": "0.12.3",
37
+ "ref": "v0.10.0",
38
+ "commit": "e1e0110f6618b9541f3e204a548c283005cb6fa9",
39
+ "version": "0.13.0",
40
40
  "via": "clone of https://***@github.com/passioncode-ai/project-observatory-dashboard.git",
41
41
  "skills": [
42
42
  "explaining-changes",
@@ -49,28 +49,28 @@
49
49
  "legacyMarketplaces": [
50
50
  "observatory-log"
51
51
  ],
52
- "contentHash": "sha256:0ddb7efdfd9977c55d65e58a3cd8dc9cb9da3b8eb9ab02c83e3a159ea233017b",
52
+ "contentHash": "sha256:1514d04e995ecd71df0e0518787d76c9320b02f8174824d08c958846b860fd42",
53
53
  "description": "Records what changed in a watched project at the end of every turn, and asks for the one thing a diff cannot contain: why.",
54
54
  "author": {
55
55
  "name": "PassionCode.ai",
56
56
  "url": "https://passioncode.ai/"
57
57
  },
58
- "license": "PolyForm-Noncommercial-1.0.0 OR LicenseRef-PolyForm-Internal-Use-1.0.0"
58
+ "license": "AGPL-3.0-only OR LicenseRef-PassionCode-Commercial"
59
59
  },
60
60
  {
61
61
  "name": "passioncode",
62
62
  "displayName": "PassionCode.ai",
63
63
  "repo": "passioncode-ai/passioncode",
64
- "ref": "v0.1.12",
64
+ "ref": "v0.1.14",
65
65
  "commit": null,
66
- "version": "0.1.12",
66
+ "version": "0.1.14",
67
67
  "via": "this repository",
68
68
  "skills": [
69
69
  "working-in-passioncode"
70
70
  ],
71
71
  "legacyPluginIds": [],
72
72
  "legacyMarketplaces": [],
73
- "contentHash": "sha256:f0be91c0c114b6b5af7e9ae74459eb1c60a433ee0515b11468917f44fe4d6af0",
73
+ "contentHash": "sha256:a09752a2968ea3bd192898fe28642166548786a6396050f57e02f36ea9fe2742",
74
74
  "description": "The organisation's working rules for every contributor's agent (working-in-passioncode), and a once-a-day check that keeps the PassionCode.ai set current.",
75
75
  "author": {
76
76
  "name": "PassionCode.ai",
@@ -3,7 +3,7 @@
3
3
  "name": "fabric-agent-adapter",
4
4
  "displayName": "Fabric Agent Adapter",
5
5
  "description": "Create new Fabric-compatible agents, build them as always-alive local services with dashboards (fabric-service/0.1), and adapt existing projects to the Fabric Agent Contract through evidence-backed MCP, A2A, or local-runner provider bundles.",
6
- "version": "0.5.3",
6
+ "version": "0.5.5",
7
7
  "author": {
8
8
  "name": "PassionCode.ai",
9
9
  "url": "https://passioncode.ai/"
@@ -2,12 +2,12 @@
2
2
  name: adapting-projects-to-fabric
3
3
  description: Use when adapting an existing agent, MCP server, A2A peer, HTTP service, or terminal CLI to the Fabric Agent Contract—choosing MCP/A2A/local-runner, scaffolding a provider bundle, or checking Fabric compatibility; also for «подключить проект к Fabric» or «сделать агента совместимым с Fabric». NOT for building the Fabric host/orchestrator, configuring an MCP client, or a brand-new agent — that is creating-fabric-agents.
4
4
  license: AGPL-3.0-only OR LicenseRef-PassionCode-Commercial
5
- compatibility: Requires filesystem access and Python 3.9+. Exact schema checks additionally need git, Node.js, pnpm, and the pinned private fabric-agent-contract checkout. Works without those tools in an explicitly degraded structural-check mode.
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.
6
6
  metadata:
7
7
  author: PassionCode.ai
8
- version: "0.5.3"
8
+ version: "0.5.5"
9
9
  contract-version: "0.1.0"
10
- contract-commit: "2ea54f70c161c8b3bf7ec3c567735c7a2d4ce12f"
10
+ contract-commit: "74d3852f122f5ca5cbc4138a201483531dfa5006"
11
11
  ---
12
12
 
13
13
  # Adapting projects to Fabric
@@ -70,11 +70,11 @@ Use exactly:
70
70
 
71
71
  - contract version `0.1.0`;
72
72
  - repository `https://github.com/passioncode-ai/fabric-agent-contract`;
73
- - commit `2ea54f70c161c8b3bf7ec3c567735c7a2d4ce12f`.
73
+ - commit `74d3852f122f5ca5cbc4138a201483531dfa5006`.
74
74
 
75
75
  Read the pinned contract's guide
76
76
  `docs/guides/connecting-compatible-agents.md`, the selected profile specification, and
77
- the referenced JSON Schemas before implementing protocol details. If the private checkout
77
+ the referenced JSON Schemas before implementing protocol details. If the contract checkout
78
78
  is unavailable, continue only through local structure and mark exact schema validation
79
79
  `NOT_RUN`; do not reconstruct missing normative rules from memory.
80
80
 
@@ -16,7 +16,7 @@ from urllib.parse import urlparse
16
16
 
17
17
  CONTRACT_VERSION = "0.1.0"
18
18
  CONTRACT_REPOSITORY = "https://github.com/passioncode-ai/fabric-agent-contract"
19
- CONTRACT_COMMIT = "2ea54f70c161c8b3bf7ec3c567735c7a2d4ce12f"
19
+ CONTRACT_COMMIT = "74d3852f122f5ca5cbc4138a201483531dfa5006"
20
20
  INTEROP_KEY = "https://fabric.passioncode.ai/agent-contract/extensions/interop/0.1"
21
21
  MCP_REVISION = "2026-07-28"
22
22
  A2A_VERSION = "1.0"
@@ -15,10 +15,10 @@ license: AGPL-3.0-only OR LicenseRef-PassionCode-Commercial
15
15
  compatibility: Python 3.9+ or Node.js 20+ for the kits; the probe needs Python 3.9+. launchd steps are macOS-only (Linux services use lifecycle manager none until a systemd adapter exists). No network or package install; the contract checkout is optional.
16
16
  metadata:
17
17
  author: PassionCode.ai
18
- version: "0.5.3"
18
+ version: "0.5.5"
19
19
  contract-version: "0.1.0"
20
20
  extension: "fabric-service/0.1"
21
- extension-commit: "2ea54f70c161c8b3bf7ec3c567735c7a2d4ce12f"
21
+ extension-commit: "74d3852f122f5ca5cbc4138a201483531dfa5006"
22
22
  ---
23
23
 
24
24
  # Building Fabric services
@@ -1,6 +1,6 @@
1
1
  # fabric-service/0.1 — wire reference
2
2
 
3
- Pinned to `fabric-agent-contract` commit `2ea54f70c161c8b3bf7ec3c567735c7a2d4ce12f`
3
+ Pinned to `fabric-agent-contract` commit `74d3852f122f5ca5cbc4138a201483531dfa5006`
4
4
  (`docs/specification/service.md`, DEC-0015). The contract's schemas are normative;
5
5
  this page is the working summary. Extension key:
6
6
  `https://fabric.passioncode.ai/agent-contract/extensions/service/0.1`.
@@ -2,12 +2,12 @@
2
2
  name: creating-fabric-agents
3
3
  description: Use when designing and building a NEW agent or provider that must be Fabric-compatible from its first commit — «создай агента, совместимого с фабрикой Passion Code», «новый агент под Fabric», "create a fabric-compatible agent", "build a new Fabric provider", "fabric-ready agent from scratch". Runs the intake grill (capability, named consumer, workflow-or-agent, MCP/A2A/local-runner profile, effect declarations), distils source projects into a knowledge pack whose recorded failures become planted eval fixtures, scaffolds the pinned contract bundle, and sets the two-clock eval expectation with the conformance report. NOT for adapting an existing project (use adapting-projects-to-fabric), building the Fabric host or orchestrator, or generic agent design where Fabric compatibility is not part of the request.
4
4
  license: AGPL-3.0-only OR LicenseRef-PassionCode-Commercial
5
- compatibility: Requires filesystem access and Python 3.9+. Exact schema checks additionally need git, Node.js, pnpm, and the pinned private fabric-agent-contract checkout. Works without those tools in an explicitly degraded structural-check mode. Ships in one plugin with adapting-projects-to-fabric, whose scripts it reuses.
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.5.3"
8
+ version: "0.5.5"
9
9
  contract-version: "0.1.0"
10
- contract-commit: "2ea54f70c161c8b3bf7ec3c567735c7a2d4ce12f"
10
+ contract-commit: "74d3852f122f5ca5cbc4138a201483531dfa5006"
11
11
  ---
12
12
 
13
13
  # Creating Fabric-compatible agents
@@ -112,7 +112,7 @@ python3 <plugin-dir>/skills/adapting-projects-to-fabric/scripts/adapt_project.py
112
112
  --schema-base <immutable-base-uri>
113
113
  ```
114
114
 
115
- Pin exactly contract `0.1.0` at commit `2ea54f70c161c8b3bf7ec3c567735c7a2d4ce12f` and
115
+ Pin exactly contract `0.1.0` at commit `74d3852f122f5ca5cbc4138a201483531dfa5006` and
116
116
  read the pinned guide before implementing protocol details. If this skill is installed
117
117
  without its sibling, the scaffolder is absent: create the bundle by hand from the pinned
118
118
  contract's `docs/guides/connecting-compatible-agents.md` and mark the structural check
@@ -3,8 +3,8 @@
3
3
  "name": "observatory-log",
4
4
  "displayName": "Observatory Log",
5
5
  "description": "Records what changed in a watched project at the end of every turn, and asks for the one thing a diff cannot contain: why.",
6
- "version": "0.12.3",
7
- "license": "PolyForm-Noncommercial-1.0.0 OR LicenseRef-PolyForm-Internal-Use-1.0.0",
6
+ "version": "0.13.0",
7
+ "license": "AGPL-3.0-only OR LicenseRef-PassionCode-Commercial",
8
8
  "author": {
9
9
  "name": "PassionCode.ai",
10
10
  "url": "https://passioncode.ai/"
@@ -13,9 +13,9 @@ description: >-
13
13
  message, a PR description or a changelog, and NOT for changing the typed
14
14
  registry — a registry change is `observatory_propose`, which is a different
15
15
  decision with different evidence.
16
- license: PolyForm-Noncommercial-1.0.0 OR LicenseRef-PolyForm-Internal-Use-1.0.0
16
+ license: AGPL-3.0-only OR LicenseRef-PassionCode-Commercial
17
17
  metadata:
18
- version: "0.12.3"
18
+ version: "0.13.0"
19
19
  compatibility: >-
20
20
  Requires an initialized full Project Observatory installation to persist
21
21
  records. Uses its MCP server when available in the current host; the bundled
@@ -7,9 +7,9 @@ description: >-
7
7
  Keeps credential values out of prompts and command arguments, uses named slots,
8
8
  and records changes without copying values into reports. NOT for granting
9
9
  provider permissions or choosing a project's authentication architecture.
10
- license: PolyForm-Noncommercial-1.0.0 OR LicenseRef-PolyForm-Internal-Use-1.0.0
10
+ license: AGPL-3.0-only OR LicenseRef-PassionCode-Commercial
11
11
  metadata:
12
- version: "0.12.3"
12
+ version: "0.13.0"
13
13
  compatibility: >-
14
14
  Requires an initialized full Project Observatory installation, Python 3.11+
15
15
  and local shell access on macOS or Linux. Provider operations additionally
@@ -29,7 +29,7 @@ names. Never ask the user to paste a credential into the conversation.
29
29
  2. Select the user's initialized `OBSERVATORY_HOME`. Run
30
30
  `python3 "$OBSERVATORY_ROOT/observatory.py" doctor`. A missing workspace
31
31
  needs the documented onboarding before secret operations.
32
- 3. Run `python3 "$OBSERVATORY_ROOT/tools/skill_check.py" handling-secrets 0.12.3`.
32
+ 3. Run `python3 "$OBSERVATORY_ROOT/tools/skill_check.py" handling-secrets 0.13.0`.
33
33
  If stale, read the installed skill once and follow its compatible commands.
34
34
  Do not turn an unavailable version check into a retry loop.
35
35
  4. Inspect names using `tools/use_secret.py names PROJECT` or `tools/vault.py
@@ -90,6 +90,47 @@ Zone Read and DNS Write on that zone only, verified against its records and
90
90
  delivered to the vault slot on stdin; a second issue rolls the same token. Not
91
91
  an account-wide DNS token, and never the admin token in a script.
92
92
 
93
+ A project whose Worker keeps data in D1 and must write it from a machine
94
+ (`wrangler d1 execute --remote`) gets `cloudflare.py issue --preset d1-edit
95
+ --account <slug> --vault <project>/<env>/<NAME>`: D1 Write on that one account,
96
+ verified by listing its databases, delivered on stdin; a second issue rolls the
97
+ same token. The result prints the account id — an account-owned token cannot
98
+ find its account by itself, so pass it as `CLOUDFLARE_ACCOUNT_ID`.
99
+
100
+ A project that must put and read objects in one R2 bucket (an off-site backup)
101
+ gets `cloudflare.py issue --preset r2-bucket --account <slug> --bucket <name>
102
+ [--jurisdiction eu] [--expire-days 30] --vault <project>/<env>/<PREFIX>`.
103
+ The door creates the bucket if it is missing and sets its lifecycle through a
104
+ setup token that it deletes before returning. It then grants Bucket Item Write on that
105
+ bucket's resource only. Before anything is delivered, the S3 pair must prove a
106
+ put, a get and a delete, and must be refused a bucket list. It lands in three
107
+ slots on stdin: `<PREFIX>_ACCESS_KEY_ID`, `<PREFIX>_SECRET_ACCESS_KEY` and
108
+ `<PREFIX>_ENDPOINT`. A second issue rolls the same token and keeps the key id.
109
+
110
+ An application that sends transactional email through Cloudflare Email Service
111
+ gets `cloudflare.py issue --preset email-send --account <slug> --vault
112
+ <project>/<env>/<NAME>`: Email Sending Write and Read on that one account (the
113
+ group exists at account level only), verified by listing its suppressions.
114
+ Adding an Email Routing rule in one zone — one address to a Worker — is
115
+ `--preset email-routing --zone <zone>`, and deploying that Worker with its KV
116
+ namespace is `--preset workers-edit --account <slug>`. Each is its own token in
117
+ its own slot. When a preset's groups are unknown, `cloudflare.py groups
118
+ --account <slug> --match "<words>"` lists the catalogue's names and levels,
119
+ read-only and without ids.
120
+
121
+ A Fabric Inbox server's own token is `--preset fabric-inbox-server --account
122
+ <slug> --vault <project>/<env>/<NAME>`; a token for one more account whose
123
+ domains that server reads is `--preset fabric-inbox-account` issued from THAT
124
+ account. Each carries the product's own permission list as two policies —
125
+ account-level groups on the account, zone-level groups (Zone Read, Email
126
+ Routing Rules, Zone Settings, DNS Write) on every zone of that account only —
127
+ is verified by listing the account's Workers, and is named after its slot.
128
+ The other-account token makes no storage and no sign-in there.
129
+
130
+ Reading one account's Worker logs is `--preset workers-observability-read
131
+ --account <slug> --vault <project>/<env>/<NAME>`: Workers Observability Read
132
+ only, verified by the telemetry-keys query with the new value.
133
+
93
134
  By default, slots live under the private workspace's `secrets/projects/`.
94
135
  An explicitly configured `sources.secret_store` or `OBSERVATORY_VAULT_DIR`
95
136
  can select a separate private store. Such external stores are excluded from
@@ -13,9 +13,9 @@ description: >-
13
13
  figma-use), wiring analytics or pixels (ad-tracking), provisioning the resource
14
14
  with the provider's own tools, secrets (handling-secrets) or code changes inside
15
15
  the repository.
16
- license: PolyForm-Noncommercial-1.0.0 OR LicenseRef-PolyForm-Internal-Use-1.0.0
16
+ license: AGPL-3.0-only OR LicenseRef-PassionCode-Commercial
17
17
  metadata:
18
- version: "0.12.3"
18
+ version: "0.13.0"
19
19
  compatibility: >-
20
20
  Requires a full Project Observatory installation with organizations.json
21
21
  configured; the observatory MCP server or its local CLI. Creating the resource
@@ -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.1.12",
5
+ "version": "0.1.14",
6
6
  "description": "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",