maclat 0.1.1 → 0.3.0

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 (38) hide show
  1. package/dist/cli/commands.d.ts +2 -0
  2. package/dist/cli/commands.js +60 -0
  3. package/dist/cli/commands.js.map +1 -1
  4. package/dist/cli/index.js +15 -1
  5. package/dist/cli/index.js.map +1 -1
  6. package/dist/daemon/executor.d.ts +9 -11
  7. package/dist/daemon/executor.js +1 -212
  8. package/dist/daemon/executor.js.map +1 -1
  9. package/dist/daemon/executors/claude-code.d.ts +9 -0
  10. package/dist/daemon/executors/claude-code.js +165 -0
  11. package/dist/daemon/executors/claude-code.js.map +1 -0
  12. package/dist/daemon/executors/claude-sdk.d.ts +10 -0
  13. package/dist/daemon/executors/claude-sdk.js +147 -0
  14. package/dist/daemon/executors/claude-sdk.js.map +1 -0
  15. package/dist/daemon/executors/codex.d.ts +8 -0
  16. package/dist/daemon/executors/codex.js +82 -0
  17. package/dist/daemon/executors/codex.js.map +1 -0
  18. package/dist/daemon/executors/file-collector.d.ts +4 -0
  19. package/dist/daemon/executors/file-collector.js +32 -0
  20. package/dist/daemon/executors/file-collector.js.map +1 -0
  21. package/dist/daemon/executors/index.d.ts +3 -0
  22. package/dist/daemon/executors/index.js +33 -0
  23. package/dist/daemon/executors/index.js.map +1 -0
  24. package/dist/daemon/executors/prompt.d.ts +2 -0
  25. package/dist/daemon/executors/prompt.js +20 -0
  26. package/dist/daemon/executors/prompt.js.map +1 -0
  27. package/dist/daemon/format.d.ts +16 -0
  28. package/dist/daemon/format.js +45 -0
  29. package/dist/daemon/format.js.map +1 -0
  30. package/dist/daemon/index.js +15 -9
  31. package/dist/daemon/index.js.map +1 -1
  32. package/dist/daemon/poller.d.ts +4 -0
  33. package/dist/daemon/poller.js +93 -20
  34. package/dist/daemon/poller.js.map +1 -1
  35. package/dist/index.js +3 -1
  36. package/dist/index.js.map +1 -1
  37. package/dist/shared/types.d.ts +5 -0
  38. package/package.json +2 -1
@@ -1,11 +1,13 @@
1
1
  import { POLL_INTERVAL_MS, JOBS_DIR } from '../shared/config.js';
2
2
  import { join } from 'path';
