@itznexus/itznexus-cli 1.43.0 → 1.45.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.
@@ -7,15 +7,17 @@ import chalk from "chalk";
7
7
  import { api } from "../../lib/api.js";
8
8
  import { handleError } from "../../lib/format.js";
9
9
  import { cleanupStaleInstructionFiles, fetchProjectBySlug, fetchRenderedInstructions, findInstructionConflicts, syncInstructionFiles, } from "../../lib/project-context.js";
10
- // Materializes the whole workspace from Nexus: every project with a slug gets
11
- // a folder holding its repo clones and instruction files. Default-pipeline
12
- // projects live at <root>/<slug>; upwork demos nest under
13
- // <root>/upwork-workspace/<slug>, inside the upwork-workspace repo clone
14
- // (which carries the demo-building skills and gitignores everything else).
10
+ // Materializes the whole workspace from Nexus: the root itself is the
11
+ // itzworkspace repo clone (workspace skills + thin CLAUDE.md, gitignores
12
+ // everything else), and every project with a slug gets a folder holding its
13
+ // repo clones and instruction files. Default-pipeline projects live at
14
+ // <root>/<slug>; upwork demos nest under <root>/upwork-workspace/<slug>,
15
+ // inside the upwork-workspace repo clone (same tooling-repo pattern).
15
16
  const DEFAULT_ROOT = "~/itzworkspace";
16
17
  const UPWORK_DIR = "upwork-workspace";
17
- // Tooling repo (skills + README), not a per-demo repo: lives in the main org.
18
- const WORKSPACE_REPO = "itzworking/upwork-workspace";
18
+ // Tooling repos (skills + README), not per-project repos: live in the main org.
19
+ const ROOT_REPO = "itzworking/itzworkspace";
20
+ const UPWORK_REPO = "itzworking/upwork-workspace";
19
21
  const TERMINAL_STATUSES = new Set(["completed", "cancelled", "won", "dropped"]);
