@kilogent/runner-dev 0.1.0 → 0.1.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.
- package/README.md +2 -2
- package/dist/cli.js +32 -3
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @kilogent/runner
|
|
2
2
|
|
|
3
|
-
The **runner daemon** for [Lumi Crew](https://
|
|
3
|
+
The **runner daemon** for [Lumi Crew](https://app.kilogent.com) — your agentic organization
|
|
4
4
|
workspace.
|
|
5
5
|
|
|
6
6
|
Crew agents don't run in the cloud. They run **on your machine**, in your checkouts, with your
|
|
@@ -32,7 +32,7 @@ each publishes only a `latest` tag, and a machine changes environment by install
|
|
|
32
32
|
| **Node.js** | 20 or newer |
|
|
33
33
|
| **Claude Code** | the `claude` CLI on your `PATH` ([install](https://claude.com/claude-code)) |
|
|
34
34
|
| **git / gh** | only if your agents work on GitHub repositories |
|
|
35
|
-
| **A Lumi Crew account** | with at least one Ship — [
|
|
35
|
+
| **A Lumi Crew account** | with at least one Ship — [app.kilogent.com](https://app.kilogent.com) |
|
|
36
36
|
|
|
37
37
|
The daemon is a *client*. It signs in as you, and every write it makes is checked server-side
|
|
38
38
|
against your Ship membership. No service-account key ever touches your machine.
|
package/dist/cli.js
CHANGED
|
@@ -549,6 +549,34 @@ var COLLECTIONS = {
|
|
|
549
549
|
* existing is exactly today's behaviour, and there is nothing to backfill (D8).
|
|
550
550
|
*/
|
|
551
551
|
crewConfig: "crewConfig",
|
|
552
|
+
/**
|
|
553
|
+
* ROOT: `crewAdmins/{uid}` — one document per PLATFORM ADMIN, the people who may operate the
|
|
554
|
+
* admin console.
|
|
555
|
+
*
|
|
556
|
+
* DENY-ALL to every client in packages/crew/firestore.rules, in both directions. `crewAdmin`
|
|
557
|
+
* resolves the caller and reads this with the Admin SDK, which bypasses rules — so no browser
|
|
558
|
+
* ever needs a verb here, and a collection nobody may read cannot leak who the operators are.
|
|
559
|
+
*
|
|
560
|
+
* ⚠️ NOT a document inside {@link crewConfig}, which is the obvious home and the wrong one: that
|
|
561
|
+
* collection is readable by any ENROLLED RUNNER, because a machine session fetches the assistant
|
|
562
|
+
* contract with the client SDK. Filing the operator list there would ship it to every customer's
|
|
563
|
+
* daemon.
|
|
564
|
+
*
|
|
565
|
+
* A DOCUMENT PER ADMIN, not an array on one document — granting and revoking are then
|
|
566
|
+
* single-document writes with no read-modify-write race, and each row records who added it.
|
|
567
|
+
* The first one is created in the Firebase console: a callable that could mint the first admin
|
|
568
|
+
* would be a privilege-escalation path open forever for a job that happens once.
|
|
569
|
+
*/
|
|
570
|
+
crewAdmins: "crewAdmins",
|
|
571
|
+
/**
|
|
572
|
+
* ROOT: `adminAudit/{entryId}` — what an admin did, with both sides of the change.
|
|
573
|
+
*
|
|
574
|
+
* Deny-all to clients; read back through `crewAdmin`. Its second job is what earns it a
|
|
575
|
+
* collection: it is the ONLY history `crewConfig/assistant` has. That document is overwritten in
|
|
576
|
+
* place, so without this a bad prompt pushed to every workspace could not be rolled back to the
|
|
577
|
+
* exact text that preceded it.
|
|
578
|
+
*/
|
|
579
|
+
adminAudit: "adminAudit",
|
|
552
580
|
/** `ships/{shipId}/notifications/{id}` — per-member in-app notifications. */
|
|
553
581
|
notifications: "notifications",
|
|
554
582
|
/** `ships/{shipId}/usage_daily/{yyyy-mm-dd}` — token-tracking aggregates. */
|
|
@@ -1141,13 +1169,14 @@ import os from "node:os";
|
|
|
1141
1169
|
import path from "node:path";
|
|
1142
1170
|
|
|
1143
1171
|
// src/version.ts
|
|
1144
|
-
var RUNNER_VERSION = true ? "0.1.
|
|
1172
|
+
var RUNNER_VERSION = true ? "0.1.2" : "0.0.0-dev";
|
|
1145
1173
|
var RUNNER_PACKAGE = true ? "@kilogent/runner-dev" : "@kilogent/runner-dev";
|
|
1146
1174
|
var RUNNER_BIN = true ? "kilogent-runner-dev" : "kilogent-runner-dev";
|
|
1147
1175
|
|
|
1148
1176
|
// src/config.ts
|
|
1149
|
-
var
|
|
1150
|
-
var
|
|
1177
|
+
var IS_DEV_BUILD = RUNNER_PACKAGE.endsWith("-dev");
|
|
1178
|
+
var DEFAULT_PROJECT_ID = IS_DEV_BUILD ? "lumi-afb7d" : "kilogent-crew-prod";
|
|
1179
|
+
var DEFAULT_MCP_URL = IS_DEV_BUILD ? "https://dev.app.kilogent.com/mcp" : "https://app.kilogent.com/mcp";
|
|
1151
1180
|
var LEGACY_DIR_NAME = ".crew-runner";
|
|
1152
1181
|
var DIR_NAME = `.${RUNNER_BIN}`;
|
|
1153
1182
|
var LUMI_DIR_NAME = ".lumi-runner";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kilogent/runner-dev",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
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.",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
],
|
|
14
14
|
"license": "MIT",
|
|
15
15
|
"author": "CodeBridger",
|
|
16
|
-
"homepage": "https://
|
|
16
|
+
"homepage": "https://app.kilogent.com",
|
|
17
17
|
"repository": {
|
|
18
18
|
"type": "git",
|
|
19
19
|
"url": "git+https://github.com/codebridger/lumi.git",
|