whitesmith 0.0.1 → 0.0.2

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 (64) hide show
  1. package/dist/auto-work.d.ts +11 -0
  2. package/dist/auto-work.d.ts.map +1 -0
  3. package/dist/auto-work.js +22 -0
  4. package/dist/auto-work.js.map +1 -0
  5. package/dist/cli.d.ts.map +1 -1
  6. package/dist/cli.js +99 -0
  7. package/dist/cli.js.map +1 -1
  8. package/dist/comment.d.ts +29 -0
  9. package/dist/comment.d.ts.map +1 -0
  10. package/dist/comment.js +390 -0
  11. package/dist/comment.js.map +1 -0
  12. package/dist/git.d.ts +12 -0
  13. package/dist/git.d.ts.map +1 -1
  14. package/dist/git.js +57 -14
  15. package/dist/git.js.map +1 -1
  16. package/dist/harnesses/pi.d.ts +2 -0
  17. package/dist/harnesses/pi.d.ts.map +1 -1
  18. package/dist/harnesses/pi.js +92 -6
  19. package/dist/harnesses/pi.js.map +1 -1
  20. package/dist/install-ci.d.ts +7 -0
  21. package/dist/install-ci.d.ts.map +1 -0
  22. package/dist/install-ci.js +760 -0
  23. package/dist/install-ci.js.map +1 -0
  24. package/dist/orchestrator.d.ts +24 -4
  25. package/dist/orchestrator.d.ts.map +1 -1
  26. package/dist/orchestrator.js +252 -67
  27. package/dist/orchestrator.js.map +1 -1
  28. package/dist/prompts.d.ts.map +1 -1
  29. package/dist/prompts.js +1 -0
  30. package/dist/prompts.js.map +1 -1
  31. package/dist/providers/github-ci.d.ts +16 -0
  32. package/dist/providers/github-ci.d.ts.map +1 -0
  33. package/dist/providers/github-ci.js +733 -0
  34. package/dist/providers/github-ci.js.map +1 -0
  35. package/dist/providers/github.d.ts +21 -0
  36. package/dist/providers/github.d.ts.map +1 -1
  37. package/dist/providers/github.js +88 -3
  38. package/dist/providers/github.js.map +1 -1
  39. package/dist/providers/index.d.ts +1 -0
  40. package/dist/providers/index.d.ts.map +1 -1
  41. package/dist/providers/issue-provider.d.ts +26 -0
  42. package/dist/providers/issue-provider.d.ts.map +1 -1
  43. package/dist/task-manager.d.ts +4 -0
  44. package/dist/task-manager.d.ts.map +1 -1
  45. package/dist/task-manager.js +6 -0
  46. package/dist/task-manager.js.map +1 -1
  47. package/dist/types.d.ts +9 -0
  48. package/dist/types.d.ts.map +1 -1
  49. package/dist/types.js +2 -0
  50. package/dist/types.js.map +1 -1
  51. package/package.json +2 -1
  52. package/src/auto-work.ts +26 -0
  53. package/src/cli.ts +114 -0
  54. package/src/comment.ts +531 -0
  55. package/src/git.ts +58 -12
  56. package/src/harnesses/pi.ts +108 -6
  57. package/src/orchestrator.ts +287 -76
  58. package/src/prompts.ts +1 -0
  59. package/src/providers/github-ci.ts +840 -0
  60. package/src/providers/github.ts +118 -5
  61. package/src/providers/index.ts +1 -0
  62. package/src/providers/issue-provider.ts +25 -1
  63. package/src/task-manager.ts +7 -0
  64. package/src/types.ts +7 -0
