@nilsr0711/drydock 0.1.3 → 0.1.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.
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-path-routes-manifest.json +4 -2
- package/.next/standalone/.next/build-manifest.json +5 -5
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- package/.next/standalone/.next/routes-manifest.json +12 -0
- package/.next/standalone/.next/server/app/_global-error/page.js +2 -2
- package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
- package/.next/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js +2 -2
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/adrs/page.js +2 -2
- package/.next/standalone/.next/server/app/adrs/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/adrs/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/analytics/page.js +2 -0
- package/.next/standalone/.next/server/app/analytics/page.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/analytics/page_client-reference-manifest.js +1 -0
- package/.next/standalone/.next/server/app/api/cost/export/route.js +2 -1
- package/.next/standalone/.next/server/app/api/cost/export/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sse/dashboard/route.js +15 -2
- package/.next/standalone/.next/server/app/api/sse/dashboard/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sse/jobs/[id]/route.js +2 -2
- package/.next/standalone/.next/server/app/api/sse/jobs/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/webhooks/[repoId]/route.js +14 -1
- package/.next/standalone/.next/server/app/api/webhooks/[repoId]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/costs/page.js +2 -2
- package/.next/standalone/.next/server/app/costs/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/costs/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/jobs/[id]/page.js +3 -5
- package/.next/standalone/.next/server/app/jobs/[id]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/jobs/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/jobs/page.js +2 -0
- package/.next/standalone/.next/server/app/jobs/page.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/jobs/page_client-reference-manifest.js +1 -0
- package/.next/standalone/.next/server/app/needs-human/page.js +2 -2
- package/.next/standalone/.next/server/app/needs-human/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/needs-human/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/page.js +2 -2
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/prompts/page.js +2 -2
- package/.next/standalone/.next/server/app/prompts/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/prompts/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/repos/[id]/page.js +2 -2
- package/.next/standalone/.next/server/app/repos/[id]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/repos/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/page.js +2 -2
- package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app-paths-manifest.json +4 -2
- package/.next/standalone/.next/server/chunks/198.js +1 -0
- package/.next/standalone/.next/server/chunks/279.js +1 -0
- package/.next/standalone/.next/server/chunks/318.js +14 -0
- package/.next/standalone/.next/server/chunks/417.js +1 -0
- package/.next/standalone/.next/server/chunks/468.js +24 -0
- package/.next/standalone/.next/server/chunks/471.js +1 -0
- package/.next/standalone/.next/server/chunks/49.js +3 -0
- package/.next/standalone/.next/server/chunks/496.js +1 -0
- package/.next/standalone/.next/server/chunks/511.js +1 -0
- package/.next/standalone/.next/server/chunks/541.js +1 -1
- package/.next/standalone/.next/server/chunks/665.js +9 -0
- package/.next/standalone/.next/server/chunks/847.js +93 -0
- package/.next/standalone/.next/server/chunks/{868.js → 997.js} +2 -2
- package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
- package/.next/standalone/.next/server/next-font-manifest.js +1 -1
- package/.next/standalone/.next/server/next-font-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/static/ImQS3LTFl-iHwI2K1uXy0/_buildManifest.js +1 -0
- package/.next/standalone/.next/static/chunks/165-f2c11a8b0992483d.js +1 -0
- package/.next/standalone/.next/static/chunks/174-34fe81abafec07fe.js +1 -0
- package/.next/standalone/.next/static/chunks/188-14494263cefd30a4.js +1 -0
- package/.next/standalone/.next/static/chunks/312-5ab18c6fbb20b9cc.js +1 -0
- package/.next/standalone/.next/static/chunks/381-b0d5a35969fad985.js +1 -0
- package/.next/standalone/.next/static/chunks/540-b0819a434d7516b1.js +1 -0
- package/.next/standalone/.next/static/chunks/586-d7d6e7d3794dcf02.js +32 -0
- package/.next/standalone/.next/static/chunks/730-ae05580815adb9b2.js +1 -0
- package/.next/standalone/.next/static/chunks/736-503f37bb672c129b.js +1 -0
- package/.next/standalone/.next/static/chunks/878-f08fd91a6c00d84b.js +62 -0
- package/.next/standalone/.next/static/chunks/app/_global-error/page-03b9886f969453ed.js +1 -0
- package/.next/standalone/.next/static/chunks/app/_not-found/page-aa469cca9dc68961.js +1 -0
- package/.next/standalone/.next/static/chunks/app/adrs/page-ed0f94a800ba51c8.js +1 -0
- package/.next/standalone/.next/static/chunks/app/analytics/page-2d61245dbc9dd300.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/cost/export/route-03b9886f969453ed.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/sse/dashboard/route-03b9886f969453ed.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/sse/jobs/[id]/route-03b9886f969453ed.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/webhooks/[repoId]/route-03b9886f969453ed.js +1 -0
- package/.next/standalone/.next/static/chunks/app/costs/page-3eca75e55c68e079.js +1 -0
- package/.next/standalone/.next/static/chunks/app/jobs/[id]/page-528826c79cab6cbb.js +1 -0
- package/.next/standalone/.next/static/chunks/app/jobs/page-70bd2189d7249e3f.js +1 -0
- package/.next/standalone/.next/static/chunks/app/layout-0e04e8b455f51432.js +1 -0
- package/.next/standalone/.next/static/chunks/app/needs-human/page-90cc5147aadb3ebe.js +1 -0
- package/.next/standalone/.next/static/chunks/app/page-a142f2aa01a429d9.js +1 -0
- package/.next/standalone/.next/static/chunks/app/prompts/page-fba107f32faa6568.js +1 -0
- package/.next/standalone/.next/static/chunks/app/repos/[id]/page-0da8e297142d8567.js +1 -0
- package/.next/standalone/.next/static/chunks/app/settings/page-bd473b1d183c3db6.js +1 -0
- package/.next/standalone/.next/static/chunks/ec24c40a-fc218f196ad8b89e.js +1 -0
- package/.next/standalone/.next/static/chunks/framework-3631188fe017d11d.js +1 -0
- package/.next/standalone/.next/static/chunks/main-app-2ce5d113f02aa743.js +1 -0
- package/.next/standalone/.next/static/chunks/main-c73a28f721635e7a.js +5 -0
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-03b9886f969453ed.js +1 -0
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-03b9886f969453ed.js +1 -0
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-3d82ee7a5f817d84.js +1 -0
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-03b9886f969453ed.js +1 -0
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-03b9886f969453ed.js +1 -0
- package/.next/standalone/.next/static/css/96c4f935104c1f9a.css +3 -0
- package/.next/standalone/drizzle/0010_one_shot_costs.sql +12 -0
- package/.next/standalone/drizzle/0021_robust_wind_dancer.sql +48 -0
- package/.next/standalone/drizzle/0022_issue_model_override.sql +2 -0
- package/.next/standalone/drizzle/meta/0021_snapshot.json +1780 -0
- package/.next/standalone/drizzle/meta/_journal.json +7 -0
- package/.next/standalone/package.json +2 -1
- package/.next/static/ImQS3LTFl-iHwI2K1uXy0/_buildManifest.js +1 -0
- package/.next/static/chunks/165-f2c11a8b0992483d.js +1 -0
- package/.next/static/chunks/174-34fe81abafec07fe.js +1 -0
- package/.next/static/chunks/188-14494263cefd30a4.js +1 -0
- package/.next/static/chunks/312-5ab18c6fbb20b9cc.js +1 -0
- package/.next/static/chunks/381-b0d5a35969fad985.js +1 -0
- package/.next/static/chunks/540-b0819a434d7516b1.js +1 -0
- package/.next/static/chunks/586-d7d6e7d3794dcf02.js +32 -0
- package/.next/static/chunks/730-ae05580815adb9b2.js +1 -0
- package/.next/static/chunks/736-503f37bb672c129b.js +1 -0
- package/.next/static/chunks/878-f08fd91a6c00d84b.js +62 -0
- package/.next/static/chunks/app/_global-error/page-03b9886f969453ed.js +1 -0
- package/.next/static/chunks/app/_not-found/page-aa469cca9dc68961.js +1 -0
- package/.next/static/chunks/app/adrs/page-ed0f94a800ba51c8.js +1 -0
- package/.next/static/chunks/app/analytics/page-2d61245dbc9dd300.js +1 -0
- package/.next/static/chunks/app/api/cost/export/route-03b9886f969453ed.js +1 -0
- package/.next/static/chunks/app/api/sse/dashboard/route-03b9886f969453ed.js +1 -0
- package/.next/static/chunks/app/api/sse/jobs/[id]/route-03b9886f969453ed.js +1 -0
- package/.next/static/chunks/app/api/webhooks/[repoId]/route-03b9886f969453ed.js +1 -0
- package/.next/static/chunks/app/costs/page-3eca75e55c68e079.js +1 -0
- package/.next/static/chunks/app/jobs/[id]/page-528826c79cab6cbb.js +1 -0
- package/.next/static/chunks/app/jobs/page-70bd2189d7249e3f.js +1 -0
- package/.next/static/chunks/app/layout-0e04e8b455f51432.js +1 -0
- package/.next/static/chunks/app/needs-human/page-90cc5147aadb3ebe.js +1 -0
- package/.next/static/chunks/app/page-a142f2aa01a429d9.js +1 -0
- package/.next/static/chunks/app/prompts/page-fba107f32faa6568.js +1 -0
- package/.next/static/chunks/app/repos/[id]/page-0da8e297142d8567.js +1 -0
- package/.next/static/chunks/app/settings/page-bd473b1d183c3db6.js +1 -0
- package/.next/static/chunks/ec24c40a-fc218f196ad8b89e.js +1 -0
- package/.next/static/chunks/framework-3631188fe017d11d.js +1 -0
- package/.next/static/chunks/main-app-2ce5d113f02aa743.js +1 -0
- package/.next/static/chunks/main-c73a28f721635e7a.js +5 -0
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-03b9886f969453ed.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-03b9886f969453ed.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/global-error-3d82ee7a5f817d84.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-03b9886f969453ed.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-03b9886f969453ed.js +1 -0
- package/.next/static/css/96c4f935104c1f9a.css +3 -0
- package/README.md +11 -3
- package/bin/drydock.mjs +32 -0
- package/drizzle/0010_one_shot_costs.sql +12 -0
- package/drizzle/0021_robust_wind_dancer.sql +48 -0
- package/drizzle/0022_issue_model_override.sql +2 -0
- package/drizzle/meta/0021_snapshot.json +1780 -0
- package/drizzle/meta/_journal.json +7 -0
- package/package.json +2 -1
- package/.next/standalone/.next/server/chunks/185.js +0 -32
- package/.next/standalone/.next/server/chunks/235.js +0 -1
- package/.next/standalone/.next/server/chunks/309.js +0 -1
- package/.next/standalone/.next/server/chunks/350.js +0 -9
- package/.next/standalone/.next/server/chunks/39.js +0 -3
- package/.next/standalone/.next/server/chunks/447.js +0 -1
- package/.next/standalone/.next/server/chunks/462.js +0 -1
- package/.next/standalone/.next/server/chunks/507.js +0 -9
- package/.next/standalone/.next/server/chunks/537.js +0 -1
- package/.next/standalone/.next/server/chunks/579.js +0 -62
- package/.next/standalone/.next/server/chunks/710.js +0 -1
- package/.next/standalone/.next/server/chunks/777.js +0 -1
- package/.next/standalone/.next/server/chunks/9.js +0 -3
- package/.next/standalone/.next/static/chunks/0-539cfb6a78b205f0.js +0 -1
- package/.next/standalone/.next/static/chunks/586-4f743a204f11d627.js +0 -32
- package/.next/standalone/.next/static/chunks/66-a23941cbbf88d6cd.js +0 -1
- package/.next/standalone/.next/static/chunks/700-c294ac6d353097ec.js +0 -1
- package/.next/standalone/.next/static/chunks/744-6b71dbc0b45f3dee.js +0 -1
- package/.next/standalone/.next/static/chunks/750-1062dd98095cb147.js +0 -62
- package/.next/standalone/.next/static/chunks/77-ff0a9221f1786b0e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/_global-error/page-abc1c30fe033f680.js +0 -1
- package/.next/standalone/.next/static/chunks/app/_not-found/page-fbc46f6809bf01bc.js +0 -1
- package/.next/standalone/.next/static/chunks/app/adrs/page-54954f500bc3e3c6.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/cost/export/route-abc1c30fe033f680.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/sse/dashboard/route-abc1c30fe033f680.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/sse/jobs/[id]/route-abc1c30fe033f680.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/webhooks/[repoId]/route-abc1c30fe033f680.js +0 -1
- package/.next/standalone/.next/static/chunks/app/costs/page-737c89e70adff98b.js +0 -1
- package/.next/standalone/.next/static/chunks/app/jobs/[id]/page-217e04f338b50a7e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/layout-f6048a8c9f541e0d.js +0 -1
- package/.next/standalone/.next/static/chunks/app/needs-human/page-c047e3e842681979.js +0 -1
- package/.next/standalone/.next/static/chunks/app/page-382b7fef1f749214.js +0 -1
- package/.next/standalone/.next/static/chunks/app/prompts/page-9e32fb8f51e7873e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/repos/[id]/page-55b03bdcf107eefe.js +0 -1
- package/.next/standalone/.next/static/chunks/app/settings/page-5b2b8683fa6afdf4.js +0 -1
- package/.next/standalone/.next/static/chunks/ec24c40a-96b312d151fe54b7.js +0 -1
- package/.next/standalone/.next/static/chunks/framework-79acb3679912dc5b.js +0 -1
- package/.next/standalone/.next/static/chunks/main-a0c070ad11c80668.js +0 -5
- package/.next/standalone/.next/static/chunks/main-app-94b142817f01731e.js +0 -1
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-abc1c30fe033f680.js +0 -1
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-abc1c30fe033f680.js +0 -1
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-0d321d74b6d9f17c.js +0 -1
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-abc1c30fe033f680.js +0 -1
- package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-abc1c30fe033f680.js +0 -1
- package/.next/standalone/.next/static/css/64af283f7f467bc0.css +0 -3
- package/.next/standalone/.next/static/g7t6i0qpogjrDGpmNgFei/_buildManifest.js +0 -1
- package/.next/static/chunks/0-539cfb6a78b205f0.js +0 -1
- package/.next/static/chunks/586-4f743a204f11d627.js +0 -32
- package/.next/static/chunks/66-a23941cbbf88d6cd.js +0 -1
- package/.next/static/chunks/700-c294ac6d353097ec.js +0 -1
- package/.next/static/chunks/744-6b71dbc0b45f3dee.js +0 -1
- package/.next/static/chunks/750-1062dd98095cb147.js +0 -62
- package/.next/static/chunks/77-ff0a9221f1786b0e.js +0 -1
- package/.next/static/chunks/app/_global-error/page-abc1c30fe033f680.js +0 -1
- package/.next/static/chunks/app/_not-found/page-fbc46f6809bf01bc.js +0 -1
- package/.next/static/chunks/app/adrs/page-54954f500bc3e3c6.js +0 -1
- package/.next/static/chunks/app/api/cost/export/route-abc1c30fe033f680.js +0 -1
- package/.next/static/chunks/app/api/sse/dashboard/route-abc1c30fe033f680.js +0 -1
- package/.next/static/chunks/app/api/sse/jobs/[id]/route-abc1c30fe033f680.js +0 -1
- package/.next/static/chunks/app/api/webhooks/[repoId]/route-abc1c30fe033f680.js +0 -1
- package/.next/static/chunks/app/costs/page-737c89e70adff98b.js +0 -1
- package/.next/static/chunks/app/jobs/[id]/page-217e04f338b50a7e.js +0 -1
- package/.next/static/chunks/app/layout-f6048a8c9f541e0d.js +0 -1
- package/.next/static/chunks/app/needs-human/page-c047e3e842681979.js +0 -1
- package/.next/static/chunks/app/page-382b7fef1f749214.js +0 -1
- package/.next/static/chunks/app/prompts/page-9e32fb8f51e7873e.js +0 -1
- package/.next/static/chunks/app/repos/[id]/page-55b03bdcf107eefe.js +0 -1
- package/.next/static/chunks/app/settings/page-5b2b8683fa6afdf4.js +0 -1
- package/.next/static/chunks/ec24c40a-96b312d151fe54b7.js +0 -1
- package/.next/static/chunks/framework-79acb3679912dc5b.js +0 -1
- package/.next/static/chunks/main-a0c070ad11c80668.js +0 -5
- package/.next/static/chunks/main-app-94b142817f01731e.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-abc1c30fe033f680.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-abc1c30fe033f680.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/global-error-0d321d74b6d9f17c.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-abc1c30fe033f680.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-abc1c30fe033f680.js +0 -1
- package/.next/static/css/64af283f7f467bc0.css +0 -3
- package/.next/static/g7t6i0qpogjrDGpmNgFei/_buildManifest.js +0 -1
- /package/.next/standalone/.next/static/{g7t6i0qpogjrDGpmNgFei → ImQS3LTFl-iHwI2K1uXy0}/_ssgManifest.js +0 -0
- /package/.next/static/{g7t6i0qpogjrDGpmNgFei → ImQS3LTFl-iHwI2K1uXy0}/_ssgManifest.js +0 -0
package/bin/drydock.mjs
CHANGED
|
@@ -13,6 +13,36 @@ import { fileURLToPath } from "node:url";
|
|
|
13
13
|
|
|
14
14
|
const DEFAULT_HOST = "127.0.0.1";
|
|
15
15
|
const DEFAULT_PORT = 3737;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Returns true when the given host address binds only to the local machine.
|
|
19
|
+
* Loopback addresses (127.0.0.1, ::1, localhost) are safe because they are
|
|
20
|
+
* unreachable from the network; all other values expand the attack surface.
|
|
21
|
+
*
|
|
22
|
+
* @param {string} host
|
|
23
|
+
*/
|
|
24
|
+
export function isLoopbackHost(host) {
|
|
25
|
+
return host === "127.0.0.1" || host === "::1" || host === "localhost";
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Throws an informative Error when `host` is a non-loopback address and the
|
|
30
|
+
* operator has not set DRYDOCK_ALLOW_REMOTE=1. This is the only gate between
|
|
31
|
+
* the unauthenticated dashboard and the network.
|
|
32
|
+
*
|
|
33
|
+
* @param {string} host
|
|
34
|
+
* @param {Record<string, string | undefined>} [env]
|
|
35
|
+
*/
|
|
36
|
+
export function assertSafeHost(host, env = process.env) {
|
|
37
|
+
if (isLoopbackHost(host)) return;
|
|
38
|
+
if (env.DRYDOCK_ALLOW_REMOTE) return;
|
|
39
|
+
throw new Error(
|
|
40
|
+
`Refusing to bind to "${host}": the Drydock dashboard has no authentication and ` +
|
|
41
|
+
`would be reachable by anyone on the network.\n` +
|
|
42
|
+
`To opt in and accept this risk, set DRYDOCK_ALLOW_REMOTE=1:\n` +
|
|
43
|
+
` DRYDOCK_ALLOW_REMOTE=1 drydock --host ${host}`,
|
|
44
|
+
);
|
|
45
|
+
}
|
|
16
46
|
const PACKAGE_ROOT = resolve(dirname(fileURLToPath(import.meta.url)), "..");
|
|
17
47
|
|
|
18
48
|
/**
|
|
@@ -270,6 +300,8 @@ async function waitForServer(url, { attempts = 100, intervalMs = 100 } = {}) {
|
|
|
270
300
|
}
|
|
271
301
|
|
|
272
302
|
async function serve({ host, port, open }) {
|
|
303
|
+
assertSafeHost(host);
|
|
304
|
+
|
|
273
305
|
const serverEntry = join(PACKAGE_ROOT, ".next", "standalone", "server.js");
|
|
274
306
|
if (!existsSync(serverEntry)) {
|
|
275
307
|
throw new Error(
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
CREATE TABLE `one_shot_costs` (
|
|
2
|
+
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
3
|
+
`repo_id` integer NOT NULL,
|
|
4
|
+
`type` text NOT NULL,
|
|
5
|
+
`cost_usd` real DEFAULT 0 NOT NULL,
|
|
6
|
+
`input_tokens` integer DEFAULT 0 NOT NULL,
|
|
7
|
+
`output_tokens` integer DEFAULT 0 NOT NULL,
|
|
8
|
+
`created_at` integer DEFAULT (unixepoch()) NOT NULL,
|
|
9
|
+
FOREIGN KEY (`repo_id`) REFERENCES `repos`(`id`) ON UPDATE no action ON DELETE cascade
|
|
10
|
+
);
|
|
11
|
+
--> statement-breakpoint
|
|
12
|
+
CREATE INDEX `one_shot_costs_repo_idx` ON `one_shot_costs` (`repo_id`);
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
PRAGMA foreign_keys=OFF;--> statement-breakpoint
|
|
2
|
+
CREATE TABLE `__new_repos` (
|
|
3
|
+
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
4
|
+
`path` text NOT NULL,
|
|
5
|
+
`name` text NOT NULL,
|
|
6
|
+
`default_branch` text DEFAULT 'main' NOT NULL,
|
|
7
|
+
`queue_label` text DEFAULT 'drydock:queue' NOT NULL,
|
|
8
|
+
`working_label` text DEFAULT 'drydock:working' NOT NULL,
|
|
9
|
+
`needs_human_label` text DEFAULT 'drydock:needs-human' NOT NULL,
|
|
10
|
+
`default_model` text DEFAULT 'claude-opus-4-8' NOT NULL,
|
|
11
|
+
`agent` text DEFAULT 'claude' NOT NULL,
|
|
12
|
+
`platform` text DEFAULT 'github' NOT NULL,
|
|
13
|
+
`api_base_url` text,
|
|
14
|
+
`api_token` text,
|
|
15
|
+
`daily_cost_limit_usd` real DEFAULT 10 NOT NULL,
|
|
16
|
+
`adr_gating` integer DEFAULT false NOT NULL,
|
|
17
|
+
`sequential` integer DEFAULT true NOT NULL,
|
|
18
|
+
`auto_triage_enabled` integer DEFAULT false NOT NULL,
|
|
19
|
+
`auto_process_enabled` integer DEFAULT false NOT NULL,
|
|
20
|
+
`auto_heal_ci` integer DEFAULT false NOT NULL,
|
|
21
|
+
`auto_review_feedback` integer DEFAULT false NOT NULL,
|
|
22
|
+
`auto_resolve_merge_conflicts` integer DEFAULT false NOT NULL,
|
|
23
|
+
`include_progress_replies` integer DEFAULT false NOT NULL,
|
|
24
|
+
`auto_decompose` integer DEFAULT false NOT NULL,
|
|
25
|
+
`verify_pr` integer DEFAULT false NOT NULL,
|
|
26
|
+
`auto_heal_deployments` integer DEFAULT false NOT NULL,
|
|
27
|
+
`deployment_platform` text,
|
|
28
|
+
`trusted_reviewers` text DEFAULT '[]' NOT NULL,
|
|
29
|
+
`ignored_bots` text DEFAULT '["dependabot[bot]","github-actions[bot]","codecov[bot]"]' NOT NULL,
|
|
30
|
+
`ready_labels` text DEFAULT '["ready","ready-for-agent","ready-to-work"]' NOT NULL,
|
|
31
|
+
`blocking_labels` text DEFAULT '["blocked","question","needs-human","needs-discussion","wontfix","duplicate","invalid"]' NOT NULL,
|
|
32
|
+
`auto_label_whitelist` text DEFAULT '["bug","enhancement","documentation","ready"]' NOT NULL,
|
|
33
|
+
`priority_authors` text DEFAULT '[]' NOT NULL,
|
|
34
|
+
`min_author_association` text DEFAULT 'approved' NOT NULL,
|
|
35
|
+
`max_attempts` integer DEFAULT 3 NOT NULL,
|
|
36
|
+
`max_job_minutes` integer,
|
|
37
|
+
`max_ci_wait_minutes` integer,
|
|
38
|
+
`max_job_cost_usd` real,
|
|
39
|
+
`agent_instructions` text,
|
|
40
|
+
`release_enabled` integer DEFAULT false NOT NULL,
|
|
41
|
+
`webhook_secret` text,
|
|
42
|
+
`created_at` integer DEFAULT (unixepoch()) NOT NULL
|
|
43
|
+
);
|
|
44
|
+
--> statement-breakpoint
|
|
45
|
+
INSERT INTO `__new_repos`("id", "path", "name", "default_branch", "queue_label", "working_label", "needs_human_label", "default_model", "agent", "platform", "api_base_url", "api_token", "daily_cost_limit_usd", "adr_gating", "sequential", "auto_triage_enabled", "auto_process_enabled", "auto_heal_ci", "auto_review_feedback", "auto_resolve_merge_conflicts", "include_progress_replies", "auto_decompose", "verify_pr", "auto_heal_deployments", "deployment_platform", "trusted_reviewers", "ignored_bots", "ready_labels", "blocking_labels", "auto_label_whitelist", "priority_authors", "min_author_association", "max_attempts", "max_job_minutes", "max_ci_wait_minutes", "max_job_cost_usd", "agent_instructions", "release_enabled", "webhook_secret", "created_at") SELECT "id", "path", "name", "default_branch", "queue_label", "working_label", "needs_human_label", "default_model", "agent", "platform", "api_base_url", "api_token", "daily_cost_limit_usd", "adr_gating", "sequential", "auto_triage_enabled", "auto_process_enabled", "auto_heal_ci", "auto_review_feedback", "auto_resolve_merge_conflicts", "include_progress_replies", "auto_decompose", "verify_pr", "auto_heal_deployments", "deployment_platform", "trusted_reviewers", "ignored_bots", "ready_labels", "blocking_labels", "auto_label_whitelist", "priority_authors", "min_author_association", "max_attempts", "max_job_minutes", "max_ci_wait_minutes", "max_job_cost_usd", "agent_instructions", "release_enabled", "webhook_secret", "created_at" FROM `repos`;--> statement-breakpoint
|
|
46
|
+
DROP TABLE `repos`;--> statement-breakpoint
|
|
47
|
+
ALTER TABLE `__new_repos` RENAME TO `repos`;--> statement-breakpoint
|
|
48
|
+
PRAGMA foreign_keys=ON;
|