@anhlp/alp 0.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (175) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +7 -0
  3. package/README.md +416 -0
  4. package/dist/THIRD-PARTY-NOTICES.txt +626 -0
  5. package/dist/acp.js +19723 -0
  6. package/dist/alpd.js +41053 -0
  7. package/docs/modular-monorepo.md +210 -0
  8. package/package.json +126 -0
  9. package/packages/cli/README.md +7 -0
  10. package/packages/cli/dist/THIRD-PARTY-NOTICES.txt +626 -0
  11. package/packages/cli/dist/acp/agent.d.ts +29 -0
  12. package/packages/cli/dist/acp/agent.js +390 -0
  13. package/packages/cli/dist/acp/main.d.ts +4 -0
  14. package/packages/cli/dist/acp/main.js +23 -0
  15. package/packages/cli/dist/acp.js +19723 -0
  16. package/packages/cli/dist/alpd.js +41053 -0
  17. package/packages/cli/dist/backup.d.ts +4 -0
  18. package/packages/cli/dist/backup.js +146 -0
  19. package/packages/cli/dist/build-manifest.json +139 -0
  20. package/packages/cli/dist/cli.d.ts +2 -0
  21. package/packages/cli/dist/cli.js +24 -0
  22. package/packages/cli/dist/daemon.d.ts +35 -0
  23. package/packages/cli/dist/daemon.js +122 -0
  24. package/packages/cli/dist/index.d.ts +1 -0
  25. package/packages/cli/dist/index.js +5 -0
  26. package/packages/cli/dist/interfaces.d.ts +16 -0
  27. package/packages/cli/dist/interfaces.js +96 -0
  28. package/packages/cli/dist/library.d.ts +140 -0
  29. package/packages/cli/dist/library.js +319 -0
  30. package/packages/cli/dist/paths.d.ts +3 -0
  31. package/packages/cli/dist/paths.js +18 -0
  32. package/packages/cli/dist/projects.d.ts +9 -0
  33. package/packages/cli/dist/projects.js +159 -0
  34. package/packages/cli/dist/sessions.d.ts +39 -0
  35. package/packages/cli/dist/sessions.js +425 -0
  36. package/packages/cli/dist/tasks.d.ts +29 -0
  37. package/packages/cli/dist/tasks.js +345 -0
  38. package/packages/cli/dist/usage.d.ts +3 -0
  39. package/packages/cli/dist/usage.js +72 -0
  40. package/packages/client/README.md +24 -0
  41. package/packages/client/dist/acp-probe.d.ts +44 -0
  42. package/packages/client/dist/acp-probe.js +37 -0
  43. package/packages/client/dist/antigravity-probe.d.ts +34 -0
  44. package/packages/client/dist/antigravity-probe.js +95 -0
  45. package/packages/client/dist/command.d.ts +5 -0
  46. package/packages/client/dist/command.js +33 -0
  47. package/packages/client/dist/doctor.d.ts +13 -0
  48. package/packages/client/dist/doctor.js +587 -0
  49. package/packages/client/dist/index.d.ts +101 -0
  50. package/packages/client/dist/index.js +422 -0
  51. package/packages/client/dist/ipc.d.ts +42 -0
  52. package/packages/client/dist/ipc.js +69 -0
  53. package/packages/client/dist/library-test.d.ts +94 -0
  54. package/packages/client/dist/library-test.js +37 -0
  55. package/packages/client/dist/mcp-probe.d.ts +24 -0
  56. package/packages/client/dist/mcp-probe.js +147 -0
  57. package/packages/client/dist/portable.d.ts +18 -0
  58. package/packages/client/dist/portable.js +27 -0
  59. package/packages/client/dist/prompt.d.ts +32 -0
  60. package/packages/client/dist/prompt.js +59 -0
  61. package/packages/client/dist/render.d.ts +6 -0
  62. package/packages/client/dist/render.js +120 -0
  63. package/packages/client/dist/rpc/client.d.ts +82 -0
  64. package/packages/client/dist/rpc/client.js +292 -0
  65. package/packages/client/dist/rpc/errors.d.ts +42 -0
  66. package/packages/client/dist/rpc/errors.js +34 -0
  67. package/packages/client/dist/rpc/framing.d.ts +21 -0
  68. package/packages/client/dist/rpc/framing.js +57 -0
  69. package/packages/client/dist/rpc/handshake.d.ts +19 -0
  70. package/packages/client/dist/rpc/handshake.js +8 -0
  71. package/packages/client/dist/rpc/reconnect.d.ts +97 -0
  72. package/packages/client/dist/rpc/reconnect.js +227 -0
  73. package/packages/client/dist/rpc/timers.d.ts +11 -0
  74. package/packages/client/dist/rpc/timers.js +11 -0
  75. package/packages/client/dist/service.d.ts +50 -0
  76. package/packages/client/dist/service.js +143 -0
  77. package/packages/client/dist/setup.d.ts +2 -0
  78. package/packages/client/dist/setup.js +146 -0
  79. package/packages/client/dist/supervise.d.ts +12 -0
  80. package/packages/client/dist/supervise.js +81 -0
  81. package/packages/client/dist/websocket.d.ts +51 -0
  82. package/packages/client/dist/websocket.js +190 -0
  83. package/packages/core/README.md +7 -0
  84. package/packages/core/dist/adapter.d.ts +20 -0
  85. package/packages/core/dist/adapter.js +30 -0
  86. package/packages/core/dist/atomic.d.ts +2 -0
  87. package/packages/core/dist/atomic.js +28 -0
  88. package/packages/core/dist/backup.d.ts +27 -0
  89. package/packages/core/dist/backup.js +582 -0
  90. package/packages/core/dist/beads.d.ts +65 -0
  91. package/packages/core/dist/beads.js +213 -0
  92. package/packages/core/dist/delegation.d.ts +2 -0
  93. package/packages/core/dist/delegation.js +32 -0
  94. package/packages/core/dist/errors.d.ts +4 -0
  95. package/packages/core/dist/errors.js +11 -0
  96. package/packages/core/dist/formulas.d.ts +25 -0
  97. package/packages/core/dist/formulas.js +201 -0
  98. package/packages/core/dist/hook-run.d.ts +44 -0
  99. package/packages/core/dist/hook-run.js +60 -0
  100. package/packages/core/dist/hooks.d.ts +35 -0
  101. package/packages/core/dist/hooks.js +30 -0
  102. package/packages/core/dist/index.d.ts +30 -0
  103. package/packages/core/dist/index.js +63 -0
  104. package/packages/core/dist/init.d.ts +30 -0
  105. package/packages/core/dist/init.js +88 -0
  106. package/packages/core/dist/library-edit.d.ts +90 -0
  107. package/packages/core/dist/library-edit.js +315 -0
  108. package/packages/core/dist/library.d.ts +28 -0
  109. package/packages/core/dist/library.js +108 -0
  110. package/packages/core/dist/log.d.ts +37 -0
  111. package/packages/core/dist/log.js +156 -0
  112. package/packages/core/dist/migrations.d.ts +9 -0
  113. package/packages/core/dist/migrations.js +95 -0
  114. package/packages/core/dist/models.d.ts +11 -0
  115. package/packages/core/dist/models.js +44 -0
  116. package/packages/core/dist/permissions.d.ts +14 -0
  117. package/packages/core/dist/permissions.js +229 -0
  118. package/packages/core/dist/profiles.d.ts +27 -0
  119. package/packages/core/dist/profiles.js +122 -0
  120. package/packages/core/dist/promptsafe.d.ts +1 -0
  121. package/packages/core/dist/promptsafe.js +13 -0
  122. package/packages/core/dist/providers.d.ts +90 -0
  123. package/packages/core/dist/providers.js +101 -0
  124. package/packages/core/dist/resolver.d.ts +41 -0
  125. package/packages/core/dist/resolver.js +240 -0
  126. package/packages/core/dist/safe-path.d.ts +2 -0
  127. package/packages/core/dist/safe-path.js +24 -0
  128. package/packages/core/dist/shell.d.ts +16 -0
  129. package/packages/core/dist/shell.js +22 -0
  130. package/packages/core/dist/state-schema.d.ts +9 -0
  131. package/packages/core/dist/state-schema.js +54 -0
  132. package/packages/core/dist/task-rows.d.ts +47 -0
  133. package/packages/core/dist/task-rows.js +45 -0
  134. package/packages/core/dist/tasks.d.ts +128 -0
  135. package/packages/core/dist/tasks.js +835 -0
  136. package/packages/core/dist/teams.d.ts +69 -0
  137. package/packages/core/dist/teams.js +159 -0
  138. package/packages/core/dist/template-path.d.ts +2 -0
  139. package/packages/core/dist/template-path.js +10 -0
  140. package/packages/core/dist/trust.d.ts +8 -0
  141. package/packages/core/dist/trust.js +47 -0
  142. package/packages/core/dist/types.d.ts +51 -0
  143. package/packages/core/dist/upgrade.d.ts +10 -0
  144. package/packages/core/dist/upgrade.js +200 -0
  145. package/packages/core/dist/user-settings.d.ts +6 -0
  146. package/packages/core/dist/user-settings.js +72 -0
  147. package/packages/core/dist/validation.d.ts +17 -0
  148. package/packages/core/dist/validation.js +295 -0
  149. package/packages/core/dist/verify.d.ts +15 -0
  150. package/packages/core/dist/verify.js +123 -0
  151. package/packages/core/dist/workflow.d.ts +14 -0
  152. package/packages/core/dist/workflow.js +24 -0
  153. package/templates/ALP.md +52 -0
  154. package/templates/agents/lead/AGENT.md +90 -0
  155. package/templates/agents/main/AGENT.md +150 -0
  156. package/templates/agents/oracle/AGENT.md +44 -0
  157. package/templates/agents/peer/AGENT.md +55 -0
  158. package/templates/agents/reviewer/AGENT.md +80 -0
  159. package/templates/agents/supervisor/AGENT.md +72 -0
  160. package/templates/providers/antigravity.json +6 -0
  161. package/templates/providers/opencode.json +7 -0
  162. package/templates/role-skills.json +8 -0
  163. package/templates/skills/bug-loop/SKILL.md +44 -0
  164. package/templates/skills/bug-loop/references/test-proof.md +25 -0
  165. package/templates/skills/goal-griller/SKILL.md +49 -0
  166. package/templates/skills/prompt-leverage/SKILL.md +37 -0
  167. package/templates/skills/prompt-leverage/references/brief-template.md +27 -0
  168. package/templates/skills/sequence-execution-plan/SKILL.md +42 -0
  169. package/templates/skills/sequence-execution-plan/references/plan-template.md +22 -0
  170. package/templates/skills/smart-commits/SKILL.md +40 -0
  171. package/templates/skills/xia/SKILL.md +42 -0
  172. package/templates/teams/cafe/HOUSE_RULES.md +1 -0
  173. package/templates/teams/cafe/team.json +15 -0
  174. package/templates/teams/pho/HOUSE_RULES.md +1 -0
  175. package/templates/teams/pho/team.json +14 -0
