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

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 (198) hide show
  1. package/README.md +11 -412
  2. package/bin/alp.js +3 -0
  3. package/package.json +11 -103
  4. package/dist/THIRD-PARTY-NOTICES.txt +0 -626
  5. package/dist/acp.js +0 -19936
  6. package/dist/alpd.js +0 -49562
  7. package/docs/modular-monorepo.md +0 -214
  8. package/packages/cli/README.md +0 -7
  9. package/packages/cli/dist/THIRD-PARTY-NOTICES.txt +0 -651
  10. package/packages/cli/dist/acp/agent.d.ts +0 -37
  11. package/packages/cli/dist/acp/agent.js +0 -489
  12. package/packages/cli/dist/acp/main.d.ts +0 -4
  13. package/packages/cli/dist/acp/main.js +0 -23
  14. package/packages/cli/dist/acp.js +0 -19936
  15. package/packages/cli/dist/alp-web/THIRD-PARTY-NOTICES.txt +0 -2590
  16. package/packages/cli/dist/alp-web/alp-boundary.json +0 -15
  17. package/packages/cli/dist/alp-web/apple-touch-icon.png +0 -0
  18. package/packages/cli/dist/alp-web/assets/TerminalPanel-DLuoa74B.css +0 -1
  19. package/packages/cli/dist/alp-web/assets/TerminalPanel-PrU2l3u5.js +0 -16
  20. package/packages/cli/dist/alp-web/assets/index-BJdBTDFX.css +0 -1
  21. package/packages/cli/dist/alp-web/assets/index-DpfiPv5s.js +0 -52
  22. package/packages/cli/dist/alp-web/favicon-attention.svg +0 -6
  23. package/packages/cli/dist/alp-web/favicon-running.svg +0 -6
  24. package/packages/cli/dist/alp-web/favicon.svg +0 -5
  25. package/packages/cli/dist/alp-web/index.html +0 -20
  26. package/packages/cli/dist/alp-web.js +0 -9640
  27. package/packages/cli/dist/alpd.js +0 -49562
  28. package/packages/cli/dist/backup.d.ts +0 -4
  29. package/packages/cli/dist/backup.js +0 -146
  30. package/packages/cli/dist/build-manifest.json +0 -240
  31. package/packages/cli/dist/cli.d.ts +0 -2
  32. package/packages/cli/dist/cli.js +0 -30
  33. package/packages/cli/dist/daemon.d.ts +0 -35
  34. package/packages/cli/dist/daemon.js +0 -126
  35. package/packages/cli/dist/index.d.ts +0 -1
  36. package/packages/cli/dist/index.js +0 -5
  37. package/packages/cli/dist/interfaces.d.ts +0 -24
  38. package/packages/cli/dist/interfaces.js +0 -156
  39. package/packages/cli/dist/library.d.ts +0 -140
  40. package/packages/cli/dist/library.js +0 -319
  41. package/packages/cli/dist/paths.d.ts +0 -3
  42. package/packages/cli/dist/paths.js +0 -18
  43. package/packages/cli/dist/projects.d.ts +0 -9
  44. package/packages/cli/dist/projects.js +0 -159
  45. package/packages/cli/dist/schedules.d.ts +0 -2
  46. package/packages/cli/dist/schedules.js +0 -45
  47. package/packages/cli/dist/sessions.d.ts +0 -43
  48. package/packages/cli/dist/sessions.js +0 -458
  49. package/packages/cli/dist/tasks.d.ts +0 -29
  50. package/packages/cli/dist/tasks.js +0 -345
  51. package/packages/cli/dist/terminal.d.ts +0 -8
  52. package/packages/cli/dist/terminal.js +0 -79
  53. package/packages/cli/dist/usage.d.ts +0 -3
  54. package/packages/cli/dist/usage.js +0 -78
  55. package/packages/cli/dist/web-service.d.ts +0 -38
  56. package/packages/cli/dist/web-service.js +0 -119
  57. package/packages/client/README.md +0 -29
  58. package/packages/client/dist/acp-probe.d.ts +0 -44
  59. package/packages/client/dist/acp-probe.js +0 -37
  60. package/packages/client/dist/antigravity-probe.d.ts +0 -34
  61. package/packages/client/dist/antigravity-probe.js +0 -95
  62. package/packages/client/dist/command.d.ts +0 -5
  63. package/packages/client/dist/command.js +0 -33
  64. package/packages/client/dist/doctor.d.ts +0 -13
  65. package/packages/client/dist/doctor.js +0 -587
  66. package/packages/client/dist/index.d.ts +0 -151
  67. package/packages/client/dist/index.js +0 -533
  68. package/packages/client/dist/integration-lock.d.ts +0 -35
  69. package/packages/client/dist/integration-lock.js +0 -179
  70. package/packages/client/dist/ipc.d.ts +0 -42
  71. package/packages/client/dist/ipc.js +0 -69
  72. package/packages/client/dist/library-test.d.ts +0 -94
  73. package/packages/client/dist/library-test.js +0 -37
  74. package/packages/client/dist/mcp-probe.d.ts +0 -24
  75. package/packages/client/dist/mcp-probe.js +0 -147
  76. package/packages/client/dist/portable.d.ts +0 -19
  77. package/packages/client/dist/portable.js +0 -33
  78. package/packages/client/dist/prompt.d.ts +0 -32
  79. package/packages/client/dist/prompt.js +0 -59
  80. package/packages/client/dist/render.d.ts +0 -6
  81. package/packages/client/dist/render.js +0 -120
  82. package/packages/client/dist/rpc/client.d.ts +0 -82
  83. package/packages/client/dist/rpc/client.js +0 -292
  84. package/packages/client/dist/rpc/errors.d.ts +0 -42
  85. package/packages/client/dist/rpc/errors.js +0 -34
  86. package/packages/client/dist/rpc/framing.d.ts +0 -21
  87. package/packages/client/dist/rpc/framing.js +0 -57
  88. package/packages/client/dist/rpc/handshake.d.ts +0 -19
  89. package/packages/client/dist/rpc/handshake.js +0 -8
  90. package/packages/client/dist/rpc/reconnect.d.ts +0 -97
  91. package/packages/client/dist/rpc/reconnect.js +0 -227
  92. package/packages/client/dist/rpc/registry.d.ts +0 -211
  93. package/packages/client/dist/rpc/registry.js +0 -145
  94. package/packages/client/dist/rpc/timers.d.ts +0 -11
  95. package/packages/client/dist/rpc/timers.js +0 -11
  96. package/packages/client/dist/service.d.ts +0 -50
  97. package/packages/client/dist/service.js +0 -143
  98. package/packages/client/dist/setup.d.ts +0 -2
  99. package/packages/client/dist/setup.js +0 -146
  100. package/packages/client/dist/supervise.d.ts +0 -14
  101. package/packages/client/dist/supervise.js +0 -87
  102. package/packages/client/dist/websocket.d.ts +0 -51
  103. package/packages/client/dist/websocket.js +0 -190
  104. package/packages/core/README.md +0 -7
  105. package/packages/core/dist/adapter.d.ts +0 -20
  106. package/packages/core/dist/adapter.js +0 -30
  107. package/packages/core/dist/atomic.d.ts +0 -2
  108. package/packages/core/dist/atomic.js +0 -28
  109. package/packages/core/dist/backup.d.ts +0 -27
  110. package/packages/core/dist/backup.js +0 -681
  111. package/packages/core/dist/beads.d.ts +0 -65
  112. package/packages/core/dist/beads.js +0 -213
  113. package/packages/core/dist/delegation.d.ts +0 -2
  114. package/packages/core/dist/delegation.js +0 -32
  115. package/packages/core/dist/errors.d.ts +0 -4
  116. package/packages/core/dist/errors.js +0 -11
  117. package/packages/core/dist/formulas.d.ts +0 -25
  118. package/packages/core/dist/formulas.js +0 -201
  119. package/packages/core/dist/hook-run.d.ts +0 -44
  120. package/packages/core/dist/hook-run.js +0 -60
  121. package/packages/core/dist/hooks.d.ts +0 -35
  122. package/packages/core/dist/hooks.js +0 -30
  123. package/packages/core/dist/index.d.ts +0 -31
  124. package/packages/core/dist/index.js +0 -65
  125. package/packages/core/dist/init.d.ts +0 -30
  126. package/packages/core/dist/init.js +0 -89
  127. package/packages/core/dist/library-edit.d.ts +0 -93
  128. package/packages/core/dist/library-edit.js +0 -368
  129. package/packages/core/dist/library.d.ts +0 -28
  130. package/packages/core/dist/library.js +0 -108
  131. package/packages/core/dist/log.d.ts +0 -37
  132. package/packages/core/dist/log.js +0 -156
  133. package/packages/core/dist/migrations.d.ts +0 -9
  134. package/packages/core/dist/migrations.js +0 -95
  135. package/packages/core/dist/models.d.ts +0 -11
  136. package/packages/core/dist/models.js +0 -44
  137. package/packages/core/dist/permissions.d.ts +0 -14
  138. package/packages/core/dist/permissions.js +0 -229
  139. package/packages/core/dist/profiles.d.ts +0 -27
  140. package/packages/core/dist/profiles.js +0 -122
  141. package/packages/core/dist/promptsafe.d.ts +0 -1
  142. package/packages/core/dist/promptsafe.js +0 -13
  143. package/packages/core/dist/providers.d.ts +0 -90
  144. package/packages/core/dist/providers.js +0 -101
  145. package/packages/core/dist/resolver.d.ts +0 -41
  146. package/packages/core/dist/resolver.js +0 -240
  147. package/packages/core/dist/safe-path.d.ts +0 -2
  148. package/packages/core/dist/safe-path.js +0 -24
  149. package/packages/core/dist/shell.d.ts +0 -16
  150. package/packages/core/dist/shell.js +0 -22
  151. package/packages/core/dist/state-schema.d.ts +0 -9
  152. package/packages/core/dist/state-schema.js +0 -54
  153. package/packages/core/dist/task-rows.d.ts +0 -47
  154. package/packages/core/dist/task-rows.js +0 -45
  155. package/packages/core/dist/tasks.d.ts +0 -128
  156. package/packages/core/dist/tasks.js +0 -835
  157. package/packages/core/dist/teams.d.ts +0 -80
  158. package/packages/core/dist/teams.js +0 -159
  159. package/packages/core/dist/template-path.d.ts +0 -2
  160. package/packages/core/dist/template-path.js +0 -10
  161. package/packages/core/dist/trust.d.ts +0 -8
  162. package/packages/core/dist/trust.js +0 -47
  163. package/packages/core/dist/types.d.ts +0 -51
  164. package/packages/core/dist/upgrade.d.ts +0 -10
  165. package/packages/core/dist/upgrade.js +0 -200
  166. package/packages/core/dist/user-settings.d.ts +0 -6
  167. package/packages/core/dist/user-settings.js +0 -72
  168. package/packages/core/dist/user-worktree.d.ts +0 -29
  169. package/packages/core/dist/user-worktree.js +0 -242
  170. package/packages/core/dist/validation.d.ts +0 -17
  171. package/packages/core/dist/validation.js +0 -296
  172. package/packages/core/dist/verify.d.ts +0 -15
  173. package/packages/core/dist/verify.js +0 -123
  174. package/packages/core/dist/workflow.d.ts +0 -45
  175. package/packages/core/dist/workflow.js +0 -33
  176. package/templates/ALP.md +0 -52
  177. package/templates/agents/lead/AGENT.md +0 -90
  178. package/templates/agents/main/AGENT.md +0 -150
  179. package/templates/agents/oracle/AGENT.md +0 -44
  180. package/templates/agents/peer/AGENT.md +0 -55
  181. package/templates/agents/reviewer/AGENT.md +0 -80
  182. package/templates/agents/supervisor/AGENT.md +0 -72
  183. package/templates/providers/antigravity.json +0 -6
  184. package/templates/providers/opencode.json +0 -7
  185. package/templates/role-skills.json +0 -8
  186. package/templates/skills/bug-loop/SKILL.md +0 -44
  187. package/templates/skills/bug-loop/references/test-proof.md +0 -25
  188. package/templates/skills/goal-griller/SKILL.md +0 -49
  189. package/templates/skills/prompt-leverage/SKILL.md +0 -37
  190. package/templates/skills/prompt-leverage/references/brief-template.md +0 -27
  191. package/templates/skills/sequence-execution-plan/SKILL.md +0 -42
  192. package/templates/skills/sequence-execution-plan/references/plan-template.md +0 -22
  193. package/templates/skills/smart-commits/SKILL.md +0 -40
  194. package/templates/skills/xia/SKILL.md +0 -42
  195. package/templates/teams/cafe/HOUSE_RULES.md +0 -1
  196. package/templates/teams/cafe/team.json +0 -15
  197. package/templates/teams/pho/HOUSE_RULES.md +0 -1
  198. 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>;