@rubytech/create-maxy-code 0.1.506 → 0.1.507

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.
Files changed (104) hide show
  1. package/package.json +2 -2
  2. package/payload/platform/config/brand.json +79 -18
  3. package/payload/platform/lib/account-schema-regions/dist/index.d.ts +17 -5
  4. package/payload/platform/lib/account-schema-regions/dist/index.d.ts.map +1 -1
  5. package/payload/platform/lib/account-schema-regions/dist/index.js +20 -6
  6. package/payload/platform/lib/account-schema-regions/dist/index.js.map +1 -1
  7. package/payload/platform/lib/account-schema-regions/src/index.ts +20 -6
  8. package/payload/platform/plugins/admin/PLUGIN.md +36 -0
  9. package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +48 -2
  10. package/payload/platform/plugins/admin/skills/whats-new/SKILL.md +7 -0
  11. package/payload/platform/plugins/aeo/PLUGIN.md +3 -0
  12. package/payload/platform/plugins/browser/PLUGIN.md +18 -0
  13. package/payload/platform/plugins/connector/PLUGIN.md +4 -0
  14. package/payload/platform/plugins/contacts/PLUGIN.md +9 -0
  15. package/payload/platform/plugins/docs/references/admin-ui.md +21 -1
  16. package/payload/platform/plugins/docs/references/plugins-guide.md +26 -0
  17. package/payload/platform/plugins/email/PLUGIN.md +17 -0
  18. package/payload/platform/plugins/filesystem/PLUGIN.md +6 -0
  19. package/payload/platform/plugins/google/PLUGIN.md +12 -0
  20. package/payload/platform/plugins/graph/PLUGIN.md +3 -0
  21. package/payload/platform/plugins/graph-viewer/PLUGIN.md +1 -0
  22. package/payload/platform/plugins/ledger/PLUGIN.md +7 -0
  23. package/payload/platform/plugins/memory/PLUGIN.md +41 -0
  24. package/payload/platform/plugins/outlook/PLUGIN.md +24 -0
  25. package/payload/platform/plugins/quickbooks/PLUGIN.md +15 -0
  26. package/payload/platform/plugins/replicate/PLUGIN.md +3 -0
  27. package/payload/platform/plugins/scheduling/PLUGIN.md +10 -0
  28. package/payload/platform/plugins/storage-broker/PLUGIN.md +12 -0
  29. package/payload/platform/plugins/telegram/PLUGIN.md +3 -0
  30. package/payload/platform/plugins/url-get/PLUGIN.md +1 -0
  31. package/payload/platform/plugins/voice-mirror/PLUGIN.md +5 -0
  32. package/payload/platform/plugins/whatsapp/PLUGIN.md +12 -0
  33. package/payload/platform/plugins/work/PLUGIN.md +15 -0
  34. package/payload/platform/plugins/workflows/PLUGIN.md +8 -0
  35. package/payload/platform/scripts/check-risk-class.mjs +145 -0
  36. package/payload/platform/scripts/lib/__pycache__/account-schema-owned-dirs.cpython-314.pyc +0 -0
  37. package/payload/platform/scripts/lib/provision-account-dir.sh +4 -1
  38. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
  39. package/payload/platform/services/claude-session-manager/dist/http-server.js +4 -0
  40. package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
  41. package/payload/platform/services/claude-session-manager/dist/index.js +8 -0
  42. package/payload/platform/services/claude-session-manager/dist/index.js.map +1 -1
  43. package/payload/platform/services/claude-session-manager/dist/tool-surface.d.ts +13 -0
  44. package/payload/platform/services/claude-session-manager/dist/tool-surface.d.ts.map +1 -1
  45. package/payload/platform/services/claude-session-manager/dist/tool-surface.js +33 -8
  46. package/payload/platform/services/claude-session-manager/dist/tool-surface.js.map +1 -1
  47. package/payload/server/{chunk-5ADBNEJA.js → chunk-2WAXM5N2.js} +111 -111
  48. package/payload/server/maxy-edge.js +1 -1
  49. package/payload/server/public/activity.html +5 -5
  50. package/payload/server/public/agents.html +4 -4
  51. package/payload/server/public/assets/{AdminLoginScreens-D5KOQA8S.js → AdminLoginScreens-YT7jsh_H.js} +1 -1
  52. package/payload/server/public/assets/{AdminShell-C8wazpnz.js → AdminShell-Ckht9hmU.js} +1 -1
  53. package/payload/server/public/assets/{activity-CFqkDhTs.js → activity-DH3Wgc3O.js} +1 -1
  54. package/payload/server/public/assets/admin-DetvulAu.js +1 -0
  55. package/payload/server/public/assets/{agents-DPulfmrd.js → agents-X_IvDHLZ.js} +1 -1
  56. package/payload/server/public/assets/{browser-T_5xbnJh.js → browser-Bym8QhfA.js} +1 -1
  57. package/payload/server/public/assets/{calendar-CKjuiG8c.js → calendar-CFnufJOy.js} +1 -1
  58. package/payload/server/public/assets/chat-wrckyIpw.js +1 -0
  59. package/payload/server/public/assets/chevron-left-Dtk3jEK5.js +1 -0
  60. package/payload/server/public/assets/chevron-right-Dih6IZ8B.js +1 -0
  61. package/payload/server/public/assets/clock-iJCrrmWM.js +1 -0
  62. package/payload/server/public/assets/data-D76--TYs.js +1 -0
  63. package/payload/server/public/assets/{file-text-c6cA4Evd.js → file-text-zch0E1GJ.js} +1 -1
  64. package/payload/server/public/assets/{graph-DIk-o45J.js → graph-BavHLzpV.js} +1 -1
  65. package/payload/server/public/assets/{graph-labels-5bjxhC_p.js → graph-labels-CBwh4g-6.js} +1 -1
  66. package/payload/server/public/assets/{maximize-2-BCQkFb1_.js → maximize-2-bTn_Ozpi.js} +1 -1
  67. package/payload/server/public/assets/{operator-0UnNo2ms.js → operator-a4IOwf62.js} +1 -1
  68. package/payload/server/public/assets/page-3T2mE63b.js +1 -0
  69. package/payload/server/public/assets/{page-HVtUfub2.js → page-D6M1CmPe.js} +4 -4
  70. package/payload/server/public/assets/{public-CKEYyIPn.js → public-B3y_YU1G.js} +1 -1
  71. package/payload/server/public/assets/{rotate-ccw-dTpO5dhL.js → rotate-ccw-BGvzNB1b.js} +1 -1
  72. package/payload/server/public/assets/{routines-C6P1-Dto.js → routines-C7Dr16am.js} +1 -1
  73. package/payload/server/public/assets/{skills-ClrpVqlz.js → skills-DFeb3XO3.js} +1 -1
  74. package/payload/server/public/assets/{tasks-C8SNhSFC.js → tasks-CSfnCKJe.js} +1 -1
  75. package/payload/server/public/assets/{time-entry-format-CCO6N6XZ.js → time-entry-format-BgZqOOqG.js} +1 -1
  76. package/payload/server/public/assets/{triangle-alert-CHjdKpag.js → triangle-alert-DBJ7xz_t.js} +1 -1
  77. package/payload/server/public/assets/{useCopyFeedback-BTUu3-l8.js → useCopyFeedback-BFOujMl-.js} +1 -1
  78. package/payload/server/public/assets/useSubAccountSwitcher-BkQ5tA8A.css +1 -0
  79. package/payload/server/public/assets/{useVoiceRecorder-BeNqxmm2.js → useVoiceRecorder-BP6CpYQD.js} +1 -1
  80. package/payload/server/public/assets/{wrench-CeNnc7oO.js → wrench-DdaRhfzS.js} +1 -1
  81. package/payload/server/public/brand/fonts/inter-400.woff2 +0 -0
  82. package/payload/server/public/brand/fonts/inter-500.woff2 +0 -0
  83. package/payload/server/public/brand-defaults.css +47 -4
  84. package/payload/server/public/browser.html +4 -4
  85. package/payload/server/public/calendar.html +7 -7
  86. package/payload/server/public/chat.html +13 -13
  87. package/payload/server/public/data.html +11 -11
  88. package/payload/server/public/graph.html +9 -9
  89. package/payload/server/public/index.html +14 -14
  90. package/payload/server/public/operator.html +14 -14
  91. package/payload/server/public/public.html +13 -13
  92. package/payload/server/public/routines.html +6 -6
  93. package/payload/server/public/skills.html +5 -5
  94. package/payload/server/public/tasks.html +6 -6
  95. package/payload/server/server.js +702 -586
  96. package/payload/server/public/assets/admin-B-EGUWS4.js +0 -1
  97. package/payload/server/public/assets/chat-DWLYAA70.js +0 -1
  98. package/payload/server/public/assets/chevron-left-DBMCTKlT.js +0 -1
  99. package/payload/server/public/assets/chevron-right-SBAr6zzc.js +0 -1
  100. package/payload/server/public/assets/clock-kkzt7Scf.js +0 -1
  101. package/payload/server/public/assets/data-CV8N9qcy.js +0 -1
  102. package/payload/server/public/assets/page-JJa2xdzf.js +0 -1
  103. package/payload/server/public/assets/useSubAccountSwitcher-DyrH8DA8.css +0 -1
  104. /package/payload/server/public/assets/{useSubAccountSwitcher-DSW9vDi2.js → useSubAccountSwitcher-0PfRrN6i.js} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rubytech/create-maxy-code",
