@opvs-ai/cli 0.8.2 → 0.11.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.
- package/dist/commands/agent.js +20 -10
- package/dist/commands/agent.js.map +1 -1
- package/dist/commands/auth.js +16 -4
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/comments.js +8 -1
- package/dist/commands/comments.js.map +1 -1
- package/dist/commands/employees.d.ts +28 -0
- package/dist/commands/employees.js +405 -0
- package/dist/commands/employees.js.map +1 -0
- package/dist/commands/metrics.js +2 -2
- package/dist/commands/metrics.js.map +1 -1
- package/dist/commands/projects.js +1 -1
- package/dist/commands/projects.js.map +1 -1
- package/dist/commands/session.js +1 -1
- package/dist/commands/session.js.map +1 -1
- package/dist/commands/tasks.js +31 -14
- package/dist/commands/tasks.js.map +1 -1
- package/dist/commands/views.js +5 -1
- package/dist/commands/views.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/api-url.d.ts +37 -0
- package/dist/lib/api-url.js +42 -0
- package/dist/lib/api-url.js.map +1 -0
- package/dist/lib/pagination.d.ts +33 -0
- package/dist/lib/pagination.js +41 -0
- package/dist/lib/pagination.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,405 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* opvs employees — hire and run AI employees from the terminal.
|
|
3
|
+
*
|
|
4
|
+
* Three tiers, three audiences:
|
|
5
|
+
*
|
|
6
|
+
* customer employees list | get | team | hire | cancel | equip
|
|
7
|
+
* The `/api/v1/employees/*` surface. Brand comes from the token.
|
|
8
|
+
*
|
|
9
|
+
* admin employees admin hires
|
|
10
|
+
* Operator side — the one route 1.1a widened to platform-admin PATs
|
|
11
|
+
* (`employees:admin`) that nothing else on the platform covers.
|
|
12
|
+
*
|
|
13
|
+
* Catalog PROFILE AUTHORING is deliberately absent. It lives in the
|
|
14
|
+
* `@opvs-ai/admin-catalog` marketplace package — see the note above
|
|
15
|
+
* the admin group for why a second face on those routes was removed.
|
|
16
|
+
*
|
|
17
|
+
* persona employees persona get | set | memory-append
|
|
18
|
+
* The brand-scoped Management-API proxy at
|
|
19
|
+
* `/api/v1/agents/personas/{persona_id}/…` (`agents:read|write`).
|
|
20
|
+
* Keyed off a HIRE id — the persona id is resolved for you.
|
|
21
|
+
*
|
|
22
|
+
* One command spends something irreversible and is gated on `--yes` (or an
|
|
23
|
+
* interactive confirm): `hire` takes a plan seat and may bill. It should not be
|
|
24
|
+
* a one-keystroke accident inside an agent loop.
|
|
25
|
+
*/
|
|
26
|
+
import { readFileSync } from "node:fs";
|
|
27
|
+
import { createInterface } from "node:readline";
|
|
28
|
+
import { getEffectiveConfig, createClient } from "@opvs-ai/core";
|
|
29
|
+
import { buildUrl, printResponse, printJson } from "../lib/format.js";
|
|
30
|
+
import { resolveApiUrl } from "../lib/api-url.js";
|
|
31
|
+
// ── Shared helpers ──────────────────────────────────────────────
|
|
32
|
+
/**
|
|
33
|
+
* Pin the API base URL for this invocation.
|
|
34
|
+
*
|
|
35
|
+
* `@opvs-ai/core` reads `OPVS_API_URL || workspace.api_url`, which covers two
|
|
36
|
+
* of the four rungs. Writing the fully-resolved value back into the
|
|
37
|
+
* environment adds the other two — the `--api-url` flag on top, and the public
|
|
38
|
+
* gateway underneath — without every command having to thread a base URL
|
|
39
|
+
* through `createClient`.
|
|
40
|
+
*/
|
|
41
|
+
function applyApiUrl(flagUrl, wsSlug) {
|
|
42
|
+
let workspaceUrl;
|
|
43
|
+
try {
|
|
44
|
+
workspaceUrl = getEffectiveConfig(wsSlug).api_url;
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
// No workspace configured yet. The client will report that itself with a
|
|
48
|
+
// better message than we could here; we only need the URL fallback.
|
|
49
|
+
workspaceUrl = undefined;
|
|
50
|
+
}
|
|
51
|
+
process.env.OPVS_API_URL = resolveApiUrl({ flag: flagUrl, workspaceUrl });
|
|
52
|
+
}
|
|
53
|
+
function fail(err, fallback) {
|
|
54
|
+
const e = err;
|
|
55
|
+
console.error(`Error: ${e.detail || fallback}`);
|
|
56
|
+
process.exit(1);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Gate an irreversible action. `--yes` passes; otherwise we ask, and on a
|
|
60
|
+
* non-interactive stdin (an agent loop, CI, a pipe) we refuse rather than
|
|
61
|
+
* assume consent.
|
|
62
|
+
*/
|
|
63
|
+
async function confirm(prompt, yes) {
|
|
64
|
+
if (yes)
|
|
65
|
+
return true;
|
|
66
|
+
if (!process.stdin.isTTY) {
|
|
67
|
+
console.error(`Refused: ${prompt}\nThis spends something that cannot be undone from here, and stdin is not a terminal. Re-run with --yes to confirm.`);
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
const rl = createInterface({ input: process.stdin, output: process.stderr });
|
|
71
|
+
const answer = await new Promise((resolve) => rl.question(`${prompt} [y/N] `, resolve));
|
|
72
|
+
rl.close();
|
|
73
|
+
return /^y(es)?$/i.test(answer.trim());
|
|
74
|
+
}
|
|
75
|
+
/** Read a file, or exit with a message naming the path that failed. */
|
|
76
|
+
function readFileOrExit(path) {
|
|
77
|
+
try {
|
|
78
|
+
return readFileSync(path, "utf-8");
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
console.error(`Error: cannot read ${path}`);
|
|
82
|
+
process.exit(1);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/*
|
|
86
|
+
* The catalog-profile JSONB shallow-merge helpers (`OBJECT_JSONB_KEYS`,
|
|
87
|
+
* `jsonbKeysNeedingMerge`, `mergeProfilePatch`) and `readJsonOrExit` lived here
|
|
88
|
+
* until 0.10.0. They existed solely to make `admin update` safe against
|
|
89
|
+
* `content_service.update_profile`'s wholesale `SET <col> = $n` replace
|
|
90
|
+
* (AgentCLI LEARNINGS #25 / #32).
|
|
91
|
+
*
|
|
92
|
+
* That hazard did not go away — it moved. `@opvs-ai/admin-catalog` owns
|
|
93
|
+
* `updateProfile` now, so the read-modify-write belongs there, and keeping a
|
|
94
|
+
* second unreferenced copy here would rot out of step with it. LEARNINGS #32
|
|
95
|
+
* remains the record of the trap for whoever maintains that package.
|
|
96
|
+
*/
|
|
97
|
+
/**
|
|
98
|
+
* Persona workspace files, short name → wire segment. Both spellings are
|
|
99
|
+
* accepted so `--file agents` and `--file agents-md` both work.
|
|
100
|
+
*/
|
|
101
|
+
const PERSONA_FILES = {
|
|
102
|
+
soul: "soul",
|
|
103
|
+
agents: "agents-md",
|
|
104
|
+
"agents-md": "agents-md",
|
|
105
|
+
tools: "tools-md",
|
|
106
|
+
"tools-md": "tools-md",
|
|
107
|
+
user: "user-md",
|
|
108
|
+
"user-md": "user-md",
|
|
109
|
+
identity: "identity-md",
|
|
110
|
+
"identity-md": "identity-md",
|
|
111
|
+
heartbeat: "heartbeat-md",
|
|
112
|
+
"heartbeat-md": "heartbeat-md",
|
|
113
|
+
memory: "memory-md",
|
|
114
|
+
"memory-md": "memory-md",
|
|
115
|
+
};
|
|
116
|
+
const PERSONA_FILE_CHOICES = "soul | agents | tools | user | identity | heartbeat | memory";
|
|
117
|
+
export function resolvePersonaFile(name) {
|
|
118
|
+
return PERSONA_FILES[name.trim().toLowerCase()] ?? null;
|
|
119
|
+
}
|
|
120
|
+
const ISO_DATE = /^\d{4}-\d{2}-\d{2}$/;
|
|
121
|
+
/**
|
|
122
|
+
* Map a hire id → its persona id.
|
|
123
|
+
*
|
|
124
|
+
* The persona tier is keyed on `persona_id`, but a human (or an agent reading
|
|
125
|
+
* `team`) has a hire id. A hire that has not finished provisioning has no
|
|
126
|
+
* persona at all, so say that plainly instead of forwarding a `null` into a
|
|
127
|
+
* URL and getting a confusing 404 or 422 back.
|
|
128
|
+
*/
|
|
129
|
+
async function resolvePersonaId(client, hireId) {
|
|
130
|
+
let hire;
|
|
131
|
+
try {
|
|
132
|
+
const res = await client.get(`/api/v1/employees/hires/${hireId}`);
|
|
133
|
+
hire = (await res.json());
|
|
134
|
+
}
|
|
135
|
+
catch (err) {
|
|
136
|
+
return fail(err, `Failed to load hire ${hireId}`);
|
|
137
|
+
}
|
|
138
|
+
const personaId = hire?.persona_id;
|
|
139
|
+
if (typeof personaId !== "string" || !personaId) {
|
|
140
|
+
console.error(`Error: hire ${hireId} has no persona yet (status=${String(hire?.status ?? "unknown")}). ` +
|
|
141
|
+
`Persona files exist only once the hire reaches 'active'.`);
|
|
142
|
+
process.exit(1);
|
|
143
|
+
}
|
|
144
|
+
return personaId;
|
|
145
|
+
}
|
|
146
|
+
// ── Registration ────────────────────────────────────────────────
|
|
147
|
+
export function registerEmployeeCommands(program) {
|
|
148
|
+
const emp = program
|
|
149
|
+
.command("employees")
|
|
150
|
+
.description("Hire and run AI employees — catalog, team, hire, persona");
|
|
151
|
+
const apiUrlFlag = (cmd) => cmd.option("--api-url <url>", "API base URL (overrides OPVS_API_URL and the workspace config)");
|
|
152
|
+
// ══ Customer tier ═════════════════════════════════════════════
|
|
153
|
+
apiUrlFlag(emp
|
|
154
|
+
.command("list")
|
|
155
|
+
.description("Browse the published AI Employee catalog")
|
|
156
|
+
.option("--search <text>", "Keyword match over name, role, and description")
|
|
157
|
+
.option("--category <slug>", "Category slug, e.g. sales")
|
|
158
|
+
.option("--featured", "Only featured employees")
|
|
159
|
+
.option("--min-price <n>", "Lowest monthly price, whole currency units")
|
|
160
|
+
.option("--max-price <n>", "Highest monthly price, whole currency units")
|
|
161
|
+
.option("--limit <n>", "How many to return, 1-100", "25")
|
|
162
|
+
.option("--offset <n>", "How many to skip")).action(async (opts) => {
|
|
163
|
+
const wsSlug = program.opts().workspace;
|
|
164
|
+
applyApiUrl(opts.apiUrl, wsSlug);
|
|
165
|
+
const cfg = getEffectiveConfig(wsSlug);
|
|
166
|
+
try {
|
|
167
|
+
const client = createClient(wsSlug);
|
|
168
|
+
const params = {};
|
|
169
|
+
if (opts.search)
|
|
170
|
+
params.search = opts.search;
|
|
171
|
+
if (opts.category)
|
|
172
|
+
params.category = opts.category;
|
|
173
|
+
if (opts.featured)
|
|
174
|
+
params.featured = "true";
|
|
175
|
+
if (opts.minPrice)
|
|
176
|
+
params.min_price = opts.minPrice;
|
|
177
|
+
if (opts.maxPrice)
|
|
178
|
+
params.max_price = opts.maxPrice;
|
|
179
|
+
if (opts.limit)
|
|
180
|
+
params.limit = opts.limit;
|
|
181
|
+
if (opts.offset)
|
|
182
|
+
params.offset = opts.offset;
|
|
183
|
+
const url = buildUrl("/api/v1/employees/published", params, cfg.format);
|
|
184
|
+
await printResponse(await client.get(url));
|
|
185
|
+
}
|
|
186
|
+
catch (err) {
|
|
187
|
+
fail(err, "Failed to list employees");
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
apiUrlFlag(emp
|
|
191
|
+
.command("get <slug>")
|
|
192
|
+
.description("Read one published employee's full product page (takes the SLUG)")).action(async (slug, opts) => {
|
|
193
|
+
const wsSlug = program.opts().workspace;
|
|
194
|
+
applyApiUrl(opts.apiUrl, wsSlug);
|
|
195
|
+
const cfg = getEffectiveConfig(wsSlug);
|
|
196
|
+
try {
|
|
197
|
+
const client = createClient(wsSlug);
|
|
198
|
+
const url = buildUrl(`/api/v1/employees/${slug}`, undefined, cfg.format);
|
|
199
|
+
await printResponse(await client.get(url));
|
|
200
|
+
}
|
|
201
|
+
catch (err) {
|
|
202
|
+
fail(err, `Failed to get employee ${slug}`);
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
apiUrlFlag(emp
|
|
206
|
+
.command("team")
|
|
207
|
+
.description("List the AI employees this brand has hired")
|
|
208
|
+
.option("--include-inactive", "Include canceled and failed hires")
|
|
209
|
+
.option("--agent-type <type>", "builder | conversational")
|
|
210
|
+
.option("--limit <n>", "How many to return, 1-500", "25")
|
|
211
|
+
.option("--offset <n>", "How many to skip")).action(async (opts) => {
|
|
212
|
+
const wsSlug = program.opts().workspace;
|
|
213
|
+
applyApiUrl(opts.apiUrl, wsSlug);
|
|
214
|
+
const cfg = getEffectiveConfig(wsSlug);
|
|
215
|
+
try {
|
|
216
|
+
const client = createClient(wsSlug);
|
|
217
|
+
const params = {};
|
|
218
|
+
if (opts.includeInactive)
|
|
219
|
+
params.include_inactive = "true";
|
|
220
|
+
if (opts.agentType)
|
|
221
|
+
params.agent_type = opts.agentType;
|
|
222
|
+
if (opts.limit)
|
|
223
|
+
params.limit = opts.limit;
|
|
224
|
+
if (opts.offset)
|
|
225
|
+
params.offset = opts.offset;
|
|
226
|
+
const url = buildUrl("/api/v1/employees/hires", params, cfg.format);
|
|
227
|
+
await printResponse(await client.get(url));
|
|
228
|
+
}
|
|
229
|
+
catch (err) {
|
|
230
|
+
fail(err, "Failed to list your team");
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
apiUrlFlag(emp
|
|
234
|
+
.command("hire <profile-id>")
|
|
235
|
+
.description("Hire an employee onto this brand — SPENDS A PLAN SEAT AND MAY BILL")
|
|
236
|
+
.option("-y, --yes", "Confirm the charge without an interactive prompt")).action(async (profileId, opts) => {
|
|
237
|
+
const wsSlug = program.opts().workspace;
|
|
238
|
+
applyApiUrl(opts.apiUrl, wsSlug);
|
|
239
|
+
if (!(await confirm(`Hire employee ${profileId}? This takes a plan seat and may bill your brand.`, Boolean(opts.yes)))) {
|
|
240
|
+
process.exit(1);
|
|
241
|
+
}
|
|
242
|
+
try {
|
|
243
|
+
const client = createClient(wsSlug);
|
|
244
|
+
const res = await client.post(`/api/v1/employees/${profileId}/hire`, {});
|
|
245
|
+
printJson(await res.json());
|
|
246
|
+
}
|
|
247
|
+
catch (err) {
|
|
248
|
+
fail(err, `Failed to hire ${profileId}`);
|
|
249
|
+
}
|
|
250
|
+
});
|
|
251
|
+
apiUrlFlag(emp
|
|
252
|
+
.command("cancel <hire-id>")
|
|
253
|
+
.description("Cancel a hire at the end of its current period")).action(async (hireId, opts) => {
|
|
254
|
+
const wsSlug = program.opts().workspace;
|
|
255
|
+
applyApiUrl(opts.apiUrl, wsSlug);
|
|
256
|
+
try {
|
|
257
|
+
const client = createClient(wsSlug);
|
|
258
|
+
const res = await client.post(`/api/v1/employees/hires/${hireId}/cancel`, {});
|
|
259
|
+
printJson(await res.json());
|
|
260
|
+
}
|
|
261
|
+
catch (err) {
|
|
262
|
+
fail(err, `Failed to cancel hire ${hireId}`);
|
|
263
|
+
}
|
|
264
|
+
});
|
|
265
|
+
apiUrlFlag(emp
|
|
266
|
+
.command("equip <hire-id>")
|
|
267
|
+
.description("Equip a marketplace package onto a live hire")
|
|
268
|
+
.requiredOption("--package <vendor/name>", 'e.g. "@opvs-ai/profession"')
|
|
269
|
+
.option("--version <version>", "Exact version to install (default: latest published)")).action(async (hireId, opts) => {
|
|
270
|
+
const wsSlug = program.opts().workspace;
|
|
271
|
+
applyApiUrl(opts.apiUrl, wsSlug);
|
|
272
|
+
try {
|
|
273
|
+
const client = createClient(wsSlug);
|
|
274
|
+
const body = { package_ref: opts.package };
|
|
275
|
+
if (opts.version)
|
|
276
|
+
body.version = opts.version;
|
|
277
|
+
const res = await client.post(`/api/v1/employees/hires/${hireId}/equip`, body);
|
|
278
|
+
printJson(await res.json());
|
|
279
|
+
}
|
|
280
|
+
catch (err) {
|
|
281
|
+
fail(err, `Failed to equip ${opts.package} onto hire ${hireId}`);
|
|
282
|
+
}
|
|
283
|
+
});
|
|
284
|
+
// ══ Admin tier (platform operator) ════════════════════════════
|
|
285
|
+
//
|
|
286
|
+
// `admin list | create | update | publish` shipped in 0.9.0 and were removed
|
|
287
|
+
// in 0.10.0. Two independent reasons, either one sufficient:
|
|
288
|
+
//
|
|
289
|
+
// • They DUPLICATE `@opvs-ai/admin-catalog` v1.0.0 — published, installed
|
|
290
|
+
// and active on brand 1, 44 methods including `listProfiles`,
|
|
291
|
+
// `createProfile`, `updateProfile` and `publishProfile` over the very
|
|
292
|
+
// same routes. Two faces on one capability buys a permanent sync tax and
|
|
293
|
+
// divergent guidance — the "namespace ≠ skill" burn this repo has paid
|
|
294
|
+
// before.
|
|
295
|
+
// • They 403 for every agent identity that can exist. `require_content_write`
|
|
296
|
+
// and `require_employees_admin` both gate on `users.user_role = 'admin'`,
|
|
297
|
+
// and BOTH PAT-minting paths hardcode `'client'` (`auth_pat.py:930`,
|
|
298
|
+
// `opvs_pat_provision.py:127`). Verified on production: 48 agent users,
|
|
299
|
+
// zero admin-role. So they promised a capability no agent could use.
|
|
300
|
+
//
|
|
301
|
+
// Widening that identity gap is a platform vendor-identity concern tracked
|
|
302
|
+
// separately (Platform Core `3e590465`) — deliberately NOT worked around here.
|
|
303
|
+
//
|
|
304
|
+
// `hires` STAYS, and the distinction is the point: it is not an admin-catalog
|
|
305
|
+
// method, and it is the only command that returns `comp_reason` and the
|
|
306
|
+
// installed-packages drilldown — the customer tier's `team` carries neither.
|
|
307
|
+
// It is reachable today by the platform-admin humans who hold an admin PAT.
|
|
308
|
+
const admin = emp
|
|
309
|
+
.command("admin")
|
|
310
|
+
.description("Operator side — hires drilldown. Catalog profile authoring lives in the @opvs-ai/admin-catalog marketplace package, not here.");
|
|
311
|
+
apiUrlFlag(admin
|
|
312
|
+
.command("hires <profile-id>")
|
|
313
|
+
.description("List hires of one catalog profile (scoped to your own brand)")).action(async (profileId, opts) => {
|
|
314
|
+
const wsSlug = program.opts().workspace;
|
|
315
|
+
applyApiUrl(opts.apiUrl, wsSlug);
|
|
316
|
+
const cfg = getEffectiveConfig(wsSlug);
|
|
317
|
+
try {
|
|
318
|
+
const client = createClient(wsSlug);
|
|
319
|
+
const url = buildUrl(`/api/v1/employees/${profileId}/hires`, undefined, cfg.format);
|
|
320
|
+
await printResponse(await client.get(url));
|
|
321
|
+
}
|
|
322
|
+
catch (err) {
|
|
323
|
+
fail(err, `Failed to list hires of profile ${profileId}`);
|
|
324
|
+
}
|
|
325
|
+
});
|
|
326
|
+
// ══ Persona tier (workspace files of a hired employee) ════════
|
|
327
|
+
//
|
|
328
|
+
// OpenClaw memory safety, enforced here rather than left to the caller:
|
|
329
|
+
// • only targeted PUTs on named files — never `POST /agents`, which
|
|
330
|
+
// regenerates all 7 workspace files from templates;
|
|
331
|
+
// • daily notes are APPEND-only (`memory-append` POSTs, never PUTs);
|
|
332
|
+
// • one file per invocation, so a bulk pass is a paced loop and not a
|
|
333
|
+
// burst into the Management API's ~30-call rate limit.
|
|
334
|
+
const persona = emp
|
|
335
|
+
.command("persona")
|
|
336
|
+
.description("Read and write a hired employee's workspace files");
|
|
337
|
+
apiUrlFlag(persona
|
|
338
|
+
.command("get <hire-id>")
|
|
339
|
+
.description("Read one workspace file of a hire")
|
|
340
|
+
.requiredOption("--file <name>", PERSONA_FILE_CHOICES)).action(async (hireId, opts) => {
|
|
341
|
+
const wsSlug = program.opts().workspace;
|
|
342
|
+
applyApiUrl(opts.apiUrl, wsSlug);
|
|
343
|
+
const file = resolvePersonaFile(opts.file);
|
|
344
|
+
if (!file) {
|
|
345
|
+
console.error(`Error: unknown --file "${opts.file}". Choose one of: ${PERSONA_FILE_CHOICES}`);
|
|
346
|
+
process.exit(1);
|
|
347
|
+
}
|
|
348
|
+
try {
|
|
349
|
+
const client = createClient(wsSlug);
|
|
350
|
+
const personaId = await resolvePersonaId(client, hireId);
|
|
351
|
+
await printResponse(await client.get(`/api/v1/agents/personas/${personaId}/${file}`));
|
|
352
|
+
}
|
|
353
|
+
catch (err) {
|
|
354
|
+
fail(err, `Failed to read ${opts.file} for hire ${hireId}`);
|
|
355
|
+
}
|
|
356
|
+
});
|
|
357
|
+
apiUrlFlag(persona
|
|
358
|
+
.command("set <hire-id>")
|
|
359
|
+
.description("Replace one workspace file of a hire from a local file")
|
|
360
|
+
.requiredOption("--file <name>", PERSONA_FILE_CHOICES)
|
|
361
|
+
.requiredOption("-f, --from <path>", "Local file whose contents become the new body")).action(async (hireId, opts) => {
|
|
362
|
+
const wsSlug = program.opts().workspace;
|
|
363
|
+
applyApiUrl(opts.apiUrl, wsSlug);
|
|
364
|
+
const file = resolvePersonaFile(opts.file);
|
|
365
|
+
if (!file) {
|
|
366
|
+
console.error(`Error: unknown --file "${opts.file}". Choose one of: ${PERSONA_FILE_CHOICES}`);
|
|
367
|
+
process.exit(1);
|
|
368
|
+
}
|
|
369
|
+
const content = readFileOrExit(opts.from);
|
|
370
|
+
try {
|
|
371
|
+
const client = createClient(wsSlug);
|
|
372
|
+
const personaId = await resolvePersonaId(client, hireId);
|
|
373
|
+
const res = await client.put(`/api/v1/agents/personas/${personaId}/${file}`, {
|
|
374
|
+
content,
|
|
375
|
+
});
|
|
376
|
+
printJson(await res.json());
|
|
377
|
+
}
|
|
378
|
+
catch (err) {
|
|
379
|
+
fail(err, `Failed to write ${opts.file} for hire ${hireId}`);
|
|
380
|
+
}
|
|
381
|
+
});
|
|
382
|
+
apiUrlFlag(persona
|
|
383
|
+
.command("memory-append <hire-id>")
|
|
384
|
+
.description("Append to a hire's daily memory note (append-only — never overwrites)")
|
|
385
|
+
.requiredOption("--date <YYYY-MM-DD>", "Which daily note to append to")
|
|
386
|
+
.requiredOption("-f, --from <path>", "Local file whose contents get appended")).action(async (hireId, opts) => {
|
|
387
|
+
const wsSlug = program.opts().workspace;
|
|
388
|
+
applyApiUrl(opts.apiUrl, wsSlug);
|
|
389
|
+
if (!ISO_DATE.test(opts.date)) {
|
|
390
|
+
console.error(`Error: --date must be YYYY-MM-DD, got "${opts.date}"`);
|
|
391
|
+
process.exit(1);
|
|
392
|
+
}
|
|
393
|
+
const content = readFileOrExit(opts.from);
|
|
394
|
+
try {
|
|
395
|
+
const client = createClient(wsSlug);
|
|
396
|
+
const personaId = await resolvePersonaId(client, hireId);
|
|
397
|
+
const res = await client.post(`/api/v1/agents/personas/${personaId}/memory/${opts.date}`, { content });
|
|
398
|
+
printJson(await res.json());
|
|
399
|
+
}
|
|
400
|
+
catch (err) {
|
|
401
|
+
fail(err, `Failed to append memory for hire ${hireId}`);
|
|
402
|
+
}
|
|
403
|
+
});
|
|
404
|
+
}
|
|
405
|
+
//# sourceMappingURL=employees.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"employees.js","sourceRoot":"","sources":["../../src/commands/employees.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/metrics.js
CHANGED
|
@@ -8,7 +8,7 @@ export function registerMetricsCommands(program) {
|
|
|
8
8
|
metrics
|
|
9
9
|
.command("summary")
|
|
10
10
|
.description("Board summary with KPIs")
|
|
11
|
-
.requiredOption("--board <id>", "Board
|
|
11
|
+
.requiredOption("--board <id>", "Board UUID (full UUID only — this route does not resolve short refs)")
|
|
12
12
|
.option("--days <n>", "Time window in days", "7")
|
|
13
13
|
.action(async (opts) => {
|
|
14
14
|
const wsSlug = program.opts().workspace;
|
|
@@ -97,7 +97,7 @@ export function registerMetricsCommands(program) {
|
|
|
97
97
|
metrics
|
|
98
98
|
.command("distribution")
|
|
99
99
|
.description("Task status distribution (for dashboards/charts)")
|
|
100
|
-
.option("--board <id>", "Board
|
|
100
|
+
.option("--board <id>", "Board UUID (full UUID only — this route does not resolve short refs)")
|
|
101
101
|
.action(async (opts) => {
|
|
102
102
|
const wsSlug = program.opts().workspace;
|
|
103
103
|
const cfg = getEffectiveConfig(wsSlug);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/commands/metrics.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE3D,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC;IAElF,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,yBAAyB,CAAC;SACtC,cAAc,CAAC,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/commands/metrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -66,7 +66,7 @@ export function registerProjectCommands(program) {
|
|
|
66
66
|
.command("create")
|
|
67
67
|
.description("Create an empty project container")
|
|
68
68
|
.requiredOption("-n, --name <name>", "Project name")
|
|
69
|
-
.option("-b, --board <id>", "Initial member board id (
|
|
69
|
+
.option("-b, --board <id>", "Initial member board id, repeatable (full UUID only — board_ids is not on the gateway's ref allowlist)", (val, acc) => {
|
|
70
70
|
acc.push(val);
|
|
71
71
|
return acc;
|
|
72
72
|
}, [])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/commands/projects.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEtE,MAAM,IAAI,GAAG,qCAAqC,CAAC;AAEnD,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,MAAM,QAAQ,GAAG,OAAO;SACrB,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,2DAA2D,CAAC,CAAC;IAE5E,sEAAsE;IACtE,QAAQ;SACL,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,iDAAiD,CAAC;SAC9D,MAAM,CAAC,YAAY,EAAE,+CAA+C,CAAC;SACrE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC;QACxC,MAAM,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,MAAM,GAA2B,EAAE,CAAC;YAC1C,IAAI,IAAI,CAAC,QAAQ;gBAAE,MAAM,CAAC,gBAAgB,GAAG,MAAM,CAAC;YACpD,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,GAA0B,CAAC;YACrC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,IAAI,yBAAyB,EAAE,CAAC,CAAC;YACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,sEAAsE;IACtE,QAAQ;SACL,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,gDAAgD,CAAC;SAC7D,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,EAAE;QAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC;QACxC,MAAM,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,IAAI,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YAC7D,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,GAA0B,CAAC;YACrC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,IAAI,uBAAuB,EAAE,CAAC,CAAC;YAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,sEAAsE;IACtE,qEAAqE;IACrE,+DAA+D;IAC/D,QAAQ;SACL,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,mCAAmC,CAAC;SAChD,cAAc,CAAC,mBAAmB,EAAE,cAAc,CAAC;SACnD,MAAM,CACL,kBAAkB,EAClB,
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/commands/projects.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/session.js
CHANGED
|
@@ -9,7 +9,7 @@ export function registerSessionCommands(program) {
|
|
|
9
9
|
.command("get")
|
|
10
10
|
.description("Get board context (agent session info + assigned tasks)")
|
|
11
11
|
.option("--self", "Show only your own context")
|
|
12
|
-
.option("--board <id>", "Board
|
|
12
|
+
.option("--board <id>", "Board ref or UUID (e.g. OPS)")
|
|
13
13
|
.action(async (opts) => {
|
|
14
14
|
const wsSlug = program.opts().workspace;
|
|
15
15
|
const cfg = getEffectiveConfig(wsSlug);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/commands/session.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE3D,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;IAEhF,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,yDAAyD,CAAC;SACtE,MAAM,CAAC,QAAQ,EAAE,4BAA4B,CAAC;SAC9C,MAAM,CAAC,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/commands/session.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE3D,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;IAEhF,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,yDAAyD,CAAC;SACtE,MAAM,CAAC,QAAQ,EAAE,4BAA4B,CAAC;SAC9C,MAAM,CAAC,cAAc,EAAE,8BAA8B,CAAC;SACtD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC;QACxC,MAAM,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,MAAM,GAAG,GAAG,QAAQ,CAAC,kCAAkC,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;gBAChF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAClC,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC;iBAAM,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACtB,MAAM,GAAG,GAAG,QAAQ,CAAC,wBAAwB,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;gBAClF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAClC,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,QAAQ,CAAC,sBAAsB,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;gBACpE,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAClC,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,GAA0B,CAAC;YACrC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,IAAI,uBAAuB,EAAE,CAAC,CAAC;YAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|