@wirecat/drive-cli 0.7.0 → 0.8.0

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/mcp.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
package/dist/output.d.ts CHANGED
@@ -1,10 +1,5 @@
1
- import type { ItemEnvelope, ListEnvelope } from "@wirecat/cli-base/standards";
1
+ import { type ListBody } from "@wirecat/cli-core/cli";
2
2
  export declare const snakeKeys: (value: unknown, record?: boolean) => unknown;
3
- /** One invocation's standard envelope, shared by CLI output and the MCP executor. */
4
- export declare const answerOf: (value: unknown, context: {
5
- startedAt: number;
6
- runId?: string;
7
- limit?: number;
8
- page?: number;
9
- }) => ItemEnvelope<unknown> | ListEnvelope<unknown>;
3
+ /** A list that is never paged: everything there is, in one answer. */
4
+ export declare const allOf: <T>(items: T[]) => ListBody<T>;
10
5
  //# sourceMappingURL=output.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAQ,MAAM,6BAA6B,CAAA;AAyBnF,eAAO,MAAM,SAAS,UAAW,OAAO,uBAAmB,OAS1D,CAAA;AAED,qFAAqF;AACrF,eAAO,MAAM,QAAQ,UACZ,OAAO,WACL;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,KAC5E,YAAY,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,OAAO,CA8B9C,CAAA"}
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAU,MAAM,uBAAuB,CAAA;AA0B7D,eAAO,MAAM,SAAS,UAAW,OAAO,uBAAmB,OAS1D,CAAA;AAED,sEAAsE;AACtE,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,CAAC,EAAE,KAAG,QAAQ,CAAC,CAAC,CAC0B,CAAA"}
package/dist/output.js CHANGED
@@ -1,5 +1,6 @@
1
- import { randomUUID } from "node:crypto";
2
- // Provider/user dictionaries retain their vocabulary; profile/model names are identifiers.
1
+ import { listOf } from "@wirecat/cli-core/cli";
2
+ // cli-core's snakeKeys has no keep-as-written option yet: provider dictionaries keep Google's spelling and
3
+ // profile/model names are identifiers, so drive keeps its own until cli-core can be told which keys to leave.
3
4
  const VERBATIM = new Set([
4
5
  "frontMatter",
5
6
  "front_matter",
@@ -30,37 +31,6 @@ export const snakeKeys = (value, record = false) => {
30
31
  VERBATIM.has(key) ? item : snakeKeys(item, RECORDS.has(key)),
31
32
  ]));
32
33
  };