3
- "version": "0.1.506",
3
+ "version": "0.1.507",
4
4
  "description": "Install Maxy — AI for Productive People",
5
5
  "bin": {
6
6
  "create-maxy-code": "./dist/index.js"
@@ -13,7 +13,7 @@
13
13
  "build": "tsc",
14
14
  "bundle": "node scripts/bundle.js",
15
15
  "test": "npm run build && node --test 'dist/__tests__/*.test.js'",
16
- "prepublishOnly": "bash ../../platform/scripts/verify-skill-tool-surface.sh && node ../../platform/scripts/check-plugin-tools-mcp-consistency.mjs && node ../../platform/scripts/check-specialist-tool-surface.mjs && node ../../platform/scripts/check-agent-contract.mjs && node ../../platform/scripts/check-routing-prose-bash.mjs && node ../../platform/scripts/check-no-task-id-leaks.mjs && node ../../platform/scripts/check-no-esm-require.mjs && node ../../platform/scripts/check-no-raw-mcp-registrations.mjs && node ../../platform/scripts/check-skill-load-coverage.mjs && node ../../platform/scripts/check-architecture-skill-no-drift.mjs && node ../../platform/ui/scripts/check-route-wiring.mjs && node ../../platform/ui/scripts/check-edge-admin-routes.mjs && npm run build && node --test 'dist/__tests__/*.test.js' && chmod +x dist/index.js && npm run bundle && bash ../../platform/scripts/smoke-boot-services.sh && node ../../platform/ui/scripts/check-bundle-node-imports.mjs --dir=./payload/server/public/assets"
16
+ "prepublishOnly": "bash ../../platform/scripts/verify-skill-tool-surface.sh && node ../../platform/scripts/check-plugin-tools-mcp-consistency.mjs && node ../../platform/scripts/check-risk-class.mjs && node ../../platform/scripts/check-specialist-tool-surface.mjs && node ../../platform/scripts/check-agent-contract.mjs && node ../../platform/scripts/check-routing-prose-bash.mjs && node ../../platform/scripts/check-no-task-id-leaks.mjs && node ../../platform/scripts/check-no-esm-require.mjs && node ../../platform/scripts/check-no-raw-mcp-registrations.mjs && node ../../platform/scripts/check-skill-load-coverage.mjs && node ../../platform/scripts/check-architecture-skill-no-drift.mjs && node ../../platform/ui/scripts/check-route-wiring.mjs && node ../../platform/ui/scripts/check-edge-admin-routes.mjs && npm run build && node --test 'dist/__tests__/*.test.js' && chmod +x dist/index.js && npm run bundle && bash ../../platform/scripts/smoke-boot-services.sh && node ../../platform/ui/scripts/check-bundle-node-imports.mjs --dir=./payload/server/public/assets"
17
17
  },