package/dist/git.d.ts CHANGED
@@ -9,6 +9,10 @@ export declare class GitManager {
9
9
  * Get the current branch name
10
10
  */
11
11
  getCurrentBranch(): Promise<string>;
12
+ /**
13
+ * Remove all .whitesmith-* temp files from the working directory.
14
+ */
15
+ cleanupTempFiles(): void;
12
16
  /**
13
17
  * Fetch latest from origin
14
18
  */
@@ -52,6 +56,14 @@ export declare class GitManager {
52
56
  * Get the default branch (usually main)
53
57
  */
54
58
  getDefaultBranch(): Promise<string>;
59
+ /**
60
+ * Check if a file exists on a remote ref (without checking out)
61
+ */
62
+ remoteFileExists(ref: string, filePath: string): Promise<boolean>;
63
+ /**
64
+ * Check if a path has any files on a remote ref (without checking out)
65
+ */
66
+ remotePathHasFiles(ref: string, dirPath: string): Promise<boolean>;
55
67
  /**
56
68
  * Verify we're on the expected branch
57
69
  */
package/dist/git.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,qBAAa,UAAU;IACtB,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,EAAE,MAAM;YAIb,GAAG;IAKjB;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAIzC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAShG;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAKnC;;OAEG;IACG,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAwBtE;;OAEG;IACG,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAKpC;;OAEG;IACG,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASzD;;OAEG;IACG,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQtD;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IASzC;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAMnD"}
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,qBAAa,UAAU;IACtB,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,EAAE,MAAM;YAIb,GAAG;IAKjB;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAIzC;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAYxB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAShG;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAKnC;;OAEG;IACG,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IA6BtE;;OAEG;IACG,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAKpC;;OAEG;IACG,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASzD;;OAEG;IACG,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQtD;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IASzC;;OAEG;IACG,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASvE;;OAEG;IACG,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASxE;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAMnD"}
package/dist/git.js CHANGED
@@ -1,4 +1,6 @@
1
1
  import { exec } from 'node:child_process';
2
+ import * as fs from 'node:fs';
3
+ import * as path from 'node:path';
2
4
  import { promisify } from 'node:util';
3
5
  const execAsync = promisify(exec);
4
6
  /**
@@ -19,6 +21,21 @@ export class GitManager {
19
21
  async getCurrentBranch() {
20
22
  return this.git('rev-parse --abbrev-ref HEAD');
21
23
  }
24
+ /**
25
+ * Remove all .whitesmith-* temp files from the working directory.
26
+ */
27
+ cleanupTempFiles() {
28
+ for (const entry of fs.readdirSync(this.workDir)) {
29
+ if (entry.startsWith('.whitesmith-')) {
30
+ try {
31
+ fs.unlinkSync(path.join(this.workDir, entry));
32
+ }
33
+ catch {
34
+ // ignore
35
+ }
36
+ }
37
+ }
38
+ }
22
39
  /**
23
40
  * Fetch latest from origin
24
41
  */
@@ -48,26 +65,28 @@ export class GitManager {
48
65
  * Stage all changes and commit
49
66
  */
50
67
  async commitAll(message, exclude) {
68
+ // Always exclude whitesmith temp files
69
+ const allExclude = ['.whitesmith-*', ...(exclude || [])];
70
+ // Remove any whitesmith temp files from the working tree
71
+ this.cleanupTempFiles();
51
72
  // Check if there are changes
52
73
  const status = await this.git('status --porcelain');
53
74
  if (!status)
54
75
  return false;
55
- let addCmd = 'git add -A';
56
- if (exclude && exclude.length > 0) {
57
- // Add all then unstage excluded
58
- await this.git('add -A');
59
- for (const pattern of exclude) {
60
- try {
61
- await this.git(`reset HEAD -- ${pattern}`);
62
- }
63
- catch {
64
- // File might not be staged
65
- }
76
+ // Add all then unstage excluded patterns
77
+ await this.git('add -A');
78
+ for (const pattern of allExclude) {
79
+ try {
80
+ await this.git(`reset HEAD -- ${pattern}`);
81
+ }
82
+ catch {
83
+ // File might not be staged
66
84
  }
67
85
  }
68
- else {
69
- await this.git('add -A');
70
- }
86
+ // Check if anything is still staged after exclusions
87
+ const staged = await this.git('diff --cached --name-only');
88
+ if (!staged)
89
+ return false;
71
90
  await this.git(`commit -m "${message.replace(/"/g, '\\"')}"`);
72
91
  return true;
73
92
  }
@@ -125,6 +144,30 @@ export class GitManager {
125
144
  return 'main';
126
145
  }
127
146
  }
147
+ /**
148
+ * Check if a file exists on a remote ref (without checking out)
149
+ */
150
+ async remoteFileExists(ref, filePath) {
151
+ try {
152
+ await this.git(`show ${ref}:${filePath}`);
153
+ return true;
154
+ }
155
+ catch {
156
+ return false;
157
+ }
158
+ }
159
+ /**
160
+ * Check if a path has any files on a remote ref (without checking out)
161
+ */
162
+ async remotePathHasFiles(ref, dirPath) {
163
+ try {
164
+ const result = await this.git(`ls-tree ${ref} -- ${dirPath}`);
165
+ return result.length > 0;
166
+ }
167
+ catch {
168
+ return false;
169
+ }
170
+ }
128
171
  /**
129
172
  * Verify we're on the expected branch
130
173
  */
package/dist/git.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,8 @@ export declare class PiHarness implements AgentHarness {
18
18
  output: string;
19
19
  exitCode: number;
20
20
  }>;
21
+ /** Format a pi JSON event as a human-readable log line (null = skip) */
22
+ private formatEvent;
21
23
  private exec;
22
24
  }
23
25
  //# sourceMappingURL=pi.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pi.d.ts","sourceRoot":"","sources":["../../src/harnesses/pi.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,YAAY,EAAE,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AAEzE;;;;GAIG;AACH,qBAAa,SAAU,YAAW,YAAY;IAC7C,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAS;gBAEV,MAAM,EAAE,kBAAkB;IAMhC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAiCzB,GAAG,CAAC,OAAO,EAAE;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,CAAC;IAsB/C,OAAO,CAAC,IAAI;CAmCZ"}
1
+ {"version":3,"file":"pi.d.ts","sourceRoot":"","sources":["../../src/harnesses/pi.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAE,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AAmBzE;;;;GAIG;AACH,qBAAa,SAAU,YAAW,YAAY;IAC7C,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAS;gBAEV,MAAM,EAAE,kBAAkB;IAMhC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IA2DzB,GAAG,CAAC,OAAO,EAAE;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,CAAC;IAsB/C,wEAAwE;IACxE,OAAO,CAAC,WAAW;IAoCnB,OAAO,CAAC,IAAI;CAwDZ"}
@@ -1,5 +1,6 @@
1
1
  import { exec, execSync } from 'node:child_process';
2
2
  import * as fs from 'node:fs';
3
+ import { homedir } from 'node:os';
3
4
  import * as path from 'node:path';
4
5
  /**
5
6
  * Agent harness for @mariozechner/pi-coding-agent.
@@ -25,9 +26,28 @@ export class PiHarness {
25
26
  `Make sure it is installed and available in PATH. ` +
26
27
  `For pi-coding-agent: npm install -g @mariozechner/pi-coding-agent`);
27
28
  }
29
+ // Check auth.json exists and has the expected provider
30
+ const homeDir = process.env.HOME || homedir();
31
+ const authJsonPath = path.join(homeDir, '.pi', 'agent', 'auth.json');
32
+ if (fs.existsSync(authJsonPath)) {
33
+ try {
34
+ const authData = JSON.parse(fs.readFileSync(authJsonPath, 'utf-8'));
35
+ const providers = Object.keys(authData);
36
+ console.log(`Auth file found at ${authJsonPath} with providers: ${providers.join(', ')}`);
37
+ if (!authData[this.provider]) {
38
+ console.warn(`WARNING: Provider '${this.provider}' not found in auth.json (has: ${providers.join(', ')})`);
39
+ }
40
+ }
41
+ catch (e) {
42
+ console.warn(`WARNING: Could not parse auth.json: ${e.message}`);
43
+ }
44
+ }
45
+ else {
46
+ console.warn(`WARNING: No auth.json found at ${authJsonPath}`);
47
+ }
28
48
  // Validate auth by making a minimal API call
29
49
  try {
30
- const result = execSync(`${this.cmd} --print --no-tools --provider ${this.provider} --model ${this.model} "respond with OK"`, { stdio: 'pipe', timeout: 30_000 });
50
+ const result = execSync(`${this.cmd} --print --no-tools --no-session --provider ${this.provider} --model ${this.model} "respond with OK"`, { stdio: 'pipe', timeout: 30_000 });
31
51
  const output = result.toString().trim();
32
52
  if (!output) {
33
53
  throw new Error('Empty response');
@@ -35,18 +55,23 @@ export class PiHarness {
35
55
  console.log(`Auth check passed (response: ${output.slice(0, 20)})`);
36
56
  }
37
57
  catch (error) {
38
- const stderr = error.stderr?.toString() || error.message || '';
58
+ const stderr = error.stderr?.toString() || '';
59
+ const stdout = error.stdout?.toString() || '';
60
+ const details = [stderr, stdout].filter(Boolean).join('\n') || error.message || 'unknown error';
39
61
  throw new Error(`Agent auth validation failed. Ensure valid credentials are configured.\n` +
40
62
  `Set ANTHROPIC_API_KEY or configure OAuth via ~/.pi/agent/auth.json\n` +
41
- `Details: ${stderr.slice(0, 500)}`);
63
+ `Auth file path: ${authJsonPath}\n` +
64
+ `Auth file exists: ${fs.existsSync(authJsonPath)}\n` +
65
+ `HOME: ${homeDir}\n` +
66
+ `Details: ${details.slice(0, 800)}`);
42
67
  }
43
68
  }
44
69
  async run(options) {
45
- // Write prompt to a temp file to avoid shell escaping issues
70
+ // Write prompt to a temp file and use @file syntax so pi reads contents
46
71
  const promptFile = path.join(options.workDir, '.whitesmith-prompt.md');
47
72
  fs.writeFileSync(promptFile, options.prompt, 'utf-8');
48
73
  try {
49
- const result = await this.exec(`${this.cmd} --prompt-file "${promptFile}" --yes --provider ${this.provider} --model ${this.model}`, options.workDir, options.logFile);
74
+ const result = await this.exec(`${this.cmd} --print --mode json --no-session --provider ${this.provider} --model ${this.model} @"${promptFile}"`, options.workDir, options.logFile);
50
75
  return result;
51
76
  }
52
77
  finally {
@@ -59,6 +84,44 @@ export class PiHarness {
59
84
  }
60
85
  }
61
86
  }
87
+ /** Format a pi JSON event as a human-readable log line (null = skip) */
88
+ formatEvent(event) {
89
+ switch (event.type) {
90
+ case 'agent_start':
91
+ return '\nšŸ¤– Agent started';
92
+ case 'agent_end':
93
+ return '\nšŸ Agent finished';
94
+ case 'turn_start':
95
+ return '\n--- turn ---';
96
+ case 'message_update': {
97
+ const evt = event.assistantMessageEvent;
98
+ if (evt?.type === 'text_delta' && evt.delta)
99
+ return evt.delta;
100
+ if (evt?.type === 'thinking_delta' && evt.delta)
101
+ return evt.delta;
102
+ return null;
103
+ }
104
+ case 'tool_execution_start': {
105
+ const argsStr = JSON.stringify(event.args);
106
+ const truncArgs = argsStr.length > 200 ? argsStr.slice(0, 200) + '…' : argsStr;
107
+ return `\nšŸ”§ ${event.toolName}(${truncArgs})`;
108
+ }
109
+ case 'tool_execution_end': {
110
+ const icon = event.isError ? 'āŒ' : 'āœ…';
111
+ const res = typeof event.result === 'string' ? event.result : JSON.stringify(event.result);
112
+ const truncRes = res.length > 500 ? res.slice(0, 500) + '…' : res;
113
+ return `${icon} ${event.toolName} → ${truncRes}`;
114
+ }
115
+ case 'compaction_start':
116
+ return `\nšŸ“¦ Compaction (${event.reason})`;
117
+ case 'auto_retry_start':
118
+ return `\nšŸ”„ Retry ${event.attempt}/${event.maxAttempts}: ${event.errorMessage}`;
119
+ case 'auto_retry_end':
120
+ return event.success ? 'šŸ”„ Retry succeeded' : `šŸ”„ Retry failed: ${event.finalError}`;
121
+ default:
122
+ return null;
123
+ }
124
+ }
62
125
  exec(cmd, workDir, logFile) {
63
126
  return new Promise((resolve) => {
64
127
  const child = exec(cmd, {
@@ -66,14 +129,35 @@ export class PiHarness {
66
129
  maxBuffer: 50 * 1024 * 1024,
67
130
  timeout: 30 * 60 * 1000, // 30 minute timeout
68
131
  });
132
+ // Close stdin immediately so pi doesn't hang waiting for piped input
133
+ child.stdin?.end();
69
134
  let output = '';
135
+ let lineBuffer = '';
70
136
  const logStream = logFile
71
137
  ? fs.createWriteStream(path.resolve(workDir, logFile), { flags: 'a' })
72
138
  : null;
139
+ const processLine = (line) => {
140
+ if (!line.trim())
141
+ return;
142
+ try {
143
+ const event = JSON.parse(line);
144
+ const formatted = this.formatEvent(event);
145
+ if (formatted !== null) {
146
+ process.stdout.write(formatted);
147
+ }
148
+ }
149
+ catch {
150
+ process.stdout.write(line + '\n');
151
+ }
152
+ };
73
153
  child.stdout?.on('data', (data) => {
74
154
  output += data;
75
- process.stdout.write(data);
76
155
  logStream?.write(data);
156
+ lineBuffer += data;
157
+ const lines = lineBuffer.split('\n');
158
+ lineBuffer = lines.pop() ?? '';
159
+ for (const line of lines)
160
+ processLine(line);
77
161
  });
78
162
  child.stderr?.on('data', (data) => {
79
163
  output += data;
@@ -81,6 +165,8 @@ export class PiHarness {
81
165
  logStream?.write(data);
82
166
  });
83
167
  child.on('close', (code) => {
168
+ if (lineBuffer.trim())
169
+ processLine(lineBuffer);
84
170
  logStream?.end();
85
171
  resolve({ output, exitCode: code ?? 1 });
86
172
  });
@@ -1 +1 @@
1
- {"version":3,"file":"pi.js","sourceRoot":"","sources":["../../src/harnesses/pi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pi.js","sourceRoot":"","sources":["../../src/harnesses/pi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;AAChC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAoBlC;;;;GAIG;AACH,MAAM,OAAO,SAAS;IACb,GAAG,CAAS;IACZ,QAAQ,CAAS;IACjB,KAAK,CAAS;IAEtB,YAAY,MAA0B;QACrC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,QAAQ;QACb,8BAA8B;QAC9B,IAAI,CAAC;YACJ,QAAQ,CAAC,SAAS,IAAI,CAAC,GAAG,EAAE,EAAE,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACR,MAAM,IAAI,KAAK,CACd,kBAAkB,IAAI,CAAC,GAAG,eAAe;gBACxC,mDAAmD;gBACnD,mEAAmE,CACpE,CAAC;QACH,CAAC;QAED,uDAAuD;QACvD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC;QAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QACrE,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC;gBACJ,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;gBACpE,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC,sBAAsB,YAAY,oBAAoB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC1F,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC9B,OAAO,CAAC,IAAI,CACX,sBAAsB,IAAI,CAAC,QAAQ,kCAAkC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC5F,CAAC;gBACH,CAAC;YACF,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBACjB,OAAO,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAClE,CAAC;QACF,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,kCAAkC,YAAY,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,6CAA6C;QAC7C,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,QAAQ,CACtB,GAAG,IAAI,CAAC,GAAG,+CAA+C,IAAI,CAAC,QAAQ,YAAY,IAAI,CAAC,KAAK,oBAAoB,EACjH,EAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAC,CAChC,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;YACxC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;YACnC,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,gCAAgC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QACrE,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACrB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC9C,MAAM,OAAO,GACZ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,IAAI,eAAe,CAAC;YACjF,MAAM,IAAI,KAAK,CACd,0EAA0E;gBACzE,sEAAsE;gBACtE,mBAAmB,YAAY,IAAI;gBACnC,qBAAqB,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI;gBACpD,SAAS,OAAO,IAAI;gBACpB,YAAY,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CACpC,CAAC;QACH,CAAC;IACF,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,OAIT;QACA,wEAAwE;QACxE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;QACvE,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAEtD,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAC7B,GAAG,IAAI,CAAC,GAAG,gDAAgD,IAAI,CAAC,QAAQ,YAAY,IAAI,CAAC,KAAK,MAAM,UAAU,GAAG,EACjH,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,OAAO,CACf,CAAC;YACF,OAAO,MAAM,CAAC;QACf,CAAC;gBAAS,CAAC;YACV,uBAAuB;YACvB,IAAI,CAAC;gBACJ,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACR,SAAS;YACV,CAAC;QACF,CAAC;IACF,CAAC;IAED,wEAAwE;IAChE,WAAW,CAAC,KAAc;QACjC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,aAAa;gBACjB,OAAO,oBAAoB,CAAC;YAC7B,KAAK,WAAW;gBACf,OAAO,qBAAqB,CAAC;YAC9B,KAAK,YAAY;gBAChB,OAAO,gBAAgB,CAAC;YACzB,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACvB,MAAM,GAAG,GAAG,KAAK,CAAC,qBAAqB,CAAC;gBACxC,IAAI,GAAG,EAAE,IAAI,KAAK,YAAY,IAAI,GAAG,CAAC,KAAK;oBAAE,OAAO,GAAG,CAAC,KAAK,CAAC;gBAC9D,IAAI,GAAG,EAAE,IAAI,KAAK,gBAAgB,IAAI,GAAG,CAAC,KAAK;oBAAE,OAAO,GAAG,CAAC,KAAK,CAAC;gBAClE,OAAO,IAAI,CAAC;YACb,CAAC;YACD,KAAK,sBAAsB,CAAC,CAAC,CAAC;gBAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC/E,OAAO,QAAQ,KAAK,CAAC,QAAQ,IAAI,SAAS,GAAG,CAAC;YAC/C,CAAC;YACD,KAAK,oBAAoB,CAAC,CAAC,CAAC;gBAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;gBACvC,MAAM,GAAG,GAAG,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC3F,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;gBAClE,OAAO,GAAG,IAAI,IAAI,KAAK,CAAC,QAAQ,MAAM,QAAQ,EAAE,CAAC;YAClD,CAAC;YACD,KAAK,kBAAkB;gBACtB,OAAO,oBAAoB,KAAK,CAAC,MAAM,GAAG,CAAC;YAC5C,KAAK,kBAAkB;gBACtB,OAAO,cAAc,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,YAAY,EAAE,CAAC;YAClF,KAAK,gBAAgB;gBACpB,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,oBAAoB,KAAK,CAAC,UAAU,EAAE,CAAC;YACtF;gBACC,OAAO,IAAI,CAAC;QACd,CAAC;IACF,CAAC;IAEO,IAAI,CACX,GAAW,EACX,OAAe,EACf,OAAgB;QAEhB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE;gBACvB,GAAG,EAAE,OAAO;gBACZ,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;gBAC3B,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,oBAAoB;aAC7C,CAAC,CAAC;YAEH,qEAAqE;YACrE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC;YAEnB,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,UAAU,GAAG,EAAE,CAAC;YACpB,MAAM,SAAS,GAAG,OAAO;gBACxB,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAC,KAAK,EAAE,GAAG,EAAC,CAAC;gBACpE,CAAC,CAAC,IAAI,CAAC;YAER,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE;gBACpC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;oBAAE,OAAO;gBACzB,IAAI,CAAC;oBACJ,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACxC,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;oBAC1C,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;wBACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBACjC,CAAC;gBACF,CAAC;gBAAC,MAAM,CAAC;oBACR,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;gBACnC,CAAC;YACF,CAAC,CAAC;YAEF,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;gBACzC,MAAM,IAAI,IAAI,CAAC;gBACf,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBACvB,UAAU,IAAI,IAAI,CAAC;gBACnB,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACrC,UAAU,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;gBAC/B,KAAK,MAAM,IAAI,IAAI,KAAK;oBAAE,WAAW,CAAC,IAAI,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;gBACzC,MAAM,IAAI,IAAI,CAAC;gBACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC3B,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC1B,IAAI,UAAU,CAAC,IAAI,EAAE;oBAAE,WAAW,CAAC,UAAU,CAAC,CAAC;gBAC/C,SAAS,EAAE,GAAG,EAAE,CAAC;gBACjB,OAAO,CAAC,EAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,EAAC,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;CACD"}
@@ -0,0 +1,7 @@
1
+ export type AuthMode = 'auth-json' | 'models-json';
2
+ export interface InstallCIOptions {
3
+ authMode: AuthMode;
4
+ repo?: string;
5
+ }
6
+ export declare function installCI(workDir: string, options: InstallCIOptions): Promise<void>;
7
+ //# sourceMappingURL=install-ci.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-ci.d.ts","sourceRoot":"","sources":["../src/install-ci.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,aAAa,CAAC;AA+rBnD,MAAM,WAAW,gBAAgB;IAChC,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4IzF"}