@anhlp/alp 0.0.1-beta.4 → 0.0.1-beta.6

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 (199) hide show
  1. package/README.md +14 -412
  2. package/bin/alp.js +5 -0
  3. package/lib/launcher.js +136 -0
  4. package/package.json +18 -105
  5. package/dist/THIRD-PARTY-NOTICES.txt +0 -626
  6. package/dist/acp.js +0 -19936
  7. package/dist/alpd.js +0 -49562
  8. package/docs/modular-monorepo.md +0 -214
  9. package/packages/cli/README.md +0 -7
  10. package/packages/cli/dist/THIRD-PARTY-NOTICES.txt +0 -651
  11. package/packages/cli/dist/acp/agent.d.ts +0 -37
  12. package/packages/cli/dist/acp/agent.js +0 -489
  13. package/packages/cli/dist/acp/main.d.ts +0 -4
  14. package/packages/cli/dist/acp/main.js +0 -23
  15. package/packages/cli/dist/acp.js +0 -19936
  16. package/packages/cli/dist/alp-web/THIRD-PARTY-NOTICES.txt +0 -2590
  17. package/packages/cli/dist/alp-web/alp-boundary.json +0 -15
  18. package/packages/cli/dist/alp-web/apple-touch-icon.png +0 -0
  19. package/packages/cli/dist/alp-web/assets/TerminalPanel-DLuoa74B.css +0 -1
  20. package/packages/cli/dist/alp-web/assets/TerminalPanel-PrU2l3u5.js +0 -16
  21. package/packages/cli/dist/alp-web/assets/index-BJdBTDFX.css +0 -1
  22. package/packages/cli/dist/alp-web/assets/index-DpfiPv5s.js +0 -52
  23. package/packages/cli/dist/alp-web/favicon-attention.svg +0 -6
  24. package/packages/cli/dist/alp-web/favicon-running.svg +0 -6
  25. package/packages/cli/dist/alp-web/favicon.svg +0 -5
  26. package/packages/cli/dist/alp-web/index.html +0 -20
  27. package/packages/cli/dist/alp-web.js +0 -9640
  28. package/packages/cli/dist/alpd.js +0 -49562
  29. package/packages/cli/dist/backup.d.ts +0 -4
  30. package/packages/cli/dist/backup.js +0 -146
  31. package/packages/cli/dist/build-manifest.json +0 -240
  32. package/packages/cli/dist/cli.d.ts +0 -2
  33. package/packages/cli/dist/cli.js +0 -30
  34. package/packages/cli/dist/daemon.d.ts +0 -35
  35. package/packages/cli/dist/daemon.js +0 -126
  36. package/packages/cli/dist/index.d.ts +0 -1
  37. package/packages/cli/dist/index.js +0 -5
  38. package/packages/cli/dist/interfaces.d.ts +0 -24
  39. package/packages/cli/dist/interfaces.js +0 -156
  40. package/packages/cli/dist/library.d.ts +0 -140
  41. package/packages/cli/dist/library.js +0 -319
  42. package/packages/cli/dist/paths.d.ts +0 -3
  43. package/packages/cli/dist/paths.js +0 -18
  44. package/packages/cli/dist/projects.d.ts +0 -9
  45. package/packages/cli/dist/projects.js +0 -159
  46. package/packages/cli/dist/schedules.d.ts +0 -2
  47. package/packages/cli/dist/schedules.js +0 -45
  48. package/packages/cli/dist/sessions.d.ts +0 -43
  49. package/packages/cli/dist/sessions.js +0 -458
  50. package/packages/cli/dist/tasks.d.ts +0 -29
  51. package/packages/cli/dist/tasks.js +0 -345
  52. package/packages/cli/dist/terminal.d.ts +0 -8
  53. package/packages/cli/dist/terminal.js +0 -79
  54. package/packages/cli/dist/usage.d.ts +0 -3
  55. package/packages/cli/dist/usage.js +0 -78
  56. package/packages/cli/dist/web-service.d.ts +0 -38
  57. package/packages/cli/dist/web-service.js +0 -119
  58. package/packages/client/README.md +0 -29
  59. package/packages/client/dist/acp-probe.d.ts +0 -44
  60. package/packages/client/dist/acp-probe.js +0 -37
  61. package/packages/client/dist/antigravity-probe.d.ts +0 -34
  62. package/packages/client/dist/antigravity-probe.js +0 -95
  63. package/packages/client/dist/command.d.ts +0 -5
  64. package/packages/client/dist/command.js +0 -33
  65. package/packages/client/dist/doctor.d.ts +0 -13
  66. package/packages/client/dist/doctor.js +0 -587
  67. package/packages/client/dist/index.d.ts +0 -151
  68. package/packages/client/dist/index.js +0 -533
  69. package/packages/client/dist/integration-lock.d.ts +0 -35
  70. package/packages/client/dist/integration-lock.js +0 -179
  71. package/packages/client/dist/ipc.d.ts +0 -42
  72. package/packages/client/dist/ipc.js +0 -69
  73. package/packages/client/dist/library-test.d.ts +0 -94
  74. package/packages/client/dist/library-test.js +0 -37
  75. package/packages/client/dist/mcp-probe.d.ts +0 -24
  76. package/packages/client/dist/mcp-probe.js +0 -147
  77. package/packages/client/dist/portable.d.ts +0 -19
  78. package/packages/client/dist/portable.js +0 -33
  79. package/packages/client/dist/prompt.d.ts +0 -32
  80. package/packages/client/dist/prompt.js +0 -59
  81. package/packages/client/dist/render.d.ts +0 -6
  82. package/packages/client/dist/render.js +0 -120
  83. package/packages/client/dist/rpc/client.d.ts +0 -82
  84. package/packages/client/dist/rpc/client.js +0 -292
  85. package/packages/client/dist/rpc/errors.d.ts +0 -42
  86. package/packages/client/dist/rpc/errors.js +0 -34
  87. package/packages/client/dist/rpc/framing.d.ts +0 -21
  88. package/packages/client/dist/rpc/framing.js +0 -57
  89. package/packages/client/dist/rpc/handshake.d.ts +0 -19
  90. package/packages/client/dist/rpc/handshake.js +0 -8
  91. package/packages/client/dist/rpc/reconnect.d.ts +0 -97
  92. package/packages/client/dist/rpc/reconnect.js +0 -227
  93. package/packages/client/dist/rpc/registry.d.ts +0 -211
  94. package/packages/client/dist/rpc/registry.js +0 -145
  95. package/packages/client/dist/rpc/timers.d.ts +0 -11
  96. package/packages/client/dist/rpc/timers.js +0 -11
  97. package/packages/client/dist/service.d.ts +0 -50
  98. package/packages/client/dist/service.js +0 -143
  99. package/packages/client/dist/setup.d.ts +0 -2
  100. package/packages/client/dist/setup.js +0 -146
  101. package/packages/client/dist/supervise.d.ts +0 -14
  102. package/packages/client/dist/supervise.js +0 -87
  103. package/packages/client/dist/websocket.d.ts +0 -51
  104. package/packages/client/dist/websocket.js +0 -190
  105. package/packages/core/README.md +0 -7
  106. package/packages/core/dist/adapter.d.ts +0 -20
  107. package/packages/core/dist/adapter.js +0 -30
  108. package/packages/core/dist/atomic.d.ts +0 -2
  109. package/packages/core/dist/atomic.js +0 -28
  110. package/packages/core/dist/backup.d.ts +0 -27
  111. package/packages/core/dist/backup.js +0 -681
  112. package/packages/core/dist/beads.d.ts +0 -65
  113. package/packages/core/dist/beads.js +0 -213
  114. package/packages/core/dist/delegation.d.ts +0 -2
  115. package/packages/core/dist/delegation.js +0 -32
  116. package/packages/core/dist/errors.d.ts +0 -4
  117. package/packages/core/dist/errors.js +0 -11
  118. package/packages/core/dist/formulas.d.ts +0 -25
  119. package/packages/core/dist/formulas.js +0 -201
  120. package/packages/core/dist/hook-run.d.ts +0 -44
  121. package/packages/core/dist/hook-run.js +0 -60
  122. package/packages/core/dist/hooks.d.ts +0 -35
  123. package/packages/core/dist/hooks.js +0 -30
  124. package/packages/core/dist/index.d.ts +0 -31
  125. package/packages/core/dist/index.js +0 -65
  126. package/packages/core/dist/init.d.ts +0 -30
  127. package/packages/core/dist/init.js +0 -89
  128. package/packages/core/dist/library-edit.d.ts +0 -93
  129. package/packages/core/dist/library-edit.js +0 -368
  130. package/packages/core/dist/library.d.ts +0 -28
  131. package/packages/core/dist/library.js +0 -108
  132. package/packages/core/dist/log.d.ts +0 -37
  133. package/packages/core/dist/log.js +0 -156
  134. package/packages/core/dist/migrations.d.ts +0 -9
  135. package/packages/core/dist/migrations.js +0 -95
  136. package/packages/core/dist/models.d.ts +0 -11
  137. package/packages/core/dist/models.js +0 -44
  138. package/packages/core/dist/permissions.d.ts +0 -14
  139. package/packages/core/dist/permissions.js +0 -229
  140. package/packages/core/dist/profiles.d.ts +0 -27
  141. package/packages/core/dist/profiles.js +0 -122
  142. package/packages/core/dist/promptsafe.d.ts +0 -1
  143. package/packages/core/dist/promptsafe.js +0 -13
  144. package/packages/core/dist/providers.d.ts +0 -90
  145. package/packages/core/dist/providers.js +0 -101
  146. package/packages/core/dist/resolver.d.ts +0 -41
  147. package/packages/core/dist/resolver.js +0 -240
  148. package/packages/core/dist/safe-path.d.ts +0 -2
  149. package/packages/core/dist/safe-path.js +0 -24
  150. package/packages/core/dist/shell.d.ts +0 -16
  151. package/packages/core/dist/shell.js +0 -22
  152. package/packages/core/dist/state-schema.d.ts +0 -9
  153. package/packages/core/dist/state-schema.js +0 -54
  154. package/packages/core/dist/task-rows.d.ts +0 -47
  155. package/packages/core/dist/task-rows.js +0 -45
  156. package/packages/core/dist/tasks.d.ts +0 -128
  157. package/packages/core/dist/tasks.js +0 -835
  158. package/packages/core/dist/teams.d.ts +0 -80
  159. package/packages/core/dist/teams.js +0 -159
  160. package/packages/core/dist/template-path.d.ts +0 -2
  161. package/packages/core/dist/template-path.js +0 -10
  162. package/packages/core/dist/trust.d.ts +0 -8
  163. package/packages/core/dist/trust.js +0 -47
  164. package/packages/core/dist/types.d.ts +0 -51
  165. package/packages/core/dist/upgrade.d.ts +0 -10
  166. package/packages/core/dist/upgrade.js +0 -200
  167. package/packages/core/dist/user-settings.d.ts +0 -6
  168. package/packages/core/dist/user-settings.js +0 -72
  169. package/packages/core/dist/user-worktree.d.ts +0 -29
  170. package/packages/core/dist/user-worktree.js +0 -242
  171. package/packages/core/dist/validation.d.ts +0 -17
  172. package/packages/core/dist/validation.js +0 -296
  173. package/packages/core/dist/verify.d.ts +0 -15
  174. package/packages/core/dist/verify.js +0 -123
  175. package/packages/core/dist/workflow.d.ts +0 -45
  176. package/packages/core/dist/workflow.js +0 -33
  177. package/templates/ALP.md +0 -52
  178. package/templates/agents/lead/AGENT.md +0 -90
  179. package/templates/agents/main/AGENT.md +0 -150
  180. package/templates/agents/oracle/AGENT.md +0 -44
  181. package/templates/agents/peer/AGENT.md +0 -55
  182. package/templates/agents/reviewer/AGENT.md +0 -80
  183. package/templates/agents/supervisor/AGENT.md +0 -72
  184. package/templates/providers/antigravity.json +0 -6
  185. package/templates/providers/opencode.json +0 -7
  186. package/templates/role-skills.json +0 -8
  187. package/templates/skills/bug-loop/SKILL.md +0 -44
  188. package/templates/skills/bug-loop/references/test-proof.md +0 -25
  189. package/templates/skills/goal-griller/SKILL.md +0 -49
  190. package/templates/skills/prompt-leverage/SKILL.md +0 -37
  191. package/templates/skills/prompt-leverage/references/brief-template.md +0 -27
  192. package/templates/skills/sequence-execution-plan/SKILL.md +0 -42
  193. package/templates/skills/sequence-execution-plan/references/plan-template.md +0 -22
  194. package/templates/skills/smart-commits/SKILL.md +0 -40
  195. package/templates/skills/xia/SKILL.md +0 -42
  196. package/templates/teams/cafe/HOUSE_RULES.md +0 -1
  197. package/templates/teams/cafe/team.json +0 -15
  198. package/templates/teams/pho/HOUSE_RULES.md +0 -1
  199. package/templates/teams/pho/team.json +0 -14