18
18
  "files": [
19
19
  "dist",
@@ -19,9 +19,16 @@
19
19
  "googleClientSecret": "",
20
20
  "commercialMode": false,
21
21
  "vertical": "schema-knowledge-work",
22
- "shipsPremiumBundles": ["venture-studio", "writer-craft", "teaching", "management-consulting"],
23
- "primaryContainer": { "label": "Project", "term": "Projects" },
24
-
22
+ "shipsPremiumBundles": [
23
+ "venture-studio",
24
+ "writer-craft",
25
+ "teaching",
26
+ "management-consulting"
27
+ ],
28
+ "primaryContainer": {
29
+ "label": "Project",
30
+ "term": "Projects"
31
+ },
25
32
  "defaultColors": {
26
33
  "primary": "#7C8C72",
27
34
  "primaryHover": "#6A7A62",
@@ -31,14 +38,11 @@
31
38
  "background": "#F6F5F2",
32
39
  "agentBubble": "#F5F2ED"
33
40
  },
34
-
35
41
  "defaultFonts": {
36
42
  "display": "'Newsreader', Georgia, serif",
37
43
  "body": "'Inter', -apple-system, BlinkMacSystemFont, sans-serif"
38
44
  },
39
-
40
45
  "logoContainsName": true,
41
-
42
46
  "assets": {
43
47
  "logo": "maxy-square.png",
44
48
  "icon": "maxy-monochrome.png",
@@ -48,27 +52,69 @@
48
52
  "appIcon192": "maxy-app-icon-192.png",
49
53
  "maskableIcon": "maxy-app-icon-maskable-512.png"
50
54
  },
51
-
52
55
  "npm": {
53
56
  "packageName": "@rubytech/create-maxy-code",
54
57
  "binName": "create-maxy-code",
55
58
  "author": "Rubytech LLC"
56
59
  },
57
-
58
60
  "plugins": {
59
- "core": ["admin", "memory", "docs", "cloudflare", "anthropic", "workflows", "work", "ledger", "scheduling", "email", "contacts", "projects", "prompt-optimiser", "browser"],
60
- "defaultEnabled": ["business-assistant", "sales", "web-designer"],
61
- "available": ["connector", "telegram", "deep-research", "whatsapp", "replicate", "linkedin-import", "notion-import", "obsidian-import", "x-import", "slides"],
62
- "excluded": ["joblogic"]
61
+ "core": [
62
+ "admin",
63
+ "memory",
64
+ "docs",
65
+ "cloudflare",
66
+ "anthropic",
67
+ "workflows",
68
+ "work",
69
+ "ledger",
70
+ "scheduling",
71
+ "email",
72
+ "contacts",
73
+ "projects",
74
+ "prompt-optimiser",
75
+ "browser"
76
+ ],
77
+ "defaultEnabled": [
78
+ "business-assistant",
79
+ "sales",
80
+ "web-designer"
81
+ ],
82
+ "available": [
83
+ "connector",
84
+ "telegram",
85
+ "deep-research",
86
+ "whatsapp",
87
+ "replicate",
88
+ "linkedin-import",
89
+ "notion-import",
90
+ "obsidian-import",
91
+ "x-import",
92
+ "slides"
93
+ ],
94
+ "excluded": [
95
+ "joblogic"
96
+ ]
63
97
  },
64
-
65
98
  "externalPlugins": [
66
- { "name": "discord", "marketplace": "claude-plugins-official", "channelPlugin": true },
67
- { "name": "imessage", "marketplace": "claude-plugins-official", "channelPlugin": true },
68
- { "name": "superpowers", "marketplace": "claude-plugins-official" },
69
- { "name": "code-review", "marketplace": "claude-plugins-official" }
99
+ {
100
+ "name": "discord",
101
+ "marketplace": "claude-plugins-official",
102
+ "channelPlugin": true
103
+ },
104
+ {
105
+ "name": "imessage",
106
+ "marketplace": "claude-plugins-official",
107
+ "channelPlugin": true
108
+ },
109
+ {
110
+ "name": "superpowers",
111
+ "marketplace": "claude-plugins-official"
112
+ },
113
+ {
114
+ "name": "code-review",
115
+ "marketplace": "claude-plugins-official"
116
+ }
70
117
  ],
71
-
72
118
  "consent": {
73
119
  "copy": {
74
120
  "title": "Before you browse this listing",
@@ -86,5 +132,20 @@
86
132
  "accentFg": "#FFFFFF",
87
133
  "border": "#E8ECF0"
88
134
  }
135
+ },
136
+ "fonts": {
137
+ "body": {
138
+ "family": "Inter",
139
+ "faces": [
140
+ {
141
+ "weight": 400,
142
+ "file": "inter-400.woff2"
143
+ },
144
+ {
145
+ "weight": 500,
146
+ "file": "inter-500.woff2"
147
+ }
148
+ ]
149
+ }
89
150
  }
90
151
  }
