@piecemaker-legal/piecemaker 1.1.1 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{abnfDiagram-VCTEODGH-DEXWh3LH.js → abnfDiagram-VCTEODGH-BeQS_HnO.js} +1 -1
- package/dist/assets/{arc-CoTRLXKW.js → arc-ClYjD3aM.js} +1 -1
- package/dist/assets/{architectureDiagram-5GKGNRK7-Cg-jO9oR.js → architectureDiagram-5GKGNRK7-Csdihb1L.js} +1 -1
- package/dist/assets/{blockDiagram-I7D4REHJ-ChXwQSIq.js → blockDiagram-I7D4REHJ-BuXey9ht.js} +1 -1
- package/dist/assets/{c4Diagram-7LVT6UL2-Bw2VGggd.js → c4Diagram-7LVT6UL2-DdO-ovOy.js} +1 -1
- package/dist/assets/channel-DhuuSCHK.js +1 -0
- package/dist/assets/{chunk-2Q5K7J3B-C1WdqrLP.js → chunk-2Q5K7J3B-D3hzWzSc.js} +1 -1
- package/dist/assets/{chunk-5VM5RSS4-BerUZBa1.js → chunk-5VM5RSS4-DeT3cR6k.js} +1 -1
- package/dist/assets/{chunk-F27PBJKO-5W7ax2gB.js → chunk-F27PBJKO-bazGi1ru.js} +1 -1
- package/dist/assets/{chunk-IMKFNOWR-JgDN1h4T.js → chunk-IMKFNOWR-BE3ZXrPd.js} +1 -1
- package/dist/assets/{chunk-JWPE2WC7-ulNHnEdQ.js → chunk-JWPE2WC7-dTAsgByE.js} +1 -1
- package/dist/assets/{chunk-POPQ4Y6H-D4aTDC2T.js → chunk-POPQ4Y6H-DKYrzMSd.js} +1 -1
- package/dist/assets/{chunk-SVP7TREG-BA5zX4XF.js → chunk-SVP7TREG-BTtrMvhE.js} +1 -1
- package/dist/assets/{chunk-TICWLB2K-DhOULVhX.js → chunk-TICWLB2K-CZPHShPS.js} +1 -1
- package/dist/assets/{chunk-XXDRQBXY-CkpCgrVg.js → chunk-XXDRQBXY-B0byFHaU.js} +1 -1
- package/dist/assets/classDiagram-ZZMXUADV-CO0E82Dl.js +1 -0
- package/dist/assets/classDiagram-v2-VYDZK3BY-CO0E82Dl.js +1 -0
- package/dist/assets/{cose-bilkent-JH36ORCC-0xUSfjfV.js → cose-bilkent-JH36ORCC-BbLCzlaU.js} +1 -1
- package/dist/assets/{cynefin-OW5HDTMX-BE6fNu2_.js → cynefin-OW5HDTMX-CQ8ui4YD.js} +1 -1
- package/dist/assets/{cynefinDiagram-5FMLGOSQ-rFMnZ9b3.js → cynefinDiagram-5FMLGOSQ-T-GL1aIf.js} +1 -1
- package/dist/assets/{dagre-GXQ25YYZ-C1p4ffd7.js → dagre-GXQ25YYZ-CXxVKznH.js} +1 -1
- package/dist/assets/{diagram-S7CK7UJ4-BV_3Xj4O.js → diagram-S7CK7UJ4-B_-1Mf_7.js} +1 -1
- package/dist/assets/{diagram-UQ7AKVKN-Bb_Evkrm.js → diagram-UQ7AKVKN-Bs-OB8xI.js} +1 -1
- package/dist/assets/{diagram-VSXAHHWV-BzgupjxD.js → diagram-VSXAHHWV-BpUqq93o.js} +1 -1
- package/dist/assets/{diagram-VX7I27RA-D1c67z76.js → diagram-VX7I27RA-CZ6hSUo6.js} +1 -1
- package/dist/assets/{diagram-Z3DM3KII-DsJAJGKE.js → diagram-Z3DM3KII-DVZiDO6S.js} +1 -1
- package/dist/assets/{ebnfDiagram-PWID7BFC-B1ge_obq.js → ebnfDiagram-PWID7BFC-D_1izoKK.js} +1 -1
- package/dist/assets/{erDiagram-RLTQ6QDP-DrV-tggw.js → erDiagram-RLTQ6QDP-_jSi4sg-.js} +1 -1
- package/dist/assets/{flowDiagram-HODETNUW-CVzDiSQ3.js → flowDiagram-HODETNUW-BtBM7ez3.js} +1 -1
- package/dist/assets/{ganttDiagram-EL5Y4UJY-CGRdSN9D.js → ganttDiagram-EL5Y4UJY-Bz2nxw7c.js} +1 -1
- package/dist/assets/{gitGraphDiagram-WWUBYQGX-CAfvFXzL.js → gitGraphDiagram-WWUBYQGX-8Q3I3hoE.js} +1 -1
- package/dist/assets/{index-DaxH81ZJ.js → index-CZUj0Tlu.js} +152 -152
- package/dist/assets/index-DcfdIMj-.css +1 -0
- package/dist/assets/{infoDiagram-27XIBGKW-DTshEkGK.js → infoDiagram-27XIBGKW-Cc6eKjfU.js} +1 -1
- package/dist/assets/{ishikawaDiagram-5VMMS53U-DkbshVxp.js → ishikawaDiagram-5VMMS53U-Bd3w97qM.js} +1 -1
- package/dist/assets/{journeyDiagram-3NMN7TZE-v5qE8xpn.js → journeyDiagram-3NMN7TZE-Cy6XbK5X.js} +1 -1
- package/dist/assets/{kanban-definition-UXKFOSKX-a9CNMFLt.js → kanban-definition-UXKFOSKX-kyLqWDpr.js} +1 -1
- package/dist/assets/{layout-DrW4R1TH.js → layout-DXpPSEft.js} +1 -1
- package/dist/assets/{linear-Cs3qpXT_.js → linear-DH_h9cDZ.js} +1 -1
- package/dist/assets/{mermaid.core-C7Ti-Fty.js → mermaid.core-BghXiB7p.js} +6 -6
- package/dist/assets/{mindmap-definition-YA3MSWOX-B0VDdIcG.js → mindmap-definition-YA3MSWOX-C2xxEXsP.js} +1 -1
- package/dist/assets/{pegDiagram-XKGWAZYB-CV1L7MjP.js → pegDiagram-XKGWAZYB-DuppHX4-.js} +1 -1
- package/dist/assets/{pieDiagram-E7YTZNPT-DSCuzVTV.js → pieDiagram-E7YTZNPT-BCukPZ2a.js} +1 -1
- package/dist/assets/{quadrantDiagram-AXDQQJYC-hzX-9AKo.js → quadrantDiagram-AXDQQJYC-Dm_ojY_7.js} +1 -1
- package/dist/assets/{railroadDiagram-O6MQD6OU-BbmzIqcp.js → railroadDiagram-O6MQD6OU-BzdOv7BJ.js} +1 -1
- package/dist/assets/{requirementDiagram-BXWQKSXE-CQCRRBSL.js → requirementDiagram-BXWQKSXE-DgewPP_g.js} +1 -1
- package/dist/assets/{sankeyDiagram-P5KCCOFB-kiaLcW6X.js → sankeyDiagram-P5KCCOFB-vEIMvCSt.js} +1 -1
- package/dist/assets/{sequenceDiagram-WJ2MYXX4-Bgx8ST7Q.js → sequenceDiagram-WJ2MYXX4-BL_31NoY.js} +1 -1
- package/dist/assets/{sizeCapture-INFHLROL-BTjJ-ygN.js → sizeCapture-INFHLROL-Ch6u4xo6.js} +1 -1
- package/dist/assets/{stateDiagram-D77RDMKH-D48RR1FL.js → stateDiagram-D77RDMKH-ByquMuJv.js} +1 -1
- package/dist/assets/{stateDiagram-v2-MP3YSRHH-B-XwSR-z.js → stateDiagram-v2-MP3YSRHH-_QRJP_vn.js} +1 -1
- package/dist/assets/{swimlanes-42K2YHIH-BhE-QuEZ.js → swimlanes-42K2YHIH-BZyXEHOb.js} +1 -1
- package/dist/assets/swimlanesDiagram-VR7AAH4N-sqZwZwbP.js +8 -0
- package/dist/assets/{timeline-definition-24CTP7MA-Cm7EUWWt.js → timeline-definition-24CTP7MA-CLBivayK.js} +1 -1
- package/dist/assets/{vennDiagram-4TSXK5OY-X-nC9wZ0.js → vennDiagram-4TSXK5OY-3dJ2PRqR.js} +1 -1
- package/dist/assets/{wardleyDiagram-VM6X3IG4-D33YvEQZ.js → wardleyDiagram-VM6X3IG4-C279LT36.js} +1 -1
- package/dist/assets/{xychartDiagram-S5SC5T6Z-lziwBKsM.js → xychartDiagram-S5SC5T6Z-FoqPDrei.js} +1 -1
- package/dist/index.html +2 -2
- package/dist/sw.js +1 -1
- package/dist-server/server/index.js +3 -1
- package/dist-server/server/index.js.map +1 -1
- package/dist-server/server/piecemaker/harness/citations.routes.js +18 -1
- package/dist-server/server/piecemaker/harness/citations.routes.js.map +1 -1
- package/dist-server/server/piecemaker/harness/legifrance-html.js +112 -0
- package/dist-server/server/piecemaker/harness/legifrance-html.js.map +1 -0
- package/dist-server/server/piecemaker/index.js +7 -3
- package/dist-server/server/piecemaker/index.js.map +1 -1
- package/dist-server/server/piecemaker/knowledge/index.js +13 -6
- package/dist-server/server/piecemaker/knowledge/index.js.map +1 -1
- package/dist-server/server/piecemaker/knowledge/local-routes.js +55 -0
- package/dist-server/server/piecemaker/knowledge/local-routes.js.map +1 -0
- package/dist-server/server/piecemaker/knowledge/scan-jobs.js +3 -1
- package/dist-server/server/piecemaker/knowledge/scan-jobs.js.map +1 -1
- package/dist-server/server/piecemaker/library/index.js +14 -41
- package/dist-server/server/piecemaker/library/index.js.map +1 -1
- package/dist-server/server/piecemaker/library/store.js +11 -3
- package/dist-server/server/piecemaker/library/store.js.map +1 -1
- package/dist-server/server/piecemaker/library/workspace-installation.js +26 -3
- package/dist-server/server/piecemaker/library/workspace-installation.js.map +1 -1
- package/dist-server/server/piecemaker/timesheet/service.js +8 -7
- package/dist-server/server/piecemaker/timesheet/service.js.map +1 -1
- package/dist-server/server/piecemaker/timesheet/store.js +5 -3
- package/dist-server/server/piecemaker/timesheet/store.js.map +1 -1
- package/package.json +1 -1
- package/product.config.json +2 -0
- package/scripts/piecemaker/build-app-icon.py +88 -0
- package/scripts/piecemaker/cli/lib/piecemaker-anonymizer.mjs +2 -2
- package/scripts/piecemaker/hooks/proxy-guard.mjs +19 -54
- package/scripts/release/assert-piecemaker-version.mjs +25 -0
- package/server/index.ts +4 -1
- package/server/piecemaker/anonymizer/client-config.cjs +45 -162
- package/server/piecemaker/anonymizer/hudsucker-fixture.cjs +127 -0
- package/server/piecemaker/anonymizer/hudsucker-proxy/Cargo.lock +2396 -0
- package/server/piecemaker/anonymizer/hudsucker-proxy/Cargo.toml +14 -0
- package/server/piecemaker/anonymizer/hudsucker-proxy/src/main.rs +501 -0
- package/server/piecemaker/anonymizer/providers.cjs +14 -135
- package/server/piecemaker/anonymizer/rewriter-bridge.cjs +221 -0
- package/server/piecemaker/anonymizer/service.cjs +144 -28
- package/server/piecemaker/harness/citations.routes.ts +23 -1
- package/server/piecemaker/harness/legifrance-html.ts +107 -0
- package/server/piecemaker/index.ts +8 -3
- package/server/piecemaker/knowledge/index.ts +14 -6
- package/server/piecemaker/knowledge/local-routes.ts +72 -0
- package/server/piecemaker/knowledge/scan-jobs.ts +4 -1
- package/server/piecemaker/library/index.ts +14 -34
- package/server/piecemaker/library/store.ts +11 -3
- package/server/piecemaker/library/workspace-installation.ts +20 -3
- package/server/piecemaker/timesheet/service.ts +9 -7
- package/server/piecemaker/timesheet/store.ts +5 -3
- package/server/piecemaker/vendor/installer/assets/claude-hooks/piecemaker-guard-secrets.mjs +0 -1
- 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 +56 -206
- package/server/piecemaker/vendor/installer/lib/commandes.mjs +2 -4
- package/server/piecemaker/vendor/installer/lib/conversion-client.mjs +74 -0
- package/server/piecemaker/vendor/installer/lib/service.mjs +4 -358
- package/server/piecemaker/vendor/installer/lib/state.mjs +0 -6
- package/server/piecemaker/vendor/installer/steps/03-python-gliner.mjs +4 -4
- package/server/piecemaker/vendor/installer/steps/09-claude-assets.mjs +0 -31
- package/server/piecemaker/vendor/piecemaker-plugin/scripts/statusline.mjs +3 -4
- package/server/piecemaker/vendor/websocket-server/admin-routes.cjs +1 -49
- package/server/piecemaker/vendor/websocket-server/claude-hooks.cjs +14 -12
- package/server/piecemaker/vendor/websocket-server/originals-pipeline.cjs +17 -476
- package/server/piecemaker/vendor/websocket-server/scripts/convert_and_scan_pipeline.py +2 -2
- package/server/piecemaker/vendor/websocket-server/scripts/mineru_improved_1.py +11 -2
- package/server/piecemaker/vendor/websocket-server/scripts/presidio-gliner/scanner_worker.py +13 -37
- package/server/piecemaker/vendor/websocket-server/scripts/requirements.txt +1 -7
- package/server/piecemaker/vendor/websocket-server/scripts/warmup.py +14 -85
- package/dist/assets/channel-DdzrPZ6Y.js +0 -1
- package/dist/assets/classDiagram-ZZMXUADV-Dim2o8E5.js +0 -1
- package/dist/assets/classDiagram-v2-VYDZK3BY-Dim2o8E5.js +0 -1
- package/dist/assets/index-D_Dc_nQv.css +0 -1
- package/dist/assets/swimlanesDiagram-VR7AAH4N-DR525d5V.js +0 -8
- package/server/piecemaker/anonymizer/proxy.cjs +0 -365
- package/server/piecemaker/vendor/installer/assets/PieceMakerApp.swift +0 -189
- package/server/piecemaker/vendor/installer/lib/desktop-launcher.mjs +0 -305
- package/server/piecemaker/vendor/installer/steps/05-certificats.mjs +0 -171
- package/server/piecemaker/vendor/installer/steps/14-mxc-sandbox.mjs +0 -271
- package/server/piecemaker/vendor/installer/steps/15-pwa-desktop.mjs +0 -64
- package/server/piecemaker/vendor/installer/templates/root-CLAUDE.md +0 -56
- package/server/piecemaker/vendor/installer/templates/workspace-CLAUDE.md +0 -52
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../../server/piecemaker/timesheet/service.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../../server/piecemaker/timesheet/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,8 @@ function createSchema(database) {
|
|
|
22
22
|
);
|
|
23
23
|
CREATE INDEX IF NOT EXISTS timesheet_project_date
|
|
24
24
|
ON timesheet_sessions(project_id, started_at);
|
|
25
|
+
CREATE INDEX IF NOT EXISTS timesheet_project_path_date
|
|
26
|
+
ON timesheet_sessions(project_path, started_at);
|
|
25
27
|
CREATE INDEX IF NOT EXISTS timesheet_date
|
|
26
28
|
ON timesheet_sessions(started_at);
|
|
27
29
|
`);
|
|
@@ -102,7 +104,7 @@ export function createTimesheetStore(homeDir) {
|
|
|
102
104
|
`);
|
|
103
105
|
const findBySessionId = database.prepare('SELECT * FROM timesheet_sessions WHERE session_id = ?');
|
|
104
106
|
const listAll = database.prepare('SELECT * FROM timesheet_sessions ORDER BY datetime(started_at) DESC, session_id DESC');
|
|
105
|
-
const
|
|
107
|
+
const listByProjectPath = database.prepare('SELECT * FROM timesheet_sessions WHERE project_path = ? ORDER BY datetime(started_at) DESC, session_id DESC');
|
|
106
108
|
return {
|
|
107
109
|
databasePath,
|
|
108
110
|
upsert(entry) {
|
|
@@ -113,8 +115,8 @@ export function createTimesheetStore(homeDir) {
|
|
|
113
115
|
const row = findBySessionId.get(sessionId);
|
|
114
116
|
return row ? toEntry(row) : null;
|
|
115
117
|
},
|
|
116
|
-
list(
|
|
117
|
-
const rows = (
|
|
118
|
+
list(projectPath) {
|
|
119
|
+
const rows = (projectPath ? listByProjectPath.all(projectPath) : listAll.all());
|
|
118
120
|
return rows.map(toEntry);
|
|
119
121
|
},
|
|
120
122
|
close() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../../server/piecemaker/timesheet/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAoCtC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAGjC,SAAS,YAAY,CAAC,QAA2B;IAC/C,QAAQ,CAAC,IAAI,CAAC
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../../server/piecemaker/timesheet/store.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/product.config.json
CHANGED
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
"repository": "PieceMaker-Legal/piecemaker-droit-francais",
|
|
13
13
|
"controlPlaneUrl": "https://cloudcli.ai",
|
|
14
14
|
"sshHost": "ssh.cloudcli.ai",
|
|
15
|
+
"cloudEnabled": false,
|
|
16
|
+
"windowIcon": "public/logo-512.png",
|
|
15
17
|
"themeColor": "#ffffff",
|
|
16
18
|
"backgroundColor": "#ffffff",
|
|
17
19
|
"showGithubStarBadge": false
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
import subprocess
|
|
3
|
+
import sys
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
|
|
6
|
+
from PIL import Image, ImageDraw
|
|
7
|
+
|
|
8
|
+
ROOT = Path(__file__).resolve().parents[2]
|
|
9
|
+
SOURCE_LOGO = ROOT / 'public' / 'logo-sources' / 'logo-black.png'
|
|
10
|
+
ASSETS = ROOT / 'server' / 'piecemaker' / 'vendor' / 'installer' / 'assets'
|
|
11
|
+
ICNS = ASSETS / 'piecemaker.icns'
|
|
12
|
+
ICO = ASSETS / 'piecemaker.ico'
|
|
13
|
+
|
|
14
|
+
CANVAS = 1024
|
|
15
|
+
PLATE_INSET = 90
|
|
16
|
+
PLATE_RADIUS_RATIO = 0.2237
|
|
17
|
+
PLATE_FILL = (255, 255, 255, 255)
|
|
18
|
+
PLATE_EDGE = (203, 213, 225, 255)
|
|
19
|
+
LOGO_RATIO = 0.66
|
|
20
|
+
SUPERSAMPLE = 4
|
|
21
|
+
|
|
22
|
+
ICONSET_SIZES = [
|
|
23
|
+
('icon_16x16.png', 16),
|
|
24
|
+
('icon_16x16@2x.png', 32),
|
|
25
|
+
('icon_32x32.png', 32),
|
|
26
|
+
('icon_32x32@2x.png', 64),
|
|
27
|
+
('icon_128x128.png', 128),
|
|
28
|
+
('icon_128x128@2x.png', 256),
|
|
29
|
+
('icon_256x256.png', 256),
|
|
30
|
+
('icon_256x256@2x.png', 512),
|
|
31
|
+
('icon_512x512.png', 512),
|
|
32
|
+
('icon_512x512@2x.png', 1024),
|
|
33
|
+
]
|
|
34
|
+
ICO_SIZES = [16, 24, 32, 48, 64, 128, 256]
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def render_master() -> Image.Image:
|
|
38
|
+
scale = SUPERSAMPLE
|
|
39
|
+
canvas = Image.new('RGBA', (CANVAS * scale, CANVAS * scale), (0, 0, 0, 0))
|
|
40
|
+
draw = ImageDraw.Draw(canvas)
|
|
41
|
+
|
|
42
|
+
plate = [
|
|
43
|
+
PLATE_INSET * scale,
|
|
44
|
+
PLATE_INSET * scale,
|
|
45
|
+
(CANVAS - PLATE_INSET) * scale,
|
|
46
|
+
(CANVAS - PLATE_INSET) * scale,
|
|
47
|
+
]
|
|
48
|
+
plate_size = plate[2] - plate[0]
|
|
49
|
+
radius = int(plate_size * PLATE_RADIUS_RATIO)
|
|
50
|
+
draw.rounded_rectangle(plate, radius=radius, fill=PLATE_FILL, outline=PLATE_EDGE, width=3 * scale)
|
|
51
|
+
|
|
52
|
+
logo = Image.open(SOURCE_LOGO).convert('RGBA')
|
|
53
|
+
target = int(plate_size * LOGO_RATIO)
|
|
54
|
+
logo = logo.resize((target, target), Image.LANCZOS)
|
|
55
|
+
offset = (CANVAS * scale - target) // 2
|
|
56
|
+
canvas.alpha_composite(logo, (offset, offset))
|
|
57
|
+
|
|
58
|
+
return canvas.resize((CANVAS, CANVAS), Image.LANCZOS)
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
def build_icns(master: Image.Image, workdir: Path) -> None:
|
|
62
|
+
iconset = workdir / 'piecemaker.iconset'
|
|
63
|
+
iconset.mkdir(parents=True, exist_ok=True)
|
|
64
|
+
for name, size in ICONSET_SIZES:
|
|
65
|
+
master.resize((size, size), Image.LANCZOS).save(iconset / name)
|
|
66
|
+
subprocess.run(['iconutil', '-c', 'icns', str(iconset), '-o', str(ICNS)], check=True)
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
def build_ico(master: Image.Image) -> None:
|
|
70
|
+
master.save(ICO, format='ICO', sizes=[(size, size) for size in ICO_SIZES])
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
def main() -> int:
|
|
74
|
+
if not SOURCE_LOGO.exists():
|
|
75
|
+
print(f'Logo source introuvable : {SOURCE_LOGO}', file=sys.stderr)
|
|
76
|
+
return 1
|
|
77
|
+
workdir = ROOT / '.desktop-build' / 'icon'
|
|
78
|
+
workdir.mkdir(parents=True, exist_ok=True)
|
|
79
|
+
master = render_master()
|
|
80
|
+
master.save(workdir / 'piecemaker-1024.png')
|
|
81
|
+
build_icns(master, workdir)
|
|
82
|
+
build_ico(master)
|
|
83
|
+
print(f'Icônes générées : {ICNS.relative_to(ROOT)}, {ICO.relative_to(ROOT)}')
|
|
84
|
+
return 0
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
if __name__ == '__main__':
|
|
88
|
+
raise SystemExit(main())
|
|
@@ -35,6 +35,7 @@ export async function repairClientProxies({ appDir, report }) {
|
|
|
35
35
|
|
|
36
36
|
const userHome = os.homedir();
|
|
37
37
|
const origin = `http://127.0.0.1:${await resolveAnonymizerPort()}`;
|
|
38
|
+
const caFile = path.join(userHome, '.piecemaker', 'certs', 'piecemaker-ca.crt');
|
|
38
39
|
|
|
39
40
|
const attempt = (name, run) => {
|
|
40
41
|
try {
|
|
@@ -51,9 +52,8 @@ export async function repairClientProxies({ appDir, report }) {
|
|
|
51
52
|
}
|
|
52
53
|
};
|
|
53
54
|
|
|
54
|
-
attempt('claude', () => configureClaudeCodeProxy({
|
|
55
|
+
attempt('claude', () => configureClaudeCodeProxy({ proxyUrl: origin, caFile, userHome }));
|
|
55
56
|
attempt('codex', () => configureCodexProxy({
|
|
56
|
-
baseUrl: `${origin}/chatgpt`,
|
|
57
57
|
codexHome: process.env.CODEX_HOME || path.join(userHome, '.codex'),
|
|
58
58
|
}));
|
|
59
59
|
}
|
|
@@ -2,21 +2,16 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Hook SessionStart — garde-fou contre le port mort du proxy PII.
|
|
4
4
|
*
|
|
5
|
-
* Le proxy de ce dépôt (
|
|
6
|
-
*
|
|
5
|
+
* Le proxy de ce dépôt (hudsucker, démarré par service.cjs) écoute un port
|
|
6
|
+
* fixe et vit avec le process serveur. Il meurt
|
|
7
7
|
* avec lui, mais la configuration qu'il a écrite survit sur disque : une
|
|
8
8
|
* session démarrée serveur éteint pointe alors vers un port fermé en boucle,
|
|
9
9
|
* sans pouvoir se corriger elle-même en cours de route.
|
|
10
10
|
*
|
|
11
11
|
* Ce hook sert deux clients, distingués par la variable d'environnement
|
|
12
12
|
* PIECEMAKER_HOOK_CLIENT :
|
|
13
|
-
* - claude (valeur par défaut) :
|
|
14
|
-
*
|
|
15
|
-
* bypassClaudeCodeProxy() (server/piecemaker/anonymizer/client-config.cjs).
|
|
16
|
-
* - codex : la base vient de ~/.codex/config.toml (ou $CODEX_HOME), dans
|
|
17
|
-
* le bloc géré délimité par les marqueurs PieceMaker Proxy PII, table
|
|
18
|
-
* [model_providers.piecemaker_proxy], pathname attendu /chatgpt.
|
|
19
|
-
* Nettoyage via bypassCodexProxy() du même module.
|
|
13
|
+
* - claude (valeur par défaut) : HTTPS_PROXY dans ~/.claude/settings.json.
|
|
14
|
+
* - codex : HTTPS_PROXY hérité du processus.
|
|
20
15
|
*
|
|
21
16
|
* Il sonde le port concerné, et si le proxy est bien mort retire l'entrée
|
|
22
17
|
* périmée pour laisser la session démarrer en accès direct plutôt qu'en
|
|
@@ -42,8 +37,6 @@ const require = createRequire(import.meta.url);
|
|
|
42
37
|
const DEFAULT_PORT = 4111;
|
|
43
38
|
const PROBE_TIMEOUT_MS = 1500;
|
|
44
39
|
const GUARD_NAME = 'repo';
|
|
45
|
-
const CODEX_BLOCK_START = '# >>> PieceMaker Proxy PII (géré automatiquement)';
|
|
46
|
-
const CODEX_BLOCK_END = '# <<< PieceMaker Proxy PII';
|
|
47
40
|
|
|
48
41
|
function lireEntierPort(valeur) {
|
|
49
42
|
const nombre = Number.parseInt(valeur, 10);
|
|
@@ -84,42 +77,19 @@ function lireStdin(delaiMs = 500) {
|
|
|
84
77
|
});
|
|
85
78
|
}
|
|
86
79
|
|
|
87
|
-
function estUrlLoopback(valeur, pathAttendu) {
|
|
88
|
-
try {
|
|
89
|
-
const url = new URL(String(valeur || ''));
|
|
90
|
-
const estLoopback = url.hostname === '127.0.0.1' || url.hostname === 'localhost';
|
|
91
|
-
return estLoopback && url.pathname.replace(/\/$/, '') === pathAttendu;
|
|
92
|
-
} catch {
|
|
93
|
-
return false;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
|
|
97
80
|
function extraireBaseUrlClaude(userHome) {
|
|
98
81
|
const settingsFile = path.join(userHome, '.claude', 'settings.json');
|
|
99
82
|
const settings = lireJsonSiPresent(settingsFile);
|
|
100
83
|
const env = settings && typeof settings.env === 'object' && settings.env !== null ? settings.env : {};
|
|
101
|
-
return env.
|
|
84
|
+
return env.HTTPS_PROXY;
|
|
102
85
|
}
|
|
103
86
|
|
|
104
|
-
function
|
|
105
|
-
const debut = contenu.indexOf(CODEX_BLOCK_START);
|
|
106
|
-
const fin = contenu.indexOf(CODEX_BLOCK_END);
|
|
107
|
-
if (debut === -1 || fin === -1 || fin < debut) return null;
|
|
108
|
-
return contenu.slice(debut, fin + CODEX_BLOCK_END.length);
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
function extraireBaseUrlCodex(codexHome) {
|
|
87
|
+
function estLoopback(valeur) {
|
|
112
88
|
try {
|
|
113
|
-
const
|
|
114
|
-
|
|
115
|
-
const contenu = fs.readFileSync(configFile, 'utf8');
|
|
116
|
-
const bloc = extraireBlocCodex(contenu);
|
|
117
|
-
if (!bloc) return undefined;
|
|
118
|
-
const correspondance = bloc.match(/^\s*base_url\s*=\s*(?:"([^"]*)"|'([^']*)')/m);
|
|
119
|
-
if (!correspondance) return undefined;
|
|
120
|
-
return correspondance[1] !== undefined ? correspondance[1] : correspondance[2];
|
|
89
|
+
const url = new URL(String(valeur || ''));
|
|
90
|
+
return url.hostname === '127.0.0.1' || url.hostname === 'localhost';
|
|
121
91
|
} catch {
|
|
122
|
-
return
|
|
92
|
+
return false;
|
|
123
93
|
}
|
|
124
94
|
}
|
|
125
95
|
|
|
@@ -184,23 +154,21 @@ async function main() {
|
|
|
184
154
|
};
|
|
185
155
|
|
|
186
156
|
if (client === 'codex') {
|
|
187
|
-
const
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
if (!baseUrl) {
|
|
157
|
+
const envProxy = process.env.HTTPS_PROXY || process.env.https_proxy;
|
|
158
|
+
if (!envProxy) {
|
|
191
159
|
route = 'absente';
|
|
192
160
|
verdict = 'direct';
|
|
193
161
|
terminer({
|
|
194
162
|
systemMessage: "PieceMaker : aucun proxy PII configuré pour cette session Codex — elle démarre en accès direct, sans anonymisation.",
|
|
195
163
|
hookSpecificOutput: {
|
|
196
164
|
hookEventName: 'SessionStart',
|
|
197
|
-
additionalContext: "
|
|
165
|
+
additionalContext: "HTTPS_PROXY n'est pas défini : la session Codex n'est pas routée par le proxy PII PieceMaker, aucune anonymisation n'est appliquée.",
|
|
198
166
|
},
|
|
199
167
|
});
|
|
200
168
|
return;
|
|
201
169
|
}
|
|
202
170
|
|
|
203
|
-
if (!
|
|
171
|
+
if (!estLoopback(envProxy)) {
|
|
204
172
|
route = 'externe';
|
|
205
173
|
verdict = 'externe';
|
|
206
174
|
terminer(null);
|
|
@@ -208,7 +176,7 @@ async function main() {
|
|
|
208
176
|
}
|
|
209
177
|
|
|
210
178
|
route = 'proxy_piecemaker';
|
|
211
|
-
port = portDeLaBase(
|
|
179
|
+
port = portDeLaBase(envProxy, DEFAULT_PORT);
|
|
212
180
|
probe = await sonderPort(port);
|
|
213
181
|
|
|
214
182
|
if (probe === 'vivant') {
|
|
@@ -217,15 +185,12 @@ async function main() {
|
|
|
217
185
|
return;
|
|
218
186
|
}
|
|
219
187
|
|
|
220
|
-
const { bypassCodexProxy } = require('../../../server/piecemaker/anonymizer/client-config.cjs');
|
|
221
|
-
bypassCodexProxy({ codexHome });
|
|
222
|
-
|
|
223
188
|
verdict = 'nettoye';
|
|
224
189
|
terminer({
|
|
225
|
-
systemMessage: `⚠️ PIECEMAKER : proxy PII injoignable sur le port ${port}.
|
|
190
|
+
systemMessage: `⚠️ PIECEMAKER : proxy PII injoignable sur le port ${port}. Cette session Codex n'est pas anonymisée. Démarrer le serveur PieceMaker (commande \`piecemaker\`) pour rétablir la protection.`,
|
|
226
191
|
hookSpecificOutput: {
|
|
227
192
|
hookEventName: 'SessionStart',
|
|
228
|
-
additionalContext: `Le proxy PII PieceMaker était configuré sur le port ${port} mais ne répond pas.
|
|
193
|
+
additionalContext: `Le proxy PII PieceMaker était configuré sur le port ${port} mais ne répond pas. Cette session n'est PAS anonymisée tant que le serveur PieceMaker (commande \`piecemaker\`) n'est pas relancé.`,
|
|
229
194
|
},
|
|
230
195
|
});
|
|
231
196
|
return;
|
|
@@ -244,13 +209,13 @@ async function main() {
|
|
|
244
209
|
systemMessage: "PieceMaker : aucun proxy PII configuré pour cette session — elle démarre en accès direct, sans anonymisation.",
|
|
245
210
|
hookSpecificOutput: {
|
|
246
211
|
hookEventName: 'SessionStart',
|
|
247
|
-
additionalContext: "
|
|
212
|
+
additionalContext: "HTTPS_PROXY n'est pas défini : la session n'est pas routée par le proxy PII PieceMaker, aucune anonymisation n'est appliquée.",
|
|
248
213
|
},
|
|
249
214
|
});
|
|
250
215
|
return;
|
|
251
216
|
}
|
|
252
217
|
|
|
253
|
-
if (!
|
|
218
|
+
if (!estLoopback(baseUrl)) {
|
|
254
219
|
route = 'externe';
|
|
255
220
|
verdict = 'externe';
|
|
256
221
|
terminer(null);
|
|
@@ -275,7 +240,7 @@ async function main() {
|
|
|
275
240
|
systemMessage: `⚠️ PIECEMAKER : proxy PII injoignable sur le port ${port}. La configuration périmée a été retirée — cette session démarre en ACCÈS DIRECT, SANS ANONYMISATION. Démarrer le serveur PieceMaker (commande \`piecemaker\`) pour rétablir la protection.`,
|
|
276
241
|
hookSpecificOutput: {
|
|
277
242
|
hookEventName: 'SessionStart',
|
|
278
|
-
additionalContext: `Le proxy PII PieceMaker était configuré sur le port ${port} mais ne répond pas.
|
|
243
|
+
additionalContext: `Le proxy PII PieceMaker était configuré sur le port ${port} mais ne répond pas. HTTPS_PROXY a été retiré de ~/.claude/settings.json. Cette session n'est PAS anonymisée tant que le serveur PieceMaker (commande \`piecemaker\`) n'est pas relancé.`,
|
|
279
244
|
},
|
|
280
245
|
});
|
|
281
246
|
} catch {
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
|
+
|
|
3
|
+
const manifest = JSON.parse(readFileSync(new URL('../../package.json', import.meta.url), 'utf8'));
|
|
4
|
+
const current = manifest.version;
|
|
5
|
+
const requested = process.env.RELEASE_INCREMENT || '';
|
|
6
|
+
|
|
7
|
+
function major(version) {
|
|
8
|
+
const value = Number(String(version).split('.')[0]);
|
|
9
|
+
return Number.isFinite(value) ? value : 0;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
function fail(message) {
|
|
13
|
+
console.error(message);
|
|
14
|
+
process.exit(1);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
if (major(current) < 2) {
|
|
18
|
+
fail(`La version ${current} suit la numérotation CloudCLI. PieceMaker publie à partir de 2.0.0.`);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
if (/^\d/.test(requested) && major(requested) < 2) {
|
|
22
|
+
fail(`L'incrément ${requested} suit la numérotation CloudCLI. Indiquez une version 2.x ou plus.`);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
console.log(`Version PieceMaker retenue : ${requested || current} (paquet ${current}).`);
|
package/server/index.ts
CHANGED
|
@@ -30,7 +30,7 @@ import { commandsRoutes } from './modules/commands/index.js';
|
|
|
30
30
|
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
|
-
import { createPieceMakerRouter, stopOriginalsJobs } from './piecemaker/index.js';
|
|
33
|
+
import { createPieceMakerLocalRouter, createPieceMakerRouter, stopOriginalsJobs } from './piecemaker/index.js';
|
|
34
34
|
import projectModuleRoutes from './modules/projects/projects.routes.js';
|
|
35
35
|
import notificationRoutes from './modules/notifications/notifications.routes.js';
|
|
36
36
|
import { userRoutes } from './modules/user/index.js';
|
|
@@ -184,6 +184,9 @@ app.use('/api/user', authenticateToken, userRoutes);
|
|
|
184
184
|
// Plugins API Routes (protected)
|
|
185
185
|
app.use('/api/plugins', authenticateToken, pluginsRoutes);
|
|
186
186
|
|
|
187
|
+
// PieceMaker local conversion API (loopback protected)
|
|
188
|
+
app.use('/api/piecemaker/local', createPieceMakerLocalRouter());
|
|
189
|
+
|
|
187
190
|
// PieceMaker API Routes (protected)
|
|
188
191
|
app.use('/api/piecemaker', authenticateToken, createPieceMakerRouter());
|
|
189
192
|
|