@piecemaker-legal/piecemaker 1.0.6
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/LICENSE +718 -0
- package/README.md +79 -0
- package/dist/Mistral-Icon-Gradient-RGB.svg +12 -0
- package/dist/api-docs.html +901 -0
- package/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- package/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- package/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- package/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- package/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- package/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- package/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- package/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- package/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- package/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- package/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- package/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- package/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- package/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- package/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- package/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- package/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- package/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- package/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- package/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- package/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- package/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- package/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- package/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- package/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- package/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- package/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- package/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- package/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- package/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- package/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- package/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- package/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- package/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- package/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- package/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- package/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- package/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- package/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- package/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- package/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- package/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- package/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- package/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- package/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- package/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- package/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- package/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- package/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- package/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- package/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- package/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- package/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- package/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- package/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- package/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- package/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- package/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- package/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- package/dist/assets/abnfDiagram-VCTEODGH-DF7LFtT-.js +1 -0
- package/dist/assets/arc-xOmjWeVH.js +1 -0
- package/dist/assets/architectureDiagram-5GKGNRK7-CESzNPwa.js +36 -0
- package/dist/assets/blockDiagram-I7D4REHJ-BjdN78Ad.js +129 -0
- package/dist/assets/c4Diagram-7LVT6UL2-BcK9EDWT.js +38 -0
- package/dist/assets/channel-Dz3eE5vU.js +1 -0
- package/dist/assets/chunk-2Q5K7J3B-DGUN1JFP.js +1 -0
- package/dist/assets/chunk-5VM5RSS4-BG3BBcFr.js +15 -0
- package/dist/assets/chunk-F27PBJKO-CLIOfrF5.js +1 -0
- package/dist/assets/chunk-IMKFNOWR-D6lGkqij.js +231 -0
- package/dist/assets/chunk-JWPE2WC7-BmF9vLBT.js +1 -0
- package/dist/assets/chunk-POPQ4Y6H-C_0SR3ak.js +1 -0
- package/dist/assets/chunk-SVP7TREG-rT20Wfpp.js +88 -0
- package/dist/assets/chunk-TICWLB2K-Cn2hkmcf.js +206 -0
- package/dist/assets/chunk-XXDRQBXY-Dm_eP1_v.js +1 -0
- package/dist/assets/classDiagram-ZZMXUADV-BC1eKV2j.js +1 -0
- package/dist/assets/classDiagram-v2-VYDZK3BY-BC1eKV2j.js +1 -0
- package/dist/assets/cose-bilkent-JH36ORCC-cJeeJsep.js +1 -0
- package/dist/assets/cynefin-OW5HDTMX-DX2ePIXe.js +166 -0
- package/dist/assets/cynefinDiagram-5FMLGOSQ-BvWXN-RR.js +62 -0
- package/dist/assets/cytoscape.esm-BB4DxJjf.js +321 -0
- package/dist/assets/dagre-GXQ25YYZ-CkwPRhGR.js +4 -0
- package/dist/assets/defaultLocale-DX6XiGOO.js +1 -0
- package/dist/assets/diagram-S7CK7UJ4-CBGNzYyv.js +30 -0
- package/dist/assets/diagram-UQ7AKVKN-CiwCU0SJ.js +41 -0
- package/dist/assets/diagram-VSXAHHWV-Aekg4nTk.js +3 -0
- package/dist/assets/diagram-VX7I27RA-DPFP5K7r.js +24 -0
- package/dist/assets/diagram-Z3DM3KII-BHJkxoey.js +24 -0
- package/dist/assets/ebnfDiagram-PWID7BFC-2rV1P32T.js +1 -0
- package/dist/assets/erDiagram-RLTQ6QDP-C4BjyS_H.js +99 -0
- package/dist/assets/flowDiagram-HODETNUW-DL1TBlAG.js +168 -0
- package/dist/assets/ganttDiagram-EL5Y4UJY-MKjvzCWz.js +292 -0
- package/dist/assets/gitGraphDiagram-WWUBYQGX-CS_oTGK5.js +106 -0
- package/dist/assets/index-DhwJpHCq.css +1 -0
- package/dist/assets/index-XOGQDqU3.js +3993 -0
- package/dist/assets/infoDiagram-27XIBGKW-ihUr2GjN.js +2 -0
- package/dist/assets/init-Gi6I4Gst.js +1 -0
- package/dist/assets/ishikawaDiagram-5VMMS53U-D2YAnuir.js +70 -0
- package/dist/assets/journeyDiagram-3NMN7TZE-Bc2hSZGD.js +139 -0
- package/dist/assets/kanban-definition-UXKFOSKX-LRMGNonX.js +89 -0
- package/dist/assets/layout-CcfWOlPV.js +1 -0
- package/dist/assets/linear-7JoS2gQO.js +1 -0
- package/dist/assets/mermaid.core-ijh_SsuN.js +308 -0
- package/dist/assets/mindmap-definition-YA3MSWOX-DCE4nzfF.js +96 -0
- package/dist/assets/ordinal-Cboi1Yqb.js +1 -0
- package/dist/assets/pegDiagram-XKGWAZYB-SjaGa7lE.js +1 -0
- package/dist/assets/pieDiagram-E7YTZNPT-1xcRidSZ.js +39 -0
- package/dist/assets/quadrantDiagram-AXDQQJYC-obHAHnYV.js +7 -0
- package/dist/assets/railroadDiagram-O6MQD6OU-BsCVcRZb.js +1 -0
- package/dist/assets/requirementDiagram-BXWQKSXE-CUNkhvqb.js +84 -0
- package/dist/assets/sankeyDiagram-P5KCCOFB-DhezXMKm.js +40 -0
- package/dist/assets/sequenceDiagram-WJ2MYXX4-CL9VswXH.js +162 -0
- package/dist/assets/server.browser-BzI1jrZw.js +11 -0
- package/dist/assets/sizeCapture-INFHLROL-t0g9jiEz.js +1 -0
- package/dist/assets/stateDiagram-D77RDMKH-BW-g-IOz.js +1 -0
- package/dist/assets/stateDiagram-v2-MP3YSRHH-BXuT4zDG.js +1 -0
- package/dist/assets/swimlanes-42K2YHIH-LsuyeBte.js +1 -0
- package/dist/assets/swimlanesDiagram-VR7AAH4N-B0eYrB4U.js +8 -0
- package/dist/assets/timeline-definition-24CTP7MA-B0cFka1R.js +120 -0
- package/dist/assets/vendor-codemirror-C5qqu4R7.js +33 -0
- package/dist/assets/vendor-react-D809iwXR.js +8 -0
- package/dist/assets/vendor-xterm-BWUgpGtR.js +66 -0
- package/dist/assets/vennDiagram-4TSXK5OY-D3HNCDR3.js +34 -0
- package/dist/assets/wardleyDiagram-VM6X3IG4-DJ3Co8nb.js +78 -0
- package/dist/assets/xychartDiagram-S5SC5T6Z-Cz5E9New.js +7 -0
- package/dist/clear-cache.html +85 -0
- package/dist/convert-icons.md +53 -0
- package/dist/favicon.png +0 -0
- package/dist/favicon.svg +9 -0
- package/dist/generate-icons.js +49 -0
- package/dist/icons/claude-ai-icon.svg +1 -0
- package/dist/icons/codex-white.svg +3 -0
- package/dist/icons/codex.svg +3 -0
- package/dist/icons/cursor-white.svg +12 -0
- package/dist/icons/cursor.svg +1 -0
- package/dist/icons/icon-128x128.png +0 -0
- package/dist/icons/icon-128x128.svg +12 -0
- package/dist/icons/icon-144x144.png +0 -0
- package/dist/icons/icon-144x144.svg +12 -0
- package/dist/icons/icon-152x152.png +0 -0
- package/dist/icons/icon-152x152.svg +12 -0
- package/dist/icons/icon-192x192.png +0 -0
- package/dist/icons/icon-192x192.svg +12 -0
- package/dist/icons/icon-384x384.png +0 -0
- package/dist/icons/icon-384x384.svg +12 -0
- package/dist/icons/icon-512x512.png +0 -0
- package/dist/icons/icon-512x512.svg +12 -0
- package/dist/icons/icon-72x72.png +0 -0
- package/dist/icons/icon-72x72.svg +12 -0
- package/dist/icons/icon-96x96.png +0 -0
- package/dist/icons/icon-96x96.svg +12 -0
- package/dist/icons/icon-template.svg +12 -0
- package/dist/index.html +60 -0
- package/dist/logo-128.png +0 -0
- package/dist/logo-256.png +0 -0
- package/dist/logo-32.png +0 -0
- package/dist/logo-512.png +0 -0
- package/dist/logo-64.png +0 -0
- package/dist/logo.svg +17 -0
- package/dist/manifest.json +61 -0
- package/dist/screenshots/cli-selection.png +0 -0
- package/dist/screenshots/desktop-main.png +0 -0
- package/dist/screenshots/mobile-chat.png +0 -0
- package/dist/screenshots/tools-modal.png +0 -0
- package/dist/sw.js +125 -0
- package/dist-server/plugins/piecemaker-dossier/src/knowledge.js +272 -0
- package/dist-server/plugins/piecemaker-dossier/src/knowledge.js.map +1 -0
- package/dist-server/plugins/piecemaker-dossier/src/scan-result.js +160 -0
- package/dist-server/plugins/piecemaker-dossier/src/scan-result.js.map +1 -0
- package/dist-server/plugins/piecemaker-dossier/src/types.js +3 -0
- package/dist-server/plugins/piecemaker-dossier/src/types.js.map +1 -0
- package/dist-server/server/index.js +345 -0
- package/dist-server/server/index.js.map +1 -0
- package/dist-server/server/load-env.js +46 -0
- package/dist-server/server/load-env.js.map +1 -0
- package/dist-server/server/modules/agent/agent.module.js +38 -0
- package/dist-server/server/modules/agent/agent.module.js.map +1 -0
- package/dist-server/server/modules/agent/agent.routes.js +1161 -0
- package/dist-server/server/modules/agent/agent.routes.js.map +1 -0
- package/dist-server/server/modules/agent/index.js +3 -0
- package/dist-server/server/modules/agent/index.js.map +1 -0
- package/dist-server/server/modules/agent/tests/agent.routes.test.js +205 -0
- package/dist-server/server/modules/agent/tests/agent.routes.test.js.map +1 -0
- package/dist-server/server/modules/assets/assets.routes.js +130 -0
- package/dist-server/server/modules/assets/assets.routes.js.map +1 -0
- package/dist-server/server/modules/assets/index.js +4 -0
- package/dist-server/server/modules/assets/index.js.map +1 -0
- package/dist-server/server/modules/assets/services/image-assets.service.js +95 -0
- package/dist-server/server/modules/assets/services/image-assets.service.js.map +1 -0
- package/dist-server/server/modules/assets/tests/image-assets.service.test.js +56 -0
- package/dist-server/server/modules/assets/tests/image-assets.service.test.js.map +1 -0
- package/dist-server/server/modules/auth/auth.middleware.js +133 -0
- package/dist-server/server/modules/auth/auth.middleware.js.map +1 -0
- package/dist-server/server/modules/auth/auth.module.js +29 -0
- package/dist-server/server/modules/auth/auth.module.js.map +1 -0
- package/dist-server/server/modules/auth/auth.routes.js +45 -0
- package/dist-server/server/modules/auth/auth.routes.js.map +1 -0
- package/dist-server/server/modules/auth/auth.service.js +113 -0
- package/dist-server/server/modules/auth/auth.service.js.map +1 -0
- package/dist-server/server/modules/auth/index.js +9 -0
- package/dist-server/server/modules/auth/index.js.map +1 -0
- package/dist-server/server/modules/auth/tests/auth.service.test.js +80 -0
- package/dist-server/server/modules/auth/tests/auth.service.test.js.map +1 -0
- package/dist-server/server/modules/browser-use/browser-use-mcp.js +352 -0
- package/dist-server/server/modules/browser-use/browser-use-mcp.js.map +1 -0
- package/dist-server/server/modules/browser-use/browser-use-mcp.routes.js +107 -0
- package/dist-server/server/modules/browser-use/browser-use-mcp.routes.js.map +1 -0
- package/dist-server/server/modules/browser-use/browser-use-runtime.js +10 -0
- package/dist-server/server/modules/browser-use/browser-use-runtime.js.map +1 -0
- package/dist-server/server/modules/browser-use/browser-use.routes.js +99 -0
- package/dist-server/server/modules/browser-use/browser-use.routes.js.map +1 -0
- package/dist-server/server/modules/browser-use/browser-use.service.js +686 -0
- package/dist-server/server/modules/browser-use/browser-use.service.js.map +1 -0
- package/dist-server/server/modules/browser-use/index.js +11 -0
- package/dist-server/server/modules/browser-use/index.js.map +1 -0
- package/dist-server/server/modules/browser-use/tests/browser-use.service.test.js +8 -0
- package/dist-server/server/modules/browser-use/tests/browser-use.service.test.js.map +1 -0
- package/dist-server/server/modules/cli/cli.js +17 -0
- package/dist-server/server/modules/cli/cli.js.map +1 -0
- package/dist-server/server/modules/cli/cli.module.js +93 -0
- package/dist-server/server/modules/cli/cli.module.js.map +1 -0
- package/dist-server/server/modules/cli/cli.service.js +230 -0
- package/dist-server/server/modules/cli/cli.service.js.map +1 -0
- package/dist-server/server/modules/cli/index.js +3 -0
- package/dist-server/server/modules/cli/index.js.map +1 -0
- package/dist-server/server/modules/cli/pwa-launcher.js +116 -0
- package/dist-server/server/modules/cli/pwa-launcher.js.map +1 -0
- package/dist-server/server/modules/cli/sandbox.service.js +332 -0
- package/dist-server/server/modules/cli/sandbox.service.js.map +1 -0
- package/dist-server/server/modules/cli/tests/cli-environment-bootstrap.test.js +154 -0
- package/dist-server/server/modules/cli/tests/cli-environment-bootstrap.test.js.map +1 -0
- package/dist-server/server/modules/cli/tests/cli.service.test.js +91 -0
- package/dist-server/server/modules/cli/tests/cli.service.test.js.map +1 -0
- package/dist-server/server/modules/cli/tests/sandbox.service.test.js +55 -0
- package/dist-server/server/modules/cli/tests/sandbox.service.test.js.map +1 -0
- package/dist-server/server/modules/commands/commands.module.js +20 -0
- package/dist-server/server/modules/commands/commands.module.js.map +1 -0
- package/dist-server/server/modules/commands/commands.routes.js +498 -0
- package/dist-server/server/modules/commands/commands.routes.js.map +1 -0
- package/dist-server/server/modules/commands/index.js +3 -0
- package/dist-server/server/modules/commands/index.js.map +1 -0
- package/dist-server/server/modules/commands/tests/commands.test.js +91 -0
- package/dist-server/server/modules/commands/tests/commands.test.js.map +1 -0
- package/dist-server/server/modules/database/connection.js +125 -0
- package/dist-server/server/modules/database/connection.js.map +1 -0
- package/dist-server/server/modules/database/index.js +23 -0
- package/dist-server/server/modules/database/index.js.map +1 -0
- package/dist-server/server/modules/database/init-db.js +18 -0
- package/dist-server/server/modules/database/init-db.js.map +1 -0
- package/dist-server/server/modules/database/migrations.js +465 -0
- package/dist-server/server/modules/database/migrations.js.map +1 -0
- package/dist-server/server/modules/database/repositories/api-keys.js +72 -0
- package/dist-server/server/modules/database/repositories/api-keys.js.map +1 -0
- package/dist-server/server/modules/database/repositories/app-config.js +47 -0
- package/dist-server/server/modules/database/repositories/app-config.js.map +1 -0
- package/dist-server/server/modules/database/repositories/credentials.js +68 -0
- package/dist-server/server/modules/database/repositories/credentials.js.map +1 -0
- package/dist-server/server/modules/database/repositories/github-tokens.js +54 -0
- package/dist-server/server/modules/database/repositories/github-tokens.js.map +1 -0
- package/dist-server/server/modules/database/repositories/notification-channel-endpoints.js +100 -0
- package/dist-server/server/modules/database/repositories/notification-channel-endpoints.js.map +1 -0
- package/dist-server/server/modules/database/repositories/notification-preferences.js +82 -0
- package/dist-server/server/modules/database/repositories/notification-preferences.js.map +1 -0
- package/dist-server/server/modules/database/repositories/projects.db.js +172 -0
- package/dist-server/server/modules/database/repositories/projects.db.js.map +1 -0
- package/dist-server/server/modules/database/repositories/provider-models.js +112 -0
- package/dist-server/server/modules/database/repositories/provider-models.js.map +1 -0
- package/dist-server/server/modules/database/repositories/push-subscriptions.js +49 -0
- package/dist-server/server/modules/database/repositories/push-subscriptions.js.map +1 -0
- package/dist-server/server/modules/database/repositories/scan-state.db.js +31 -0
- package/dist-server/server/modules/database/repositories/scan-state.db.js.map +1 -0
- package/dist-server/server/modules/database/repositories/scheduled-messages.db.js +71 -0
- package/dist-server/server/modules/database/repositories/scheduled-messages.db.js.map +1 -0
- package/dist-server/server/modules/database/repositories/session-drafts.db.js +105 -0
- package/dist-server/server/modules/database/repositories/session-drafts.db.js.map +1 -0
- package/dist-server/server/modules/database/repositories/sessions.db.js +507 -0
- package/dist-server/server/modules/database/repositories/sessions.db.js.map +1 -0
- package/dist-server/server/modules/database/repositories/user-preferences.db.js +65 -0
- package/dist-server/server/modules/database/repositories/user-preferences.db.js.map +1 -0
- package/dist-server/server/modules/database/repositories/users.js +88 -0
- package/dist-server/server/modules/database/repositories/users.js.map +1 -0
- package/dist-server/server/modules/database/repositories/vapid-keys.js +38 -0
- package/dist-server/server/modules/database/repositories/vapid-keys.js.map +1 -0
- package/dist-server/server/modules/database/schema.js +291 -0
- package/dist-server/server/modules/database/schema.js.map +1 -0
- package/dist-server/server/modules/database/tests/projects.db.integration.test.js +64 -0
- package/dist-server/server/modules/database/tests/projects.db.integration.test.js.map +1 -0
- package/dist-server/server/modules/database/tests/provider-models.db.integration.test.js +102 -0
- package/dist-server/server/modules/database/tests/provider-models.db.integration.test.js.map +1 -0
- package/dist-server/server/modules/database/tests/sessions-provider-mapping.test.js +79 -0
- package/dist-server/server/modules/database/tests/sessions-provider-mapping.test.js.map +1 -0
- package/dist-server/server/modules/database/tests/sessions.db.integration.test.js +132 -0
- package/dist-server/server/modules/database/tests/sessions.db.integration.test.js.map +1 -0
- package/dist-server/server/modules/database/tests/user-preferences.db.integration.test.js +105 -0
- package/dist-server/server/modules/database/tests/user-preferences.db.integration.test.js.map +1 -0
- package/dist-server/server/modules/file-tree/file-tree.module.js +95 -0
- package/dist-server/server/modules/file-tree/file-tree.module.js.map +1 -0
- package/dist-server/server/modules/file-tree/file-tree.routes.js +208 -0
- package/dist-server/server/modules/file-tree/file-tree.routes.js.map +1 -0
- package/dist-server/server/modules/file-tree/file-tree.service.js +584 -0
- package/dist-server/server/modules/file-tree/file-tree.service.js.map +1 -0
- package/dist-server/server/modules/file-tree/index.js +3 -0
- package/dist-server/server/modules/file-tree/index.js.map +1 -0
- package/dist-server/server/modules/file-tree/tests/file-tree.routes.test.js +123 -0
- package/dist-server/server/modules/file-tree/tests/file-tree.routes.test.js.map +1 -0
- package/dist-server/server/modules/file-tree/tests/file-tree.service.test.js +311 -0
- package/dist-server/server/modules/file-tree/tests/file-tree.service.test.js.map +1 -0
- package/dist-server/server/modules/git/git-branch.service.js +15 -0
- package/dist-server/server/modules/git/git-branch.service.js.map +1 -0
- package/dist-server/server/modules/git/git-parsing.service.js +61 -0
- package/dist-server/server/modules/git/git-parsing.service.js.map +1 -0
- package/dist-server/server/modules/git/git.module.js +14 -0
- package/dist-server/server/modules/git/git.module.js.map +1 -0
- package/dist-server/server/modules/git/git.routes.js +1347 -0
- package/dist-server/server/modules/git/git.routes.js.map +1 -0
- package/dist-server/server/modules/git/index.js +3 -0
- package/dist-server/server/modules/git/index.js.map +1 -0
- package/dist-server/server/modules/git/tests/git-branch.service.test.js +52 -0
- package/dist-server/server/modules/git/tests/git-branch.service.test.js.map +1 -0
- package/dist-server/server/modules/git/tests/git-init.routes.test.js +132 -0
- package/dist-server/server/modules/git/tests/git-init.routes.test.js.map +1 -0
- package/dist-server/server/modules/git/tests/git.test.js +80 -0
- package/dist-server/server/modules/git/tests/git.test.js.map +1 -0
- package/dist-server/server/modules/notifications/index.js +20 -0
- package/dist-server/server/modules/notifications/index.js.map +1 -0
- package/dist-server/server/modules/notifications/notifications.routes.js +115 -0
- package/dist-server/server/modules/notifications/notifications.routes.js.map +1 -0
- package/dist-server/server/modules/notifications/services/desktop-notification-clients.service.js +97 -0
- package/dist-server/server/modules/notifications/services/desktop-notification-clients.service.js.map +1 -0
- package/dist-server/server/modules/notifications/services/notification-orchestrator.service.js +249 -0
- package/dist-server/server/modules/notifications/services/notification-orchestrator.service.js.map +1 -0
- package/dist-server/server/modules/notifications/tests/notification-orchestrator.integration.test.js +44 -0
- package/dist-server/server/modules/notifications/tests/notification-orchestrator.integration.test.js.map +1 -0
- package/dist-server/server/modules/notifications/vapid-keys.service.js +28 -0
- package/dist-server/server/modules/notifications/vapid-keys.service.js.map +1 -0
- package/dist-server/server/modules/notifications/websocket/desktop-notifications-websocket.service.js +79 -0
- package/dist-server/server/modules/notifications/websocket/desktop-notifications-websocket.service.js.map +1 -0
- package/dist-server/server/modules/plugins/index.js +9 -0
- package/dist-server/server/modules/plugins/index.js.map +1 -0
- package/dist-server/server/modules/plugins/plugin-process.service.js +191 -0
- package/dist-server/server/modules/plugins/plugin-process.service.js.map +1 -0
- package/dist-server/server/modules/plugins/plugin-registry.service.js +415 -0
- package/dist-server/server/modules/plugins/plugin-registry.service.js.map +1 -0
- package/dist-server/server/modules/plugins/plugins.module.js +30 -0
- package/dist-server/server/modules/plugins/plugins.module.js.map +1 -0
- package/dist-server/server/modules/plugins/plugins.routes.js +70 -0
- package/dist-server/server/modules/plugins/plugins.routes.js.map +1 -0
- package/dist-server/server/modules/plugins/plugins.service.js +123 -0
- package/dist-server/server/modules/plugins/plugins.service.js.map +1 -0
- package/dist-server/server/modules/plugins/tests/plugins.service.test.js +28 -0
- package/dist-server/server/modules/plugins/tests/plugins.service.test.js.map +1 -0
- package/dist-server/server/modules/projects/index.js +9 -0
- package/dist-server/server/modules/projects/index.js.map +1 -0
- package/dist-server/server/modules/projects/projects.routes.js +205 -0
- package/dist-server/server/modules/projects/projects.routes.js.map +1 -0
- package/dist-server/server/modules/projects/services/project-clone.service.js +220 -0
- package/dist-server/server/modules/projects/services/project-clone.service.js.map +1 -0
- package/dist-server/server/modules/projects/services/project-delete.service.js +89 -0
- package/dist-server/server/modules/projects/services/project-delete.service.js.map +1 -0
- package/dist-server/server/modules/projects/services/project-management.service.js +90 -0
- package/dist-server/server/modules/projects/services/project-management.service.js.map +1 -0
- package/dist-server/server/modules/projects/services/project-star.service.js +60 -0
- package/dist-server/server/modules/projects/services/project-star.service.js.map +1 -0
- package/dist-server/server/modules/projects/services/projects-has-taskmaster.service.js +167 -0
- package/dist-server/server/modules/projects/services/projects-has-taskmaster.service.js.map +1 -0
- package/dist-server/server/modules/projects/services/projects-with-sessions-fetch.service.js +188 -0
- package/dist-server/server/modules/projects/services/projects-with-sessions-fetch.service.js.map +1 -0
- package/dist-server/server/modules/projects/tests/project-clone.service.test.js +126 -0
- package/dist-server/server/modules/projects/tests/project-clone.service.test.js.map +1 -0
- package/dist-server/server/modules/projects/tests/project-management.service.test.js +85 -0
- package/dist-server/server/modules/projects/tests/project-management.service.test.js.map +1 -0
- package/dist-server/server/modules/projects/tests/project-star.service.test.js +95 -0
- package/dist-server/server/modules/projects/tests/project-star.service.test.js.map +1 -0
- package/dist-server/server/modules/projects/tests/projects-has-taskmaster.service.test.js +87 -0
- package/dist-server/server/modules/projects/tests/projects-has-taskmaster.service.test.js.map +1 -0
- package/dist-server/server/modules/providers/index.js +12 -0
- package/dist-server/server/modules/providers/index.js.map +1 -0
- package/dist-server/server/modules/providers/list/claude/claude-auth.provider.js +151 -0
- package/dist-server/server/modules/providers/list/claude/claude-auth.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/claude/claude-fork.provider.js +46 -0
- package/dist-server/server/modules/providers/list/claude/claude-fork.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/claude/claude-mcp.provider.js +103 -0
- package/dist-server/server/modules/providers/list/claude/claude-mcp.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/claude/claude-models.provider.js +278 -0
- package/dist-server/server/modules/providers/list/claude/claude-models.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/claude/claude-runtime.provider.js +1058 -0
- package/dist-server/server/modules/providers/list/claude/claude-runtime.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/claude/claude-session-synchronizer.provider.js +141 -0
- package/dist-server/server/modules/providers/list/claude/claude-session-synchronizer.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/claude/claude-sessions.provider.js +924 -0
- package/dist-server/server/modules/providers/list/claude/claude-sessions.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/claude/claude-skills.provider.js +208 -0
- package/dist-server/server/modules/providers/list/claude/claude-skills.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/claude/claude.provider.js +23 -0
- package/dist-server/server/modules/providers/list/claude/claude.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/codex/codex-app-server.client.js +204 -0
- package/dist-server/server/modules/providers/list/codex/codex-app-server.client.js.map +1 -0
- package/dist-server/server/modules/providers/list/codex/codex-auth.provider.js +84 -0
- package/dist-server/server/modules/providers/list/codex/codex-auth.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/codex/codex-fork.provider.js +32 -0
- package/dist-server/server/modules/providers/list/codex/codex-fork.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/codex/codex-mcp.provider.js +107 -0
- package/dist-server/server/modules/providers/list/codex/codex-mcp.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/codex/codex-models.provider.js +125 -0
- package/dist-server/server/modules/providers/list/codex/codex-models.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/codex/codex-runtime.provider.js +473 -0
- package/dist-server/server/modules/providers/list/codex/codex-runtime.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/codex/codex-session-synchronizer.provider.js +153 -0
- package/dist-server/server/modules/providers/list/codex/codex-session-synchronizer.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/codex/codex-sessions.provider.js +1955 -0
- package/dist-server/server/modules/providers/list/codex/codex-sessions.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/codex/codex-skills.provider.js +62 -0
- package/dist-server/server/modules/providers/list/codex/codex-skills.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/codex/codex.provider.js +23 -0
- package/dist-server/server/modules/providers/list/codex/codex.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/cursor/cursor-auth.provider.js +118 -0
- package/dist-server/server/modules/providers/list/cursor/cursor-auth.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/cursor/cursor-mcp.provider.js +80 -0
- package/dist-server/server/modules/providers/list/cursor/cursor-mcp.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/cursor/cursor-models.provider.js +100 -0
- package/dist-server/server/modules/providers/list/cursor/cursor-models.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/cursor/cursor-runtime.provider.js +305 -0
- package/dist-server/server/modules/providers/list/cursor/cursor-runtime.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/cursor/cursor-session-synchronizer.provider.js +111 -0
- package/dist-server/server/modules/providers/list/cursor/cursor-session-synchronizer.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/cursor/cursor-sessions.provider.js +566 -0
- package/dist-server/server/modules/providers/list/cursor/cursor-sessions.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/cursor/cursor-skills.provider.js +35 -0
- package/dist-server/server/modules/providers/list/cursor/cursor-skills.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/cursor/cursor.provider.js +21 -0
- package/dist-server/server/modules/providers/list/cursor/cursor.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/mistral/mistral-auth.provider.js +147 -0
- package/dist-server/server/modules/providers/list/mistral/mistral-auth.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/mistral/mistral-mcp.provider.js +15 -0
- package/dist-server/server/modules/providers/list/mistral/mistral-mcp.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/mistral/mistral-models.provider.js +69 -0
- package/dist-server/server/modules/providers/list/mistral/mistral-models.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/mistral/mistral-runtime.provider.js +326 -0
- package/dist-server/server/modules/providers/list/mistral/mistral-runtime.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/mistral/mistral-session-synchronizer.provider.js +12 -0
- package/dist-server/server/modules/providers/list/mistral/mistral-session-synchronizer.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/mistral/mistral-sessions.provider.js +180 -0
- package/dist-server/server/modules/providers/list/mistral/mistral-sessions.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/mistral/mistral-skills.provider.js +15 -0
- package/dist-server/server/modules/providers/list/mistral/mistral-skills.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/mistral/mistral.provider.js +25 -0
- package/dist-server/server/modules/providers/list/mistral/mistral.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/opencode/opencode-auth.provider.js +91 -0
- package/dist-server/server/modules/providers/list/opencode/opencode-auth.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/opencode/opencode-mcp.provider.js +181 -0
- package/dist-server/server/modules/providers/list/opencode/opencode-mcp.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/opencode/opencode-models.provider.js +429 -0
- package/dist-server/server/modules/providers/list/opencode/opencode-models.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/opencode/opencode-runtime.provider.js +368 -0
- package/dist-server/server/modules/providers/list/opencode/opencode-runtime.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/opencode/opencode-runtime.provider.test.js +225 -0
- package/dist-server/server/modules/providers/list/opencode/opencode-runtime.provider.test.js.map +1 -0
- package/dist-server/server/modules/providers/list/opencode/opencode-session-synchronizer.provider.js +136 -0
- package/dist-server/server/modules/providers/list/opencode/opencode-session-synchronizer.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/opencode/opencode-sessions.provider.js +404 -0
- package/dist-server/server/modules/providers/list/opencode/opencode-sessions.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/opencode/opencode-skills.provider.js +62 -0
- package/dist-server/server/modules/providers/list/opencode/opencode-skills.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/opencode/opencode.provider.js +21 -0
- package/dist-server/server/modules/providers/list/opencode/opencode.provider.js.map +1 -0
- package/dist-server/server/modules/providers/provider.registry.js +33 -0
- package/dist-server/server/modules/providers/provider.registry.js.map +1 -0
- package/dist-server/server/modules/providers/provider.routes.js +676 -0
- package/dist-server/server/modules/providers/provider.routes.js.map +1 -0
- package/dist-server/server/modules/providers/services/mcp.service.js +84 -0
- package/dist-server/server/modules/providers/services/mcp.service.js.map +1 -0
- package/dist-server/server/modules/providers/services/provider-auth.service.js +25 -0
- package/dist-server/server/modules/providers/services/provider-auth.service.js.map +1 -0
- package/dist-server/server/modules/providers/services/provider-capabilities.service.js +94 -0
- package/dist-server/server/modules/providers/services/provider-capabilities.service.js.map +1 -0
- package/dist-server/server/modules/providers/services/provider-models.service.js +289 -0
- package/dist-server/server/modules/providers/services/provider-models.service.js.map +1 -0
- package/dist-server/server/modules/providers/services/provider-runtime.service.js +66 -0
- package/dist-server/server/modules/providers/services/provider-runtime.service.js.map +1 -0
- package/dist-server/server/modules/providers/services/provider-token-usage.service.js +372 -0
- package/dist-server/server/modules/providers/services/provider-token-usage.service.js.map +1 -0
- package/dist-server/server/modules/providers/services/session-conversations-search.service.js +974 -0
- package/dist-server/server/modules/providers/services/session-conversations-search.service.js.map +1 -0
- package/dist-server/server/modules/providers/services/session-history-cache.service.js +87 -0
- package/dist-server/server/modules/providers/services/session-history-cache.service.js.map +1 -0
- package/dist-server/server/modules/providers/services/session-synchronizer.service.js +130 -0
- package/dist-server/server/modules/providers/services/session-synchronizer.service.js.map +1 -0
- package/dist-server/server/modules/providers/services/sessions-watcher.service.js +214 -0
- package/dist-server/server/modules/providers/services/sessions-watcher.service.js.map +1 -0
- package/dist-server/server/modules/providers/services/sessions.service.js +519 -0
- package/dist-server/server/modules/providers/services/sessions.service.js.map +1 -0
- package/dist-server/server/modules/providers/services/skills.service.js +22 -0
- package/dist-server/server/modules/providers/services/skills.service.js.map +1 -0
- package/dist-server/server/modules/providers/shared/base/abstract.provider.js +13 -0
- package/dist-server/server/modules/providers/shared/base/abstract.provider.js.map +1 -0
- package/dist-server/server/modules/providers/shared/mcp/mcp.provider.js +102 -0
- package/dist-server/server/modules/providers/shared/mcp/mcp.provider.js.map +1 -0
- package/dist-server/server/modules/providers/shared/skills/skills.provider.js +207 -0
- package/dist-server/server/modules/providers/shared/skills/skills.provider.js.map +1 -0
- package/dist-server/server/modules/providers/tests/claude-auth.test.js +174 -0
- package/dist-server/server/modules/providers/tests/claude-auth.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/claude-models.test.js +39 -0
- package/dist-server/server/modules/providers/tests/claude-models.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/claude-sessions.test.js +470 -0
- package/dist-server/server/modules/providers/tests/claude-sessions.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/claude-subagent-echo.test.js +16 -0
- package/dist-server/server/modules/providers/tests/claude-subagent-echo.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/claude-token-budget.test.js +85 -0
- package/dist-server/server/modules/providers/tests/claude-token-budget.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/codex-message-editing.test.js +338 -0
- package/dist-server/server/modules/providers/tests/codex-message-editing.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/codex-runtime.test.js +51 -0
- package/dist-server/server/modules/providers/tests/codex-runtime.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/codex-session-fork.test.js +54 -0
- package/dist-server/server/modules/providers/tests/codex-session-fork.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/codex-sessions.test.js +491 -0
- package/dist-server/server/modules/providers/tests/codex-sessions.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/mcp.test.js +291 -0
- package/dist-server/server/modules/providers/tests/mcp.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/opencode-models.test.js +132 -0
- package/dist-server/server/modules/providers/tests/opencode-models.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/opencode-sessions.test.js +424 -0
- package/dist-server/server/modules/providers/tests/opencode-sessions.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/provider-attachment-history.test.js +205 -0
- package/dist-server/server/modules/providers/tests/provider-attachment-history.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/provider-models.service.test.js +268 -0
- package/dist-server/server/modules/providers/tests/provider-models.service.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/provider-runtime.service.test.js +126 -0
- package/dist-server/server/modules/providers/tests/provider-runtime.service.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/provider-token-usage.service.test.js +329 -0
- package/dist-server/server/modules/providers/tests/provider-token-usage.service.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/provider.routes.test.js +161 -0
- package/dist-server/server/modules/providers/tests/provider.routes.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/session-fork.test.js +113 -0
- package/dist-server/server/modules/providers/tests/session-fork.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/session-history-cache.service.test.js +120 -0
- package/dist-server/server/modules/providers/tests/session-history-cache.service.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/session-orphan-prune.test.js +90 -0
- package/dist-server/server/modules/providers/tests/session-orphan-prune.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/session-synchronizer-coalescing.test.js +122 -0
- package/dist-server/server/modules/providers/tests/session-synchronizer-coalescing.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/sessions-details.test.js +62 -0
- package/dist-server/server/modules/providers/tests/sessions-details.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/sessions.service.test.js +131 -0
- package/dist-server/server/modules/providers/tests/sessions.service.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/skills.test.js +410 -0
- package/dist-server/server/modules/providers/tests/skills.test.js.map +1 -0
- package/dist-server/server/modules/scheduled-messages/index.js +5 -0
- package/dist-server/server/modules/scheduled-messages/index.js.map +1 -0
- package/dist-server/server/modules/scheduled-messages/scheduled-messages.routes.js +47 -0
- package/dist-server/server/modules/scheduled-messages/scheduled-messages.routes.js.map +1 -0
- package/dist-server/server/modules/scheduled-messages/services/scheduled-message-dispatcher.service.js +163 -0
- package/dist-server/server/modules/scheduled-messages/services/scheduled-message-dispatcher.service.js.map +1 -0
- package/dist-server/server/modules/scheduled-messages/services/scheduled-messages.service.js +95 -0
- package/dist-server/server/modules/scheduled-messages/services/scheduled-messages.service.js.map +1 -0
- package/dist-server/server/modules/scheduled-messages/tests/scheduled-messages.test.js +255 -0
- package/dist-server/server/modules/scheduled-messages/tests/scheduled-messages.test.js.map +1 -0
- package/dist-server/server/modules/settings/index.js +3 -0
- package/dist-server/server/modules/settings/index.js.map +1 -0
- package/dist-server/server/modules/settings/settings.module.js +35 -0
- package/dist-server/server/modules/settings/settings.module.js.map +1 -0
- package/dist-server/server/modules/settings/settings.routes.js +34 -0
- package/dist-server/server/modules/settings/settings.routes.js.map +1 -0
- package/dist-server/server/modules/settings/settings.service.js +116 -0
- package/dist-server/server/modules/settings/settings.service.js.map +1 -0
- package/dist-server/server/modules/settings/tests/settings.service.test.js +48 -0
- package/dist-server/server/modules/settings/tests/settings.service.test.js.map +1 -0
- package/dist-server/server/modules/system/index.js +3 -0
- package/dist-server/server/modules/system/index.js.map +1 -0
- package/dist-server/server/modules/system/system.module.js +44 -0
- package/dist-server/server/modules/system/system.module.js.map +1 -0
- package/dist-server/server/modules/system/system.routes.js +16 -0
- package/dist-server/server/modules/system/system.routes.js.map +1 -0
- package/dist-server/server/modules/system/system.service.js +45 -0
- package/dist-server/server/modules/system/system.service.js.map +1 -0
- package/dist-server/server/modules/system/tests/system.service.test.js +100 -0
- package/dist-server/server/modules/system/tests/system.service.test.js.map +1 -0
- package/dist-server/server/modules/taskmaster/index.js +3 -0
- package/dist-server/server/modules/taskmaster/index.js.map +1 -0
- package/dist-server/server/modules/taskmaster/taskmaster.module.js +20 -0
- package/dist-server/server/modules/taskmaster/taskmaster.module.js.map +1 -0
- package/dist-server/server/modules/taskmaster/taskmaster.routes.js +1372 -0
- package/dist-server/server/modules/taskmaster/taskmaster.routes.js.map +1 -0
- package/dist-server/server/modules/taskmaster/taskmaster.service.js +107 -0
- package/dist-server/server/modules/taskmaster/taskmaster.service.js.map +1 -0
- package/dist-server/server/modules/taskmaster/tests/taskmaster.routes.test.js +180 -0
- package/dist-server/server/modules/taskmaster/tests/taskmaster.routes.test.js.map +1 -0
- package/dist-server/server/modules/taskmaster/tests/taskmaster.service.test.js +85 -0
- package/dist-server/server/modules/taskmaster/tests/taskmaster.service.test.js.map +1 -0
- package/dist-server/server/modules/user/index.js +3 -0
- package/dist-server/server/modules/user/index.js.map +1 -0
- package/dist-server/server/modules/user/tests/user.service.test.js +123 -0
- package/dist-server/server/modules/user/tests/user.service.test.js.map +1 -0
- package/dist-server/server/modules/user/user.module.js +56 -0
- package/dist-server/server/modules/user/user.module.js.map +1 -0
- package/dist-server/server/modules/user/user.routes.js +88 -0
- package/dist-server/server/modules/user/user.routes.js.map +1 -0
- package/dist-server/server/modules/user/user.service.js +134 -0
- package/dist-server/server/modules/user/user.service.js.map +1 -0
- package/dist-server/server/modules/voice/index.js +3 -0
- package/dist-server/server/modules/voice/index.js.map +1 -0
- package/dist-server/server/modules/voice/tests/voice.service.test.js +87 -0
- package/dist-server/server/modules/voice/tests/voice.service.test.js.map +1 -0
- package/dist-server/server/modules/voice/voice.module.js +44 -0
- package/dist-server/server/modules/voice/voice.module.js.map +1 -0
- package/dist-server/server/modules/voice/voice.routes.js +87 -0
- package/dist-server/server/modules/voice/voice.routes.js.map +1 -0
- package/dist-server/server/modules/voice/voice.service.js +148 -0
- package/dist-server/server/modules/voice/voice.service.js.map +1 -0
- package/dist-server/server/modules/websocket/index.js +11 -0
- package/dist-server/server/modules/websocket/index.js.map +1 -0
- package/dist-server/server/modules/websocket/services/chat-run-registry.service.js +232 -0
- package/dist-server/server/modules/websocket/services/chat-run-registry.service.js.map +1 -0
- package/dist-server/server/modules/websocket/services/chat-session-writer.service.js +135 -0
- package/dist-server/server/modules/websocket/services/chat-session-writer.service.js.map +1 -0
- package/dist-server/server/modules/websocket/services/chat-websocket.service.js +467 -0
- package/dist-server/server/modules/websocket/services/chat-websocket.service.js.map +1 -0
- package/dist-server/server/modules/websocket/services/plugin-websocket-proxy.service.js +52 -0
- package/dist-server/server/modules/websocket/services/plugin-websocket-proxy.service.js.map +1 -0
- package/dist-server/server/modules/websocket/services/session-upsert-broadcast.service.js +94 -0
- package/dist-server/server/modules/websocket/services/session-upsert-broadcast.service.js.map +1 -0
- package/dist-server/server/modules/websocket/services/shell-websocket.service.js +472 -0
- package/dist-server/server/modules/websocket/services/shell-websocket.service.js.map +1 -0
- package/dist-server/server/modules/websocket/services/websocket-auth.service.js +36 -0
- package/dist-server/server/modules/websocket/services/websocket-auth.service.js.map +1 -0
- package/dist-server/server/modules/websocket/services/websocket-server.service.js +90 -0
- package/dist-server/server/modules/websocket/services/websocket-server.service.js.map +1 -0
- package/dist-server/server/modules/websocket/services/websocket-state.service.js +14 -0
- package/dist-server/server/modules/websocket/services/websocket-state.service.js.map +1 -0
- package/dist-server/server/modules/websocket/services/websocket-writer.service.js +32 -0
- package/dist-server/server/modules/websocket/services/websocket-writer.service.js.map +1 -0
- package/dist-server/server/modules/websocket/tests/chat-attachment-filter.test.js +40 -0
- package/dist-server/server/modules/websocket/tests/chat-attachment-filter.test.js.map +1 -0
- package/dist-server/server/modules/websocket/tests/chat-edit-send.test.js +263 -0
- package/dist-server/server/modules/websocket/tests/chat-edit-send.test.js.map +1 -0
- package/dist-server/server/modules/websocket/tests/chat-run-registry.test.js +275 -0
- package/dist-server/server/modules/websocket/tests/chat-run-registry.test.js.map +1 -0
- package/dist-server/server/modules/websocket/tests/session-upsert-broadcast.test.js +106 -0
- package/dist-server/server/modules/websocket/tests/session-upsert-broadcast.test.js.map +1 -0
- package/dist-server/server/modules/websocket/tests/shell-websocket.service.test.js +177 -0
- package/dist-server/server/modules/websocket/tests/shell-websocket.service.test.js.map +1 -0
- package/dist-server/server/modules/websocket/tests/websocket-heartbeat.service.test.js +61 -0
- package/dist-server/server/modules/websocket/tests/websocket-heartbeat.service.test.js.map +1 -0
- package/dist-server/server/modules/worktrees/index.js +3 -0
- package/dist-server/server/modules/worktrees/index.js.map +1 -0
- package/dist-server/server/modules/worktrees/services/worktree-create-and-open.service.js +37 -0
- package/dist-server/server/modules/worktrees/services/worktree-create-and-open.service.js.map +1 -0
- package/dist-server/server/modules/worktrees/services/worktree-create.service.js +67 -0
- package/dist-server/server/modules/worktrees/services/worktree-create.service.js.map +1 -0
- package/dist-server/server/modules/worktrees/services/worktree-git.service.js +172 -0
- package/dist-server/server/modules/worktrees/services/worktree-git.service.js.map +1 -0
- package/dist-server/server/modules/worktrees/services/worktree-list.service.js +91 -0
- package/dist-server/server/modules/worktrees/services/worktree-list.service.js.map +1 -0
- package/dist-server/server/modules/worktrees/services/worktree-merge.service.js +118 -0
- package/dist-server/server/modules/worktrees/services/worktree-merge.service.js.map +1 -0
- package/dist-server/server/modules/worktrees/services/worktree-open.service.js +58 -0
- package/dist-server/server/modules/worktrees/services/worktree-open.service.js.map +1 -0
- package/dist-server/server/modules/worktrees/services/worktree-remove.service.js +65 -0
- package/dist-server/server/modules/worktrees/services/worktree-remove.service.js.map +1 -0
- package/dist-server/server/modules/worktrees/tests/worktree-create-and-open.service.test.js +58 -0
- package/dist-server/server/modules/worktrees/tests/worktree-create-and-open.service.test.js.map +1 -0
- package/dist-server/server/modules/worktrees/tests/worktree-create.service.test.js +85 -0
- package/dist-server/server/modules/worktrees/tests/worktree-create.service.test.js.map +1 -0
- package/dist-server/server/modules/worktrees/tests/worktree-git.service.test.js +58 -0
- package/dist-server/server/modules/worktrees/tests/worktree-git.service.test.js.map +1 -0
- package/dist-server/server/modules/worktrees/tests/worktree-list.service.test.js +34 -0
- package/dist-server/server/modules/worktrees/tests/worktree-list.service.test.js.map +1 -0
- package/dist-server/server/modules/worktrees/tests/worktree-merge.service.test.js +137 -0
- package/dist-server/server/modules/worktrees/tests/worktree-merge.service.test.js.map +1 -0
- package/dist-server/server/modules/worktrees/tests/worktree-open.service.test.js +99 -0
- package/dist-server/server/modules/worktrees/tests/worktree-open.service.test.js.map +1 -0
- package/dist-server/server/modules/worktrees/tests/worktree-remove.service.test.js +157 -0
- package/dist-server/server/modules/worktrees/tests/worktree-remove.service.test.js.map +1 -0
- package/dist-server/server/modules/worktrees/tests/worktrees.routes.test.js +167 -0
- package/dist-server/server/modules/worktrees/tests/worktrees.routes.test.js.map +1 -0
- package/dist-server/server/modules/worktrees/worktrees.module.js +97 -0
- package/dist-server/server/modules/worktrees/worktrees.module.js.map +1 -0
- package/dist-server/server/modules/worktrees/worktrees.routes.js +84 -0
- package/dist-server/server/modules/worktrees/worktrees.routes.js.map +1 -0
- package/dist-server/server/piecemaker/anonymizer/lifecycle.js +20 -0
- package/dist-server/server/piecemaker/anonymizer/lifecycle.js.map +1 -0
- package/dist-server/server/piecemaker/harness/chat-harness.js +157 -0
- package/dist-server/server/piecemaker/harness/chat-harness.js.map +1 -0
- package/dist-server/server/piecemaker/harness/citation-instructions.js +17 -0
- package/dist-server/server/piecemaker/harness/citation-instructions.js.map +1 -0
- package/dist-server/server/piecemaker/harness/citation-store.js +72 -0
- package/dist-server/server/piecemaker/harness/citation-store.js.map +1 -0
- package/dist-server/server/piecemaker/harness/citation-turn.js +211 -0
- package/dist-server/server/piecemaker/harness/citation-turn.js.map +1 -0
- package/dist-server/server/piecemaker/harness/citations.routes.js +16 -0
- package/dist-server/server/piecemaker/harness/citations.routes.js.map +1 -0
- package/dist-server/server/piecemaker/harness/source-passages.js +19 -0
- package/dist-server/server/piecemaker/harness/source-passages.js.map +1 -0
- package/dist-server/server/piecemaker/index.js +49 -0
- package/dist-server/server/piecemaker/index.js.map +1 -0
- package/dist-server/server/piecemaker/knowledge/index.js +20 -0
- package/dist-server/server/piecemaker/knowledge/index.js.map +1 -0
- package/dist-server/server/piecemaker/knowledge/pipeline.js +162 -0
- package/dist-server/server/piecemaker/knowledge/pipeline.js.map +1 -0
- package/dist-server/server/piecemaker/knowledge/routes.js +26 -0
- package/dist-server/server/piecemaker/knowledge/routes.js.map +1 -0
- package/dist-server/server/piecemaker/knowledge/service.js +78 -0
- package/dist-server/server/piecemaker/knowledge/service.js.map +1 -0
- package/dist-server/server/piecemaker/library/index.js +66 -0
- package/dist-server/server/piecemaker/library/index.js.map +1 -0
- package/dist-server/server/piecemaker/library/marketplace.js +258 -0
- package/dist-server/server/piecemaker/library/marketplace.js.map +1 -0
- package/dist-server/server/piecemaker/library/migrate-cli.js +13 -0
- package/dist-server/server/piecemaker/library/migrate-cli.js.map +1 -0
- package/dist-server/server/piecemaker/library/migrate.js +53 -0
- package/dist-server/server/piecemaker/library/migrate.js.map +1 -0
- package/dist-server/server/piecemaker/library/provider-skills.js +40 -0
- package/dist-server/server/piecemaker/library/provider-skills.js.map +1 -0
- package/dist-server/server/piecemaker/library/routes.js +83 -0
- package/dist-server/server/piecemaker/library/routes.js.map +1 -0
- package/dist-server/server/piecemaker/library/runtime.js +34 -0
- package/dist-server/server/piecemaker/library/runtime.js.map +1 -0
- package/dist-server/server/piecemaker/library/store.js +468 -0
- package/dist-server/server/piecemaker/library/store.js.map +1 -0
- package/dist-server/server/piecemaker/library/workspace-installation.js +70 -0
- package/dist-server/server/piecemaker/library/workspace-installation.js.map +1 -0
- package/dist-server/server/piecemaker/timesheet/index.js +9 -0
- package/dist-server/server/piecemaker/timesheet/index.js.map +1 -0
- package/dist-server/server/piecemaker/timesheet/routes.js +42 -0
- package/dist-server/server/piecemaker/timesheet/routes.js.map +1 -0
- package/dist-server/server/piecemaker/timesheet/service.js +241 -0
- package/dist-server/server/piecemaker/timesheet/service.js.map +1 -0
- package/dist-server/server/piecemaker/timesheet/store.js +126 -0
- package/dist-server/server/piecemaker/timesheet/store.js.map +1 -0
- package/dist-server/server/shared/claude-cli-path.js +120 -0
- package/dist-server/server/shared/claude-cli-path.js.map +1 -0
- package/dist-server/server/shared/frontmatter.js +16 -0
- package/dist-server/server/shared/frontmatter.js.map +1 -0
- package/dist-server/server/shared/image-attachments.js +344 -0
- package/dist-server/server/shared/image-attachments.js.map +1 -0
- package/dist-server/server/shared/index.js +3 -0
- package/dist-server/server/shared/index.js.map +1 -0
- package/dist-server/server/shared/interfaces.js +2 -0
- package/dist-server/server/shared/interfaces.js.map +1 -0
- package/dist-server/server/shared/message-unification.js +376 -0
- package/dist-server/server/shared/message-unification.js.map +1 -0
- package/dist-server/server/shared/tests/application-data-root.test.js +33 -0
- package/dist-server/server/shared/tests/application-data-root.test.js.map +1 -0
- package/dist-server/server/shared/tests/claude-cli-path.test.js +89 -0
- package/dist-server/server/shared/tests/claude-cli-path.test.js.map +1 -0
- package/dist-server/server/shared/tests/image-attachments.test.js +262 -0
- package/dist-server/server/shared/tests/image-attachments.test.js.map +1 -0
- package/dist-server/server/shared/tests/message-unification.test.js +174 -0
- package/dist-server/server/shared/tests/message-unification.test.js.map +1 -0
- package/dist-server/server/shared/tests/slice-tail-page.test.js +35 -0
- package/dist-server/server/shared/tests/slice-tail-page.test.js.map +1 -0
- package/dist-server/server/shared/types.js +2 -0
- package/dist-server/server/shared/types.js.map +1 -0
- package/dist-server/server/shared/utils.js +1010 -0
- package/dist-server/server/shared/utils.js.map +1 -0
- package/dist-server/shared/networkHosts.js +20 -0
- package/dist-server/shared/networkHosts.js.map +1 -0
- package/dist-server/shared/product-config.mjs +79 -0
- package/dist-server/shared/product-config.mjs.map +1 -0
- package/package.json +271 -0
- package/product.config.json +17 -0
- package/public/api-docs.html +901 -0
- package/scripts/fix-node-pty.js +67 -0
- package/scripts/piecemaker/cli/install-command.mjs +130 -0
- package/scripts/piecemaker/cli/lib/composants.mjs +67 -0
- package/scripts/piecemaker/cli/lib/config.mjs +32 -0
- package/scripts/piecemaker/cli/lib/exec.mjs +79 -0
- package/scripts/piecemaker/cli/lib/node-runtime.mjs +76 -0
- package/scripts/piecemaker/cli/lib/plugins.mjs +35 -0
- package/scripts/piecemaker/cli/lib/ports.mjs +96 -0
- package/scripts/piecemaker/cli/lib/pwa.mjs +323 -0
- package/scripts/piecemaker/cli/lib/repos.mjs +140 -0
- package/scripts/piecemaker/cli/lib/services.mjs +71 -0
- package/scripts/piecemaker/cli/lib/ui.mjs +41 -0
- package/scripts/piecemaker/cli/piecemaker.mjs +161 -0
- package/scripts/piecemaker/cli/piecemaker.ps1 +63 -0
- package/scripts/piecemaker/cli/piecemaker.sh +60 -0
- package/scripts/piecemaker/generate-i18n-overrides.mjs +219 -0
- package/scripts/piecemaker/hooks/proxy-guard.mjs +286 -0
- package/scripts/promote-dist-server.mjs +50 -0
- package/scripts/release/build-server-bundle.js +178 -0
- package/scripts/release/package-piecemaker.sh +73 -0
- package/scripts/release/prepare-desktop-app.js +168 -0
- package/server/index.ts +410 -0
- package/server/load-env.ts +48 -0
- package/server/modules/agent/agent.module.ts +52 -0
- package/server/modules/agent/agent.routes.ts +1287 -0
- package/server/modules/agent/index.ts +2 -0
- package/server/modules/agent/tests/agent.routes.test.ts +237 -0
- package/server/modules/assets/assets.routes.ts +150 -0
- package/server/modules/assets/index.ts +3 -0
- package/server/modules/assets/services/image-assets.service.ts +127 -0
- package/server/modules/assets/tests/image-assets.service.test.ts +74 -0
- package/server/modules/auth/auth.middleware.ts +163 -0
- package/server/modules/auth/auth.module.ts +38 -0
- package/server/modules/auth/auth.routes.ts +57 -0
- package/server/modules/auth/auth.service.ts +155 -0
- package/server/modules/auth/index.ts +9 -0
- package/server/modules/auth/tests/auth.service.test.ts +95 -0
- package/server/modules/browser-use/browser-use-mcp.routes.ts +120 -0
- package/server/modules/browser-use/browser-use-mcp.ts +386 -0
- package/server/modules/browser-use/browser-use-runtime.ts +10 -0
- package/server/modules/browser-use/browser-use.routes.ts +159 -0
- package/server/modules/browser-use/browser-use.service.ts +835 -0
- package/server/modules/browser-use/index.ts +11 -0
- package/server/modules/browser-use/tests/browser-use.service.test.ts +10 -0
- package/server/modules/cli/cli.module.ts +110 -0
- package/server/modules/cli/cli.service.ts +266 -0
- package/server/modules/cli/cli.ts +19 -0
- package/server/modules/cli/index.ts +2 -0
- package/server/modules/cli/pwa-launcher.ts +131 -0
- package/server/modules/cli/sandbox.service.ts +413 -0
- package/server/modules/cli/tests/cli-environment-bootstrap.test.ts +186 -0
- package/server/modules/cli/tests/cli.service.test.ts +107 -0
- package/server/modules/cli/tests/sandbox.service.test.ts +61 -0
- package/server/modules/commands/commands.module.ts +22 -0
- package/server/modules/commands/commands.routes.ts +605 -0
- package/server/modules/commands/index.ts +2 -0
- package/server/modules/commands/tests/commands.test.ts +114 -0
- package/server/modules/database/connection.ts +144 -0
- package/server/modules/database/index.ts +27 -0
- package/server/modules/database/init-db.ts +17 -0
- package/server/modules/database/migrations.ts +552 -0
- package/server/modules/database/repositories/api-keys.ts +119 -0
- package/server/modules/database/repositories/app-config.ts +53 -0
- package/server/modules/database/repositories/credentials.ts +106 -0
- package/server/modules/database/repositories/github-tokens.ts +100 -0
- package/server/modules/database/repositories/notification-channel-endpoints.ts +153 -0
- package/server/modules/database/repositories/notification-preferences.ts +117 -0
- package/server/modules/database/repositories/projects.db.ts +196 -0
- package/server/modules/database/repositories/provider-models.ts +168 -0
- package/server/modules/database/repositories/push-subscriptions.ts +80 -0
- package/server/modules/database/repositories/scan-state.db.ts +42 -0
- package/server/modules/database/repositories/scheduled-messages.db.ts +127 -0
- package/server/modules/database/repositories/session-drafts.db.ts +171 -0
- package/server/modules/database/repositories/sessions.db.ts +717 -0
- package/server/modules/database/repositories/user-preferences.db.ts +80 -0
- package/server/modules/database/repositories/users.ts +140 -0
- package/server/modules/database/repositories/vapid-keys.ts +57 -0
- package/server/modules/database/schema.ts +306 -0
- package/server/modules/database/tests/projects.db.integration.test.ts +72 -0
- package/server/modules/database/tests/provider-models.db.integration.test.ts +125 -0
- package/server/modules/database/tests/sessions-provider-mapping.test.ts +109 -0
- package/server/modules/database/tests/sessions.db.integration.test.ts +168 -0
- package/server/modules/database/tests/user-preferences.db.integration.test.ts +135 -0
- package/server/modules/file-tree/file-tree.module.ts +116 -0
- package/server/modules/file-tree/file-tree.routes.ts +258 -0
- package/server/modules/file-tree/file-tree.service.ts +675 -0
- package/server/modules/file-tree/index.ts +2 -0
- package/server/modules/file-tree/tests/file-tree.routes.test.ts +157 -0
- package/server/modules/file-tree/tests/file-tree.service.test.ts +371 -0
- package/server/modules/git/git-branch.service.ts +43 -0
- package/server/modules/git/git-parsing.service.ts +66 -0
- package/server/modules/git/git.module.ts +22 -0
- package/server/modules/git/git.routes.ts +1600 -0
- package/server/modules/git/index.ts +2 -0
- package/server/modules/git/tests/git-branch.service.test.ts +60 -0
- package/server/modules/git/tests/git-init.routes.test.ts +135 -0
- package/server/modules/git/tests/git.test.ts +106 -0
- package/server/modules/notifications/index.ts +24 -0
- package/server/modules/notifications/notifications.routes.ts +127 -0
- package/server/modules/notifications/services/desktop-notification-clients.service.ts +124 -0
- package/server/modules/notifications/services/notification-orchestrator.service.js +310 -0
- package/server/modules/notifications/tests/notification-orchestrator.integration.test.ts +55 -0
- package/server/modules/notifications/vapid-keys.service.ts +38 -0
- package/server/modules/notifications/websocket/desktop-notifications-websocket.service.ts +109 -0
- package/server/modules/plugins/index.ts +9 -0
- package/server/modules/plugins/plugin-process.service.ts +217 -0
- package/server/modules/plugins/plugin-registry.service.ts +461 -0
- package/server/modules/plugins/plugins.module.ts +33 -0
- package/server/modules/plugins/plugins.routes.ts +66 -0
- package/server/modules/plugins/plugins.service.ts +147 -0
- package/server/modules/plugins/tests/plugins.service.test.ts +32 -0
- package/server/modules/projects/index.ts +11 -0
- package/server/modules/projects/projects.routes.ts +273 -0
- package/server/modules/projects/services/project-clone.service.ts +323 -0
- package/server/modules/projects/services/project-delete.service.ts +102 -0
- package/server/modules/projects/services/project-management.service.ts +144 -0
- package/server/modules/projects/services/project-star.service.ts +78 -0
- package/server/modules/projects/services/projects-has-taskmaster.service.ts +248 -0
- package/server/modules/projects/services/projects-with-sessions-fetch.service.ts +314 -0
- package/server/modules/projects/tests/project-clone.service.test.ts +183 -0
- package/server/modules/projects/tests/project-management.service.test.ts +117 -0
- package/server/modules/projects/tests/project-star.service.test.ts +123 -0
- package/server/modules/projects/tests/projects-has-taskmaster.service.test.ts +105 -0
- package/server/modules/providers/README.md +380 -0
- package/server/modules/providers/index.ts +14 -0
- package/server/modules/providers/list/claude/claude-auth.provider.ts +180 -0
- package/server/modules/providers/list/claude/claude-fork.provider.ts +57 -0
- package/server/modules/providers/list/claude/claude-mcp.provider.ts +135 -0
- package/server/modules/providers/list/claude/claude-models.provider.ts +326 -0
- package/server/modules/providers/list/claude/claude-runtime.provider.js +1217 -0
- package/server/modules/providers/list/claude/claude-session-synchronizer.provider.ts +203 -0
- package/server/modules/providers/list/claude/claude-sessions.provider.ts +1108 -0
- package/server/modules/providers/list/claude/claude-skills.provider.ts +268 -0
- package/server/modules/providers/list/claude/claude.provider.ts +33 -0
- package/server/modules/providers/list/codex/codex-app-server.client.ts +243 -0
- package/server/modules/providers/list/codex/codex-auth.provider.ts +100 -0
- package/server/modules/providers/list/codex/codex-fork.provider.ts +40 -0
- package/server/modules/providers/list/codex/codex-mcp.provider.ts +135 -0
- package/server/modules/providers/list/codex/codex-models.provider.ts +139 -0
- package/server/modules/providers/list/codex/codex-runtime.provider.ts +560 -0
- package/server/modules/providers/list/codex/codex-session-synchronizer.provider.ts +212 -0
- package/server/modules/providers/list/codex/codex-sessions.provider.ts +2267 -0
- package/server/modules/providers/list/codex/codex-skills.provider.ts +73 -0
- package/server/modules/providers/list/codex/codex.provider.ts +33 -0
- package/server/modules/providers/list/cursor/cursor-auth.provider.ts +143 -0
- package/server/modules/providers/list/cursor/cursor-mcp.provider.ts +108 -0
- package/server/modules/providers/list/cursor/cursor-models.provider.ts +119 -0
- package/server/modules/providers/list/cursor/cursor-runtime.provider.js +387 -0
- package/server/modules/providers/list/cursor/cursor-session-synchronizer.provider.ts +158 -0
- package/server/modules/providers/list/cursor/cursor-sessions.provider.ts +654 -0
- package/server/modules/providers/list/cursor/cursor-skills.provider.ts +39 -0
- package/server/modules/providers/list/cursor/cursor.provider.ts +30 -0
- package/server/modules/providers/list/mistral/mistral-auth.provider.ts +181 -0
- package/server/modules/providers/list/mistral/mistral-mcp.provider.ts +20 -0
- package/server/modules/providers/list/mistral/mistral-models.provider.ts +76 -0
- package/server/modules/providers/list/mistral/mistral-runtime.provider.ts +417 -0
- package/server/modules/providers/list/mistral/mistral-session-synchronizer.provider.ts +15 -0
- package/server/modules/providers/list/mistral/mistral-sessions.provider.ts +210 -0
- package/server/modules/providers/list/mistral/mistral-skills.provider.ts +20 -0
- package/server/modules/providers/list/mistral/mistral.provider.ts +35 -0
- package/server/modules/providers/list/opencode/opencode-auth.provider.ts +110 -0
- package/server/modules/providers/list/opencode/opencode-mcp.provider.ts +228 -0
- package/server/modules/providers/list/opencode/opencode-models.provider.ts +476 -0
- package/server/modules/providers/list/opencode/opencode-runtime.provider.js +434 -0
- package/server/modules/providers/list/opencode/opencode-runtime.provider.test.js +261 -0
- package/server/modules/providers/list/opencode/opencode-session-synchronizer.provider.ts +179 -0
- package/server/modules/providers/list/opencode/opencode-sessions.provider.ts +500 -0
- package/server/modules/providers/list/opencode/opencode-skills.provider.ts +78 -0
- package/server/modules/providers/list/opencode/opencode.provider.ts +30 -0
- package/server/modules/providers/provider.registry.ts +38 -0
- package/server/modules/providers/provider.routes.ts +909 -0
- package/server/modules/providers/services/mcp.service.ts +109 -0
- package/server/modules/providers/services/provider-auth.service.ts +26 -0
- package/server/modules/providers/services/provider-capabilities.service.ts +133 -0
- package/server/modules/providers/services/provider-models.service.ts +401 -0
- package/server/modules/providers/services/provider-runtime.service.ts +108 -0
- package/server/modules/providers/services/provider-token-usage.service.ts +484 -0
- package/server/modules/providers/services/session-conversations-search.service.ts +1321 -0
- package/server/modules/providers/services/session-history-cache.service.ts +139 -0
- package/server/modules/providers/services/session-synchronizer.service.ts +162 -0
- package/server/modules/providers/services/sessions-watcher.service.ts +266 -0
- package/server/modules/providers/services/sessions.service.ts +663 -0
- package/server/modules/providers/services/skills.service.ts +39 -0
- package/server/modules/providers/shared/base/abstract.provider.ts +32 -0
- package/server/modules/providers/shared/mcp/mcp.provider.ts +151 -0
- package/server/modules/providers/shared/skills/skills.provider.ts +287 -0
- package/server/modules/providers/tests/claude-auth.test.ts +208 -0
- package/server/modules/providers/tests/claude-models.test.ts +87 -0
- package/server/modules/providers/tests/claude-sessions.test.ts +573 -0
- package/server/modules/providers/tests/claude-subagent-echo.test.ts +25 -0
- package/server/modules/providers/tests/claude-token-budget.test.ts +104 -0
- package/server/modules/providers/tests/codex-message-editing.test.ts +419 -0
- package/server/modules/providers/tests/codex-runtime.test.ts +58 -0
- package/server/modules/providers/tests/codex-session-fork.test.ts +59 -0
- package/server/modules/providers/tests/codex-sessions.test.ts +553 -0
- package/server/modules/providers/tests/mcp.test.ts +349 -0
- package/server/modules/providers/tests/opencode-models.test.ts +199 -0
- package/server/modules/providers/tests/opencode-sessions.test.ts +522 -0
- package/server/modules/providers/tests/provider-attachment-history.test.ts +247 -0
- package/server/modules/providers/tests/provider-models.service.test.ts +353 -0
- package/server/modules/providers/tests/provider-runtime.service.test.ts +138 -0
- package/server/modules/providers/tests/provider-token-usage.service.test.ts +373 -0
- package/server/modules/providers/tests/provider.routes.test.ts +244 -0
- package/server/modules/providers/tests/session-fork.test.ts +173 -0
- package/server/modules/providers/tests/session-history-cache.service.test.ts +143 -0
- package/server/modules/providers/tests/session-orphan-prune.test.ts +107 -0
- package/server/modules/providers/tests/session-synchronizer-coalescing.test.ts +136 -0
- package/server/modules/providers/tests/sessions-details.test.ts +73 -0
- package/server/modules/providers/tests/sessions.service.test.ts +193 -0
- package/server/modules/providers/tests/skills.test.ts +708 -0
- package/server/modules/scheduled-messages/index.ts +8 -0
- package/server/modules/scheduled-messages/scheduled-messages.routes.ts +68 -0
- package/server/modules/scheduled-messages/services/scheduled-message-dispatcher.service.ts +203 -0
- package/server/modules/scheduled-messages/services/scheduled-messages.service.ts +121 -0
- package/server/modules/scheduled-messages/tests/scheduled-messages.test.ts +310 -0
- package/server/modules/settings/index.ts +2 -0
- package/server/modules/settings/settings.module.ts +50 -0
- package/server/modules/settings/settings.routes.ts +51 -0
- package/server/modules/settings/settings.service.ts +186 -0
- package/server/modules/settings/tests/settings.service.test.ts +54 -0
- package/server/modules/system/index.ts +2 -0
- package/server/modules/system/system.module.ts +62 -0
- package/server/modules/system/system.routes.ts +21 -0
- package/server/modules/system/system.service.ts +76 -0
- package/server/modules/system/tests/system.service.test.ts +118 -0
- package/server/modules/taskmaster/index.ts +2 -0
- package/server/modules/taskmaster/taskmaster.module.ts +24 -0
- package/server/modules/taskmaster/taskmaster.routes.ts +1472 -0
- package/server/modules/taskmaster/taskmaster.service.ts +132 -0
- package/server/modules/taskmaster/tests/taskmaster.routes.test.ts +201 -0
- package/server/modules/taskmaster/tests/taskmaster.service.test.ts +97 -0
- package/server/modules/user/index.ts +2 -0
- package/server/modules/user/tests/user.service.test.ts +151 -0
- package/server/modules/user/user.module.ts +67 -0
- package/server/modules/user/user.routes.ts +94 -0
- package/server/modules/user/user.service.ts +190 -0
- package/server/modules/voice/index.ts +2 -0
- package/server/modules/voice/tests/voice.service.test.ts +99 -0
- package/server/modules/voice/voice.module.ts +47 -0
- package/server/modules/voice/voice.routes.ts +113 -0
- package/server/modules/voice/voice.service.ts +192 -0
- package/server/modules/websocket/README.md +273 -0
- package/server/modules/websocket/index.ts +11 -0
- package/server/modules/websocket/services/chat-run-registry.service.ts +310 -0
- package/server/modules/websocket/services/chat-session-writer.service.ts +175 -0
- package/server/modules/websocket/services/chat-websocket.service.ts +654 -0
- package/server/modules/websocket/services/plugin-websocket-proxy.service.ts +65 -0
- package/server/modules/websocket/services/session-upsert-broadcast.service.ts +108 -0
- package/server/modules/websocket/services/shell-websocket.service.ts +628 -0
- package/server/modules/websocket/services/websocket-auth.service.ts +59 -0
- package/server/modules/websocket/services/websocket-server.service.ts +126 -0
- package/server/modules/websocket/services/websocket-state.service.ts +16 -0
- package/server/modules/websocket/services/websocket-writer.service.ts +38 -0
- package/server/modules/websocket/tests/chat-attachment-filter.test.ts +59 -0
- package/server/modules/websocket/tests/chat-edit-send.test.ts +309 -0
- package/server/modules/websocket/tests/chat-run-registry.test.ts +313 -0
- package/server/modules/websocket/tests/session-upsert-broadcast.test.ts +138 -0
- package/server/modules/websocket/tests/shell-websocket.service.test.ts +227 -0
- package/server/modules/websocket/tests/websocket-heartbeat.service.test.ts +78 -0
- package/server/modules/worktrees/index.ts +2 -0
- package/server/modules/worktrees/services/worktree-create-and-open.service.ts +53 -0
- package/server/modules/worktrees/services/worktree-create.service.ts +104 -0
- package/server/modules/worktrees/services/worktree-git.service.ts +207 -0
- package/server/modules/worktrees/services/worktree-list.service.ts +143 -0
- package/server/modules/worktrees/services/worktree-merge.service.ts +157 -0
- package/server/modules/worktrees/services/worktree-open.service.ts +85 -0
- package/server/modules/worktrees/services/worktree-remove.service.ts +88 -0
- package/server/modules/worktrees/tests/worktree-create-and-open.service.test.ts +68 -0
- package/server/modules/worktrees/tests/worktree-create.service.test.ts +142 -0
- package/server/modules/worktrees/tests/worktree-git.service.test.ts +84 -0
- package/server/modules/worktrees/tests/worktree-list.service.test.ts +45 -0
- package/server/modules/worktrees/tests/worktree-merge.service.test.ts +213 -0
- package/server/modules/worktrees/tests/worktree-open.service.test.ts +122 -0
- package/server/modules/worktrees/tests/worktree-remove.service.test.ts +227 -0
- package/server/modules/worktrees/tests/worktrees.routes.test.ts +199 -0
- package/server/modules/worktrees/worktrees.module.ts +113 -0
- package/server/modules/worktrees/worktrees.routes.ts +116 -0
- package/server/piecemaker/activation/claude-mcp.cjs +115 -0
- package/server/piecemaker/activation/claude-plugins.cjs +94 -0
- package/server/piecemaker/activation/codex-mcp.cjs +102 -0
- package/server/piecemaker/activation/errors.cjs +15 -0
- package/server/piecemaker/activation/index.cjs +5 -0
- package/server/piecemaker/activation/library.cjs +284 -0
- package/server/piecemaker/activation/markdown.cjs +108 -0
- package/server/piecemaker/activation/paths.cjs +104 -0
- package/server/piecemaker/activation/routes.cjs +101 -0
- package/server/piecemaker/activation/snapshot.cjs +30 -0
- package/server/piecemaker/anonymizer/client-config.cjs +228 -0
- package/server/piecemaker/anonymizer/dictionary.cjs +171 -0
- package/server/piecemaker/anonymizer/lifecycle.ts +22 -0
- package/server/piecemaker/anonymizer/providers.cjs +241 -0
- package/server/piecemaker/anonymizer/proxy.cjs +365 -0
- package/server/piecemaker/anonymizer/rewrite.cjs +343 -0
- package/server/piecemaker/anonymizer/routes.cjs +43 -0
- package/server/piecemaker/anonymizer/service.cjs +223 -0
- package/server/piecemaker/anonymizer/sqlite-dictionary.cjs +121 -0
- package/server/piecemaker/harness/chat-harness.ts +151 -0
- package/server/piecemaker/harness/citation-instructions.ts +18 -0
- package/server/piecemaker/harness/citation-store.ts +80 -0
- package/server/piecemaker/harness/citation-turn.ts +197 -0
- package/server/piecemaker/harness/citations.routes.ts +18 -0
- package/server/piecemaker/harness/decisions.cjs +302 -0
- package/server/piecemaker/harness/flux-sse.cjs +111 -0
- package/server/piecemaker/harness/index.cjs +103 -0
- package/server/piecemaker/harness/source-passages.ts +21 -0
- package/server/piecemaker/harness/verification.cjs +159 -0
- package/server/piecemaker/index.ts +62 -0
- package/server/piecemaker/knowledge/index.ts +22 -0
- package/server/piecemaker/knowledge/pipeline.ts +173 -0
- package/server/piecemaker/knowledge/routes.ts +29 -0
- package/server/piecemaker/knowledge/service.ts +80 -0
- package/server/piecemaker/library/index.ts +54 -0
- package/server/piecemaker/library/marketplace.ts +200 -0
- package/server/piecemaker/library/migrate-cli.ts +11 -0
- package/server/piecemaker/library/migrate.ts +49 -0
- package/server/piecemaker/library/policy.cjs +9 -0
- package/server/piecemaker/library/provider-skills.ts +48 -0
- package/server/piecemaker/library/routes.ts +51 -0
- package/server/piecemaker/library/runtime.ts +39 -0
- package/server/piecemaker/library/store.ts +456 -0
- package/server/piecemaker/library/workspace-installation.ts +61 -0
- package/server/piecemaker/originals-cache.cjs +54 -0
- package/server/piecemaker/protection/bypass.cjs +73 -0
- package/server/piecemaker/protection/routes.cjs +39 -0
- package/server/piecemaker/router.cjs +107 -0
- package/server/piecemaker/timesheet/index.ts +9 -0
- package/server/piecemaker/timesheet/routes.ts +48 -0
- package/server/piecemaker/timesheet/service.ts +298 -0
- package/server/piecemaker/timesheet/store.ts +167 -0
- package/server/piecemaker/vendor/installer/assets/PieceMakerApp.swift +189 -0
- package/server/piecemaker/vendor/installer/assets/claude-hooks/piecemaker-guard-secrets.mjs +230 -0
- package/server/piecemaker/vendor/installer/assets/claude-hooks/piecemaker-secret-paths.default.json +1 -0
- package/server/piecemaker/vendor/installer/assets/piecemaker.icns +0 -0
- package/server/piecemaker/vendor/installer/assets/piecemaker.ico +0 -0
- package/server/piecemaker/vendor/installer/bin/piecemaker.mjs +1066 -0
- package/server/piecemaker/vendor/installer/lib/banner.mjs +35 -0
- package/server/piecemaker/vendor/installer/lib/codex-skills.mjs +343 -0
- package/server/piecemaker/vendor/installer/lib/commandes.mjs +13 -0
- package/server/piecemaker/vendor/installer/lib/desktop-launcher.mjs +305 -0
- package/server/piecemaker/vendor/installer/lib/legacy-legifrance.mjs +72 -0
- package/server/piecemaker/vendor/installer/lib/platform.mjs +163 -0
- package/server/piecemaker/vendor/installer/lib/prompt.mjs +138 -0
- package/server/piecemaker/vendor/installer/lib/resume-steps.mjs +174 -0
- package/server/piecemaker/vendor/installer/lib/secrets-guard.mjs +193 -0
- package/server/piecemaker/vendor/installer/lib/service.mjs +467 -0
- package/server/piecemaker/vendor/installer/lib/state.mjs +113 -0
- package/server/piecemaker/vendor/installer/lib/ui.mjs +159 -0
- package/server/piecemaker/vendor/installer/steps/00-identite.mjs +71 -0
- package/server/piecemaker/vendor/installer/steps/01-prerequis.mjs +119 -0
- package/server/piecemaker/vendor/installer/steps/02-dependances-node.mjs +127 -0
- package/server/piecemaker/vendor/installer/steps/03-python-gliner.mjs +260 -0
- package/server/piecemaker/vendor/installer/steps/04-conversion-md.mjs +147 -0
- package/server/piecemaker/vendor/installer/steps/05-certificats.mjs +171 -0
- package/server/piecemaker/vendor/installer/steps/06-hooks.mjs +266 -0
- package/server/piecemaker/vendor/installer/steps/07-legifrance.mjs +279 -0
- package/server/piecemaker/vendor/installer/steps/08-telegram.mjs +482 -0
- package/server/piecemaker/vendor/installer/steps/09-claude-assets.mjs +151 -0
- package/server/piecemaker/vendor/installer/steps/09-codex-plugin.mjs +142 -0
- package/server/piecemaker/vendor/installer/steps/10-libreoffice.mjs +130 -0
- package/server/piecemaker/vendor/installer/steps/10-pandoc.mjs +212 -0
- package/server/piecemaker/vendor/installer/steps/11-docx-cli.mjs +144 -0
- package/server/piecemaker/vendor/installer/steps/12-mcp-piecemaker.mjs +124 -0
- package/server/piecemaker/vendor/installer/steps/13-garde-secrets.mjs +136 -0
- package/server/piecemaker/vendor/installer/steps/14-mxc-sandbox.mjs +271 -0
- package/server/piecemaker/vendor/installer/steps/15-pwa-desktop.mjs +64 -0
- package/server/piecemaker/vendor/installer/templates/root-CLAUDE.md +56 -0
- package/server/piecemaker/vendor/installer/templates/workspace-CLAUDE.md +52 -0
- package/server/piecemaker/vendor/mcp/README.md +13 -0
- package/server/piecemaker/vendor/mcp/piecemaker/server.mjs +217 -0
- package/server/piecemaker/vendor/mike-defaults-fr/PROVENANCE.md +10 -0
- package/server/piecemaker/vendor/mike-defaults-fr/assistant-workflows/compare-documents/SKILL.md +51 -0
- package/server/piecemaker/vendor/mike-defaults-fr/assistant-workflows/draft-from-template/SKILL.md +27 -0
- package/server/piecemaker/vendor/mike-defaults-fr/assistant-workflows/extract-key-terms/SKILL.md +43 -0
- package/server/piecemaker/vendor/mike-defaults-fr/assistant-workflows/proofread/SKILL.md +98 -0
- package/server/piecemaker/vendor/mike-defaults-fr/catalog.json +22 -0
- package/server/piecemaker/vendor/mike-defaults-fr/tabular-review-workflows/commercial-agreement-tabular-review/SKILL.md +31 -0
- package/server/piecemaker/vendor/mike-defaults-fr/tabular-review-workflows/commercial-agreement-tabular-review/table-columns.yaml +92 -0
- package/server/piecemaker/vendor/package.json +7 -0
- package/server/piecemaker/vendor/piecemaker-plugin/README.md +115 -0
- package/server/piecemaker/vendor/piecemaker-plugin/agents/analyste-piece.md +24 -0
- package/server/piecemaker/vendor/piecemaker-plugin/agents/jurisprudence-scanner.md +50 -0
- package/server/piecemaker/vendor/piecemaker-plugin/hooks/hooks.json +84 -0
- package/server/piecemaker/vendor/piecemaker-plugin/scripts/billing-track.mjs +194 -0
- package/server/piecemaker/vendor/piecemaker-plugin/scripts/build-recherche-pdf.mjs +91 -0
- package/server/piecemaker/vendor/piecemaker-plugin/scripts/classify-ai-documents.mjs +123 -0
- package/server/piecemaker/vendor/piecemaker-plugin/scripts/commit-track.mjs +71 -0
- package/server/piecemaker/vendor/piecemaker-plugin/scripts/compile-recherche.mjs +107 -0
- package/server/piecemaker/vendor/piecemaker-plugin/scripts/lib/anonymization-state.cjs +146 -0
- package/server/piecemaker/vendor/piecemaker-plugin/scripts/lib/case-folder-structure.cjs +297 -0
- package/server/piecemaker/vendor/piecemaker-plugin/scripts/lib/case-folders.cjs +86 -0
- package/server/piecemaker/vendor/piecemaker-plugin/scripts/lib/central-mapping.cjs +0 -0
- package/server/piecemaker/vendor/piecemaker-plugin/scripts/lib/citation-sources.cjs +519 -0
- package/server/piecemaker/vendor/piecemaker-plugin/scripts/lib/citations.cjs +292 -0
- package/server/piecemaker/vendor/piecemaker-plugin/scripts/lib/commits.cjs +1683 -0
- package/server/piecemaker/vendor/piecemaker-plugin/scripts/lib/docx-text-worker.cjs +43 -0
- package/server/piecemaker/vendor/piecemaker-plugin/scripts/lib/hook-io.mjs +249 -0
- package/server/piecemaker/vendor/piecemaker-plugin/scripts/lib/institutional-terms.cjs +160 -0
- package/server/piecemaker/vendor/piecemaker-plugin/scripts/lib/legifrance-reads.cjs +85 -0
- package/server/piecemaker/vendor/piecemaker-plugin/scripts/lib/mapping.cjs +346 -0
- package/server/piecemaker/vendor/piecemaker-plugin/scripts/lib/protection.cjs +419 -0
- package/server/piecemaker/vendor/piecemaker-plugin/scripts/lib/recherche-report.cjs +177 -0
- package/server/piecemaker/vendor/piecemaker-plugin/scripts/lib/session-timing.cjs +80 -0
- package/server/piecemaker/vendor/piecemaker-plugin/scripts/lib/substitution.cjs +288 -0
- package/server/piecemaker/vendor/piecemaker-plugin/scripts/lib/verify-citations.cjs +318 -0
- package/server/piecemaker/vendor/piecemaker-plugin/scripts/protect-originals.mjs +256 -0
- package/server/piecemaker/vendor/piecemaker-plugin/scripts/session-commit-worker.mjs +260 -0
- package/server/piecemaker/vendor/piecemaker-plugin/scripts/session-commit.mjs +83 -0
- package/server/piecemaker/vendor/piecemaker-plugin/scripts/statusline.mjs +179 -0
- package/server/piecemaker/vendor/piecemaker-plugin/scripts/track-legifrance-reads.mjs +46 -0
- package/server/piecemaker/vendor/piecemaker-plugin/skills/ajout-de-fonctionnalites/SKILL.md +66 -0
- package/server/piecemaker/vendor/piecemaker-plugin/skills/conversion-md/SKILL.md +60 -0
- package/server/piecemaker/vendor/piecemaker-plugin/skills/recherche-juridique/SKILL.md +234 -0
- package/server/piecemaker/vendor/piecemaker-plugin/skills/redaction-juridique/SKILL.md +96 -0
- package/server/piecemaker/vendor/piecemaker-plugin/skills/tamponnage/SKILL.md +148 -0
- package/server/piecemaker/vendor/websocket-server/admin-routes.cjs +3116 -0
- package/server/piecemaker/vendor/websocket-server/case-folder-structure.cjs +3 -0
- package/server/piecemaker/vendor/websocket-server/case-instructions.cjs +111 -0
- package/server/piecemaker/vendor/websocket-server/case-registry.cjs +93 -0
- package/server/piecemaker/vendor/websocket-server/claude-assets.cjs +338 -0
- package/server/piecemaker/vendor/websocket-server/claude-hooks.cjs +380 -0
- package/server/piecemaker/vendor/websocket-server/document-index.cjs +665 -0
- package/server/piecemaker/vendor/websocket-server/legal-forms.cjs +89 -0
- package/server/piecemaker/vendor/websocket-server/lib/doc-generate.cjs +229 -0
- package/server/piecemaker/vendor/websocket-server/lib/export-render.cjs +440 -0
- package/server/piecemaker/vendor/websocket-server/lib/office-to-pdf.cjs +306 -0
- package/server/piecemaker/vendor/websocket-server/lib/stamping.cjs +39 -0
- package/server/piecemaker/vendor/websocket-server/originals-pipeline.cjs +1150 -0
- package/server/piecemaker/vendor/websocket-server/scripts/ADDRESS_ANONYMIZATION.md +216 -0
- package/server/piecemaker/vendor/websocket-server/scripts/DEDUPLICATION_CHANGES.md +134 -0
- package/server/piecemaker/vendor/websocket-server/scripts/GLINER2_README.md +138 -0
- package/server/piecemaker/vendor/websocket-server/scripts/__pycache__/scan_utils.cpython-312.pyc +0 -0
- package/server/piecemaker/vendor/websocket-server/scripts/convert_and_scan_pipeline.py +1968 -0
- package/server/piecemaker/vendor/websocket-server/scripts/mineru_improved_1.py +208 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio-gliner/AUDIT_PERF_QUALITE.md +246 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio-gliner/MODELE_COREML.md +62 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio-gliner/__pycache__/coreml_runtime.cpython-312.pyc +0 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio-gliner/__pycache__/model_config.cpython-312.pyc +0 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio-gliner/build_coreml.py +118 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio-gliner/coreml_runtime.py +164 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio-gliner/model_config.py +63 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio-gliner/presidio-gliner.py +479 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio-gliner/scanner_worker.py +668 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/__init__.py +10 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/__pycache__/__init__.cpython-312.pyc +0 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/__pycache__/analysis_explanation.cpython-312.pyc +0 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/__pycache__/entity_recognizer.cpython-312.pyc +0 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/__pycache__/local_recognizer.cpython-312.pyc +0 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/__pycache__/pattern.cpython-312.pyc +0 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/__pycache__/pattern_recognizer.cpython-312.pyc +0 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/__pycache__/recognizer_result.cpython-312.pyc +0 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/analysis_explanation.py +65 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/entity_recognizer.py +213 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/input_validation/__init__.py +21 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/input_validation/language_validation.py +18 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/input_validation/schemas.py +132 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/input_validation/yaml_recognizer_models.py +422 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/local_recognizer.py +7 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/nlp_engine/__init__.py +15 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/nlp_engine/__pycache__/__init__.cpython-312.pyc +0 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/nlp_engine/__pycache__/device_detector.cpython-312.pyc +0 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/nlp_engine/__pycache__/ner_model_configuration.cpython-312.pyc +0 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/nlp_engine/__pycache__/nlp_artifacts.cpython-312.pyc +0 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/nlp_engine/__pycache__/nlp_engine.cpython-312.pyc +0 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/nlp_engine/__pycache__/spacy_nlp_engine.cpython-312.pyc +0 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/nlp_engine/device_detector.py +65 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/nlp_engine/ner_model_configuration.py +128 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/nlp_engine/nlp_artifacts.py +88 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/nlp_engine/nlp_engine.py +65 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/nlp_engine/nlp_engine_provider.py +114 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/nlp_engine/spacy_nlp_engine.py +290 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/pattern.py +66 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/pattern_recognizer.py +297 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/predefined_recognizers/__init__.py +4 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/predefined_recognizers/__pycache__/__init__.cpython-312.pyc +0 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/predefined_recognizers/__pycache__/gliner_recognizer.cpython-312.pyc +0 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/predefined_recognizers/generic/__init__.py +0 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/predefined_recognizers/generic/__pycache__/__init__.cpython-312.pyc +0 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/predefined_recognizers/generic/__pycache__/credit_card_recognizer.cpython-312.pyc +0 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/predefined_recognizers/generic/__pycache__/crypto_recognizer.cpython-312.pyc +0 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/predefined_recognizers/generic/__pycache__/email_recognizer.cpython-312.pyc +0 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/predefined_recognizers/generic/__pycache__/iban_patterns.cpython-312.pyc +0 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/predefined_recognizers/generic/__pycache__/iban_recognizer.cpython-312.pyc +0 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/predefined_recognizers/generic/__pycache__/ip_recognizer.cpython-312.pyc +0 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/predefined_recognizers/generic/__pycache__/mac_recognizer.cpython-312.pyc +0 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/predefined_recognizers/generic/__pycache__/url_recognizer.cpython-312.pyc +0 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/predefined_recognizers/generic/credit_card_recognizer.py +82 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/predefined_recognizers/generic/crypto_recognizer.py +141 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/predefined_recognizers/generic/date_recognizer.py +102 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/predefined_recognizers/generic/email_recognizer.py +48 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/predefined_recognizers/generic/iban_patterns.py +173 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/predefined_recognizers/generic/iban_recognizer.py +221 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/predefined_recognizers/generic/ip_recognizer.py +65 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/predefined_recognizers/generic/mac_recognizer.py +73 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/predefined_recognizers/generic/url_recognizer.py +50 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/predefined_recognizers/gliner_recognizer.py +218 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/predefined_recognizers/spacy_recognizer.py +139 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio_analyzer/recognizer_result.py +188 -0
- package/server/piecemaker/vendor/websocket-server/scripts/requirements.txt +29 -0
- package/server/piecemaker/vendor/websocket-server/scripts/scan_utils.py +469 -0
- package/server/piecemaker/vendor/websocket-server/scripts/smart_converter.py +366 -0
- package/server/piecemaker/vendor/websocket-server/scripts/warmup.py +464 -0
- package/server/piecemaker/vendor/websocket-server/stamping-routes.cjs +334 -0
- package/server/piecemaker/vendor/websocket-server/telegram-admin.cjs +602 -0
- package/server/piecemaker/vendor/websocket-server/workspace-paths.cjs +22 -0
- package/server/shared/claude-cli-path.ts +157 -0
- package/server/shared/frontmatter.ts +18 -0
- package/server/shared/image-attachments.ts +437 -0
- package/server/shared/index.ts +3 -0
- package/server/shared/interfaces.ts +241 -0
- package/server/shared/message-unification.ts +449 -0
- package/server/shared/tests/application-data-root.test.ts +29 -0
- package/server/shared/tests/claude-cli-path.test.ts +118 -0
- package/server/shared/tests/image-attachments.test.ts +353 -0
- package/server/shared/tests/message-unification.test.ts +218 -0
- package/server/shared/tests/slice-tail-page.test.ts +42 -0
- package/server/shared/types.ts +1354 -0
- package/server/shared/utils.ts +1212 -0
- package/server/tsconfig.json +40 -0
- package/shared/networkHosts.js +22 -0
- package/shared/product-config.mjs +86 -0
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* statusLine Claude Code — bandeau permanent d'état de l'anonymisation PieceMaker.
|
|
4
|
+
*
|
|
5
|
+
* Contrat statusLine (type "command") : JSON sur stdin décrivant la session
|
|
6
|
+
* (workspace, model...), une seule ligne sur stdout, exit 0. Appelé très
|
|
7
|
+
* souvent (à chaque rendu de l'interface) : ce script doit rester rapide et
|
|
8
|
+
* ne jamais bloquer ni jeter.
|
|
9
|
+
*
|
|
10
|
+
* Le badge reflète les deux mêmes conditions que `proxy-guard.mjs` (routage
|
|
11
|
+
* + proxy vivant), mais sans autostart ni journalisation : une statusLine
|
|
12
|
+
* n'est pas le bon endroit pour une action de fond, seulement pour un
|
|
13
|
+
* affichage. Le sondage réseau est borné à 400 ms et son résultat est mis en
|
|
14
|
+
* cache 5 s dans ~/.piecemaker/proxy-statusline.json pour éviter une requête
|
|
15
|
+
* à chaque frappe.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import fs from 'node:fs';
|
|
19
|
+
import http from 'node:http';
|
|
20
|
+
import os from 'node:os';
|
|
21
|
+
import path from 'node:path';
|
|
22
|
+
import { HOME_DIR, loadPieceMakerConfig, readHookPayload } from './lib/hook-io.mjs';
|
|
23
|
+
|
|
24
|
+
const CACHE_FILE = path.join(HOME_DIR, 'proxy-statusline.json');
|
|
25
|
+
const CACHE_TTL_MS = 5000;
|
|
26
|
+
const PROBE_TIMEOUT_MS = 400;
|
|
27
|
+
const STDIN_TIMEOUT_MS = 1000;
|
|
28
|
+
const DEFAULT_PORT = 4000;
|
|
29
|
+
const FLUSH_TIMEOUT_MS = 1000;
|
|
30
|
+
|
|
31
|
+
const SETTINGS_FILE = path.join(os.homedir(), '.claude', 'settings.json');
|
|
32
|
+
|
|
33
|
+
function validPort(value) {
|
|
34
|
+
const port = Number(value);
|
|
35
|
+
return Number.isInteger(port) && port >= 1024 && port <= 65535 ? port : DEFAULT_PORT;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/** Même définition du routage que proxy-guard.mjs — lecture directe, jamais de throw. */
|
|
39
|
+
function readRouting() {
|
|
40
|
+
try {
|
|
41
|
+
const settings = JSON.parse(fs.readFileSync(SETTINGS_FILE, 'utf8'));
|
|
42
|
+
const value = settings?.env?.ANTHROPIC_BASE_URL;
|
|
43
|
+
if (typeof value !== 'string' || !value) return false;
|
|
44
|
+
const url = new URL(value);
|
|
45
|
+
return ['127.0.0.1', 'localhost'].includes(url.hostname)
|
|
46
|
+
&& url.pathname.replace(/\/$/, '') === '/anthropic';
|
|
47
|
+
} catch {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/** Cache court entre deux sondages. Un cache illisible/absent n'empêche pas de sonder. */
|
|
53
|
+
function readCache() {
|
|
54
|
+
try {
|
|
55
|
+
const parsed = JSON.parse(fs.readFileSync(CACHE_FILE, 'utf8'));
|
|
56
|
+
if (typeof parsed?.ts !== 'number' || typeof parsed?.actif !== 'boolean') return null;
|
|
57
|
+
if (Date.now() - parsed.ts > CACHE_TTL_MS) return null;
|
|
58
|
+
return parsed;
|
|
59
|
+
} catch {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
function writeCache(actif) {
|
|
65
|
+
try {
|
|
66
|
+
fs.mkdirSync(HOME_DIR, { recursive: true });
|
|
67
|
+
fs.writeFileSync(CACHE_FILE, JSON.stringify({ ts: Date.now(), actif }), 'utf8');
|
|
68
|
+
} catch {
|
|
69
|
+
// Le cache est un confort de performance, pas une garantie.
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
function probe(port, timeoutMs) {
|
|
74
|
+
return new Promise((resolve) => {
|
|
75
|
+
let settled = false;
|
|
76
|
+
const finish = (ok) => {
|
|
77
|
+
if (settled) return;
|
|
78
|
+
settled = true;
|
|
79
|
+
resolve(ok);
|
|
80
|
+
};
|
|
81
|
+
try {
|
|
82
|
+
const request = http.get({
|
|
83
|
+
hostname: '127.0.0.1',
|
|
84
|
+
port,
|
|
85
|
+
path: '/health/liveliness',
|
|
86
|
+
timeout: timeoutMs,
|
|
87
|
+
}, (response) => {
|
|
88
|
+
response.resume();
|
|
89
|
+
finish(response.statusCode === 200);
|
|
90
|
+
});
|
|
91
|
+
request.on('timeout', () => { request.destroy(); finish(false); });
|
|
92
|
+
request.on('error', () => finish(false));
|
|
93
|
+
} catch {
|
|
94
|
+
finish(false);
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Couleur ANSI du badge : vert quand l'anonymisation est effective, rouge
|
|
101
|
+
* sinon. Claude Code rend les séquences ANSI de la statusLine ; on n'en met
|
|
102
|
+
* que sur le badge, jamais sur le dossier ni le modèle.
|
|
103
|
+
*/
|
|
104
|
+
const VERT = '\u001b[32m';
|
|
105
|
+
const ROUGE = '\u001b[31m';
|
|
106
|
+
const RESET = '\u001b[0m';
|
|
107
|
+
|
|
108
|
+
function colore(texte, couleur) {
|
|
109
|
+
return process.env.NO_COLOR ? texte : `${couleur}${texte}${RESET}`;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
function badge(routed, actif) {
|
|
113
|
+
if (routed && actif) return colore('🔒 Anonymisation PieceMaker active ✓', VERT);
|
|
114
|
+
if (routed) return colore('⚠️ Anonymisation PieceMaker inactive — proxy arrêté (piecemaker start)', ROUGE);
|
|
115
|
+
return colore('⚠️ Anonymisation PieceMaker inactive — accès direct', ROUGE);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/** Écrit la ligne et quitte proprement, en attendant le flush comme hook-io.mjs::emit. */
|
|
119
|
+
function printAndExit(text) {
|
|
120
|
+
const guard = setTimeout(() => process.exit(0), FLUSH_TIMEOUT_MS);
|
|
121
|
+
guard.unref?.();
|
|
122
|
+
try {
|
|
123
|
+
process.stdout.write(`${text}\n`, () => {
|
|
124
|
+
clearTimeout(guard);
|
|
125
|
+
process.exit(0);
|
|
126
|
+
});
|
|
127
|
+
} catch {
|
|
128
|
+
clearTimeout(guard);
|
|
129
|
+
process.exit(0);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
function safeCwdName(cwd) {
|
|
134
|
+
try {
|
|
135
|
+
const value = String(cwd || process.cwd());
|
|
136
|
+
return path.basename(value) || value;
|
|
137
|
+
} catch {
|
|
138
|
+
return '';
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
async function main() {
|
|
143
|
+
let payload = null;
|
|
144
|
+
try {
|
|
145
|
+
payload = await readHookPayload(STDIN_TIMEOUT_MS);
|
|
146
|
+
} catch {
|
|
147
|
+
payload = null;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
const dirName = safeCwdName(payload?.workspace?.current_dir || payload?.cwd);
|
|
151
|
+
const modelName = typeof payload?.model?.display_name === 'string' ? payload.model.display_name : '';
|
|
152
|
+
|
|
153
|
+
let config = {};
|
|
154
|
+
try {
|
|
155
|
+
config = loadPieceMakerConfig();
|
|
156
|
+
} catch {
|
|
157
|
+
config = {};
|
|
158
|
+
}
|
|
159
|
+
const port = validPort(config.litellmPort);
|
|
160
|
+
const routed = readRouting();
|
|
161
|
+
|
|
162
|
+
const cached = readCache();
|
|
163
|
+
let actif;
|
|
164
|
+
if (cached) {
|
|
165
|
+
actif = cached.actif;
|
|
166
|
+
} else {
|
|
167
|
+
actif = await probe(port, PROBE_TIMEOUT_MS);
|
|
168
|
+
writeCache(actif);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
const parts = [badge(routed, actif)];
|
|
172
|
+
if (dirName) parts.push(dirName);
|
|
173
|
+
if (modelName) parts.push(modelName);
|
|
174
|
+
printAndExit(parts.join(' · '));
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
main().catch(() => {
|
|
178
|
+
printAndExit(safeCwdName(process.cwd()));
|
|
179
|
+
});
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* PostToolUse hook (Read) — trace les lectures dans un dossier de résultats
|
|
4
|
+
* Legifrance téléchargé par l'outil MCP `Download_Query_Results`.
|
|
5
|
+
*
|
|
6
|
+
* Purement mécanique (« synthetic & static », jamais un LLM) : si le fichier lu
|
|
7
|
+
* est sous un dossier portant le marqueur `.legifrance-results.json`, la lecture
|
|
8
|
+
* est comptabilisée dans `.read-log.json` à la racine de ce dossier. C'est ce
|
|
9
|
+
* qui permet à l'orchestrateur de savoir quelles décisions l'agent de tri a
|
|
10
|
+
* réellement ouvertes.
|
|
11
|
+
*
|
|
12
|
+
* Fail-open : hors dossier de résultats, ou sur la moindre erreur → exit 0,
|
|
13
|
+
* stdout vide, la session n'est pas affectée.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
import { createRequire } from 'node:module';
|
|
17
|
+
import path from 'node:path';
|
|
18
|
+
import { noop, readHookPayload, runHook } from './lib/hook-io.mjs';
|
|
19
|
+
|
|
20
|
+
const require = createRequire(import.meta.url);
|
|
21
|
+
const { findResultsRoot, recordRead } = require('./lib/legifrance-reads.cjs');
|
|
22
|
+
|
|
23
|
+
async function main() {
|
|
24
|
+
const payload = await readHookPayload(2000);
|
|
25
|
+
if (!payload || payload.tool_name !== 'Read') return null;
|
|
26
|
+
if (payload.tool_response?.success === false) return null;
|
|
27
|
+
|
|
28
|
+
const cwd = payload.cwd || process.cwd();
|
|
29
|
+
const target = payload.tool_input?.file_path;
|
|
30
|
+
if (!target) return null;
|
|
31
|
+
const absolute = path.isAbsolute(target) ? target : path.resolve(cwd, target);
|
|
32
|
+
|
|
33
|
+
const root = findResultsRoot(absolute);
|
|
34
|
+
if (!root) return null;
|
|
35
|
+
|
|
36
|
+
const relFile = path.relative(root, absolute);
|
|
37
|
+
if (!relFile || relFile.startsWith('..')) return null;
|
|
38
|
+
|
|
39
|
+
recordRead(root, relFile, {
|
|
40
|
+
sessionId: payload.session_id || null,
|
|
41
|
+
toolUseId: payload.tool_use_id || null,
|
|
42
|
+
});
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
runHook(main, { timeoutMs: 4000 }).catch(() => noop());
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ajout-de-fonctionnalites
|
|
3
|
+
description: À utiliser quand l'utilisateur veut ajouter ou modifier ses propres instructions, préférences, gabarits ou une nouvelle capacité personnelle, qui doivent rester disponibles après une mise à jour de PieceMaker. Couvre les instructions globales, une skill personnelle, un gabarit personnel, ou un élément propre à un seul dossier.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Ajouter ses propres éléments (persistants aux mises à jour)
|
|
7
|
+
|
|
8
|
+
PieceMaker évolue par mises à jour du dépôt. Ces mises à jour remplacent le
|
|
9
|
+
contenu fourni par PieceMaker — mais jamais ce que l'avocat a ajouté lui-même
|
|
10
|
+
**en dehors** du dépôt. Cette
|
|
11
|
+
skill sert de guide pour ranger un ajout personnel au bon endroit.
|
|
12
|
+
|
|
13
|
+
## Où vivent les éléments personnels, et pourquoi ils survivent
|
|
14
|
+
|
|
15
|
+
| Type d'ajout | Emplacement | Portée |
|
|
16
|
+
| --- | --- | --- |
|
|
17
|
+
| Instructions ou préférences globales (style, rappels, habitudes) | `/Users/tsardet/.piecemaker/custom/perso.md` | Toutes les affaires — ce fichier est importé automatiquement dans chaque dossier via `/Users/tsardet/.piecemaker/CLAUDE.md`. |
|
|
18
|
+
| Skill personnelle réutilisable | Nouveau dossier `/Users/tsardet/.claude/skills/<nom>/SKILL.md` | Toutes les sessions Claude Code — découverte automatique, jamais écrasée par PieceMaker (un fichier créé à la main n'est jamais remplacé par l'application). |
|
|
19
|
+
| Gabarit personnel (acte, courrier type…) | `/Users/tsardet/.piecemaker/templates/` | Disponible pour toute rédaction, indépendamment du dépôt de l'application. |
|
|
20
|
+
| Élément propre à une seule affaire (parties, juridiction, échéances) | Section « Ce dossier » du `CLAUDE.md` / `AGENTS.md` de ce dossier | Uniquement ce dossier-là. |
|
|
21
|
+
|
|
22
|
+
Ces emplacements sont hors du dépôt PieceMaker : une mise à jour de PieceMaker
|
|
23
|
+
ne les touche jamais. Réciproquement, modifier l'un de
|
|
24
|
+
ces fichiers ne modifie ni n'affecte le fonctionnement standard de
|
|
25
|
+
PieceMaker — la garantie va dans les deux sens.
|
|
26
|
+
|
|
27
|
+
## Format minimal d'une skill personnelle
|
|
28
|
+
|
|
29
|
+
Un fichier `/Users/tsardet/.claude/skills/<nom>/SKILL.md` avec un en-tête
|
|
30
|
+
puis du texte libre :
|
|
31
|
+
|
|
32
|
+
```markdown
|
|
33
|
+
---
|
|
34
|
+
name: <nom>
|
|
35
|
+
description: Une phrase expliquant quand cette skill doit se déclencher.
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
# Titre
|
|
39
|
+
|
|
40
|
+
Instructions pour l'assistant, en français, centrées sur la tâche.
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Ce que l'assistant doit faire quand cette skill se déclenche
|
|
44
|
+
|
|
45
|
+
1. **Demander ce que l'avocat veut ajouter** si ce n'est pas déjà clair :
|
|
46
|
+
une préférence générale, une skill dédiée, un gabarit, ou un élément
|
|
47
|
+
propre à un dossier en cours.
|
|
48
|
+
2. **Choisir l'emplacement approprié** dans le tableau ci-dessus selon la
|
|
49
|
+
portée voulue (globale, réutilisable, ou limitée à un dossier).
|
|
50
|
+
3. **Créer ou éditer le fichier correspondant**, en respectant le format
|
|
51
|
+
attendu (front matter pour une skill, section « Ce dossier » pour un
|
|
52
|
+
élément local, etc.).
|
|
53
|
+
4. **Pour un nouveau dossier d'affaire** qui n'a pas encore de wrapper : sur
|
|
54
|
+
demande, proposer et créer `CLAUDE.md` et `AGENTS.md` à la racine du
|
|
55
|
+
dossier, avec exactement ce contenu (chemin absolu, jamais `~`) :
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
@/Users/tsardet/.piecemaker/CLAUDE.md
|
|
59
|
+
|
|
60
|
+
# Ce dossier
|
|
61
|
+
<!-- Éléments propres à ce dossier : parties, juridiction, échéances, particularités. À compléter. -->
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Si l'un de ces deux fichiers existe déjà dans le dossier, ne jamais
|
|
65
|
+
l'écraser : le lire, et s'il ne contient pas déjà cette ligne d'import,
|
|
66
|
+
l'ajouter en tête sans supprimer le contenu existant.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: conversion-md
|
|
3
|
+
description: Convertir un document (PDF, DOCX, image scannée, etc.) en Markdown avec le smart converter de PieceMaker, y compris choisir entre markitdown et MinerU (OCR). À utiliser dès qu'il faut transformer une pièce en Markdown avant analyse, anonymisation ou insertion dans Word.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Conversion de documents en Markdown (smart_converter.py)
|
|
7
|
+
|
|
8
|
+
## Commande
|
|
9
|
+
|
|
10
|
+
`websocket-server/scripts/smart_converter.py` — arguments réels (argparse) :
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
python3 websocket-server/scripts/smart_converter.py <file> -o <output_dir> [--engine auto|markitdown|mineru] [--mode MODE] [--lang LANG]
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
- `file` : positionnel, fichier d'entrée.
|
|
17
|
+
- `-o` / `--output` : **requis**, répertoire de sortie.
|
|
18
|
+
- `--engine` : `auto` (défaut), `markitdown`, ou `mineru`.
|
|
19
|
+
- `--mode` : mode MinerU (`pipeline` / `hybrid` / `vlm`), ignoré si le moteur
|
|
20
|
+
n'est pas MinerU.
|
|
21
|
+
- `--lang` : code langue OCR pour MinerU.
|
|
22
|
+
|
|
23
|
+
Exemple :
|
|
24
|
+
```
|
|
25
|
+
python3 websocket-server/scripts/smart_converter.py piece.pdf -o output/
|
|
26
|
+
python3 websocket-server/scripts/smart_converter.py scan.jpg -o output/ --mode hybrid --lang latin
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Côté serveur ce script est enregistré dans `PYTHON_SCRIPTS.convert`
|
|
30
|
+
(`websocket-server/server.cjs`, ~ligne 3856) et déclenché via le Python
|
|
31
|
+
Bridge (`taskpane/modules/python-bridge.js` →
|
|
32
|
+
`executePythonScript('convert', file, options, callbacks)`).
|
|
33
|
+
|
|
34
|
+
## Quand utiliser markitdown vs MinerU
|
|
35
|
+
|
|
36
|
+
- **`markitdown`** — documents avec une vraie couche de texte : DOCX, PPTX,
|
|
37
|
+
XLSX, PDF "propre" (texte sélectionnable, pas d'image de page entière).
|
|
38
|
+
Rapide, pas de modèle OCR à charger.
|
|
39
|
+
- **`mineru`** — PDF scannés ou basés sur image (pas de couche texte), scans
|
|
40
|
+
papier, photos de documents. Plus lent (OCR + mise en page), mais
|
|
41
|
+
nécessaire pour en extraire du texte exploitable.
|
|
42
|
+
- **`auto`** (par défaut) — inspecte le fichier et choisit automatiquement
|
|
43
|
+
entre les deux ; c'est le choix par défaut à laisser tel quel sauf besoin
|
|
44
|
+
spécifique (ex. forcer `mineru` sur un PDF qui a une couche de texte
|
|
45
|
+
corrompue ou illisible).
|
|
46
|
+
|
|
47
|
+
## Enchaînement avec le scan PII
|
|
48
|
+
|
|
49
|
+
Pour convertir puis scanner en un seul appel, utiliser
|
|
50
|
+
`websocket-server/scripts/convert_and_scan_pipeline.py <file1> [file2 ...] -o <output_dir> [--engine ...] [--mode ...] [--lang ...]`,
|
|
51
|
+
qui appelle `smart_converter.py` puis
|
|
52
|
+
`websocket-server/scripts/presidio-gliner/presidio-gliner.py` pour chaque
|
|
53
|
+
fichier. Sortie persistante : un Markdown par
|
|
54
|
+
fichier et un unique `{output_dir}/mapping_default.json` cumulatif. Dans le
|
|
55
|
+
pipeline d'administration d'un dossier, `-o` vise le sous-dossier
|
|
56
|
+
`Fichiers convertis PieceMaker/` du dossier (racine réservée aux originaux) ;
|
|
57
|
+
le manifeste technique caché `.piecemaker/anonymization-state.json` reste, lui, à
|
|
58
|
+
la racine du dossier, et sa clé est relative à la racine via `--case-root`. Les
|
|
59
|
+
détections brutes par fichier restent temporaires et sont supprimées après leur
|
|
60
|
+
fusion.
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: recherche-juridique
|
|
3
|
+
description: "Rechercher un texte de loi ou une jurisprudence via le serveur MCP Légifrance et produire des citations vérifiables (bloc <CITATIONS>) pour une réponse ou un acte PieceMaker. À utiliser dès qu'un texte de loi, un article ou une décision doit être cité — jamais de mémoire. Le hook Stop `verify-citations.mjs` bloque le tour si une citation ne se retrouve pas mot pour mot dans une source réellement lue."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Recherche juridique et citations vérifiables
|
|
7
|
+
|
|
8
|
+
## Ce que ce skill garantit
|
|
9
|
+
|
|
10
|
+
**Une citation n'est acceptée que si elle a été lue dans ce tour, mot pour
|
|
11
|
+
mot.** Le hook Stop `verify-citations.mjs` relit chaque citation du bloc
|
|
12
|
+
`<CITATIONS>` produit en fin de réponse, la localise mécaniquement dans le
|
|
13
|
+
texte source réel, et bloque le tour si l'une d'elles est introuvable — même
|
|
14
|
+
approximativement. Ce n'est jamais un jugement du modèle : c'est une
|
|
15
|
+
recherche de sous-chaîne, tolérante aux espaces/casse/ponctuation mais pas au
|
|
16
|
+
sens. Une citation reformulée, résumée ou inventée est rejetée.
|
|
17
|
+
|
|
18
|
+
Ce skill décrit le déroulé de recherche avec les outils Légifrance
|
|
19
|
+
effectivement disponibles, puis le format exact que le vérificateur accepte.
|
|
20
|
+
|
|
21
|
+
## Outils du serveur MCP Légifrance
|
|
22
|
+
|
|
23
|
+
| Outil | Rôle |
|
|
24
|
+
| --- | --- |
|
|
25
|
+
| `Search_Cour_Cassation` | Recherche ciblée dans la jurisprudence de la Cour de cassation (mots-clés, opérateurs ET/OU, expression exacte, référence d'article), filtrable par matière et publication au bulletin. |
|
|
26
|
+
| `Search_Conseil_Etat` | Même recherche ciblée dans la jurisprudence du Conseil d'État, filtrable par publication au recueil Lebon. |
|
|
27
|
+
| `Search_Cour_Appel` | Même recherche dans les cours d'appel, filtrable par ville — bien cibler (ville + dates), le volume est important. |
|
|
28
|
+
| `Search_CAA` | Même recherche dans les cours administratives d'appel, filtrable par ville. |
|
|
29
|
+
| `Search_Premiere_Instance` | Recherche dans les juridictions de première instance — volume très limité (~50 décisions), opérateur OU par défaut. |
|
|
30
|
+
| `Search_Code` | Recherche dans les codes juridiques français (Code civil, Code du travail…) — référence d'article exacte (`L. 1235-3`), mots-clés ou expression exacte. Renvoie les identifiants `LEGIARTI…` des articles trouvés. |
|
|
31
|
+
| `consulter_article` | Texte intégral et vigueur d'une version précise d'article, à partir de son identifiant `LEGIARTI…` rendu par `Search_Code`. |
|
|
32
|
+
| `consulter_decision` | Rapatrie le texte intégral d'une décision à partir de son identifiant (`JURITEXT…`, `CETATEXT…`). **Rapatrie le texte intégral et le met en cache** (voir plus bas) — c'est le moyen normal de lire une décision avant de la citer. |
|
|
33
|
+
| `Download_Query_Results` | Télécharge en masse tous les résultats d'une requête dans un dossier local, pour trier sans paginer. **Ne rapatrie pas le texte intégral** (voir l'avertissement ci-dessous) — sert au tri, jamais directement à la citation. |
|
|
34
|
+
| `Build_Research_Corpus` | Construit un corpus exhaustif et reproductible sur une question de droit : plusieurs requêtes, déduplication, téléchargement et scan du texte intégral de chaque décision. **Rapatrie le texte intégral.** À utiliser pour une recherche large et systématique plutôt qu'un enchaînement manuel de `Search_*`. |
|
|
35
|
+
| `Validate_Research_Cards` | Valide mécaniquement (sans LLM) le résultat de `Build_Research_Corpus` : une fiche par décision, citations confirmées dans le texte intégral, rapport de couverture. |
|
|
36
|
+
| `Tracking_BODACC` | Situation d'une entreprise (procédures collectives) via son SIREN — hors jurisprudence, utile pour qualifier une partie. |
|
|
37
|
+
|
|
38
|
+
### Le fait décisif : seuls deux chemins rendent une citation vérifiable
|
|
39
|
+
|
|
40
|
+
Le vérificateur ne peut confirmer une citation que si le texte intégral de sa
|
|
41
|
+
source est quelque part sur disque. Sur les trois façons dont le MCP restitue
|
|
42
|
+
une décision, **une seule ne rapatrie pas ce texte** :
|
|
43
|
+
|
|
44
|
+
- **`Build_Research_Corpus`** écrit `decisions.jsonl` (une décision par ligne,
|
|
45
|
+
champ `texte` = texte intégral réel) — vérifiable.
|
|
46
|
+
- **`consulter_decision`** renvoie le texte intégral dans sa réponse d'outil ;
|
|
47
|
+
le hook `decision-cache.mjs` le capte au passage et l'écrit dans
|
|
48
|
+
`~/.piecemaker/decisions/<id>.json` — vérifiable.
|
|
49
|
+
- **`Download_Query_Results`** écrit `results.json`, mais chaque entrée ne
|
|
50
|
+
contient que `id`, `titre`, `lien`, `date`, `analyse` (un sommaire) et,
|
|
51
|
+
optionnellement, `solution.dispositif` (le dispositif seul — jamais les
|
|
52
|
+
motifs). **Pas de texte intégral.** Citer une décision connue uniquement par
|
|
53
|
+
ce canal produira une citation non vérifiée et bloquera le tour.
|
|
54
|
+
|
|
55
|
+
**Conséquence pratique** : `Download_Query_Results` sert à trier une liste de
|
|
56
|
+
résultats (lire les titres/sommaires, écarter le hors-sujet). Dès qu'une
|
|
57
|
+
décision de cette liste doit être citée, il faut d'abord la lire avec
|
|
58
|
+
`consulter_decision` (ou l'avoir dans un corpus `Build_Research_Corpus`) —
|
|
59
|
+
jamais citer directement depuis `results.json`.
|
|
60
|
+
|
|
61
|
+
## Déroulé de recherche
|
|
62
|
+
|
|
63
|
+
1. **Recherche large** avec l'outil `Search_*` adapté à la juridiction visée
|
|
64
|
+
(ou `Build_Research_Corpus` pour une question de droit qui mérite un
|
|
65
|
+
balayage systématique plutôt qu'une requête isolée). Pour un texte de loi,
|
|
66
|
+
`Search_Code`.
|
|
67
|
+
2. **Tri** des résultats sur les seuls éléments déjà renvoyés (titre, sommaire,
|
|
68
|
+
date, `analyse`) — sans lire chaque décision en entier. `Download_Query_Results`
|
|
69
|
+
aide à trier un grand volume hors ligne.
|
|
70
|
+
3. **Lecture** des seules décisions/articles retenus comme potentiellement
|
|
71
|
+
cite-worthy : `consulter_decision` (jurisprudence) ou `consulter_article`
|
|
72
|
+
(texte de loi), ou relecture du `decisions.jsonl` d'un corpus déjà construit.
|
|
73
|
+
Ne lire que ce qui sera effectivement cité ou a de bonnes chances de l'être
|
|
74
|
+
— pas systématiquement tout ce qui est remonté par la recherche large.
|
|
75
|
+
4. **Citation** : une fois la décision ou l'article lu dans ce tour, en extraire
|
|
76
|
+
les passages utiles mot pour mot et construire le bloc `<CITATIONS>`
|
|
77
|
+
(format ci-dessous).
|
|
78
|
+
|
|
79
|
+
## Discipline de citation
|
|
80
|
+
|
|
81
|
+
- **Ne jamais citer une source qu'on n'a pas lue dans ce tour.** Une décision
|
|
82
|
+
connue seulement par son titre, son sommaire, un résumé mémorisé ou un
|
|
83
|
+
résultat de recherche n'est pas une source de citation valable — elle doit
|
|
84
|
+
d'abord être lue avec `consulter_decision` ou `consulter_article`.
|
|
85
|
+
- **Une citation est une reproduction littérale**, jamais une reformulation
|
|
86
|
+
ni un résumé. Copier le texte exact de la source, ponctuation comprise si
|
|
87
|
+
possible (le vérificateur tolère un léger écart d'espace/casse/ponctuation,
|
|
88
|
+
pas un écart de sens).
|
|
89
|
+
- **Au plus 3 extraits par citation**, chacun **25 mots maximum**, bien ciblés
|
|
90
|
+
sur l'affirmation qu'ils appuient.
|
|
91
|
+
- **Références contiguës** : les marqueurs `[N]` dans le texte de la réponse
|
|
92
|
+
vont de `[1]` à `[N]` sans saut, dans l'ordre de première apparition. Chaque
|
|
93
|
+
`[N]` a exactement une entrée correspondante `"ref": N` dans le bloc
|
|
94
|
+
`<CITATIONS>`. Réutiliser un `ref` existant pour citer à nouveau la même
|
|
95
|
+
source/le même passage plutôt que d'en créer un nouveau.
|
|
96
|
+
- Si une source utile n'a pas encore été lue, la lire avant de la citer — ou,
|
|
97
|
+
à défaut, dire qu'elle n'a pas pu être lue et ne pas s'appuyer dessus.
|
|
98
|
+
|
|
99
|
+
## Format du bloc `<CITATIONS>`
|
|
100
|
+
|
|
101
|
+
Le bloc est ajouté **à la toute fin** de la réponse, tel que parsé par
|
|
102
|
+
`piecemaker-plugin/scripts/lib/citations.cjs` :
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
<CITATIONS>
|
|
106
|
+
[ ... tableau JSON d'objets citation ... ]
|
|
107
|
+
</CITATIONS>
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Le contenu entre les balises doit être un tableau JSON valide (`JSON.parse`
|
|
111
|
+
strict — pas de virgule finale, pas de commentaire). Chaque entrée du tableau
|
|
112
|
+
prend l'une des deux formes suivantes.
|
|
113
|
+
|
|
114
|
+
### Forme « jurisprudence » (`kind: "case"`)
|
|
115
|
+
|
|
116
|
+
Identifie la décision par `decision_id` — l'identifiant Légifrance
|
|
117
|
+
(`JURITEXT…`, `CETATEXT…`) tel que rendu par `Search_*`/`Download_Query_Results`/
|
|
118
|
+
`Build_Research_Corpus`, et lu avec `consulter_decision` (ou présent dans un
|
|
119
|
+
`decisions.jsonl`).
|
|
120
|
+
|
|
121
|
+
```json
|
|
122
|
+
{
|
|
123
|
+
"ref": 1,
|
|
124
|
+
"kind": "case",
|
|
125
|
+
"decision_id": "JURITEXT000012345678",
|
|
126
|
+
"quotes": [
|
|
127
|
+
{ "quote": "le juge doit rechercher si l'inexécution est suffisamment grave" }
|
|
128
|
+
]
|
|
129
|
+
}
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
Plusieurs extraits de la même décision (jusqu'à 3) :
|
|
133
|
+
|
|
134
|
+
```json
|
|
135
|
+
{
|
|
136
|
+
"ref": 2,
|
|
137
|
+
"kind": "case",
|
|
138
|
+
"decision_id": "JURITEXT000012345678",
|
|
139
|
+
"quotes": [
|
|
140
|
+
{ "quote": "premier extrait littéral, vingt-cinq mots au maximum" },
|
|
141
|
+
{ "quote": "second extrait littéral, distinct du premier" }
|
|
142
|
+
]
|
|
143
|
+
}
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
`type` et `author` sont acceptés dans chaque objet `quotes` (facultatifs,
|
|
147
|
+
informatifs, jamais vérifiés). `doc_id`, `page`, `sheet`, `cell` ou un `quote`
|
|
148
|
+
au premier niveau n'ont pas de sens pour une citation de jurisprudence — ne
|
|
149
|
+
pas les utiliser sur une entrée `case`.
|
|
150
|
+
|
|
151
|
+
### Forme « document » (`kind: "document"`, ou `doc_id` sans `decision_id`)
|
|
152
|
+
|
|
153
|
+
Identifie une pièce du dossier par `doc_id` (le chemin, absolu ou relatif à la
|
|
154
|
+
racine du dossier, de sa contrepartie Markdown convertie — jamais l'original).
|
|
155
|
+
Chaque extrait porte un localisateur `page` (numéro, ou `"N-M"` pour une plage)
|
|
156
|
+
ou, pour un tableur, `sheet` + `cell` (adresse ou plage A1, ex. `"B7"` ou
|
|
157
|
+
`"B7:C9"`).
|
|
158
|
+
|
|
159
|
+
```json
|
|
160
|
+
{
|
|
161
|
+
"ref": 3,
|
|
162
|
+
"doc_id": "pieces/contrat-bail.md",
|
|
163
|
+
"quotes": [
|
|
164
|
+
{ "page": 3, "quote": "le preneur s'engage à occuper les lieux en bon père de famille" }
|
|
165
|
+
]
|
|
166
|
+
}
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
Extrait à cheval sur deux pages : `page` prend la forme `"N-M"` et la
|
|
170
|
+
sentinelle `[[PAGE_BREAK]]` sépare, dans le même `quote`, le texte de fin de
|
|
171
|
+
page N du texte de début de page M — chaque segment est vérifié
|
|
172
|
+
indépendamment contre sa propre page.
|
|
173
|
+
|
|
174
|
+
```json
|
|
175
|
+
{
|
|
176
|
+
"ref": 4,
|
|
177
|
+
"doc_id": "pieces/attestation.md",
|
|
178
|
+
"quotes": [
|
|
179
|
+
{ "page": "41-42", "quote": "texte de fin de page 41 [[PAGE_BREAK]] texte de début de page 42" }
|
|
180
|
+
]
|
|
181
|
+
}
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
Citation dans un tableur (pièce convertie contenant des tableaux `## Sheet:
|
|
185
|
+
<nom>`) : `sheet` + `cell` remplacent `page`.
|
|
186
|
+
|
|
187
|
+
```json
|
|
188
|
+
{
|
|
189
|
+
"ref": 5,
|
|
190
|
+
"doc_id": "pieces/tableau-honoraires.md",
|
|
191
|
+
"quotes": [
|
|
192
|
+
{ "sheet": "Honoraires", "cell": "B7", "quote": "3 500 €" }
|
|
193
|
+
]
|
|
194
|
+
}
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
Une citation à un seul extrait peut aussi s'écrire sous la forme abrégée
|
|
198
|
+
(niveau supérieur au lieu de `quotes`) — `citations.cjs` l'accepte, elle
|
|
199
|
+
retombe sur un tableau `quotes` d'un seul élément :
|
|
200
|
+
|
|
201
|
+
```json
|
|
202
|
+
{ "ref": 6, "doc_id": "pieces/mise-en-demeure.md", "page": 1, "quote": "je vous mets en demeure de régulariser sous huitaine" }
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
## Ce que fait le vérificateur, et quoi faire quand il bloque
|
|
206
|
+
|
|
207
|
+
À l'arrêt du tour, `verify-citations.mjs` :
|
|
208
|
+
|
|
209
|
+
1. Parse le bloc `<CITATIONS>` du dernier message.
|
|
210
|
+
2. Pour chaque citation, résout sa source réelle — texte intégral de la
|
|
211
|
+
décision (corpus `Build_Research_Corpus`, cache `consulter_decision`, ou en
|
|
212
|
+
dernier recours le sommaire de `Download_Query_Results`) ou pièce
|
|
213
|
+
Markdown du dossier.
|
|
214
|
+
3. Localise mécaniquement chaque extrait dans ce texte. Un extrait qui a
|
|
215
|
+
légèrement dérivé (espace, casse, ponctuation) est **corrigé
|
|
216
|
+
automatiquement** avec l'extrait source exact — ce n'est pas une faute.
|
|
217
|
+
4. Un extrait introuvable, même tolérant, **bloque le tour** : la réponse
|
|
218
|
+
liste chaque citation fautive avec son identifiant et le motif (source
|
|
219
|
+
inconnue, source illisible, ou introuvable dans la source).
|
|
220
|
+
|
|
221
|
+
Quand ça arrive : soit relire la source exacte et reprendre le texte réel de
|
|
222
|
+
l'extrait fautif (jamais le reformuler pour le faire passer), soit retirer la
|
|
223
|
+
citation si elle ne peut pas être justifiée par une source effectivement lue.
|
|
224
|
+
|
|
225
|
+
## Ce qu'il ne faut pas faire
|
|
226
|
+
|
|
227
|
+
- Ne jamais citer une décision connue uniquement par un résultat
|
|
228
|
+
`Download_Query_Results` sans l'avoir d'abord lue avec `consulter_decision`.
|
|
229
|
+
- Ne jamais paraphraser un extrait pour qu'il « sonne » comme la source — le
|
|
230
|
+
vérificateur tolère l'espace/la casse/la ponctuation, pas le sens.
|
|
231
|
+
- Ne jamais laisser un `ref` sauter un numéro ou repartir en désordre.
|
|
232
|
+
- Ne jamais dépasser 3 extraits par citation ni 25 mots par extrait.
|
|
233
|
+
- Ne jamais inventer un `decision_id` ou un `doc_id` pour combler un manque de
|
|
234
|
+
source.
|