@@ -22,11 +22,23 @@
22
22
  * behaviour so a future edit cannot reintroduce separator sensitivity.
23
23
  */
24
24
  /**
25
- * Operator-data buckets from the shipped template
26
- * (platform/templates/account-schema/SCHEMA.md). They carry no ontology row
27
- * because they are not entity buckets, but they hold the operator's own data,
28
- * so they are home on every brand. On a vertical with no `## Top-level node
29
- * types` table (schema-knowledge-work) they are the whole of home.
25
+ * Non-ontology buckets that are still the operator's own work, so they are home
26
+ * on every brand. They carry no ontology row because they are not entity
27
+ * buckets. On a vertical with no `## Top-level node types` table
28
+ * (schema-knowledge-work) they are the whole of home.
29
+ *
30
+ * The membership test is "would the operator go looking for this?", not "who
31
+ * writes it". `output`, `generated` and `extracted` hold delivered work product;
32
+ * `sites` holds published websites; `uploads` holds what a client sent in. The
33
+ * shipped template groups those five under "tool-owned", but that is a rule
34
+ * about not reorganising their internals — a write constraint, not a reason to
35
+ * file them behind the platform's own plumbing. What stays out is genuinely
36
+ * internal: caches, state, logs, secrets, temp, the git and Claude control
37
+ * dirs, and plugin workspaces.
38
+ *
39
+ * Every name here is created at provision (provision-account-dir.sh `_seed_dirs`),
40
+ * so the standing home-parity audit finds them on disk rather than reporting
41
+ * them missing.
30
42
  *
31
43
  * Lives here rather than in either consumer because both the /data page and the
32
44
  * standing reconcile audit must agree on the same set; a hand-synced copy in
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU,EAAE,SAAS,MAAM,EAAyD,CAAA;AAiBjG,MAAM,WAAW,aAAa;IAC5B,0EAA0E;IAC1E,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,iEAAiE;IACjE,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,gEAAgE;IAChE,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB;;;;;;;OAOG;IACH,MAAM,EAAE,OAAO,CAAA;IACf;;;;OAIG;IACH,MAAM,EAAE,IAAI,GAAG,eAAe,GAAG,cAAc,CAAA;CAChD;AAiCD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,aAAa,CAazE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,UAAU,EAAE,SAAS,MAAM,EAEtC,CAAA;AAiBF,MAAM,WAAW,aAAa;IAC5B,0EAA0E;IAC1E,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,iEAAiE;IACjE,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,gEAAgE;IAChE,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB;;;;;;;OAOG;IACH,MAAM,EAAE,OAAO,CAAA;IACf;;;;OAIG;IACH,MAAM,EAAE,IAAI,GAAG,eAAe,GAAG,cAAc,CAAA;CAChD;AAiCD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,aAAa,CAazE"}
@@ -26,17 +26,31 @@ Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.HOME_FIXED = void 0;
27
27
  exports.parseSchemaRegions = parseSchemaRegions;
28
28
  /**
29
- * Operator-data buckets from the shipped template
30
- * (platform/templates/account-schema/SCHEMA.md). They carry no ontology row
31
- * because they are not entity buckets, but they hold the operator's own data,
32
- * so they are home on every brand. On a vertical with no `## Top-level node
33
- * types` table (schema-knowledge-work) they are the whole of home.
29
+ * Non-ontology buckets that are still the operator's own work, so they are home
30
+ * on every brand. They carry no ontology row because they are not entity
31
+ * buckets. On a vertical with no `## Top-level node types` table
32
+ * (schema-knowledge-work) they are the whole of home.
33
+ *
34
+ * The membership test is "would the operator go looking for this?", not "who
35
+ * writes it". `output`, `generated` and `extracted` hold delivered work product;
36
+ * `sites` holds published websites; `uploads` holds what a client sent in. The
37
+ * shipped template groups those five under "tool-owned", but that is a rule
38
+ * about not reorganising their internals — a write constraint, not a reason to
39
+ * file them behind the platform's own plumbing. What stays out is genuinely
40
+ * internal: caches, state, logs, secrets, temp, the git and Claude control
41
+ * dirs, and plugin workspaces.
42
+ *
43
+ * Every name here is created at provision (provision-account-dir.sh `_seed_dirs`),
44
+ * so the standing home-parity audit finds them on disk rather than reporting
45
+ * them missing.
34
46
  *
35
47
  * Lives here rather than in either consumer because both the /data page and the
36
48
  * standing reconcile audit must agree on the same set; a hand-synced copy in
37
49
  * each build is precisely the drift this shared module exists to prevent.
38
50
  */