20
22
  function expandHome(p) {
21
23
  return p.startsWith("~/") ? path.join(os.homedir(), p.slice(2)) : p;
@@ -26,22 +28,35 @@ function git(args, cwd) {
26
28
  function isGitRepo(dir) {
27
29
  return fs.existsSync(path.join(dir, ".git"));
28
30
  }
29
- async function ensureUpworkWorkspace(root, https) {
30
- const dir = path.join(root, UPWORK_DIR);
31
+ // Clones the tooling repo into dir, pulls it when already a clone, and adopts
32
+ // an existing plain folder in place (init + fetch + checkout): the root
33
+ // predates being a repo on machines that synced before it existed.
34
+ function ensureWorkspaceRepo(dir, repo, https) {
35
+ const label = path.basename(dir);
31
36
  if (isGitRepo(dir)) {
32
37
  return git(["pull", "--ff-only"], dir)
33
38
  ? null
34
- : `${UPWORK_DIR}: pull failed (dirty or diverged), left as is`;
35
- }
36
- if (fs.existsSync(dir)) {
37
- return `${UPWORK_DIR}: exists but is not a git clone`;
39
+ : `${label}: pull failed (dirty or diverged), left as is`;
38
40
  }
39
41
  const url = https
40
- ? `https://github.com/${WORKSPACE_REPO}.git`
41
- : `git@github.com:${WORKSPACE_REPO}.git`;
42
- if (!git(["clone", url, dir], root)) {
42
+ ? `https://github.com/${repo}.git`
43
+ : `git@github.com:${repo}.git`;
44
+ if (!fs.existsSync(dir)) {
45
+ if (git(["clone", url, dir], path.dirname(dir)))
46
+ return null;
43
47
  fs.mkdirSync(dir, { recursive: true });
44
- return `${UPWORK_DIR}: clone of ${WORKSPACE_REPO} failed, created a plain folder`;
48
+ return `${label}: clone of ${repo} failed, created a plain folder`;
49
+ }
50
+ // reset --hard (not checkout) so stale local copies of the repo's few
51
+ // tooling files converge to the repo version instead of blocking adoption.
52
+ const adopted = git(["init", "-b", "main"], dir) &&
53
+ git(["remote", "add", "origin", url], dir) &&
54
+ git(["fetch", "origin"], dir) &&
55
+ git(["reset", "--hard", "origin/main"], dir) &&
56
+ git(["branch", "-u", "origin/main", "main"], dir);
57
+ if (!adopted) {
58
+ fs.rmSync(path.join(dir, ".git"), { recursive: true, force: true });
59
+ return `${label}: could not adopt existing folder as a ${repo} clone, left as is`;
45
60
  }
46
61
  return null;
47
62
  }
@@ -99,7 +114,7 @@ async function syncProjectFolder(project, dir, opts) {
99
114
  return result;
100
115
  }
101
116
  const syncCommand = new Command("sync")
102
- .description("Sync the full workspace from Nexus: for every project with a slug, clone missing repos, fast-forward existing ones, and materialize instruction files. Default projects land in <root>/<slug>, upwork demos in <root>/upwork-workspace/<slug> (the upwork-workspace repo is cloned or pulled first). Terminal projects are skipped unless --all.")
117
+ .description("Sync the full workspace from Nexus: converge the root itzworkspace repo (workspace skills + context), then for every project with a slug clone missing repos, fast-forward existing ones, and materialize instruction files. Default projects land in <root>/<slug>, upwork demos in <root>/upwork-workspace/<slug> (the upwork-workspace repo is cloned or pulled first). Terminal projects are skipped unless --all.")
103
118
  .option("--root <dir>", "Workspace root folder", DEFAULT_ROOT)
104
119
  .option("--project <slug>", "Only sync this project slug")
105
120
  .option("--https", "Clone over HTTPS instead of SSH")
@@ -110,6 +125,15 @@ const syncCommand = new Command("sync")
110
125
  try {
111
126
  const root = expandHome(opts.root);
112
127
  fs.mkdirSync(root, { recursive: true });
128
+ const warnings = [];
129
+ const warn = (message) => {
130
+ warnings.push(message);
131
+ if (!opts.json)
132
+ console.error(chalk.yellow("!"), message);
133
+ };
134
+ const rootWarning = ensureWorkspaceRepo(root, ROOT_REPO, !!opts.https);
135
+ if (rootWarning)
136
+ warn(rootWarning);
113
137
  const projects = await api.get("/projects");
114
138
  const targets = projects.filter((p) => p.slug &&
115
139
  (opts.project
@@ -118,11 +142,10 @@ const syncCommand = new Command("sync")
118
142
  if (opts.project && targets.length === 0) {
119
143
  throw new Error(`No project with slug "${opts.project}"`);
120
144
  }
121
- const warnings = [];
122
145
  if (targets.some((p) => p.pipeline === "upwork")) {
123
- const warning = await ensureUpworkWorkspace(root, !!opts.https);
146
+ const warning = ensureWorkspaceRepo(path.join(root, UPWORK_DIR), UPWORK_REPO, !!opts.https);
124
147
  if (warning)
125
- warnings.push(warning);
148
+ warn(warning);
126
149
  }
127
150
  const results = [];
128
151
  const errored = [];
@@ -167,10 +190,6 @@ const syncCommand = new Command("sync")
167
190
  }
168
191
  }
169
192
  }
170
- for (const w of warnings) {
171
- if (!opts.json)
172
- console.error(chalk.yellow("!"), w);
173
- }
174
193
  const hasError = errored.length > 0 ||
175
194
  results.some((r) => r.failed.length > 0 || r.conflicts.length > 0);
176
195
  if (opts.json) {
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../../src/commands/agents/workspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../../src/commands/agents/workspace.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const agentRunCommand: Command;
@@ -0,0 +1,161 @@
1
+ import { Command } from "commander";
2
+ import chalk from "chalk";
3
+ import { api } from "../../lib/api.js";
4
+ import { printList, printDetail, handleError } from "../../lib/format.js";
5
+ const listCommand = new Command("list")
6
+ .description("List agent runs (newest first)")
7
+ .option("--status <status>", "running | completed | failed")
8
+ .option("--skill <skill>", "Only runs of this skill (e.g. demo-build)")
9
+ .option("--project <projectId>", "Only runs linked to this project (UUID)")
10
+ .option("--page <n>", "Page number (default 1)")
11
+ .option("--page-size <n>", "Rows per page (default 100)")
12
+ .option("--json", "Output as JSON")
13
+ .action(async (opts) => {
14
+ try {
15
+ const params = new URLSearchParams();
16
+ if (opts.status)
17
+ params.set("status", opts.status);
18
+ if (opts.skill)
19
+ params.set("skill", opts.skill);
20
+ if (opts.project)
21
+ params.set("projectId", opts.project);
22
+ if (opts.page)
23
+ params.set("page", opts.page);
24
+ if (opts.pageSize)
25
+ params.set("pageSize", opts.pageSize);
26
+ const qs = params.toString();
27
+ const data = await api.get(`/agent-runs${qs ? `?${qs}` : ""}`);
28
+ printList(data, [
29
+ { key: "skill", label: "Skill", width: 16 },
30
+ { key: "status", label: "Status", width: 12 },
31
+ { key: "startedAt", label: "Started", width: 24 },
32
+ { key: "endedAt", label: "Ended", width: 24 },
33
+ { key: "id", label: "ID", width: 38 },
34
+ ], opts);
35
+ }
36
+ catch (err) {
37
+ handleError(err);
38
+ }
39
+ });
40
+ function printRun(run, opts) {
41
+ if (opts.json) {
42
+ console.log(JSON.stringify(run, null, 2));
43
+ return;
44
+ }
45
+ console.log(chalk.bold(run.skill));
46
+ printDetail(run, [
47
+ { key: "id", label: "ID" },
48
+ { key: "status", label: "Status" },
49
+ { key: "skill", label: "Skill" },
50
+ { key: "args", label: "Args" },
51
+ { key: "projectId", label: "Project" },
52
+ { key: "workspaceCommit", label: "Workspace commit" },
53
+ { key: "error", label: "Error" },
54
+ { key: "agentUserId", label: "Agent" },
55
+ { key: "startedAt", label: "Started" },
56
+ { key: "endedAt", label: "Ended" },
57
+ ], opts);
58
+ }
59
+ const getCommand = new Command("get")
60
+ .description("Get an agent run")
61
+ .argument("<id>", "Agent run ID")
62
+ .option("--json", "Output as JSON")
63
+ .action(async (id, opts) => {
64
+ try {
65
+ const data = await api.get(`/agent-runs/${id}`);
66
+ printRun(data, opts);
67
+ }
68
+ catch (err) {
69
+ handleError(err);
70
+ }
71
+ });
72
+ const startCommand = new Command("start")
73
+ .description("Record a run the caller is performing (born running, audit only)")
74
+ .requiredOption("--skill <skill>", "The skill being run (e.g. demo-build)")
75
+ .option("--args <json>", "Skill args as a JSON object")
76
+ .option("--project <projectId>", "Link to a project (UUID)")
77
+ .option("--workspace-commit <sha>", "itzworkspace HEAD at session start")
78
+ .option("--json", "Output as JSON")
79
+ .action(async (opts) => {
80
+ try {
81
+ const payload = { skill: opts.skill };
82
+ if (opts.args !== undefined) {
83
+ try {
84
+ payload.args = JSON.parse(opts.args);
85
+ }
86
+ catch {
87
+ console.error(chalk.red("✗"), "--args must be valid JSON");
88
+ process.exit(1);
89
+ }
90
+ }
91
+ if (opts.project !== undefined)
92
+ payload.projectId = opts.project;
93
+ if (opts.workspaceCommit !== undefined) {
94
+ payload.workspaceCommit = opts.workspaceCommit;
95
+ }
96
+ const data = await api.post("/agent-runs", payload);
97
+ if (opts.json) {
98
+ console.log(JSON.stringify(data, null, 2));
99
+ }
100
+ else {
101
+ console.log(chalk.green("✓"), `Agent run started: ${chalk.bold(data.id)}`);
102
+ }
103
+ }
104
+ catch (err) {
105
+ handleError(err);
106
+ }
107
+ });
108
+ const completeCommand = new Command("complete")
109
+ .description("Close a running agent run with a JSON result")
110
+ .argument("<id>", "Agent run ID")
111
+ .requiredOption("--result <json>", "Result as a JSON object")
112
+ .option("--json", "Output as JSON")
113
+ .action(async (id, opts) => {
114
+ try {
115
+ let result;
116
+ try {
117
+ result = JSON.parse(opts.result);
118
+ }
119
+ catch {
120
+ console.error(chalk.red("✗"), "--result must be valid JSON");
121
+ process.exit(1);
122
+ }
123
+ const data = await api.post(`/agent-runs/${id}/complete`, {
124
+ result,
125
+ });
126
+ if (opts.json)
127
+ console.log(JSON.stringify(data, null, 2));
128
+ else
129
+ console.log(chalk.green("✓"), "Agent run completed");
130
+ }
131
+ catch (err) {
132
+ handleError(err);
133
+ }
134
+ });
135
+ const failCommand = new Command("fail")
136
+ .description("Close a running agent run as failed")
137
+ .argument("<id>", "Agent run ID")
138
+ .requiredOption("--error <message>", "Failure reason")
139
+ .option("--json", "Output as JSON")
140
+ .action(async (id, opts) => {
141
+ try {
142
+ const data = await api.post(`/agent-runs/${id}/fail`, {
143
+ error: opts.error,
144
+ });
145
+ if (opts.json)
146
+ console.log(JSON.stringify(data, null, 2));
147
+ else
148
+ console.log(chalk.green("✓"), "Agent run failed");
149
+ }
150
+ catch (err) {
151
+ handleError(err);
152
+ }
153
+ });
154
+ export const agentRunCommand = new Command("agent-run")
155
+ .description("Audit log of worker skill runs")
156
+ .addCommand(listCommand)
157
+ .addCommand(getCommand)
158
+ .addCommand(startCommand)
159
+ .addCommand(completeCommand)
160
+ .addCommand(failCommand);
161
+ //# sourceMappingURL=agent-runs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-runs.js","sourceRoot":"","sources":["../../../src/commands/api/agent-runs.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -49,7 +49,7 @@ import { deploymentCommand } from "./commands/api/deployments.js";
49
49
  import { telemetryCommand } from "./commands/api/telemetry.js";
50
50
  import { gmailMessageCommand } from "./commands/api/gmail-messages.js";
51
51
  import { emailCaptureCommand, emailCaptureFormCommand, } from "./commands/api/email-captures.js";
52
- import { agentJobCommand } from "./commands/api/agent-jobs.js";
52
+ import { agentRunCommand } from "./commands/api/agent-runs.js";
53
53
  import { capabilityCommand } from "./commands/api/capabilities.js";
54
54
  import { awsAccountCommand } from "./commands/api/aws-accounts.js";
55
55
  // Agent commands (local logic on top of the API)
@@ -111,7 +111,7 @@ OPS
111
111
  audit-log Query audit logs
112
112
  pipeline View pipeline definitions
113
113
  notification Manage your notifications
114
- agent-job External agent work queue
114
+ agent-run Audit log of worker skill runs
115
115
  capability Browse the capability catalog
116
116
 
117
117
  AGENTS (local logic)
@@ -186,7 +186,7 @@ program.addCommand(jobCommand);
186
186
  program.addCommand(auditLogCommand);
187
187
  program.addCommand(pipelineCommand);
188
188
  program.addCommand(notificationCommand);
189
- program.addCommand(agentJobCommand);
189
+ program.addCommand(agentRunCommand);
190
190
  program.addCommand(capabilityCommand);
191
191
  // Agents
192
192
  program.addCommand(claudeCommand);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itznexus/itznexus-cli",
3
- "version": "1.43.0",
3
+ "version": "1.45.0",
4
4
  "description": "ITzNexus CLI: operational commands for ITzWorking",
5
5
  "type": "module",
6
6
  "publishConfig": {
@@ -1,2 +0,0 @@
1
- import { Command } from "commander";
2
- export declare const agentJobCommand: Command;
@@ -1,213 +0,0 @@
1
- import { Command } from "commander";
2
- import chalk from "chalk";
3
- import { api } from "../../lib/api.js";
4
- import { printList, printDetail, handleError } from "../../lib/format.js";
5
- const listCommand = new Command("list")
6
- .description("List agent jobs")
7
- .option("--status <status>", "pending | running | completed | failed")
8
- .option("--category <category>", "dev | pm | upwork")
9
- .option("--driver <driver>", "claude | codex")
10
- .option("--project <projectId>", "Only jobs linked to this project (UUID)")
11
- .option("--json", "Output as JSON")
12
- .action(async (opts) => {
13
- try {
14
- const params = new URLSearchParams();
15
- if (opts.status)
16
- params.set("status", opts.status);
17
- if (opts.category)
18
- params.set("category", opts.category);
19
- if (opts.driver)
20
- params.set("driver", opts.driver);
21
- if (opts.project)
22
- params.set("projectId", opts.project);
23
- const qs = params.toString();
24
- const data = await api.get(`/agent-jobs${qs ? `?${qs}` : ""}`);
25
- printList(data, [
26
- { key: "category", label: "Cat", width: 6 },
27
- { key: "driver", label: "Driver", width: 8 },
28
- { key: "status", label: "Status", width: 12 },
29
- { key: "title", label: "Title", width: 14 },
30
- { key: "mission", label: "Mission", width: 30 },
31
- { key: "createdAt", label: "Created", width: 24 },
32
- { key: "id", label: "ID", width: 38 },
33
- ], opts);
34
- }
35
- catch (err) {
36
- handleError(err);
37
- }
38
- });
39
- function printJob(job, opts) {
40
- if (opts.json) {
41
- console.log(JSON.stringify(job, null, 2));
42
- return;
43
- }
44
- console.log(chalk.bold(job.mission));
45
- printDetail(job, [
46
- { key: "id", label: "ID" },
47
- { key: "category", label: "Category" },
48
- { key: "driver", label: "Driver" },
49
- { key: "status", label: "Status" },
50
- { key: "title", label: "Title" },
51
- { key: "formatSpec", label: "Format spec" },
52
- { key: "projectId", label: "Project" },
53
- { key: "attempts", label: "Attempts" },
54
- { key: "error", label: "Error" },
55
- { key: "claimedBy", label: "Claimed by" },
56
- { key: "startedAt", label: "Started" },
57
- { key: "completedAt", label: "Completed" },
58
- { key: "createdAt", label: "Created" },
59
- ], opts);
60
- }
61
- const getCommand = new Command("get")
62
- .description("Get an agent job")
63
- .argument("<id>", "Agent job ID")
64
- .option("--json", "Output as JSON")
65
- .action(async (id, opts) => {
66
- try {
67
- const data = await api.get(`/agent-jobs/${id}`);
68
- printJob(data, opts);
69
- }
70
- catch (err) {
71
- handleError(err);
72
- }
73
- });
74
- function jobPayload(opts) {
75
- const payload = {
76
- category: opts.category,
77
- driver: opts.driver,
78
- mission: opts.mission,
79
- };
80
- if (opts.title !== undefined)
81
- payload.title = opts.title;
82
- if (opts.formatSpec !== undefined)
83
- payload.formatSpec = opts.formatSpec;
84
- if (opts.project !== undefined)
85
- payload.projectId = opts.project;
86
- return payload;
87
- }
88
- const createCommand = new Command("create")
89
- .description("Create an agent job (queued until a worker claims it)")
90
- .requiredOption("--category <category>", "dev | pm")
91
- .requiredOption("--driver <driver>", "claude | codex")
92
- .requiredOption("--mission <text>", "What the agent should do")
93
- .option("--title <text>", "Short human label for the job")
94
- .option("--format-spec <text>", "Expected output format")
95
- .option("--project <projectId>", "Link to a project (UUID, must have a slug)")
96
- .option("--json", "Output as JSON")
97
- .action(async (opts) => {
98
- try {
99
- const data = await api.post("/agent-jobs", jobPayload(opts));
100
- if (opts.json) {
101
- console.log(JSON.stringify(data, null, 2));
102
- }
103
- else {
104
- console.log(chalk.green("✓"), `Agent job created: ${chalk.bold(data.id)}`);
105
- }
106
- }
107
- catch (err) {
108
- handleError(err);
109
- }
110
- });
111
- const startCommand = new Command("start")
112
- .description("Record a run the caller is already performing (born running, claimed by the caller)")
113
- .requiredOption("--category <category>", "dev | pm | upwork")
114
- .requiredOption("--driver <driver>", "claude | codex")
115
- .requiredOption("--mission <text>", "What the run is doing")
116
- .option("--title <text>", "Short human label for the run")
117
- .option("--format-spec <text>", "Expected output format")
118
- .option("--project <projectId>", "Link to a project (UUID)")
119
- .option("--json", "Output as JSON")
120
- .action(async (opts) => {
121
- try {
122
- const data = await api.post("/agent-jobs/start", jobPayload(opts));
123
- if (opts.json) {
124
- console.log(JSON.stringify(data, null, 2));
125
- }
126
- else {
127
- console.log(chalk.green("✓"), `Agent run started: ${chalk.bold(data.id)}`);
128
- }
129
- }
130
- catch (err) {
131
- handleError(err);
132
- }
133
- });
134
- const claimCommand = new Command("claim")
135
- .description("Claim the oldest pending job of a category")
136
- .requiredOption("--category <category>", "dev | pm")
137
- .option("--json", "Output as JSON")
138
- .action(async (opts) => {
139
- try {
140
- const data = await api.post("/agent-jobs/claim", {
141
- category: opts.category,
142
- });
143
- if (opts.json) {
144
- console.log(JSON.stringify(data, null, 2));
145
- return;
146
- }
147
- if (!data) {
148
- console.log(chalk.dim("No pending jobs to claim."));
149
- return;
150
- }
151
- console.log(chalk.green("✓"), `Claimed ${chalk.bold(data.id)}`);
152
- printJob(data, opts);
153
- }
154
- catch (err) {
155
- handleError(err);
156
- }
157
- });
158
- const completeCommand = new Command("complete")
159
- .description("Mark a claimed job complete with a JSON result")
160
- .argument("<id>", "Agent job ID")
161
- .requiredOption("--result <json>", "Result as a JSON object")
162
- .option("--json", "Output as JSON")
163
- .action(async (id, opts) => {
164
- try {
165
- let result;
166
- try {
167
- result = JSON.parse(opts.result);
168
- }
169
- catch {
170
- console.error(chalk.red("✗"), "--result must be valid JSON");
171
- process.exit(1);
172
- }
173
- const data = await api.post(`/agent-jobs/${id}/complete`, {
174
- result,
175
- });
176
- if (opts.json)
177
- console.log(JSON.stringify(data, null, 2));
178
- else
179
- console.log(chalk.green("✓"), "Agent job completed");
180
- }
181
- catch (err) {
182
- handleError(err);
183
- }
184
- });
185
- const failCommand = new Command("fail")
186
- .description("Mark a claimed job failed (requeues until max attempts)")
187
- .argument("<id>", "Agent job ID")
188
- .requiredOption("--error <message>", "Failure reason")
189
- .option("--json", "Output as JSON")
190
- .action(async (id, opts) => {
191
- try {
192
- const data = await api.post(`/agent-jobs/${id}/fail`, {
193
- error: opts.error,
194
- });
195
- if (opts.json)
196
- console.log(JSON.stringify(data, null, 2));
197
- else
198
- console.log(chalk.green("✓"), data.status === "failed" ? "Agent job failed" : "Agent job requeued");
199
- }
200
- catch (err) {
201
- handleError(err);
202
- }
203
- });
204
- export const agentJobCommand = new Command("agent-job")
205
- .description("Manage the external agent work queue")
206
- .addCommand(listCommand)
207
- .addCommand(getCommand)
208
- .addCommand(createCommand)
209
- .addCommand(startCommand)
210
- .addCommand(claimCommand)
211
- .addCommand(completeCommand)
212
- .addCommand(failCommand);
213
- //# sourceMappingURL=agent-jobs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-jobs.js","sourceRoot":"","sources":["../../../src/commands/api/agent-jobs.ts"],"names":[],"mappings":"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"}