@piecemaker-legal/piecemaker 2.0.3 → 2.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/dist/assets/{abnfDiagram-VCTEODGH-CVLRxwxB.js → abnfDiagram-VCTEODGH-B4ocJFBH.js} +1 -1
  2. package/dist/assets/{arc-DhS_vm6i.js → arc-B8bo-IPi.js} +1 -1
  3. package/dist/assets/{architectureDiagram-5GKGNRK7-DrlMvm5L.js → architectureDiagram-5GKGNRK7-BGiAIDmb.js} +1 -1
  4. package/dist/assets/{blockDiagram-I7D4REHJ-DH3wS-gZ.js → blockDiagram-I7D4REHJ-BJ2i1Msz.js} +1 -1
  5. package/dist/assets/{c4Diagram-7LVT6UL2-BKR2Cyen.js → c4Diagram-7LVT6UL2-Po42CLyP.js} +1 -1
  6. package/dist/assets/channel-COlR3zni.js +1 -0
  7. package/dist/assets/{chunk-2Q5K7J3B-C9aUfYiA.js → chunk-2Q5K7J3B-BP7s12QY.js} +1 -1
  8. package/dist/assets/{chunk-5VM5RSS4-Bx5Xub2b.js → chunk-5VM5RSS4-BlBqQtZp.js} +1 -1
  9. package/dist/assets/{chunk-F27PBJKO-CNzrXezb.js → chunk-F27PBJKO-BXoXv7yL.js} +1 -1
  10. package/dist/assets/{chunk-IMKFNOWR-Dd93DWYT.js → chunk-IMKFNOWR-D5dE35n4.js} +1 -1
  11. package/dist/assets/{chunk-JWPE2WC7-BceODve0.js → chunk-JWPE2WC7-9aBxemwI.js} +1 -1
  12. package/dist/assets/{chunk-POPQ4Y6H-8-ogZXlq.js → chunk-POPQ4Y6H-BWBuBKqu.js} +1 -1
  13. package/dist/assets/{chunk-SVP7TREG-OyBBQvbk.js → chunk-SVP7TREG-BOfMOBac.js} +1 -1
  14. package/dist/assets/{chunk-TICWLB2K-PAWkbAe8.js → chunk-TICWLB2K-T22pXlsS.js} +1 -1
  15. package/dist/assets/{chunk-XXDRQBXY-BF3hAjqu.js → chunk-XXDRQBXY-oDhiw-PX.js} +1 -1
  16. package/dist/assets/classDiagram-ZZMXUADV-Hzl_tnO7.js +1 -0
  17. package/dist/assets/classDiagram-v2-VYDZK3BY-Hzl_tnO7.js +1 -0
  18. package/dist/assets/{cose-bilkent-JH36ORCC-AYo8VvKP.js → cose-bilkent-JH36ORCC-zcVx0H5O.js} +1 -1
  19. package/dist/assets/{cynefin-OW5HDTMX-Dj5QTzOc.js → cynefin-OW5HDTMX-DyWdsVNj.js} +1 -1
  20. package/dist/assets/{cynefinDiagram-5FMLGOSQ-CDyEAFpu.js → cynefinDiagram-5FMLGOSQ-ClIPsAmC.js} +1 -1
  21. package/dist/assets/{dagre-GXQ25YYZ-DJIc8myj.js → dagre-GXQ25YYZ-CpoLw4pZ.js} +1 -1
  22. package/dist/assets/{diagram-S7CK7UJ4-DZ3oeqLV.js → diagram-S7CK7UJ4-Q6MW52H5.js} +1 -1
  23. package/dist/assets/{diagram-UQ7AKVKN-Cffk9YLa.js → diagram-UQ7AKVKN-BalA4FVO.js} +1 -1
  24. package/dist/assets/{diagram-VSXAHHWV-ZU5eGP0R.js → diagram-VSXAHHWV-DJO0J9z7.js} +1 -1
  25. package/dist/assets/{diagram-VX7I27RA-D1AeED2S.js → diagram-VX7I27RA-CusI5NCb.js} +1 -1
  26. package/dist/assets/{diagram-Z3DM3KII-C3N-rPK5.js → diagram-Z3DM3KII-D2okoEKU.js} +1 -1
  27. package/dist/assets/{ebnfDiagram-PWID7BFC-CAEGoYxY.js → ebnfDiagram-PWID7BFC-BO6fBq5N.js} +1 -1
  28. package/dist/assets/{erDiagram-RLTQ6QDP-mlMxQhil.js → erDiagram-RLTQ6QDP-CJB5WXnj.js} +1 -1
  29. package/dist/assets/{flowDiagram-HODETNUW-BG-WhGuQ.js → flowDiagram-HODETNUW-DpSG5m8Q.js} +1 -1
  30. package/dist/assets/{ganttDiagram-EL5Y4UJY-DbTLyD4B.js → ganttDiagram-EL5Y4UJY-D3S7Fo8Z.js} +1 -1
  31. package/dist/assets/{gitGraphDiagram-WWUBYQGX-BLPb5m0Z.js → gitGraphDiagram-WWUBYQGX-W5GfUAH8.js} +1 -1
  32. package/dist/assets/{index-C1ftHA18.js → index-BiU0H7Lq.js} +3 -3
  33. package/dist/assets/{infoDiagram-27XIBGKW-DWEQAviD.js → infoDiagram-27XIBGKW-Muy-uIZN.js} +1 -1
  34. package/dist/assets/{ishikawaDiagram-5VMMS53U-Q8YRLin9.js → ishikawaDiagram-5VMMS53U-NKYuUpLb.js} +1 -1
  35. package/dist/assets/{journeyDiagram-3NMN7TZE-BID21ZFX.js → journeyDiagram-3NMN7TZE-CSiQZwpA.js} +1 -1
  36. package/dist/assets/{kanban-definition-UXKFOSKX-03Q9pFxU.js → kanban-definition-UXKFOSKX-nfSSYTys.js} +1 -1
  37. package/dist/assets/{layout-Cv7UL0yy.js → layout-BxdIXlpV.js} +1 -1
  38. package/dist/assets/{linear-eF4ujrjO.js → linear-BX-8uE9h.js} +1 -1
  39. package/dist/assets/{mermaid.core-D-LS3QTz.js → mermaid.core-DnzpFqcr.js} +6 -6
  40. package/dist/assets/{mindmap-definition-YA3MSWOX-DrOF20Qh.js → mindmap-definition-YA3MSWOX-BZ4h_iyz.js} +1 -1
  41. package/dist/assets/{pegDiagram-XKGWAZYB-CQhQYSuY.js → pegDiagram-XKGWAZYB-CzVtNDRI.js} +1 -1
  42. package/dist/assets/{pieDiagram-E7YTZNPT-B3lDl-dn.js → pieDiagram-E7YTZNPT-DqC07dbM.js} +1 -1
  43. package/dist/assets/{quadrantDiagram-AXDQQJYC-B-XHlB2V.js → quadrantDiagram-AXDQQJYC-CZlr9cIu.js} +1 -1
  44. package/dist/assets/{railroadDiagram-O6MQD6OU-CeDBAsMk.js → railroadDiagram-O6MQD6OU-BMnx9dkI.js} +1 -1
  45. package/dist/assets/{requirementDiagram-BXWQKSXE-DwQdqo2F.js → requirementDiagram-BXWQKSXE-D4ElGNr0.js} +1 -1
  46. package/dist/assets/{sankeyDiagram-P5KCCOFB-CmahZITB.js → sankeyDiagram-P5KCCOFB-CoVXfbas.js} +1 -1
  47. package/dist/assets/{sequenceDiagram-WJ2MYXX4-CUTW142c.js → sequenceDiagram-WJ2MYXX4-Djdar1nz.js} +1 -1
  48. package/dist/assets/{sizeCapture-INFHLROL-DrY3oUES.js → sizeCapture-INFHLROL-Cb7LYs0-.js} +1 -1
  49. package/dist/assets/{stateDiagram-D77RDMKH-3llxqUKu.js → stateDiagram-D77RDMKH-CStxwM5-.js} +1 -1
  50. package/dist/assets/{stateDiagram-v2-MP3YSRHH-Bx7kT7NT.js → stateDiagram-v2-MP3YSRHH-Bc31RcVk.js} +1 -1
  51. package/dist/assets/{swimlanes-42K2YHIH-GCvzOlEM.js → swimlanes-42K2YHIH-DBAYR4pu.js} +1 -1
  52. package/dist/assets/swimlanesDiagram-VR7AAH4N-TMF4WKTD.js +8 -0
  53. package/dist/assets/{timeline-definition-24CTP7MA-CCst87s9.js → timeline-definition-24CTP7MA-DGSIMRzA.js} +1 -1
  54. package/dist/assets/{vennDiagram-4TSXK5OY-B2-p5M7b.js → vennDiagram-4TSXK5OY-UEvQdO6K.js} +1 -1
  55. package/dist/assets/{wardleyDiagram-VM6X3IG4-hvHiku3E.js → wardleyDiagram-VM6X3IG4-DSu6_oJX.js} +1 -1
  56. package/dist/assets/{xychartDiagram-S5SC5T6Z-JgSO8hHT.js → xychartDiagram-S5SC5T6Z-BASwbq8-.js} +1 -1
  57. package/dist/index.html +1 -1
  58. package/dist/sw.js +1 -1
  59. package/dist-server/server/index.js +2 -1
  60. package/dist-server/server/index.js.map +1 -1
  61. package/dist-server/server/load-env.js +2 -1
  62. package/dist-server/server/load-env.js.map +1 -1
  63. package/dist-server/server/piecemaker/desktop-update/index.js +45 -0
  64. package/dist-server/server/piecemaker/desktop-update/index.js.map +1 -0
  65. package/dist-server/server/piecemaker/desktop-update/routes.js +23 -0
  66. package/dist-server/server/piecemaker/desktop-update/routes.js.map +1 -0
  67. package/dist-server/server/piecemaker/desktop-update/service.js +68 -0
  68. package/dist-server/server/piecemaker/desktop-update/service.js.map +1 -0
  69. package/dist-server/server/piecemaker/knowledge/index.js +6 -1
  70. package/dist-server/server/piecemaker/knowledge/index.js.map +1 -1
  71. package/dist-server/server/piecemaker/knowledge/legacy-import.js +87 -0
  72. package/dist-server/server/piecemaker/knowledge/legacy-import.js.map +1 -0
  73. package/dist-server/server/shared/utils.js +2 -1
  74. package/dist-server/server/shared/utils.js.map +1 -1
  75. package/package.json +1 -1
  76. package/server/index.ts +2 -1
  77. package/server/load-env.ts +3 -1
  78. package/server/piecemaker/desktop-update/index.ts +49 -0
  79. package/server/piecemaker/desktop-update/routes.ts +29 -0
  80. package/server/piecemaker/desktop-update/service.ts +101 -0
  81. package/server/piecemaker/knowledge/index.ts +6 -1
  82. package/server/piecemaker/knowledge/legacy-import.ts +101 -0
  83. package/server/piecemaker/vendor/websocket-server/originals-pipeline.cjs +1 -1
  84. package/server/shared/utils.ts +3 -1
  85. package/dist/assets/channel-0OoU2s09.js +0 -1
  86. package/dist/assets/classDiagram-ZZMXUADV-BTCcTeNG.js +0 -1
  87. package/dist/assets/classDiagram-v2-VYDZK3BY-BTCcTeNG.js +0 -1
  88. package/dist/assets/swimlanesDiagram-VR7AAH4N-C3mMP--x.js +0 -8