39
- exports.HOME_FIXED = Object.freeze(['projects', 'contacts', 'documents']);
51
+ exports.HOME_FIXED = Object.freeze([
52
+ 'projects', 'contacts', 'documents', 'output', 'generated', 'extracted', 'sites', 'uploads',
53
+ ]);
40
54
  const ONT_START = '<!-- ontology-buckets:start -->';
41
55
  const ONT_END = '<!-- ontology-buckets:end -->';
42
56
  const PLUGIN_START = '<!-- plugin-owned-dirs:start -->';
@@ -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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"}
@@ -23,17 +23,31 @@
23
23
  */
24
24
 
25
25
  /**
26
- * Operator-data buckets from the shipped template
27
- * (platform/templates/account-schema/SCHEMA.md). They carry no ontology row
28
- * because they are not entity buckets, but they hold the operator's own data,
29
- * so they are home on every brand. On a vertical with no `## Top-level node
30
- * types` table (schema-knowledge-work) they are the whole of home.
26
+ * Non-ontology buckets that are still the operator's own work, so they are home
27
+ * on every brand. They carry no ontology row because they are not entity
28
+ * buckets. On a vertical with no `## Top-level node types` table
29
+ * (schema-knowledge-work) they are the whole of home.
30
+ *
31
+ * The membership test is "would the operator go looking for this?", not "who
32
+ * writes it". `output`, `generated` and `extracted` hold delivered work product;
33
+ * `sites` holds published websites; `uploads` holds what a client sent in. The
34
+ * shipped template groups those five under "tool-owned", but that is a rule
35
+ * about not reorganising their internals — a write constraint, not a reason to
36
+ * file them behind the platform's own plumbing. What stays out is genuinely
37
+ * internal: caches, state, logs, secrets, temp, the git and Claude control
38
+ * dirs, and plugin workspaces.
39
+ *
40
+ * Every name here is created at provision (provision-account-dir.sh `_seed_dirs`),
41
+ * so the standing home-parity audit finds them on disk rather than reporting
42
+ * them missing.
31
43
  *
32
44
  * Lives here rather than in either consumer because both the /data page and the
33
45
  * standing reconcile audit must agree on the same set; a hand-synced copy in
34
46
  * each build is precisely the drift this shared module exists to prevent.
35
47
  */
36
- export const HOME_FIXED: readonly string[] = Object.freeze(['projects', 'contacts', 'documents'])
48
+ export const HOME_FIXED: readonly string[] = Object.freeze([
49
+ 'projects', 'contacts', 'documents', 'output', 'generated', 'extracted', 'sites', 'uploads',
50
+ ])
37
51
 
38
52
  const ONT_START = '<!-- ontology-buckets:start -->'
39
53
  const ONT_END = '<!-- ontology-buckets:end -->'
@@ -6,111 +6,147 @@ tools:
6
6
  - name: system-status
7
7
  publicAllowlist: false
8
8
  adminAllowlist: false
9
+ riskClass: read
9
10
  - name: public-hostname
10
11
  publicAllowlist: false
11
12
  adminAllowlist: false
13
+ riskClass: read
12
14
  - name: admin-hostname
13
15
  publicAllowlist: false
14
16
  adminAllowlist: false
17
+ riskClass: read
15
18
  - name: publish-site
16
19
  publicAllowlist: false
17
20
  adminAllowlist: false
21
+ riskClass: write_local
18
22
  - name: brand-settings
19
23
  publicAllowlist: false
