@moxt-ai/mobius 0.0.29 → 0.0.30

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.
@@ -0,0 +1,2 @@
1
+ export declare function executeBotApproveCommand(arguments_: readonly string[], environment: Readonly<NodeJS.ProcessEnv>, parent: AbortSignal): Promise<string>;
2
+ //# sourceMappingURL=bot-approve-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bot-approve-command.d.ts","sourceRoot":"","sources":["../../src/bots/bot-approve-command.ts"],"names":[],"mappings":"AAeA,wBAAsB,wBAAwB,CAC1C,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EACxC,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,MAAM,CAAC,CA8FjB"}
@@ -0,0 +1,78 @@
1
+ import { readdir, realpath } from "node:fs/promises";
2
+ import { dirname, join } from "node:path";
3
+ import { z } from "zod";
4
+ import { WorkspaceDirectoryService } from "../authorization/workspace-directory.js";
5
+ import { resumeMobiusRuntime } from "../pairing/pair-local-machine.js";
6
+ import { readStateDirectory } from "../storage/state-directory.js";
7
+ import { LocalBotAuthorizationError, LocalBotGrantStore } from "./local-bot-grant-store.js";
8
+ const identifier = z.string().regex(/^[a-zA-Z0-9][a-zA-Z0-9._:-]{0,127}$/);
9
+ const argumentsSchema = z.union([
10
+ z.tuple([z.literal("--bot"), identifier]),
11
+ z.tuple([z.literal("--bot"), identifier, z.literal("--channel"), identifier]),
12
+ ]);
13
+ export async function executeBotApproveCommand(arguments_, environment, parent) {
14
+ const parsed = argumentsSchema.safeParse(arguments_);
15
+ if (!parsed.success) {
16
+ throw new LocalBotAuthorizationError("invalid_arguments", "Usage: mobius bot approve --bot <bot-id> [--channel <channel-id>]");
17
+ }
18
+ const [, botId, , requestedChannel] = parsed.data;
19
+ const signal = AbortSignal.any([parent, AbortSignal.timeout(30_000)]);
20
+ signal.throwIfAborted();
21
+ try {
22
+ const stateDirectory = await realpath(readStateDirectory(environment));
23
+ const auditDirectory = await realpath(join(stateDirectory, "audit"));
24
+ if (dirname(auditDirectory) !== stateDirectory) {
25
+ throw new LocalBotAuthorizationError("local_grant_invalid", "The local approval directory is outside the Mobius state directory");
26
+ }
27
+ const channels = [];
28
+ for (const entry of await readdir(auditDirectory, { withFileTypes: true })) {
29
+ signal.throwIfAborted();
30
+ if (!entry.isFile() || !entry.name.endsWith(".sqlite")) {
31
+ continue;
32
+ }
33
+ const channelId = entry.name.slice(0, -7);
34
+ if (!identifier.safeParse(channelId).success ||
35
+ (requestedChannel !== undefined && requestedChannel !== channelId)) {
36
+ continue;
37
+ }
38
+ const databasePath = await realpath(join(auditDirectory, entry.name));
39
+ if (dirname(databasePath) !== auditDirectory) {
40
+ throw new LocalBotAuthorizationError("local_grant_invalid", "The local approval database is outside the Mobius audit directory");
41
+ }
42
+ if (LocalBotGrantStore.containsBot(databasePath, botId)) {
43
+ channels.push(channelId);
44
+ }
45
+ }
46
+ const channelId = channels[0];
47
+ if (channelId === undefined) {
48
+ throw new LocalBotAuthorizationError("bot_not_found", "No saved approval for this Bot was found. Run this command on the machine hosting the Bot.");
49
+ }
50
+ if (channels.length !== 1) {
51
+ throw new LocalBotAuthorizationError("binding_ambiguous", `This Bot has approvals in multiple local channels. Add --channel with the intended channel: ${channels.join(", ")}`);
52
+ }
53
+ const { config } = await resumeMobiusRuntime(channelId, signal, environment);
54
+ signal.throwIfAborted();
55
+ const grants = new LocalBotGrantStore(config.auditDatabasePath);
56
+ try {
57
+ const approval = await grants.reapprove(botId, config.catalog, new WorkspaceDirectoryService(config.bindingId, config.defaultWorkspace), config.bindingId, Date.now(), signal);
58
+ return `Approved Bot ${botId}\nBinding: ${approval.bindingId}\nAgent: ${approval.agentRef}\nWorkspace: ${approval.workspacePath}\nKeep your daemon running and resend your message in the same Chat conversation.\n`;
59
+ }
60
+ finally {
61
+ grants.close();
62
+ }
63
+ }
64
+ catch (cause) {
65
+ parent.throwIfAborted();
66
+ if (signal.aborted) {
67
+ throw new LocalBotAuthorizationError("approval_timeout", "Local Bot approval timed out", { cause });
68
+ }
69
+ if (cause instanceof LocalBotAuthorizationError) {
70
+ throw cause;
71
+ }
72
+ if (cause instanceof Error && "code" in cause && cause.code === "ENOENT") {
73
+ throw new LocalBotAuthorizationError("bot_not_found", "No saved local approval or Runtime connection was found for this Bot", { cause });
74
+ }
75
+ throw new LocalBotAuthorizationError("local_approval_failed", "Local Bot approval failed. Check the saved Runtime connection and local Agent installation.", { cause });
76
+ }
77
+ }
78
+ //# sourceMappingURL=bot-approve-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bot-approve-command.js","sourceRoot":"","sources":["../../src/bots/bot-approve-command.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,14 @@ export declare class LocalBotGrant {
24
24
  }