@@ -1,159 +0,0 @@
1
- // packages/cli/src/projects.js
2
- import { parseArgs } from "node:util";
3
- import { initProject } from "@anhlp/alp-core/init";
4
- import { upgradeProject } from "@anhlp/alp-core/upgrade";
5
- import { seedLibrary } from "@anhlp/alp-core/library";
6
- import { commandDecision, profileFor } from "@anhlp/alp-core/permissions";
7
- import { describeVerification, runVerify, verifyConfig } from "@anhlp/alp-core/verify";
8
- import { diagnose, repair } from "@anhlp/alp-client/doctor";
9
- import { discoverAgents } from "@anhlp/alp-core/resolver";
10
- import { probeAntigravity } from "@anhlp/alp-client/antigravity-probe";
11
- import { isTrusted, revokeProject, trustProject, trustedProjects } from "@anhlp/alp-core/trust";
12
- import { getTask, recordVerification } from "@anhlp/alp-core/tasks";
13
- import { alpHome } from "@anhlp/alp-client/index";
14
- import { languageSetting, setLanguage } from "@anhlp/alp-core/user-settings";
15
- import { UsageError } from "./usage.js";
16
- import { taskProject } from "./tasks.js";
17
- import { DAEMON_ENTRY } from "./paths.js";
18
- var DOCTOR_MARK = { ok: "\u2713", info: "\xB7", warn: "!", fail: "\u2717" };
19
- async function project(command, args) {
20
- if (args.length > 1) throw new UsageError();
21
- try {
22
- const result = await (command === "upgrade" ? upgradeProject : initProject)(args[0] ?? process.cwd(), { library: alpHome() });
23
- console.log(`ALP initialized: ${result.created.length} files created, ${result.preserved.length} existing files preserved.`);
24
- const library = await seedLibrary(alpHome());
25
- if (library.created.length || library.updated.length) console.log(`Skill library ${alpHome()}: ${library.created.length} files added, ${library.updated.length} unchanged files updated.`);
26
- if (command === "init" && result.updated?.length) console.log(`Template model profiles refreshed: ${result.updated.join(", ")}`);
27
- if (command === "upgrade") {
28
- console.log(`ALP upgraded: ${result.updated.length} files updated.${result.backup ? ` Backup: ${result.backup}` : ""}`);
29
- if (result.customInstructions.length) console.log(`Custom instructions preserved; reconcile with templates if needed: ${result.customInstructions.join(", ")}`);
30
- const copies = result.removed.filter((name) => /^\.alp\/agents\/[^/]+$/.test(name));
31
- const skills = result.removed.filter((name) => !copies.includes(name));
32
- if (skills.length) console.log(`Retired skills archived: ${skills.join(", ")}`);
33
- if (copies.length) console.log(`Unedited agent copies put away; the project now uses ALP's built-ins: ${copies.join(", ")}`);
34
- if (result.customSkills.length) console.log(`Customized retired skills preserved for review: ${result.customSkills.join(", ")}`);
35
- }
36
- } catch (error) {
37
- console.error(`ALP initialization failed: ${error.message}`);
38
- process.exitCode = 1;
39
- }
40
- }
41
- async function permissionsCommand(args) {
42
- const { values, positionals } = parseArgs({ args, allowPositionals: true, options: { project: { type: "string" }, json: { type: "boolean" } } });
43
- const root = await taskProject(values.project);
44
- if (positionals[0] === "check") {
45
- if (positionals.length !== 3) throw new UsageError();
46
- const profile = await profileFor(root, alpHome(), positionals[1]);
47
- const decision = profile ? commandDecision(profile, positionals[2]) : void 0;
48
- const result = { agent: positionals[1], profile: profile?.name ?? null, base: profile?.base ?? null, decision: decision ?? "mode" };
49
- if (values.json) {
50
- console.log(JSON.stringify(result));
51
- return;
52
- }
53
- console.log(decision === "deny" ? `deny: a deny rule of profile ${profile.name} covers it` : decision === "ask" ? `ask: profile ${profile.name} asks the user each time` : decision === "allow" ? `allow: profile ${profile.name} lets ${result.agent} run it, even beyond its ${profile.base} mode` : `no rule covers it: ${result.agent}'s mode decides${profile ? ` (at most ${profile.base})` : ""}`);
54
- return;
55
- }
56
- if (positionals.length) throw new UsageError();
57
- const rows = [];
58
- for (const agent of await discoverAgents(root, { library: alpHome() })) rows.push({ agent, profile: await profileFor(root, alpHome(), agent) });
59
- if (values.json) {
60
- console.log(JSON.stringify(rows));
61
- return;
62
- }
63
- for (const { agent, profile } of rows) {
64
- console.log(profile ? `${agent} profile ${profile.name}, at most ${profile.base}${profile.beyondMode === "ask" ? "; asks the user beyond it" : ""}` : `${agent} no profile: the mode its requester or the user chooses`);
65
- if (profile?.allow.length) console.log(` allow: ${profile.allow.join(", ")}`);
66
- if (profile?.ask.length) console.log(` ask: ${profile.ask.join(", ")}`);
67
- if (profile?.deny.length) console.log(` deny: ${profile.deny.join(", ")}`);
68
- }
69
- }
70
- async function trustCommand(args) {
71
- const { values, positionals } = parseArgs({ args, allowPositionals: true, options: { project: { type: "string" }, revoke: { type: "boolean" }, list: { type: "boolean" }, json: { type: "boolean" } } });
72
- if (positionals.length || values.revoke && values.list) throw new UsageError();
73
- if (values.list) {
74
- const rows = await trustedProjects(alpHome());
75
- if (values.json) console.log(JSON.stringify(rows));
76
- else console.log(rows.length ? rows.map((row) => `${row.root} since ${row.trustedAt.slice(0, 10)} (${row.by})`).join("\n") : "No workspace is trusted yet; ALP asks before a project's hooks first run.");
77
- return;
78
- }
79
- const root = await taskProject(values.project);
80
- if (values.revoke) {
81
- const was = await revokeProject(alpHome(), root);
82
- console.log(was ? `ALP asks again before the hooks of ${root} run.` : `${root} was not trusted.`);
83
- return;
84
- }
85
- if (await isTrusted(alpHome(), root)) {
86
- console.log(`${root} is already trusted.`);
87
- return;
88
- }
89
- await trustProject(alpHome(), root, "alp trust");
90
- console.log(`The hooks of ${root} now run without asking, including hooks added or changed later.`);
91
- }
92
- async function language(args) {
93
- const { values, positionals } = parseArgs({ args, allowPositionals: true, options: { reset: { type: "boolean" }, json: { type: "boolean" } } });
94
- if (positionals.length > 1 || values.reset && positionals.length) throw new UsageError();
95
- const state = values.reset ? await setLanguage(alpHome(), null) : positionals.length ? await setLanguage(alpHome(), positionals[0]) : await languageSetting(alpHome());
96
- if (values.json) console.log(JSON.stringify(state));
97
- else console.log(state.language ? `Language: ${state.language}` : `Language: ${state.applies} (the default; not set)`);
98
- }
99
- async function verify(args) {
100
- const { values, positionals } = parseArgs({ args, allowPositionals: true, options: { project: { type: "string" }, task: { type: "string" }, json: { type: "boolean" } } });
101
- if (positionals[0] === "antigravity") {
102
- const result = await probeAntigravity({}, { cwd: process.cwd() });
103
- if (values.json) console.log(JSON.stringify(result));
104
- else console.log(`Antigravity ${result.version || "installed"}: ok (${result.models.length} models)`);
105
- return;
106
- }
107
- if (positionals.length) throw new UsageError();
108
- const root = await taskProject(values.project);
109
- const config = await verifyConfig(root);
110
- if (!config) throw new Error(`${root} has no verify commands; add "verify": { "test": "npm test" } to .alp/settings.json`);
111
- if (values.task) await getTask(root, values.task);
112
- const verification = await runVerify(root, config);
113
- if (values.task) await recordVerification(root, values.task, { ...verification, where: "checkout" }, "user");
114
- if (values.json) console.log(JSON.stringify(verification));
115
- else {
116
- for (const command of verification.commands) {
117
- console.log(`${command.exitCode === 0 ? "\u2713" : "\u2717"} ${command.step}: ${command.command} (${(command.ms / 1e3).toFixed(1)} s${command.timedOut ? ", timed out" : command.exitCode ? `, exit ${command.exitCode}` : ""})`);
118
- if (command.exitCode !== 0 && command.output) console.log(` ${command.output.trimEnd().split("\n").slice(-30).join("\n ")}`);
119
- }
120
- console.log(`${describeVerification(verification)}${values.task ? `; recorded on ${values.task}` : ""}`);
121
- }
122
- if (!verification.passed) process.exitCode = 1;
123
- }
124
- async function doctor(args) {
125
- const { values, positionals } = parseArgs({ args, allowPositionals: true, options: { project: { type: "string" }, fix: { type: "boolean" }, json: { type: "boolean" } } });
126
- if (positionals.length) throw new UsageError();
127
- const project2 = values.project ? await taskProject(values.project) : await taskProject(void 0).catch(() => void 0);
128
- const sandbox = await import("../dist/runtime/index.js").then((runtime) => runtime.claudeSandboxAvailable(), () => void 0);
129
- const options = { home: alpHome(), project: project2, sandbox, daemonEntry: DAEMON_ENTRY };
130
- let checks = await diagnose(options);
131
- const fixed = values.fix ? await repair(checks) : [];
132
- if (fixed.length) checks = await diagnose(options);
133
- if (values.json) {
134
- console.log(JSON.stringify({ project: project2 ?? null, checks: checks.map(({ fix, ...check }) => ({ ...check, ...fix ? { fix: fix.describe } : {} })), fixed }));
135
- } else {
136
- for (const { id, result } of fixed) console.log(`fixed ${id}: ${result}`);
137
- if (fixed.length) console.log("");
138
- for (const check of checks) {
139
- console.log(`${DOCTOR_MARK[check.status]} ${check.id.padEnd(13)} ${check.summary}`);
140
- for (const detail of check.details ?? []) console.log(` ${detail}`);
141
- if (check.fix) console.log(` --fix: ${check.fix.describe}`);
142
- if (check.hint) console.log(` ${check.hint}`);
143
- }
144
- const failed = checks.filter((check) => check.status === "fail").length;
145
- const warned = checks.filter((check) => check.status === "warn").length;
146
- const fixable = checks.filter((check) => check.fix).length;
147
- console.log(`
148
- ${failed || warned ? `${failed} failed, ${warned} to look at` : "All good"}${project2 ? "" : " (no ALP project here; pass --project to check one)"}${fixable ? `; alp doctor --fix repairs ${fixable}` : ""}`);
149
- }
150
- if (checks.some((check) => check.status === "fail")) process.exitCode = 1;
151
- }
152
- export {
153
- doctor,
154
- language,
155
- permissionsCommand,
156
- project,
157
- trustCommand,
158
- verify
159
- };
@@ -1,2 +0,0 @@
1
- /** One-shot continuations of an existing root session; timestamps need an explicit offset. */
2
- export function scheduleCommand(args: any): Promise<void>;
@@ -1,45 +0,0 @@
1
- // packages/cli/src/schedules.js
2
- import path from "node:path";
3
- import { parseArgs } from "node:util";
4
- import { running } from "./daemon.js";
5
- import { UsageError } from "./usage.js";
6
- async function scheduleCommand(args) {
7
- const { values, positionals } = parseArgs({ args, allowPositionals: true, options: {
8
- project: { type: "string" },
9
- session: { type: "string" },
10
- at: { type: "string" },
11
- prompt: { type: "string" },
12
- status: { type: "string" },
13
- json: { type: "boolean" }
14
- } });
15
- const [action, id, ...extra] = positionals;
16
- if (!["create", "list", "show", "cancel"].includes(action) || extra.length) throw new UsageError();
17
- if (action === "show" || action === "cancel" ? !id : !!id) throw new UsageError();
18
- if (action !== "create" && (values.session || values.at || values.prompt)) throw new UsageError();
19
- if (action !== "list" && values.status) throw new UsageError();
20
- if (action === "create" && (!values.session || !values.prompt?.trim() || !/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{1,3})?(Z|[+-]\d{2}:\d{2})$/.test(values.at ?? "") || !Number.isFinite(Date.parse(values.at)))) throw new Error("create needs --session, --prompt and --at ISO timestamp with Z or a UTC offset (for example 2026-10-20T16:00:00+07:00)");
21
- const projectRoot = path.resolve(values.project ?? process.cwd());
22
- const params = action === "create" ? { projectRoot, sessionId: values.session, dueAt: values.at, prompt: values.prompt } : { projectRoot, ...id ? { id } : {}, ...values.status ? { status: values.status } : {} };
23
- const client = await running();
24
- try {
25
- const result = await client.request(`schedule.${action === "show" ? "get" : action}`, params);
26
- if (values.json) {
27
- console.log(JSON.stringify(result));
28
- return;
29
- }
30
- const jobs = result.jobs ?? [result.job];
31
- if (!jobs.length) console.log("No scheduled continuations");
32
- for (const job of jobs) {
33
- console.log(`${job.id} ${job.status} ${job.dueAt} session ${job.sessionId}`);
34
- console.log(` ${job.prompt}`);
35
- if (job.attemptedAt) console.log(` attempted ${job.attemptedAt}; attempts ${job.attempts}; late ${job.lateByMs ?? 0} ms`);
36
- for (const field of ["deliveredAt", "failedAt", "cancelledAt"]) if (job[field]) console.log(` ${field}: ${job[field]}`);
37
- if (job.lastError) console.log(` ${job.lastError.code ?? "error"}: ${job.lastError.message}`);
38
- }
39
- } finally {
40
- client.close();
41
- }
42
- }
43
- export {
44
- scheduleCommand
45
- };
@@ -1,43 +0,0 @@
1
- /** One line for a finished tool call: its command, or what a typed call touched (ALPD §4.2). */
2
- export function toolLine(item: any): any;
3
- export function printer(json: any): (envelope: any) => void;
4
- /** Reads answers to questions for the user from the terminal, one question at a time. */
5
- export function answerer(client: any): {
6
- accept(event: any): void;
7
- close(): void;
8
- };
9
- /** Streams a tree until its root is idle; the first Ctrl-C interrupts it, the second detaches. */
10
- export function follow(client: any, rootId: any, print: any, { untilIdle, interactive, targetOnly, promptId }: {
11
- untilIdle: any;
12
- interactive?: boolean | undefined;
13
- targetOnly?: boolean | undefined;
14
- promptId: any;
15
- }): Promise<any>;
16
- export function run(args: any): Promise<void>;
17
- export function ps(args: any): Promise<void>;
18
- export function attach(args: any): Promise<void>;
19
- /** Steers a running root, prompts an idle one, or resumes a closed one; then follows it until idle. */
20
- export function send(args: any): Promise<void>;
21
- export function questions(args: any): Promise<void>;
22
- export function answer(args: any): Promise<void>;
23
- /** One tree as text: sessions by depth, then questions, unmerged worktrees and leases. */
24
- export function renderStatus(status: any, root: any): string;
25
- /** A live dashboard of every tree, or of one, refreshed every second. */
26
- export function top(args: any): Promise<void>;
27
- /** The tree's assignment log: delegations, mail, handoffs, worktrees and questions to the user. */
28
- export function log(args: any): Promise<void>;
29
- /** The project board every agent on the project shares: live claims, then decisions and findings. */
30
- export function board(args: any): Promise<void>;
31
- export function printPauses({ all, runtimes, parked }: {
32
- all: any;
33
- runtimes: any;
34
- parked: any;
35
- }, always?: boolean): void;
36
- /** alp pause: hold delegation and wakes on one runtime, or all; --now also parks running assignments. */
37
- export function pause(args: any): Promise<void>;
38
- /** alp resume: lift a pause; parked assignments continue where they stopped. */
39
- export function resume(args: any): Promise<void>;
40
- /** alp language: the language the user reads (ALPD §54); new sessions use it. */
41
- export function recall(args: any): Promise<void>;
42
- /** alp web: opens the web app alpd serves on 127.0.0.1, with the token in the address (ALPD §61). */
43
- export function interrupt(args: any): Promise<void>;