20
24
  adminAllowlist: false
25
+ riskClass: write_local
21
26
  - name: account-manage
22
27
  publicAllowlist: false
23
28
  adminAllowlist: false
29
+ riskClass: write_local
24
30
  - name: capabilities-here
25
31
  publicAllowlist: false
26
32
  adminAllowlist: false
33
+ riskClass: read
27
34
  - name: account-update
28
35
  publicAllowlist: false
29
36
  adminAllowlist: false
37
+ riskClass: write_local
30
38
  - name: account_list
31
39
  publicAllowlist: false
32
40
  adminAllowlist: true
41
+ riskClass: read
33
42
  - name: account_roster
34
43
  publicAllowlist: false
35
44
  adminAllowlist: true
45
+ riskClass: read
36
46
  - name: account_create
37
47
  publicAllowlist: false
38
48
  adminAllowlist: true
49
+ riskClass: write_local
39
50
  - name: account_reassign_admin
40
51
  publicAllowlist: false
41
52
  adminAllowlist: true
53
+ riskClass: write_local
42
54
  - name: account_set_owner_name
43
55
  publicAllowlist: false
44
56
  adminAllowlist: true
57
+ riskClass: write_local
45
58
  - name: account_delete
46
59
  publicAllowlist: false
47
60
  adminAllowlist: true
61
+ riskClass: write_local
48
62
  - name: account_purge
49
63
  publicAllowlist: false
50
64
  adminAllowlist: true
65
+ riskClass: write_local
51
66
  - name: account_channel_routing
52
67
  publicAllowlist: false
53
68
  adminAllowlist: true
69
+ riskClass: read
54
70
  - name: account_channel_routing_set
55
71
  publicAllowlist: false
56
72
  adminAllowlist: true
73
+ riskClass: write_local
57
74
  - name: admin-add
58
75
  publicAllowlist: false
59
76
  adminAllowlist: true
77
+ riskClass: write_local
60
78
  - name: admin-remove
61
79
  publicAllowlist: false
62
80
  adminAllowlist: true
81
+ riskClass: write_local
63
82
  - name: admin-list
64
83
  publicAllowlist: false
65
84
  adminAllowlist: true
85
+ riskClass: read
66
86
  - name: admin-update-pin
67
87
  publicAllowlist: false
68
88
  adminAllowlist: true
89
+ riskClass: write_local
69
90
  - name: agent-list
70
91
  publicAllowlist: false
71
92
  adminAllowlist: true
93
+ riskClass: read
72
94
  - name: agent-config-read
73
95
  publicAllowlist: false
74
96
  adminAllowlist: true
97
+ riskClass: read
75
98
  - name: logs-read
76
99
  publicAllowlist: false
77
100
  adminAllowlist: false
101
+ riskClass: read
78
102
  - name: cpu-triage-start
79
103
  publicAllowlist: false
80
104
  adminAllowlist: true
105
+ riskClass: exec
81
106
  - name: cpu-triage-read
82
107
  publicAllowlist: false
83
108
  adminAllowlist: true
109
+ riskClass: read
84
110
  - name: plugin-read
85
111
  publicAllowlist: false
86
112
  adminAllowlist: false
113
+ riskClass: read
87
114
  - name: skill-load
88
115
  publicAllowlist: false
89
116
  adminAllowlist: true
117
+ riskClass: read
90
118
  - name: skill-search
91
119
  publicAllowlist: false
92
120
  adminAllowlist: true
121
+ riskClass: read
93
122
  - name: store-skill
94
123
  publicAllowlist: false
95
124
  adminAllowlist: true
125
+ riskClass: write_local
96
126
  - name: session-reset
97
127
  publicAllowlist: false
98
128
  adminAllowlist: true
129
+ riskClass: write_local
99
130
  - name: session-resume
100
131
  publicAllowlist: false
101
132
  adminAllowlist: true
133
+ riskClass: write_local
102
134
  - name: action-pending
103
135
  publicAllowlist: false
104
136
  adminAllowlist: true
137
+ riskClass: read
105
138
  - name: action-approve
106
139
  publicAllowlist: false
107
140
  adminAllowlist: true
141
+ riskClass: external
108
142
  - name: action-reject
109
143
  publicAllowlist: false
110
144
  adminAllowlist: true
145
+ riskClass: write_local
111
146
  - name: action-edit
112
147
  publicAllowlist: false
113
148
  adminAllowlist: true
149
+ riskClass: write_local
114
150
  hidden:
115
151
  - remote-auth-status
116
152
  - remote-auth-set-password
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: platform-architecture
3
3
  description: Use when grounding any documented-surface claim about what Maxy ships — plugins, skills, specialists, install/deploy flows, internals. This is the install catalogue, not evidence of what is enabled on the current account. For install state on this account, call `capabilities-here`; for documented surface, cite the `Source:` URL inline.
4
- content-hash: sha256:7e164ac0a4a7c3a6ab0fead2f2f109cb9a4f9e9c89b4761ecdee9c7166dca4ed
4
+ content-hash: sha256:a1e6cd6d7cccbf1c314340dd556761adf9aac772939fcd6a870265d0f7c00e1b
5
5
  brand: maxy-code