@@ -0,0 +1,95 @@
1
+ // packages/client/src/antigravity-probe.js
2
+ import { spawn } from "node:child_process";
3
+ var DEFAULT_ANTIGRAVITY_MODELS = [
4
+ { id: "gemini-3.8-flash-high", label: "Gemini 3.8 Flash (High)" },
5
+ { id: "gemini-3.8-flash-medium", label: "Gemini 3.8 Flash (Medium)" },
6
+ { id: "gemini-3.8-flash-low", label: "Gemini 3.8 Flash (Low)" },
7
+ { id: "gemini-2.5-pro", label: "Gemini 2.5 Pro" },
8
+ { id: "gemini-2.5-flash", label: "Gemini 2.5 Flash" },
9
+ { id: "claude-sonnet-4-6", label: "Claude Sonnet 4.6 (Thinking)" },
10
+ { id: "claude-opus-4-6-thinking", label: "Claude Opus 4.6 (Thinking)" },
11
+ { id: "gpt-oss-120b-medium", label: "GPT-OSS 120B (Medium)" }
12
+ ];
13
+ var ANTIGRAVITY_MODES = [
14
+ {
15
+ id: "full-access",
16
+ label: "Full access",
17
+ description: "Antigravity runs with full access (--dangerously-skip-permissions)."
18
+ }
19
+ ];
20
+ function runCommand(command, args, { env = process.env, cwd, timeoutMs = 2e4 } = {}) {
21
+ return new Promise((resolve, reject) => {
22
+ const child = spawn(command, args, {
23
+ cwd,
24
+ env,
25
+ stdio: ["ignore", "pipe", "pipe"],
26
+ windowsHide: true
27
+ });
28
+ let stdout = "";
29
+ let stderr = "";
30
+ const timer = setTimeout(() => {
31
+ child.kill("SIGKILL");
32
+ reject(new Error(`${command} ${args.join(" ")} timed out after ${timeoutMs / 1e3}s`));
33
+ }, timeoutMs);
34
+ child.stdout.on("data", (chunk) => {
35
+ stdout += chunk.toString();
36
+ });
37
+ child.stderr.on("data", (chunk) => {
38
+ stderr += chunk.toString();
39
+ });
40
+ child.on("error", (error) => {
41
+ clearTimeout(timer);
42
+ reject(error);
43
+ });
44
+ child.on("close", (code) => {
45
+ clearTimeout(timer);
46
+ if (code === 0) resolve({ stdout, stderr });
47
+ else reject(new Error(`${command} exited with code ${code}: ${stderr.trim() || stdout.trim()}`));
48
+ });
49
+ });
50
+ }
51
+ async function probeAntigravity(provider = {}, { cwd, timeoutMs = 2e4 } = {}) {
52
+ const command = provider.command || "agy";
53
+ const args = provider.args ?? [];
54
+ const env = { ...process.env, ...provider.env ?? {} };
55
+ let version = "";
56
+ try {
57
+ const res = await runCommand(command, [...args, "--version"], { env, cwd, timeoutMs: Math.min(timeoutMs, 5e3) });
58
+ version = res.stdout.trim().split("\n")[0] ?? "";
59
+ } catch (error) {
60
+ throw new Error(`Antigravity command '${command}' is not available: ${error.message}`);
61
+ }
62
+ let models = [];
63
+ try {
64
+ const res = await runCommand(command, [...args, "models"], { env, cwd, timeoutMs });
65
+ for (const line of res.stdout.trim().split(/\r?\n/)) {
66
+ if (!line.trim()) continue;
67
+ const [id, label] = line.split(" ");
68
+ if (id && label) {
69
+ models.push({ id: id.trim(), label: label.trim() });
70
+ } else if (id) {
71
+ models.push({ id: id.trim(), label: id.trim() });
72
+ }
73
+ }
74
+ } catch {
75
+ models = [...DEFAULT_ANTIGRAVITY_MODELS];
76
+ }
77
+ if (!models.length) {
78
+ models = [...DEFAULT_ANTIGRAVITY_MODELS];
79
+ }
80
+ return {
81
+ version,
82
+ agent: { name: "antigravity", title: "Antigravity", version },
83
+ models,
84
+ currentModel: models[0]?.id,
85
+ modes: provider.readOnlyMode === "instructions" ? [...ANTIGRAVITY_MODES, {
86
+ id: "read-only",
87
+ label: "Read only (instructions)",
88
+ description: "For new sessions: prompt-only read-only behavior. agy still runs with full access; no OS sandbox enforces this mode."
89
+ }] : ANTIGRAVITY_MODES,
90
+ currentMode: "full-access"
91
+ };
92
+ }
93
+ export {
94
+ probeAntigravity
95
+ };
@@ -0,0 +1,5 @@
1
+ /** Runs a command; resolves with its exit code and output, never rejects. */
2
+ export function runCommand(command: any, args: any, { cwd, env, timeoutMs }?: {
3
+ env?: NodeJS.ProcessEnv | undefined;
4
+ timeoutMs?: number | undefined;
5
+ }): Promise<any>;
@@ -0,0 +1,33 @@
1
+ // packages/client/src/command.js
2
+ import { spawn } from "node:child_process";
3
+ function runCommand(command, args, { cwd, env = process.env, timeoutMs = 15e3 } = {}) {
4
+ return new Promise((resolve) => {
5
+ let child;
6
+ const script = process.platform === "win32" && /\.[cm]?js$/i.test(command);
7
+ try {
8
+ child = spawn(script ? process.execPath : command, script ? [command, ...args] : args, { cwd, env, stdio: ["ignore", "pipe", "pipe"] });
9
+ } catch (error) {
10
+ resolve({ code: -1, stdout: "", stderr: error.message });
11
+ return;
12
+ }
13
+ let stdout = "", stderr = "";
14
+ child.stdout.on("data", (chunk) => {
15
+ stdout += chunk;
16
+ });
17
+ child.stderr.on("data", (chunk) => {
18
+ stderr += chunk;
19
+ });
20
+ const timer = setTimeout(() => child.kill("SIGKILL"), timeoutMs);
21
+ child.on("error", (error) => {
22
+ clearTimeout(timer);
23
+ resolve({ code: -1, stdout, stderr: error.message });
24
+ });
25
+ child.on("close", (code) => {
26
+ clearTimeout(timer);
27
+ resolve({ code: code ?? -1, stdout, stderr });
28
+ });
29
+ });
30
+ }
31
+ export {
32
+ runCommand
33
+ };
@@ -0,0 +1,13 @@
1
+ export type DoctorCheck = {
2
+ id: string;
3
+ status: 'ok' | 'info' | 'warn' | 'fail';
4
+ summary: string;
5
+ details?: string[];
6
+ hint?: string;
7
+ fix?: { describe: string; apply(): Promise<string> };
8
+ };
9
+ export type CommandResult = { code: number; stdout: string; stderr: string };
10
+ export type CommandRunner = (command: string, args: string[], options?: { cwd?: string; env?: NodeJS.ProcessEnv; timeoutMs?: number }) => Promise<CommandResult>;
11
+ export const runCommand: CommandRunner;
12
+ export function diagnose(options?: { home?: string; project?: string; env?: NodeJS.ProcessEnv; run?: CommandRunner; sandbox?: boolean; daemonEntry?: string; timeoutMs?: number }): Promise<DoctorCheck[]>;
13
+ export function repair(checks: DoctorCheck[]): Promise<Array<{ id: string; result: string }>>;