@a5c-ai/git-a5c 1.0.13 → 1.1.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 (73) hide show
  1. package/dist/args.d.ts +20 -0
  2. package/dist/args.d.ts.map +1 -1
  3. package/dist/args.js +47 -0
  4. package/dist/args.js.map +1 -1
  5. package/dist/commands/agent.d.ts.map +1 -1
  6. package/dist/commands/agent.js +8 -0
  7. package/dist/commands/agent.js.map +1 -1
  8. package/dist/commands/agentGenerateContext.d.ts +16 -0
  9. package/dist/commands/agentGenerateContext.d.ts.map +1 -0
  10. package/dist/commands/agentGenerateContext.js +965 -0
  11. package/dist/commands/agentGenerateContext.js.map +1 -0
  12. package/dist/commands/agentRun.d.ts +3 -0
  13. package/dist/commands/agentRun.d.ts.map +1 -0
  14. package/dist/commands/agentRun.js +226 -0
  15. package/dist/commands/agentRun.js.map +1 -0
  16. package/dist/commands/help.d.ts.map +1 -1
  17. package/dist/commands/help.js +12 -0
  18. package/dist/commands/help.js.map +1 -1
  19. package/dist/commands/hookExec.d.ts +3 -0
  20. package/dist/commands/hookExec.d.ts.map +1 -0
  21. package/dist/commands/hookExec.js +56 -0
  22. package/dist/commands/hookExec.js.map +1 -0
  23. package/dist/commands/hooks.d.ts.map +1 -1
  24. package/dist/commands/hooks.js +3 -1
  25. package/dist/commands/hooks.js.map +1 -1
  26. package/dist/commands/o.d.ts +3 -0
  27. package/dist/commands/o.d.ts.map +1 -0
  28. package/dist/commands/o.js +256 -0
  29. package/dist/commands/o.js.map +1 -0
  30. package/dist/commands/parse.d.ts +31 -0
  31. package/dist/commands/parse.d.ts.map +1 -0
  32. package/dist/commands/parse.js +389 -0
  33. package/dist/commands/parse.js.map +1 -0
  34. package/dist/commands/runOrchestration.d.ts +3 -0
  35. package/dist/commands/runOrchestration.d.ts.map +1 -0
  36. package/dist/commands/runOrchestration.js +282 -0
  37. package/dist/commands/runOrchestration.js.map +1 -0
  38. package/dist/orchestration/hookExecCore.d.ts +22 -0
  39. package/dist/orchestration/hookExecCore.d.ts.map +1 -0
  40. package/dist/orchestration/hookExecCore.js +380 -0
  41. package/dist/orchestration/hookExecCore.js.map +1 -0
  42. package/dist/orchestration/reconcileCore.d.ts +28 -0
  43. package/dist/orchestration/reconcileCore.d.ts.map +1 -0
  44. package/dist/orchestration/reconcileCore.js +188 -0
  45. package/dist/orchestration/reconcileCore.js.map +1 -0
  46. package/dist/orchestration/runEventWriter.d.ts +11 -0
  47. package/dist/orchestration/runEventWriter.d.ts.map +1 -0
  48. package/dist/orchestration/runEventWriter.js +44 -0
  49. package/dist/orchestration/runEventWriter.js.map +1 -0
  50. package/dist/orchestration/sweepCore.d.ts +11 -0
  51. package/dist/orchestration/sweepCore.d.ts.map +1 -0
  52. package/dist/orchestration/sweepCore.js +96 -0
  53. package/dist/orchestration/sweepCore.js.map +1 -0
  54. package/dist/run.d.ts.map +1 -1
  55. package/dist/run.js +8 -0
  56. package/dist/run.js.map +1 -1
  57. package/dist/util/agentFooter.d.ts +34 -0
  58. package/dist/util/agentFooter.d.ts.map +1 -0
  59. package/dist/util/agentFooter.js +15 -0
  60. package/dist/util/agentFooter.js.map +1 -0
  61. package/dist/util/githubContents.d.ts +15 -0
  62. package/dist/util/githubContents.d.ts.map +1 -0
  63. package/dist/util/githubContents.js +77 -0
  64. package/dist/util/githubContents.js.map +1 -0
  65. package/dist/util/redact.d.ts +24 -0
  66. package/dist/util/redact.d.ts.map +1 -0
  67. package/dist/util/redact.js +109 -0
  68. package/dist/util/redact.js.map +1 -0
  69. package/dist/util/uri.d.ts +12 -0
  70. package/dist/util/uri.d.ts.map +1 -0
  71. package/dist/util/uri.js +61 -0
  72. package/dist/util/uri.js.map +1 -0
  73. package/package.json +10 -5
