@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.
Files changed (131) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +107 -0
  3. package/THIRD_PARTY_NOTICES.md +2005 -0
  4. package/agents/console.md +20 -0
  5. package/agents/free.md +110 -0
  6. package/build/0-JP6XL6LB.js +17 -0
  7. package/build/1-A52YZWNS.js +17 -0
  8. package/build/2-CLH2NM6F.js +32 -0
  9. package/build/3-4N467IB6.js +45 -0
  10. package/build/4-WL5H4LUW.js +29 -0
  11. package/build/_layout.svelte-KPUSX7LQ.js +27 -0
  12. package/build/_page.svelte-22H56UR6.js +7972 -0
  13. package/build/_page.svelte-CVWUNRQC.js +135 -0
  14. package/build/_page.svelte-LTZXBHMT.js +57 -0
  15. package/build/_server.ts-3KVBYN6P.js +20 -0
  16. package/build/_server.ts-3POPKVEM.js +47 -0
  17. package/build/_server.ts-5735T2V5.js +31 -0
  18. package/build/_server.ts-5VXGNWV2.js +38 -0
  19. package/build/_server.ts-645KP7WP.js +42 -0
  20. package/build/_server.ts-A3AA24Z2.js +28 -0
  21. package/build/_server.ts-CITUOEM6.js +58 -0
  22. package/build/_server.ts-I7HMTPOA.js +25 -0
  23. package/build/_server.ts-M5BQ4LLX.js +30 -0
  24. package/build/_server.ts-OB4O27HF.js +683 -0
  25. package/build/_server.ts-OJT7HE7M.js +15 -0
  26. package/build/_server.ts-OYGWVLZM.js +12 -0
  27. package/build/_server.ts-T75UVMQP.js +38 -0
  28. package/build/_server.ts-WYZYNHUZ.js +28 -0
  29. package/build/_server.ts-Z26EB47B.js +486 -0
  30. package/build/chunk-4CIG53L5.js +33 -0
  31. package/build/chunk-BJTJS3XY.js +338 -0
  32. package/build/chunk-F2CNWJZM.js +14 -0
  33. package/build/chunk-HGYE3UTU.js +416 -0
  34. package/build/chunk-KAYW2W7H.js +1311 -0
  35. package/build/chunk-LFP3UPCM.js +10 -0
  36. package/build/chunk-M44JEFEH.js +62 -0
  37. package/build/chunk-MC5AGLMY.js +39 -0
  38. package/build/chunk-NCZ77J5E.js +19798 -0
  39. package/build/chunk-NVNLDPUJ.js +2122 -0
  40. package/build/chunk-PDCON4KS.js +494 -0
  41. package/build/chunk-Q4OQNY5M.js +25 -0
  42. package/build/chunk-QCUOR2U5.js +75 -0
  43. package/build/chunk-R6RYZZWA.js +46 -0
  44. package/build/chunk-SOJTASZC.js +51 -0
  45. package/build/chunk-SU26PJVX.js +410 -0
  46. package/build/chunk-U5BSBG4R.js +506 -0
  47. package/build/chunk-UEKOZGRO.js +37 -0
  48. package/build/chunk-W6EFUWJ2.js +9 -0
  49. package/build/chunk-WOPREK6Q.js +117 -0
  50. package/build/chunk-WWJ3F4QS.js +127 -0
  51. package/build/chunk-ZGZJEEE3.js +1091 -0
  52. package/build/client/_app/immutable/assets/0.BGa5ZNDM.css +1 -0
  53. package/build/client/_app/immutable/chunks/BUrrLYDt.js +2 -0
  54. package/build/client/_app/immutable/chunks/BgFr_EyZ.js +4 -0
  55. package/build/client/_app/immutable/chunks/Bjy-W4x2.js +82 -0
  56. package/build/client/_app/immutable/chunks/C8qZab0y.js +56 -0
  57. package/build/client/_app/immutable/chunks/C90fLsA5.js +4 -0
  58. package/build/client/_app/immutable/chunks/CRzLMJPS.js +1 -0
  59. package/build/client/_app/immutable/chunks/DLT1iIlz.js +2 -0
  60. package/build/client/_app/immutable/chunks/pIrVVOVY.js +2 -0
  61. package/build/client/_app/immutable/entry/app.0DERehLW.js +3 -0
  62. package/build/client/_app/immutable/entry/payload.DSmR2FwN.js +2 -0
  63. package/build/client/_app/immutable/entry/start.B7srFiqh.js +3 -0
  64. package/build/client/_app/immutable/nodes/0.aD9vJoxR.js +2 -0
  65. package/build/client/_app/immutable/nodes/1.Br4FL91i.js +2 -0
  66. package/build/client/_app/immutable/nodes/2.vl6OYfu3.js +8 -0
  67. package/build/client/_app/immutable/nodes/3.VYqJOLAF.js +2 -0
  68. package/build/client/_app/immutable/nodes/4.jF9UVlFN.js +2 -0
  69. package/build/client/_app/version.json +1 -0
  70. package/build/client/apple-touch-icon.png +0 -0
  71. package/build/client/favicon.ico +0 -0
  72. package/build/client/favicon.svg +48 -0
  73. package/build/client/icon-192.png +0 -0
  74. package/build/client/icon-512.png +0 -0
  75. package/build/client/icon-maskable-512.png +0 -0
  76. package/build/client/icon.svg +44 -0
  77. package/build/client/manifest.webmanifest +15 -0
  78. package/build/error.svelte-JXZDY65F.js +51 -0
  79. package/build/handler.js +716 -0
  80. package/build/hooks.server-34IMHRKC.js +43 -0
  81. package/build/instance-NP3FJIWW.js +2967 -0
  82. package/client/client.mjs +28 -0
  83. package/client/hooks.mjs +7 -0
  84. package/client/register.mjs +5 -0
  85. package/dist/cli.js +62826 -0
  86. package/dist/port.js +36691 -0
  87. package/package.json +20 -1
  88. package/skills/agents/.claude-plugin/plugin.json +5 -0
  89. package/skills/agents/hooks/hooks.json +1 -0
  90. package/skills/agents/hooks/register.ts +57 -0
  91. package/skills/agents/skills/bus-work/SKILL.md +66 -0
  92. package/skills/agents/skills/plan/SKILL.md +98 -0
  93. package/skills/console/.claude-plugin/plugin.json +5 -0
  94. package/skills/console/hooks/hooks.json +1 -0
  95. package/skills/console/hooks/register.ts +10 -0
  96. package/skills/console/skills/bus/SKILL.md +61 -0
  97. package/skills/default/.claude-plugin/plugin.json +5 -0
  98. package/skills/default/skills/git-workflow/SKILL.md +294 -0
  99. package/skills/default/skills/git-workflow/mise-tasks/_lib.sh +107 -0
  100. package/skills/default/skills/git-workflow/mise-tasks/clone +36 -0
  101. package/skills/default/skills/git-workflow/mise-tasks/repo-list +8 -0
  102. package/skills/default/skills/git-workflow/mise-tasks/unpushed +26 -0
  103. package/skills/default/skills/git-workflow/mise-tasks/worktree-add +60 -0
  104. package/skills/default/skills/github/SKILL.md +208 -0
  105. package/skills/default/skills/github/scripts/gh-org +196 -0
  106. package/skills/default/skills/plan-page/SKILL.md +300 -0
  107. package/skills/default/skills/plan-page/assets/index.html +854 -0
  108. package/skills/default/skills/plan-page/scripts/inline +46 -0
  109. package/skills/default/skills/plan-page/scripts/stage +26 -0
  110. package/skills/default/skills/secrets/SKILL.md +134 -0
  111. package/skills/default/skills/secrets/scripts/secrets-check +87 -0
  112. package/skills/default/skills/writing-style/SKILL.md +45 -0
  113. package/skills/extra/.claude-plugin/plugin.json +5 -0
  114. package/skills/extra/skills/artifacts/SKILL.md +52 -0
  115. package/skills/extra/skills/github-actions/SKILL.md +78 -0
  116. package/skills/extra/skills/github-actions/scan +32 -0
  117. package/skills/extra/skills/markdown-review/SKILL.md +70 -0
  118. package/skills/extra/skills/markdown-review/assets/index.html +201 -0
  119. package/skills/extra/skills/markdown-review/scripts/stage +36 -0
  120. package/skills/extra/skills/mise-usage/SKILL.md +155 -0
  121. package/skills/extra/skills/plugin-authoring/SKILL.md +317 -0
  122. package/skills/extra/skills/project-conventions/SKILL.md +64 -0
  123. package/skills/extra/skills/questions/SKILL.md +156 -0
  124. package/skills/extra/skills/questions/assets/index.html +376 -0
  125. package/skills/extra/skills/questions/scripts/stage +26 -0
  126. package/skills/extra/skills/serve/SKILL.md +165 -0
  127. package/skills/extra/skills/serve/scripts/serve +268 -0
  128. package/skills/extra/skills/serve/scripts/server.py +345 -0
  129. package/skills/extra/skills/skill-dependencies/SKILL.md +65 -0
  130. package/skills/extra/skills/skill-maintenance/SKILL.md +101 -0
  131. 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
+ };