6
6
  product-name: Maxy
7
7
  ---
@@ -474,6 +474,32 @@ Skill content, plugin manifests, agent templates, and reference files reference
474
474
 
475
475
  The runtime substitution happens at every read site that flows content into a system prompt or operator-visible UI: the admin agent's `plugin-read` tool (references + `PLUGIN.md`), the `skill-load` tool (SKILL.md by skill name — one-call resolver+reader, the canonical primitive for SKILL.md), the public agent's recursive plugin assembly, and `IDENTITY` / `SOUL` / `AGENTS` / `KNOWLEDGE` markdown reads. Missing or empty `productName` hard-fails — there is no fallback to a default brand string. See [.docs/agents.md](../../.docs/agents.md) § "Brand templating" for the full contract.
476
476
 
477
+ ## Tool risk classes (for plugin authors)
478
+
479
+ Every tool a plugin declares in its `PLUGIN.md` `tools:` block carries three mandatory
480
+ fields. `publicAllowlist` and `adminAllowlist` say who may call the tool. `riskClass`
481
+ says what happens when they do, and takes one of four values:
482
+
483
+ - `read` changes no state anywhere. A remote lookup counts as `read`; reaching the
484
+ network is not by itself consequential.
485
+ - `write_local` mutates account files or the graph on this device and transmits nothing.
486
+ - `exec` runs an operating-system command, or code supplied by the caller or the operator.
487
+ - `external` transmits to, or changes state on, a system outside this device, or delivers
488
+ a message to a person.
489
+
490
+ Leaving the field out is a refusal-to-boot condition, not a silent default. The platform
491
+ refuses to start rather than treat an undeclared consequence as harmless, because a tool
492
+ that quietly reads as `read` escapes every check downstream of it.
493
+
494
+ Declaring the class does not yet gate anything. It gives any consumer one honest answer
495
+ to the question "is this tool consequential?" without maintaining a list of tool names,
496
+ which is what the checks in `platform/plugins/admin/hooks/` have had to do until now.
497
+
498
+ A publish-time gate flags declarations that contradict what the tool's own name says it
499
+ does, and a boot line reports the census across all four classes. The classification
500
+ rule, the exception mechanism, and the diagnostic commands are in
501
+ `.docs/tool-risk-classes.md`.
502
+
477
503
  ## MCP Plugin Observability (for plugin authors)
478
504
 
479
505
  Every `console.error` line from a plugin's MCP server is captured to a per-server raw log. Capture is automatic and needs no import or call: the `mcp-spawn-tee` shim spawns every MCP server and mirrors its stderr to `mcp-<name>-<sessionId>.log` (or `mcp-<name>-nosession.log` for a spawn with no session). That file is keyed by session, which is the conversation, and that is where you grep. Prefix your diagnostics `[your-tool]` so a grep isolates one tool.
@@ -3277,9 +3303,29 @@ the Web Share API and is disabled where unavailable. Signals:
3277
3303
  `[data-ui] op=mount header=operator home=absent`, `op=select-enter`,
3278
3304
  `op=select-exit reason=<cancel|action>`, `op=share supported=<bool> count=<n>`.
3279
3305
 
3306
+ **The dashboard has a surface ramp and a display type tier.** Every page sits on
3307
+ a page plane, cards rise onto a raised plane, and inputs and scroll regions
3308
+ recede onto an inset plane. Each brand chooses how the card separates: SiteDesk's
3309
+ card is a shade lighter than its page and casts no shadow, Real Agent's card and
3310
+ page are both white and a shadow does the work. The page header is an inverted
3311
+ band carrying the page title at the display size. Colours, radii, shadows and
3312
+ type weights all come from the brand's own tokens; nothing is hardcoded, and a
3313
+ token that resolves to nothing fails the build rather than painting invisibly.
3314
+
3315
+ **Folders open beside a rail on a wide screen.** At 1280px and above the folder
3316
+ view splits in two: a list of the account's folders on the left, the files on
3317
+ the right, with the folder you are in highlighted. Below that width the rail is
3318
+ hidden and the breadcrumb does the same job.
3319
+
3320
+ **Status colours are shared.** Success, warning, error and info each carry a
3321
+ solid fill, a pale tint and a text colour for that tint. Every pairing meets the
3322
+ WCAG AA contrast minimum, on every brand.
3323
+
3280
3324
  **`/data` opens on the account's own folders, as cards.** With no `#path=` in
3281
3325
  the URL the browser lands on **home**: the account's business folders (the
3282
- entity folders of its trade, plus `projects`, `contacts` and `documents`) shown
3326
+ entity folders of its trade, plus documents, projects, contacts, the work it
3327
+ has produced for you, anything a client has sent in, and any websites it
3328
+ has published) shown
3283
3329
  one per card, each listing the first 20 things inside it and a `+N more` row
3284
3330
  past that. Tapping a card opens that folder in the ordinary list or grid. There
3285
3331
  are never loose files at this level. Everything the platform and its plugins
