@rubytech/create-maxy-code 0.1.301 → 0.1.303
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__/install-immutability.test.js +55 -0
- package/dist/index.js +46 -1
- package/dist/install-immutability.js +59 -0
- package/package.json +1 -1
- package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +10 -1
- package/payload/platform/plugins/cloudflare/PLUGIN.md +1 -1
- package/payload/platform/plugins/cloudflare/references/reset-guide.md +1 -1
- package/payload/platform/plugins/cloudflare/skills/cloudflare/SKILL.md +2 -2
- package/payload/platform/plugins/docs/references/admin-ui.md +9 -0
- package/payload/platform/scripts/__tests__/check-no-task-id-leaks.test.sh +28 -0
- package/payload/platform/scripts/check-no-task-id-leaks.mjs +51 -8
- package/payload/platform/services/claude-session-manager/dist/system-prompt.d.ts +1 -0
- package/payload/platform/services/claude-session-manager/dist/system-prompt.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/system-prompt.js +23 -0
- package/payload/platform/services/claude-session-manager/dist/system-prompt.js.map +1 -1
- package/payload/platform/services/webchat-channel/dist/notification.d.ts +12 -0
- package/payload/platform/services/webchat-channel/dist/notification.d.ts.map +1 -1
- package/payload/platform/services/webchat-channel/dist/notification.js +29 -0
- package/payload/platform/services/webchat-channel/dist/notification.js.map +1 -1
- package/payload/platform/services/webchat-channel/dist/server.d.ts +1 -0
- package/payload/platform/services/webchat-channel/dist/server.d.ts.map +1 -1
- package/payload/platform/services/webchat-channel/dist/server.js +21 -6
- package/payload/platform/services/webchat-channel/dist/server.js.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/notification.d.ts +12 -0
- package/payload/platform/services/whatsapp-channel/dist/notification.d.ts.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/notification.js +29 -0
- package/payload/platform/services/whatsapp-channel/dist/notification.js.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/server.d.ts +4 -4
- package/payload/platform/services/whatsapp-channel/dist/server.d.ts.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/server.js +71 -38
- package/payload/platform/services/whatsapp-channel/dist/server.js.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/turn-follow.d.ts +9 -5
- package/payload/platform/services/whatsapp-channel/dist/turn-follow.d.ts.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/turn-follow.js +47 -27
- package/payload/platform/services/whatsapp-channel/dist/turn-follow.js.map +1 -1
- package/payload/premium-plugins/venture-studio/skills/prototype-host/SKILL.md +1 -1
- package/payload/premium-plugins/writer-craft/PLUGIN.md +4 -4
- package/payload/premium-plugins/writer-craft/skills/voice-mirror/SKILL.md +4 -4
- package/payload/server/public/assets/AdminLoginScreens-B11_s63y.js +1 -0
- package/payload/server/public/assets/AdminShell-CXYu03dO.js +1 -0
- package/payload/server/public/assets/{Checkbox-C7bBRzLP.js → Checkbox-D01p5NFD.js} +1 -1
- package/payload/server/public/assets/{Transcript-bGy_Gx99.js → Transcript-NcTfeF7W.js} +1 -1
- package/payload/server/public/assets/admin-DdoI2RXi.js +1 -0
- package/payload/server/public/assets/{arc-DxSm8tli.js → arc-BrTRjBIM.js} +1 -1
- package/payload/server/public/assets/architecture-YZFGNWBL-DqQB3T6j.js +1 -0
- package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-7JSAh0vL.js → architectureDiagram-Q4EWVU46-DJ9on7sZ.js} +1 -1
- package/payload/server/public/assets/{audio-attachment-mime-DL5R1M2A.js → audio-attachment-mime-WRXiXXUG.js} +3 -3
- package/payload/server/public/assets/{blockDiagram-DXYQGD6D-DLoVmHKD.js → blockDiagram-DXYQGD6D-CIcyQn0q.js} +1 -1
- package/payload/server/public/assets/{browser-7fyPCFWB.js → browser-Db0TaQdG.js} +1 -1
- package/payload/server/public/assets/{c4Diagram-AHTNJAMY-Nv1G0o9P.js → c4Diagram-AHTNJAMY-Dt5dh_GR.js} +1 -1
- package/payload/server/public/assets/channel-NZeJdLVK.js +1 -0
- package/payload/server/public/assets/chat-BMTC0f2h.js +1 -0
- package/payload/server/public/assets/{chunk-2KRD3SAO-BpqPMhoA.js → chunk-2KRD3SAO-BUq3MqUy.js} +1 -1
- package/payload/server/public/assets/{chunk-336JU56O-DgXHlVU_.js → chunk-336JU56O-CUzJH5Qt.js} +2 -2
- package/payload/server/public/assets/chunk-426QAEUC-DFKX5l0L.js +1 -0
- package/payload/server/public/assets/{chunk-4BX2VUAB-nwyZSZH8.js → chunk-4BX2VUAB-B4JUc3UA.js} +1 -1
- package/payload/server/public/assets/{chunk-4TB4RGXK-Tfxz9LHX.js → chunk-4TB4RGXK-HRO9fIIs.js} +1 -1
- package/payload/server/public/assets/{chunk-55IACEB6-6FMJQGXG.js → chunk-55IACEB6-MZdrLBuw.js} +1 -1
- package/payload/server/public/assets/{chunk-5FUZZQ4R-g2FgZF3D.js → chunk-5FUZZQ4R-XcAN5zlM.js} +1 -1
- package/payload/server/public/assets/{chunk-5PVQY5BW-DtLwXsPH.js → chunk-5PVQY5BW-PQ1GEsxo.js} +1 -1
- package/payload/server/public/assets/{chunk-67CJDMHE-K91CP5ZU.js → chunk-67CJDMHE-BVvCaqGd.js} +1 -1
- package/payload/server/public/assets/{chunk-7N4EOEYR-BGpCQhqK.js → chunk-7N4EOEYR-BlBbZdpM.js} +1 -1
- package/payload/server/public/assets/{chunk-AA7GKIK3-jkDbInck.js → chunk-AA7GKIK3-Ct-PgkGa.js} +1 -1
- package/payload/server/public/assets/{chunk-BSJP7CBP-mDosdzGs.js → chunk-BSJP7CBP-DZRRfCSz.js} +1 -1
- package/payload/server/public/assets/{chunk-CIAEETIT-DhBxewpQ.js → chunk-CIAEETIT-BoGEJiXe.js} +1 -1
- package/payload/server/public/assets/{chunk-EDXVE4YY-B7c-9Emg.js → chunk-EDXVE4YY-DiSmN31f.js} +1 -1
- package/payload/server/public/assets/{chunk-ENJZ2VHE-Cqhhncox.js → chunk-ENJZ2VHE-uhhokIvs.js} +1 -1
- package/payload/server/public/assets/{chunk-FMBD7UC4-BpDq6wj1.js → chunk-FMBD7UC4-CfCx5WI7.js} +1 -1
- package/payload/server/public/assets/{chunk-FOC6F5B3-Ds02-ktu.js → chunk-FOC6F5B3-Dj9E9gTu.js} +1 -1
- package/payload/server/public/assets/{chunk-ICPOFSXX-BTX5POFr.js → chunk-ICPOFSXX-DcBs_FNy.js} +2 -2
- package/payload/server/public/assets/{chunk-K5T4RW27-Du1PXXBU.js → chunk-K5T4RW27-7-VefyJD.js} +1 -1
- package/payload/server/public/assets/{chunk-KGLVRYIC-siasOAf8.js → chunk-KGLVRYIC-CqgTEVxm.js} +1 -1
- package/payload/server/public/assets/{chunk-LIHQZDEY-xf1rbZtf.js → chunk-LIHQZDEY-C0gzDXha.js} +1 -1
- package/payload/server/public/assets/{chunk-ORNJ4GCN-DeTLQ_LD.js → chunk-ORNJ4GCN-JXz23R1H.js} +1 -1
- package/payload/server/public/assets/{chunk-OYMX7WX6-DQ7_oVJn.js → chunk-OYMX7WX6-C2snCNq9.js} +1 -1
- package/payload/server/public/assets/chunk-QZHKN3VN-BWCCN0AM.js +1 -0
- package/payload/server/public/assets/{chunk-U2HBQHQK-CXmFUKgn.js → chunk-U2HBQHQK-CXCU7M-M.js} +1 -1
- package/payload/server/public/assets/{chunk-X2U36JSP-Bj8-8Wkz.js → chunk-X2U36JSP-CEdcSb28.js} +1 -1
- package/payload/server/public/assets/{chunk-XPW4576I-Con3TXqt.js → chunk-XPW4576I-Cckc75YS.js} +1 -1
- package/payload/server/public/assets/{chunk-YZCP3GAM-Dx8BHGWf.js → chunk-YZCP3GAM-4nN8AO7H.js} +1 -1
- package/payload/server/public/assets/{chunk-ZZ45TVLE-Dp4Q5Y-f.js → chunk-ZZ45TVLE-DcoBc8-7.js} +1 -1
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-DPlCQCX2.js +1 -0
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-CqkQq74h.js +1 -0
- package/payload/server/public/assets/clone-CSykdD1A.js +1 -0
- package/payload/server/public/assets/{cose-bilkent-S5V4N54A-pZiCv69E.js → cose-bilkent-S5V4N54A-BFFro_t9.js} +1 -1
- package/payload/server/public/assets/{dagre-CLqhEgbL.js → dagre-CN5to_JM.js} +1 -1
- package/payload/server/public/assets/{dagre-KV5264BT-BCxE8iyk.js → dagre-KV5264BT-WYrPwDg0.js} +1 -1
- package/payload/server/public/assets/{data-CIJnkfgX.js → data-BiWVJQmi.js} +1 -1
- package/payload/server/public/assets/{diagram-5BDNPKRD-slUEdZzz.js → diagram-5BDNPKRD-Dz2CiboN.js} +1 -1
- package/payload/server/public/assets/{diagram-G4DWMVQ6-DPcraMfu.js → diagram-G4DWMVQ6-r8h3Ip9O.js} +1 -1
- package/payload/server/public/assets/{diagram-MMDJMWI5-DR6luhGK.js → diagram-MMDJMWI5-CECcpGtr.js} +1 -1
- package/payload/server/public/assets/{diagram-TYMM5635-Jap1B4wA.js → diagram-TYMM5635-CHOcAyIP.js} +1 -1
- package/payload/server/public/assets/{erDiagram-SMLLAGMA-DJKUs2hO.js → erDiagram-SMLLAGMA-YIqKdPbS.js} +1 -1
- package/payload/server/public/assets/{file-download-gth6Gpmn.js → file-download-7T2ye2nL.js} +1 -1
- package/payload/server/public/assets/{flatten-Cl1Bc3dR.js → flatten-DhYYI_lo.js} +1 -1
- package/payload/server/public/assets/{flowDiagram-DWJPFMVM-C8W-ZZ9W.js → flowDiagram-DWJPFMVM-DaEvQWpj.js} +1 -1
- package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-DYCX4Xu2.js → ganttDiagram-T4ZO3ILL-x1hClEOB.js} +1 -1
- package/payload/server/public/assets/gitGraph-7Q5UKJZL-V7Tx7_eY.js +1 -0
- package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-CZu_fpgS.js → gitGraphDiagram-UUTBAWPF-C-sZsh6Z.js} +1 -1
- package/payload/server/public/assets/{graph-DHnB3BHK.js → graph-CWxi74vF.js} +1 -1
- package/payload/server/public/assets/{graph-labels-huk-fKcY.js → graph-labels-Bxt4mIUp.js} +1 -1
- package/payload/server/public/assets/{graphlib-Bdp7TA4y.js → graphlib-CNkAqm2w.js} +1 -1
- package/payload/server/public/assets/info-OMHHGYJF-D3DqVPGn.js +1 -0
- package/payload/server/public/assets/infoDiagram-42DDH7IO-B_O-R0vN.js +2 -0
- package/payload/server/public/assets/{isEmpty-D1pGOD1J.js → isEmpty-DGhq_DBP.js} +1 -1
- package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-B7KfIX6z.js → ishikawaDiagram-UXIWVN3A-wHE-RwzZ.js} +1 -1
- package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-CSDwBfhF.js → journeyDiagram-VCZTEJTY-DQB6iThz.js} +1 -1
- package/payload/server/public/assets/{jsx-runtime-DZddXDvJ.css → jsx-runtime-BAMC3pMk.css} +1 -1
- package/payload/server/public/assets/{kanban-definition-6JOO6SKY-CWzcEKTr.js → kanban-definition-6JOO6SKY-Ck08vXSA.js} +1 -1
- package/payload/server/public/assets/{line-BNQSlbYn.js → line-Cdc2FBEU.js} +1 -1
- package/payload/server/public/assets/{linear-BN6kGN93.js → linear-DhtUm5H7.js} +1 -1
- package/payload/server/public/assets/{mermaid-parser.core-CcFhkElq.js → mermaid-parser.core-CSYulPIL.js} +2 -2
- package/payload/server/public/assets/{mermaid.core-BsIeJ7Cc.js → mermaid.core-CP-hOmMh.js} +3 -3
- package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-CQVzj6D_.js → mindmap-definition-QFDTVHPH-GxlkvV1Z.js} +1 -1
- package/payload/server/public/assets/operator-Dw1Sep47.js +1 -0
- package/payload/server/public/assets/{ordinal-CBZeH4Yp.js → ordinal-CibZU3PM.js} +1 -1
- package/payload/server/public/assets/packet-4T2RLAQJ-BY7mgCTQ.js +1 -0
- package/payload/server/public/assets/page-DZ5OxzgL.js +1 -0
- package/payload/server/public/assets/pie-ZZUOXDRM-B9f6jN54.js +1 -0
- package/payload/server/public/assets/{pieDiagram-DEJITSTG-DnrQ9fyn.js → pieDiagram-DEJITSTG-Di6kWh9c.js} +1 -1
- package/payload/server/public/assets/{public-B4LqL6lA.js → public-C3iO20f3.js} +1 -1
- package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-BQWlCyWi.js → quadrantDiagram-34T5L4WZ-iNHC5bkO.js} +1 -1
- package/payload/server/public/assets/radar-PYXPWWZC-BKS8JOUe.js +1 -0
- package/payload/server/public/assets/{reduce-PuPlFPRX.js → reduce-Da0RBva0.js} +1 -1
- package/payload/server/public/assets/{requirementDiagram-MS252O5E-Du_vZhU1.js → requirementDiagram-MS252O5E-BBlLREXo.js} +1 -1
- package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-Cf6Z8GPQ.js → sankeyDiagram-XADWPNL6-qyDkP-Ca.js} +1 -1
- package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-CS8GVol8.js → sequenceDiagram-FGHM5R23-C0MJuS0m.js} +1 -1
- package/payload/server/public/assets/{stateDiagram-FHFEXIEX-Bv1NW2F1.js → stateDiagram-FHFEXIEX-aHTrlosa.js} +1 -1
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-V2vo4BjY.js +1 -0
- package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-ClGYAsr0.js → timeline-definition-GMOUNBTQ-BlRZIxEp.js} +1 -1
- package/payload/server/public/assets/treeView-SZITEDCU-bIKzyIdw.js +1 -0
- package/payload/server/public/assets/treemap-W4RFUUIX-CQycQ4H9.js +1 -0
- package/payload/server/public/assets/{useSelectionMode-lrH0qwAR.js → useSelectionMode-DDpddXMY.js} +1 -1
- package/payload/server/public/assets/{vennDiagram-DHZGUBPP-C2wTcxQT.js → vennDiagram-DHZGUBPP-s76adysx.js} +1 -1
- package/payload/server/public/assets/wardley-RL74JXVD-COr9o-nG.js +1 -0
- package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-D86-ivEx.js → wardleyDiagram-NUSXRM2D-xC8t2QGW.js} +1 -1
- package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-Ba5WAN8P.js → xychartDiagram-5P7HB3ND-DRcHg-Wj.js} +1 -1
- package/payload/server/public/browser.html +6 -6
- package/payload/server/public/chat.html +10 -9
- package/payload/server/public/data.html +5 -5
- package/payload/server/public/graph.html +8 -8
- package/payload/server/public/index.html +10 -10
- package/payload/server/public/operator.html +13 -10
- package/payload/server/public/public.html +7 -7
- package/payload/server/server.js +1 -1
- package/payload/server/public/assets/AdminShell-BJrxifYa.js +0 -1
- package/payload/server/public/assets/admin-jYKA7jR5.js +0 -1
- package/payload/server/public/assets/architecture-YZFGNWBL-6g9jRVgc.js +0 -1
- package/payload/server/public/assets/channel-BgQLJanG.js +0 -1
- package/payload/server/public/assets/chat-UF9ATDwe.js +0 -1
- package/payload/server/public/assets/chunk-426QAEUC-Dr_XVuUq.js +0 -1
- package/payload/server/public/assets/chunk-QZHKN3VN-DF4o9HRJ.js +0 -1
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-DAbPKU6u.js +0 -1
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-BKuFQLcv.js +0 -1
- package/payload/server/public/assets/clone-DnNHGhNe.js +0 -1
- package/payload/server/public/assets/gitGraph-7Q5UKJZL-g7mvu6IY.js +0 -1
- package/payload/server/public/assets/info-OMHHGYJF-DZqJuIkB.js +0 -1
- package/payload/server/public/assets/infoDiagram-42DDH7IO-cGfGccHz.js +0 -2
- package/payload/server/public/assets/operator-D3QAzlPs.js +0 -1
- package/payload/server/public/assets/packet-4T2RLAQJ-Hn8rlHpy.js +0 -1
- package/payload/server/public/assets/page-86edaOS1.js +0 -1
- package/payload/server/public/assets/pie-ZZUOXDRM-BPGWVqBm.js +0 -1
- package/payload/server/public/assets/radar-PYXPWWZC-DMdLrj3E.js +0 -1
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-BGUCxPmp.js +0 -1
- package/payload/server/public/assets/treeView-SZITEDCU-CWxofUbI.js +0 -1
- package/payload/server/public/assets/treemap-W4RFUUIX-Cfgb_ZG0.js +0 -1
- package/payload/server/public/assets/wardley-RL74JXVD-B45olYjj.js +0 -1
- /package/payload/server/public/assets/{page-CWMpccrR.css → AdminLoginScreens-CWMpccrR.css} +0 -0
- /package/payload/server/public/assets/{_baseFor-brRjpUOX.js → _baseFor-BFYpZGkN.js} +0 -0
- /package/payload/server/public/assets/{array-BGFCBI0e.js → array-CYkMkqnU.js} +0 -0
- /package/payload/server/public/assets/{cytoscape.esm-TvRJ2tGX.js → cytoscape.esm-DqlHsaog.js} +0 -0
- /package/payload/server/public/assets/{defaultLocale-CRZydyG6.js → defaultLocale-Beh6XjaL.js} +0 -0
- /package/payload/server/public/assets/{dist-Dbh7HrZX.js → dist-t9p-NJH2.js} +0 -0
- /package/payload/server/public/assets/{init-B8gtcn7T.js → init-Rr1s_RiX.js} +0 -0
- /package/payload/server/public/assets/{jsx-runtime-CMu8uN0-.js → jsx-runtime-DhMPqcKn.js} +0 -0
- /package/payload/server/public/assets/{katex-RxgSu_dy.js → katex-pVJiI_rc.js} +0 -0
- /package/payload/server/public/assets/{path-DZF-JdEe.js → path-BAQ3hXlG.js} +0 -0
- /package/payload/server/public/assets/{preload-helper-CQ36nxok.js → preload-helper-B_l5jfgx.js} +0 -0
- /package/payload/server/public/assets/{rough.esm-6CnTHTkH.js → rough.esm-nHaDi0Kw.js} +0 -0
- /package/payload/server/public/assets/{src-BoaldmnP.js → src-DuPQVw-H.js} +0 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// Task 848 — acceptance grid for install-immutability.ts.
|
|
2
|
+
//
|
|
3
|
+
// Pure command-emission module: protectCommands/unprotectCommands return the
|
|
4
|
+
// privileged `chattr` argv that makes the deployed platform source immutable to
|
|
5
|
+
// the agent's user. The caller injects the DetectedPlatform value so tests run
|
|
6
|
+
// identically on Linux CI and Mac developer boxes — no process.platform reads
|
|
7
|
+
// inside the module under test. Three roots are frozen (server, platform,
|
|
8
|
+
// premium-plugins); platform/config is the sole runtime-writable exclusion.
|
|
9
|
+
import test from "node:test";
|
|
10
|
+
import assert from "node:assert/strict";
|
|
11
|
+
import { protectCommands, unprotectCommands, lsattrShowsImmutable, } from "../install-immutability.js";
|
|
12
|
+
const INSTALL = "/home/admin/maxy-code";
|
|
13
|
+
const SERVER = "/home/admin/maxy-code/server";
|
|
14
|
+
const PLATFORM = "/home/admin/maxy-code/platform";
|
|
15
|
+
const PREMIUM = "/home/admin/maxy-code/premium-plugins";
|
|
16
|
+
const CONFIG = "/home/admin/maxy-code/platform/config";
|
|
17
|
+
test("protect freezes the three roots then un-freezes config, in order, on linux", () => {
|
|
18
|
+
assert.deepEqual(protectCommands(INSTALL, "linux"), [
|
|
19
|
+
{ command: "chattr", args: ["-R", "+i", SERVER] },
|
|
20
|
+
{ command: "chattr", args: ["-R", "+i", PLATFORM] },
|
|
21
|
+
{ command: "chattr", args: ["-R", "+i", PREMIUM] },
|
|
22
|
+
{ command: "chattr", args: ["-R", "-i", CONFIG] },
|
|
23
|
+
]);
|
|
24
|
+
});
|
|
25
|
+
test("unprotect emits chattr -R -i on the three roots for linux", () => {
|
|
26
|
+
assert.deepEqual(unprotectCommands(INSTALL, "linux"), [
|
|
27
|
+
{ command: "chattr", args: ["-R", "-i", SERVER] },
|
|
28
|
+
{ command: "chattr", args: ["-R", "-i", PLATFORM] },
|
|
29
|
+
{ command: "chattr", args: ["-R", "-i", PREMIUM] },
|
|
30
|
+
]);
|
|
31
|
+
});
|
|
32
|
+
test("config exclusion is un-frozen last, after its parent platform is frozen", () => {
|
|
33
|
+
const cmds = protectCommands(INSTALL, "linux");
|
|
34
|
+
const platformIdx = cmds.findIndex((c) => c.args[2] === PLATFORM && c.args[1] === "+i");
|
|
35
|
+
const configIdx = cmds.findIndex((c) => c.args[2] === CONFIG && c.args[1] === "-i");
|
|
36
|
+
assert.ok(platformIdx >= 0 && configIdx >= 0);
|
|
37
|
+
assert.ok(platformIdx < configIdx);
|
|
38
|
+
});
|
|
39
|
+
test("emits nothing on darwin", () => {
|
|
40
|
+
assert.deepEqual(protectCommands(INSTALL, "darwin"), []);
|
|
41
|
+
assert.deepEqual(unprotectCommands(INSTALL, "darwin"), []);
|
|
42
|
+
});
|
|
43
|
+
test("emits nothing on unsupported", () => {
|
|
44
|
+
assert.deepEqual(protectCommands(INSTALL, "unsupported"), []);
|
|
45
|
+
assert.deepEqual(unprotectCommands(INSTALL, "unsupported"), []);
|
|
46
|
+
});
|
|
47
|
+
test("lsattrShowsImmutable reads the immutable flag from an lsattr -d line", () => {
|
|
48
|
+
// `lsattr -d <path>` → "<flags> <path>"; the immutable 'i' sits in the flag field.
|
|
49
|
+
assert.equal(lsattrShowsImmutable("----i---------e---- /home/admin/maxy-code/platform"), true);
|
|
50
|
+
assert.equal(lsattrShowsImmutable("-------------e---- /home/admin/maxy-code/platform/config"), false);
|
|
51
|
+
// 'i' only ever occupies the immutable position; a capital 'I' (indexed dir) is distinct.
|
|
52
|
+
assert.equal(lsattrShowsImmutable("---------------I--- /home/admin/maxy-code/platform"), false);
|
|
53
|
+
// empty / malformed output is not immutable.
|
|
54
|
+
assert.equal(lsattrShowsImmutable(""), false);
|
|
55
|
+
});
|
package/dist/index.js
CHANGED
|
@@ -10,7 +10,8 @@ import { validateTierFlag, validateEntitlementBase64, applyTierToAccountConfig,
|
|
|
10
10
|
import { parseOsRelease, isUbuntuLike as isUbuntuLikePure, parseAptCacheCandidate, decideAptResolution, } from "./apt-resolve.js";
|
|
11
11
|
import { findPeerBrandOnDefaultNeo4jPort } from "./peer-brand-detect.js";
|
|
12
12
|
import { runInitLogging } from "./init-logging.js";
|
|
13
|
-
import { requireSupportedPlatform } from "./platform-detect.js";
|
|
13
|
+
import { requireSupportedPlatform, detectPlatform } from "./platform-detect.js";
|
|
14
|
+
import { protectCommands, unprotectCommands, lsattrShowsImmutable } from "./install-immutability.js";
|
|
14
15
|
import { renderPlist } from "./launchd-plist.js";
|
|
15
16
|
import { installAllBrewPackages } from "./brew-install.js";
|
|
16
17
|
import { parseSwVers, isSupportedMacosVersion } from "./macos-version.js";
|
|
@@ -1855,6 +1856,21 @@ function deployPayload() {
|
|
|
1855
1856
|
// User data lives at {installDir}/data/ — outside the platform/ wipe zone.
|
|
1856
1857
|
// Install path creates this fresh; runtime writers populate it on demand.
|
|
1857
1858
|
mkdirSync(join(INSTALL_DIR, "data"), { recursive: true });
|
|
1859
|
+
// Task 848 — on upgrade the prior server/, platform/, premium-plugins/ trees are
|
|
1860
|
+
// immutable (chattr +i). Clear all three BEFORE the wipe loop, or the rmSync of
|
|
1861
|
+
// those dirs below fails with EPERM. Gate on INSTALL_DIR existence (any prior
|
|
1862
|
+
// install), not server/ alone — a partial state where server/ was removed but
|
|
1863
|
+
// platform/ stayed frozen must still be unprotected. Fresh install: INSTALL_DIR
|
|
1864
|
+
// not yet created (mkdirSync below), so skip. Linux-only (emits nothing
|
|
1865
|
+
// elsewhere). bestEffort: a missing root chattr-errors harmlessly.
|
|
1866
|
+
const guardPlatform = detectPlatform(process.platform);
|
|
1867
|
+
if (existsSync(INSTALL_DIR)) {
|
|
1868
|
+
for (const c of unprotectCommands(INSTALL_DIR, guardPlatform)) {
|
|
1869
|
+
const target = c.args[c.args.length - 1];
|
|
1870
|
+
console.log(` [agent-guard] op=unprotect target=${target}`);
|
|
1871
|
+
shell(c.command, c.args, { sudo: true, bestEffort: true });
|
|
1872
|
+
}
|
|
1873
|
+
}
|
|
1858
1874
|
// Wipe deployment directories to prevent stale files.
|
|
1859
1875
|
// data/ is NOT wiped — it contains user data (accounts, uploads) that must survive.
|
|
1860
1876
|
for (const dir of ["platform", "server", "maxy", "premium-plugins", "docs", ".claude"]) {
|
|
@@ -1869,6 +1885,11 @@ function deployPayload() {
|
|
|
1869
1885
|
recursive: true,
|
|
1870
1886
|
force: true,
|
|
1871
1887
|
});
|
|
1888
|
+
// Task 848 — the platform source trees are frozen immutable as the final install
|
|
1889
|
+
// action (see main()), not here: the installer keeps writing under platform/
|
|
1890
|
+
// after this deploy (buildPlatform's npm install, service builds, plugin
|
|
1891
|
+
// registration), so an early freeze would EPERM those writes. The pre-wipe
|
|
1892
|
+
// unprotect above is the matching half on upgrade.
|
|
1872
1893
|
// Link persistent config into install directory
|
|
1873
1894
|
const configDir = join(INSTALL_DIR, "platform/config");
|
|
1874
1895
|
mkdirSync(configDir, { recursive: true });
|
|
@@ -4068,6 +4089,30 @@ try {
|
|
|
4068
4089
|
// step. The smbpasswd `user` step is deferred at install time and synced
|
|
4069
4090
|
// by the platform's /set-pin route when the operator sets a PIN.
|
|
4070
4091
|
provisionSamba();
|
|
4092
|
+
// Task 848 — freeze the platform source trees as the final install action, after
|
|
4093
|
+
// every install-time write under platform/ (buildPlatform's npm install →
|
|
4094
|
+
// platform/node_modules, the service builds under platform/services/*/dist, and
|
|
4095
|
+
// plugin registration). server/, platform/, premium-plugins/ become immutable to
|
|
4096
|
+
// the agent's user; platform/config/ is excluded by protectCommands (it is
|
|
4097
|
+
// runtime-writable). Load-bearing, so the outcome is verified positively: `chattr
|
|
4098
|
+
// -R` exits nonzero on the benign symlinks/special files an npm tree always
|
|
4099
|
+
// contains, so its aggregate exit code is not a reliable signal — instead
|
|
4100
|
+
// re-read each target's own immutable bit with `lsattr -d`. A freeze command
|
|
4101
|
+
// (+i) succeeded iff the target is now immutable; the config exclusion (-i)
|
|
4102
|
+
// succeeded iff it is now mutable. A failed protect does not abort the install;
|
|
4103
|
+
// the drift detector remains the backstop. Linux-only (emits nothing elsewhere).
|
|
4104
|
+
const guardPlatformProtect = detectPlatform(process.platform);
|
|
4105
|
+
for (const c of protectCommands(INSTALL_DIR, guardPlatformProtect)) {
|
|
4106
|
+
const target = c.args[c.args.length - 1];
|
|
4107
|
+
const freezing = c.args.includes("+i");
|
|
4108
|
+
const op = freezing ? "protect" : "protect-exclude";
|
|
4109
|
+
logFile(`> sudo ${c.command} ${c.args.join(" ")}`);
|
|
4110
|
+
spawnSync("sudo", [c.command, ...c.args], { stdio: "pipe", timeout: 30_000 });
|
|
4111
|
+
const probe = spawnSync("lsattr", ["-d", target], { stdio: "pipe", timeout: 10_000 });
|
|
4112
|
+
const immutable = probe.status === 0 && lsattrShowsImmutable(probe.stdout?.toString() ?? "");
|
|
4113
|
+
const ok = freezing ? immutable : !immutable;
|
|
4114
|
+
console.log(` [agent-guard] op=${ok ? op : `${op}-failed`} target=${target}`);
|
|
4115
|
+
}
|
|
4071
4116
|
console.log("");
|
|
4072
4117
|
console.log("================================================================");
|
|
4073
4118
|
console.log("");
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// Task 848 — OS-level platform boundary. After the installer deploys the
|
|
2
|
+
// platform, three trees are made immutable with `chattr +i` so a
|
|
3
|
+
// confused-but-compliant agent (same user, running under `bypassPermissions`)
|
|
4
|
+
// cannot hand-edit platform code — writes fail with EPERM and the agent reports
|
|
5
|
+
// the platform defect instead of patching the box:
|
|
6
|
+
// - server/ the built server bundle (Task 843, the incident target)
|
|
7
|
+
// - platform/ plugin code, scripts, templates, channel-service dist
|
|
8
|
+
// - premium-plugins/ premium bundle source
|
|
9
|
+
//
|
|
10
|
+
// platform/config/ is the sole runtime-writable subpath under a frozen root
|
|
11
|
+
// (the booting server writes .<hostname>-version there; it also holds brand.json,
|
|
12
|
+
// the chromium path, and the neo4j password), so it is un-frozen last — after its
|
|
13
|
+
// `+i` parent, since immutability is per-inode and a `-i` child dir stays
|
|
14
|
+
// writable. Linux/ext4 only — `chattr` does not exist on darwin, so off-Linux
|
|
15
|
+
// platforms emit nothing and the deploy step is a no-op. This module is pure: it
|
|
16
|
+
// returns the privileged argv but never executes it; the caller runs unprotect
|
|
17
|
+
// before the deploy wipe on upgrade and protect as the final install action.
|
|
18
|
+
import { join } from "node:path";
|
|
19
|
+
/** Install-relative roots frozen immutable, in apply order. */
|
|
20
|
+
const PROTECTED_ROOTS = ["server", "platform", "premium-plugins"];
|
|
21
|
+
/** Install-relative subpaths under a frozen root that the running platform
|
|
22
|
+
* writes to, so they are un-frozen after the roots are frozen. */
|
|
23
|
+
const WRITABLE_EXCLUSIONS = ["platform/config"];
|
|
24
|
+
/** `chattr -R +i` each protected root, then `chattr -R -i` each writable
|
|
25
|
+
* exclusion; [] on any non-Linux platform. */
|
|
26
|
+
export function protectCommands(installDir, platform) {
|
|
27
|
+
if (platform !== "linux")
|
|
28
|
+
return [];
|
|
29
|
+
const cmds = PROTECTED_ROOTS.map((root) => ({
|
|
30
|
+
command: "chattr",
|
|
31
|
+
args: ["-R", "+i", join(installDir, root)],
|
|
32
|
+
}));
|
|
33
|
+
for (const sub of WRITABLE_EXCLUSIONS) {
|
|
34
|
+
cmds.push({ command: "chattr", args: ["-R", "-i", join(installDir, sub)] });
|
|
35
|
+
}
|
|
36
|
+
return cmds;
|
|
37
|
+
}
|
|
38
|
+
/** `chattr -R -i` each protected root; [] on any non-Linux platform.
|
|
39
|
+
* A writable exclusion needs no separate entry: the recursive `-i` on its
|
|
40
|
+
* parent root descends into it and clears the flag. */
|
|
41
|
+
export function unprotectCommands(installDir, platform) {
|
|
42
|
+
if (platform !== "linux")
|
|
43
|
+
return [];
|
|
44
|
+
return PROTECTED_ROOTS.map((root) => ({
|
|
45
|
+
command: "chattr",
|
|
46
|
+
args: ["-R", "-i", join(installDir, root)],
|
|
47
|
+
}));
|
|
48
|
+
}
|
|
49
|
+
/** True iff an `lsattr -d <path>` output line shows the immutable ('i') flag.
|
|
50
|
+
* `lsattr -d` prints "<flags> <path>"; the immutable attribute uniquely
|
|
51
|
+
* occupies the lowercase-'i' position in the flag field, so a substring test on
|
|
52
|
+
* the first whitespace-delimited token is exact. Used to verify a freeze took:
|
|
53
|
+
* `chattr -R` exits nonzero on the benign symlinks/special files an npm tree
|
|
54
|
+
* always contains, so its aggregate exit code is not a reliable success signal —
|
|
55
|
+
* re-reading the target's own immutable bit is. */
|
|
56
|
+
export function lsattrShowsImmutable(lsattrLine) {
|
|
57
|
+
const flags = lsattrLine.trim().split(/\s+/)[0] ?? "";
|
|
58
|
+
return flags.includes("i");
|
|
59
|
+
}
|
package/package.json
CHANGED
|
@@ -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:
|
|
4
|
+
content-hash: sha256:1029bfc516fc6bed4265dcaffd6068d7ac72674d4e066c15c64e8c19df744b5e
|
|
5
5
|
brand: maxy-code
|
|
6
6
|
product-name: Maxy
|
|
7
7
|
---
|
|
@@ -2447,6 +2447,15 @@ documented in
|
|
|
2447
2447
|
[`platform.md`](platform.md) "The Web Interface" — that paragraph is
|
|
2448
2448
|
authoritative. This section names the surfaces and what backs each.
|
|
2449
2449
|
|
|
2450
|
+
> **Admin variant only.** Every surface below belongs to the `admin` shell
|
|
2451
|
+
> variant. The **operator** variant (`operator.<host>`) mounts no sidebar at
|
|
2452
|
+
> all: its dashboard collapsed to two surfaces — the persistent admin webchat
|
|
2453
|
+
> at `/` and the data browser at `/data` — with a three-item header (Chat,
|
|
2454
|
+
> Data, Log out) and a single-column `.platform.platform-operator` grid. The
|
|
2455
|
+
> operator never sees the sessions list, the WhatsApp reader, or the nav rows.
|
|
2456
|
+
> The operator surface is documented in full in the internal doc
|
|
2457
|
+
> `maxy-code/.docs/operator-dashboard.md`.
|
|
2458
|
+
|
|
2450
2459
|
| Surface | What it does | Backed by |
|
|
2451
2460
|
|---|---|---|
|
|
2452
2461
|
| `+ New session` button | Opens `NewSessionModal`, which POSTs `{channel, permissionMode, model, initialMessage}` to `/api/admin/claude-sessions`. | `claude-sessions.ts` |
|
|
@@ -49,7 +49,7 @@ The agent loads these references on demand via `plugin-read` as the conversation
|
|
|
49
49
|
|
|
50
50
|
### Success contract
|
|
51
51
|
|
|
52
|
-
The setup-done claim only fires when `curl -I https://<hostname>` issued from outside the local network returns `HTTP/2 200` (or `HTTP/1.1 200 OK`) and the response is surfaced verbatim in chat. No state file, no service-active claim, no `cloudflared` exit code substitutes for the live HTTP response. When the curl returns anything else, the agent diagnoses with `cloudflared tunnel info <tunnelId>` and `systemctl --user status
|
|
52
|
+
The setup-done claim only fires when `curl -I https://<hostname>` issued from outside the local network returns `HTTP/2 200` (or `HTTP/1.1 200 OK`) and the response is surfaced verbatim in chat. No state file, no service-active claim, no `cloudflared` exit code substitutes for the live HTTP response. When the curl returns anything else, the agent diagnoses with `cloudflared tunnel info <tunnelId>` and `systemctl --user status cloudflared-${BRAND}.service`, cites the relevant step in `references/reset-guide.md`, and stops.
|
|
53
53
|
|
|
54
54
|
## Identity model
|
|
55
55
|
|
|
@@ -41,7 +41,7 @@ rm -rf "${CFG_DIR}"
|
|
|
41
41
|
Then stop the brand's cloudflared user service so the now-deleted tunnel's connector exits:
|
|
42
42
|
|
|
43
43
|
```
|
|
44
|
-
systemctl --user stop "
|
|
44
|
+
systemctl --user stop "cloudflared-${BRAND}.service" 2>/dev/null || true
|
|
45
45
|
```
|
|
46
46
|
|
|
47
47
|
### What it does not do
|
|
@@ -30,7 +30,7 @@ Neither the master token nor any per-scope token is ever written into a project
|
|
|
30
30
|
|
|
31
31
|
Every Cloudflare operation proves itself with a live behavioural signal surfaced verbatim in chat:
|
|
32
32
|
|
|
33
|
-
- **Tunnel:** `curl -I https://<hostname>` from outside the local network returns `HTTP/2 200` (or `HTTP/1.1 200 OK`). No state file, no `result=ok` line, no "service is active" claim substitutes. If the curl returns anything else, diagnose with `cloudflared tunnel info <tunnelId>` and `systemctl --user status
|
|
33
|
+
- **Tunnel:** `curl -I https://<hostname>` from outside the local network returns `HTTP/2 200` (or `HTTP/1.1 200 OK`). No state file, no `result=ok` line, no "service is active" claim substitutes. If the curl returns anything else, diagnose with `cloudflared tunnel info <tunnelId>` and `systemctl --user status cloudflared-${BRAND}.service` and recover per `references/manual-setup.md`.
|
|
34
34
|
- **Hosting:** the deployed Pages URL returns the new build (`curl -s https://<project>.pages.dev/ | head` shows the new markup).
|
|
35
35
|
- **D1 capture:** a test POST to the live form appears in `wrangler d1 execute <db> --remote --command "SELECT … WHERE swept = 0"`.
|
|
36
36
|
|
|
@@ -65,7 +65,7 @@ Tunnel mutations the agent performs from `references/manual-setup.md` (each one
|
|
|
65
65
|
- For a public hostname not starting with `public.`, append it to `~/.${BRAND}/alias-domains.json` so `isPublicHost()` treats it as public.
|
|
66
66
|
- For an operator-dashboard hostname, append it to `~/.${BRAND}/operator-domains.json` so the UI serves the trimmed operator shell (admin-gated). See `references/manual-setup.md` § "Operator dashboard ingress".
|
|
67
67
|
- To apply an ingress change (a new operator or public host), relay a **reload to the supervised connector** — `systemctl --user restart "cloudflared-${BRAND}.service"` — which replaces the connector in place reading the edited `config.yml`. **Never** launch a bare `cloudflared … tunnel run` to pick up a change: that stacks a second connector on the tunnel (one on stale config), Cloudflare then routes some requests to the stale one, and the new host serves an intermittent 404. `resume-tunnel.sh` reaps such strays on the next brand-service start, but the correct provisioning path is the supervised reload, never a raw spawn.
|
|
68
|
-
-
|
|
68
|
+
- The `cloudflared-${BRAND}.service` connector is **not** a unit the operator installs or enables. `resume-tunnel.sh` — the brand service's `ExecStartPre` — spawns it as a transient `systemd-run --unit=cloudflared-${BRAND}.service` service every time `${BRAND}.service` starts. So the tunnel comes up with the brand service: there is no separate `daemon-reload` or `enable --now` step for the connector. To pick up a freshly written `config.yml`, restart the brand service via the cgroup-safe arming pattern in `references/manual-setup.md` (never a direct `systemctl --user restart ${BRAND}.service` from the agent's own Bash).
|
|
69
69
|
|
|
70
70
|
After the service is up, the agent runs `curl -I https://<admin-hostname>` and pastes the response. The setup-done claim only fires when a `200` line appears in that response.
|
|
71
71
|
|
|
@@ -229,6 +229,15 @@ documented in
|
|
|
229
229
|
[`platform.md`](platform.md) "The Web Interface" — that paragraph is
|
|
230
230
|
authoritative. This section names the surfaces and what backs each.
|
|
231
231
|
|
|
232
|
+
> **Admin variant only.** Every surface below belongs to the `admin` shell
|
|
233
|
+
> variant. The **operator** variant (`operator.<host>`) mounts no sidebar at
|
|
234
|
+
> all: its dashboard collapsed to two surfaces — the persistent admin webchat
|
|
235
|
+
> at `/` and the data browser at `/data` — with a three-item header (Chat,
|
|
236
|
+
> Data, Log out) and a single-column `.platform.platform-operator` grid. The
|
|
237
|
+
> operator never sees the sessions list, the WhatsApp reader, or the nav rows.
|
|
238
|
+
> The operator surface is documented in full in the internal doc
|
|
239
|
+
> `maxy-code/.docs/operator-dashboard.md`.
|
|
240
|
+
|
|
232
241
|
| Surface | What it does | Backed by |
|
|
233
242
|
|---|---|---|
|
|
234
243
|
| `+ New session` button | Opens `NewSessionModal`, which POSTs `{channel, permissionMode, model, initialMessage}` to `/api/admin/claude-sessions`. | `claude-sessions.ts` |
|
|
@@ -13,6 +13,7 @@ ROOT=$(mktemp -d)
|
|
|
13
13
|
trap 'rm -rf "$ROOT"' EXIT
|
|
14
14
|
mkdir -p "$ROOT/platform/plugins/demo/skills/demo" \
|
|
15
15
|
"$ROOT/platform/templates/specialists" \
|
|
16
|
+
"$ROOT/premium-plugins/demo-bundle/skills/demo" \
|
|
16
17
|
"$ROOT/.docs"
|
|
17
18
|
|
|
18
19
|
clean_skill() { printf '# Demo skill\n\nDoes a thing.\n' > "$ROOT/platform/plugins/demo/skills/demo/SKILL.md"; }
|
|
@@ -48,6 +49,19 @@ else
|
|
|
48
49
|
fi
|
|
49
50
|
rm -f "$ROOT/platform/templates/specialists/AGENT.md"
|
|
50
51
|
|
|
52
|
+
# 3b. `(Task 999)` under a shipped premium bundle -> gate fails + names it.
|
|
53
|
+
# Premium bundles are copied verbatim into the client payload, so any
|
|
54
|
+
# citation in their markdown leaks to paying clients the same as core.
|
|
55
|
+
printf '# Demo skill\n\nDoes a thing (Task 999).\n' > "$ROOT/premium-plugins/demo-bundle/skills/demo/SKILL.md"
|
|
56
|
+
out=$(TASK_ID_LEAK_ROOT="$ROOT" node "$GATE" 2>&1); rc=$?
|
|
57
|
+
if [[ "$rc" -ne 0 ]] \
|
|
58
|
+
&& printf '%s' "$out" | grep -q '\[task-id-leak\] file=premium-plugins/demo-bundle/skills/demo/SKILL.md'; then
|
|
59
|
+
echo "PASS: (Task 999) in shipped premium bundle fails the gate"; PASS=$((PASS+1))
|
|
60
|
+
else
|
|
61
|
+
echo "FAIL: premium citation not caught (rc=$rc): $out" >&2; FAIL=$((FAIL+1))
|
|
62
|
+
fi
|
|
63
|
+
rm -f "$ROOT/premium-plugins/demo-bundle/skills/demo/SKILL.md"
|
|
64
|
+
|
|
51
65
|
# 4. `Tasks 12 and 34` plural form under a shipped skill -> gate fails.
|
|
52
66
|
printf '# Demo skill\n\nMerged behaviour (Tasks 12 and 34).\n' > "$ROOT/platform/plugins/demo/skills/demo/SKILL.md"
|
|
53
67
|
out=$(TASK_ID_LEAK_ROOT="$ROOT" node "$GATE" 2>&1); rc=$?
|
|
@@ -102,6 +116,20 @@ else
|
|
|
102
116
|
fi
|
|
103
117
|
clean_skill
|
|
104
118
|
|
|
119
|
+
# 4f. A `(Task NNN)` citation a soft line-wrap split across two source lines ->
|
|
120
|
+
# gate fails + names it. Markdown rejoins the lines, so the client agent
|
|
121
|
+
# still reads `(Task 900)`; a per-line scan sees `Task` and `900` separately
|
|
122
|
+
# and misses it. printf emits a real newline between `Task` and `900`.
|
|
123
|
+
printf '# Demo skill\n\nThe method-capture flow (Task\n900) fills it in later.\n' > "$ROOT/platform/plugins/demo/skills/demo/SKILL.md"
|
|
124
|
+
out=$(TASK_ID_LEAK_ROOT="$ROOT" node "$GATE" 2>&1); rc=$?
|
|
125
|
+
if [[ "$rc" -ne 0 ]] \
|
|
126
|
+
&& printf '%s' "$out" | grep -q '\[task-id-leak\] file=platform/plugins/demo/skills/demo/SKILL.md'; then
|
|
127
|
+
echo "PASS: line-wrapped (Task\\n900) citation fails the gate"; PASS=$((PASS+1))
|
|
128
|
+
else
|
|
129
|
+
echo "FAIL: line-wrapped citation not caught (rc=$rc): $out" >&2; FAIL=$((FAIL+1))
|
|
130
|
+
fi
|
|
131
|
+
clean_skill
|
|
132
|
+
|
|
105
133
|
# 5. A hex colour `#999` in a shipped .md -> gate does NOT trip (not a citation).
|
|
106
134
|
printf '# Demo skill\n\nUse colour `#999` for labels.\n' > "$ROOT/platform/plugins/demo/skills/demo/SKILL.md"
|
|
107
135
|
out=$(TASK_ID_LEAK_ROOT="$ROOT" node "$GATE" 2>&1); rc=$?
|
|
@@ -8,6 +8,14 @@
|
|
|
8
8
|
// history rather than execute the verb. Operator surfaces strip citations;
|
|
9
9
|
// internal references keep them.
|
|
10
10
|
//
|
|
11
|
+
// Scope: build-time, source-only. This gate scans source strings (and shipped
|
|
12
|
+
// markdown) at build time. It cannot catch an internal reference the model
|
|
13
|
+
// GENERATES at runtime inside a channel reply — a task number, repo path, or
|
|
14
|
+
// log tag composed on the box. That runtime surface is covered by its
|
|
15
|
+
// complement, `redactInternalLeaks` in the channel packages' notification.ts,
|
|
16
|
+
// applied on the outbound reply path. The two together cover build-time source
|
|
17
|
+
// and runtime model output.
|
|
18
|
+
//
|
|
11
19
|
// Comment-skip is line-leading-character based, not AST. The repo's actual
|
|
12
20
|
// comment forms are: `#` (shell), `//` (TS/JS line), `*`/`/*`/`/**` (JSDoc
|
|
13
21
|
// continuation, block, doc), and `{/*` (JSX). Any line whose first non-
|
|
@@ -59,6 +67,10 @@ const MD_TASK_ID_RE = /\bTasks?[\s-]+\d{2,4}|\btasks?\s+\d{2,4}/
|
|
|
59
67
|
const MD_SCAN_ROOTS = [
|
|
60
68
|
join(REPO_ROOT, 'platform', 'plugins'),
|
|
61
69
|
join(REPO_ROOT, 'platform', 'templates'),
|
|
70
|
+
// Premium bundles are copied verbatim into the client payload
|
|
71
|
+
// (`payload/premium-plugins/<bundle>/`), so their shipped markdown loads into
|
|
72
|
+
// the client agent the same as core plugins — any citation form leaks.
|
|
73
|
+
join(REPO_ROOT, 'premium-plugins'),
|
|
62
74
|
]
|
|
63
75
|
|
|
64
76
|
function isCommentLine(line) {
|
|
@@ -122,9 +134,31 @@ for (const root of SCAN_ROOTS) {
|
|
|
122
134
|
}
|
|
123
135
|
|
|
124
136
|
// Markdown scan — shipped operator-loadable docs. Reuses `walk` (which already
|
|
125
|
-
// skips node_modules/dist/build/.next/payload/__tests__) and matches
|
|
126
|
-
//
|
|
137
|
+
// skips node_modules/dist/build/.next/payload/__tests__) and matches against
|
|
138
|
+
// MD_TASK_ID_RE with no comment skip: the whole doc is agent content.
|
|
127
139
|
// .docs/ and .tasks/ are not under MD_SCAN_ROOTS, so they stay citation-rich.
|
|
140
|
+
//
|
|
141
|
+
// Scanned per paragraph, not per line: a markdown soft-wrap can split a single
|
|
142
|
+
// citation across two source lines (`... (Task\n659) ...`), which renders as
|
|
143
|
+
// `(Task 659)` but matches neither line in isolation. Consecutive non-blank
|
|
144
|
+
// lines are joined with a space (the soft-break a renderer would insert) and
|
|
145
|
+
// scanned as one string; a blank line ends the paragraph, so the join never
|
|
146
|
+
// crosses a paragraph break. Every match in the paragraph is reported, mapped
|
|
147
|
+
// back to the source line where the match starts, preserving exact-line and
|
|
148
|
+
// multi-citation reporting.
|
|
149
|
+
const MD_TASK_ID_RE_G = new RegExp(MD_TASK_ID_RE.source, 'g')
|
|
150
|
+
|
|
151
|
+
function flushParagraph(file, joined, lineStarts) {
|
|
152
|
+
if (joined === '') return
|
|
153
|
+
for (const m of joined.matchAll(MD_TASK_ID_RE_G)) {
|
|
154
|
+
let lineNo = lineStarts[0].lineNo
|
|
155
|
+
for (const ls of lineStarts) {
|
|
156
|
+
if (ls.offset <= m.index) lineNo = ls.lineNo
|
|
157
|
+
}
|
|
158
|
+
leaks.push({ file: relative(REPO_ROOT, file), line: lineNo, content: m[0] })
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
128
162
|
for (const root of MD_SCAN_ROOTS) {
|
|
129
163
|
for (const file of walk(root)) {
|
|
130
164
|
if (!file.endsWith('.md')) continue
|
|
@@ -135,11 +169,20 @@ for (const root of MD_SCAN_ROOTS) {
|
|
|
135
169
|
continue
|
|
136
170
|
}
|
|
137
171
|
const lines = content.split('\n')
|
|
172
|
+
let joined = ''
|
|
173
|
+
let lineStarts = []
|
|
138
174
|
for (let i = 0; i < lines.length; i++) {
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
175
|
+
if (lines[i].trim() === '') {
|
|
176
|
+
flushParagraph(file, joined, lineStarts)
|
|
177
|
+
joined = ''
|
|
178
|
+
lineStarts = []
|
|
179
|
+
continue
|
|
180
|
+
}
|
|
181
|
+
if (joined !== '') joined += ' '
|
|
182
|
+
lineStarts.push({ offset: joined.length, lineNo: i + 1 })
|
|
183
|
+
joined += lines[i]
|
|
142
184
|
}
|
|
185
|
+
flushParagraph(file, joined, lineStarts)
|
|
143
186
|
}
|
|
144
187
|
}
|
|
145
188
|
|
|
@@ -151,8 +194,8 @@ if (leaks.length > 0) {
|
|
|
151
194
|
console.error('')
|
|
152
195
|
console.error('Code files: citations belong in inline comments only, never in operator-visible')
|
|
153
196
|
console.error('strings (stderr/stdout, logs, systemd --description=, error messages, console.*).')
|
|
154
|
-
console.error('Shipped markdown (platform/plugins, platform/templates): no task
|
|
155
|
-
console.error('form — the whole doc loads into a client-facing agent. Dev docs
|
|
156
|
-
console.error('are exempt and keep their citations.')
|
|
197
|
+
console.error('Shipped markdown (platform/plugins, platform/templates, premium-plugins): no task')
|
|
198
|
+
console.error('citation in any form — the whole doc loads into a client-facing agent. Dev docs')
|
|
199
|
+
console.error('(.docs/, .tasks/) are exempt and keep their citations.')
|
|
157
200
|
process.exit(1)
|
|
158
201
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../src/system-prompt.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../src/system-prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,11 @@
|
|
|
8
8
|
// <accountDir>/agents/<role>/IDENTITY.md
|
|
9
9
|
// <soul> ... </soul> — verbatim contents of
|
|
10
10
|
// <accountDir>/agents/<role>/SOUL.md
|
|
11
|
+
// <platform-boundary> ... </platform-boundary>
|
|
12
|
+
// — black-box directive: never
|
|
13
|
+
// read/edit the install or restart
|
|
14
|
+
// platform services, never leak
|
|
15
|
+
// engineering internals to a channel.
|
|
11
16
|
// <about-owner> ... </about-owner> — operator-profile body produced
|
|
12
17
|
// by `formatProfileSummary` in
|
|
13
18
|
// neo4j-store.ts. Two prose lines:
|
|
@@ -54,6 +59,21 @@
|
|
|
54
59
|
import { readFileSync } from 'node:fs';
|
|
55
60
|
import { join } from 'node:path';
|
|
56
61
|
import { resolveAgentIdentityDir } from './agent-identity-locator.js';
|
|
62
|
+
// Task 834 — the platform-as-black-box boundary. Lives here because this block
|
|
63
|
+
// is the only doctrine surface that survives Claude Code SDK upgrades, so the
|
|
64
|
+
// directive holds on every spawn regardless of per-account IDENTITY edits. The
|
|
65
|
+
// motivating incident: a channel agent read the compiled server bundle,
|
|
66
|
+
// hand-edited it, restarted the service, and narrated the internals (including
|
|
67
|
+
// a task number) to a paying client. A permissions.deny cannot stop this
|
|
68
|
+
// because operator spawns run under bypassPermissions; the durable fix is the
|
|
69
|
+
// OS-level filesystem boundary tracked separately, with this directive in the
|
|
70
|
+
// meantime.
|
|
71
|
+
export const PLATFORM_BOUNDARY = [
|
|
72
|
+
'The platform you run on is a black box you operate, not code you maintain.',
|
|
73
|
+
'Do not read, grep, search, or edit the platform install, its server bundle, or any platform source on this machine; do not restart platform services.',
|
|
74
|
+
'If the platform itself is broken, describe the symptom to the operator in plain terms and stop — never hand-patch the install here. Platform fixes ship through the installer.',
|
|
75
|
+
'Never put engineering internals into a message to the operator or any channel: no task numbers, repository paths, source filenames, code identifiers, internal log tags, or statements that you patched or restarted the platform.',
|
|
76
|
+
].join(' ');
|
|
57
77
|
function readIdentityFile(path) {
|
|
58
78
|
let content;
|
|
59
79
|
try {
|
|
@@ -158,6 +178,9 @@ knowledgeContent, extras) {
|
|
|
158
178
|
'<soul>',
|
|
159
179
|
soulContent,
|
|
160
180
|
'</soul>',
|
|
181
|
+
'<platform-boundary>',
|
|
182
|
+
PLATFORM_BOUNDARY,
|
|
183
|
+
'</platform-boundary>',
|
|
161
184
|
];
|
|
162
185
|
const knowledgeBytes = knowledgeContent !== null ? Buffer.byteLength(knowledgeContent, 'utf8') : 0;
|
|
163
186
|
if (knowledgeContent !== null) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../src/system-prompt.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../src/system-prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,4 +52,16 @@ export declare function postWithRetry(attempt: () => Promise<boolean>, opts: {
|
|
|
52
52
|
* reason. (No terminal/logged-out branch — there is no external transport to
|
|
53
53
|
* log out of.) */
|
|
54
54
|
export declare function buildReplyError(status: number, body: unknown): string;
|
|
55
|
+
export declare const INTERNAL_LEAK_PATTERNS: {
|
|
56
|
+
name: string;
|
|
57
|
+
re: RegExp;
|
|
58
|
+
}[];
|
|
59
|
+
export interface Redaction {
|
|
60
|
+
pattern: string;
|
|
61
|
+
match: string;
|
|
62
|
+
}
|
|
63
|
+
export declare function redactInternalLeaks(text: string): {
|
|
64
|
+
clean: string;
|
|
65
|
+
redactions: Redaction[];
|
|
66
|
+
};
|
|
55
67
|
//# sourceMappingURL=notification.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notification.d.ts","sourceRoot":"","sources":["../src/notification.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,cAAc;IAC7B,wDAAwD;IACxD,GAAG,EAAE,MAAM,CAAA;IACX,gFAAgF;IAChF,IAAI,EAAE,MAAM,CAAA;IACZ,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;yCACyC;AACzC,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;CACrB;AAED;8DAC8D;AAC9D,wBAAgB,cAAc,CAAC,CAAC,EAAE,cAAc,GAAG,eAAe,CAEjE;AAED;;2BAE2B;AAC3B,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAErE;AAED;;;mCAGmC;AACnC,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAE7F;AAED;;;kFAGkF;AAClF,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAEpC;AAED;;;;cAIc;AACd,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,EAC/B,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,GAChF,OAAO,CAAC,OAAO,CAAC,CAMlB;AAED;;;mBAGmB;AACnB,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAIrE"}
|
|
1
|
+
{"version":3,"file":"notification.d.ts","sourceRoot":"","sources":["../src/notification.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,cAAc;IAC7B,wDAAwD;IACxD,GAAG,EAAE,MAAM,CAAA;IACX,gFAAgF;IAChF,IAAI,EAAE,MAAM,CAAA;IACZ,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;yCACyC;AACzC,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;CACrB;AAED;8DAC8D;AAC9D,wBAAgB,cAAc,CAAC,CAAC,EAAE,cAAc,GAAG,eAAe,CAEjE;AAED;;2BAE2B;AAC3B,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAErE;AAED;;;mCAGmC;AACnC,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAE7F;AAED;;;kFAGkF;AAClF,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAEpC;AAED;;;;cAIc;AACd,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,EAC/B,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,GAChF,OAAO,CAAC,OAAO,CAAC,CAMlB;AAED;;;mBAGmB;AACnB,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAIrE;AAYD,eAAO,MAAM,sBAAsB,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,EAOhE,CAAA;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CACd;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,SAAS,EAAE,CAAA;CAAE,CAU5F"}
|