@rubytech/create-maxy-code 0.1.182 → 0.1.184
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/dist/__tests__/bundler-rewrite-platform-lib.test.js +68 -0
- package/dist/bundler-rewrite-platform-lib.js +29 -0
- package/package.json +1 -1
- package/payload/platform/lib/graph-search/dist/index.d.ts +10 -0
- package/payload/platform/lib/graph-search/dist/index.d.ts.map +1 -1
- package/payload/platform/lib/graph-search/dist/index.js +57 -30
- package/payload/platform/lib/graph-search/dist/index.js.map +1 -1
- package/payload/platform/lib/graph-search/src/__tests__/hybrid.test.ts +95 -2
- package/payload/platform/lib/graph-search/src/__tests__/vector-index-coverage.test.ts +198 -0
- package/payload/platform/lib/graph-search/src/index.ts +73 -29
- package/payload/platform/neo4j/schema.cypher +36 -0
- package/payload/platform/plugins/admin/PLUGIN.md +2 -0
- package/payload/platform/plugins/admin/hooks/admin-authoring-observer.sh +155 -0
- package/payload/platform/plugins/admin/skills/access-manager/SKILL.md +7 -5
- package/payload/platform/plugins/admin/skills/access-manager/references/operations.md +27 -55
- package/payload/platform/plugins/admin/skills/professional-document/SKILL.md +178 -0
- package/payload/platform/plugins/admin/skills/specialist-management/SKILL.md +3 -2
- package/payload/platform/plugins/aeo/mcp/dist/index.js +3 -0
- package/payload/platform/plugins/aeo/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/contacts/PLUGIN.md +1 -0
- package/payload/platform/plugins/contacts/mcp/dist/index.js +3 -0
- package/payload/platform/plugins/contacts/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/docs/references/access-control.md +29 -22
- package/payload/platform/plugins/email/mcp/dist/scripts/send-transactional.d.ts +2 -0
- package/payload/platform/plugins/email/mcp/dist/scripts/send-transactional.d.ts.map +1 -0
- package/payload/platform/plugins/email/mcp/dist/scripts/send-transactional.js +56 -0
- package/payload/platform/plugins/email/mcp/dist/scripts/send-transactional.js.map +1 -0
- package/payload/platform/plugins/memory/.claude-plugin/plugin.json +1 -1
- package/payload/platform/plugins/memory/PLUGIN.md +6 -1
- package/payload/platform/plugins/memory/mcp/dist/index.js +91 -7
- package/payload/platform/plugins/memory/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/typed-edge-schema.test.js +30 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/typed-edge-schema.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/section-types.d.ts +15 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/section-types.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-schema.d.ts +10 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-schema.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-schema.js +35 -4
- package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-schema.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest.test.js +61 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-by-name.test.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-by-name.test.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-by-name.test.js +125 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-by-name.test.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.js +65 -5
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-update-by-name.d.ts +15 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-update-by-name.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-update-by-name.js +45 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-update-by-name.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-update.js +24 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-update.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.js +16 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.js.map +1 -1
- package/payload/platform/plugins/memory/references/graph-primitives.md +1 -0
- package/payload/platform/plugins/memory/references/schema-base.md +4 -2
- package/payload/platform/plugins/memory/skills/document-ingest/SKILL.md +24 -0
- package/payload/platform/plugins/scheduling/PLUGIN.md +1 -0
- package/payload/platform/plugins/scheduling/mcp/dist/index.js +3 -0
- package/payload/platform/plugins/scheduling/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/work/PLUGIN.md +1 -0
- package/payload/platform/plugins/work/mcp/dist/index.js +4 -0
- package/payload/platform/plugins/work/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/workflows/PLUGIN.md +1 -0
- package/payload/platform/plugins/workflows/mcp/dist/index.js +3 -0
- package/payload/platform/plugins/workflows/mcp/dist/index.js.map +1 -1
- package/payload/platform/scripts/__tests__/agents-md-bootstrap.test.sh +111 -0
- package/payload/platform/scripts/lib/agents-md-bootstrap.sh +49 -0
- package/payload/platform/scripts/setup-account.sh +18 -14
- package/payload/platform/services/claude-session-manager/dist/fs-watcher.d.ts +8 -0
- package/payload/platform/services/claude-session-manager/dist/fs-watcher.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/fs-watcher.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/http-server.js +58 -0
- package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts +41 -4
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +172 -53
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
- package/payload/platform/templates/agents/admin/AGENTS.md +18 -7
- package/payload/platform/templates/agents/admin/IDENTITY.md +2 -2
- package/payload/platform/templates/specialists/agents/archive-ingest-operator.md +1 -1
- package/payload/platform/templates/specialists/agents/citation-auditor.md +1 -1
- package/payload/platform/templates/specialists/agents/compiled-truth-rewriter.md +1 -1
- package/payload/platform/templates/specialists/agents/content-producer.md +3 -1
- package/payload/platform/templates/specialists/agents/database-operator.md +2 -2
- package/payload/platform/templates/specialists/agents/librarian.md +1 -1
- package/payload/platform/templates/specialists/agents/personal-assistant.md +1 -1
- package/payload/platform/templates/specialists/agents/project-manager.md +1 -1
- package/payload/platform/templates/specialists/agents/public-session-reviewer.md +40 -0
- package/payload/platform/templates/specialists/agents/research-assistant.md +1 -1
- package/payload/platform/templates/specialists/agents/typed-edge-classifier.md +1 -1
- package/payload/server/public/assets/ChatInput-DzacFNMk.css +1 -0
- package/payload/server/public/assets/{Checkbox-YrQovXpN.js → Checkbox-BJKNkUYu.js} +1 -1
- package/payload/server/public/assets/{admin-DH5jp-1u.js → admin-BNy4N2d6.js} +1 -1
- package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-Do2zYONG.js → architectureDiagram-Q4EWVU46-DZoOzmjE.js} +1 -1
- package/payload/server/public/assets/{blockDiagram-DXYQGD6D-DpIX_bRu.js → blockDiagram-DXYQGD6D-DG3yufCR.js} +1 -1
- package/payload/server/public/assets/{c4Diagram-AHTNJAMY-Cz335ZSY.js → c4Diagram-AHTNJAMY-BBx5wXuZ.js} +1 -1
- package/payload/server/public/assets/channel-DdtUtt5g.js +1 -0
- package/payload/server/public/assets/{chunk-336JU56O-Dmknn3Wo.js → chunk-336JU56O-DwP7g5ns.js} +2 -2
- package/payload/server/public/assets/{chunk-426QAEUC-ClfGjizN.js → chunk-426QAEUC-DXzGdc22.js} +1 -1
- package/payload/server/public/assets/{chunk-4TB4RGXK-BPKctJ5c.js → chunk-4TB4RGXK-1LDRjk0E.js} +1 -1
- package/payload/server/public/assets/{chunk-5FUZZQ4R-BWDCO9zw.js → chunk-5FUZZQ4R-BHjWhwhn.js} +1 -1
- package/payload/server/public/assets/{chunk-5PVQY5BW-BE34_Db0.js → chunk-5PVQY5BW-CwPHRVN8.js} +1 -1
- package/payload/server/public/assets/{chunk-EDXVE4YY-BysA-_6v.js → chunk-EDXVE4YY-7443hrYZ.js} +1 -1
- package/payload/server/public/assets/{chunk-ENJZ2VHE-BMVyMsqA.js → chunk-ENJZ2VHE-BTnmmnmX.js} +1 -1
- package/payload/server/public/assets/{chunk-ICPOFSXX-C5KRdLV4.js → chunk-ICPOFSXX-CPnMJplL.js} +1 -1
- package/payload/server/public/assets/{chunk-OYMX7WX6-DVZD-AVc.js → chunk-OYMX7WX6-DCQ5Q4RS.js} +1 -1
- package/payload/server/public/assets/{chunk-U2HBQHQK-DYmQdx8x.js → chunk-U2HBQHQK-BmfZG8e4.js} +1 -1
- package/payload/server/public/assets/{chunk-X2U36JSP-DrZenIl3.js → chunk-X2U36JSP-Da2yJL2u.js} +1 -1
- package/payload/server/public/assets/{chunk-YZCP3GAM-CDuGbvMq.js → chunk-YZCP3GAM-BdUmMUJ6.js} +1 -1
- package/payload/server/public/assets/{chunk-ZZ45TVLE-COztbiu5.js → chunk-ZZ45TVLE-abkGirrZ.js} +1 -1
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-CKk2DFZe.js +1 -0
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E--YvfDQCh.js +1 -0
- package/payload/server/public/assets/clone-Cw6UfPGM.js +1 -0
- package/payload/server/public/assets/{dagre-Cv9Ib2OM.js → dagre-BVVuAEsU.js} +1 -1
- package/payload/server/public/assets/{dagre-KV5264BT-CoEd61KZ.js → dagre-KV5264BT-VG2kNj19.js} +1 -1
- package/payload/server/public/assets/data-uBpwaldK.js +1 -0
- package/payload/server/public/assets/{diagram-5BDNPKRD-WXNzw3uW.js → diagram-5BDNPKRD-DRiVy69K.js} +1 -1
- package/payload/server/public/assets/{diagram-G4DWMVQ6-C6IuQ2VV.js → diagram-G4DWMVQ6-DtpiRTYX.js} +1 -1
- package/payload/server/public/assets/{diagram-MMDJMWI5-CdJdir5A.js → diagram-MMDJMWI5-Da3t99fY.js} +1 -1
- package/payload/server/public/assets/{diagram-TYMM5635-DxWKQH5T.js → diagram-TYMM5635-BzQmLTJQ.js} +1 -1
- package/payload/server/public/assets/{erDiagram-SMLLAGMA-C9fvs33K.js → erDiagram-SMLLAGMA-D3Ll-GDw.js} +1 -1
- package/payload/server/public/assets/{flowDiagram-DWJPFMVM-BO7Yrbqv.js → flowDiagram-DWJPFMVM-D17bje6d.js} +1 -1
- package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-CQJyWBZq.js → ganttDiagram-T4ZO3ILL-BjeQ-Bun.js} +1 -1
- package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-DZfQHrYw.js → gitGraphDiagram-UUTBAWPF-LtX4pvZS.js} +1 -1
- package/payload/server/public/assets/{graph-labels-BMU8LsOD.js → graph-labels-Cn9jAE6I.js} +1 -1
- package/payload/server/public/assets/graph-tvTPvBaz.js +1 -0
- package/payload/server/public/assets/{graphlib-C40H-Q5E.js → graphlib-CzwsfZOw.js} +1 -1
- package/payload/server/public/assets/{infoDiagram-42DDH7IO-CakfV5f9.js → infoDiagram-42DDH7IO-DOgH4i52.js} +1 -1
- package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-CPuBPyfa.js → ishikawaDiagram-UXIWVN3A-DYqy5BFj.js} +1 -1
- package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-zpZm2Mmo.js → journeyDiagram-VCZTEJTY-CsFpIULJ.js} +1 -1
- package/payload/server/public/assets/{kanban-definition-6JOO6SKY-DfJduQCo.js → kanban-definition-6JOO6SKY-5uZuArw7.js} +1 -1
- package/payload/server/public/assets/{lib-Bnh57com.js → lib-p4ylk2XS.js} +1 -1
- package/payload/server/public/assets/{line-BpYQqO5R.js → line-BY8PmCSW.js} +1 -1
- package/payload/server/public/assets/{mermaid-parser.core-C5Mwi14D.js → mermaid-parser.core-CJ_9xqwK.js} +1 -1
- package/payload/server/public/assets/{mermaid.core-D8qBtvvT.js → mermaid.core-CXznBkX7.js} +3 -3
- package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-Bli9JhIN.js → mindmap-definition-QFDTVHPH-DZbHBud5.js} +1 -1
- package/payload/server/public/assets/{page-0lzgQWnS.js → page-B3VYaBcf.js} +1 -1
- package/payload/server/public/assets/{page-C29S3cBt.js → page-CfN7nw1J.js} +1 -1
- package/payload/server/public/assets/{pieDiagram-DEJITSTG-MsLXTSLg.js → pieDiagram-DEJITSTG-QmOi4DRG.js} +1 -1
- package/payload/server/public/assets/public-Bbew78md.js +7 -0
- package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-De1sh2K0.js → quadrantDiagram-34T5L4WZ-Cpidq6Xj.js} +1 -1
- package/payload/server/public/assets/{requirementDiagram-MS252O5E-D5Sfg1t_.js → requirementDiagram-MS252O5E-CBqtfbzR.js} +1 -1
- package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-DHA3LIbv.js → sankeyDiagram-XADWPNL6-4BiY4dV9.js} +1 -1
- package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-BE_QlG1B.js → sequenceDiagram-FGHM5R23-DVlL-l2u.js} +1 -1
- package/payload/server/public/assets/{stateDiagram-FHFEXIEX-NIwp3F4u.js → stateDiagram-FHFEXIEX-CAm9dW68.js} +1 -1
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-B2EzXi50.js +1 -0
- package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-CPE9jyDF.js → timeline-definition-GMOUNBTQ-CD-tZc4y.js} +1 -1
- package/payload/server/public/assets/{vennDiagram-DHZGUBPP-CKfoyYmH.js → vennDiagram-DHZGUBPP-Davcm0TF.js} +1 -1
- package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-B9yJek-o.js → wardleyDiagram-NUSXRM2D-40LBYw_Y.js} +1 -1
- package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-DuCcSLqX.js → xychartDiagram-5P7HB3ND-DEPT-__v.js} +1 -1
- package/payload/server/public/data.html +5 -5
- package/payload/server/public/graph.html +6 -6
- package/payload/server/public/index.html +8 -8
- package/payload/server/public/public.html +5 -5
- package/payload/server/server.js +1254 -337
- package/payload/server/public/assets/ChatInput-CJ50oqWt.css +0 -1
- package/payload/server/public/assets/channel-PC4_IjI1.js +0 -1
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-B_pMa-SX.js +0 -1
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-BdBAgF20.js +0 -1
- package/payload/server/public/assets/clone-CkNt9L9r.js +0 -1
- package/payload/server/public/assets/data-CtanHhM2.js +0 -1
- package/payload/server/public/assets/graph-6DPD6be1.js +0 -1
- package/payload/server/public/assets/public-DltgEfA9.js +0 -7
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-pfk2F6st.js +0 -1
- /package/payload/server/public/assets/{ChatInput-CJo_77bp.js → ChatInput-CvRaT05l.js} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Access Grant Operations
|
|
2
2
|
|
|
3
|
-
Detailed reference for the `access-manager` skill. Covers creating, querying, modifying, and presenting per-agent access grants.
|
|
3
|
+
Detailed reference for the `access-manager` skill. Covers creating, querying, modifying, and presenting per-agent access grants for gated public agents (email magic link only).
|
|
4
4
|
|
|
5
5
|
## Prerequisites
|
|
6
6
|
|
|
@@ -21,22 +21,19 @@ Use these exact property names when creating or updating grants:
|
|
|
21
21
|
|---|---|---|---|---|
|
|
22
22
|
| `agentSlug` | string | Yes | No | Target agent's slug |
|
|
23
23
|
| `accountId` | string | Yes | No | From `account.json` |
|
|
24
|
-
| `contactMethod` | `"email"`
|
|
25
|
-
| `contactValue` | string | Yes | No | Email address
|
|
24
|
+
| `contactMethod` | `"email"` | Yes | No | Always `"email"`. Phone/OTP delivery is out of scope for the current build |
|
|
25
|
+
| `contactValue` | string | Yes | No | Email address, lowercase |
|
|
26
26
|
| `status` | string | Yes | Yes | `"invited"` / `"active"` / `"expired"` / `"revoked"` |
|
|
27
27
|
| `expiresAt` | datetime | Yes | Yes | ISO 8601 datetime. `null` means no expiry |
|
|
28
28
|
| `createdAt` | datetime | Auto | No | Stamped at write time by the recorder |
|
|
29
|
-
| `magicToken` | string |
|
|
30
|
-
| `magicTokenExpiresAt` | datetime |
|
|
31
|
-
| `
|
|
32
|
-
| `otpExpiresAt` | datetime | Phone only | Yes | 10 minutes from generation |
|
|
33
|
-
| `passwordHash` | string | No | Yes | scrypt hash. Set by the access gate API when the visitor creates credentials — not by the admin agent |
|
|
34
|
-
| `otpAttempts` | integer | Phone only | Yes | Failed OTP entries. Max 3 before regeneration required |
|
|
29
|
+
| `magicToken` | string | Yes | Yes | Cryptographically random UUIDv4. Nulled after first use |
|
|
30
|
+
| `magicTokenExpiresAt` | datetime | Yes | Yes | 15 minutes from generation |
|
|
31
|
+
| `sliceToken` | string | Yes | **No** | UUIDv4 generated by the admin agent at create time. Ringfences per-visitor memory writes when `accessMode: "gated"`. Never mutated by revoke / extend / resend |
|
|
35
32
|
| `scope` | `"admin"` | Yes | No | **Mandatory.** Omitting scope exposes grants to public agents |
|
|
36
33
|
|
|
37
34
|
### Recorder write shape
|
|
38
35
|
|
|
39
|
-
Each AccessGrant write the recorder produces names
|
|
36
|
+
Each AccessGrant write the recorder produces names the label (`AccessGrant`), the property bag from the table above (including a freshly-generated `sliceToken` UUIDv4), the operator's `accountId`, `scope: "admin"`, and the inbound `HAS_ACCESS` relationship from the Person. Admin's job is to confirm those five things in conversation; the recorder reads them off the transcript and writes the node. Updates name the existing `AccessGrant` by element ID (from the most recent `cypher-shell` lookup) and the new properties — never including `sliceToken`.
|
|
40
37
|
|
|
41
38
|
### Querying Grants
|
|
42
39
|
|
|
@@ -47,7 +44,7 @@ Example queries (substitute actual values for parameters):
|
|
|
47
44
|
**All grants for an agent:**
|
|
48
45
|
```cypher
|
|
49
46
|
MATCH (p:Person)-[:HAS_ACCESS]->(g:AccessGrant {agentSlug: $slug, accountId: $accountId})
|
|
50
|
-
RETURN elementId(g) AS grantId, p.givenName AS name, g.
|
|
47
|
+
RETURN elementId(g) AS grantId, p.givenName AS name, g.contactValue, g.status, g.expiresAt, g.createdAt
|
|
51
48
|
ORDER BY g.createdAt DESC
|
|
52
49
|
```
|
|
53
50
|
|
|
@@ -65,7 +62,7 @@ RETURN elementId(p) AS personId, p.givenName AS name
|
|
|
65
62
|
|
|
66
63
|
## Invite by Email
|
|
67
64
|
|
|
68
|
-
**Outcome:** A Person node and AccessGrant node exist in the graph, linked by `HAS_ACCESS`. A magic link email has been sent to the visitor.
|
|
65
|
+
**Outcome:** A Person node and AccessGrant node exist in the graph, linked by `HAS_ACCESS`. A magic link email has been sent to the visitor. The grant carries an immutable `sliceToken` that scopes every per-visitor memory write across the visitor's lifetime on this agent.
|
|
69
66
|
|
|
70
67
|
### Person node
|
|
71
68
|
|
|
@@ -73,7 +70,7 @@ Search for an existing Person by email using a `cypher-shell` query. If found, r
|
|
|
73
70
|
|
|
74
71
|
### AccessGrant node
|
|
75
72
|
|
|
76
|
-
Confirm the grant with the operator carrying all fields from the data model table — `status: "invited"`, the freshly-generated `magicToken` (random
|
|
73
|
+
Confirm the grant with the operator carrying all fields from the data model table — `status: "invited"`, the freshly-generated `magicToken` (random UUIDv4), `magicTokenExpiresAt` (15 minutes from now), a freshly-generated `sliceToken` (random UUIDv4, distinct from the magic token), and the `expiresAt` from the admin's requested duration (or `null` for no expiry) — together with `accountId` from `account.json`, `scope: "admin"`, and the inbound `HAS_ACCESS` edge from the Person. The `incoming` direction yields `(Person)-[:HAS_ACCESS]->(AccessGrant)` once the recorder writes it.
|
|
77
74
|
|
|
78
75
|
### Magic link
|
|
79
76
|
|
|
@@ -97,36 +94,6 @@ Send via `email-send`:
|
|
|
97
94
|
|
|
98
95
|
Before creating the grant and sending the email, present a `confirm` component showing: who is being invited (name, email), which agent, and the access duration.
|
|
99
96
|
|
|
100
|
-
## Invite by Phone
|
|
101
|
-
|
|
102
|
-
Same as email invitation with these differences:
|
|
103
|
-
|
|
104
|
-
- `contactMethod`: `"phone"`
|
|
105
|
-
- `contactValue`: phone number in E.164 format (e.g. `+447700900123`)
|
|
106
|
-
- Generate a random 6-digit `otpCode` instead of a magic token. Set `otpExpiresAt` (10 minutes from now) and `otpAttempts` to `0`. Do not set `magicToken` or `magicTokenExpiresAt`.
|
|
107
|
-
|
|
108
|
-
### SMS delivery
|
|
109
|
-
|
|
110
|
-
After creating the grant, deliver the OTP code via SMS. Run this Bash command:
|
|
111
|
-
|
|
112
|
-
```bash
|
|
113
|
-
curl -s -X POST http://localhost:19200/api/access/send-otp \
|
|
114
|
-
-H 'Content-Type: application/json' \
|
|
115
|
-
-d '{"phone": "<contactValue>", "agentSlug": "<agentSlug>"}'
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
Replace `<contactValue>` with the E.164 phone number and `<agentSlug>` with the target agent's slug.
|
|
119
|
-
|
|
120
|
-
If the response contains `"success": true`, confirm to the admin that the OTP was sent. If it contains an error, report the error message — common causes: Brevo API key not configured (`~/.maxy/.brevo-api-key` missing), invalid phone number format, or Brevo rate limit reached.
|
|
121
|
-
|
|
122
|
-
### Brevo SMS setup
|
|
123
|
-
|
|
124
|
-
Before phone invitations can send SMS, the Brevo API key must be configured. When the admin asks to set up SMS or the first phone invitation fails with a missing key error:
|
|
125
|
-
|
|
126
|
-
1. Ask the admin for their Brevo API key (from their Brevo account → SMTP & API → API Keys).
|
|
127
|
-
2. Store the key: run `echo "<api-key>" > ~/.maxy/.brevo-api-key && chmod 600 ~/.maxy/.brevo-api-key` via Bash.
|
|
128
|
-
3. Verify delivery by sending a test SMS to the admin's phone. Run the send-otp command above with a test grant, or ask the admin for a phone number and create a temporary test grant.
|
|
129
|
-
|
|
130
97
|
## List Access Grants
|
|
131
98
|
|
|
132
99
|
**Outcome:** Admin sees a structured list of all grants for the specified agent.
|
|
@@ -135,7 +102,7 @@ Query all grants via `cypher-shell`, then present as a numbered list in plain ch
|
|
|
135
102
|
|
|
136
103
|
- The grant element ID (so the admin can refer back to it).
|
|
137
104
|
- The visitor's display name, falling back to the contact value when no name is recorded.
|
|
138
|
-
- `{
|
|
105
|
+
- `{contactValue} — Expires: {date or 'Never'} — Since: {createdAt}`.
|
|
139
106
|
- Status (`invited`, `active`, `expired`, `revoked`).
|
|
140
107
|
- The available follow-up actions: "Revoke" and "Extend". Omit these actions for grants already in `revoked` or `expired` status.
|
|
141
108
|
|
|
@@ -143,17 +110,27 @@ If no grants exist for the agent, say so in text rather than emitting an empty l
|
|
|
143
110
|
|
|
144
111
|
## Revoke Access
|
|
145
112
|
|
|
146
|
-
**Outcome:** Grant status is `"revoked"`. The visitor is blocked on their next
|
|
113
|
+
**Outcome:** Grant status is `"revoked"`. Active visitor sessions for the grant are evicted immediately. The visitor is blocked on their next request.
|
|
147
114
|
|
|
148
115
|
Find the grant via `cypher-shell` to get its element ID. Confirm the revocation with the operator naming the element ID and the new `status: "revoked"`; the recorder writes the status change in its next turn.
|
|
149
116
|
|
|
150
|
-
|
|
117
|
+
After the recorder's status write lands, run this Bash command so any in-flight `__access_session` cookie for the grant is dropped from the UI server's session map:
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
curl -s -X POST http://localhost:19200/api/admin/access-session-evict \
|
|
121
|
+
-H 'Content-Type: application/json' \
|
|
122
|
+
-d '{"grantId": "<elementId>"}'
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
The endpoint is loopback-only; it accepts the element ID returned from the cypher lookup and removes every active session whose `grantId` matches. The `sliceToken` is **not** mutated — historical memory writes tagged with that slice remain in the graph (the operator can purge separately if needed).
|
|
126
|
+
|
|
127
|
+
Present a `confirm` component before the revocation lands. Explain that the visitor is logged out immediately and must wait for a fresh invitation to re-access.
|
|
151
128
|
|
|
152
129
|
## Extend Access
|
|
153
130
|
|
|
154
131
|
**Outcome:** Grant's `expiresAt` is pushed forward by the requested duration.
|
|
155
132
|
|
|
156
|
-
Find the grant via `cypher-shell`. Calculate the new `expiresAt` by adding the requested duration to the current `expiresAt` (or to now, if the grant has already expired). Confirm the new `expiresAt` and the grant's element ID with the operator; the recorder folds the new property in.
|
|
133
|
+
Find the grant via `cypher-shell`. Calculate the new `expiresAt` by adding the requested duration to the current `expiresAt` (or to now, if the grant has already expired). Confirm the new `expiresAt` and the grant's element ID with the operator; the recorder folds the new property in. `sliceToken` is untouched.
|
|
157
134
|
|
|
158
135
|
Present a `confirm` component showing the current expiry date and the new expiry date after extension.
|
|
159
136
|
|
|
@@ -164,19 +141,14 @@ Present a `confirm` component showing the current expiry date and the new expiry
|
|
|
164
141
|
Read the agent's `config.json`, update the `accessMode` field, and write it back. Valid values:
|
|
165
142
|
|
|
166
143
|
- `"open"` — anyone with the URL can chat (default, no gate)
|
|
167
|
-
- `"gated"` — only invited visitors with
|
|
168
|
-
- `"paid"` — same behaviour as gated (payment integration deferred to a future phase)
|
|
169
|
-
|
|
170
|
-
Both `gated` and `paid` follow the same code path — the distinction is a semantic label for future use.
|
|
144
|
+
- `"gated"` — only invited visitors with a valid magic-link session can access; memory reads/writes scoped to the visitor's `sliceToken`
|
|
171
145
|
|
|
172
146
|
Present a `confirm` component before changing, explaining the current mode, the new mode, and what the change means for visitors.
|
|
173
147
|
|
|
174
148
|
## Resend Invitation
|
|
175
149
|
|
|
176
|
-
**Outcome:** A fresh magic token
|
|
150
|
+
**Outcome:** A fresh magic token is generated and a new invitation email is sent. `sliceToken` is preserved.
|
|
177
151
|
|
|
178
152
|
Find the existing grant via `cypher-shell`. The grant must be in `invited` or `active` status.
|
|
179
153
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
**For phone grants:** Generate a new 6-digit `otpCode`, reset `otpAttempts` to `0`, set `otpExpiresAt` to 10 minutes from now. Confirm all three with the operator and the grant's element ID — the recorder folds them in. Then deliver the new OTP via the SMS delivery command described in the "Invite by Phone" section.
|
|
154
|
+
Generate a new UUIDv4 for `magicToken`, set `magicTokenExpiresAt` to 15 minutes from now. Confirm both with the operator and the grant's element ID — the recorder folds them in. Send the invitation email using the same format as the original invite. The visitor's `sliceToken` carries over, so memory accumulated under the prior link is still scoped to the same visitor when they re-authenticate.
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: professional-document
|
|
3
|
+
description: >
|
|
4
|
+
Compose a print-ready A4 PDF of a generic business document — proposal, report
|
|
5
|
+
(market / analysis / strategic), brief, memo, white paper, plan (non-fundraise),
|
|
6
|
+
or case study — from an operator brief plus brand tokens and graph context.
|
|
7
|
+
Trigger phrases: "write me a proposal", "draft a proposal", "draft a report",
|
|
8
|
+
"produce a report", "compile a report", "draft a market report", "draft an
|
|
9
|
+
analysis report", "draft a strategic report", "write me a brief", "draft a
|
|
10
|
+
brief", "write me a memo", "draft a memo", "send a memo", "draft a white paper",
|
|
11
|
+
"write a white paper", "draft a plan", "write me a plan" (triggers a fundraise
|
|
12
|
+
vs non-fundraise gate), "write me a case study", "draft a case study". Refuses
|
|
13
|
+
and redirects briefs that are owned by another composer: fundraise documents
|
|
14
|
+
(prospectus / term sheet / business plan / data room) route to
|
|
15
|
+
`venture-studio:investor-data-room`; property brochures route to
|
|
16
|
+
`real-agent:property-brochure`; pre-valuation packs route to
|
|
17
|
+
`real-agent:property-preval`; slide decks route to `admin:deck-pages` (format
|
|
18
|
+
spec) and `venture-studio:investor-data-room` (composer). Does NOT trigger on
|
|
19
|
+
format-only phrasings ("PDF", "one-pager", "A4", "brochure", "executive
|
|
20
|
+
document", "market analysis") — those are owned by `admin:a4-print-documents`.
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# Professional document
|
|
24
|
+
|
|
25
|
+
Compose a single A4 PDF of a generic business document from an operator brief, brand tokens, and the graph. The skill body is the workflow contract; load it once via `Skill professional-document` at the start of the turn and follow it through to delivery.
|
|
26
|
+
|
|
27
|
+
## Refusal taxonomy (run first, before any composition)
|
|
28
|
+
|
|
29
|
+
These checks run in order against the operator brief. The first match wins and stops the workflow with a one-sentence refusal that names the correct composer. Do not compose when any refusal fires.
|
|
30
|
+
|
|
31
|
+
| Brief mentions | Refuse, redirect to | Why |
|
|
32
|
+
|---|---|---|
|
|
33
|
+
| prospectus, term sheet, data room, business plan, investor, fundraise, raise, round, SEIS, EIS, cap table | `venture-studio:investor-data-room` | Owns the UK seed-raise pack end-to-end (16-section plan, prospectus, term sheet, FCA self-cert appendices). |
|
|
34
|
+
| property brochure, property listing brochure | `real-agent:property-brochure` | Owns the estate-agent brochure pipeline (brand → property → A4 PDF). |
|
|
35
|
+
| pre-valuation, preval, valuation pitch, pre-appraisal | `real-agent:property-preval` | Owns the 5-page pre-valuation pitch pack. |
|
|
36
|
+
| deck, slides, slide deck, presentation, pitch deck | `admin:deck-pages` (format spec) and `venture-studio:investor-data-room` (composer) | Slide format and full-pitch composition are not A4 documents. |
|
|
37
|
+
| noun is "plan" and none of the fundraise tokens above match | **Ask the operator** before proceeding: "Is this a fundraise plan (business plan for investors) or an operating / strategic / marketing / transition plan?" If fundraise → refuse, redirect to `venture-studio:investor-data-room`. If non-fundraise → proceed. | The word "plan" splits cleanly between the two composers; the precision doctrine requires asking rather than guessing. |
|
|
38
|
+
|
|
39
|
+
Emit `[professional-document] refuse reason=<owned-by-other-composer> redirect=<skill-name>` on any refusal. Emit `[professional-document] plan-disambiguation asked` when the plan gate fires and `[professional-document] plan-disambiguation answered=<fundraise|non-fundraise>` once the operator answers.
|
|
40
|
+
|
|
41
|
+
When a refusal fires, return a single sentence naming the correct composer: e.g. "That's a fundraise document — ask `venture-studio:investor-data-room` instead." Do not draft, do not outline, do not load `a4-print-documents`.
|
|
42
|
+
|
|
43
|
+
## Document-type catalogue
|
|
44
|
+
|
|
45
|
+
Each entry below names the document type, its purpose, the default section order, the length range (which determines the page count target for the A4 build), the default tone, and the existing skills it composes with. Pick the matching entry from the operator brief; if the brief is ambiguous between two types, ask which one before drafting.
|
|
46
|
+
|
|
47
|
+
### `proposal`
|
|
48
|
+
- **Purpose:** Persuade a named recipient (customer, partner, supplier) to accept a defined offer.
|
|
49
|
+
- **Section order:** Cover / Summary of the offer / The problem we are solving for you / Proposed approach / What you get / Pricing and timeline / Why us / Next step.
|
|
50
|
+
- **Length:** 4–8 pages.
|
|
51
|
+
- **Tone:** Direct, customer-centred, second person ("you"). No filler.
|
|
52
|
+
- **Composes with:** `memory-search` for the recipient's known context; `prose-craft` for sentence review when writer-craft is enabled; `a4-print-documents` for the A4 shell.
|
|
53
|
+
|
|
54
|
+
### `report`
|
|
55
|
+
- **Purpose:** Present findings on a defined subject (market, analysis, strategic) to a defined audience. Sub-types: market report, analysis report, strategic report.
|
|
56
|
+
- **Section order:** Cover / Executive summary / Scope and method / Findings (numbered sections, one per finding) / Implications / Recommendations / Sources and references.
|
|
57
|
+
- **Length:** 5–15 pages, depending on findings density.
|
|
58
|
+
- **Tone:** Third person, evidence-led. Every quantitative claim cites a source (graph node id when grounded in the graph, named publication when grounded by research-assistant brief-back).
|
|
59
|
+
- **Composes with:** `memory-search` for graph-known facts; `research-assistant` brief-back (via the admin agent) for facts not in the graph; `prose-craft` when writer-craft is enabled; `a4-print-documents` for the A4 shell. Numbered references render in the footer area per `a4-print-documents` page-margin patterns.
|
|
60
|
+
|
|
61
|
+
### `brief`
|
|
62
|
+
- **Purpose:** Hand off a defined unit of work or context to a named owner. Decision-ready.
|
|
63
|
+
- **Section order:** Cover / Context (1 paragraph) / The ask (3-5 bullets) / Constraints / Out of scope / Owner and timing.
|
|
64
|
+
- **Length:** 1–3 pages.
|
|
65
|
+
- **Tone:** Imperative, terse. The reader should know what to do after one read.
|
|
66
|
+
- **Composes with:** `memory-search` for the context paragraph; `a4-print-documents` for the A4 shell. `prose-craft` review is optional at this length and is skipped if it would add a turn for negligible benefit.
|
|
67
|
+
|
|
68
|
+
### `memo`
|
|
69
|
+
- **Purpose:** Internal communication of a decision, position, or update to a defined audience.
|
|
70
|
+
- **Section order:** Header (To / From / Date / Subject) / Bottom line up front (1 paragraph) / Background / Decision or position / What changes / Open questions.
|
|
71
|
+
- **Length:** 1–4 pages.
|
|
72
|
+
- **Tone:** First person plural ("we") for organisational memos, first person singular ("I") for personal memos. Direct.
|
|
73
|
+
- **Composes with:** `memory-search` for the background section; `a4-print-documents` for the A4 shell. `prose-craft` review optional.
|
|
74
|
+
|
|
75
|
+
### `white-paper`
|
|
76
|
+
- **Purpose:** Establish a position on a substantive topic for a broad professional audience. Often used to influence a market or regulatory conversation.
|
|
77
|
+
- **Section order:** Cover / Abstract / Introduction / The problem in detail / Our analysis / Our position / Implications for [audience] / Conclusion / Citations.
|
|
78
|
+
- **Length:** 8–20 pages.
|
|
79
|
+
- **Tone:** Authoritative, third person, citation-dense.
|
|
80
|
+
- **Composes with:** `memory-search`; `research-assistant` brief-back for any factual claim not in the graph; `prose-craft` when writer-craft is enabled; `a4-print-documents` for the A4 shell.
|
|
81
|
+
|
|
82
|
+
### `plan` (non-fundraise)
|
|
83
|
+
- **Purpose:** Define how a named outcome will be achieved over a stated horizon. Includes operating plans, strategic plans, marketing plans, transition plans, hiring plans, integration plans.
|
|
84
|
+
- **Section order:** Cover / The outcome / Why now / Current state / Target state / Workstreams (numbered) / Milestones / Owners and cadence / Risks and mitigations / Out of scope.
|
|
85
|
+
- **Length:** 5–15 pages.
|
|
86
|
+
- **Tone:** Outcome-led, owner-named, dated.
|
|
87
|
+
- **Composes with:** `memory-search` for owners, projects, and prior state; `prose-craft` when writer-craft is enabled; `a4-print-documents` for the A4 shell. The plan-disambiguation gate above must have fired and returned "non-fundraise" before this branch runs.
|
|
88
|
+
|
|
89
|
+
### `case-study`
|
|
90
|
+
- **Purpose:** Document a completed engagement (customer, project, internal initiative) as a credibility artefact for use elsewhere.
|
|
91
|
+
- **Section order:** Cover / At-a-glance (1 paragraph + 3 numbers) / The situation / What we did / What changed / Quotes / What's next.
|
|
92
|
+
- **Length:** 3–6 pages.
|
|
93
|
+
- **Tone:** Narrative, named-subject. Numbers are dated. Quotes attributed by name and role.
|
|
94
|
+
- **Composes with:** `memory-search` for the named subject and adjacent facts; `prose-craft` when writer-craft is enabled; `a4-print-documents` for the A4 shell.
|
|
95
|
+
|
|
96
|
+
## Workflow
|
|
97
|
+
|
|
98
|
+
Run these phases in order. Do not skip; do not parallelise. Each phase emits its observability line on completion.
|
|
99
|
+
|
|
100
|
+
### 1. Resolve brand tokens
|
|
101
|
+
|
|
102
|
+
Read `brand.json` for the active brand. Take colours from `defaultColors` (`primary`, `primaryHover`, `primarySubtle`, `primaryGlow`, `accent`, `background`, `agentBubble`) and fonts from `defaultFonts` (`display`, `body`). These feed the `:root` CSS variables in the A4 HTML built later. Do not invent colours; if a brand override is missing, fall back to the default brand's values rather than hard-coding hex.
|
|
103
|
+
|
|
104
|
+
### 2. Ground in the graph
|
|
105
|
+
|
|
106
|
+
Run `memory-search` against the brief's named subjects (people, organisations, projects, products). Pull every relevant property into the outline. If the brief depends on a fact the graph does not carry (a market figure, a regulatory citation, a named comparable), do not invent it: hand the admin agent a brief-back asking it to dispatch `research-assistant`, and pause until the fact is returned.
|
|
107
|
+
|
|
108
|
+
### 3. Draft the outline
|
|
109
|
+
|
|
110
|
+
Compose an outline using the section order from the document-type catalogue for the matched type. Number every section. For each section, write one line stating what it will say (the claim) and one line stating which graph facts or research-assistant returns will ground it.
|
|
111
|
+
|
|
112
|
+
Emit `[professional-document] outline doc-type=<type> sections=<n>`.
|
|
113
|
+
|
|
114
|
+
### 4. Operator-approve the outline
|
|
115
|
+
|
|
116
|
+
Return the outline to the operator as a turn. Wait for the operator to answer "go" / "approve" / "yes" or to send revisions. If revisions are requested, re-draft the outline once and re-emit; if a second revision is requested, propose continuing inline rather than another full re-draft.
|
|
117
|
+
|
|
118
|
+
Emit `[professional-document] outline-approval asked` when the outline goes to the operator, and `[professional-document] outline-approval answered=<approve|revise>` when the operator answers.
|
|
119
|
+
|
|
120
|
+
Do not start section drafts until the outline is approved.
|
|
121
|
+
|
|
122
|
+
### 5. Draft each section
|
|
123
|
+
|
|
124
|
+
Draft section by section in outline order. Each section uses the brand tokens from phase 1, the graph facts from phase 2, and the section's stated claim from phase 3. Cite sources inline (graph node id for graph-grounded facts, named publication for research-assistant-returned facts).
|
|
125
|
+
|
|
126
|
+
Emit `[professional-document] draft section=<i/n> wordcount=<n>` after each section.
|
|
127
|
+
|
|
128
|
+
### 6. Optional prose review
|
|
129
|
+
|
|
130
|
+
Attempt `skill-load skillName=prose-craft`. If it returns the skill body, apply it as a review pass over the draft and emit `[professional-document] prose-review applied`. If it returns skill-not-found (writer-craft not enabled on this brand or account), apply a one-shot self-review prompt against the doctrine in this skill and emit `[professional-document] prose-review skipped reason=writer-craft-not-enabled`. Never block the workflow on prose review.
|
|
131
|
+
|
|
132
|
+
### 7. Build the A4 HTML
|
|
133
|
+
|
|
134
|
+
The first tool call of this phase MUST be `Skill a4-print-documents`. Any browser tool call before that skill is loaded into context is a contract violation. Load `skill-load skillName=a4-print-documents` and follow its rules verbatim — page margins, glassmorphism fallback, page-break rules, dark-background colour-adjust, the cover and backpage pattern. Do not paraphrase those rules; the print-CSS contract lives in that skill.
|
|
135
|
+
|
|
136
|
+
Emit `[professional-document] render → a4-print-documents`.
|
|
137
|
+
|
|
138
|
+
### 8. Ask the operator for the output path
|
|
139
|
+
|
|
140
|
+
Before saving the PDF, ask the operator where they want it saved. The operator names the path (file name and directory). Do not invent the path. The path the operator names is where the PDF is written and what the observability line records.
|
|
141
|
+
|
|
142
|
+
### 9. Save the PDF
|
|
143
|
+
|
|
144
|
+
Use `browser_pdf_save` to write the HTML to the operator-named path.
|
|
145
|
+
|
|
146
|
+
Emit `[professional-document] pdf-saved path=<operator-named-path> bytes=<n>`.
|
|
147
|
+
|
|
148
|
+
### 10. Deliver
|
|
149
|
+
|
|
150
|
+
Hand off to the `file-presentation` skill for delivery. `file-presentation` picks the right delivery tool from the agent's tool inventory (`SendUserFile` on the native Claude Code surface, `file-attach` on web chat and WhatsApp). Do not hard-code the delivery tool here.
|
|
151
|
+
|
|
152
|
+
## Doctrine
|
|
153
|
+
|
|
154
|
+
- **Compose, do not duplicate.** `a4-print-documents` owns the print-CSS rules; this skill loads it and follows it. `prose-craft` owns sentence-level review; this skill invokes it when present. `memory-search` owns graph reads; this skill calls it for grounding. The seam is "this skill is the workflow; the loaded skills carry the rules."
|
|
155
|
+
- **Refuse before composing.** Every brief runs through the refusal taxonomy first. A skill that drafts something it should have refused is a routing defect, not a quality issue.
|
|
156
|
+
- **Operator-named output path.** The skill never invents the path. The operator names where the PDF lands. This matches how `investor-data-room` and the property composers work.
|
|
157
|
+
- **Approve the outline before drafting.** Long documents whose structure is wrong cost more to re-draft than they cost to re-outline. The approval turn is cheap; the wasted draft is expensive.
|
|
158
|
+
- **No invented facts.** Every quantitative or named claim grounds in `memory-search` or a `research-assistant` brief-back. If the graph does not carry the fact and the operator has not asked for research, draft a one-line gap statement in place ("[GAP: <description>]") and surface it in the outline-approval turn.
|
|
159
|
+
- **No live web research from this skill.** If a fact is missing, ask the admin agent to dispatch `research-assistant`. This skill does not call `WebFetch` or `WebSearch` directly.
|
|
160
|
+
- **Brand tokens or fallback, never hard-coded hex.** Colours and fonts come from `brand.json#defaultColors` / `defaultFonts`. If the active brand omits an override, use the default brand's value, not a literal hex.
|
|
161
|
+
|
|
162
|
+
## Observability lines (full list)
|
|
163
|
+
|
|
164
|
+
These are the lines this skill emits. They surface in `server.log` via the existing PTY stdout capture; no new log file, no new structured event.
|
|
165
|
+
|
|
166
|
+
```
|
|
167
|
+
[professional-document] refuse reason=<owned-by-other-composer> redirect=<skill-name>
|
|
168
|
+
[professional-document] plan-disambiguation asked
|
|
169
|
+
[professional-document] plan-disambiguation answered=<fundraise|non-fundraise>
|
|
170
|
+
[professional-document] outline doc-type=<type> sections=<n>
|
|
171
|
+
[professional-document] outline-approval asked
|
|
172
|
+
[professional-document] outline-approval answered=<approve|revise>
|
|
173
|
+
[professional-document] draft section=<i/n> wordcount=<n>
|
|
174
|
+
[professional-document] prose-review applied
|
|
175
|
+
[professional-document] prose-review skipped reason=writer-craft-not-enabled
|
|
176
|
+
[professional-document] render → a4-print-documents
|
|
177
|
+
[professional-document] pdf-saved path=<operator-named-path> bytes=<n>
|
|
178
|
+
```
|
|
@@ -11,8 +11,9 @@ Manage specialist subagents at any time via conversation.
|
|
|
11
11
|
|
|
12
12
|
1. Use Bash: `cp $PLATFORM_ROOT/templates/specialists/agents/{name}.md specialists/agents/{name}.md`
|
|
13
13
|
2. Ensure `agents/admin/AGENTS.md` exists; create if absent.
|
|
14
|
-
3.
|
|
15
|
-
4.
|
|
14
|
+
3. Extract the `name` and `description` fields from the copied file's YAML frontmatter.
|
|
15
|
+
4. Read `agents/admin/AGENTS.md`. If it already contains a line matching `- **specialists:{name}**:` (any text after the colon — an operator may have tuned it), leave it untouched. Otherwise append `- **specialists:{name}**: {description}` using Edit, with `{description}` copied verbatim from the frontmatter.
|
|
16
|
+
5. Confirm to the user — active from next session start.
|
|
16
17
|
|
|
17
18
|
## Remove a specialist
|
|
18
19
|
|
|
@@ -32,6 +32,9 @@ function refuseNoAccount(toolName) {
|
|
|
32
32
|
}
|
|
33
33
|
const agentSlug = process.env.AGENT_SLUG || undefined;
|
|
34
34
|
const sessionId = process.env.SESSION_ID || undefined;
|
|
35
|
+
// Task 476 — boot signal so a stale spawn-env contract is visible at the
|
|
36
|
+
// first byte of stderr.
|
|
37
|
+
process.stderr.write(`[aeo] boot accountId=${accountId ?? "-"} sessionId=${sessionId ?? "-"} agentSlug=${agentSlug ?? "-"}\n`);
|
|
35
38
|
// ---------------------------------------------------------------------------
|
|
36
39
|
// aeo-emit-jsonld
|
|
37
40
|
// ---------------------------------------------------------------------------
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAC7E,aAAa,CAAC,KAAK,CAAC,CAAC;AAErB,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,8DAA8D;AAC9D,MAAM,MAAM,GAAQ,IAAI,SAAS,CAAC;IAChC,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,OAAO;CACjB,CAAC,CAAC;AAEH,sEAAsE;AACtE,qEAAqE;AACrE,wDAAwD;AACxD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC;AACjD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,SAAS,IAAI,MAAM,IAAI,CAAC,CAAC;AAEtE,SAAS,eAAe,CAAC,QAAgB;IACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,cAAc,QAAQ,qCAAqC,CAC5D,CAAC;IACF,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,GAAG,QAAQ,gKAAgK;aAClL;SACF;QACD,OAAO,EAAE,IAAa;KACvB,CAAC;AACJ,CAAC;AAED,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,SAAS,CAAC;AACtD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,6 +37,9 @@ function refuseNoAccount(toolName) {
|
|
|
37
37
|
}
|
|
38
38
|
const agentSlug = process.env.AGENT_SLUG;
|
|
39
39
|
const sessionId = process.env.SESSION_ID;
|
|
40
|
+
// Task 476 — boot signal so a stale spawn-env contract is visible at the
|
|
41
|
+
// first byte of stderr.
|
|
42
|
+
process.stderr.write(`[contacts] boot accountId=${accountId ?? "-"} sessionId=${sessionId || "-"} agentSlug=${agentSlug || "-"}\n`);
|
|
40
43
|
eagerTool(server, "contact-create", "Create a new contact (schema:Person) in the graph. Any single identifying property — name, email, or telephone — suffices; the agent judges what to capture and dedup/conflicts are managed downstream. When email or telephone is supplied, contact-create deduplicates against existing live persons and returns the match instead of writing a duplicate. The new contact must link to at least one existing node (typically a Conversation or Organization) — pass elementIds found via memory-search.", {
|
|
41
44
|
givenName: z.string().optional().describe("First name (optional — supply whichever identifying fields you have)"),
|
|
42
45
|
familyName: z.string().optional().describe("Last name"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,53 +2,60 @@
|
|
|
2
2
|
|
|
3
3
|
## What It Is
|
|
4
4
|
|
|
5
|
-
Access control determines who can chat with your public agent. By default, anyone with your public URL can start a conversation. You can restrict this so only invited people have access.
|
|
5
|
+
Access control determines who can chat with your public agent. By default, anyone with your public URL can start a conversation. You can restrict this so only invited people have access, and so the agent remembers each invitee separately without leaking what one visitor said to the others.
|
|
6
6
|
|
|
7
7
|
## Access Modes
|
|
8
8
|
|
|
9
|
-
Each public agent has one of
|
|
9
|
+
Each public agent has one of two access modes:
|
|
10
10
|
|
|
11
|
-
| Mode | Who can chat |
|
|
12
|
-
|
|
13
|
-
| Open (default) | Anyone with the URL. No login required. |
|
|
14
|
-
| Gated | Invitation only. Visitors
|
|
15
|
-
| Paid | Same as gated — visitors must be invited and authenticated. The label distinguishes paying clients from free invitees, for your own tracking. |
|
|
16
|
-
|
|
17
|
-
Gated and paid work identically — the difference is a label for your records. Both require visitors to authenticate before they can see the chat.
|
|
11
|
+
| Mode | Who can chat | What the agent remembers |
|
|
12
|
+
|------|--------------|--------------------------|
|
|
13
|
+
| Open (default) | Anyone with the URL. No login required. | Public-scope knowledge only. Nothing per-visitor. |
|
|
14
|
+
| Gated | Invitation only. Visitors authenticate by clicking a fresh emailed link each session. | A separate per-visitor memory slice. Visitor A and visitor B never see each other's memory. |
|
|
18
15
|
|
|
19
16
|
## How to Set It Up
|
|
20
17
|
|
|
21
18
|
Tell {{productName}}: "Set my public agent to gated access" or "Make the coaching agent invitation-only."
|
|
22
19
|
|
|
23
|
-
{{productName}}
|
|
20
|
+
{{productName}} flips the agent's access mode. The next visitor to your public URL sees a sign-in screen instead of the chat.
|
|
24
21
|
|
|
25
22
|
## Inviting Visitors
|
|
26
23
|
|
|
27
|
-
Tell {{productName}}
|
|
24
|
+
Tell {{productName}}: "Invite sarah@client.co to the coaching agent."
|
|
25
|
+
|
|
26
|
+
{{productName}} creates an invitation and emails the visitor a magic link. At creation time the invitation is stamped with a one-off `sliceToken` — that token is what binds every per-visitor memory write to this specific invitation for the life of the invite.
|
|
28
27
|
|
|
29
|
-
|
|
28
|
+
Only email invitations are supported. Phone, OTP, and password flows are not part of the current build.
|
|
30
29
|
|
|
31
30
|
## What Visitors Experience
|
|
32
31
|
|
|
33
|
-
- **First visit (invited):** The visitor
|
|
34
|
-
- **Return visits:** The visitor
|
|
35
|
-
- **
|
|
36
|
-
- **
|
|
32
|
+
- **First visit (invited):** The visitor opens the email and clicks the magic link. They land on your public URL, the cookie is set, and the chat opens. No password to remember.
|
|
33
|
+
- **Return visits / lost the email:** The visitor visits your URL directly, types the email they were invited on, and clicks "Send me a link." A fresh magic link arrives within seconds. The new link replaces the previous one — old links go inert.
|
|
34
|
+
- **Browser close:** The cookie is session-only. Closing the tab signs the visitor out. They click the latest magic link, or request a new one, to come back.
|
|
35
|
+
- **Revoked or expired:** Their next request is bounced back to the sign-in screen. They cannot get past it until you re-invite them.
|
|
36
|
+
|
|
37
|
+
## Per-Visitor Memory
|
|
38
|
+
|
|
39
|
+
Every gated visitor has their own ringfenced memory slice. When the agent talks to visitor A, it sees everything tagged with A's slice plus the agent's general public-scope knowledge. It cannot see visitor B's slice, and it cannot see your admin-scope notes. The same gate applies in reverse — nothing the visitor says leaks into your admin graph by accident.
|
|
40
|
+
|
|
41
|
+
The slice is populated automatically at the end of each conversation. When a visitor's chat session is reaped (idle timeout, or the visitor closes the tab), a background reviewer reads the transcript and writes anything worth saving into the visitor's slice. The visitor sees the new context the next time they return.
|
|
42
|
+
|
|
43
|
+
You can read what's in a visitor's slice via the cypher tools in conversation — "show me what we know about Sarah" — but the slice writes themselves happen autonomously without your involvement.
|
|
37
44
|
|
|
38
45
|
## Managing Access
|
|
39
46
|
|
|
40
47
|
All access management is done through conversation with {{productName}}:
|
|
41
48
|
|
|
42
|
-
- "Who has access to my coaching agent?" — lists active visitors
|
|
43
|
-
- "Revoke Sarah's access" —
|
|
44
|
-
- "Extend Tom's access by 30 days" — pushes the expiry date forward
|
|
45
|
-
- "
|
|
49
|
+
- "Who has access to my coaching agent?" — lists active visitors and their `sliceToken`.
|
|
50
|
+
- "Revoke Sarah's access" — flips her grant to revoked AND immediately drops her active session, so she cannot continue talking on a live cookie. Her slice's historical memory stays in the graph; you can purge it separately if needed.
|
|
51
|
+
- "Extend Tom's access by 30 days" — pushes the expiry date forward. Slice unchanged.
|
|
52
|
+
- "Resend Sarah's invitation" — generates a fresh magic link and emails it. The slice stays the same, so her existing memory carries over.
|
|
46
53
|
|
|
47
|
-
|
|
54
|
+
Revoking + re-inviting the same person on a new invitation produces a fresh slice — the old slice's memory does not transfer. This is by design: a fresh invitation is a fresh relationship.
|
|
48
55
|
|
|
49
56
|
## Visitor Identity
|
|
50
57
|
|
|
51
|
-
When a visitor is authenticated, your public agent knows their name and contact details. It can personalise responses ("Welcome back, Sarah") without needing to ask.
|
|
58
|
+
When a visitor is authenticated, your public agent knows their name and contact details — it reads them from the visitor's `:Person` node, which is linked to their grant. It can personalise responses ("Welcome back, Sarah") without needing to ask.
|
|
52
59
|
|
|
53
60
|
## Action Approval
|
|
54
61
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send-transactional.d.ts","sourceRoot":"","sources":["../../src/scripts/send-transactional.ts"],"names":[],"mappings":""}
|