33
- /** One invocation's standard envelope, shared by CLI output and the MCP executor. */
34
- export const answerOf = (value, context) => {
35
- const data = snakeKeys(value);
36
- const meta = {
37
- run_id: context.runId ?? randomUUID(),
38
- duration_ms: Math.max(0, Math.round(Date.now() - context.startedAt)),
39
- complete: true,
40
- };
41
- // Rich results (search/context/config) stay together in an item, rather than losing their metadata.
42
- const list = Array.isArray(data)
43
- ? { items: data, has_more: false }
44
- : data &&
45
- typeof data === "object" &&
46
- "items" in data &&
47
- Array.isArray(data.items) &&
48
- Object.keys(data).every((key) => ["items", "has_more", "next_offset"].includes(key))
49
- ? data
50
- : undefined;
51
- if (!list)
52
- return { item: data, meta };
53
- const items = list.items;
54
- const hasMore = "has_more" in list && list.has_more === true;
55
- return {
56
- items,
57
- page: {
58
- mode: "page",
59
- limit: context.limit ?? Math.max(1, items.length),
60
- has_more: hasMore,
61
- ...(hasMore ? { next_page: (context.page ?? 1) + 1 } : {}),
62
- },
63
- meta,
64
- };
65
- };
34
+ /** A list that is never paged: everything there is, in one answer. */
35
+ export const allOf = (items) => listOf("", { items, limit: Math.max(1, items.length), has_more: false });
66
36
  //# sourceMappingURL=output.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAE7D,2GAA2G;AAC3G,8GAA8G;AAC9G,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC;IACvB,aAAa;IACb,cAAc;IACd,mBAAmB;IACnB,UAAU;IACV,SAAS;IACT,YAAY;IACZ,eAAe;IACf,gBAAgB;IAChB,gBAAgB;IAChB,iBAAiB;IACjB,aAAa;IACb,QAAQ;IACR,aAAa;IACb,cAAc;IACd,cAAc;IACd,eAAe;CAChB,CAAC,CAAA;AACF,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAA;AAC9D,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,EAAE,CAC5B,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;AAElG,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAc,EAAE,MAAM,GAAG,KAAK,EAAW,EAAE;IACnE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;IACrE,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,IAAI;QAAE,OAAO,KAAK,CAAA;IAC9E,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;QACzB,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KAC7D,CAAC,CACH,CAAA;AACH,CAAC,CAAA;AAED,sEAAsE;AACtE,MAAM,CAAC,MAAM,KAAK,GAAG,CAAI,KAAU,EAAe,EAAE,CAClD,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AACA,OAAO,EAML,KAAK,YAAY,EAGjB,KAAK,OAAO,EACb,MAAM,mBAAmB,CAAA;AAY1B,OAAO,EAAE,OAAO,EAAsC,MAAM,WAAW,CAAA;AAgBvE,OAAO,EAAE,KAAK,QAAQ,EAAe,MAAM,iBAAiB,CAAA;AAE5D,OAAO,EAAa,KAAK,SAAS,EAAa,MAAM,iBAAiB,CAAA;AAGtE,OAAO,EAAE,KAAK,aAAa,EAAU,KAAK,YAAY,EAA0B,MAAM,YAAY,CAAA;AAalG,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5C,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAA;IACnD,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAA;IACpC,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,GAAG,CAAC,EAAE,SAAS,CAAA;IACf,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACvC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAA;CAC7C;AA0BD,eAAO,MAAM,aAAa,aAAa,cAAc,KAAQ,OAssB5D,CAAA"}