@@ -0,0 +1,256 @@
1
+ import { spawn } from "node:child_process";
2
+ import fs from "node:fs/promises";
3
+ import os from "node:os";
4
+ import path from "node:path";
5
+ import { StringDecoder } from "node:string_decoder";
6
+ const DEFAULT_REGISTRY = "https://github.com/a5c-ai/forge";
7
+ function usage(args) {
8
+ const out = args.io.out;
9
+ const { writeLine } = args.io;
10
+ writeLine(out, "Usage:");
11
+ writeLine(out, " git a5c o init [--registry <path|url>]");
12
+ writeLine(out, ' git a5c o "your request here"');
13
+ writeLine(out, " git a5c o help");
14
+ }
15
+ function isFlag(s) {
16
+ return typeof s === "string" && s.startsWith("-");
17
+ }
18
+ function isLikelyUrl(s) {
19
+ if (!s)
20
+ return false;
21
+ if (/^[a-zA-Z][a-zA-Z0-9+.-]*:\/\//.test(s))
22
+ return true;
23
+ if (s.startsWith("git@"))
24
+ return true;
25
+ return false;
26
+ }
27
+ async function copyDirRecursive(srcDir, dstDir) {
28
+ await fs.mkdir(dstDir, { recursive: true });
29
+ const entries = await fs.readdir(srcDir, { withFileTypes: true });
30
+ for (const entry of entries) {
31
+ const srcPath = path.join(srcDir, entry.name);
32
+ const dstPath = path.join(dstDir, entry.name);
33
+ if (entry.isDirectory())
34
+ await copyDirRecursive(srcPath, dstPath);
35
+ else if (entry.isFile())
36
+ await fs.copyFile(srcPath, dstPath);
37
+ }
38
+ }
39
+ async function copyManagedFromRegistry(registryRoot, repoRoot) {
40
+ const srcFunctions = path.join(registryRoot, ".a5c", "functions");
41
+ const srcProcesses = path.join(registryRoot, ".a5c", "processes");
42
+ const srcTemplate = path.join(registryRoot, ".a5c", "o.md");
43
+ try {
44
+ const st = await fs.stat(srcFunctions);
45
+ if (!st.isDirectory())
46
+ throw new Error("not a directory");
47
+ }
48
+ catch {
49
+ const e = new Error(`registry missing .a5c/functions: ${srcFunctions}`);
50
+ e.exitCode = 2;
51
+ throw e;
52
+ }
53
+ try {
54
+ const st = await fs.stat(srcProcesses);
55
+ if (!st.isDirectory())
56
+ throw new Error("not a directory");
57
+ }
58
+ catch {
59
+ const e = new Error(`registry missing .a5c/processes: ${srcProcesses}`);
60
+ e.exitCode = 2;
61
+ throw e;
62
+ }
63
+ const dstFunctions = path.join(repoRoot, ".a5c", "functions");
64
+ const dstProcesses = path.join(repoRoot, ".a5c", "processes");
65
+ await fs.mkdir(dstFunctions, { recursive: true });
66
+ await fs.mkdir(dstProcesses, { recursive: true });
67
+ await copyDirRecursive(srcFunctions, dstFunctions);
68
+ await copyDirRecursive(srcProcesses, dstProcesses);
69
+ try {
70
+ const st = await fs.stat(srcTemplate);
71
+ if (st.isFile()) {
72
+ const dstTemplate = path.join(repoRoot, ".a5c", "o.md");
73
+ await fs.mkdir(path.dirname(dstTemplate), { recursive: true });
74
+ await fs.copyFile(srcTemplate, dstTemplate);
75
+ }
76
+ }
77
+ catch {
78
+ // optional
79
+ }
80
+ }
81
+ async function runGitClone(registryUrl, destDir) {
82
+ await runGitCloneWithArgs(registryUrl, destDir, ["clone", "--depth", "1", registryUrl, destDir]);
83
+ }
84
+ async function runGitCloneWithArgs(registryUrl, destDir, gitArgs) {
85
+ await new Promise((resolve, reject) => {
86
+ const child = spawn("git", gitArgs, {
87
+ stdio: ["ignore", "pipe", "pipe"],
88
+ windowsHide: true
89
+ });
90
+ const out = [];
91
+ const err = [];
92
+ child.stdout.on("data", (d) => out.push(Buffer.from(d)));
93
+ child.stderr.on("data", (d) => err.push(Buffer.from(d)));
94
+ child.on("error", reject);
95
+ child.on("close", (code) => {
96
+ if (code === 0)
97
+ return resolve();
98
+ const details = Buffer.concat(err).toString("utf8").trim() || Buffer.concat(out).toString("utf8").trim();
99
+ reject(new Error(details || `git exited ${code ?? 1}`));
100
+ });
101
+ });
102
+ }
103
+ async function handleInit(args, argv) {
104
+ let registry = DEFAULT_REGISTRY;
105
+ for (let i = 0; i < argv.length; i++) {
106
+ const a = argv[i];
107
+ if (a === "--registry") {
108
+ const v = argv[i + 1];
109
+ if (!v || isFlag(v)) {
110
+ args.io.writeLine(args.io.err, "o init: --registry requires a value");
111
+ return 2;
112
+ }
113
+ registry = v;
114
+ i++;
115
+ continue;
116
+ }
117
+ if (a === "-h" || a === "--help") {
118
+ usage(args);
119
+ return 0;
120
+ }
121
+ args.io.writeLine(args.io.err, `o init: unknown arg '${a}'`);
122
+ return 2;
123
+ }
124
+ const resolvedPath = path.isAbsolute(registry) ? registry : path.resolve(args.repoRoot, registry);
125
+ try {
126
+ const st = await fs.stat(resolvedPath);
127
+ if (st.isDirectory()) {
128
+ await copyManagedFromRegistry(resolvedPath, args.repoRoot);
129
+ return 0;
130
+ }
131
+ }
132
+ catch {
133
+ // ignore
134
+ }
135
+ if (!isLikelyUrl(registry)) {
136
+ args.io.writeLine(args.io.err, `o init: registry not found: ${registry}`);
137
+ return 2;
138
+ }
139
+ const tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), "a5c-o-registry-"));
140
+ try {
141
+ // Prefer main branch (requested), but fall back to default branch.
142
+ try {
143
+ await runGitCloneWithArgs(registry, tmpDir, ["clone", "--depth", "1", "--branch", "main", "--single-branch", registry, tmpDir]);
144
+ }
145
+ catch (eMain) {
146
+ try {
147
+ await runGitClone(registry, tmpDir);
148
+ }
149
+ catch (e) {
150
+ const msg = String(e?.message ?? eMain?.message ?? eMain ?? e);
151
+ args.io.writeLine(args.io.err, `o init: failed to clone registry: ${msg}`);
152
+ return 2;
153
+ }
154
+ }
155
+ await copyManagedFromRegistry(tmpDir, args.repoRoot);
156
+ return 0;
157
+ }
158
+ finally {
159
+ await fs.rm(tmpDir, { recursive: true, force: true });
160
+ }
161
+ }
162
+ async function runCommand(args, command, stdinText) {
163
+ return await new Promise((resolve) => {
164
+ let resolved = false;
165
+ const done = (code) => {
166
+ if (resolved)
167
+ return;
168
+ resolved = true;
169
+ resolve(code);
170
+ };
171
+ const stdoutDecoder = new StringDecoder("utf8");
172
+ const stderrDecoder = new StringDecoder("utf8");
173
+ const child = spawn(command, {
174
+ cwd: args.repoRoot,
175
+ shell: true,
176
+ stdio: ["pipe", "pipe", "pipe"],
177
+ windowsHide: true,
178
+ env: process.env
179
+ });
180
+ child.stdout.on("data", (d) => {
181
+ const s = stdoutDecoder.write(d);
182
+ if (s)
183
+ args.io.out(s);
184
+ });
185
+ child.stderr.on("data", (d) => {
186
+ const s = stderrDecoder.write(d);
187
+ if (s)
188
+ args.io.err(s);
189
+ });
190
+ child.on("error", (e) => {
191
+ const sOut = stdoutDecoder.end();
192
+ if (sOut)
193
+ args.io.out(sOut);
194
+ const sErr = stderrDecoder.end();
195
+ if (sErr)
196
+ args.io.err(sErr);
197
+ args.io.writeLine(args.io.err, `o: failed to run A5C_CLI_COMMAND: ${String(e?.message ?? e)}`);
198
+ done(1);
199
+ });
200
+ child.on("close", (code) => {
201
+ const sOut = stdoutDecoder.end();
202
+ if (sOut)
203
+ args.io.out(sOut);
204
+ const sErr = stderrDecoder.end();
205
+ if (sErr)
206
+ args.io.err(sErr);
207
+ done(code == null ? 1 : code);
208
+ });
209
+ child.stdin.end(stdinText, "utf8");
210
+ });
211
+ }
212
+ async function handleRequest(args, argv) {
213
+ const request = argv.join(" ").trim();
214
+ if (!request) {
215
+ usage(args);
216
+ return 2;
217
+ }
218
+ const cliCommand = process.env.A5C_CLI_COMMAND;
219
+ if (!cliCommand) {
220
+ args.io.writeLine(args.io.err, 'o: A5C_CLI_COMMAND is not set (example: A5C_CLI_COMMAND="codex exec ...")');
221
+ return 2;
222
+ }
223
+ const templatePath = path.join(args.repoRoot, ".a5c", "o.md");
224
+ let template;
225
+ try {
226
+ template = await fs.readFile(templatePath, "utf8");
227
+ }
228
+ catch {
229
+ args.io.writeLine(args.io.err, `o: missing template: ${templatePath} (run: git a5c o init ...)`);
230
+ return 2;
231
+ }
232
+ const rendered = template.split("{{request}}").join(request);
233
+ return await runCommand(args, cliCommand, rendered);
234
+ }
235
+ export async function handleO(args) {
236
+ if (args.positionals[0] !== "o")
237
+ return;
238
+ const argv = args.positionals.slice(1);
239
+ const sub = argv[0];
240
+ try {
241
+ if (!sub || sub === "help" || sub === "-h" || sub === "--help") {
242
+ usage(args);
243
+ return sub ? 0 : 2;
244
+ }
245
+ if (sub === "init") {
246
+ return await handleInit(args, argv.slice(1));
247
+ }
248
+ return await handleRequest(args, argv);
249
+ }
250
+ catch (e) {
251
+ const exitCode = typeof e?.exitCode === "number" ? e.exitCode : 1;
252
+ args.io.writeLine(args.io.err, `o: ${String(e?.message ?? e)}`);
253
+ return exitCode === 2 ? 2 : 1;
254
+ }
255
+ }
256
+ //# sourceMappingURL=o.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"o.js","sourceRoot":"","sources":["../../src/commands/o.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { CommandArgs } from "./types.js";
2
+ export type CodexEvent = {
3
+ type: "user_instructions_event" | "tokens_used" | "thinking" | "turn_diff" | "codex" | "exec" | "exec_result" | "banner" | "agent_output_footer";
4
+ timestamp: string;
5
+ raw: string;
6
+ fields?: Record<string, unknown>;
7
+ };
8
+ export declare class CodexStdoutParser {
9
+ private currentTimestamp;
10
+ private currentType;
11
+ private bufferLines;
12
+ private currentExecMeta;
13
+ private readonly tsRe;
14
+ private readonly headerUserInstructions;
15
+ private readonly headerThinking;
16
+ private readonly headerTurnDiff;
17
+ private readonly headerCodex;
18
+ private readonly headerExec;
19
+ private readonly headerTokensUsed;
20
+ private readonly bannerFirst;
21
+ private readonly bannerRule;
22
+ private readonly kvLine;
23
+ private readonly successLine;
24
+ private readonly exitLine;
25
+ parseLine(line: string): CodexEvent[];
26
+ private processWithinTimestamp;
27
+ flushIfAny(out: CodexEvent[]): void;
28
+ private stripHeaderAndTrim;
29
+ }
30
+ export declare function handleParse(args: CommandArgs): Promise<number | undefined>;
31
+ //# sourceMappingURL=parse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/commands/parse.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EACA,yBAAyB,GACzB,aAAa,GACb,UAAU,GACV,WAAW,GACX,OAAO,GACP,MAAM,GACN,aAAa,GACb,QAAQ,GACR,qBAAqB,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,CAAC;AAGF,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,WAAW,CAQH;IAChB,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,eAAe,CAMP;IAEhB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgD;IACrE,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA6B;IACpE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmB;IAClD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsB;IACrD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgB;IAC5C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmC;IAC9D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgC;IACjE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IACzD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAC9C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyC;IACrE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiD;IAE1E,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE;IA0BrC,OAAO,CAAC,sBAAsB;IAyJ9B,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,IAAI;IAiCnC,OAAO,CAAC,kBAAkB;CAQ3B;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAwEhF"}