aidevops 3.32.271 → 3.32.272
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/README.md +1 -1
- package/VERSION +1 -1
- package/aidevops.sh +1 -1
- package/bun.lock +55 -16
- package/package.json +6 -6
- package/packages/gui-api/src/app.ts +30 -20
- package/packages/gui-api/src/status-inventory.ts +5 -4
- package/packages/gui-shared/src/notifications.ts +1 -1
- package/packages/gui-web/package.json +3 -3
- package/packages/gui-web/src/ScreenshotCaptureNotification.tsx +10 -8
- package/packages/gui-web/src/assets.d.ts +2 -0
- package/setup.sh +1 -1
package/README.md
CHANGED
|
@@ -60,7 +60,7 @@ The result: an AI operations platform that manages projects across every busines
|
|
|
60
60
|
[](https://github.com/marcusquinn)
|
|
61
61
|
|
|
62
62
|
<!-- Release & Version Info -->
|
|
63
|
-
[](https://github.com/marcusquinn/aidevops/releases)
|
|
64
64
|
[](https://www.npmjs.com/package/aidevops)
|
|
65
65
|
[](https://github.com/marcusquinn/homebrew-tap)
|
|
66
66
|
[](https://github.com/marcusquinn/aidevops)
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
3.32.
|
|
1
|
+
3.32.272
|
package/aidevops.sh
CHANGED
package/bun.lock
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
{
|
|
2
2
|
"lockfileVersion": 1,
|
|
3
|
-
"configVersion": 0,
|
|
4
3
|
"workspaces": {
|
|
5
4
|
"": {
|
|
6
5
|
"name": "aidevops-dspy-integration",
|
|
@@ -8,19 +7,19 @@
|
|
|
8
7
|
"@vitejs/plugin-react": "5.2.0",
|
|
9
8
|
"elysia": "1.4.27",
|
|
10
9
|
"file-type": "21.3.2",
|
|
11
|
-
"hono": "4.
|
|
10
|
+
"hono": "4.13.0",
|
|
12
11
|
"vite": "8.1.5",
|
|
13
12
|
},
|
|
14
13
|
"devDependencies": {
|
|
15
14
|
"@secretlint/secretlint-rule-preset-recommend": "11.7.1",
|
|
16
|
-
"@types/bun": "1.3.
|
|
15
|
+
"@types/bun": "1.3.14",
|
|
17
16
|
"@types/react": "19.2.18",
|
|
18
17
|
"@types/react-dom": "19.2.3",
|
|
19
18
|
"ajv": "8.20.0",
|
|
20
19
|
"react": "19.2.8",
|
|
21
|
-
"react-dom": "19.
|
|
20
|
+
"react-dom": "19.2.8",
|
|
22
21
|
"secretlint": "11.7.1",
|
|
23
|
-
"typescript": "
|
|
22
|
+
"typescript": "7.0.2",
|
|
24
23
|
},
|
|
25
24
|
"peerDependencies": {
|
|
26
25
|
"typescript": "^5.0.0",
|
|
@@ -44,8 +43,8 @@
|
|
|
44
43
|
"dependencies": {
|
|
45
44
|
"@aidevops/gui-shared": "workspace:*",
|
|
46
45
|
"@fontsource/courier-prime": "5.2.8",
|
|
47
|
-
"@fontsource/dm-mono": "5.
|
|
48
|
-
"@fontsource/dm-sans": "5.
|
|
46
|
+
"@fontsource/dm-mono": "5.3.0",
|
|
47
|
+
"@fontsource/dm-sans": "5.3.0",
|
|
49
48
|
"@fontsource/fredoka": "5.2.10",
|
|
50
49
|
"@fontsource/ibm-plex-mono": "5.2.7",
|
|
51
50
|
"@fontsource/ibm-plex-sans": "5.2.8",
|
|
@@ -61,7 +60,7 @@
|
|
|
61
60
|
"@fontsource/ubuntu-mono": "5.2.8",
|
|
62
61
|
"@fontsource/zilla-slab": "5.3.0",
|
|
63
62
|
"react": "19.2.8",
|
|
64
|
-
"react-dom": "19.
|
|
63
|
+
"react-dom": "19.2.8",
|
|
65
64
|
"react-icons": "5.6.0",
|
|
66
65
|
},
|
|
67
66
|
},
|
|
@@ -134,9 +133,9 @@
|
|
|
134
133
|
|
|
135
134
|
"@fontsource/courier-prime": ["@fontsource/courier-prime@5.2.8", "", {}, "sha512-M3xOCcXnGuFi9TcGCrz4hm5yeWg4Sn35MALRLPnqNoHhawTFvhyi2KSI2+5RyFtDNJrb58bPh8LLipgiI9KA0w=="],
|
|
136
135
|
|
|
137
|
-
"@fontsource/dm-mono": ["@fontsource/dm-mono@5.
|
|
136
|
+
"@fontsource/dm-mono": ["@fontsource/dm-mono@5.3.0", "", {}, "sha512-OINjI8C1S/wpchhQxl7njZdMn4+hnDCpQ4YtvvOpKNARo+0J8O1x1IcrChxNjHOhfVv1by8C/FQoy3hXK+C1Ug=="],
|
|
138
137
|
|
|
139
|
-
"@fontsource/dm-sans": ["@fontsource/dm-sans@5.
|
|
138
|
+
"@fontsource/dm-sans": ["@fontsource/dm-sans@5.3.0", "", {}, "sha512-lYJtMXXO28q1z+yz+z8XKd0s4hXaa9QdkETzkyD760sidCv5heI86weYA0sx0Nc4pAMAQTUuyf4gO44cYKKS9g=="],
|
|
140
139
|
|
|
141
140
|
"@fontsource/fredoka": ["@fontsource/fredoka@5.2.10", "", {}, "sha512-DyzPCmTf0PkBbAu+gNvnPzfD/dYIXlyp+Zcb76jEQyt/vmRKGZgkH8FFF9W2sICDaA5p+GLk1XGFjWh5PPX+lg=="],
|
|
142
141
|
|
|
@@ -266,7 +265,7 @@
|
|
|
266
265
|
|
|
267
266
|
"@types/babel__traverse": ["@types/babel__traverse@7.28.0", "", { "dependencies": { "@babel/types": "^7.28.2" } }, "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q=="],
|
|
268
267
|
|
|
269
|
-
"@types/bun": ["@types/bun@1.3.
|
|
268
|
+
"@types/bun": ["@types/bun@1.3.14", "", { "dependencies": { "bun-types": "1.3.14" } }, "sha512-h1hFqFVcvAvD9j9K7ZW7vd82aSA+rTdznZa+5bwvCwqSB1jmmfLcbIWhOLx1/+boy/xmjgCs/OMUL8hRJSmnPw=="],
|
|
270
269
|
|
|
271
270
|
"@types/node": ["@types/node@24.10.1", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ=="],
|
|
272
271
|
|
|
@@ -276,6 +275,46 @@
|
|
|
276
275
|
|
|
277
276
|
"@types/react-dom": ["@types/react-dom@19.2.3", "", { "peerDependencies": { "@types/react": "^19.2.0" } }, "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ=="],
|
|
278
277
|
|
|
278
|
+
"@typescript/typescript-aix-ppc64": ["@typescript/typescript-aix-ppc64@7.0.2", "", { "os": "aix", "cpu": "ppc64" }, "sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ=="],
|
|
279
|
+
|
|
280
|
+
"@typescript/typescript-darwin-arm64": ["@typescript/typescript-darwin-arm64@7.0.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA=="],
|
|
281
|
+
|
|
282
|
+
"@typescript/typescript-darwin-x64": ["@typescript/typescript-darwin-x64@7.0.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA=="],
|
|
283
|
+
|
|
284
|
+
"@typescript/typescript-freebsd-arm64": ["@typescript/typescript-freebsd-arm64@7.0.2", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ=="],
|
|
285
|
+
|
|
286
|
+
"@typescript/typescript-freebsd-x64": ["@typescript/typescript-freebsd-x64@7.0.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw=="],
|
|
287
|
+
|
|
288
|
+
"@typescript/typescript-linux-arm": ["@typescript/typescript-linux-arm@7.0.2", "", { "os": "linux", "cpu": "arm" }, "sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ=="],
|
|
289
|
+
|
|
290
|
+
"@typescript/typescript-linux-arm64": ["@typescript/typescript-linux-arm64@7.0.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ=="],
|
|
291
|
+
|
|
292
|
+
"@typescript/typescript-linux-loong64": ["@typescript/typescript-linux-loong64@7.0.2", "", { "os": "linux", "cpu": "none" }, "sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ=="],
|
|
293
|
+
|
|
294
|
+
"@typescript/typescript-linux-mips64el": ["@typescript/typescript-linux-mips64el@7.0.2", "", { "os": "linux", "cpu": "none" }, "sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA=="],
|
|
295
|
+
|
|
296
|
+
"@typescript/typescript-linux-ppc64": ["@typescript/typescript-linux-ppc64@7.0.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA=="],
|
|
297
|
+
|
|
298
|
+
"@typescript/typescript-linux-riscv64": ["@typescript/typescript-linux-riscv64@7.0.2", "", { "os": "linux", "cpu": "none" }, "sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ=="],
|
|
299
|
+
|
|
300
|
+
"@typescript/typescript-linux-s390x": ["@typescript/typescript-linux-s390x@7.0.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw=="],
|
|
301
|
+
|
|
302
|
+
"@typescript/typescript-linux-x64": ["@typescript/typescript-linux-x64@7.0.2", "", { "os": "linux", "cpu": "x64" }, "sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A=="],
|
|
303
|
+
|
|
304
|
+
"@typescript/typescript-netbsd-arm64": ["@typescript/typescript-netbsd-arm64@7.0.2", "", { "os": "none", "cpu": "arm64" }, "sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA=="],
|
|
305
|
+
|
|
306
|
+
"@typescript/typescript-netbsd-x64": ["@typescript/typescript-netbsd-x64@7.0.2", "", { "os": "none", "cpu": "x64" }, "sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA=="],
|
|
307
|
+
|
|
308
|
+
"@typescript/typescript-openbsd-arm64": ["@typescript/typescript-openbsd-arm64@7.0.2", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ=="],
|
|
309
|
+
|
|
310
|
+
"@typescript/typescript-openbsd-x64": ["@typescript/typescript-openbsd-x64@7.0.2", "", { "os": "openbsd", "cpu": "x64" }, "sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg=="],
|
|
311
|
+
|
|
312
|
+
"@typescript/typescript-sunos-x64": ["@typescript/typescript-sunos-x64@7.0.2", "", { "os": "sunos", "cpu": "x64" }, "sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g=="],
|
|
313
|
+
|
|
314
|
+
"@typescript/typescript-win32-arm64": ["@typescript/typescript-win32-arm64@7.0.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ=="],
|
|
315
|
+
|
|
316
|
+
"@typescript/typescript-win32-x64": ["@typescript/typescript-win32-x64@7.0.2", "", { "os": "win32", "cpu": "x64" }, "sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g=="],
|
|
317
|
+
|
|
279
318
|
"@vitejs/plugin-react": ["@vitejs/plugin-react@5.2.0", "", { "dependencies": { "@babel/core": "^7.29.0", "@babel/plugin-transform-react-jsx-self": "^7.27.1", "@babel/plugin-transform-react-jsx-source": "^7.27.1", "@rolldown/pluginutils": "1.0.0-rc.3", "@types/babel__core": "^7.20.5", "react-refresh": "^0.18.0" }, "peerDependencies": { "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-YmKkfhOAi3wsB1PhJq5Scj3GXMn3WvtQ/JC0xoopuHoXSdmtdStOpFrYaT1kie2YgFBcIe64ROzMYRjCrYOdYw=="],
|
|
280
319
|
|
|
281
320
|
"ajv": ["ajv@8.20.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA=="],
|
|
@@ -300,7 +339,7 @@
|
|
|
300
339
|
|
|
301
340
|
"browserslist": ["browserslist@4.28.2", "", { "dependencies": { "baseline-browser-mapping": "^2.10.12", "caniuse-lite": "^1.0.30001782", "electron-to-chromium": "^1.5.328", "node-releases": "^2.0.36", "update-browserslist-db": "^1.2.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg=="],
|
|
302
341
|
|
|
303
|
-
"bun-types": ["bun-types@1.3.
|
|
342
|
+
"bun-types": ["bun-types@1.3.14", "", { "dependencies": { "@types/node": "*" } }, "sha512-4N0ig0fEomHt5R0KCFWjovxow98rIoRwKolrYdCcknNwMekCXRnWEUvgu5soYV8QXtVsrUD8B95MBOZGPvr6KQ=="],
|
|
304
343
|
|
|
305
344
|
"caniuse-lite": ["caniuse-lite@1.0.30001799", "", {}, "sha512-hG1bReV+OUU+MOqK4t/ZWI0tZOyz3rqS9XuhOUz1cIcbwBKjOyJEJuw9ER5JuNyqxNk8u/JUVbGibBOL1yrjFw=="],
|
|
306
345
|
|
|
@@ -360,7 +399,7 @@
|
|
|
360
399
|
|
|
361
400
|
"has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="],
|
|
362
401
|
|
|
363
|
-
"hono": ["hono@4.
|
|
402
|
+
"hono": ["hono@4.13.0", "", {}, "sha512-jhunvfHWxd7J5EFfSgH4xsYJzSe/lfqbUCxiyyeaQasUsXeEHXtzVid+7EOGByc5JnFa23SSFL3Y2RV/z1T+eQ=="],
|
|
364
403
|
|
|
365
404
|
"hosted-git-info": ["hosted-git-info@7.0.2", "", { "dependencies": { "lru-cache": "^10.0.1" } }, "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w=="],
|
|
366
405
|
|
|
@@ -456,7 +495,7 @@
|
|
|
456
495
|
|
|
457
496
|
"react": ["react@19.2.8", "", {}, "sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw=="],
|
|
458
497
|
|
|
459
|
-
"react-dom": ["react-dom@19.
|
|
498
|
+
"react-dom": ["react-dom@19.2.8", "", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.8" } }, "sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ=="],
|
|
460
499
|
|
|
461
500
|
"react-icons": ["react-icons@5.6.0", "", { "peerDependencies": { "react": "*" } }, "sha512-RH93p5ki6LfOiIt0UtDyNg/cee+HLVR6cHHtW3wALfo+eOHTp8RnU2kRkI6E+H19zMIs03DyxUG/GfZMOGvmiA=="],
|
|
462
501
|
|
|
@@ -472,7 +511,7 @@
|
|
|
472
511
|
|
|
473
512
|
"run-parallel": ["run-parallel@1.2.0", "", { "dependencies": { "queue-microtask": "^1.2.2" } }, "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="],
|
|
474
513
|
|
|
475
|
-
"scheduler": ["scheduler@0.
|
|
514
|
+
"scheduler": ["scheduler@0.27.0", "", {}, "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q=="],
|
|
476
515
|
|
|
477
516
|
"secretlint": ["secretlint@11.7.1", "", { "dependencies": { "@secretlint/config-creator": "11.7.1", "@secretlint/formatter": "11.7.1", "@secretlint/node": "11.7.1", "@secretlint/profiler": "11.7.1", "@secretlint/resolver": "11.7.1", "debug": "^4.4.3", "globby": "^14.1.0", "read-pkg": "^9.0.1" }, "bin": { "secretlint": "bin/secretlint.js" } }, "sha512-igo+3xtwOisz3Ge0V1t6SzCnOLXSHjRIODZpqppUmfkb0EE0EbsEMdoUuunaacxffq3NTYSzpZcjbfrPYuO+qA=="],
|
|
478
517
|
|
|
@@ -522,7 +561,7 @@
|
|
|
522
561
|
|
|
523
562
|
"type-fest": ["type-fest@4.41.0", "", {}, "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA=="],
|
|
524
563
|
|
|
525
|
-
"typescript": ["typescript@
|
|
564
|
+
"typescript": ["typescript@7.0.2", "", { "optionalDependencies": { "@typescript/typescript-aix-ppc64": "7.0.2", "@typescript/typescript-darwin-arm64": "7.0.2", "@typescript/typescript-darwin-x64": "7.0.2", "@typescript/typescript-freebsd-arm64": "7.0.2", "@typescript/typescript-freebsd-x64": "7.0.2", "@typescript/typescript-linux-arm": "7.0.2", "@typescript/typescript-linux-arm64": "7.0.2", "@typescript/typescript-linux-loong64": "7.0.2", "@typescript/typescript-linux-mips64el": "7.0.2", "@typescript/typescript-linux-ppc64": "7.0.2", "@typescript/typescript-linux-riscv64": "7.0.2", "@typescript/typescript-linux-s390x": "7.0.2", "@typescript/typescript-linux-x64": "7.0.2", "@typescript/typescript-netbsd-arm64": "7.0.2", "@typescript/typescript-netbsd-x64": "7.0.2", "@typescript/typescript-openbsd-arm64": "7.0.2", "@typescript/typescript-openbsd-x64": "7.0.2", "@typescript/typescript-sunos-x64": "7.0.2", "@typescript/typescript-win32-arm64": "7.0.2", "@typescript/typescript-win32-x64": "7.0.2" }, "bin": { "tsc": "bin/tsc" } }, "sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA=="],
|
|
526
565
|
|
|
527
566
|
"uint8array-extras": ["uint8array-extras@1.5.0", "", {}, "sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A=="],
|
|
528
567
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "aidevops",
|
|
3
|
-
"version": "3.32.
|
|
3
|
+
"version": "3.32.272",
|
|
4
4
|
"description": "AI DevOps Framework - AI-assisted development workflows, code quality, and deployment automation",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "bun@1.3.11",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"dev": "bun run .opencode/server/api-gateway.ts",
|
|
18
18
|
"dashboard": "bun run .opencode/server/mcp-dashboard.ts",
|
|
19
19
|
"server:test": "bun test ./.opencode/server/security.test.ts",
|
|
20
|
-
"server:typecheck": "tsc --noEmit --skipLibCheck --target ES2022 --module ESNext --moduleResolution Bundler --types bun .opencode/server/api-gateway.ts .opencode/server/mcp-dashboard.ts .opencode/server/index.ts .opencode/server/security.ts .opencode/server/security.test.ts",
|
|
20
|
+
"server:typecheck": "tsc --ignoreConfig --noEmit --skipLibCheck --target ES2022 --module ESNext --moduleResolution Bundler --types bun .opencode/server/api-gateway.ts .opencode/server/mcp-dashboard.ts .opencode/server/index.ts .opencode/server/security.ts .opencode/server/security.test.ts",
|
|
21
21
|
"server:check": "bun run server:typecheck && bun run server:test",
|
|
22
22
|
"quality": "bun run .opencode/tool/parallel-quality.ts",
|
|
23
23
|
"dspy:init": "dspyground init",
|
|
@@ -63,19 +63,19 @@
|
|
|
63
63
|
"@vitejs/plugin-react": "5.2.0",
|
|
64
64
|
"elysia": "1.4.27",
|
|
65
65
|
"file-type": "21.3.2",
|
|
66
|
-
"hono": "4.
|
|
66
|
+
"hono": "4.13.0",
|
|
67
67
|
"vite": "8.1.5"
|
|
68
68
|
},
|
|
69
69
|
"devDependencies": {
|
|
70
70
|
"@secretlint/secretlint-rule-preset-recommend": "11.7.1",
|
|
71
|
-
"@types/bun": "1.3.
|
|
71
|
+
"@types/bun": "1.3.14",
|
|
72
72
|
"@types/react": "19.2.18",
|
|
73
73
|
"@types/react-dom": "19.2.3",
|
|
74
74
|
"ajv": "8.20.0",
|
|
75
75
|
"react": "19.2.8",
|
|
76
|
-
"react-dom": "19.
|
|
76
|
+
"react-dom": "19.2.8",
|
|
77
77
|
"secretlint": "11.7.1",
|
|
78
|
-
"typescript": "
|
|
78
|
+
"typescript": "7.0.2"
|
|
79
79
|
},
|
|
80
80
|
"overrides": {
|
|
81
81
|
"esbuild": "0.28.1",
|
|
@@ -68,12 +68,12 @@ export function createGuiApiApp() {
|
|
|
68
68
|
|
|
69
69
|
app.post(APP_ACTION_ROUTE_MANIFEST.route, handleAppAction);
|
|
70
70
|
app.get(APP_ACTION_STATUS_ROUTE_MANIFEST.route, handleAppActionStatus);
|
|
71
|
-
|
|
72
|
-
|
|
71
|
+
app.post(PULSE_WORKERS_ACTION_ROUTE_MANIFEST.route, handlePulseWorkerAction);
|
|
72
|
+
app.get(PULSE_WORKERS_ACTION_STATUS_ROUTE_MANIFEST.route, handlePulseWorkerActionStatus);
|
|
73
73
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
74
|
+
app.get(FILE_EXPLORER_ROUTE_MANIFEST.route, (context) => context.json(
|
|
75
|
+
...fileExplorerResult(context.req.param("root") ?? "", context.req.query("path") ?? ""),
|
|
76
|
+
));
|
|
77
77
|
|
|
78
78
|
for (const route of BANNED_ROUTE_PATTERNS) {
|
|
79
79
|
app.post(route, (context) => context.json(
|
|
@@ -99,9 +99,18 @@ export function createGuiApiApp() {
|
|
|
99
99
|
}
|
|
100
100
|
|
|
101
101
|
function handleAppAction(context: Context) {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
102
|
+
const appId = context.req.param("appId");
|
|
103
|
+
const actionParam = context.req.param("action");
|
|
104
|
+
if (appId === undefined || actionParam === undefined) {
|
|
105
|
+
return context.json(createEnvelope({
|
|
106
|
+
operation_id: APP_ACTION_ROUTE_MANIFEST.operation_id,
|
|
107
|
+
source: { surface: "apps", authority: "allowlisted local command runner", path_refs: [] },
|
|
108
|
+
data: rejectedJob(appId ?? "unknown", "install", "Missing app action parameters."),
|
|
109
|
+
errors: ["action_not_allowlisted"],
|
|
110
|
+
}), 400);
|
|
111
|
+
}
|
|
112
|
+
const action = actionParam as GuiAppActionId;
|
|
113
|
+
const command = appActionCommands[appId]?.[action];
|
|
105
114
|
if (command === undefined) {
|
|
106
115
|
return context.json(createEnvelope({
|
|
107
116
|
operation_id: APP_ACTION_ROUTE_MANIFEST.operation_id,
|
|
@@ -120,7 +129,7 @@ function handleAppAction(context: Context) {
|
|
|
120
129
|
}
|
|
121
130
|
|
|
122
131
|
function handleAppActionStatus(context: Context) {
|
|
123
|
-
|
|
132
|
+
const job = appActionJobs.get(context.req.param("jobId") ?? "");
|
|
124
133
|
if (job === undefined) {
|
|
125
134
|
return context.json(createEnvelope({
|
|
126
135
|
operation_id: APP_ACTION_STATUS_ROUTE_MANIFEST.operation_id,
|
|
@@ -137,16 +146,17 @@ function handleAppActionStatus(context: Context) {
|
|
|
137
146
|
}
|
|
138
147
|
|
|
139
148
|
function handlePulseWorkerAction(context: Context) {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
149
|
+
const actionParam = context.req.param("action");
|
|
150
|
+
if (actionParam === undefined || !Object.hasOwn(pulseWorkerActionCommands, actionParam)) {
|
|
151
|
+
return context.json(createEnvelope({
|
|
152
|
+
operation_id: PULSE_WORKERS_ACTION_ROUTE_MANIFEST.operation_id,
|
|
153
|
+
source: { surface: "pulse_workers", authority: "allowlisted local command runner", path_refs: [] },
|
|
154
|
+
data: rejectedPulseWorkerJob("diagnose", "No allowlisted command for this Pulse & Workers action."),
|
|
155
|
+
errors: ["action_not_allowlisted"],
|
|
156
|
+
}), 400);
|
|
157
|
+
}
|
|
158
|
+
const action = actionParam as GuiPulseWorkerActionId;
|
|
159
|
+
const actionCommand = pulseWorkerActionCommands[action];
|
|
150
160
|
const job = startPulseWorkerActionJob(action, actionCommand.command, actionCommand.target_ref, actionCommand.audit_ref);
|
|
151
161
|
return context.json(createEnvelope({
|
|
152
162
|
operation_id: PULSE_WORKERS_ACTION_ROUTE_MANIFEST.operation_id,
|
|
@@ -157,7 +167,7 @@ function handlePulseWorkerAction(context: Context) {
|
|
|
157
167
|
}
|
|
158
168
|
|
|
159
169
|
function handlePulseWorkerActionStatus(context: Context) {
|
|
160
|
-
|
|
170
|
+
const job = pulseWorkerActionJobs.get(context.req.param("jobId") ?? "");
|
|
161
171
|
if (job === undefined) {
|
|
162
172
|
return context.json(createEnvelope({
|
|
163
173
|
operation_id: PULSE_WORKERS_ACTION_STATUS_ROUTE_MANIFEST.operation_id,
|
|
@@ -58,10 +58,11 @@ function isTrustedHelper(path: string): boolean {
|
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
function isInventory(value: unknown): value is SecretInventory {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
61
|
+
if (!isRecord(value) || value.version !== 1 || !Array.isArray(value.secrets) || value.secrets.length > 512) return false;
|
|
62
|
+
if (!isRecord(value.backends) || Object.keys(value).length !== 3 || Object.keys(value.backends).length !== 2) return false;
|
|
63
|
+
if (!BACKEND_STATES.has(value.backends.gopass) || !BACKEND_STATES.has(value.backends.credentials)) return false;
|
|
64
|
+
const secrets = value.secrets;
|
|
65
|
+
return secrets.every((secret, index) => isSecretReference(secret, index === 0 ? "" : secrets[index - 1]?.name));
|
|
65
66
|
}
|
|
66
67
|
|
|
67
68
|
function isSecretReference(value: unknown, previousName: string | undefined): value is GuiSecretReference {
|
|
@@ -97,7 +97,7 @@ function buildGuiStateNotifications(input: BuildNotificationInput): GuiNotificat
|
|
|
97
97
|
const appNeedsUpdate = (input.aiApps ?? []).filter((app) => app.needs_update);
|
|
98
98
|
const authErrors = (input.oauthPool?.providers ?? []).filter((provider) => provider.auth_errors > 0);
|
|
99
99
|
const rateLimited = (input.oauthPool?.providers ?? []).filter((provider) => provider.rate_limited > 0);
|
|
100
|
-
|
|
100
|
+
const oauthPoolSourceRef = input.oauthPool?.path_ref || "oauth_pool";
|
|
101
101
|
const notifications: GuiNotificationSummary[] = [];
|
|
102
102
|
|
|
103
103
|
if (input.restartRequired) {
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"@aidevops/gui-shared": "workspace:*",
|
|
8
8
|
"@fontsource/courier-prime": "5.2.8",
|
|
9
|
-
"@fontsource/dm-mono": "5.
|
|
10
|
-
"@fontsource/dm-sans": "5.
|
|
9
|
+
"@fontsource/dm-mono": "5.3.0",
|
|
10
|
+
"@fontsource/dm-sans": "5.3.0",
|
|
11
11
|
"@fontsource/fredoka": "5.2.10",
|
|
12
12
|
"@fontsource/ibm-plex-mono": "5.2.7",
|
|
13
13
|
"@fontsource/ibm-plex-sans": "5.2.8",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"@fontsource/ubuntu-mono": "5.2.8",
|
|
24
24
|
"@fontsource/zilla-slab": "5.3.0",
|
|
25
25
|
"react": "19.2.8",
|
|
26
|
-
"react-dom": "19.
|
|
26
|
+
"react-dom": "19.2.8",
|
|
27
27
|
"react-icons": "5.6.0"
|
|
28
28
|
},
|
|
29
29
|
"scripts": {
|
|
@@ -42,14 +42,16 @@ export function ScreenshotCaptureNotificationHost(): ReactElement | null {
|
|
|
42
42
|
const nextNotificationId = useRef(0);
|
|
43
43
|
const [screenshotNotifications, setScreenshotNotifications] = useState<ScreenshotCapturedNotification[]>([]);
|
|
44
44
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
45
|
+
useEffect(() => {
|
|
46
|
+
const showScreenshotNotification = (event: Event) => {
|
|
47
|
+
const detail = (event as CustomEvent<Partial<ScreenshotCapturedDetail>>).detail;
|
|
48
|
+
const path = detail?.path;
|
|
49
|
+
const url = detail?.url;
|
|
50
|
+
if (typeof path === "string" && typeof url === "string") {
|
|
51
|
+
nextNotificationId.current += 1;
|
|
52
|
+
setScreenshotNotifications((current) => [...current, { id: nextNotificationId.current, path, url }]);
|
|
53
|
+
}
|
|
54
|
+
};
|
|
53
55
|
|
|
54
56
|
window.addEventListener("aidevops:screenshot-captured", showScreenshotNotification);
|
|
55
57
|
return () => window.removeEventListener("aidevops:screenshot-captured", showScreenshotNotification);
|
package/setup.sh
CHANGED
|
@@ -17,7 +17,7 @@ fi
|
|
|
17
17
|
# AI Assistant Server Access Framework Setup Script
|
|
18
18
|
# Helps developers set up the framework for their infrastructure
|
|
19
19
|
#
|
|
20
|
-
# Version: 3.32.
|
|
20
|
+
# Version: 3.32.272
|
|
21
21
|
#
|
|
22
22
|
# Quick Install:
|
|
23
23
|
# npm install -g aidevops && aidevops update (recommended)
|