1
+ {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAEA,OAAO,EAML,KAAK,YAAY,EAKjB,KAAK,OAAO,EACb,MAAM,mBAAmB,CAAA;AAc1B,OAAO,EAAE,OAAO,EAAsC,MAAM,WAAW,CAAA;AAgBvE,OAAO,EAAE,KAAK,QAAQ,EAAe,MAAM,iBAAiB,CAAA;AAE5D,OAAO,EAAa,KAAK,SAAS,EAAa,MAAM,iBAAiB,CAAA;AAGtE,OAAO,EAAE,KAAK,aAAa,EAAU,KAAK,YAAY,EAA0B,MAAM,YAAY,CAAA;AAalG,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5C,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAA;IACnD,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAA;IACpC,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,GAAG,CAAC,EAAE,SAAS,CAAA;IACf,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACvC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAA;CAC7C;AAyBD,eAAO,MAAM,aAAa,aAAa,cAAc,KAAQ,OAuuB5D,CAAA"}
package/dist/program.js CHANGED
@@ -1,9 +1,10 @@
1
+ import { randomUUID } from "node:crypto";
1
2
  import { readFileSync, writeFileSync } from "node:fs";
2
3
  import { CliError, createDeadline, createOutputBuffer, createRenderer, fieldsOf, processStreams, projectFields, } from "@wirecat/cli-base";
3
4
  import { annotate, describeOptions, flatten, metaOf } from "@wirecat/cli-base/commands";
4
5
  import { formatSuggestions, suggest } from "@wirecat/cli-base/completion";
5
6
  import { writes } from "@wirecat/cli-base/standards";
6
- import { commandWords, jsonlRecords, liftJson, liftProfile, parseDuration, refuseCommandName, } from "@wirecat/cli-core/cli";
7
+ import { commandWords, itemOf, liftJson, liftProfile, parseDuration, refuseCommandName, renderAnswer, } from "@wirecat/cli-core/cli";
7
8
  import { Command, Help, InvalidArgumentError, Option } from "commander";
8
9
  import { validateRequest } from "./api-contract.js";
9
10
  import { installCatalogCommands } from "./catalog-commands.js";
@@ -15,7 +16,7 @@ import { apiMethod, googleApi } from "./google-api.js";
15
16
  import { installKnowledgeCommands } from "./knowledge-commands.js";
16
17
  import { login } from "./login.js";
17
18
  import { FOLDER, metadataJson, skipJson } from "./model.js";
18
- import { answerOf } from "./output.js";
19
+ import { allOf, snakeKeys } from "./output.js";
19
20
  import { checkPolicy, guardedGoogleWrite, methodPolicyKeys } from "./policy.js";
20
21
  import { lockProfile } from "./profile-lock.js";
21
22
  import { checkProviderJson, checkResultFields, providerJsonFields } from "./provider-json.js";
@@ -40,9 +41,7 @@ const offset = (input) => {
40
41
  throw new InvalidArgumentError("use a nonnegative integer");
41
42
  return n;
42
43
  };
43
- const keepFields = (answer, paths) => "items" in answer
44
- ? { ...answer, items: answer.items.map((item) => projectFields(item, paths)) }
45
- : { ...answer, item: projectFields(answer.item, paths) };
44
+ const eachItem = (body, change) => "items" in body ? { ...body, items: body.items.map(change) } : { ...body, item: change(body.item) };
46
45
  const commandIn = (root, words) => {
47
46
  let at = root;
48
47
  for (const word of words) {
@@ -54,6 +53,8 @@ const commandIn = (root, words) => {
54
53
  }
55
54
  return at === root ? undefined : at;
56
55
  };
56
+ class Preview extends Error {
57
+ }
57
58
  export const createProgram = (options = {}) => {
58
59
  const startedAt = Date.now();
59
60
  const env = options.env ?? process.env;
@@ -68,7 +69,7 @@ export const createProgram = (options = {}) => {
68
69
  .option("--quiet", "suppress optional diagnostics")
69
70
  .option("--debug", "on failure, show the full error record: cause and stack")
70
71
  .option("--timeout <duration>", "whole-command deadline, e.g. 30s", (raw) => parseDuration(raw, "--timeout"))
71
- .option("--max-output-bytes <n>", "largest result to print, in bytes; 0 for no limit", offset, 4 * 1024 * 1024)
72
+ .option("--max-output-bytes <bytes>", "largest result to print, in bytes; 0 for no limit", offset, 4 * 1024 * 1024)
72
73
  .option("--read-only", "refuse local and remote mutations")
73
74
  .option("--offline", "answer only operations that use local cached data")
74
75
  .option("--dry-run", "validate command/policy and preview without acting")
@@ -110,29 +111,35 @@ export const createProgram = (options = {}) => {
110
111
  ...program.opts(),
111
112
  allowDangerous: program.opts().allowDangerous || currentAction?.opts().allowDelete,
112
113
  });
113
- const output = (value) => {
114
- const whole = currentAction?.name() === "commands"
115
- ? undefined
116
- : answerOf(value, { startedAt, limit: currentAction?.opts().limit, page: currentAction?.opts().page });
117
- if (whole && fields && currentAction)
118
- checkResultFields(currentAction, whole, fields);
119
- const answer = whole && fields ? keepFields(whole, fieldsOf(fields)) : whole;
114
+ const runId = randomUUID();
115
+ const print = (render) => {
116
+ const format = program.opts().jsonl
117
+ ? "jsonl"
118
+ : program.opts().json || !process.stdout.isTTY
119
+ ? "json"
120
+ : "pretty";
120
121
  const buffer = createOutputBuffer({ maxOutputBytes: program.opts().maxOutputBytes });
121
- const renderer = createRenderer({
122
- format: program.opts().jsonl ? "jsonl" : program.opts().json || !process.stdout.isTTY ? "json" : "pretty",
123
- color: false,
124
- streams: { ...streams, data: (text) => buffer.data(text) },
125
- quiet: program.opts().quiet === true,
126
- });
127
- if (!answer)
128
- renderer.result(value);
129
- else if (program.opts().jsonl)
130
- for (const record of jsonlRecords(answer))
131
- renderer.result(record);
132
- else
133
- renderer.result(answer);
122
+ const buffered = { ...streams, data: (text) => buffer.data(text) };
123
+ render(createRenderer({ format, color: false, streams: buffered, quiet: program.opts().quiet === true }), format, buffered);
134
124
  buffer.flush((text) => streams.data(text));
135
125
  };
126
+ const output = (body) => {
127
+ const snaked = eachItem(body, (item) => snakeKeys(item));
128
+ const whole = {
129
+ ...snaked,
130
+ meta: {
131
+ run_id: runId,
132
+ duration_ms: Math.max(0, Math.round(Date.now() - startedAt)),
133
+ complete: true,
134
+ ...body.meta,
135
+ },
136
+ };
137
+ if (fields && currentAction)
138
+ checkResultFields(currentAction, whole, fields);
139
+ const paths = fields ? fieldsOf(fields) : undefined;
140
+ const answer = paths ? eachItem(whole, (item) => projectFields(item, paths)) : whole;
141
+ print((renderer, format, buffered) => renderAnswer(currentAction ?? program, { renderer, format, streams: buffered }, answer));
142
+ };
136
143
  const source = async () => {
137
144
  const name = selected();
138
145
  if (options.source)
@@ -161,7 +168,7 @@ export const createProgram = (options = {}) => {
161
168
  .action(async (args) => {
162
169
  if (args.credentialStorage !== "keyring" && args.credentialStorage !== "file")
163
170
  throw new CliError("validation_error", "credential storage is keyring or file");
164
- output(await login({
171
+ output(itemOf(await login({
165
172
  env,
166
173
  profile: selected(),
167
174
  application: application(env, args.clientFile),
@@ -173,18 +180,18 @@ export const createProgram = (options = {}) => {
173
180
  ...(activeSignal ? { signal: activeSignal } : {}),
174
181
  openBrowser: args.browser ? (options.openBrowser ?? (async () => { })) : async () => { },
175
182
  showUrl: (url) => streams.diagnostic(`Open Google sign-in: ${url}\n`),
176
- }));
183
+ })));
177
184
  });
178
185
  examples(session.command("list").description("list the configured profiles; credentials are never printed"), [
179
186
  "drive personal session list",
180
- ]).action(() => output({
187
+ ]).action(() => output(itemOf({
181
188
  scope: "all-configured-profiles",
182
189
  items: Object.entries(readConfig(env).profiles).map(([name, p]) => ({
183
190
  profile: name,
184
191
  selected_folders: p.roots.length,
185
192
  storage: p.storage,
186
193
  })),
187
- }));
194
+ })));
188
195
  examples(session.command("end").description("sign this profile out; imported documents stay"), [
189
196
  "drive personal session end",
190
197
  ]).action(() => {
@@ -194,7 +201,7 @@ export const createProgram = (options = {}) => {
194
201
  credentials(env, profile.storage, options.keyring).remove(name);
195
202
  // Preserve the principal and roots so reauthorization resumes the same source identities.
196
203
  writeConfig(env, config);
197
- output({ profile: name, signed_out: true, cached_data: "retained" });
204
+ output(itemOf({ profile: name, signed_out: true, cached_data: "retained" }));
198
205
  });
199
206
  const folders = program.command("folders").description("choose the Google Drive folders that sync imports");
200
207
  const folderArgument = "folder id or Google Drive URL";
@@ -213,11 +220,11 @@ export const createProgram = (options = {}) => {
213
220
  profile.roots.push(metadata.id);
214
221
  config.profiles[name] = profile;
215
222
  writeConfig(env, config);
216
- output({ id: metadata.id, name: metadata.name, added: true });
223
+ output(itemOf({ id: metadata.id, name: metadata.name, added: true }));
217
224
  });
218
225
  examples(folders.command("list").description("list the folder ids sync imports"), [
219
226
  "drive personal folders list",
220
- ]).action(() => output({ items: activeProfile(env, selected()).roots.map((id) => ({ id })) }));
227
+ ]).action(() => output(allOf(activeProfile(env, selected()).roots.map((id) => ({ id })))));
221
228
  examples(folders
222
229
  .command("remove")
223
230
  .argument("<folder>", folderArgument)
@@ -229,7 +236,7 @@ export const createProgram = (options = {}) => {
229
236
  profile.roots = profile.roots.filter((root) => root !== id);
230
237
  config.profiles[name] = profile;
231
238
  writeConfig(env, config);
232
- output({ id, removed: true });
239
+ output(itemOf({ id, removed: true }));
233
240
  });
234
241
  examples(program
235
242
  .command("sync")
@@ -245,7 +252,7 @@ export const createProgram = (options = {}) => {
245
252
  ...(await sync(remote, index, env, selected(), args.limit, activeSignal, args.rescan)),
246
253
  ...(args.embed ? { embeddings: await index.embed(600) } : {}),
247
254
  }));
248
- output(result);
255
+ output(itemOf(result));
249
256
  if (result.errors.length || result.pending)
250
257
  streams.diagnostic(`${result.pending} source operations remain; run drive ${selected()} sync again\n`);
251
258
  if (result.errors.length)
@@ -259,16 +266,16 @@ export const createProgram = (options = {}) => {
259
266
  const name = selected();
260
267
  const profile = activeProfile(env, name);
261
268
  const state = readState(env, name, profile.principal);
262
- output({
269
+ output(itemOf({
263
270
  profile: name,
264
271
  selected_folders: profile.roots,
265
272
  documents: Object.keys(state.documents).length,
266
273
  pending: state.pending?.jobs.length ?? 0,
267
274
  skipped: state.skipped.map(skipJson),
268
275
  last_sync: state.lastSync ?? null,
269
- coverage: "Google Docs and Markdown/TXT; native export tab fidelity and assets are not verified",
276
+ coverage: "Google Docs/Sheets, PDF/DOCX/XLSX and Markdown/TXT/CSV/TSV; native export layout, tab fidelity and assets are not verified",
270
277
  remote_checked: false,
271
- });
278
+ }));
272
279
  });
273
280
  const documents = program.command("documents").description("read imported documents and Google Docs");
274
281
  const documentArgument = "document id or Google Docs URL";
@@ -277,28 +284,30 @@ export const createProgram = (options = {}) => {
277
284
  "drive personal documents list --tag budget",
278
285
  ])