3
+ import { bold, dim, gray, toolPill, fileWrite as fmtFileWrite, agentText, jobFound, jobDone, jobError, } from './format.js';
3
4
  export class JobPoller {
4
5
  gatewayUrl;
5
6
  agentId;
6
7
  executor;
7
8
  running = false;
8
9
  currentJobId = null;
10
+ idleInterval = null;
9
11
  constructor(gatewayUrl, agentId, executor) {
10
12
  this.gatewayUrl = gatewayUrl;
11
13
  this.agentId = agentId;
@@ -13,7 +15,7 @@ export class JobPoller {
13
15
  }
14
16
  async start() {
15
17
  this.running = true;
16
- console.log(` Watching for jobs... (polling every ${POLL_INTERVAL_MS / 1000}s)\n`);
18
+ this.startIdleAnimation();
17
19
  while (this.running) {
18
20
  try {
19
21
  if (!this.currentJobId) {
@@ -22,13 +24,33 @@ export class JobPoller {
22
24
  }
23
25
  catch (err) {
24
26
  const msg = err instanceof Error ? err.message : String(err);
25
- console.log(` [error] Poll failed: ${msg}`);
27
+ console.log(jobError(`Poll failed: ${msg}`));
26
28
  }
27
29
  await sleep(POLL_INTERVAL_MS);
28
30
  }
29
31
  }
30
32
  stop() {
31
33
  this.running = false;
34
+ this.stopIdleAnimation();
35
+ }
36
+ startIdleAnimation() {
37
+ const frames = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
38
+ let i = 0;
39
+ this.idleInterval = setInterval(() => {
40
+ if (!this.currentJobId) {
41
+ process.stdout.write(`\r ${gray(frames[i % frames.length])} ${dim('Watching for jobs...')} `);
42
+ i++;
43
+ }
44
+ }, 100);
45
+ }
46
+ stopIdleAnimation() {
47
+ if (this.idleInterval) {
48
+ clearInterval(this.idleInterval);
49
+ this.idleInterval = null;
50
+ }
51
+ }
52
+ clearIdleLine() {
53
+ process.stdout.write('\r' + ' '.repeat(50) + '\r');
32
54
  }
33
55
  async pollForJobs() {
34
56
  const res = await fetch(`${this.gatewayUrl}/jobs/available`);
@@ -37,18 +59,16 @@ export class JobPoller {
37
59
  const jobs = (await res.json());
38
60
  if (jobs.length === 0)
39
61
  return;
40
- // Take the first available job
41
62
  const job = jobs[0];
42
- const time = new Date().toLocaleTimeString('en-US', { hour12: false });
43
- console.log(` [${time}] Found job: "${job.title}" (${job.budget_usdc} USDC)`);
63
+ this.clearIdleLine();
64
+ console.log(jobFound(job.title, job.budget_usdc));
44
65
  await this.executeJob(job);
45
66
  }
46
67
  async executeJob(job) {
47
68
  this.currentJobId = job.id;
48
- const time = () => new Date().toLocaleTimeString('en-US', { hour12: false });
49
69
  try {
50
70
  // 1. Claim the job
51
- console.log(` [${time()}] Claiming...`);
71
+ console.log(` ${dim('Claiming job...')}`);
52
72
  const claimRes = await fetch(`${this.gatewayUrl}/jobs/${job.id}/claim`, {
53
73
  method: 'POST',
54
74
  headers: { 'Content-Type': 'application/json' },
@@ -56,18 +76,47 @@ export class JobPoller {
56
76
  });
57
77
  if (!claimRes.ok) {
58
78
  const err = (await claimRes.json());
59
- console.log(` [${time()}] Failed to claim: ${err.error}`);
79
+ console.log(jobError(`Failed to claim: ${err.error}`));
60
80
  this.currentJobId = null;
61
81
  return;
62
82
  }
63
83
  // 2. Signal work started
64
- console.log(` [${time()}] Starting work...`);
84
+ console.log(` ${bold('Starting work...')}`);
65
85
  await fetch(`${this.gatewayUrl}/jobs/${job.id}/start`, {
66
86
  method: 'POST',
67
87
  headers: { 'Content-Type': 'application/json' },
68
88
  });
69
- // 3. Set up progress relay
89
+ console.log('');
90
+ // 3. Set up progress relay (POST to gateway + pretty terminal output)
70
91
  const onUpdate = async (type, content) => {
92
+ // Terminal output
93
+ if (type === 'terminal') {
94
+ // Parse "ToolName: target" format
95
+ const colonIdx = content.indexOf(':');
96
+ if (colonIdx > 0) {
97
+ const name = content.slice(0, colonIdx).trim();
98
+ const target = content.slice(colonIdx + 1).trim().slice(0, 60);
99
+ console.log(toolPill(name, target));
100
+ }
101
+ else {
102
+ console.log(toolPill(content, ''));
103
+ }
104
+ }
105
+ else if (type === 'file_write') {
106
+ try {
107
+ const data = JSON.parse(content);
108
+ console.log(fmtFileWrite(data.path));
109
+ }
110
+ catch {
111
+ console.log(fmtFileWrite(content));
112
+ }
113
+ }
114
+ else if (type === 'text') {
115
+ // Truncate long text, show first line only
116
+ const firstLine = content.split('\n')[0].slice(0, 120);
117
+ console.log(agentText(firstLine));
118
+ }
119
+ // Gateway relay
71
120
  try {
72
121
  await fetch(`${this.gatewayUrl}/jobs/${job.id}/updates`, {
73
122
  method: 'POST',
@@ -76,15 +125,39 @@ export class JobPoller {
76
125
  });
77
126
  }
78
127
  catch {
79
- // Non-critical, don't crash on failed update
128
+ // Non-critical
80
129
  }
81
130
  };
82
- // 4. Execute the job
83
- console.log(` [${time()}] Spawning claude...\n`);
131
+ // 4. Set up interactivity (instruction injection)
132
+ const interactivity = {
133
+ getInstructions: async () => {
134
+ try {
135
+ const res = await fetch(`${this.gatewayUrl}/jobs/${job.id}/instructions?status=pending`);
136
+ if (!res.ok)
137
+ return [];
138
+ return await res.json();
139
+ }
140
+ catch {
141
+ return [];
142
+ }
143
+ },
144
+ markDelivered: async (id) => {
145
+ try {
146
+ await fetch(`${this.gatewayUrl}/jobs/${job.id}/instructions/${id}`, {
147
+ method: 'PATCH',
148
+ headers: { 'Content-Type': 'application/json' },
149
+ body: JSON.stringify({ status: 'delivered' }),
150
+ });
151
+ }
152
+ catch { /* non-critical */ }
153
+ },
154
+ };
155
+ // 5. Execute the job
84
156
  const workDir = join(JOBS_DIR, job.id);
85
- const result = await this.executor.execute(job, workDir, onUpdate);
86
- // 5. Deliver results
87
- console.log(`\n [${time()}] Job ${result.success ? 'completed' : 'finished'}. Delivering files...`);
157
+ const result = await this.executor.execute(job, workDir, onUpdate, interactivity);
158
+ // 6. Deliver results
159
+ console.log('');
160
+ console.log(` ${dim('Delivering')} ${bold(String(result.files.length))} ${dim('files...')}`);
88
161
  const deliverRes = await fetch(`${this.gatewayUrl}/jobs/${job.id}/deliver`, {
89
162
  method: 'POST',
90
163
  headers: { 'Content-Type': 'application/json' },
@@ -95,19 +168,19 @@ export class JobPoller {
95
168
  }),
96
169
  });
97
170
  if (deliverRes.ok) {
98
- console.log(` [${time()}] Deliverables sent (${result.files.length} files).`);
171
+ console.log(jobDone(`${result.files.length} files delivered`));
99
172
  }
100
173
  else {
101
- console.log(` [${time()}] Failed to send deliverables.`);
174
+ console.log(jobError('Failed to send deliverables.'));
102
175
  }
103
176
  }
104
177
  catch (err) {
105
178
  const msg = err instanceof Error ? err.message : String(err);
106
- console.log(` [error] Job execution failed: ${msg}`);
179
+ console.log(jobError(`Job execution failed: ${msg}`));
107
180
  }
108
181
  finally {
109
182
  this.currentJobId = null;
110
- console.log(`\n Back to watching for jobs...\n`);
183
+ console.log('');
111
184
  }
112
185
  }
113
186
  }
@@ -1 +1 @@
1
- {"version":3,"file":"poller.js","sourceRoot":"","sources":["../../src/daemon/poller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"poller.js","sourceRoot":"","sources":["../../src/daemon/poller.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -9,7 +9,9 @@ async function main() {
9
9
  break;
10
10
  }
11
11
  case 'register':
12
- case 'myinfo': {
12
+ case 'myinfo':
13
+ case 'use':
14
+ case 'config': {
13
15
  const { runCli } = await import('./cli/index.js');
14
16
  await runCli(args);
15
17
  break;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAExB,KAAK,UAAU,IAAI;IACjB,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;YAC1D,MAAM,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM;QACR,CAAC;QACD,KAAK,UAAU,CAAC;QAChB,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAClD,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YACnB,MAAM;QACR,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAClD,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YACnB,MAAM;QACR,CAAC;IACH,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;IAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAExB,KAAK,UAAU,IAAI;IACjB,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;YAC1D,MAAM,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM;QACR,CAAC;QACD,KAAK,UAAU,CAAC;QAChB,KAAK,QAAQ,CAAC;QACd,KAAK,KAAK,CAAC;QACX,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAClD,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YACnB,MAAM;QACR,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAClD,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YACnB,MAAM;QACR,CAAC;IACH,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;IAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -33,8 +33,13 @@ export interface Deliverable {
33
33
  summary: string;
34
34
  created_at: string;
35
35
  }
36
+ export type ExecutorType = 'claude-code' | 'anthropic' | 'openrouter' | 'codex';
36
37
  export interface MaclatConfig {
37
38
  agent_id?: string;
38
39
  agent_name?: string;
39
40
  gateway_url: string;
41
+ executor?: ExecutorType;
42
+ api_key?: string;
43
+ model?: string;
44
+ max_turns?: number;
40
45
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "maclat",
3
- "version": "0.1.1",
3
+ "version": "0.3.0",
4
4
  "description": "Maclat - Agent CLI for the autonomous job marketplace",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -28,6 +28,7 @@
28
28
  ],
29
29
  "license": "MIT",
30
30
  "dependencies": {
31
+ "@anthropic-ai/claude-agent-sdk": "^0.2.45",
31
32
  "ulid": "^2.3.0"
32
33
  },
33
34
  "devDependencies": {