@lumi.ai/runner 0.3.2 → 0.3.3
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/cli.js +38 -37
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -324,6 +324,40 @@ function memoryBlock(memory) {
|
|
|
324
324
|
` + lines;
|
|
325
325
|
}
|
|
326
326
|
|
|
327
|
+
// ../shared/dist/task.js
|
|
328
|
+
var TASK_STATUS_CATEGORIES = [
|
|
329
|
+
"backlog",
|
|
330
|
+
"todo",
|
|
331
|
+
"in_progress",
|
|
332
|
+
"waiting_approval",
|
|
333
|
+
"review",
|
|
334
|
+
"done",
|
|
335
|
+
"failed"
|
|
336
|
+
];
|
|
337
|
+
var TASK_STATUS_CATEGORY_META = {
|
|
338
|
+
backlog: { label: "Backlog", meaning: "Parked \u2014 not ready to be worked; agents ignore it." },
|
|
339
|
+
todo: { label: "To do", meaning: "Ready to start \u2014 assigning an agent here starts a run." },
|
|
340
|
+
in_progress: { label: "In progress", meaning: "Actively being worked on." },
|
|
341
|
+
waiting_approval: {
|
|
342
|
+
label: "Waiting approval",
|
|
343
|
+
meaning: "Blocked on a captain decision before work can continue."
|
|
344
|
+
},
|
|
345
|
+
review: { label: "Review", meaning: "Work finished but a human must check it." },
|
|
346
|
+
done: { label: "Done", meaning: "Complete \u2014 nothing pending." },
|
|
347
|
+
failed: { label: "Failed", meaning: "Ended unsuccessfully; needs human attention." }
|
|
348
|
+
};
|
|
349
|
+
var DEFAULT_TASK_STATUSES = TASK_STATUS_CATEGORIES.map((category) => ({ id: category, label: TASK_STATUS_CATEGORY_META[category].label, category }));
|
|
350
|
+
function shipTaskStatuses(ship2) {
|
|
351
|
+
const list = ship2?.settings?.taskStatuses;
|
|
352
|
+
return Array.isArray(list) && list.length > 0 ? list : DEFAULT_TASK_STATUSES;
|
|
353
|
+
}
|
|
354
|
+
function statusById(statuses, statusId) {
|
|
355
|
+
return statuses.find((s) => s.id === statusId);
|
|
356
|
+
}
|
|
357
|
+
function firstStatusIn(statuses, category) {
|
|
358
|
+
return statuses.find((s) => s.category === category);
|
|
359
|
+
}
|
|
360
|
+
|
|
327
361
|
// ../shared/dist/riskyAction.js
|
|
328
362
|
var RISKY_ACTIONS = [
|
|
329
363
|
{
|
|
@@ -373,10 +407,11 @@ function autonomyRule(agent) {
|
|
|
373
407
|
return "You have full autonomy (level 3) within your tool list: no action needs approval. Use it carefully \u2014 nothing will stop you.";
|
|
374
408
|
}
|
|
375
409
|
if (agent.autonomy <= 1) {
|
|
376
|
-
return "You are at autonomy level 1 \u2014 DRAFTS ONLY. Produce comments and drafts; do not mark work as done or ready for review, do not create or reassign tasks, and do not push to GitHub. When you need any of that, call approval_request with a short summary and STOP \u2014
|
|
410
|
+
return "You are at autonomy level 1 \u2014 DRAFTS ONLY. Produce comments and drafts; do not mark work as done or ready for review, do not create or reassign tasks, and do not push to GitHub. When you need any of that, call approval_request with a short summary and STOP \u2014 somebody decides, and you will be started again with their answer. " + ASK_GUIDANCE;
|
|
377
411
|
}
|
|
378
|
-
return `You are at autonomy level 2. Work freely, except for these actions, which need
|
|
412
|
+
return `You are at autonomy level 2. Work freely, except for these actions, which need approval: ${named.length ? named.join(", ") : "(none configured)"}. Before any of them, call approval_request with a short summary and STOP \u2014 you will be started again with the answer. ` + ASK_GUIDANCE;
|
|
379
413
|
}
|
|
414
|
+
var ASK_GUIDANCE = "If the task says who should approve \u2014 in its description, or because a particular person owns that area \u2014 name them in the request's `ask` so it reaches them rather than everyone.";
|
|
380
415
|
|
|
381
416
|
// ../shared/dist/runner.js
|
|
382
417
|
var RUNNER_OFFLINE_AFTER_MS = 2 * 60 * 1e3;
|
|
@@ -398,40 +433,6 @@ var SECRET_DOCS = {
|
|
|
398
433
|
runnerKey: "runnerKey"
|
|
399
434
|
};
|
|
400
435
|
|
|
401
|
-
// ../shared/dist/task.js
|
|
402
|
-
var TASK_STATUS_CATEGORIES = [
|
|
403
|
-
"backlog",
|
|
404
|
-
"todo",
|
|
405
|
-
"in_progress",
|
|
406
|
-
"waiting_approval",
|
|
407
|
-
"review",
|
|
408
|
-
"done",
|
|
409
|
-
"failed"
|
|
410
|
-
];
|
|
411
|
-
var TASK_STATUS_CATEGORY_META = {
|
|
412
|
-
backlog: { label: "Backlog", meaning: "Parked \u2014 not ready to be worked; agents ignore it." },
|
|
413
|
-
todo: { label: "To do", meaning: "Ready to start \u2014 assigning an agent here starts a run." },
|
|
414
|
-
in_progress: { label: "In progress", meaning: "Actively being worked on." },
|
|
415
|
-
waiting_approval: {
|
|
416
|
-
label: "Waiting approval",
|
|
417
|
-
meaning: "Blocked on a captain decision before work can continue."
|
|
418
|
-
},
|
|
419
|
-
review: { label: "Review", meaning: "Work finished but a human must check it." },
|
|
420
|
-
done: { label: "Done", meaning: "Complete \u2014 nothing pending." },
|
|
421
|
-
failed: { label: "Failed", meaning: "Ended unsuccessfully; needs human attention." }
|
|
422
|
-
};
|
|
423
|
-
var DEFAULT_TASK_STATUSES = TASK_STATUS_CATEGORIES.map((category) => ({ id: category, label: TASK_STATUS_CATEGORY_META[category].label, category }));
|
|
424
|
-
function shipTaskStatuses(ship2) {
|
|
425
|
-
const list = ship2?.settings?.taskStatuses;
|
|
426
|
-
return Array.isArray(list) && list.length > 0 ? list : DEFAULT_TASK_STATUSES;
|
|
427
|
-
}
|
|
428
|
-
function statusById(statuses, statusId) {
|
|
429
|
-
return statuses.find((s) => s.id === statusId);
|
|
430
|
-
}
|
|
431
|
-
function firstStatusIn(statuses, category) {
|
|
432
|
-
return statuses.find((s) => s.category === category);
|
|
433
|
-
}
|
|
434
|
-
|
|
435
436
|
// ../shared/dist/ship.js
|
|
436
437
|
var DEFAULT_SHIP_SETTINGS = {
|
|
437
438
|
maxChainDepth: 3,
|
|
@@ -532,7 +533,7 @@ function mcpUrl(config2) {
|
|
|
532
533
|
}
|
|
533
534
|
|
|
534
535
|
// src/version.ts
|
|
535
|
-
var RUNNER_VERSION = true ? "0.3.
|
|
536
|
+
var RUNNER_VERSION = true ? "0.3.3" : "0.0.0-dev";
|
|
536
537
|
|
|
537
538
|
// src/auth.ts
|
|
538
539
|
import { signInWithCustomToken } from "firebase/auth";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lumi.ai/runner",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Lumi Crew runner daemon — claims jobs from your Ships and executes them as headless Claude sessions on your own machine.",
|
|
6
6
|
"//name": "The ONLY package in this monorepo published to the public registry, so it is the one that does not follow the internal @lumi/crew-* convention: `@lumi` is not a scope we own, `@lumi.ai` is (the npm org). The workspace DIRECTORY stays packages/crew/runner — renaming the package is not renaming the folder.",
|