@celsoft/coordinator 0.0.0 → 0.1.0
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/CHANGELOG.md +11 -0
- package/README.md +107 -0
- package/THIRD_PARTY_NOTICES.md +2005 -0
- package/agents/console.md +20 -0
- package/agents/free.md +110 -0
- package/build/0-JP6XL6LB.js +17 -0
- package/build/1-A52YZWNS.js +17 -0
- package/build/2-CLH2NM6F.js +32 -0
- package/build/3-4N467IB6.js +45 -0
- package/build/4-WL5H4LUW.js +29 -0
- package/build/_layout.svelte-KPUSX7LQ.js +27 -0
- package/build/_page.svelte-22H56UR6.js +7972 -0
- package/build/_page.svelte-CVWUNRQC.js +135 -0
- package/build/_page.svelte-LTZXBHMT.js +57 -0
- package/build/_server.ts-3KVBYN6P.js +20 -0
- package/build/_server.ts-3POPKVEM.js +47 -0
- package/build/_server.ts-5735T2V5.js +31 -0
- package/build/_server.ts-5VXGNWV2.js +38 -0
- package/build/_server.ts-645KP7WP.js +42 -0
- package/build/_server.ts-A3AA24Z2.js +28 -0
- package/build/_server.ts-CITUOEM6.js +58 -0
- package/build/_server.ts-I7HMTPOA.js +25 -0
- package/build/_server.ts-M5BQ4LLX.js +30 -0
- package/build/_server.ts-OB4O27HF.js +683 -0
- package/build/_server.ts-OJT7HE7M.js +15 -0
- package/build/_server.ts-OYGWVLZM.js +12 -0
- package/build/_server.ts-T75UVMQP.js +38 -0
- package/build/_server.ts-WYZYNHUZ.js +28 -0
- package/build/_server.ts-Z26EB47B.js +486 -0
- package/build/chunk-4CIG53L5.js +33 -0
- package/build/chunk-BJTJS3XY.js +338 -0
- package/build/chunk-F2CNWJZM.js +14 -0
- package/build/chunk-HGYE3UTU.js +416 -0
- package/build/chunk-KAYW2W7H.js +1311 -0
- package/build/chunk-LFP3UPCM.js +10 -0
- package/build/chunk-M44JEFEH.js +62 -0
- package/build/chunk-MC5AGLMY.js +39 -0
- package/build/chunk-NCZ77J5E.js +19798 -0
- package/build/chunk-NVNLDPUJ.js +2122 -0
- package/build/chunk-PDCON4KS.js +494 -0
- package/build/chunk-Q4OQNY5M.js +25 -0
- package/build/chunk-QCUOR2U5.js +75 -0
- package/build/chunk-R6RYZZWA.js +46 -0
- package/build/chunk-SOJTASZC.js +51 -0
- package/build/chunk-SU26PJVX.js +410 -0
- package/build/chunk-U5BSBG4R.js +506 -0
- package/build/chunk-UEKOZGRO.js +37 -0
- package/build/chunk-W6EFUWJ2.js +9 -0
- package/build/chunk-WOPREK6Q.js +117 -0
- package/build/chunk-WWJ3F4QS.js +127 -0
- package/build/chunk-ZGZJEEE3.js +1091 -0
- package/build/client/_app/immutable/assets/0.BGa5ZNDM.css +1 -0
- package/build/client/_app/immutable/chunks/BUrrLYDt.js +2 -0
- package/build/client/_app/immutable/chunks/BgFr_EyZ.js +4 -0
- package/build/client/_app/immutable/chunks/Bjy-W4x2.js +82 -0
- package/build/client/_app/immutable/chunks/C8qZab0y.js +56 -0
- package/build/client/_app/immutable/chunks/C90fLsA5.js +4 -0
- package/build/client/_app/immutable/chunks/CRzLMJPS.js +1 -0
- package/build/client/_app/immutable/chunks/DLT1iIlz.js +2 -0
- package/build/client/_app/immutable/chunks/pIrVVOVY.js +2 -0
- package/build/client/_app/immutable/entry/app.0DERehLW.js +3 -0
- package/build/client/_app/immutable/entry/payload.DSmR2FwN.js +2 -0
- package/build/client/_app/immutable/entry/start.B7srFiqh.js +3 -0
- package/build/client/_app/immutable/nodes/0.aD9vJoxR.js +2 -0
- package/build/client/_app/immutable/nodes/1.Br4FL91i.js +2 -0
- package/build/client/_app/immutable/nodes/2.vl6OYfu3.js +8 -0
- package/build/client/_app/immutable/nodes/3.VYqJOLAF.js +2 -0
- package/build/client/_app/immutable/nodes/4.jF9UVlFN.js +2 -0
- package/build/client/_app/version.json +1 -0
- package/build/client/apple-touch-icon.png +0 -0
- package/build/client/favicon.ico +0 -0
- package/build/client/favicon.svg +48 -0
- package/build/client/icon-192.png +0 -0
- package/build/client/icon-512.png +0 -0
- package/build/client/icon-maskable-512.png +0 -0
- package/build/client/icon.svg +44 -0
- package/build/client/manifest.webmanifest +15 -0
- package/build/error.svelte-JXZDY65F.js +51 -0
- package/build/handler.js +716 -0
- package/build/hooks.server-34IMHRKC.js +43 -0
- package/build/instance-NP3FJIWW.js +2967 -0
- package/client/client.mjs +28 -0
- package/client/hooks.mjs +7 -0
- package/client/register.mjs +5 -0
- package/dist/cli.js +62826 -0
- package/dist/port.js +36691 -0
- package/package.json +20 -1
- package/skills/agents/.claude-plugin/plugin.json +5 -0
- package/skills/agents/hooks/hooks.json +1 -0
- package/skills/agents/hooks/register.ts +57 -0
- package/skills/agents/skills/bus-work/SKILL.md +66 -0
- package/skills/agents/skills/plan/SKILL.md +98 -0
- package/skills/console/.claude-plugin/plugin.json +5 -0
- package/skills/console/hooks/hooks.json +1 -0
- package/skills/console/hooks/register.ts +10 -0
- package/skills/console/skills/bus/SKILL.md +61 -0
- package/skills/default/.claude-plugin/plugin.json +5 -0
- package/skills/default/skills/git-workflow/SKILL.md +294 -0
- package/skills/default/skills/git-workflow/mise-tasks/_lib.sh +107 -0
- package/skills/default/skills/git-workflow/mise-tasks/clone +36 -0
- package/skills/default/skills/git-workflow/mise-tasks/repo-list +8 -0
- package/skills/default/skills/git-workflow/mise-tasks/unpushed +26 -0
- package/skills/default/skills/git-workflow/mise-tasks/worktree-add +60 -0
- package/skills/default/skills/github/SKILL.md +208 -0
- package/skills/default/skills/github/scripts/gh-org +196 -0
- package/skills/default/skills/plan-page/SKILL.md +300 -0
- package/skills/default/skills/plan-page/assets/index.html +854 -0
- package/skills/default/skills/plan-page/scripts/inline +46 -0
- package/skills/default/skills/plan-page/scripts/stage +26 -0
- package/skills/default/skills/secrets/SKILL.md +134 -0
- package/skills/default/skills/secrets/scripts/secrets-check +87 -0
- package/skills/default/skills/writing-style/SKILL.md +45 -0
- package/skills/extra/.claude-plugin/plugin.json +5 -0
- package/skills/extra/skills/artifacts/SKILL.md +52 -0
- package/skills/extra/skills/github-actions/SKILL.md +78 -0
- package/skills/extra/skills/github-actions/scan +32 -0
- package/skills/extra/skills/markdown-review/SKILL.md +70 -0
- package/skills/extra/skills/markdown-review/assets/index.html +201 -0
- package/skills/extra/skills/markdown-review/scripts/stage +36 -0
- package/skills/extra/skills/mise-usage/SKILL.md +155 -0
- package/skills/extra/skills/plugin-authoring/SKILL.md +317 -0
- package/skills/extra/skills/project-conventions/SKILL.md +64 -0
- package/skills/extra/skills/questions/SKILL.md +156 -0
- package/skills/extra/skills/questions/assets/index.html +376 -0
- package/skills/extra/skills/questions/scripts/stage +26 -0
- package/skills/extra/skills/serve/SKILL.md +165 -0
- package/skills/extra/skills/serve/scripts/serve +268 -0
- package/skills/extra/skills/serve/scripts/server.py +345 -0
- package/skills/extra/skills/skill-dependencies/SKILL.md +65 -0
- package/skills/extra/skills/skill-maintenance/SKILL.md +101 -0
- package/skills/extra/skills/ticketing/SKILL.md +125 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
Button,
|
|
4
|
+
Pending,
|
|
5
|
+
messages
|
|
6
|
+
} from "./chunk-BJTJS3XY.js";
|
|
7
|
+
import "./chunk-M44JEFEH.js";
|
|
8
|
+
import "./chunk-W6EFUWJ2.js";
|
|
9
|
+
import {
|
|
10
|
+
attr,
|
|
11
|
+
bind_props,
|
|
12
|
+
derived,
|
|
13
|
+
ensure_array_like,
|
|
14
|
+
escape_html,
|
|
15
|
+
head,
|
|
16
|
+
props_id,
|
|
17
|
+
stringify
|
|
18
|
+
} from "./chunk-KAYW2W7H.js";
|
|
19
|
+
import "./chunk-U5BSBG4R.js";
|
|
20
|
+
import "./chunk-LFP3UPCM.js";
|
|
21
|
+
|
|
22
|
+
// build/server/entries/pages/pair/_page.svelte.js
|
|
23
|
+
function CodeInput($$renderer, $$props) {
|
|
24
|
+
$$renderer.component(($$renderer2) => {
|
|
25
|
+
const uid = props_id($$renderer2);
|
|
26
|
+
let { length = 6, group = 3, label, hint, error, value = "", name, disabled = false, autofocus = false, autocomplete = "off", oninput, oncomplete } = $$props;
|
|
27
|
+
const labelId = `sd-code-${uid}`;
|
|
28
|
+
const noteId = `sd-code-${uid}-note`;
|
|
29
|
+
const initial = value.toUpperCase().split("");
|
|
30
|
+
const check = new Pending({
|
|
31
|
+
name: "A CodeInput oncomplete",
|
|
32
|
+
speak: false
|
|
33
|
+
});
|
|
34
|
+
const shownError = derived(() => error || check.error);
|
|
35
|
+
$$renderer2.push(`<div class="sd-field">`);
|
|
36
|
+
if (label) $$renderer2.push(`<!--[0--><span class="sd-field-label"${attr("id", labelId)}>${escape_html(label)}</span>`);
|
|
37
|
+
else $$renderer2.push("<!--[-1-->");
|
|
38
|
+
$$renderer2.push(`<!--]--> <div class="sd-code-row"><div class="sd-code" role="group"${attr("aria-labelledby", label ? labelId : void 0)}><!--[-->`);
|
|
39
|
+
const each_array = ensure_array_like({ length });
|
|
40
|
+
for (let i = 0, $$length = each_array.length; i < $$length; i++) {
|
|
41
|
+
if (i > 0 && group && i % group === 0) $$renderer2.push(`<!--[0--><span class="sd-code-sep" aria-hidden="true">-</span>`);
|
|
42
|
+
else $$renderer2.push("<!--[-1-->");
|
|
43
|
+
$$renderer2.push(`<!--]--> <input class="sd-code-cell"${attr("value", initial[i] ?? "")}${attr("aria-label", `Character ${stringify(i + 1)} of ${stringify(length)}`)}${attr("aria-invalid", shownError() ? "true" : void 0)}${attr("aria-describedby", shownError() || hint || check.spinning ? noteId : void 0)}${attr("autocomplete", i === 0 ? autocomplete : "off")}${attr("data-1p-ignore", autocomplete === "off" ? true : void 0)}${attr("data-lpignore", autocomplete === "off" ? "true" : void 0)} data-form-type="other" autocapitalize="characters" spellcheck="false" inputmode="text"${attr("autofocus", autofocus && i === 0, true)}${attr("disabled", disabled, true)}/>`);
|
|
44
|
+
}
|
|
45
|
+
$$renderer2.push(`<!--]--></div> `);
|
|
46
|
+
if (check.spinning) $$renderer2.push(`<!--[0--><span class="sd-spinner" aria-hidden="true"></span>`);
|
|
47
|
+
else $$renderer2.push("<!--[-1-->");
|
|
48
|
+
$$renderer2.push(`<!--]--></div> `);
|
|
49
|
+
if (name) $$renderer2.push(`<!--[0--><input type="hidden"${attr("name", name)}${attr("value", value)}/>`);
|
|
50
|
+
else $$renderer2.push("<!--[-1-->");
|
|
51
|
+
$$renderer2.push(`<!--]--> `);
|
|
52
|
+
if (shownError()) $$renderer2.push(`<!--[0--><span class="sd-field-error"${attr("id", noteId)} role="alert">${escape_html(shownError())}</span>`);
|
|
53
|
+
else if (check.spinning) $$renderer2.push(`<!--[1--><span class="sd-field-hint"${attr("id", noteId)} role="status">${escape_html(check.slow ? messages.slow : messages.checking)}</span>`);
|
|
54
|
+
else if (hint) $$renderer2.push(`<!--[2--><span class="sd-field-hint"${attr("id", noteId)}>${escape_html(hint)}</span>`);
|
|
55
|
+
else $$renderer2.push("<!--[-1-->");
|
|
56
|
+
$$renderer2.push(`<!--]--></div>`);
|
|
57
|
+
bind_props($$props, { value });
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
function _page($$renderer, $$props) {
|
|
61
|
+
$$renderer.component(($$renderer2) => {
|
|
62
|
+
let { data } = $$props;
|
|
63
|
+
let code = "";
|
|
64
|
+
let error = "";
|
|
65
|
+
let sending = false;
|
|
66
|
+
let attempt = 0;
|
|
67
|
+
let ready = false;
|
|
68
|
+
async function pair(e) {
|
|
69
|
+
e?.preventDefault();
|
|
70
|
+
if (code.length < 8 || sending) return;
|
|
71
|
+
sending = true;
|
|
72
|
+
const r = await fetch("pair", {
|
|
73
|
+
method: "POST",
|
|
74
|
+
headers: { "Content-Type": "application/json" },
|
|
75
|
+
body: JSON.stringify({ code })
|
|
76
|
+
});
|
|
77
|
+
sending = false;
|
|
78
|
+
if (r.ok) location.href = "./";
|
|
79
|
+
else {
|
|
80
|
+
error = "That code didn't work. Run mise run pair for a new one.";
|
|
81
|
+
code = "";
|
|
82
|
+
attempt++;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
let $$settled = true;
|
|
86
|
+
let $$inner_renderer;
|
|
87
|
+
function $$render_inner($$renderer3) {
|
|
88
|
+
head("aj1tv1", $$renderer3, ($$renderer4) => {
|
|
89
|
+
$$renderer4.title(($$renderer5) => {
|
|
90
|
+
$$renderer5.push(`<title>${escape_html(data.title)}</title>`);
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
$$renderer3.push(`<main class="auth"><form class="auth-card"><div class="content-stack" style="gap: var(--space-2)"><h1 class="display">Pair this browser</h1> <p class="body-sm sub">Run <code class="mono-sm">mise run pair</code> on the Mac running ${escape_html(data.title)}, then type the code it prints.</p></div> <!---->`);
|
|
94
|
+
CodeInput($$renderer3, {
|
|
95
|
+
length: 8,
|
|
96
|
+
group: 4,
|
|
97
|
+
label: "Pairing code",
|
|
98
|
+
hint: "Letters and numbers. Case doesn't matter.",
|
|
99
|
+
error: error || void 0,
|
|
100
|
+
disabled: true,
|
|
101
|
+
autofocus: ready,
|
|
102
|
+
oncomplete: () => pair(),
|
|
103
|
+
get value() {
|
|
104
|
+
return code;
|
|
105
|
+
},
|
|
106
|
+
set value($$value) {
|
|
107
|
+
code = $$value;
|
|
108
|
+
$$settled = false;
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
$$renderer3.push(`<!----> `);
|
|
112
|
+
Button($$renderer3, {
|
|
113
|
+
type: "submit",
|
|
114
|
+
variant: "primary",
|
|
115
|
+
icon: "check",
|
|
116
|
+
block: true,
|
|
117
|
+
disabled: true,
|
|
118
|
+
children: ($$renderer4) => {
|
|
119
|
+
$$renderer4.push(`<!---->Pair browser`);
|
|
120
|
+
},
|
|
121
|
+
$$slots: { default: true }
|
|
122
|
+
});
|
|
123
|
+
$$renderer3.push(`<!----></form></main>`);
|
|
124
|
+
}
|
|
125
|
+
do {
|
|
126
|
+
$$settled = true;
|
|
127
|
+
$$inner_renderer = $$renderer2.copy();
|
|
128
|
+
$$render_inner($$inner_renderer);
|
|
129
|
+
} while (!$$settled);
|
|
130
|
+
$$renderer2.subsume($$inner_renderer);
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
export {
|
|
134
|
+
_page as default
|
|
135
|
+
};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
DocDetail,
|
|
4
|
+
Page,
|
|
5
|
+
favicon_default,
|
|
6
|
+
providePage
|
|
7
|
+
} from "./chunk-ZGZJEEE3.js";
|
|
8
|
+
import "./chunk-MC5AGLMY.js";
|
|
9
|
+
import "./chunk-BJTJS3XY.js";
|
|
10
|
+
import "./chunk-NCZ77J5E.js";
|
|
11
|
+
import "./chunk-M44JEFEH.js";
|
|
12
|
+
import "./chunk-W6EFUWJ2.js";
|
|
13
|
+
import {
|
|
14
|
+
attr,
|
|
15
|
+
derived,
|
|
16
|
+
escape_html,
|
|
17
|
+
head
|
|
18
|
+
} from "./chunk-KAYW2W7H.js";
|
|
19
|
+
import "./chunk-U5BSBG4R.js";
|
|
20
|
+
import "./chunk-LFP3UPCM.js";
|
|
21
|
+
|
|
22
|
+
// build/server/entries/pages/docs/_org_/_repo_/_slug_/_name_/_page.svelte.js
|
|
23
|
+
function _page($$renderer, $$props) {
|
|
24
|
+
$$renderer.component(($$renderer2) => {
|
|
25
|
+
let { data } = $$props;
|
|
26
|
+
const page = providePage(new Page(data.csrf));
|
|
27
|
+
const found = derived(() => {
|
|
28
|
+
for (const i of page.st?.issues ?? []) for (const d of i.docs) if (d.address === data.address) return {
|
|
29
|
+
i,
|
|
30
|
+
d
|
|
31
|
+
};
|
|
32
|
+
});
|
|
33
|
+
head("1m716vq", $$renderer2, ($$renderer3) => {
|
|
34
|
+
$$renderer3.title(($$renderer4) => {
|
|
35
|
+
$$renderer4.push(`<title>${escape_html(found()?.d.title ?? data.address)}</title>`);
|
|
36
|
+
});
|
|
37
|
+
$$renderer3.push(`<base href="../../../../"/>`);
|
|
38
|
+
});
|
|
39
|
+
$$renderer2.push(`<div class="doc-shell" data-sveltekit-reload=""><div class="sd-side-brand"><img class="brand-mark"${attr("src", favicon_default)} alt=""/><a class="sd-side-name" href="./">${escape_html(data.title)}</a></div> `);
|
|
40
|
+
if (found()) {
|
|
41
|
+
$$renderer2.push("<!--[0-->");
|
|
42
|
+
DocDetail($$renderer2, {
|
|
43
|
+
i: found().i,
|
|
44
|
+
d: found().d,
|
|
45
|
+
standalone: true
|
|
46
|
+
});
|
|
47
|
+
} else if (page.st) $$renderer2.push(`<!--[1--><p class="body-sm sub">No document ${escape_html(data.address)}.</p>`);
|
|
48
|
+
else $$renderer2.push("<!--[-1-->");
|
|
49
|
+
$$renderer2.push(`<!--]--> `);
|
|
50
|
+
if (page.note) $$renderer2.push(`<!--[0--><div id="note" role="status">${escape_html(page.note)}</div>`);
|
|
51
|
+
else $$renderer2.push("<!--[-1-->");
|
|
52
|
+
$$renderer2.push(`<!--]--></div>`);
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
export {
|
|
56
|
+
_page as default
|
|
57
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
describe
|
|
4
|
+
} from "./chunk-UEKOZGRO.js";
|
|
5
|
+
import {
|
|
6
|
+
answer,
|
|
7
|
+
body
|
|
8
|
+
} from "./chunk-R6RYZZWA.js";
|
|
9
|
+
import "./chunk-PDCON4KS.js";
|
|
10
|
+
import "./chunk-SU26PJVX.js";
|
|
11
|
+
import "./chunk-WOPREK6Q.js";
|
|
12
|
+
import "./chunk-HGYE3UTU.js";
|
|
13
|
+
import "./chunk-NCZ77J5E.js";
|
|
14
|
+
import "./chunk-LFP3UPCM.js";
|
|
15
|
+
|
|
16
|
+
// build/server/entries/endpoints/settings/_server.ts.js
|
|
17
|
+
var POST = (event) => answer(event, async () => ({ settings: describe(event.locals.served.system.config.change(await body(event))) }));
|
|
18
|
+
export {
|
|
19
|
+
POST
|
|
20
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
answer,
|
|
4
|
+
parsed
|
|
5
|
+
} from "./chunk-R6RYZZWA.js";
|
|
6
|
+
import {
|
|
7
|
+
Refused,
|
|
8
|
+
get,
|
|
9
|
+
slotOf
|
|
10
|
+
} from "./chunk-PDCON4KS.js";
|
|
11
|
+
import "./chunk-SU26PJVX.js";
|
|
12
|
+
import "./chunk-HGYE3UTU.js";
|
|
13
|
+
import {
|
|
14
|
+
external_exports
|
|
15
|
+
} from "./chunk-NCZ77J5E.js";
|
|
16
|
+
import "./chunk-LFP3UPCM.js";
|
|
17
|
+
|
|
18
|
+
// build/server/entries/endpoints/focus/_server.ts.js
|
|
19
|
+
var LOG = get("focus");
|
|
20
|
+
var Focus = external_exports.strictObject({ session: external_exports.string().min(1) });
|
|
21
|
+
function paneless(s, name) {
|
|
22
|
+
if (s.state === "paused") return `${name} was paused by the throttle when memory ran short, so it has no pane in Herdr. It comes back on its own once memory recovers.`;
|
|
23
|
+
if (!s.pane) return `${name} has no pane in Herdr yet; it is still starting.`;
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
var POST = (event) => answer(event, async () => {
|
|
27
|
+
const { system } = event.locals.served;
|
|
28
|
+
const s = system.bus.session((await parsed(event, Focus)).session);
|
|
29
|
+
const name = slotOf(s) ?? s.id;
|
|
30
|
+
if (s.ended && s.state !== "paused") {
|
|
31
|
+
if (s.cleanup_offered) return { focused: null };
|
|
32
|
+
system.bus.updateSession(s.id, { cleanup_offered: true });
|
|
33
|
+
return {
|
|
34
|
+
focused: null,
|
|
35
|
+
cleanup: true
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
const why = paneless(s, name);
|
|
39
|
+
if (why) throw new Refused(why);
|
|
40
|
+
await system.layout.tidy(s).catch((e) => LOG.warning("naming %s in Herdr before switching to it: %s", name, e.message));
|
|
41
|
+
const refused = await system.herdr.focus(s.pane);
|
|
42
|
+
if (refused) throw new Refused(`Herdr could not switch to the pane of ${name}: ${refused}`);
|
|
43
|
+
return { focused: s.pane };
|
|
44
|
+
});
|
|
45
|
+
export {
|
|
46
|
+
POST
|
|
47
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
draftFree
|
|
4
|
+
} from "./chunk-QCUOR2U5.js";
|
|
5
|
+
import {
|
|
6
|
+
answer,
|
|
7
|
+
parsed
|
|
8
|
+
} from "./chunk-R6RYZZWA.js";
|
|
9
|
+
import "./chunk-PDCON4KS.js";
|
|
10
|
+
import "./chunk-SU26PJVX.js";
|
|
11
|
+
import "./chunk-HGYE3UTU.js";
|
|
12
|
+
import {
|
|
13
|
+
Repo,
|
|
14
|
+
external_exports
|
|
15
|
+
} from "./chunk-NCZ77J5E.js";
|
|
16
|
+
import "./chunk-LFP3UPCM.js";
|
|
17
|
+
|
|
18
|
+
// build/server/entries/endpoints/issue-draft/_server.ts.js
|
|
19
|
+
var IssueDraft = external_exports.strictObject({
|
|
20
|
+
text: external_exports.string().trim().min(1, "Say what the issue is."),
|
|
21
|
+
repo: Repo.or(external_exports.literal("")).optional()
|
|
22
|
+
});
|
|
23
|
+
var POST = (event) => answer(event, async () => {
|
|
24
|
+
const { text, repo } = await parsed(event, IssueDraft);
|
|
25
|
+
const { system, drafter } = event.locals.served;
|
|
26
|
+
const taken = (slug) => !!repo && !!system.bus.issue(`${repo}#${slug}`);
|
|
27
|
+
return { draft: await draftFree(drafter, text, taken) };
|
|
28
|
+
});
|
|
29
|
+
export {
|
|
30
|
+
POST
|
|
31
|
+
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
|
+
import "./chunk-4CIG53L5.js";
|
|
3
|
+
import {
|
|
4
|
+
answer,
|
|
5
|
+
parsed
|
|
6
|
+
} from "./chunk-R6RYZZWA.js";
|
|
7
|
+
import {
|
|
8
|
+
get
|
|
9
|
+
} from "./chunk-PDCON4KS.js";
|
|
10
|
+
import "./chunk-SU26PJVX.js";
|
|
11
|
+
import "./chunk-HGYE3UTU.js";
|
|
12
|
+
import {
|
|
13
|
+
external_exports
|
|
14
|
+
} from "./chunk-NCZ77J5E.js";
|
|
15
|
+
import "./chunk-LFP3UPCM.js";
|
|
16
|
+
|
|
17
|
+
// build/server/entries/endpoints/cleanup/_server.ts.js
|
|
18
|
+
import { execFile } from "node:child_process";
|
|
19
|
+
import { promisify } from "node:util";
|
|
20
|
+
promisify(execFile);
|
|
21
|
+
get("cleanup");
|
|
22
|
+
var Cleanup = external_exports.strictObject({
|
|
23
|
+
session: external_exports.string().min(1),
|
|
24
|
+
steps: external_exports.array(external_exports.enum([
|
|
25
|
+
"stop",
|
|
26
|
+
"close",
|
|
27
|
+
"worktree",
|
|
28
|
+
"branch",
|
|
29
|
+
"forget"
|
|
30
|
+
]))
|
|
31
|
+
});
|
|
32
|
+
var POST = (event) => answer(event, async () => {
|
|
33
|
+
const { session, steps } = await parsed(event, Cleanup);
|
|
34
|
+
return event.locals.served.system.cleanup.run(session, steps);
|
|
35
|
+
});
|
|
36
|
+
export {
|
|
37
|
+
POST
|
|
38
|
+
};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
answer,
|
|
4
|
+
parsed
|
|
5
|
+
} from "./chunk-R6RYZZWA.js";
|
|
6
|
+
import {
|
|
7
|
+
Refused,
|
|
8
|
+
get
|
|
9
|
+
} from "./chunk-PDCON4KS.js";
|
|
10
|
+
import "./chunk-SU26PJVX.js";
|
|
11
|
+
import "./chunk-HGYE3UTU.js";
|
|
12
|
+
import {
|
|
13
|
+
Repo,
|
|
14
|
+
external_exports
|
|
15
|
+
} from "./chunk-NCZ77J5E.js";
|
|
16
|
+
import "./chunk-LFP3UPCM.js";
|
|
17
|
+
|
|
18
|
+
// build/server/entries/endpoints/terminal/_server.ts.js
|
|
19
|
+
import { join } from "node:path";
|
|
20
|
+
import { homedir } from "node:os";
|
|
21
|
+
join(homedir(), ".config", "herdr", "herdr.sock");
|
|
22
|
+
function isHerdrError(e) {
|
|
23
|
+
return e instanceof Error && e.herdr === true;
|
|
24
|
+
}
|
|
25
|
+
join(homedir(), ".claude", "settings.json");
|
|
26
|
+
get("herdr");
|
|
27
|
+
var Terminal = external_exports.strictObject({ repo: Repo });
|
|
28
|
+
var POST = (event) => answer(event, async () => {
|
|
29
|
+
const { system } = event.locals.served;
|
|
30
|
+
const { repo } = await parsed(event, Terminal);
|
|
31
|
+
const kept = system.bus.repo(repo);
|
|
32
|
+
if (!kept) throw new Refused(`${repo} is not a repo the bus keeps`);
|
|
33
|
+
try {
|
|
34
|
+
return { pane: await system.herdr.terminal(kept.path, repo) };
|
|
35
|
+
} catch (e) {
|
|
36
|
+
if (isHerdrError(e)) throw new Refused(`Herdr could not open a terminal on ${repo}: ${e.message}`);
|
|
37
|
+
throw e;
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
export {
|
|
41
|
+
POST
|
|
42
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
answer,
|
|
4
|
+
parsed
|
|
5
|
+
} from "./chunk-R6RYZZWA.js";
|
|
6
|
+
import "./chunk-PDCON4KS.js";
|
|
7
|
+
import "./chunk-SU26PJVX.js";
|
|
8
|
+
import {
|
|
9
|
+
SecretsRequest
|
|
10
|
+
} from "./chunk-SOJTASZC.js";
|
|
11
|
+
import "./chunk-HGYE3UTU.js";
|
|
12
|
+
import "./chunk-NCZ77J5E.js";
|
|
13
|
+
import "./chunk-LFP3UPCM.js";
|
|
14
|
+
|
|
15
|
+
// build/server/entries/endpoints/secrets/_server.ts.js
|
|
16
|
+
var POST = (event) => answer(event, async () => {
|
|
17
|
+
const { repos } = event.locals.served.system;
|
|
18
|
+
const { changes, ...target } = await parsed(event, SecretsRequest);
|
|
19
|
+
if (!changes) return {
|
|
20
|
+
values: await repos.secretValues(target),
|
|
21
|
+
secrets: await repos.secretsView(target)
|
|
22
|
+
};
|
|
23
|
+
await repos.saveSecrets(target, changes);
|
|
24
|
+
return { saved: Object.keys(changes) };
|
|
25
|
+
});
|
|
26
|
+
export {
|
|
27
|
+
POST
|
|
28
|
+
};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
answer,
|
|
4
|
+
parsed
|
|
5
|
+
} from "./chunk-R6RYZZWA.js";
|
|
6
|
+
import {
|
|
7
|
+
Refused,
|
|
8
|
+
now,
|
|
9
|
+
unclosed
|
|
10
|
+
} from "./chunk-PDCON4KS.js";
|
|
11
|
+
import "./chunk-SU26PJVX.js";
|
|
12
|
+
import "./chunk-HGYE3UTU.js";
|
|
13
|
+
import {
|
|
14
|
+
external_exports
|
|
15
|
+
} from "./chunk-NCZ77J5E.js";
|
|
16
|
+
import "./chunk-LFP3UPCM.js";
|
|
17
|
+
|
|
18
|
+
// build/server/entries/endpoints/issue-groups/_server.ts.js
|
|
19
|
+
var IssueGroups = external_exports.strictObject({});
|
|
20
|
+
var running = false;
|
|
21
|
+
var POST = (event) => answer(event, async () => {
|
|
22
|
+
await parsed(event, IssueGroups);
|
|
23
|
+
if (running) throw new Refused("the issues are already being grouped");
|
|
24
|
+
const { system, grouper } = event.locals.served;
|
|
25
|
+
const text = (i) => i.description ? `${i.title}
|
|
26
|
+
|
|
27
|
+
${i.description}` : i.title;
|
|
28
|
+
const free = system.bus.issues().filter((i) => unclosed(i) && !i.holder && !i.followers.length && !system.issues.waitingOn(i).length);
|
|
29
|
+
const repos = [...new Set(free.map((i) => i.repo))];
|
|
30
|
+
running = true;
|
|
31
|
+
try {
|
|
32
|
+
const found = await Promise.all(repos.map(async (repo) => {
|
|
33
|
+
const weighed = free.filter((i) => i.repo === repo);
|
|
34
|
+
const groups = await grouper(weighed.map((i) => ({
|
|
35
|
+
slug: i.slug,
|
|
36
|
+
text: text(i)
|
|
37
|
+
})));
|
|
38
|
+
if (groups) system.bus.putGrouping(repo, {
|
|
39
|
+
at: now(),
|
|
40
|
+
weighed: weighed.map((i) => i.slug),
|
|
41
|
+
groups
|
|
42
|
+
});
|
|
43
|
+
return {
|
|
44
|
+
repo,
|
|
45
|
+
ok: !!groups
|
|
46
|
+
};
|
|
47
|
+
}));
|
|
48
|
+
return {
|
|
49
|
+
grouped: found.filter((f) => f.ok).map((f) => f.repo),
|
|
50
|
+
failed: found.filter((f) => !f.ok).map((f) => f.repo)
|
|
51
|
+
};
|
|
52
|
+
} finally {
|
|
53
|
+
running = false;
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
export {
|
|
57
|
+
POST
|
|
58
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
PAGE,
|
|
4
|
+
throughVia
|
|
5
|
+
} from "./chunk-F2CNWJZM.js";
|
|
6
|
+
import {
|
|
7
|
+
answer,
|
|
8
|
+
body
|
|
9
|
+
} from "./chunk-R6RYZZWA.js";
|
|
10
|
+
import {
|
|
11
|
+
USER
|
|
12
|
+
} from "./chunk-PDCON4KS.js";
|
|
13
|
+
import "./chunk-SU26PJVX.js";
|
|
14
|
+
import "./chunk-HGYE3UTU.js";
|
|
15
|
+
import "./chunk-NCZ77J5E.js";
|
|
16
|
+
import "./chunk-LFP3UPCM.js";
|
|
17
|
+
|
|
18
|
+
// build/server/entries/endpoints/act/_server.ts.js
|
|
19
|
+
var POST = (event) => answer(event, async () => {
|
|
20
|
+
const data = await body(event);
|
|
21
|
+
return throughVia(PAGE, () => event.locals.served.system.messaging.send(USER, data.type, data.body ?? {}));
|
|
22
|
+
});
|
|
23
|
+
export {
|
|
24
|
+
POST
|
|
25
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
body
|
|
4
|
+
} from "./chunk-R6RYZZWA.js";
|
|
5
|
+
import "./chunk-PDCON4KS.js";
|
|
6
|
+
import {
|
|
7
|
+
json
|
|
8
|
+
} from "./chunk-SU26PJVX.js";
|
|
9
|
+
import "./chunk-HGYE3UTU.js";
|
|
10
|
+
import "./chunk-NCZ77J5E.js";
|
|
11
|
+
import "./chunk-LFP3UPCM.js";
|
|
12
|
+
|
|
13
|
+
// build/server/entries/endpoints/pair/_server.ts.js
|
|
14
|
+
var POST = async (event) => {
|
|
15
|
+
const { served } = event.locals;
|
|
16
|
+
const data = await body(event).catch(() => ({}));
|
|
17
|
+
const token = served.auth.redeem(String(data.code ?? ""));
|
|
18
|
+
if (!token) return json({ error: "That code did not work." }, { status: 403 });
|
|
19
|
+
event.cookies.set(served.cookie, token, {
|
|
20
|
+
path: "/",
|
|
21
|
+
maxAge: 2592e3,
|
|
22
|
+
httpOnly: true,
|
|
23
|
+
secure: true,
|
|
24
|
+
sameSite: "strict"
|
|
25
|
+
});
|
|
26
|
+
return json({ paired: true });
|
|
27
|
+
};
|
|
28
|
+
export {
|
|
29
|
+
POST
|
|
30
|
+
};
|