@piecemaker-legal/piecemaker 1.0.0 → 1.0.1
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.
Potentially problematic release.
This version of @piecemaker-legal/piecemaker might be problematic. Click here for more details.
- package/dist/assets/{abnfDiagram-N423BO3Z-DjEx6DRO.js → abnfDiagram-VCTEODGH-Bq08d4tF.js} +1 -1
- package/dist/assets/arc-CSZbqu1r.js +1 -0
- package/dist/assets/architectureDiagram-5GKGNRK7-BcrS6ofq.js +36 -0
- package/dist/assets/blockDiagram-I7D4REHJ-BvSX4yoF.js +129 -0
- package/dist/assets/c4Diagram-7LVT6UL2-CXK-d04Y.js +38 -0
- package/dist/assets/channel-BbMVYMvP.js +1 -0
- package/dist/assets/{chunk-2Q5K7J3B-6stdrDbe.js → chunk-2Q5K7J3B-DUK32XTd.js} +1 -1
- package/dist/assets/{chunk-5VM5RSS4-BDB8AQ_I.js → chunk-5VM5RSS4-xcfsmCCM.js} +1 -1
- package/dist/assets/{chunk-2GRJ4B5K-BZJJc1-J.js → chunk-F27PBJKO-Bl-zXe5B.js} +1 -1
- package/dist/assets/chunk-IMKFNOWR-Ic2a0Sso.js +231 -0
- package/dist/assets/{chunk-JWPE2WC7-DjFkIZqh.js → chunk-JWPE2WC7-CiP7qRxa.js} +1 -1
- package/dist/assets/chunk-POPQ4Y6H-DqfRvKlI.js +1 -0
- package/dist/assets/{chunk-6Q2QTUOP-RhjQ-NDz.js → chunk-SVP7TREG-CoJ2e0Hm.js} +1 -1
- package/dist/assets/chunk-TICWLB2K-LywV-hKX.js +206 -0
- package/dist/assets/{chunk-XXDRQBXY-CMMVEsX3.js → chunk-XXDRQBXY-ChY1W_iW.js} +1 -1
- package/dist/assets/classDiagram-ZZMXUADV-C1424FXG.js +1 -0
- package/dist/assets/classDiagram-v2-VYDZK3BY-C1424FXG.js +1 -0
- package/dist/assets/cose-bilkent-JH36ORCC-B6-EP1SC.js +1 -0
- package/dist/assets/cynefin-OW5HDTMX-EHXhXu4h.js +166 -0
- package/dist/assets/{cynefinDiagram-MW4NZA55-CGtqUrU1.js → cynefinDiagram-5FMLGOSQ-BCit7Bbr.js} +1 -1
- package/dist/assets/cytoscape.esm-BB4DxJjf.js +321 -0
- package/dist/assets/dagre-GXQ25YYZ-nnXmxCUl.js +4 -0
- package/dist/assets/diagram-S7CK7UJ4-DB8POt2p.js +30 -0
- package/dist/assets/{diagram-UB23O5K3-TSFk7FuJ.js → diagram-UQ7AKVKN-BgeamLYl.js} +1 -1
- package/dist/assets/{diagram-B4RE2ZJO-DF0Cnjzz.js → diagram-VSXAHHWV-C6WJY5WX.js} +3 -3
- package/dist/assets/diagram-VX7I27RA-BocYRSJX.js +24 -0
- package/dist/assets/{diagram-LBJQPF4R-Bq4d3NfR.js → diagram-Z3DM3KII-COOb-xW1.js} +1 -1
- package/dist/assets/{ebnfDiagram-BXEA7PRR-DRvm2Wy9.js → ebnfDiagram-PWID7BFC-Bgcqve4c.js} +1 -1
- package/dist/assets/erDiagram-RLTQ6QDP-CQ5ZpJna.js +99 -0
- package/dist/assets/flowDiagram-HODETNUW-CM_nkgog.js +168 -0
- package/dist/assets/ganttDiagram-EL5Y4UJY-DXV0eMXd.js +292 -0
- package/dist/assets/{gitGraphDiagram-DS77QQ5N-DEzmuv8v.js → gitGraphDiagram-WWUBYQGX-DceGQo1Y.js} +1 -1
- package/dist/assets/index-9kew1eQa.js +3992 -0
- package/dist/assets/index-COJGBeHJ.css +1 -0
- package/dist/assets/infoDiagram-27XIBGKW-CKe1katf.js +2 -0
- package/dist/assets/ishikawaDiagram-5VMMS53U-Bcrabrxy.js +70 -0
- package/dist/assets/journeyDiagram-3NMN7TZE-LCSPRjmw.js +139 -0
- package/dist/assets/{kanban-definition-27J2QSJJ-D4CvKWBP.js → kanban-definition-UXKFOSKX-DBVIcu_G.js} +8 -8
- package/dist/assets/layout-DrnBdsd0.js +1 -0
- package/dist/assets/{linear-i_Nzyzap.js → linear-t3Ev9wve.js} +1 -1
- package/dist/assets/mermaid.core-CG5Pz5jL.js +308 -0
- package/dist/assets/{mindmap-definition-FAOFIHXS-DqhC-BPZ.js → mindmap-definition-YA3MSWOX-xVp2jqkq.js} +3 -3
- package/dist/assets/{pegDiagram-VL7TDLO6-pBqvOEvm.js → pegDiagram-XKGWAZYB-DP8ItuY4.js} +1 -1
- package/dist/assets/{pieDiagram-7S7Q4E2Y-BH53iuaz.js → pieDiagram-E7YTZNPT-CRAeI7iW.js} +3 -3
- package/dist/assets/quadrantDiagram-AXDQQJYC-CeJAUUFC.js +7 -0
- package/dist/assets/{railroadDiagram-AXF67PYL-CERi66oR.js → railroadDiagram-O6MQD6OU-Dq-ixWeI.js} +1 -1
- package/dist/assets/requirementDiagram-BXWQKSXE-BSp3pol5.js +84 -0
- package/dist/assets/{sankeyDiagram-W5VNT64P-DO9bPHWO.js → sankeyDiagram-P5KCCOFB-DLoNQoWa.js} +4 -4
- package/dist/assets/sequenceDiagram-WJ2MYXX4-DDir5PMn.js +162 -0
- package/dist/assets/{server.browser-CtX3Hdl5.js → server.browser-BzI1jrZw.js} +3 -19
- package/dist/assets/{sizeCapture-X5ZJPWSS-mcEXJiem.js → sizeCapture-INFHLROL-Bi_FQi0l.js} +1 -1
- package/dist/assets/stateDiagram-D77RDMKH-DIH7HZZk.js +1 -0
- package/dist/assets/stateDiagram-v2-MP3YSRHH-DKgD7f1X.js +1 -0
- package/dist/assets/swimlanes-42K2YHIH-DsDyY6V1.js +1 -0
- package/dist/assets/swimlanesDiagram-VR7AAH4N-C3SvGay6.js +8 -0
- package/dist/assets/timeline-definition-24CTP7MA-DwGmRXIF.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-T6HMQDX7-BEkKGTum.js → vennDiagram-4TSXK5OY-C4ZBewu_.js} +6 -6
- package/dist/assets/{wardleyDiagram-T6FBY63Y-kJwmgH-h.js → wardleyDiagram-VM6X3IG4-CMJM2M0Z.js} +1 -1
- package/dist/assets/xychartDiagram-S5SC5T6Z-vZQthQPg.js +7 -0
- package/dist/index.html +6 -6
- package/dist/manifest.json +1 -1
- package/dist/sw.js +3 -3
- package/dist-server/server/modules/agent/agent.module.js +2 -2
- package/dist-server/server/modules/assets/assets.routes.js +1 -1
- package/dist-server/server/modules/assets/tests/image-assets.service.test.js +1 -1
- package/dist-server/server/modules/auth/auth.module.js +1 -1
- package/dist-server/server/modules/browser-use/browser-use-mcp.routes.js +1 -1
- package/dist-server/server/modules/browser-use/browser-use.routes.js +1 -1
- package/dist-server/server/modules/browser-use/browser-use.service.js +2 -2
- package/dist-server/server/modules/browser-use/tests/browser-use.service.test.js +1 -1
- package/dist-server/server/modules/commands/commands.module.js +1 -1
- package/dist-server/server/modules/database/connection.js +1 -1
- package/dist-server/server/modules/database/index.js +17 -17
- package/dist-server/server/modules/database/init-db.js +3 -3
- package/dist-server/server/modules/database/migrations.js +1 -1
- package/dist-server/server/modules/database/repositories/api-keys.js +1 -1
- package/dist-server/server/modules/database/repositories/app-config.js +1 -1
- package/dist-server/server/modules/database/repositories/credentials.js +1 -1
- package/dist-server/server/modules/database/repositories/github-tokens.js +2 -2
- package/dist-server/server/modules/database/repositories/notification-channel-endpoints.js +1 -1
- package/dist-server/server/modules/database/repositories/notification-preferences.js +1 -1
- package/dist-server/server/modules/database/repositories/projects.db.js +1 -1
- package/dist-server/server/modules/database/repositories/provider-models.js +1 -1
- package/dist-server/server/modules/database/repositories/push-subscriptions.js +1 -1
- package/dist-server/server/modules/database/repositories/scan-state.db.js +1 -1
- package/dist-server/server/modules/database/repositories/scheduled-messages.db.js +1 -1
- package/dist-server/server/modules/database/repositories/session-drafts.db.js +1 -1
- package/dist-server/server/modules/database/repositories/sessions.db.js +2 -2
- package/dist-server/server/modules/database/repositories/user-preferences.db.js +1 -1
- package/dist-server/server/modules/database/repositories/users.js +1 -1
- package/dist-server/server/modules/database/repositories/vapid-keys.js +1 -1
- package/dist-server/server/modules/database/tests/projects.db.integration.test.js +3 -3
- package/dist-server/server/modules/database/tests/provider-models.db.integration.test.js +2 -2
- package/dist-server/server/modules/database/tests/sessions-provider-mapping.test.js +3 -3
- package/dist-server/server/modules/database/tests/sessions.db.integration.test.js +4 -4
- package/dist-server/server/modules/database/tests/user-preferences.db.integration.test.js +1 -1
- package/dist-server/server/modules/file-tree/file-tree.module.js +3 -3
- package/dist-server/server/modules/file-tree/index.js +1 -1
- package/dist-server/server/modules/file-tree/tests/file-tree.routes.test.js +1 -1
- package/dist-server/server/modules/file-tree/tests/file-tree.service.test.js +1 -1
- package/dist-server/server/modules/git/git.module.js +1 -1
- package/dist-server/server/modules/git/tests/git-init.routes.test.js +1 -1
- package/dist-server/server/modules/notifications/index.js +3 -3
- package/dist-server/server/modules/notifications/notifications.routes.js +1 -1
- package/dist-server/server/modules/notifications/services/desktop-notification-clients.service.js +1 -1
- package/dist-server/server/modules/notifications/services/notification-orchestrator.service.js +2 -2
- package/dist-server/server/modules/notifications/tests/notification-orchestrator.integration.test.js +1 -1
- package/dist-server/server/modules/notifications/websocket/desktop-notifications-websocket.service.js +1 -1
- package/dist-server/server/modules/projects/projects.routes.js +6 -6
- package/dist-server/server/modules/projects/services/project-clone.service.js +2 -2
- package/dist-server/server/modules/projects/services/project-delete.service.js +1 -1
- package/dist-server/server/modules/projects/services/project-management.service.js +1 -1
- package/dist-server/server/modules/projects/services/project-star.service.js +1 -1
- package/dist-server/server/modules/projects/services/projects-has-taskmaster.service.js +1 -1
- package/dist-server/server/modules/projects/services/projects-with-sessions-fetch.service.js +3 -3
- package/dist-server/server/modules/projects/tests/project-clone.service.test.js +1 -1
- package/dist-server/server/modules/projects/tests/project-management.service.test.js +1 -1
- package/dist-server/server/modules/projects/tests/project-star.service.test.js +2 -2
- package/dist-server/server/modules/projects/tests/projects-has-taskmaster.service.test.js +1 -1
- package/dist-server/server/modules/providers/list/claude/claude-mcp.provider.js +1 -1
- package/dist-server/server/modules/providers/list/claude/claude-models.provider.js +1 -1
- package/dist-server/server/modules/providers/list/claude/claude-runtime.provider.js +2 -2
- package/dist-server/server/modules/providers/list/claude/claude-session-synchronizer.provider.js +1 -1
- package/dist-server/server/modules/providers/list/claude/claude-sessions.provider.js +2 -2
- package/dist-server/server/modules/providers/list/claude/claude-skills.provider.js +1 -1
- package/dist-server/server/modules/providers/list/claude/claude.provider.js +9 -9
- package/dist-server/server/modules/providers/list/codex/codex-fork.provider.js +1 -1
- package/dist-server/server/modules/providers/list/codex/codex-mcp.provider.js +1 -1
- package/dist-server/server/modules/providers/list/codex/codex-runtime.provider.js +1 -1
- package/dist-server/server/modules/providers/list/codex/codex-session-synchronizer.provider.js +1 -1
- package/dist-server/server/modules/providers/list/codex/codex-sessions.provider.js +2 -2
- package/dist-server/server/modules/providers/list/codex/codex-skills.provider.js +1 -1
- package/dist-server/server/modules/providers/list/codex/codex.provider.js +9 -9
- package/dist-server/server/modules/providers/list/cursor/cursor-mcp.provider.js +1 -1
- package/dist-server/server/modules/providers/list/cursor/cursor-runtime.provider.js +1 -1
- package/dist-server/server/modules/providers/list/cursor/cursor-session-synchronizer.provider.js +1 -1
- package/dist-server/server/modules/providers/list/cursor/cursor-skills.provider.js +1 -1
- package/dist-server/server/modules/providers/list/cursor/cursor.provider.js +8 -8
- package/dist-server/server/modules/providers/list/mistral/mistral-runtime.provider.js +1 -1
- package/dist-server/server/modules/providers/list/mistral/mistral-sessions.provider.js +4 -172
- package/dist-server/server/modules/providers/list/mistral/mistral-sessions.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/mistral/mistral.provider.js +8 -8
- package/dist-server/server/modules/providers/list/opencode/opencode-mcp.provider.js +1 -1
- package/dist-server/server/modules/providers/list/opencode/opencode-models.provider.js +1 -1
- package/dist-server/server/modules/providers/list/opencode/opencode-runtime.provider.js +1 -1
- package/dist-server/server/modules/providers/list/opencode/opencode-session-synchronizer.provider.js +1 -1
- package/dist-server/server/modules/providers/list/opencode/opencode-skills.provider.js +1 -1
- package/dist-server/server/modules/providers/list/opencode/opencode.provider.js +8 -8
- package/dist-server/server/modules/providers/provider.registry.js +5 -5
- package/dist-server/server/modules/providers/provider.routes.js +8 -8
- package/dist-server/server/modules/providers/services/mcp.service.js +1 -1
- package/dist-server/server/modules/providers/services/provider-auth.service.js +1 -1
- package/dist-server/server/modules/providers/services/provider-models.service.js +2 -2
- package/dist-server/server/modules/providers/services/provider-runtime.service.js +3 -3
- package/dist-server/server/modules/providers/services/provider-token-usage.service.js +1 -1
- package/dist-server/server/modules/providers/services/session-conversations-search.service.js +1 -1
- package/dist-server/server/modules/providers/services/session-synchronizer.service.js +2 -2
- package/dist-server/server/modules/providers/services/sessions-watcher.service.js +2 -2
- package/dist-server/server/modules/providers/services/sessions.service.js +4 -4
- package/dist-server/server/modules/providers/services/skills.service.js +1 -1
- package/dist-server/server/modules/providers/tests/claude-auth.test.js +1 -1
- package/dist-server/server/modules/providers/tests/claude-sessions.test.js +2 -2
- package/dist-server/server/modules/providers/tests/claude-subagent-echo.test.js +1 -1
- package/dist-server/server/modules/providers/tests/claude-token-budget.test.js +1 -1
- package/dist-server/server/modules/providers/tests/codex-message-editing.test.js +6 -6
- package/dist-server/server/modules/providers/tests/codex-session-fork.test.js +2 -2
- package/dist-server/server/modules/providers/tests/codex-sessions.test.js +3 -3
- package/dist-server/server/modules/providers/tests/mcp.test.js +1 -1
- package/dist-server/server/modules/providers/tests/opencode-models.test.js +1 -1
- package/dist-server/server/modules/providers/tests/opencode-sessions.test.js +3 -3
- package/dist-server/server/modules/providers/tests/provider-attachment-history.test.js +3 -3
- package/dist-server/server/modules/providers/tests/provider-models.service.test.js +1 -1
- package/dist-server/server/modules/providers/tests/provider-runtime.service.test.js +2 -2
- package/dist-server/server/modules/providers/tests/provider-token-usage.service.test.js +1 -1
- package/dist-server/server/modules/providers/tests/provider.routes.test.js +2 -2
- package/dist-server/server/modules/providers/tests/session-fork.test.js +3 -3
- package/dist-server/server/modules/providers/tests/session-history-cache.service.test.js +1 -1
- package/dist-server/server/modules/providers/tests/session-orphan-prune.test.js +2 -2
- package/dist-server/server/modules/providers/tests/session-synchronizer-coalescing.test.js +3 -3
- package/dist-server/server/modules/providers/tests/sessions-details.test.js +2 -2
- package/dist-server/server/modules/providers/tests/sessions.service.test.js +2 -2
- package/dist-server/server/modules/providers/tests/skills.test.js +1 -1
- package/dist-server/server/modules/scheduled-messages/scheduled-messages.routes.js +1 -1
- package/dist-server/server/modules/scheduled-messages/services/scheduled-message-dispatcher.service.js +2 -2
- package/dist-server/server/modules/scheduled-messages/services/scheduled-messages.service.js +1 -1
- package/dist-server/server/modules/scheduled-messages/tests/scheduled-messages.test.js +4 -4
- package/dist-server/server/modules/settings/settings.module.js +2 -2
- package/dist-server/server/modules/taskmaster/taskmaster.module.js +1 -1
- package/dist-server/server/modules/taskmaster/taskmaster.routes.js +1 -1
- package/dist-server/server/modules/taskmaster/tests/taskmaster.routes.test.js +1 -1
- package/dist-server/server/modules/user/user.module.js +1 -1
- package/dist-server/server/modules/websocket/services/chat-run-registry.service.js +3 -3
- package/dist-server/server/modules/websocket/services/chat-session-writer.service.js +1 -1
- package/dist-server/server/modules/websocket/services/chat-websocket.service.js +4 -4
- package/dist-server/server/modules/websocket/services/session-upsert-broadcast.service.js +3 -3
- package/dist-server/server/modules/websocket/services/websocket-server.service.js +5 -5
- package/dist-server/server/modules/websocket/services/websocket-writer.service.js +1 -1
- package/dist-server/server/modules/websocket/tests/chat-attachment-filter.test.js +1 -1
- package/dist-server/server/modules/websocket/tests/chat-edit-send.test.js +5 -5
- package/dist-server/server/modules/websocket/tests/chat-run-registry.test.js +3 -3
- package/dist-server/server/modules/websocket/tests/session-upsert-broadcast.test.js +3 -3
- package/dist-server/server/modules/websocket/tests/shell-websocket.service.test.js +1 -1
- package/dist-server/server/modules/websocket/tests/websocket-heartbeat.service.test.js +1 -1
- package/dist-server/server/modules/worktrees/services/worktree-create.service.js +1 -1
- package/dist-server/server/modules/worktrees/services/worktree-list.service.js +1 -1
- package/dist-server/server/modules/worktrees/services/worktree-merge.service.js +1 -1
- package/dist-server/server/modules/worktrees/services/worktree-open.service.js +1 -1
- package/dist-server/server/modules/worktrees/services/worktree-remove.service.js +1 -1
- package/dist-server/server/modules/worktrees/tests/worktree-create-and-open.service.test.js +1 -1
- package/dist-server/server/modules/worktrees/tests/worktree-create.service.test.js +1 -1
- package/dist-server/server/modules/worktrees/tests/worktree-git.service.test.js +1 -1
- package/dist-server/server/modules/worktrees/tests/worktree-list.service.test.js +1 -1
- package/dist-server/server/modules/worktrees/tests/worktree-merge.service.test.js +1 -1
- package/dist-server/server/modules/worktrees/tests/worktree-open.service.test.js +1 -1
- package/dist-server/server/modules/worktrees/tests/worktree-remove.service.test.js +1 -1
- package/dist-server/server/modules/worktrees/tests/worktrees.routes.test.js +1 -1
- package/dist-server/server/modules/worktrees/worktrees.module.js +10 -10
- package/dist-server/server/piecemaker/library/index.js +1 -10
- package/dist-server/server/piecemaker/library/index.js.map +1 -1
- package/dist-server/server/piecemaker/library/marketplace.js +70 -80
- package/dist-server/server/piecemaker/library/marketplace.js.map +1 -1
- package/dist-server/server/piecemaker/library/provider-skills.js +0 -19
- package/dist-server/server/piecemaker/library/provider-skills.js.map +1 -1
- package/dist-server/server/piecemaker/library/provider-skills.test.js +1 -35
- package/dist-server/server/piecemaker/library/provider-skills.test.js.map +1 -1
- package/dist-server/server/piecemaker/library/routes.js +1 -10
- package/dist-server/server/piecemaker/library/routes.js.map +1 -1
- package/dist-server/server/piecemaker/library/store.js +2 -21
- package/dist-server/server/piecemaker/library/store.js.map +1 -1
- package/dist-server/server/shared/image-attachments.js +1 -1
- package/dist-server/server/shared/message-unification.js +1 -1
- package/dist-server/server/shared/tests/application-data-root.test.js +1 -1
- package/dist-server/server/shared/tests/claude-cli-path.test.js +1 -1
- package/dist-server/server/shared/tests/image-attachments.test.js +1 -1
- package/dist-server/server/shared/tests/message-unification.test.js +1 -1
- package/dist-server/server/shared/tests/slice-tail-page.test.js +1 -1
- package/dist-server/server/shared/utils.js +1 -1
- package/package.json +1 -1
- package/product.config.json +2 -2
- package/scripts/release/prepare-desktop-app.js +0 -1
- package/server/modules/providers/list/mistral/mistral-sessions.provider.ts +5 -199
- package/server/piecemaker/library/index.ts +1 -4
- package/server/piecemaker/library/marketplace.ts +58 -64
- package/server/piecemaker/library/provider-skills.test.ts +1 -37
- package/server/piecemaker/library/provider-skills.ts +0 -18
- package/server/piecemaker/library/routes.ts +1 -6
- package/server/piecemaker/library/store.ts +2 -18
- package/dist/assets/arc-DYt0oU_6.js +0 -1
- package/dist/assets/architectureDiagram-T3A2C74G-Dn6DhYDe.js +0 -36
- package/dist/assets/blockDiagram-VBNYF7ZC-CsvhTLZi.js +0 -132
- package/dist/assets/c4Diagram-5PPSVZJV-BuPnjHm6.js +0 -10
- package/dist/assets/channel-Czt0N91A.js +0 -1
- package/dist/assets/chunk-5RXB4S5H-D5UwN5cg.js +0 -231
- package/dist/assets/chunk-GF5L2VYU-CJuiA7R4.js +0 -206
- package/dist/assets/chunk-KBJHAD2P-BeSQsoqv.js +0 -1
- package/dist/assets/chunk-RYQCIY6F-CPgwsb0o.js +0 -1
- package/dist/assets/classDiagram-JCYQIIEL-BrnQyrwR.js +0 -1
- package/dist/assets/classDiagram-v2-OCEON4UE-BrnQyrwR.js +0 -1
- package/dist/assets/cose-bilkent-JH36ORCC-XAdYMfi5.js +0 -1
- package/dist/assets/cynefin-VYW2F7L2-d2GpDBn-.js +0 -178
- package/dist/assets/cytoscape.esm-C10L9Icf.js +0 -331
- package/dist/assets/dagre-VZM6K2ZE-BxujKIsf.js +0 -4
- package/dist/assets/diagram-7IWD3JNH-CJn9hobL.js +0 -30
- package/dist/assets/diagram-Q27KOJAE-DDdfoXt-.js +0 -24
- package/dist/assets/erDiagram-JOGREHBK-BmdN66-A.js +0 -85
- package/dist/assets/flowDiagram-UKHOOZJN-Dsp5LwJz.js +0 -156
- package/dist/assets/ganttDiagram-PKOTCBZU-CYfCQ4Yi.js +0 -292
- package/dist/assets/graph-Cx-EqisW.js +0 -1
- package/dist/assets/index-CqFxV_pT.css +0 -32
- package/dist/assets/index-dWwHeqcq.js +0 -4989
- package/dist/assets/infoDiagram-6WML65LV-B1EfV5Bm.js +0 -2
- package/dist/assets/ishikawaDiagram-WSZJBQD7-OuQJfUii.js +0 -70
- package/dist/assets/journeyDiagram-NVQOT4AX-DHIilb_4.js +0 -139
- package/dist/assets/layout-D6BstSzF.js +0 -1
- package/dist/assets/map-CV9uif0g.js +0 -1
- package/dist/assets/mermaid.core-DbSHejzG.js +0 -312
- package/dist/assets/quadrantDiagram-CIZ2JOQS-CvW9ldJo.js +0 -7
- package/dist/assets/requirementDiagram-LRYGKXZP-DbcP4MGI.js +0 -84
- package/dist/assets/sequenceDiagram-SI44F4Z6-D3zd2eJS.js +0 -162
- package/dist/assets/stateDiagram-OKZ733FA-DMqQgpiD.js +0 -1
- package/dist/assets/stateDiagram-v2-UEYNNEHI-DprF_P9y.js +0 -1
- package/dist/assets/swimlanes-SLNWSIFB-Cb8rIhB1.js +0 -2
- package/dist/assets/swimlanesDiagram-ULZ7WXOC-C6NVYMho.js +0 -8
- package/dist/assets/timeline-definition-Z64GVDOM-BQ4r_QsK.js +0 -120
- package/dist/assets/vendor-codemirror-CYrSt7-U.js +0 -41
- package/dist/assets/vendor-react-BGZc9oRE.js +0 -59
- package/dist/assets/vendor-xterm-CS4rQ5Mr.js +0 -66
- package/dist/assets/xychartDiagram-ELKLHX3M-CSJRTKCr.js +0 -7
- package/server/piecemaker/activation/library.cjs.bak +0 -223
- package/server/piecemaker/activation/markdown.cjs.bak +0 -78
- package/server/piecemaker/vendor/.env +0 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AppError } from '../../../shared/utils.js';
|
|
2
|
-
import { countChangedFiles, findWorktreeEntryByPath, listWorktreePorcelainEntries, } from '
|
|
2
|
+
import { countChangedFiles, findWorktreeEntryByPath, listWorktreePorcelainEntries, } from './worktree-git.service.js';
|
|
3
3
|
/**
|
|
4
4
|
* Removes a linked worktree (never the main one), optionally deletes its
|
|
5
5
|
* branch, and archives the CloudCLI project registered for the directory so it
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import assert from 'node:assert/strict';
|
|
2
2
|
import test from 'node:test';
|
|
3
|
-
import { createAndOpenWorktree } from '
|
|
3
|
+
import { createAndOpenWorktree } from '../services/worktree-create-and-open.service.js';
|
|
4
4
|
const input = {
|
|
5
5
|
projectPath: '/workspace/repo',
|
|
6
6
|
branch: 'feature/login',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import assert from 'node:assert/strict';
|
|
2
2
|
import test from 'node:test';
|
|
3
|
-
import { createWorktree } from '
|
|
3
|
+
import { createWorktree } from '../services/worktree-create.service.js';
|
|
4
4
|
import { AppError } from '../../../shared/utils.js';
|
|
5
5
|
const PORCELAIN = [
|
|
6
6
|
'worktree /home/user/repo',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import assert from 'node:assert/strict';
|
|
2
2
|
import test from 'node:test';
|
|
3
|
-
import { findWorktreeEntryByPath, parseWorktreeListPorcelain, validateWorktreeBranchName, } from '
|
|
3
|
+
import { findWorktreeEntryByPath, parseWorktreeListPorcelain, validateWorktreeBranchName, } from '../services/worktree-git.service.js';
|
|
4
4
|
import { AppError } from '../../../shared/utils.js';
|
|
5
5
|
const SAMPLE_PORCELAIN = [
|
|
6
6
|
'worktree /home/user/repo',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import assert from 'node:assert/strict';
|
|
2
2
|
import test from 'node:test';
|
|
3
|
-
import { listWorktrees } from '
|
|
3
|
+
import { listWorktrees } from '../services/worktree-list.service.js';
|
|
4
4
|
test('listWorktrees bounds concurrent per-worktree Git inspection and preserves ordering', async () => {
|
|
5
5
|
const entryCount = 10;
|
|
6
6
|
const porcelain = Array.from({ length: entryCount }, (_, index) => [
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import assert from 'node:assert/strict';
|
|
2
2
|
import test from 'node:test';
|
|
3
|
-
import { mergeWorktree } from '
|
|
3
|
+
import { mergeWorktree } from '../services/worktree-merge.service.js';
|
|
4
4
|
import { AppError } from '../../../shared/utils.js';
|
|
5
5
|
const PORCELAIN = [
|
|
6
6
|
'worktree /home/user/repo',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import assert from 'node:assert/strict';
|
|
2
2
|
import test from 'node:test';
|
|
3
|
-
import { openWorktreeAsProject } from '
|
|
3
|
+
import { openWorktreeAsProject } from '../services/worktree-open.service.js';
|
|
4
4
|
import { normalizeProjectPath } from '../../../shared/utils.js';
|
|
5
5
|
const MAIN_PATH = normalizeProjectPath('/home/user/repo');
|
|
6
6
|
const WORKTREE_PATH = normalizeProjectPath('/home/user/repo-worktrees/feature-login');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import assert from 'node:assert/strict';
|
|
2
2
|
import test from 'node:test';
|
|
3
|
-
import { removeWorktree } from '
|
|
3
|
+
import { removeWorktree } from '../services/worktree-remove.service.js';
|
|
4
4
|
import { AppError } from '../../../shared/utils.js';
|
|
5
5
|
const PORCELAIN = [
|
|
6
6
|
'worktree /home/user/repo',
|
|
@@ -2,7 +2,7 @@ import assert from 'node:assert/strict';
|
|
|
2
2
|
import { once } from 'node:events';
|
|
3
3
|
import test from 'node:test';
|
|
4
4
|
import express from 'express';
|
|
5
|
-
import { createWorktreesRouter } from '
|
|
5
|
+
import { createWorktreesRouter } from '../worktrees.routes.js';
|
|
6
6
|
import { AppError } from '../../../shared/utils.js';
|
|
7
7
|
function createFakeServices(overrides = {}) {
|
|
8
8
|
const unused = async () => {
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { access } from 'node:fs/promises';
|
|
2
|
-
import { projectsDb } from '
|
|
3
|
-
import { createProject, deleteOrArchiveProject, restoreArchivedProject, } from '
|
|
2
|
+
import { projectsDb } from '../database/index.js';
|
|
3
|
+
import { createProject, deleteOrArchiveProject, restoreArchivedProject, } from '../projects/index.js';
|
|
4
4
|
import { AppError } from '../../shared/utils.js';
|
|
5
|
-
import { createWorktree } from '
|
|
6
|
-
import { createAndOpenWorktree } from '
|
|
7
|
-
import { runGitCommand } from '
|
|
8
|
-
import { listWorktrees } from '
|
|
9
|
-
import { mergeWorktree } from '
|
|
10
|
-
import { openWorktreeAsProject } from '
|
|
11
|
-
import { removeWorktree } from '
|
|
12
|
-
import { createWorktreesRouter } from '
|
|
5
|
+
import { createWorktree } from './services/worktree-create.service.js';
|
|
6
|
+
import { createAndOpenWorktree } from './services/worktree-create-and-open.service.js';
|
|
7
|
+
import { runGitCommand } from './services/worktree-git.service.js';
|
|
8
|
+
import { listWorktrees } from './services/worktree-list.service.js';
|
|
9
|
+
import { mergeWorktree } from './services/worktree-merge.service.js';
|
|
10
|
+
import { openWorktreeAsProject } from './services/worktree-open.service.js';
|
|
11
|
+
import { removeWorktree } from './services/worktree-remove.service.js';
|
|
12
|
+
import { createWorktreesRouter } from './worktrees.routes.js';
|
|
13
13
|
/**
|
|
14
14
|
* Real filesystem adapter used only by Worktrees production composition.
|
|
15
15
|
*
|
|
@@ -6,19 +6,10 @@ import { createRequire } from 'node:module';
|
|
|
6
6
|
import express from 'express';
|
|
7
7
|
import { createLibraryStore } from './store.js';
|
|
8
8
|
import { createLibraryRouter } from './routes.js';
|
|
9
|
-
import { createLibraryMarketplaceRouter
|
|
10
|
-
import { scanAndPersistLibraryProviderSkills } from './provider-skills.js';
|
|
9
|
+
import { createLibraryMarketplaceRouter } from './marketplace.js';
|
|
11
10
|
export { installLibraryRuntime } from './runtime.js';
|
|
12
11
|
export async function startLibraryBackend(home, applicationRoot) {
|
|
13
12
|
const store = createLibraryStore(home);
|
|
14
|
-
try {
|
|
15
|
-
await scanAndPersistLibraryProviderSkills(store, undefined);
|
|
16
|
-
}
|
|
17
|
-
catch { }
|
|
18
|
-
try {
|
|
19
|
-
scanInstalledLibraryCollections(store, os.homedir());
|
|
20
|
-
}
|
|
21
|
-
catch { }
|
|
22
13
|
const require = createRequire(import.meta.url);
|
|
23
14
|
const { createActivationRouter } = require(path.join(applicationRoot, 'server/piecemaker/activation/index.cjs'));
|
|
24
15
|
const options = { repoRoot: path.join(applicationRoot, 'server/piecemaker/vendor'), piecemakerHome: home, homeDir: home, userHome: os.homedir(), isOriginAllowed: () => true };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/piecemaker/library/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,8BAA8B,EAAE
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/piecemaker/library/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,76 +4,6 @@ import { createRequire } from 'node:module';
|
|
|
4
4
|
import { spawnSync } from 'node:child_process';
|
|
5
5
|
import express from 'express';
|
|
6
6
|
import { importLibraryDirectory } from './migrate.js';
|
|
7
|
-
export function scanInstalledLibraryCollections(store, userHome) {
|
|
8
|
-
const filename = path.join(userHome, '.claude/plugins/installed_plugins.json');
|
|
9
|
-
const registry = fs.existsSync(filename) ? JSON.parse(fs.readFileSync(filename, 'utf8')).plugins || {} : {};
|
|
10
|
-
const pluginsDirectory = path.join(userHome, '.claude', 'plugins');
|
|
11
|
-
if (!fs.existsSync(pluginsDirectory) || fs.lstatSync(pluginsDirectory).isSymbolicLink())
|
|
12
|
-
return;
|
|
13
|
-
const pluginsRoot = fs.realpathSync(pluginsDirectory);
|
|
14
|
-
for (const [id, installs] of Object.entries(registry)) {
|
|
15
|
-
if (store.hasCollection(id))
|
|
16
|
-
continue;
|
|
17
|
-
if (!Array.isArray(installs))
|
|
18
|
-
continue;
|
|
19
|
-
const install = installs.find((entry) => entry && typeof entry.installPath === 'string');
|
|
20
|
-
if (!install || !fs.existsSync(install.installPath))
|
|
21
|
-
continue;
|
|
22
|
-
const installRoot = fs.realpathSync(install.installPath);
|
|
23
|
-
if (!installRoot.startsWith(`${pluginsRoot}${path.sep}`))
|
|
24
|
-
continue;
|
|
25
|
-
let manifest = {};
|
|
26
|
-
const manifestPath = path.join(installRoot, '.claude-plugin', 'plugin.json');
|
|
27
|
-
try {
|
|
28
|
-
manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8'));
|
|
29
|
-
}
|
|
30
|
-
catch { }
|
|
31
|
-
const imported = [
|
|
32
|
-
...importLibraryDirectory(store, path.join(installRoot, 'skills'), 'skill', false),
|
|
33
|
-
...importLibraryDirectory(store, path.join(installRoot, 'agents'), 'agent', false),
|
|
34
|
-
];
|
|
35
|
-
const commandsDirectory = path.join(installRoot, 'commands');
|
|
36
|
-
if (fs.existsSync(commandsDirectory) && !fs.lstatSync(commandsDirectory).isSymbolicLink()) {
|
|
37
|
-
for (const command of fs.readdirSync(commandsDirectory, { withFileTypes: true })) {
|
|
38
|
-
if (!command.isFile() || !command.name.toLowerCase().endsWith('.md'))
|
|
39
|
-
continue;
|
|
40
|
-
const source = path.join(commandsDirectory, command.name);
|
|
41
|
-
imported.push({ source, id: store.importFile(source, 'skill', false), linked: false });
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
const files = [];
|
|
45
|
-
let totalSize = 0;
|
|
46
|
-
const collect = (directory, relative = '') => {
|
|
47
|
-
for (const entry of fs.readdirSync(directory, { withFileTypes: true })) {
|
|
48
|
-
if (entry.name === '.git' || entry.name === 'node_modules' || entry.name === '__pycache__' || entry.isSymbolicLink())
|
|
49
|
-
continue;
|
|
50
|
-
const relativePath = path.posix.join(relative.split(path.sep).join('/'), entry.name);
|
|
51
|
-
const absolutePath = path.join(directory, entry.name);
|
|
52
|
-
if (entry.isDirectory())
|
|
53
|
-
collect(absolutePath, relativePath);
|
|
54
|
-
else if (entry.isFile()) {
|
|
55
|
-
const content = fs.readFileSync(absolutePath);
|
|
56
|
-
totalSize += content.length;
|
|
57
|
-
if (totalSize > 30 * 1024 * 1024 || files.length >= 5000)
|
|
58
|
-
throw new Error(`Plugin trop volumineux : ${id}`);
|
|
59
|
-
files.push({ path: relativePath, content });
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
collect(installRoot);
|
|
64
|
-
store.upsertCollection({
|
|
65
|
-
id,
|
|
66
|
-
name: manifest.displayName || manifest.name || id,
|
|
67
|
-
description: manifest.description || '',
|
|
68
|
-
source: installRoot,
|
|
69
|
-
entries: imported.map((entry) => ({
|
|
70
|
-
entryId: entry.id,
|
|
71
|
-
rootPath: path.relative(installRoot, entry.source).split(path.sep).join('/'),
|
|
72
|
-
})),
|
|
73
|
-
files,
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
7
|
export function createLibraryMarketplaceRouter(store, applicationRoot, userHome) {
|
|
78
8
|
const require = createRequire(import.meta.url);
|
|
79
9
|
const { listMarketplaceConnectors, registerOfficialMarketplace } = require(path.join(applicationRoot, 'server/piecemaker/vendor/websocket-server/admin-routes.cjs'));
|
|
@@ -93,7 +23,75 @@ export function createLibraryMarketplaceRouter(store, applicationRoot, userHome)
|
|
|
93
23
|
const filename = path.join(userHome, '.claude/plugins/installed_plugins.json');
|
|
94
24
|
return fs.existsSync(filename) ? JSON.parse(fs.readFileSync(filename, 'utf8')).plugins || {} : {};
|
|
95
25
|
};
|
|
96
|
-
const importInstalledCollections = () =>
|
|
26
|
+
const importInstalledCollections = () => {
|
|
27
|
+
const registry = installed();
|
|
28
|
+
const pluginsDirectory = path.join(userHome, '.claude', 'plugins');
|
|
29
|
+
if (!fs.existsSync(pluginsDirectory) || fs.lstatSync(pluginsDirectory).isSymbolicLink())
|
|
30
|
+
return;
|
|
31
|
+
const pluginsRoot = fs.realpathSync(pluginsDirectory);
|
|
32
|
+
for (const [id, installs] of Object.entries(registry)) {
|
|
33
|
+
if (store.hasCollection(id))
|
|
34
|
+
continue;
|
|
35
|
+
if (!Array.isArray(installs))
|
|
36
|
+
continue;
|
|
37
|
+
const install = installs.find((entry) => entry && typeof entry.installPath === 'string');
|
|
38
|
+
if (!install || !fs.existsSync(install.installPath))
|
|
39
|
+
continue;
|
|
40
|
+
const installRoot = fs.realpathSync(install.installPath);
|
|
41
|
+
if (!installRoot.startsWith(`${pluginsRoot}${path.sep}`))
|
|
42
|
+
continue;
|
|
43
|
+
let manifest = {};
|
|
44
|
+
const manifestPath = path.join(installRoot, '.claude-plugin', 'plugin.json');
|
|
45
|
+
try {
|
|
46
|
+
manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8'));
|
|
47
|
+
}
|
|
48
|
+
catch { }
|
|
49
|
+
const imported = [
|
|
50
|
+
...importLibraryDirectory(store, path.join(installRoot, 'skills'), 'skill', false),
|
|
51
|
+
...importLibraryDirectory(store, path.join(installRoot, 'agents'), 'agent', false),
|
|
52
|
+
];
|
|
53
|
+
const commandsDirectory = path.join(installRoot, 'commands');
|
|
54
|
+
if (fs.existsSync(commandsDirectory) && !fs.lstatSync(commandsDirectory).isSymbolicLink()) {
|
|
55
|
+
for (const command of fs.readdirSync(commandsDirectory, { withFileTypes: true })) {
|
|
56
|
+
if (!command.isFile() || !command.name.toLowerCase().endsWith('.md'))
|
|
57
|
+
continue;
|
|
58
|
+
const source = path.join(commandsDirectory, command.name);
|
|
59
|
+
imported.push({ source, id: store.importFile(source, 'skill', false), linked: false });
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
const files = [];
|
|
63
|
+
let totalSize = 0;
|
|
64
|
+
const collect = (directory, relative = '') => {
|
|
65
|
+
for (const entry of fs.readdirSync(directory, { withFileTypes: true })) {
|
|
66
|
+
if (entry.name === '.git' || entry.name === 'node_modules' || entry.name === '__pycache__' || entry.isSymbolicLink())
|
|
67
|
+
continue;
|
|
68
|
+
const relativePath = path.posix.join(relative.split(path.sep).join('/'), entry.name);
|
|
69
|
+
const absolutePath = path.join(directory, entry.name);
|
|
70
|
+
if (entry.isDirectory())
|
|
71
|
+
collect(absolutePath, relativePath);
|
|
72
|
+
else if (entry.isFile()) {
|
|
73
|
+
const content = fs.readFileSync(absolutePath);
|
|
74
|
+
totalSize += content.length;
|
|
75
|
+
if (totalSize > 30 * 1024 * 1024 || files.length >= 5000)
|
|
76
|
+
throw new Error(`Plugin trop volumineux : ${id}`);
|
|
77
|
+
files.push({ path: relativePath, content });
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
collect(installRoot);
|
|
82
|
+
store.upsertCollection({
|
|
83
|
+
id,
|
|
84
|
+
name: manifest.displayName || manifest.name || id,
|
|
85
|
+
description: manifest.description || '',
|
|
86
|
+
source: installRoot,
|
|
87
|
+
entries: imported.map((entry) => ({
|
|
88
|
+
entryId: entry.id,
|
|
89
|
+
rootPath: path.relative(installRoot, entry.source).split(path.sep).join('/'),
|
|
90
|
+
})),
|
|
91
|
+
files,
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
};
|
|
97
95
|
const disable = (id) => {
|
|
98
96
|
const filename = path.join(userHome, '.claude/settings.json');
|
|
99
97
|
const settings = fs.existsSync(filename) ? JSON.parse(fs.readFileSync(filename, 'utf8')) : {};
|
|
@@ -115,17 +113,9 @@ export function createLibraryMarketplaceRouter(store, applicationRoot, userHome)
|
|
|
115
113
|
}
|
|
116
114
|
});
|
|
117
115
|
router.get('/plugins', (req, res) => {
|
|
118
|
-
try {
|
|
119
|
-
res.json({ plugins: store.listCollections(typeof req.query.workspacePath === 'string' ? req.query.workspacePath : undefined) });
|
|
120
|
-
}
|
|
121
|
-
catch (error) {
|
|
122
|
-
res.status(400).json({ error: error.message });
|
|
123
|
-
}
|
|
124
|
-
});
|
|
125
|
-
router.post('/plugins/scan', (_req, res) => {
|
|
126
116
|
try {
|
|
127
117
|
importInstalledCollections();
|
|
128
|
-
res.json({
|
|
118
|
+
res.json({ plugins: store.listCollections(typeof req.query.workspacePath === 'string' ? req.query.workspacePath : undefined) });
|
|
129
119
|
}
|
|
130
120
|
catch (error) {
|
|
131
121
|
res.status(400).json({ error: error.message });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marketplace.js","sourceRoot":"","sources":["../../../../server/piecemaker/library/marketplace.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"marketplace.js","sourceRoot":"","sources":["../../../../server/piecemaker/library/marketplace.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,23 +18,4 @@ export async function listLibraryProviderSkills(workspacePath, reader = provider
|
|
|
18
18
|
}));
|
|
19
19
|
return { providers: results };
|
|
20
20
|
}
|
|
21
|
-
export async function scanAndPersistLibraryProviderSkills(store, workspacePath, reader = providerSkillsService) {
|
|
22
|
-
const result = await listLibraryProviderSkills(workspacePath, reader);
|
|
23
|
-
for (const provider of result.providers) {
|
|
24
|
-
for (const skill of provider.skills) {
|
|
25
|
-
if (!skill.sourcePath)
|
|
26
|
-
continue;
|
|
27
|
-
try {
|
|
28
|
-
store.importFile(skill.sourcePath, 'skill');
|
|
29
|
-
}
|
|
30
|
-
catch {
|
|
31
|
-
try {
|
|
32
|
-
store.importFile(skill.sourcePath, 'skill', false);
|
|
33
|
-
}
|
|
34
|
-
catch { }
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
return result;
|
|
39
|
-
}
|
|
40
21
|
//# sourceMappingURL=provider-skills.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-skills.js","sourceRoot":"","sources":["../../../../server/piecemaker/library/provider-skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"provider-skills.js","sourceRoot":"","sources":["../../../../server/piecemaker/library/provider-skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAGrE,MAAM,uBAAuB,GAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAMpG,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,aAAiC,EACjC,SAA+B,qBAAqB;IAEpD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QAC/E,IAAI,CAAC;YACH,OAAO;gBACL,QAAQ;gBACR,MAAM,EAAE,MAAM,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,CAAC;aACrE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,QAAQ;gBACR,MAAM,EAAE,EAAE;gBACV,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB;aACzE,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC,CAAC;IAEJ,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;AAChC,CAAC"}
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
import assert from 'node:assert/strict';
|
|
2
|
-
import fs from 'node:fs';
|
|
3
|
-
import os from 'node:os';
|
|
4
|
-
import path from 'node:path';
|
|
5
2
|
import test from 'node:test';
|
|
6
|
-
import { listLibraryProviderSkills
|
|
7
|
-
import { createLibraryStore } from './store.js';
|
|
3
|
+
import { listLibraryProviderSkills } from './provider-skills.js';
|
|
8
4
|
test('library provider skills include every provider and isolate failures', async () => {
|
|
9
5
|
const calls = [];
|
|
10
6
|
const reader = {
|
|
@@ -22,34 +18,4 @@ test('library provider skills include every provider and isolate failures', asyn
|
|
|
22
18
|
assert.deepEqual(result.providers.find(({ provider }) => provider === 'cursor')?.skills, []);
|
|
23
19
|
assert.equal(result.providers.filter(({ skills }) => skills.length === 1).length, 4);
|
|
24
20
|
});
|
|
25
|
-
test('provider skill scans persist the catalogue without duplicating or replacing edits', async (t) => {
|
|
26
|
-
const root = fs.mkdtempSync(path.join(os.tmpdir(), 'pm-library-scan-'));
|
|
27
|
-
const source = path.join(root, 'SKILL.md');
|
|
28
|
-
const store = createLibraryStore(path.join(root, '.piecemaker'));
|
|
29
|
-
t.after(() => { store.close(); fs.rmSync(root, { recursive: true, force: true }); });
|
|
30
|
-
fs.writeFileSync(source, '---\nname: Relire\ndescription: Initiale\n---\nInstructions initiales.');
|
|
31
|
-
const reader = {
|
|
32
|
-
async listProviderSkills(provider) {
|
|
33
|
-
if (provider !== 'claude')
|
|
34
|
-
return [];
|
|
35
|
-
return [{ provider: 'claude', name: 'Relire', description: 'Initiale', command: '/relire', scope: 'user', sourcePath: source }];
|
|
36
|
-
},
|
|
37
|
-
};
|
|
38
|
-
const listed = await listLibraryProviderSkills(undefined, reader);
|
|
39
|
-
assert.equal(listed.providers[0].skills[0].sourcePath, source);
|
|
40
|
-
assert.equal(store.list().length, 0);
|
|
41
|
-
await scanAndPersistLibraryProviderSkills(store, undefined, reader);
|
|
42
|
-
const first = store.list();
|
|
43
|
-
assert.equal(first.length, 1);
|
|
44
|
-
const id = first[0].id;
|
|
45
|
-
const original = store.document(id).content;
|
|
46
|
-
store.updateDocument(id, original.replace('Instructions initiales.', 'Instructions adaptées.'), original);
|
|
47
|
-
await scanAndPersistLibraryProviderSkills(store, undefined, reader);
|
|
48
|
-
assert.equal(store.list().length, 1);
|
|
49
|
-
assert.match(store.document(id).content, /Instructions adaptées/);
|
|
50
|
-
fs.writeFileSync(source, '---\nname: Relire\ndescription: Source changée\n---\nInstructions externes.');
|
|
51
|
-
await scanAndPersistLibraryProviderSkills(store, undefined, reader);
|
|
52
|
-
assert.equal(store.list().length, 1);
|
|
53
|
-
assert.match(store.document(id).content, /Instructions adaptées/);
|
|
54
|
-
});
|
|
55
21
|
//# sourceMappingURL=provider-skills.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-skills.test.js","sourceRoot":"","sources":["../../../../server/piecemaker/library/provider-skills.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,
|
|
1
|
+
{"version":3,"file":"provider-skills.test.js","sourceRoot":"","sources":["../../../../server/piecemaker/library/provider-skills.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,IAAI,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;IACrF,MAAM,KAAK,GAAmE,EAAE,CAAC;IACjF,MAAM,MAAM,GAAG;QACb,KAAK,CAAC,kBAAkB,CAAC,QAAgB,EAAE,OAAoC;YAC7E,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;YAChE,IAAI,QAAQ,KAAK,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YAClE,OAAO,CAAC,EAAE,QAAQ,EAAE,QAAuB,EAAE,IAAI,EAAE,GAAG,QAAQ,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAe,EAAE,UAAU,EAAE,IAAI,QAAQ,WAAW,EAAE,CAAC,CAAC;QACnL,CAAC;KACF,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAEnE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;IAC9G,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,aAAa,KAAK,UAAU,CAAC,CAAC,CAAC;IAC5E,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAAE,KAAK,EAAE,qBAAqB,CAAC,CAAC;IAC3G,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAC7F,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACvF,CAAC,CAAC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import express from 'express';
|
|
2
|
-
import { listLibraryProviderSkills
|
|
2
|
+
import { listLibraryProviderSkills } from './provider-skills.js';
|
|
3
3
|
export function createLibraryRouter(store) {
|
|
4
4
|
const router = express.Router();
|
|
5
5
|
router.get('/catalog', (req, res) => {
|
|
@@ -14,15 +14,6 @@ export function createLibraryRouter(store) {
|
|
|
14
14
|
const workspacePath = typeof req.query.workspacePath === 'string' ? req.query.workspacePath : undefined;
|
|
15
15
|
res.json(await listLibraryProviderSkills(workspacePath));
|
|
16
16
|
});
|
|
17
|
-
router.post('/provider-skills/scan', async (req, res) => {
|
|
18
|
-
const workspacePath = typeof req.body?.workspacePath === 'string' ? req.body.workspacePath : undefined;
|
|
19
|
-
try {
|
|
20
|
-
res.json(await scanAndPersistLibraryProviderSkills(store, workspacePath));
|
|
21
|
-
}
|
|
22
|
-
catch (error) {
|
|
23
|
-
res.status(400).json({ error: error.message });
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
17
|
router.get('/catalog/:id', (req, res) => {
|
|
27
18
|
try {
|
|
28
19
|
res.json(store.document(String(req.params.id)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../../server/piecemaker/library/routes.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAG9B,OAAO,EAAE,yBAAyB,EAAE,
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../../server/piecemaker/library/routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -45,7 +45,7 @@ export function createLibraryStore(home) {
|
|
|
45
45
|
description TEXT NOT NULL, content TEXT NOT NULL, assets TEXT NOT NULL
|
|
46
46
|
);
|
|
47
47
|
CREATE TABLE IF NOT EXISTS origins (
|
|
48
|
-
source TEXT PRIMARY KEY, entry_id TEXT NOT NULL REFERENCES entries(id)
|
|
48
|
+
source TEXT PRIMARY KEY, entry_id TEXT NOT NULL REFERENCES entries(id)
|
|
49
49
|
);
|
|
50
50
|
CREATE TABLE IF NOT EXISTS activation (
|
|
51
51
|
workspace TEXT NOT NULL, entry_id TEXT NOT NULL REFERENCES entries(id),
|
|
@@ -65,9 +65,6 @@ export function createLibraryStore(home) {
|
|
|
65
65
|
PRIMARY KEY(collection_id, path)
|
|
66
66
|
);
|
|
67
67
|
`);
|
|
68
|
-
const originColumns = db.prepare('PRAGMA table_info(origins)').all();
|
|
69
|
-
if (!originColumns.some((column) => column.name === 'source_hash'))
|
|
70
|
-
db.exec('ALTER TABLE origins ADD COLUMN source_hash TEXT');
|
|
71
68
|
function workspace(value) {
|
|
72
69
|
if (typeof value !== 'string' || !path.isAbsolute(value))
|
|
73
70
|
throw new Error('Dossier absolu requis.');
|
|
@@ -126,25 +123,9 @@ export function createLibraryStore(home) {
|
|
|
126
123
|
collect(path.dirname(resolved));
|
|
127
124
|
const serialized = JSON.stringify(Object.fromEntries(Object.entries(assets).sort(([a], [b]) => a.localeCompare(b))));
|
|
128
125
|
const id = createHash('sha256').update(`${kind}\0${content}\0${serialized}`).digest('hex');
|
|
129
|
-
const sourceHash = id;
|
|
130
|
-
const existingOrigin = db.prepare('SELECT entry_id AS entryId, source_hash AS sourceHash FROM origins WHERE source = ?').get(path.resolve(source));
|
|
131
|
-
if (existingOrigin) {
|
|
132
|
-
if (existingOrigin.sourceHash === null || existingOrigin.sourceHash === sourceHash)
|
|
133
|
-
return existingOrigin.entryId;
|
|
134
|
-
const existingEntry = document(existingOrigin.entryId);
|
|
135
|
-
const existingAssets = JSON.stringify(Object.fromEntries(Object.entries(existingEntry.assets).sort(([a], [b]) => a.localeCompare(b))));
|
|
136
|
-
const existingHash = createHash('sha256').update(`${existingEntry.kind}\0${existingEntry.content}\0${existingAssets}`).digest('hex');
|
|
137
|
-
if (existingHash !== existingOrigin.sourceHash)
|
|
138
|
-
return existingOrigin.entryId;
|
|
139
|
-
db.transaction(() => {
|
|
140
|
-
db.prepare('UPDATE entries SET name = ?, description = ?, content = ?, assets = ? WHERE id = ?').run(name, description, content, serialized, existingOrigin.entryId);
|
|
141
|
-
db.prepare('UPDATE origins SET source_hash = ? WHERE source = ?').run(sourceHash, path.resolve(source));
|
|
142
|
-
})();
|
|
143
|
-
return existingOrigin.entryId;
|
|
144
|
-
}
|
|
145
126
|
db.transaction(() => {
|
|
146
127
|
db.prepare('INSERT OR IGNORE INTO entries VALUES (?, ?, ?, ?, ?, ?)').run(id, kind, name, description, content, serialized);
|
|
147
|
-
db.prepare('INSERT INTO origins (
|
|
128
|
+
db.prepare('INSERT INTO origins VALUES (?, ?) ON CONFLICT(source) DO UPDATE SET entry_id = excluded.entry_id').run(path.resolve(source), id);
|
|
148
129
|
})();
|
|
149
130
|
return id;
|
|
150
131
|
}
|