279
286
  .option("--tag <tag>", "only documents with this tag")
280
- .option("--person <reference>", "only documents linked to this person:<uid> reference")
287
+ .option("--person <uid>", "only documents linked to this person, by uid or person:<uid>")
281
288
  .action(async (args) => {
282
289
  const profile = activeProfile(env, selected());
283
290
  const state = readState(env, selected(), profile.principal);
284
291
  let docs = Object.values(state.documents);
292
+ const filters = {
293
+ ...(args.tag ? { tag: args.tag } : {}),
294
+ ...(args.person ? { person: args.person.startsWith("person:") ? args.person : `person:${args.person}` } : {}),
295
+ };
285
296
  if (args.tag || args.person)
286
297
  docs = await withIndex(async (index) => {
287
298
  if (!index.knowledge)
288
299
  throw new CliError("configuration_error", "index has no shared knowledge adapter");
289
300
  const filtered = [];
290
301
  for (const doc of docs)
291
- if (await index.knowledge.matches(profile.principal, doc.reference, args))
302
+ if (await index.knowledge.matches(profile.principal, doc.reference, filters))
292
303
  filtered.push(doc);
293
304
  return filtered;
294
305
  });
295
- output({
296
- items: docs.map((doc) => ({
297
- ...metadataJson(doc.metadata),
298
- reference: doc.reference,
299
- tabs: doc.tabs,
300
- })),
301
- });
306
+ output(allOf(docs.map((doc) => ({
307
+ ...metadataJson(doc.metadata),
308
+ reference: doc.reference,
309
+ tabs: doc.tabs,
310
+ }))));
302
311
  });
