loomrail 0.1.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/NOTICE +4 -0
- package/README.md +266 -0
- package/apps/cli/dist/index.js +11154 -0
- package/apps/cli/migrations/0001_initial.sql +99 -0
- package/apps/cli/migrations/0002_mock_workflow.sql +169 -0
- package/apps/cli/migrations/0003_budget_pause_recovery.sql +154 -0
- package/apps/cli/migrations/0004_pipeline_started_budget_backfill.sql +72 -0
- package/apps/cli/migrations/0005_acceptance_evidence.sql +129 -0
- package/apps/cli/migrations/0006_session_handoff.sql +166 -0
- package/apps/cli/migrations/0007_pack_share_backoff.sql +11 -0
- package/apps/cli/migrations/0008_stage_attempt_counter_backfill.sql +169 -0
- package/apps/cli/migrations/0009_session_window_occupancy.sql +44 -0
- package/apps/cli/migrations/0010_provider_session_pid.sql +5 -0
- package/apps/cli/migrations/0011_work_item_workspaces.sql +94 -0
- package/apps/cli/migrations/0012_registered_repository_projects.sql +54 -0
- package/apps/cli/migrations/0013_stage_attempt_result_tree.sql +166 -0
- package/apps/cli/migrations/0014_live_evidence_provider.sql +49 -0
- package/apps/web/dist/assets/index-DjwvCSSY.js +5 -0
- package/apps/web/dist/assets/index-DjwvCSSY.js.map +1 -0
- package/apps/web/dist/assets/index-Z88TqCIf.css +1 -0
- package/apps/web/dist/assets/radix-vendor-CRdHXIPR.js +42 -0
- package/apps/web/dist/assets/radix-vendor-CRdHXIPR.js.map +1 -0
- package/apps/web/dist/assets/react-vendor-BicOiEU0.js +10 -0
- package/apps/web/dist/assets/react-vendor-BicOiEU0.js.map +1 -0
- package/apps/web/dist/assets/rolldown-runtime-CbXtAM7H.js +1 -0
- package/apps/web/dist/assets/tanstack-vendor-ec08LVZ_.js +2 -0
- package/apps/web/dist/assets/tanstack-vendor-ec08LVZ_.js.map +1 -0
- package/apps/web/dist/assets/validation-vendor-CGrOSWd3.js +65 -0
- package/apps/web/dist/assets/validation-vendor-CGrOSWd3.js.map +1 -0
- package/apps/web/dist/favicon.svg +5 -0
- package/apps/web/dist/index.html +60 -0
- package/apps/web/dist/theme-bootstrap.js +46 -0
- package/fixtures/projects/api-service-b/README.md +3 -0
- package/fixtures/projects/api-service-b/loomrail-fixture.json +6 -0
- package/fixtures/projects/web-app-a/README.md +3 -0
- package/fixtures/projects/web-app-a/loomrail-fixture.json +6 -0
- package/package.json +46 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96">
|
|
2
|
+
<rect width="96" height="96" rx="24" fill="#5e6ad2" />
|
|
3
|
+
<path d="M27 23v46h46" fill="none" stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="10" />
|
|
4
|
+
<path d="M48 23v25h25" fill="none" stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="10" />
|
|
5
|
+
</svg>
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<meta name="color-scheme" content="light dark" />
|
|
7
|
+
<meta name="description" content="The local control plane for accountable AI software teams." />
|
|
8
|
+
<link rel="icon" href="/favicon.svg" type="image/svg+xml" />
|
|
9
|
+
<script src="/theme-bootstrap.js"></script>
|
|
10
|
+
<title>Loomrail</title>
|
|
11
|
+
<script type="module" crossorigin src="/assets/index-DjwvCSSY.js"></script>
|
|
12
|
+
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-CbXtAM7H.js">
|
|
13
|
+
<link rel="modulepreload" crossorigin href="/assets/react-vendor-BicOiEU0.js">
|
|
14
|
+
<link rel="modulepreload" crossorigin href="/assets/tanstack-vendor-ec08LVZ_.js">
|
|
15
|
+
<link rel="modulepreload" crossorigin href="/assets/validation-vendor-CGrOSWd3.js">
|
|
16
|
+
<link rel="modulepreload" crossorigin href="/assets/radix-vendor-CRdHXIPR.js">
|
|
17
|
+
<link rel="stylesheet" crossorigin href="/assets/index-Z88TqCIf.css">
|
|
18
|
+
</head>
|
|
19
|
+
<body>
|
|
20
|
+
<div id="root">
|
|
21
|
+
<div aria-busy="true" class="app-shell app-shell--loading">
|
|
22
|
+
<aside aria-hidden="true" class="app-sidebar app-sidebar--loading"></aside>
|
|
23
|
+
<section class="app-surface app-surface--loading">
|
|
24
|
+
<span class="app-loading-mark" role="status">
|
|
25
|
+
<span class="lr-visually-hidden">
|
|
26
|
+
<span class="app-loading-copy app-loading-copy--en" lang="en">Connecting…</span>
|
|
27
|
+
<span class="app-loading-copy app-loading-copy--ru" lang="ru">Подключение…</span>
|
|
28
|
+
</span>
|
|
29
|
+
<svg
|
|
30
|
+
aria-hidden="true"
|
|
31
|
+
class="app-brand-mark"
|
|
32
|
+
focusable="false"
|
|
33
|
+
height="40"
|
|
34
|
+
viewBox="0 0 96 96"
|
|
35
|
+
width="40"
|
|
36
|
+
>
|
|
37
|
+
<rect fill="#5e6ad2" height="96" rx="24" width="96"></rect>
|
|
38
|
+
<path
|
|
39
|
+
d="M27 23v46h46"
|
|
40
|
+
fill="none"
|
|
41
|
+
stroke="#fff"
|
|
42
|
+
stroke-linecap="round"
|
|
43
|
+
stroke-linejoin="round"
|
|
44
|
+
stroke-width="10"
|
|
45
|
+
></path>
|
|
46
|
+
<path
|
|
47
|
+
d="M48 23v25h25"
|
|
48
|
+
fill="none"
|
|
49
|
+
stroke="#fff"
|
|
50
|
+
stroke-linecap="round"
|
|
51
|
+
stroke-linejoin="round"
|
|
52
|
+
stroke-width="10"
|
|
53
|
+
></path>
|
|
54
|
+
</svg>
|
|
55
|
+
</span>
|
|
56
|
+
</section>
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
</body>
|
|
60
|
+
</html>
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
try {
|
|
2
|
+
const preference = globalThis.localStorage.getItem("loomrail-theme");
|
|
3
|
+
if (preference === "dark" || preference === "light") {
|
|
4
|
+
globalThis.document.documentElement.dataset.theme = preference;
|
|
5
|
+
}
|
|
6
|
+
} catch {
|
|
7
|
+
// Theme persistence is an enhancement; the system preference remains the safe fallback.
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
try {
|
|
11
|
+
const density = globalThis.localStorage.getItem("loomrail-density");
|
|
12
|
+
if (density === "compact") {
|
|
13
|
+
globalThis.document.documentElement.dataset.density = density;
|
|
14
|
+
}
|
|
15
|
+
} catch {
|
|
16
|
+
// Density is an enhancement; the comfortable spacing in the stylesheet remains the fallback.
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
try {
|
|
20
|
+
// Bounds mirror `panelBounds` in src/layout.ts; a unit test fails if the two ever disagree.
|
|
21
|
+
const panels = [
|
|
22
|
+
{ key: "loomrail-panel-sidebar", max: 360, min: 200, property: "--lr-size-sidebar" },
|
|
23
|
+
{ key: "loomrail-panel-inspector", max: 520, min: 280, property: "--lr-size-inspector" },
|
|
24
|
+
];
|
|
25
|
+
for (const panel of panels) {
|
|
26
|
+
const stored = Number(globalThis.localStorage.getItem(panel.key));
|
|
27
|
+
if (!Number.isFinite(stored) || stored === 0) continue;
|
|
28
|
+
const width = Math.min(panel.max, Math.max(panel.min, Math.round(stored)));
|
|
29
|
+
globalThis.document.documentElement.style.setProperty(panel.property, `${width}px`);
|
|
30
|
+
}
|
|
31
|
+
} catch {
|
|
32
|
+
// Panel widths are an enhancement; the token defaults remain the safe fallback.
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
try {
|
|
36
|
+
const storedLocale = globalThis.localStorage.getItem("loomrail.locale");
|
|
37
|
+
const locale =
|
|
38
|
+
storedLocale === "ru" || storedLocale === "en"
|
|
39
|
+
? storedLocale
|
|
40
|
+
: globalThis.navigator.language.toLowerCase().startsWith("ru")
|
|
41
|
+
? "ru"
|
|
42
|
+
: "en";
|
|
43
|
+
globalThis.document.documentElement.lang = locale;
|
|
44
|
+
} catch {
|
|
45
|
+
// The static document language remains the safe fallback when storage is unavailable.
|
|
46
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "loomrail",
|
|
3
|
+
"version": "0.1.0-alpha.1",
|
|
4
|
+
"description": "The local control plane for accountable AI software teams.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"ai-agents",
|
|
7
|
+
"developer-tools",
|
|
8
|
+
"local-first",
|
|
9
|
+
"workflow",
|
|
10
|
+
"codex",
|
|
11
|
+
"claude"
|
|
12
|
+
],
|
|
13
|
+
"license": "Apache-2.0",
|
|
14
|
+
"homepage": "https://github.com/loomrail/loomrail#readme",
|
|
15
|
+
"bugs": {
|
|
16
|
+
"url": "https://github.com/loomrail/loomrail/issues"
|
|
17
|
+
},
|
|
18
|
+
"repository": {
|
|
19
|
+
"type": "git",
|
|
20
|
+
"url": "git+https://github.com/loomrail/loomrail.git"
|
|
21
|
+
},
|
|
22
|
+
"type": "module",
|
|
23
|
+
"bin": {
|
|
24
|
+
"loomrail": "apps/cli/dist/index.js"
|
|
25
|
+
},
|
|
26
|
+
"engines": {
|
|
27
|
+
"node": ">=24.19 <25"
|
|
28
|
+
},
|
|
29
|
+
"dependencies": {
|
|
30
|
+
"@fastify/cookie": "^11.0.0",
|
|
31
|
+
"@fastify/helmet": "^13.0.0",
|
|
32
|
+
"@fastify/static": "^10.1.3",
|
|
33
|
+
"fastify": "^5.10.0",
|
|
34
|
+
"open": "^10.0.0",
|
|
35
|
+
"zod": "^4.0.0"
|
|
36
|
+
},
|
|
37
|
+
"files": [
|
|
38
|
+
"apps/cli/dist",
|
|
39
|
+
"apps/cli/migrations",
|
|
40
|
+
"apps/web/dist",
|
|
41
|
+
"fixtures/projects",
|
|
42
|
+
"README.md",
|
|
43
|
+
"LICENSE",
|
|
44
|
+
"NOTICE"
|
|
45
|
+
]
|
|
46
|
+
}
|