25
25
  export declare class LocalBotGrantStore {
26
26
  #private;
27
+ static readonly containsBot: (path: string, botId: string) => boolean;
27
28
  constructor(path: string);
29
+ /** Only the local CLI may invoke this explicit approval transition. */
30
+ readonly reapprove: (botId: string, catalog: LocalAgentCatalog, directories: WorkspaceDirectoryService, bindingAuthorityId: string, now: number, signal: AbortSignal) => Promise<{
31
+ readonly bindingId: string;
32
+ readonly workspacePath: string;
33
+ readonly agentRef: string;
34
+ }>;
28
35
  readonly approve: (request: BotExecutionBindingApprovalRequest, catalog: LocalAgentCatalog, directories: WorkspaceDirectoryService, bindingAuthorityId: string, now: number, signal: AbortSignal) => Promise<BotExecutionBindingApprovedEvent>;
29
36
  readonly resolveExecution: (command: BotSessionPromptCommand, catalog: LocalAgentCatalog, directories: WorkspaceDirectoryService, bindingAuthorityId: string, now: number, signal: AbortSignal) => Promise<LocalBotGrant>;
30
37
  readonly recordUnavailable: (request: BotExecutionBindingApprovalRequest, code: string, message: string, now: number) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"local-bot-grant-store.d.ts","sourceRoot":"","sources":["../../src/bots/local-bot-grant-store.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,KAAK,kCAAkC,EACvC,gCAAgC,EAChC,KAAK,uBAAuB,EAC/B,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC/F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AAKzF,qBAAa,0BAA2B,SAAQ,KAAK;IACjD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,YAAY,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,EAIpE;CACJ;AAED,qBAAa,aAAa;IACtB,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,wBAAwB,EAAE,SAAS,MAAM,EAAE,CAAC;IACrD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAE9B,YACI,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,kBAAkB,EAAE,MAAM,EAC1B,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,EACvB,KAAK,EAAE,oBAAoB,EAC3B,mBAAmB,EAAE,MAAM,EAC3B,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,uBAAuB,EAAE,MAAM,EAC/B,wBAAwB,EAAE,SAAS,MAAM,EAAE,EAC3C,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,EAgB1B;CACJ;AA8ED,qBAAa,kBAAkB;;IAG3B,YAAY,IAAI,EAAE,MAAM,EAgCvB;IAED,QAAQ,CAAC,OAAO,YACH,kCAAkC,WAClC,iBAAiB,eACb,yBAAyB,sBAClB,MAAM,OACrB,MAAM,UACH,WAAW,KACpB,OAAO,CAAC,gCAAgC,CAAC,CA8E1C;IAEF,QAAQ,CAAC,gBAAgB,YACZ,uBAAuB,WACvB,iBAAiB,eACb,yBAAyB,sBAClB,MAAM,OACrB,MAAM,UACH,WAAW,KACpB,OAAO,CAAC,aAAa,CAAC,CAiFvB;IAEF,QAAQ,CAAC,iBAAiB,YACb,kCAAkC,QACrC,MAAM,WACH,MAAM,OACV,MAAM,KACZ,IAAI,CASL;IAEF,QAAQ,CAAC,KAAK,QAAO,IAAI,CAEvB;IAEF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAsC9B;IAEF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAQrB;CACL"}
1
+ {"version":3,"file":"local-bot-grant-store.d.ts","sourceRoot":"","sources":["../../src/bots/local-bot-grant-store.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,23 @@ import { createHash, randomUUID } from "node:crypto";
2
2
  import { stat } from "node:fs/promises";
3
3
  import { DatabaseSync } from "node:sqlite";
4
4
  import { BotExecutionBindingApprovedEvent, } from "@moxt-ai/mobius-protocol";
5
+ import { z } from "zod";
5
6
  import { revalidateExecutable } from "../process/executable.js";
6
7
  const LOCAL_BOT_GRANT_LIFETIME_MILLISECONDS = 90 * 24 * 60 * 60 * 1_000;
8
+ const identifier = z.string().regex(/^[a-zA-Z0-9][a-zA-Z0-9._:-]{0,127}$/);
9
+ const savedApprovalSchema = z
10
+ .object({
11
+ local_grant_id: identifier,
12
+ bot_id: identifier,
13
+ binding_id: identifier,
14
+ binding_revision: z.number().int().positive(),
15
+ agent_ref: identifier,
16
+ workspace_ref: z.string().min(1).max(2048),
17
+ revocation_epoch: z.number().int().nonnegative(),
18
+ agent_identity_digest: z.string().regex(/^[a-f0-9]{64}$/),
19
+ workspace_identity_digest: z.string().regex(/^[a-f0-9]{64}$/),
20
+ })
21
+ .readonly();
7
22
  export class LocalBotAuthorizationError extends Error {
8
23
  code;
9
24
  constructor(code, message, options = {}) {
@@ -105,6 +120,21 @@ function parseTargets(encoded) {
105
120
  }
106
121
  export class LocalBotGrantStore {
107
122
  #database;
123
+ static containsBot = (path, botId) => {
124
+ const database = new DatabaseSync(path, { readOnly: true });
125
+ try {
126
+ if (database
127
+ .prepare("SELECT name FROM sqlite_master WHERE type = 'table' AND name = 'local_bot_grants'")
128
+ .get() === undefined) {
129
+ return false;
130
+ }
131
+ return (database.prepare("SELECT local_grant_id FROM local_bot_grants WHERE bot_id = ? LIMIT 1").get(botId) !==
132
+ undefined);
133
+ }
134
+ finally {
135
+ database.close();
136
+ }
137
+ };
108
138
  constructor(path) {
109
139
  this.#database = new DatabaseSync(path);
110
140
  this.#database.exec(`
@@ -138,6 +168,65 @@ export class LocalBotGrantStore {
138
168
  ) STRICT;
139
169
  `);
140
170
  }
171
+ /** Only the local CLI may invoke this explicit approval transition. */
172
+ reapprove = async (botId, catalog, directories, bindingAuthorityId, now, signal) => {
173
+ signal.throwIfAborted();
174
+ if (!identifier.safeParse(botId).success) {
175
+ throw new LocalBotAuthorizationError("invalid_request", "The Bot ID is invalid");
176
+ }
177
+ const row = this.#database
178
+ .prepare("SELECT * FROM local_bot_grants WHERE bot_id = ? ORDER BY binding_revision DESC LIMIT 1")
179
+ .get(botId);
180
+ if (row === undefined) {
181
+ throw new LocalBotAuthorizationError("bot_not_found", "This machine has no saved approval for that Bot");
182
+ }
183
+ const parsed = savedApprovalSchema.safeParse(row);
184
+ if (!parsed.success) {
185
+ throw new LocalBotAuthorizationError("local_grant_invalid", "The saved Bot approval is invalid", {
186
+ cause: parsed.error,
187
+ });
188
+ }
189
+ const saved = parsed.data;
190
+ const agent = catalog.find(saved.agent_ref);
191
+ if (!agent.capabilities.embeddedContextPrompt) {
192
+ throw new LocalBotAuthorizationError("binding_incompatible", "The local Agent cannot apply Bot context");
193
+ }
194
+ const [adapterUnchanged, agentUnchanged] = await Promise.all([
195
+ revalidateExecutable(agent.adapterIdentity),
196
+ revalidateExecutable(agent.agentIdentity),
197
+ ]);
198
+ signal.throwIfAborted();
199
+ if (!adapterUnchanged || !agentUnchanged) {
200
+ throw new LocalBotAuthorizationError("binding_incompatible", "The local Agent executable changed before approval");
201
+ }
202
+ const workspacePath = await directories.resolve(bindingAuthorityId, saved.workspace_ref, signal);
203
+ const workspaceIdentityDigest = await workspaceDigest(workspacePath);
204
+ signal.throwIfAborted();
205
+ this.#database.exec("BEGIN IMMEDIATE");
206
+ try {
207
+ const result = this.#database
208
+ .prepare(`UPDATE local_bot_grants
209
+ SET agent_identity_digest = ?, workspace_identity_digest = ?, workspace_path = ?,
210
+ revoked_at = NULL, expires_at = ?, revocation_epoch = revocation_epoch + 1
211
+ WHERE local_grant_id = ? AND revocation_epoch = ?
212
+ AND agent_identity_digest = ? AND workspace_identity_digest = ?
213
+ AND binding_revision = (SELECT MAX(binding_revision) FROM local_bot_grants WHERE bot_id = ?)`)
214
+ .run(agentDigest(agent), workspaceIdentityDigest, workspacePath, now + LOCAL_BOT_GRANT_LIFETIME_MILLISECONDS, saved.local_grant_id, saved.revocation_epoch, saved.agent_identity_digest, saved.workspace_identity_digest, botId);
215
+ if (result.changes !== 1) {
216
+ throw new LocalBotAuthorizationError("binding_not_approved", "The Bot binding changed during approval; run the command again");
217
+ }
218
+ this.#database
219
+ .prepare(`INSERT INTO audit_events (recorded_at, event, command_id, session_id, details_json)
220
+ VALUES (?, 'bot_binding_locally_reapproved', ?, '', ?)`)
221
+ .run(new Date(now).toISOString(), saved.binding_id, JSON.stringify({ botId, bindingId: saved.binding_id, agentRef: saved.agent_ref }));
222
+ this.#database.exec("COMMIT");
223
+ }
224
+ catch (cause) {
225
+ this.#database.exec("ROLLBACK");
226
+ throw cause;
227
+ }
228
+ return { bindingId: saved.binding_id, workspacePath, agentRef: saved.agent_ref };
229
+ };
141
230
  approve = async (request, catalog, directories, bindingAuthorityId, now, signal) => {
142
231
  signal.throwIfAborted();
143
232
  const existing = this.#database
@@ -1 +1 @@
1
- {"version":3,"file":"local-bot-grant-store.js","sourceRoot":"","sources":["../../src/bots/local-bot-grant-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-bot-grant-store.js","sourceRoot":"","sources":["../../src/bots/local-bot-grant-store.ts"],"names":[],"mappings":"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"}