303
312
  const imported = (input) => {
304
313
  const id = fileId(input);
@@ -316,32 +325,32 @@ export const createProgram = (options = {}) => {
316
325
  .argument("<document>", documentArgument)
317
326
  .description("show an imported document's text, tabs and metadata"), ["drive personal documents show DOC_ID"]).action((input) => {
318
327
  const { snapshot } = imported(input);
319
- output({
328
+ output(itemOf({
320
329
  metadata: metadataJson(snapshot.metadata),
321
330
  text: snapshot.text,
322
331
  tabs: snapshot.tabs,
323
332
  ...(snapshot.notRead ? { not_read: snapshot.notRead } : {}),
324
- });
333
+ }));
325
334
  });
326
335
  examples(documents
327
336
  .command("export")
328
337
  .argument("<document>", documentArgument)
329
- .description("write an imported document to a new Markdown file"), ["drive personal documents export DOC_ID --out notes.md"])
330
- .requiredOption("--out <file>", "path of the Markdown file to write; an existing file is refused")
338
+ .description("write an imported document to a new Markdown file"), ["drive personal documents export DOC_ID --output notes.md"])
339
+ .requiredOption("--output <file>", "path of the Markdown file to write; an existing file is refused")
331
340
  .action((input, args) => {
332
341
  const { id, snapshot } = imported(input);
333
342
  try {
334
- writeFileSync(args.out, snapshot.markdown, { flag: "wx", mode: 0o600 });
343
+ writeFileSync(args.output, snapshot.markdown, { flag: "wx", mode: 0o600 });
335
344
  }
336
345
  catch (error) {
337
346
  if (error.code === "EEXIST")
338
- throw new CliError("validation_error", "the output file already exists; choose another --out", {
347
+ throw new CliError("validation_error", "the output file already exists; choose another --output", {
339
348
  reason: "export.exists",
340
- param: "--out",
349
+ param: "--output",
341
350
  });
342
351
  throw error;
343
352
  }
344
- output({ id, path: args.out, format: "markdown" });
353
+ output(itemOf({ id, path: args.output, format: "markdown" }));
345
354
  });
346
355
  examples(program
347
356
  .command("search")
@@ -350,12 +359,12 @@ export const createProgram = (options = {}) => {
350
359
  .option("--limit <n>", "how many results to return", positive, 20)
351
360
  .option("--page <n>", "which page to return", positive, 1)
352
361
  .option("--exact", "match the words exactly: no word forms, no meaning")
353
- .action(async (query, { page, ...args }) => output(await withIndex((index) => index.search(activeProfile(env, selected()).principal, query, {
362
+ .action(async (query, { page, ...args }) => output(itemOf(await withIndex((index) => index.search(activeProfile(env, selected()).principal, query, {
354
363
  ...args,
355
364
  offset: (page - 1) * args.limit,
356
365
  exact: args.exact ?? false,
357
366
  ...(pictureSearch(env, selected()) ? { pictures: true } : {}),
358
- }))));
367
+ })))));
359
368
  installCatalogCommands(program, { env, selected, output, positive, offset, withIndex });
360
369
  installKnowledgeCommands(program, {
361
370
  document: imported,
@@ -407,14 +416,16 @@ export const createProgram = (options = {}) => {
407
416
  throw new CliError("permission_error", "this operation needs Google; --offline was requested", {
408
417
  reason: "offline.refused",
409
418
  });
410
- if (flags.dryRun)
411
- return {
419
+ if (flags.dryRun) {
420
+ output(itemOf({
412
421
  dry_run: true,
413
422
  method,
414
423
  mutates: descriptor.mutates,
415
424
  parameters: params,
416
425
  body_provided: body !== undefined,
417
- };
426
+ }));
427
+ throw new Preview();
428
+ }
418
429
  const act = async () => {
419
430
  try {
420
431
  if (options.api)
@@ -433,7 +444,7 @@ export const createProgram = (options = {}) => {
433
444
  const config = program.command("config").description("read and change settings; credentials are kept apart");
434
445
  examples(config.command("show").description("show the defaults and every profile's settings"), [
435
446
  "drive personal config show",
436
- ]).action(() => output(readConfig(env)));
447
+ ]).action(() => output(itemOf(readConfig(env))));
437
448
  examples(config.command("set").description("set one setting of this profile, or of the defaults"), [
438
449
  "drive personal config set read_only true",
439
450
  `drive personal config set permissions.files '"readonly"' --defaults`,
@@ -483,7 +494,7 @@ export const createProgram = (options = {}) => {
483
494
  else
484
495
  throw new CliError("validation_error", "unknown setting path");
485
496
  writeConfig(env, value);
486
- output({ key, updated: true, scope: args.defaults ? "defaults" : selected() });
497
+ output(itemOf({ key, updated: true, scope: args.defaults ? "defaults" : selected() }));
487
498
  });
488
499
  examples(program.command("complete").description("print a shell completion script, or complete words"), [
489
500
  "drive complete zsh",
@@ -522,7 +533,7 @@ export const createProgram = (options = {}) => {
522
533
  ...(args.baseUrl ? { base_url: args.baseUrl } : {}),
523
534
  };
524
535
  writeConfig(env, config);
525
- output({ purpose: args.purpose, configured: true });
536
+ output(itemOf({ purpose: args.purpose, configured: true }));
526
537
  });
527
538
  const mcp = examples(program.command("mcp").description("serve drive's commands to an agent over MCP on stdio"), [
528
539
  "drive personal mcp",
@@ -533,13 +544,7 @@ export const createProgram = (options = {}) => {
533
544
  .action(async (args) => {
534
545
  const { mcpTools, serveMcp } = await import("./mcp.js");
535
546
  if (args.tools)
536
- output({
537
- items: mcpTools(createProgram, { ...options, env }, selected(), policyFlags()).map(({ name, schema, command }) => ({
538
- name,
539
- input_schema: schema,
540
- effects: command.effects,
541
- })),
542
- });
547
+ output(allOf(mcpTools(createProgram, { ...options, env }, selected(), policyFlags()).map(({ name, schema, command }) => ({ name, input_schema: schema, effects: command.effects }))));
543
548
  else
544
549
  await serveMcp(createProgram, { ...options, env, ...(activeSignal ? { signal: activeSignal } : {}) }, selected(), policyFlags());
545
550
  });
@@ -548,7 +553,7 @@ export const createProgram = (options = {}) => {
548
553
  "drive commands files copy --json",
549
554
  ])
550
555
  .argument("[path...]", "only this command or group, as words")
551
- .action((path) => output(commandsDocument(program, path)));
556
+ .action((path) => print((renderer) => renderer.result(commandsDocument(program, path))));
552
557
  for (const info of flatten(describeDriveProgram(program))) {
553
558
  let command = program;
554
559
  for (const part of info.path)
@@ -607,8 +612,6 @@ export const createProgram = (options = {}) => {
607
612
  state: "beta",
608
613
  });
609
614
  }
610
- class Preview extends Error {
611
- }
612
615
  const pathOf = (command) => {
613
616
  const path = [];
614
617
  for (let at = command; at?.parent; at = at.parent)
@@ -639,8 +642,8 @@ export const createProgram = (options = {}) => {
639
642
  const method = metadata.api_operation ?? rawMethod;
640
643
  if (rawMethod) {
641
644
  const descriptor = apiMethod(rawMethod);
642
- if (descriptor.mutates && !action.opts().allowWrite)
643
- throw new CliError("permission_error", "this method changes Google data; pass --allow-write", {
645
+ if (descriptor.mutates && !action.opts().allowWrites)
646
+ throw new CliError("permission_error", "this method changes Google data; pass --allow-writes", {
644
647
  reason: "write.not-allowed",
645
648
  });
646
649
  if (descriptor.destructive && !action.opts().allowDelete && !flags.allowDangerous)
@@ -660,7 +663,7 @@ export const createProgram = (options = {}) => {
660
663
  path[0] !== "api" &&
661
664
  !NETWORK_GROUPS.includes(path[0] ?? "") &&
662
665
  !["documents get", "documents create", "documents update", "documents history"].includes(words)) {
663
- output({ dry_run: true, command: words, effects: metadata.effects });
666
+ output(itemOf({ dry_run: true, command: words, effects: metadata.effects }));
664
667
  throw new Preview();
665
668
  }
666
669
  if (words === "session start")