@@ -9,6 +9,13 @@ Invoked by the admin agent directly.
9
9
 
10
10
  This is the platform's release timeline, newest first. Each entry shows the date it shipped and the version it shipped in, so you can tell the operator how current their install is. To compare, read the installed version from `capabilities-here` and match it against the versions below. Keep answers high level and in plain English; this is a summary, not a full commit log.
11
11
 
12
+ ## 2026-07-25 (0.1.507)
13
+
14
+ - Chat now updates the moment a message or permission prompt arrives, instead of checking every couple of seconds.
15
+ - The dashboard has a visual refresh: cards now fill in properly instead of looking transparent.
16
+ - The Data page has a new two-pane view with a folder rail on wider screens, and uploads/sites are now correctly grouped under Home.
17
+ - Every assistant tool now carries a declared risk level, checked automatically so it cannot silently drift.
18
+
12
19
  ## 2026-07-25 (0.1.506)
13
20
 
14
21
  - Fixed a bug where the Agents page and a few other admin screens could resolve the wrong account.
@@ -5,12 +5,15 @@ tools:
5
5
  - name: aeo-emit-jsonld
6
6
  publicAllowlist: false
7
7
  adminAllowlist: true
8
+ riskClass: write_local
8
9
  - name: aeo-write-llms-txt
9
10
  publicAllowlist: false
10
11
  adminAllowlist: true
12
+ riskClass: write_local
11
13
  - name: aeo-audit-page
12
14
  publicAllowlist: false
13
15
  adminAllowlist: true
16
+ riskClass: write_local
14
17
  skills:
15
18
  - skills/structured-answer/SKILL.md
16
19
  always: false
@@ -5,57 +5,75 @@ tools:
5
5
  - name: browser-render
6
6
  publicAllowlist: false
7
7
  adminAllowlist: true
8
+ riskClass: read
8
9
  - name: browser-navigate
9
10
  publicAllowlist: false
10
11
  adminAllowlist: true
12
+ riskClass: read
11
13
  - name: browser-snapshot
12
14
  publicAllowlist: false
13
15
  adminAllowlist: true
16
+ riskClass: read
14
17
  - name: browser-click
15
18
  publicAllowlist: false
16
19
  adminAllowlist: true
20
+ riskClass: external
17
21
  - name: browser-fill
18
22
  publicAllowlist: false
19
23
  adminAllowlist: true
24
+ riskClass: external
20
25
  - name: browser-fill-form
21
26
  publicAllowlist: false
22
27
  adminAllowlist: true
28
+ riskClass: external
23
29
  - name: browser-type
24
30
  publicAllowlist: false
25
31
  adminAllowlist: true
32
+ riskClass: external
26
33
  - name: browser-press-key
27
34
  publicAllowlist: false
28
35
  adminAllowlist: true
36
+ riskClass: external
29
37
  - name: browser-hover
30
38
  publicAllowlist: false
31
39
  adminAllowlist: true
40
+ riskClass: read
32
41
  - name: browser-select-option
33
42
  publicAllowlist: false
34
43
  adminAllowlist: true
44
+ riskClass: external
35
45
  - name: browser-wait-for
36
46
  publicAllowlist: false
37
47
  adminAllowlist: true
48
+ riskClass: read
38
49
  - name: browser-handle-dialog
39
50
  publicAllowlist: false
40
51
  adminAllowlist: true
52
+ riskClass: external
41
53
  - name: browser-evaluate
42
54
  publicAllowlist: false
43
55
  adminAllowlist: true
56
+ riskClass: exec
44
57
  - name: browser-console-messages
45
58
  publicAllowlist: false
46
59
  adminAllowlist: true
60
+ riskClass: read
47
61
  - name: browser-tabs
48
62
  publicAllowlist: false
49
63
  adminAllowlist: true
64
+ riskClass: read
50
65
  - name: browser-pdf-save
51
66
  publicAllowlist: false
52
67
  adminAllowlist: true
68
+ riskClass: write_local
53
69
  - name: browser-screenshot
54
70
  publicAllowlist: false
55
71
  adminAllowlist: true
72
+ riskClass: write_local
56
73
  - name: browser-resize
57
74
  publicAllowlist: false
58
75
  adminAllowlist: true
76
+ riskClass: read
59
77
  always: true
60
78
  embed: false
61
79
  metadata: {"platform":{}}
@@ -5,15 +5,19 @@ tools:
5
5
  - name: connector-register
6
6
  publicAllowlist: false
7
7
  adminAllowlist: true
8
+ riskClass: write_local
8
9
  - name: connector-call
9
10
  publicAllowlist: false
10
11
  adminAllowlist: true
12
+ riskClass: external
11
13
  - name: connector-list
12
14
  publicAllowlist: false
13
15
  adminAllowlist: true
16
+ riskClass: read
14
17
  - name: connector-deregister
15
18
  publicAllowlist: false
16
19
  adminAllowlist: true
20
+ riskClass: write_local
17
21
  metadata: {"platform":{"optional":true,"pluginKey":"connector"}}
18
22
  mcp:
19
23
  command: node