grokbox 0.1.0-alpha.8 → 0.1.0-alpha.9
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/README.zh-CN.md +1 -1
- package/dist/index.js +26 -5
- package/package.json +1 -1
- package/skills/core.md +1 -1
package/README.md
CHANGED
|
@@ -10,8 +10,8 @@ This project is not affiliated with or endorsed by Anysphere, Cursor, xAI, or
|
|
|
10
10
|
Grok Bot. Grok Bot, Cursor, and related names identify compatible products and
|
|
11
11
|
remain the property of their respective owners.
|
|
12
12
|
|
|
13
|
-
> **Alpha:** current source is `0.1.0-alpha.
|
|
14
|
-
> `0.1.0-alpha.
|
|
13
|
+
> **Alpha:** current source is `0.1.0-alpha.9`. npm `next` currently points to
|
|
14
|
+
> `0.1.0-alpha.8`; `0.0.1` remains `latest`. Prereleases publish only after
|
|
15
15
|
> release checks and explicitly scoped external acceptance.
|
|
16
16
|
|
|
17
17
|
## What it does
|
package/README.zh-CN.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
本项目与 Anysphere、Cursor、xAI 或 Grok Bot 没有隶属或背书关系。Grok Bot、Cursor 及相关名称仅用于标识兼容产品,其权利归各自所有者。
|
|
8
8
|
|
|
9
|
-
> **Alpha:** 当前源码版本是 `0.1.0-alpha.
|
|
9
|
+
> **Alpha:** 当前源码版本是 `0.1.0-alpha.9`。npm 的 `next` dist-tag 目前指向 `0.1.0-alpha.8`;`0.0.1` 仍是 `latest`。只有通过发布检查及明确范围的外部验收后,才会发布新的预发布版本。
|
|
10
10
|
|
|
11
11
|
## 它能做什么
|
|
12
12
|
|
package/dist/index.js
CHANGED
|
@@ -3474,7 +3474,7 @@ import { fileURLToPath } from "node:url";
|
|
|
3474
3474
|
// package.json
|
|
3475
3475
|
var package_default = {
|
|
3476
3476
|
name: "grokbox",
|
|
3477
|
-
version: "0.1.0-alpha.
|
|
3477
|
+
version: "0.1.0-alpha.9",
|
|
3478
3478
|
packageManager: "bun@1.3.14",
|
|
3479
3479
|
description: "Unofficial CLI and control plane for Grok Bot cloud computers",
|
|
3480
3480
|
license: "MIT",
|
|
@@ -4079,7 +4079,7 @@ var LEAF_COMMANDS = [
|
|
|
4079
4079
|
],
|
|
4080
4080
|
options: options([
|
|
4081
4081
|
{ flags: "--confirm", description: "Confirm credential access/mint", required: true },
|
|
4082
|
-
{ flags: "--reveal-key", description: "Include the
|
|
4082
|
+
{ flags: "--reveal-key", description: "Include the webhook key and routine prompt in stdout" }
|
|
4083
4083
|
], { timeout: true }),
|
|
4084
4084
|
stdin: "none",
|
|
4085
4085
|
table: false,
|
|
@@ -15009,15 +15009,31 @@ async function readSnapshot(client2, agent, timeoutMs) {
|
|
|
15009
15009
|
throw new CliError("gateway_conflict", "Gateway generation changed while reading Routines.");
|
|
15010
15010
|
}
|
|
15011
15011
|
try {
|
|
15012
|
+
const projected = projectNativeRoutines(agent.id, response.result);
|
|
15012
15013
|
return {
|
|
15013
|
-
...
|
|
15014
|
+
...projected,
|
|
15014
15015
|
discovery,
|
|
15015
|
-
authority: authority.authority
|
|
15016
|
+
authority: authority.authority,
|
|
15017
|
+
prompts: nativePrompts(response.result, projected.catalog)
|
|
15016
15018
|
};
|
|
15017
15019
|
} catch (error) {
|
|
15018
15020
|
throw routineCliError(error);
|
|
15019
15021
|
}
|
|
15020
15022
|
}
|
|
15023
|
+
function nativePrompts(value, catalog) {
|
|
15024
|
+
if (!Array.isArray(value)) throw new RoutineError("unsupported_shape");
|
|
15025
|
+
const prompts = /* @__PURE__ */ new Map();
|
|
15026
|
+
for (const raw of value) {
|
|
15027
|
+
if (!isRecord(raw) || typeof raw.id !== "string" || typeof raw.prompt !== "string" || raw.prompt.length < 1 || raw.prompt.includes("\0") || Buffer.byteLength(raw.prompt) > 128 * 1024) {
|
|
15028
|
+
throw new RoutineError("unsupported_shape");
|
|
15029
|
+
}
|
|
15030
|
+
prompts.set(raw.id, raw.prompt);
|
|
15031
|
+
}
|
|
15032
|
+
for (const routine of catalog.routines) {
|
|
15033
|
+
if (!prompts.has(routine.id)) throw new RoutineError("unsupported_shape");
|
|
15034
|
+
}
|
|
15035
|
+
return prompts;
|
|
15036
|
+
}
|
|
15021
15037
|
function findRoutine(snapshot, id) {
|
|
15022
15038
|
let rid;
|
|
15023
15039
|
try {
|
|
@@ -15305,6 +15321,10 @@ async function showWebhookCredential(deps, client2, agentTarget, routineTarget,
|
|
|
15305
15321
|
if (url.protocol !== "https:" || url.username || url.password || url.hash) {
|
|
15306
15322
|
throw new CliError("gateway_internal", "Gateway returned an unsafe webhook URL.");
|
|
15307
15323
|
}
|
|
15324
|
+
const prompt = snapshot.prompts.get(routine.id);
|
|
15325
|
+
if (prompt === void 0) {
|
|
15326
|
+
throw new CliError("gateway_internal", "Gateway returned a Routine without a prompt.");
|
|
15327
|
+
}
|
|
15308
15328
|
const revealKey = raw.revealKey === true;
|
|
15309
15329
|
writeSuccess(deps.stdout, {
|
|
15310
15330
|
schemaVersion: 1,
|
|
@@ -15314,7 +15334,8 @@ async function showWebhookCredential(deps, client2, agentTarget, routineTarget,
|
|
|
15314
15334
|
url: url.toString(),
|
|
15315
15335
|
keyPresent: true,
|
|
15316
15336
|
keyIncluded: revealKey,
|
|
15317
|
-
|
|
15337
|
+
promptIncluded: revealKey,
|
|
15338
|
+
...revealKey ? { key: response.result.key, prompt } : {}
|
|
15318
15339
|
}, discovery);
|
|
15319
15340
|
}
|
|
15320
15341
|
async function deleteRoutine(deps, client2, agentTarget, routineTarget, raw) {
|
package/package.json
CHANGED
package/skills/core.md
CHANGED
|
@@ -72,7 +72,7 @@ Targets accept an exact ID first, then an unambiguous case-insensitive name/titl
|
|
|
72
72
|
`groups list/show/create/update/delete` only own product groups. Membership is only
|
|
73
73
|
`groups members list/add/remove/set`; every member must resolve to a non-group agent and a group
|
|
74
74
|
must retain 1-6 unique members.
|
|
75
|
-
3. **Manage native Routines**: `agents routines list/show` returns bounded metadata only and never emits prompt bodies, credentials, or native paths. Box-local Bots support create/update/enable/disable/delete; create writes a disabled definition and later mutations require `--expect-revision` from a fresh read plus `--confirm`. Temporal Bots are Server-authoritative: list/show, webhook credential, enable/disable, and delete require the bounded Temporal Routine Host bridge; create/update refuse because the current official Temporal contract exposes neither mutation. `agents routines webhook credential <agent> <routine-id> --confirm` hides the key by default; `--reveal-key` is the explicit
|
|
75
|
+
3. **Manage native Routines**: `agents routines list/show` returns bounded metadata only and never emits prompt bodies, credentials, or native paths. Box-local Bots support create/update/enable/disable/delete; create writes a disabled definition and later mutations require `--expect-revision` from a fresh read plus `--confirm`. Temporal Bots are Server-authoritative: list/show, webhook credential, enable/disable, and delete require the bounded Temporal Routine Host bridge; create/update refuse because the current official Temporal contract exposes neither mutation. `agents routines webhook credential <agent> <routine-id> --confirm` returns the webhook URL and hides the key and prompt by default; `--reveal-key` is the explicit boundary that also emits both. `list` and `show` still never emit them. Without the bridge, Temporal reads fail closed instead of reporting the legacy local store. Native writes have no upstream CAS or idempotency guarantee; uncertain writes return `operation_outcome_unknown` and must be reconciled by another read, never automatic replay.
|
|
76
76
|
4. **Search/read transcript**: `history search <query>`, `history tail <target>`, and
|
|
77
77
|
`history thread <target> --root <entry-id>` own transcript access. Object `show` commands do
|
|
78
78
|
not add transcript side projections.
|