@@ -1,6 +1,7 @@
1
1
  import express from 'express';
2
2
  import { getConnection, projectsDb } from '../../modules/database/index.js';
3
3
  import { KnowledgeStore } from '../../../plugins/piecemaker-dossier/src/knowledge.js';
4
+ import { importLegacyKnowledge } from './legacy-import.js';
4
5
  import { createKnowledgeLocalRouter } from './local-routes.js';
5
6
  import { createKnowledgePipeline } from './pipeline.js';
6
7
  import { createKnowledgeRouter } from './routes.js';
@@ -9,8 +10,12 @@ export function createKnowledgeBackend(applicationRoot) {
9
10
  let store = null;
10
11
  let service = null;
11
12
  const getStore = () => {
12
- if (!store)
13
+ if (!store) {
13
14
  store = new KnowledgeStore(getConnection());
15
+ const report = importLegacyKnowledge(getConnection());
16
+ if (report?.imported.length)
17
+ console.info(`[piecemaker] analyses importées depuis ${report.source} : ${report.imported.join(', ')}`);
18
+ }
14
19
  return store;
15
20
  };
16
21
  const getService = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/piecemaker/knowledge/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;AAEtF,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,UAAU,sBAAsB,CAAC,eAAuB;IAC5D,IAAI,KAAK,GAA0B,IAAI,CAAC;IACxC,IAAI,OAAO,GAAqD,IAAI,CAAC;IACrE,MAAM,QAAQ,GAAG,GAAG,EAAE;QACpB,IAAI,CAAC,KAAK;YAAE,KAAK,GAAG,IAAI,cAAc,CAAC,aAAa,EAAE,CAAC,CAAC;QACxD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IACF,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,uBAAuB,CAAC,EAAE,eAAe,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;YACvG,OAAO,GAAG,sBAAsB,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAChC,IAAI,eAAe,GAA0B,IAAI,CAAC;IAClD,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;QACrC,IAAI,CAAC,eAAe;YAAE,eAAe,GAAG,qBAAqB,CAAC,UAAU,EAAE,CAAC,CAAC;QAC5E,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,0BAA0B,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC;AACrF,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/piecemaker/knowledge/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;AAEtF,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,UAAU,sBAAsB,CAAC,eAAuB;IAC5D,IAAI,KAAK,GAA0B,IAAI,CAAC;IACxC,IAAI,OAAO,GAAqD,IAAI,CAAC;IACrE,MAAM,QAAQ,GAAG,GAAG,EAAE;QACpB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,IAAI,cAAc,CAAC,aAAa,EAAE,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,qBAAqB,CAAC,aAAa,EAAE,CAAC,CAAC;YACtD,IAAI,MAAM,EAAE,QAAQ,CAAC,MAAM;gBAAE,OAAO,CAAC,IAAI,CAAC,0CAA0C,MAAM,CAAC,MAAM,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvI,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IACF,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,uBAAuB,CAAC,EAAE,eAAe,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;YACvG,OAAO,GAAG,sBAAsB,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAChC,IAAI,eAAe,GAA0B,IAAI,CAAC;IAClD,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;QACrC,IAAI,CAAC,eAAe;YAAE,eAAe,GAAG,qBAAqB,CAAC,UAAU,EAAE,CAAC,CAAC;QAC5E,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,0BAA0B,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC;AACrF,CAAC"}
@@ -0,0 +1,87 @@
1
+ import fs from 'node:fs';
2
+ import os from 'node:os';
3
+ import path from 'node:path';
4
+ const NODE_COLUMNS = 'id,kind,label,search_text,aliases_json,data_json,origin,created_at,updated_at';
5
+ const LINK_COLUMNS = 'from_node_id,to_node_id,relation,data_json,origin,created_at,updated_at';
6
+ const MAPPING_COLUMNS = 'node_id,real_value,masked_value,search_text,data_json,origin,created_at,updated_at';
7
+ export function legacyDatabasePath() {
8
+ return path.join(os.homedir(), '.cloudcli', 'auth.db');
9
+ }
10
+ function sameFile(left, right) {
11
+ try {
12
+ return fs.realpathSync(left) === fs.realpathSync(right);
13
+ }
14
+ catch {
15
+ return path.resolve(left) === path.resolve(right);
16
+ }
17
+ }
18
+ function legacyHasTable(database, table) {
19
+ return Boolean(database.prepare(`SELECT 1 FROM legacy.sqlite_master WHERE type='table' AND name=?`).get(table));
20
+ }
21
+ function hasKnowledge(database, projectId) {
22
+ return Boolean(database.prepare(`
23
+ SELECT 1 FROM piecemaker_mappings WHERE project_id=?
24
+ UNION ALL SELECT 1 FROM piecemaker_anonymization_status WHERE project_id=?
25
+ LIMIT 1
26
+ `).get(projectId, projectId));
27
+ }
28
+ function targetProjectId(database, legacy) {
29
+ const existing = database.prepare('SELECT project_id FROM projects WHERE project_path=?').get(legacy.project_path);
30
+ if (existing)
31
+ return existing.project_id;
32
+ database.prepare(`
33
+ INSERT INTO projects (project_id, project_path, custom_project_name, isStarred, isArchived)
34
+ VALUES (?, ?, ?, ?, ?)
35
+ `).run(legacy.project_id, legacy.project_path, legacy.custom_project_name, legacy.isStarred ?? 0, legacy.isArchived ?? 0);
36
+ return legacy.project_id;
37
+ }
38
+ function copyProject(database, sourceId, targetId, withStatus) {
39
+ database.prepare('DELETE FROM piecemaker_links WHERE project_id=?').run(targetId);
40
+ database.prepare('DELETE FROM piecemaker_mappings WHERE project_id=?').run(targetId);
41
+ database.prepare('DELETE FROM piecemaker_nodes WHERE project_id=?').run(targetId);
42
+ database.prepare(`INSERT INTO piecemaker_nodes (project_id,${NODE_COLUMNS}) SELECT ?,${NODE_COLUMNS} FROM legacy.piecemaker_nodes WHERE project_id=?`).run(targetId, sourceId);
43
+ database.prepare(`INSERT INTO piecemaker_links (project_id,${LINK_COLUMNS}) SELECT ?,${LINK_COLUMNS} FROM legacy.piecemaker_links WHERE project_id=?`).run(targetId, sourceId);
44
+ database.prepare(`INSERT INTO piecemaker_mappings (project_id,${MAPPING_COLUMNS}) SELECT ?,${MAPPING_COLUMNS} FROM legacy.piecemaker_mappings WHERE project_id=?`).run(targetId, sourceId);
45
+ if (withStatus) {
46
+ database.prepare(`INSERT OR IGNORE INTO piecemaker_anonymization_status (project_id, completed_at) SELECT ?, completed_at FROM legacy.piecemaker_anonymization_status WHERE project_id=?`).run(targetId, sourceId);
47
+ }
48
+ }
49
+ export function importLegacyKnowledge(database, source = legacyDatabasePath()) {
50
+ const target = database.name;
51
+ if (!fs.existsSync(source) || (target && sameFile(source, target)))
52
+ return null;
53
+ database.exec('CREATE TABLE IF NOT EXISTS piecemaker_legacy_imports (source TEXT PRIMARY KEY NOT NULL, imported_at TEXT NOT NULL)');
54
+ const resolvedSource = path.resolve(source);
55
+ if (database.prepare('SELECT 1 FROM piecemaker_legacy_imports WHERE source=?').get(resolvedSource))
56
+ return null;
57
+ const report = { source: resolvedSource, imported: [], skipped: [] };
58
+ database.prepare('ATTACH DATABASE ? AS legacy').run(resolvedSource);
59
+ try {
60
+ database.transaction(() => {
61
+ if (legacyHasTable(database, 'piecemaker_nodes') && legacyHasTable(database, 'projects')) {
62
+ const withStatus = legacyHasTable(database, 'piecemaker_anonymization_status');
63
+ const projects = database.prepare(`
64
+ SELECT p.project_id, p.project_path, p.custom_project_name, p.isStarred, p.isArchived
65
+ FROM legacy.projects p
66
+ WHERE EXISTS (SELECT 1 FROM legacy.piecemaker_nodes n WHERE n.project_id=p.project_id AND n.id NOT LIKE 'system:%')
67
+ ORDER BY p.project_path
68
+ `).all();
69
+ for (const project of projects) {
70
+ const targetId = targetProjectId(database, project);
71
+ if (hasKnowledge(database, targetId)) {
72
+ report.skipped.push(project.project_path);
73
+ continue;
74
+ }
75
+ copyProject(database, project.project_id, targetId, withStatus);
76
+ report.imported.push(project.project_path);
77
+ }
78
+ }
79
+ database.prepare('INSERT INTO piecemaker_legacy_imports (source, imported_at) VALUES (?, ?)').run(resolvedSource, new Date().toISOString());
80
+ })();
81
+ }
82
+ finally {
83
+ database.exec('DETACH DATABASE legacy');
84
+ }
85
+ return report;
86
+ }
87
+ //# sourceMappingURL=legacy-import.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy-import.js","sourceRoot":"","sources":["../../../../server/piecemaker/knowledge/legacy-import.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import path from 'node:path';
6
6
  import readline from 'node:readline';
7
7
  import { fileURLToPath } from 'node:url';
8
8
  import { parseFrontMatter } from './frontmatter.js';
9
+ import { productDataRoot } from '../../shared/product-config.mjs';
9
10
  //----------------- ENVIRONMENT UTILITIES ------------
10
11
  /**
11
12
  * Indicates whether the backend is running in hosted Platform mode rather than
@@ -22,7 +23,7 @@ export const IS_PLATFORM = process.env.VITE_IS_PLATFORM === 'true';
22
23
  * this root and must not be redirected through this helper.
23
24
  */
24
25
  export function getApplicationDataRoot() {
25
- return process.env.CLOUDCLI_HOME || path.join(os.homedir(), '.cloudcli');
26
+ return productDataRoot(path.join(os.homedir(), '.cloudcli'));
26
27
  }
27
28
  // ---------------------------
28
29
  //----------------- HTTP HANDLER UTILITIES ------------
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../server/shared/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../server/shared/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@piecemaker-legal/piecemaker",
3
- "version": "2.0.3",
3
+ "version": "2.0.5",
4
4
  "productName": "PieceMaker",
5
5
  "description": "Plateforme IA pour juristes français",
6
6
  "type": "module",
package/server/index.ts CHANGED
@@ -31,6 +31,7 @@ import { settingsRoutes } from './modules/settings/index.js';
31
31
  import { createSystemModule } from './modules/system/index.js';
32
32
  import { createAgentModule } from './modules/agent/index.js';
33
33
  import { createPieceMakerLocalRouter, createPieceMakerRouter, stopOriginalsJobs } from './piecemaker/index.js';
34
+ import { createPieceMakerDesktopUpdateRouter } from './piecemaker/desktop-update/index.js';
34
35
  import projectModuleRoutes from './modules/projects/projects.routes.js';
35
36
  import notificationRoutes from './modules/notifications/notifications.routes.js';
36
37
  import { userRoutes } from './modules/user/index.js';
@@ -174,7 +175,7 @@ app.use('/api/commands', authenticateToken, commandsRoutes);
174
175
  // Settings API Routes (protected)
175
176
  app.use('/api/settings', authenticateToken, settingsRoutes);
176
177
 
177
- app.use('/api/system', authenticateToken, systemRoutes);
178
+ app.use('/api/system', authenticateToken, createPieceMakerDesktopUpdateRouter(APP_ROOT), systemRoutes);
178
179
 
179
180
  app.use('/api/notifications', authenticateToken, notificationRoutes);
180
181
 
@@ -4,6 +4,8 @@ import os from 'os';
4
4
  import path from 'path';
5
5
  import { fileURLToPath } from 'url';
6
6
 
7
+ import { productDataRoot } from '../shared/product-config.mjs';
8
+
7
9
  // This bootstrap cannot import shared/utils.ts: that module reads environment
8
10
  // defaults during evaluation, before this file has loaded `.env`.
9
11
  function getBootstrapApplicationRoot(importMetaUrl: string) {
@@ -40,7 +42,7 @@ try {
40
42
 
41
43
  // Keep the default database in a stable user-level location so rebuilding dist-server
42
44
  // never changes where the backend stores auth.db when DATABASE_PATH is not set explicitly.
43
- const applicationDataRoot = process.env.CLOUDCLI_HOME || path.join(os.homedir(), '.cloudcli');
45
+ const applicationDataRoot = productDataRoot(path.join(os.homedir(), '.cloudcli'));
44
46
  const DEFAULT_DATABASE_PATH = path.join(applicationDataRoot, 'auth.db');
45
47
 
46
48
  if (!process.env.DATABASE_PATH) {
@@ -0,0 +1,49 @@
1
+ import { spawn } from 'node:child_process';
2
+
3
+ import { loadProductConfig } from '../../../shared/product-config.mjs';
4
+
5
+ import { createDesktopUpdateRouter } from './routes.js';
6
+ import { createDesktopUpdateService } from './service.js';
7
+
8
+ function runInstaller(command: string, environment: NodeJS.ProcessEnv) {
9
+ return new Promise<{ exitCode: number | null; output: string; errorOutput: string }>((resolve, reject) => {
10
+ const child = spawn('sh', ['-c', command], { env: environment, detached: true, stdio: ['ignore', 'pipe', 'pipe'] });
11
+ let output = '';
12
+ let errorOutput = '';
13
+ child.stdout.on('data', (chunk: Buffer) => {
14
+ output += chunk.toString();
15
+ console.log('[desktop-update]', chunk.toString().trimEnd());
16
+ });
17
+ child.stderr.on('data', (chunk: Buffer) => {
18
+ errorOutput += chunk.toString();
19
+ console.error('[desktop-update]', chunk.toString().trimEnd());
20
+ });
21
+ child.once('error', reject);
22
+ child.once('close', (exitCode) => resolve({ exitCode, output, errorOutput }));
23
+ });
24
+ }
25
+
26
+ function productRepository(): string | null {
27
+ try {
28
+ return loadProductConfig().repository;
29
+ } catch {
30
+ return null;
31
+ }
32
+ }
33
+
34
+ function launchDetached(command: string) {
35
+ spawn('sh', ['-c', command], { detached: true, stdio: 'ignore' }).unref();
36
+ }
37
+
38
+ export function createPieceMakerDesktopUpdateRouter(appRoot: string) {
39
+ return createDesktopUpdateRouter(createDesktopUpdateService({
40
+ appRoot,
41
+ platform: process.platform,
42
+ repository: productRepository(),
43
+ applicationPid: process.ppid,
44
+ environment: process.env,
45
+ runInstaller,
46
+ launchDetached,
47
+ logInfo: (message) => console.log('[desktop-update]', message),
48
+ }));
49
+ }
@@ -0,0 +1,29 @@
1
+ import express from 'express';
2
+
3
+ import type { createDesktopUpdateService } from './service.js';
4
+
5
+ type DesktopUpdateService = ReturnType<typeof createDesktopUpdateService>;
6
+
7
+ export function createDesktopUpdateRouter(service: DesktopUpdateService): express.Router {
8
+ const router = express.Router();
9
+ let pendingUpdate: ReturnType<DesktopUpdateService['update']> | null = null;
10
+
11
+ router.post('/update', async (_request, response, next) => {
12
+ if (!service.isDesktopInstall()) {
13
+ next();
14
+ return;
15
+ }
16
+
17
+ try {
18
+ pendingUpdate ??= service.update().finally(() => {
19
+ pendingUpdate = null;
20
+ });
21
+ const result = await pendingUpdate;
22
+ response.status(result.success ? 200 : 500).json(result);
23
+ } catch (error) {
24
+ next(error);
25
+ }
26
+ });
27
+
28
+ return router;
29
+ }
@@ -0,0 +1,101 @@
1
+ type ShellResult = {
2
+ exitCode: number | null;
3
+ output: string;
4
+ errorOutput: string;
5
+ };
6
+
7
+ export type DesktopUpdateDependencies = {
8
+ appRoot: string;
9
+ platform: NodeJS.Platform;
10
+ repository: string | null;
11
+ applicationPid: number;
12
+ environment: NodeJS.ProcessEnv;
13
+ runInstaller(command: string, environment: NodeJS.ProcessEnv): Promise<ShellResult>;
14
+ launchDetached(command: string): void;
15
+ logInfo(message: string): void;
16
+ };
17
+
18
+ export type DesktopUpdateResult =
19
+ | { success: true; output: string; message: string }
20
+ | { success: false; error: string; output?: string; errorOutput?: string };
21
+
22
+ const MAC_BUNDLE_APP_ROOT = /^(.+\.app)\/Contents\/Resources\/app\/?$/;
23
+ const SERVER_ONLY_VARIABLES = ['ELECTRON_RUN_AS_NODE', 'HOST', 'SERVER_PORT', 'PORT', 'CLOUDCLI_HOME', 'DATABASE_PATH'];
24
+ const RELAUNCH_DELAY_SECONDS = 3;
25
+ const QUIT_GRACE_SECONDS = 30;
26
+ const ANSI_ESCAPE = /\u001b\[[0-9;]*m/g;
27
+
28
+ function withoutAnsi(text: string): string {
29
+ return text.replace(ANSI_ESCAPE, '');
30
+ }
31
+
32
+ function shellQuote(value: string): string {
33
+ return `'${value.replace(/'/g, `'\\''`)}'`;
34
+ }
35
+
36
+ export function desktopBundlePath(appRoot: string, platform: NodeJS.Platform): string | null {
37
+ if (platform !== 'darwin') return null;
38
+ return MAC_BUNDLE_APP_ROOT.exec(appRoot)?.[1] ?? null;
39
+ }
40
+
41
+ export function installerCommand(repository: string): string {
42
+ const scriptUrl = `https://raw.githubusercontent.com/${repository}/main/desktop-bootstrap/install.sh`;
43
+ return `curl -fsSL ${shellQuote(scriptUrl)} | sh -s -- --no-launch`;
44
+ }
45
+
46
+ export function relaunchCommand(bundlePath: string, applicationPid: number): string {
47
+ const bundle = shellQuote(bundlePath);
48
+ return [
49
+ `sleep ${RELAUNCH_DELAY_SECONDS}`,
50
+ `osascript -e ${shellQuote(`tell application "${bundlePath}" to quit`)} >/dev/null 2>&1`,
51
+ `i=0; while kill -0 ${applicationPid} 2>/dev/null && [ $i -lt ${QUIT_GRACE_SECONDS} ]; do sleep 1; i=$((i+1)); done`,
52
+ `kill ${applicationPid} 2>/dev/null`,
53
+ 'sleep 1',
54
+ `open ${bundle}`,
55
+ ].join('; ');
56
+ }
57
+
58
+ export function installerEnvironment(environment: NodeJS.ProcessEnv): NodeJS.ProcessEnv {
59
+ const cleaned = { ...environment };
60
+ for (const variable of SERVER_ONLY_VARIABLES) delete cleaned[variable];
61
+ return cleaned;
62
+ }
63
+
64
+ export function createDesktopUpdateService(dependencies: DesktopUpdateDependencies) {
65
+ const { repository } = dependencies;
66
+ const bundlePath = repository ? desktopBundlePath(dependencies.appRoot, dependencies.platform) : null;
67
+
68
+ return {
69
+ isDesktopInstall(): boolean {
70
+ return bundlePath !== null;
71
+ },
72
+
73
+ async update(): Promise<DesktopUpdateResult> {
74
+ if (!bundlePath || !repository) {
75
+ return { success: false, error: "Mise à jour intégrée disponible uniquement dans l'application de bureau macOS." };
76
+ }
77
+
78
+ dependencies.logInfo(`Mise à jour de ${bundlePath} depuis ${repository}`);
79
+ const result = await dependencies.runInstaller(
80
+ installerCommand(repository),
81
+ installerEnvironment(dependencies.environment),
82
+ );
83
+
84
+ if (result.exitCode !== 0) {
85
+ return {
86
+ success: false,
87
+ error: "Échec du téléchargement ou de l'installation de la nouvelle version",
88
+ output: withoutAnsi(result.output),
89
+ errorOutput: withoutAnsi(result.errorOutput),
90
+ };
91
+ }
92
+
93
+ dependencies.launchDetached(relaunchCommand(bundlePath, dependencies.applicationPid));
94
+ return {
95
+ success: true,
96
+ output: withoutAnsi(result.output),
97
+ message: "Nouvelle version installée. L'application redémarre dans quelques secondes.",
98
+ };
99
+ },
100
+ };
101
+ }
@@ -4,6 +4,7 @@ import { getConnection, projectsDb } from '@/modules/database/index.js';
4
4
 
5
5
  import { KnowledgeStore } from '../../../plugins/piecemaker-dossier/src/knowledge.js';
6
6
 
7
+ import { importLegacyKnowledge } from './legacy-import.js';
7
8
  import { createKnowledgeLocalRouter } from './local-routes.js';
8
9
  import { createKnowledgePipeline } from './pipeline.js';
9
10
  import { createKnowledgeRouter } from './routes.js';
@@ -13,7 +14,11 @@ export function createKnowledgeBackend(applicationRoot: string) {
13
14
  let store: KnowledgeStore | null = null;
14
15
  let service: ReturnType<typeof createKnowledgeService> | null = null;
15
16
  const getStore = () => {
16
- if (!store) store = new KnowledgeStore(getConnection());
17
+ if (!store) {
18
+ store = new KnowledgeStore(getConnection());
19
+ const report = importLegacyKnowledge(getConnection());
20
+ if (report?.imported.length) console.info(`[piecemaker] analyses importées depuis ${report.source} : ${report.imported.join(', ')}`);
21
+ }
17
22
  return store;
18
23
  };
19
24
  const getService = () => {
@@ -0,0 +1,101 @@
1
+ import fs from 'node:fs';
2
+ import os from 'node:os';
3
+ import path from 'node:path';
4
+
5
+ import type Database from 'better-sqlite3';
6
+
7
+ type LegacyProject = {
8
+ project_id: string;
9
+ project_path: string;
10
+ custom_project_name: string | null;
11
+ isStarred: number | null;
12
+ isArchived: number | null;
13
+ };
14
+
15
+ export type LegacyImportReport = { source: string; imported: string[]; skipped: string[] };
16
+
17
+ const NODE_COLUMNS = 'id,kind,label,search_text,aliases_json,data_json,origin,created_at,updated_at';
18
+ const LINK_COLUMNS = 'from_node_id,to_node_id,relation,data_json,origin,created_at,updated_at';
19
+ const MAPPING_COLUMNS = 'node_id,real_value,masked_value,search_text,data_json,origin,created_at,updated_at';
20
+
21
+ export function legacyDatabasePath(): string {
22
+ return path.join(os.homedir(), '.cloudcli', 'auth.db');
23
+ }
24
+
25
+ function sameFile(left: string, right: string): boolean {
26
+ try {
27
+ return fs.realpathSync(left) === fs.realpathSync(right);
28
+ } catch {
29
+ return path.resolve(left) === path.resolve(right);
30
+ }
31
+ }
32
+
33
+ function legacyHasTable(database: Database.Database, table: string): boolean {
34
+ return Boolean(database.prepare(`SELECT 1 FROM legacy.sqlite_master WHERE type='table' AND name=?`).get(table));
35
+ }
36
+
37
+ function hasKnowledge(database: Database.Database, projectId: string): boolean {
38
+ return Boolean(database.prepare(`
39
+ SELECT 1 FROM piecemaker_mappings WHERE project_id=?
40
+ UNION ALL SELECT 1 FROM piecemaker_anonymization_status WHERE project_id=?
41
+ LIMIT 1
42
+ `).get(projectId, projectId));
43
+ }
44
+
45
+ function targetProjectId(database: Database.Database, legacy: LegacyProject): string {
46
+ const existing = database.prepare('SELECT project_id FROM projects WHERE project_path=?').get(legacy.project_path) as { project_id: string } | undefined;
47
+ if (existing) return existing.project_id;
48
+ database.prepare(`
49
+ INSERT INTO projects (project_id, project_path, custom_project_name, isStarred, isArchived)
50
+ VALUES (?, ?, ?, ?, ?)
51
+ `).run(legacy.project_id, legacy.project_path, legacy.custom_project_name, legacy.isStarred ?? 0, legacy.isArchived ?? 0);
52
+ return legacy.project_id;
53
+ }
54
+
55
+ function copyProject(database: Database.Database, sourceId: string, targetId: string, withStatus: boolean): void {
56
+ database.prepare('DELETE FROM piecemaker_links WHERE project_id=?').run(targetId);
57
+ database.prepare('DELETE FROM piecemaker_mappings WHERE project_id=?').run(targetId);
58
+ database.prepare('DELETE FROM piecemaker_nodes WHERE project_id=?').run(targetId);
59
+ database.prepare(`INSERT INTO piecemaker_nodes (project_id,${NODE_COLUMNS}) SELECT ?,${NODE_COLUMNS} FROM legacy.piecemaker_nodes WHERE project_id=?`).run(targetId, sourceId);
60
+ database.prepare(`INSERT INTO piecemaker_links (project_id,${LINK_COLUMNS}) SELECT ?,${LINK_COLUMNS} FROM legacy.piecemaker_links WHERE project_id=?`).run(targetId, sourceId);
61
+ database.prepare(`INSERT INTO piecemaker_mappings (project_id,${MAPPING_COLUMNS}) SELECT ?,${MAPPING_COLUMNS} FROM legacy.piecemaker_mappings WHERE project_id=?`).run(targetId, sourceId);
62
+ if (withStatus) {
63
+ database.prepare(`INSERT OR IGNORE INTO piecemaker_anonymization_status (project_id, completed_at) SELECT ?, completed_at FROM legacy.piecemaker_anonymization_status WHERE project_id=?`).run(targetId, sourceId);
64
+ }
65
+ }
66
+
67
+ export function importLegacyKnowledge(database: Database.Database, source = legacyDatabasePath()): LegacyImportReport | null {
68
+ const target = database.name;
69
+ if (!fs.existsSync(source) || (target && sameFile(source, target))) return null;
70
+ database.exec('CREATE TABLE IF NOT EXISTS piecemaker_legacy_imports (source TEXT PRIMARY KEY NOT NULL, imported_at TEXT NOT NULL)');
71
+ const resolvedSource = path.resolve(source);
72
+ if (database.prepare('SELECT 1 FROM piecemaker_legacy_imports WHERE source=?').get(resolvedSource)) return null;
73
+ const report: LegacyImportReport = { source: resolvedSource, imported: [], skipped: [] };
74
+ database.prepare('ATTACH DATABASE ? AS legacy').run(resolvedSource);
75
+ try {
76
+ database.transaction(() => {
77
+ if (legacyHasTable(database, 'piecemaker_nodes') && legacyHasTable(database, 'projects')) {
78
+ const withStatus = legacyHasTable(database, 'piecemaker_anonymization_status');
79
+ const projects = database.prepare(`
80
+ SELECT p.project_id, p.project_path, p.custom_project_name, p.isStarred, p.isArchived
81
+ FROM legacy.projects p
82
+ WHERE EXISTS (SELECT 1 FROM legacy.piecemaker_nodes n WHERE n.project_id=p.project_id AND n.id NOT LIKE 'system:%')
83
+ ORDER BY p.project_path
84
+ `).all() as LegacyProject[];
85
+ for (const project of projects) {
86
+ const targetId = targetProjectId(database, project);
87
+ if (hasKnowledge(database, targetId)) {
88
+ report.skipped.push(project.project_path);
89
+ continue;
90
+ }
91
+ copyProject(database, project.project_id, targetId, withStatus);
92
+ report.imported.push(project.project_path);
93
+ }
94
+ }
95
+ database.prepare('INSERT INTO piecemaker_legacy_imports (source, imported_at) VALUES (?, ?)').run(resolvedSource, new Date().toISOString());
96
+ })();
97
+ } finally {
98
+ database.exec('DETACH DATABASE legacy');
99
+ }
100
+ return report;
101
+ }
@@ -729,7 +729,6 @@ function runManagedPythonJob({ action, script, args, onProgress, signal } = {})
729
729
  descriptor.resolve = resolve;
730
730
  descriptor.reject = reject;
731
731
  });
732
- runningManaged.add(job);
733
732
  if (canAdmit(job)) {
734
733
  launchManagedJob(descriptor);
735
734
  } else {
@@ -743,6 +742,7 @@ function runManagedPythonJob({ action, script, args, onProgress, signal } = {})
743
742
  /** Lancement d'un descripteur `runManagedPythonJob` (pas de `legalCase`/commit à gérer ici). */
744
743
  function launchManagedJob(descriptor) {
745
744
  const { job, run, resolve, reject } = descriptor;
745
+ runningManaged.add(job);
746
746
  reservedBytes += job.reserveBytes;
747
747
  const timeoutId = setTimeout(() => {
748
748
  void stopRunningJob(job, 'timeout');
@@ -31,6 +31,8 @@ import type {
31
31
  WorkspacePathValidationResult,
32
32
  } from '@/shared/types.js';
33
33
 
34
+ import { productDataRoot } from '../../shared/product-config.mjs';
35
+
34
36
  //----------------- ENVIRONMENT UTILITIES ------------
35
37
  /**
36
38
  * Indicates whether the backend is running in hosted Platform mode rather than
@@ -48,7 +50,7 @@ export const IS_PLATFORM = process.env.VITE_IS_PLATFORM === 'true';
48
50
  * this root and must not be redirected through this helper.
49
51
  */
50
52
  export function getApplicationDataRoot(): string {
51
- return process.env.CLOUDCLI_HOME || path.join(os.homedir(), '.cloudcli');
53
+ return productDataRoot(path.join(os.homedir(), '.cloudcli'));
52
54
  }
53
55
 
54
56
  // ---------------------------
@@ -1 +0,0 @@
1
- import{ah as o,ai as n}from"./mermaid.core-D-LS3QTz.js";const t=(a,r)=>o.lang.round(n.parse(a)[r]);export{t as c};