@martini-film/cli 0.3.0 → 0.4.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.
Files changed (44) hide show
  1. package/README.md +165 -44
  2. package/dist/api.js +57 -17
  3. package/dist/api.js.map +1 -1
  4. package/dist/approve.js +2 -1
  5. package/dist/approve.js.map +1 -1
  6. package/dist/cli.js +429 -144
  7. package/dist/cli.js.map +1 -1
  8. package/dist/commands/assets.js +141 -25
  9. package/dist/commands/assets.js.map +1 -1
  10. package/dist/commands/call.js +99 -0
  11. package/dist/commands/call.js.map +1 -0
  12. package/dist/commands/context.js +15 -2
  13. package/dist/commands/context.js.map +1 -1
  14. package/dist/commands/files.js +100 -7
  15. package/dist/commands/files.js.map +1 -1
  16. package/dist/commands/guide.js +67 -0
  17. package/dist/commands/guide.js.map +1 -0
  18. package/dist/commands/init.js +196 -0
  19. package/dist/commands/init.js.map +1 -0
  20. package/dist/commands/login.js +37 -6
  21. package/dist/commands/login.js.map +1 -1
  22. package/dist/commands/tools.js +63 -78
  23. package/dist/commands/tools.js.map +1 -1
  24. package/dist/commands/use.js +143 -0
  25. package/dist/commands/use.js.map +1 -0
  26. package/dist/config.js +82 -6
  27. package/dist/config.js.map +1 -1
  28. package/dist/generated/guide.json +104 -0
  29. package/dist/generated/manifest.json +10 -2
  30. package/dist/guideCache.js +204 -0
  31. package/dist/guideCache.js.map +1 -0
  32. package/dist/help.js +375 -32
  33. package/dist/help.js.map +1 -1
  34. package/dist/manifest.js +27 -0
  35. package/dist/manifest.js.map +1 -1
  36. package/dist/manifestCache.js +196 -0
  37. package/dist/manifestCache.js.map +1 -0
  38. package/dist/output.js +210 -28
  39. package/dist/output.js.map +1 -1
  40. package/dist/schema.js +99 -14
  41. package/dist/schema.js.map +1 -1
  42. package/dist/wait.js +31 -1
  43. package/dist/wait.js.map +1 -1
  44. package/package.json +2 -2
@@ -13,6 +13,11 @@ export function defaultDeviceLabel(env = process.env) {
13
13
  export function pendingLoginPath(env = process.env) {
14
14
  return join(dirname(userConfigPath(env)), 'login-pending.json');
15
15
  }
16
+ export const PAIRING_MIN_REMAINING_MS = 120_000;
17
+ const PAIRING_GONE = new Set(['LOGIN_REQUEST_NOT_FOUND', 'LOGIN_REQUEST_EXPIRED']);
18
+ function secondsLeft(expiresAt, now) {
19
+ return Math.max(0, Math.round((new Date(expiresAt).getTime() - now) / 1000));
20
+ }
16
21
  function readPendingLogin(env, apiUrl, now) {
17
22
  const pending = readJsonFile(pendingLoginPath(env));
18
23
  if (!pending || pending.apiUrl !== apiUrl || typeof pending.pollToken !== 'string')
@@ -61,7 +66,7 @@ export const login = {
61
66
  name: 'login',
62
67
  summary: 'Sign in: pair this device through the browser and save a 90-day key',
63
68
  usage: 'martini login [--device <label>] [--profile <name>] [--no-default] [--no-wait] [--timeout <seconds>]',
64
- details: 'Prints a URL and a code. Open the URL, enter the code, approve as you (every organization you belong to — one login for all your work; saved as the profile "account") or for one organization only (saved as a profile named after it); the first profile becomes the default. Tools run as you either way and the project you name decides who is billed; an organization key additionally reaches that organization\'s REST API and is listed in its Settings. The pairing is remembered until it expires (10 minutes), so running martini login again resumes it instead of starting over — after --no-wait, a --timeout, or a shell step that was killed while the person was still approving. An agent therefore runs martini login --no-wait, tells the person the code, and runs martini login again once they have approved.',
69
+ details: 'Prints a URL and a code. Open the URL, enter the code, approve as you (every organization you belong to — one login for all your work; saved as the profile "account") or for one organization only (saved as a profile named after it); the first profile becomes the default. Tools run as you either way and the project you name decides who is billed; an organization key additionally reaches that organization\'s REST API and is listed in its Settings. The pairing is remembered until it expires (10 minutes), so running martini login again resumes it instead of starting over — after --no-wait, a --timeout, or a shell step that was killed while the person was still approving; one with under two minutes left that nobody approved is replaced by a fresh code instead. An agent therefore runs martini login --no-wait, tells the person the code and how long it lasts (expiresInSeconds), and runs martini login again once they have approved.',
65
70
  flags: [
66
71
  {
67
72
  flag: 'device',
@@ -87,10 +92,25 @@ export const login = {
87
92
  const apiUrl = context.config.apiUrl;
88
93
  const stderr = context.output.stderr ?? (text => process.stderr.write(text));
89
94
  let pending = readPendingLogin(env, apiUrl, context.now());
95
+ let collected = null;
96
+ if (pending && new Date(pending.expiresAt).getTime() - context.now() < PAIRING_MIN_REMAINING_MS) {
97
+ const polled = await context.client.pollLogin(pending.pollToken).catch((error) => {
98
+ if (error instanceof CliApiError && PAIRING_GONE.has(error.code))
99
+ return { status: 'expired' };
100
+ throw error;
101
+ });
102
+ if (polled.status === 'pending' || polled.status === 'expired') {
103
+ clearPendingLogin(env);
104
+ pending = null;
105
+ }
106
+ else {
107
+ collected = polled;
108
+ }
109
+ }
90
110
  if (pending) {
91
111
  stderr([
92
112
  '',
93
- ` Resuming the pairing started ${pending.startedAt}:`,
113
+ ` Resuming the pairing started ${pending.startedAt} (${secondsLeft(pending.expiresAt, context.now())} s left):`,
94
114
  ` open ${pending.verificationUrl}`,
95
115
  ` and enter the code ${pending.code}`,
96
116
  '',
@@ -112,12 +132,13 @@ export const login = {
112
132
  writePendingLogin(env, pending);
113
133
  stderr(['', ` Open ${started.verificationUrl}`, ` and enter the code ${started.code}`, ''].join('\n'));
114
134
  }
115
- if (!wantsWait(context, true)) {
135
+ if (!wantsWait(context, true) && !collected) {
116
136
  return {
117
137
  status: 'pending',
118
138
  code: pending.code,
119
139
  verificationUrl: pending.verificationUrl,
120
140
  expiresAt: pending.expiresAt,
141
+ expiresInSeconds: secondsLeft(pending.expiresAt, context.now()),
121
142
  next: 'Approve the code in the browser, then run martini login again to collect the key.',
122
143
  };
123
144
  }
@@ -132,8 +153,10 @@ export const login = {
132
153
  status: 0,
133
154
  });
134
155
  }
135
- await context.sleep(intervalMs);
136
- const polled = await context.client.pollLogin(pending.pollToken);
156
+ if (!collected)
157
+ await context.sleep(intervalMs);
158
+ const polled = collected ?? (await context.client.pollLogin(pending.pollToken));
159
+ collected = null;
137
160
  if (polled.status === 'pending') {
138
161
  if (context.now() > expiry) {
139
162
  clearPendingLogin(env);
@@ -228,7 +251,8 @@ export const whoami = {
228
251
  name: 'whoami',
229
252
  summary: 'Which key this CLI acts as — its scope, organization, and your memberships — and where the config came from',
230
253
  usage: 'martini whoami',
231
- details: 'Result: { scope, organization, organizations, key, apiVersion, apiUrl, projectId, canvasId, runId, configSource }. scope is "user" for an account key (organization is null; organizations lists every one you belong to) or "organization" for a key bound to one.',
254
+ details: 'Result: { scope, organization, organizations, key, apiVersion, apiUrl, projectId, canvasId, runId, configSource, context }. scope is "user" for an account key (organization is null; organizations lists every one you belong to) or "organization" for a key bound to one. projectId and canvasId are what commands here will use; context names the .martini/context.json they came from (martini use), with the project and canvas names, or is null when a flag, a variable, or the profile supplied them.',
255
+ readOnly: true,
232
256
  async run(context) {
233
257
  const me = await context.client.me();
234
258
  return {
@@ -244,6 +268,13 @@ export const whoami = {
244
268
  executionId: context.config.executionId ?? null,
245
269
  workerId: context.config.workerId ?? null,
246
270
  configSource: context.config.source,
271
+ context: context.config.context
272
+ ? {
273
+ file: context.config.context.path,
274
+ projectName: context.config.context.projectName ?? null,
275
+ canvasName: context.config.context.canvasName ?? null,
276
+ }
277
+ : null,
247
278
  };
248
279
  },
249
280
  };
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
@@ -5,46 +5,63 @@ import { tmpdir } from 'node:os';
5
5
  import { join } from 'node:path';
6
6
  import { CLI_VERSION, CliApiError } from '../api.js';
7
7
  import { flagBoolean, flagString } from '../args.js';
8
- import { userConfigPath } from '../config.js';
8
+ import { cacheDir, userConfigPath } from '../config.js';
9
9
  import { SUPERSEDED_BY_COMPOUND } from '../help.js';
10
- import { loadManifest } from '../manifest.js';
11
- import { ArgumentError } from '../schema.js';
12
- import { requireProject } from './context.js';
10
+ import { compareManifests } from '../manifest.js';
11
+ import { ArgumentError, bareAssetId } from '../schema.js';
12
+ import { requireProject, selectedFields } from './context.js';
13
13
  export const tools = {
14
14
  name: 'tools',
15
- summary: 'List the tools this build knows (and warn when the server has a newer manifest)',
16
- usage: 'martini tools [--remote] [--fields tools.name,tools.description]',
17
- details: 'Result: { hash, serverHash, upToDate, tools: [{ name, description, readOnly, requiresActions, supersededBy? }] }. supersededBy names the compound command to prefer (upload, download). upToDate false means the server has tools or arguments this build does not know: pass such arguments with --json, or update with npx @martini-film/cli@latest.',
15
+ summary: "How the server's tool list differs from this build's (--list adds every tool commands run with)",
16
+ usage: 'martini tools [--list] [--refresh] [--remote] [--fields serverOnly,changed,tools.name]',
17
+ details: "Asks the server for its tool list first (one conditional request; MARTINI_MANIFEST_REFRESH=0 skips it) and keeps it in the local cache, so a tool or argument the server added since this build works as a command. Result: { source, hash, serverHash, fetchedAt?, upToDate, serverOnly, buildOnly, changed, count } — a few hundred bytes. --list (or a tools.… path in --fields) adds tools: [{ name, description, readOnly, requiresActions, supersededBy? }], every tool with its description, about 70 KB: ask for it with --fields tools.name when the names are enough, and read one tool with martini <tool> --help. source: cache when commands run with the server's list (fetched at fetchedAt), baked when with this build's. hash: this build's manifest hash; serverHash: the server's for this key. serverOnly: tools the server has that this build lacks; buildOnly: tools this build has that the server does not list for this key (Actions tools without access, or retired ones); changed: tools whose arguments differ. upToDate: true when serverOnly and changed are both empty. Those four and serverHash are null while the server's list is unknown (offline, or MARTINI_MANIFEST_REFRESH=0 with nothing cached). With the list cached, serverOnly and changed already work as commands and flags; npx @martini-film/cli@latest updates the build itself. count is how many tools commands run with; supersededBy names the compound command to prefer (upload, download).",
18
+ readOnly: true,
18
19
  flags: [
20
+ {
21
+ flag: 'list',
22
+ kind: 'boolean',
23
+ description: 'Add tools: every tool commands run with, with its description (large; narrow it with --fields)',
24
+ },
25
+ { flag: 'refresh', kind: 'boolean', description: "Fetch the server's whole tool list, ignoring the cached one" },
19
26
  {
20
27
  flag: 'remote',
21
28
  kind: 'boolean',
22
- description: "Print the server's manifest (full JSON Schemas) instead of this build's list",
29
+ description: "Print the server's manifest (full JSON Schemas) instead of the summary",
23
30
  },
24
31
  ],
25
- examples: ['martini tools --fields upToDate,tools.name'],
32
+ examples: ['martini tools', 'martini tools --fields tools.name', 'martini tools --refresh --fields source,fetchedAt'],
26
33
  async run(context) {
27
- const local = context.manifest;
28
- if (flagBoolean(context.flags, 'remote'))
29
- return context.client.listTools();
30
- let serverHash = null;
31
- try {
32
- serverHash = await context.client.serverManifestHash(local.hash);
33
- }
34
- catch {
35
- serverHash = null;
34
+ const remote = flagBoolean(context.flags, 'remote') === true;
35
+ await context.manifests.refresh({ force: remote || flagBoolean(context.flags, 'refresh') === true });
36
+ if (remote) {
37
+ const known = context.manifests.state;
38
+ return known.server ?? { ...known.manifest, source: known.source };
36
39
  }
40
+ const state = context.manifests.state;
41
+ const diff = state.server ? compareManifests(state.baked, state.server) : null;
42
+ const listed = flagBoolean(context.flags, 'list') === true ||
43
+ selectedFields(context).some(path => path === 'tools' || path.startsWith('tools.'));
37
44
  return {
38
- hash: local.hash,
39
- serverHash,
40
- upToDate: serverHash === null ? null : serverHash === local.hash,
41
- tools: local.tools.map(tool => ({
42
- name: tool.name,
43
- description: tool.description,
44
- readOnly: tool.annotations.readOnlyHint,
45
- requiresActions: tool.requiresActions,
46
- ...(SUPERSEDED_BY_COMPOUND[tool.name] ? { supersededBy: SUPERSEDED_BY_COMPOUND[tool.name] } : {}),
47
- })),
45
+ source: state.source,
46
+ hash: state.baked.hash,
47
+ serverHash: state.server?.hash ?? null,
48
+ ...(state.fetchedAt ? { fetchedAt: state.fetchedAt } : {}),
49
+ upToDate: diff ? diff.serverOnly.length === 0 && diff.changed.length === 0 : null,
50
+ serverOnly: diff?.serverOnly ?? null,
51
+ buildOnly: diff?.buildOnly ?? null,
52
+ changed: diff?.changed ?? null,
53
+ count: state.manifest.tools.length,
54
+ ...(listed
55
+ ? {
56
+ tools: state.manifest.tools.map(tool => ({
57
+ name: tool.name,
58
+ description: tool.description,
59
+ readOnly: tool.annotations.readOnlyHint,
60
+ requiresActions: tool.requiresActions,
61
+ ...(SUPERSEDED_BY_COMPOUND[tool.name] ? { supersededBy: SUPERSEDED_BY_COMPOUND[tool.name] } : {}),
62
+ })),
63
+ }
64
+ : {}),
48
65
  };
49
66
  },
50
67
  };
@@ -54,6 +71,7 @@ export const models = {
54
71
  summary: 'The model catalog (cached for an hour; --refresh to refetch; --query/--capability to narrow)',
55
72
  usage: 'martini models [--query <text>] [--capability <name>] [--detail summary|full] [--refresh]',
56
73
  details: 'get_models with a one-hour local cache per argument set (the catalog is ~10 KB and rarely changes).',
74
+ readOnly: true,
57
75
  flags: [
58
76
  {
59
77
  flag: 'query',
@@ -88,8 +106,8 @@ export const models = {
88
106
  args.capability = capability;
89
107
  if (detail)
90
108
  args.detailLevel = detail;
91
- const cacheDir = join(context.env.XDG_CACHE_HOME || join(context.env.HOME || tmpdir(), '.cache'), 'martini');
92
- const cachePath = join(cacheDir, `models-${Buffer.from(JSON.stringify(args)).toString('base64url')}.json`);
109
+ const directory = cacheDir(context.env);
110
+ const cachePath = join(directory, `models-${Buffer.from(JSON.stringify(args)).toString('base64url')}.json`);
93
111
  if (!flagBoolean(context.flags, 'refresh') && existsSync(cachePath)) {
94
112
  try {
95
113
  const cached = JSON.parse(readFileSync(cachePath, 'utf8'));
@@ -100,7 +118,7 @@ export const models = {
100
118
  }
101
119
  }
102
120
  const result = await context.client.callTool('get_models', args);
103
- mkdirSync(cacheDir, { recursive: true });
121
+ mkdirSync(directory, { recursive: true });
104
122
  writeFileSync(cachePath, JSON.stringify({ fetchedAt: context.now(), result }));
105
123
  return result;
106
124
  },
@@ -179,69 +197,36 @@ export const probe = {
179
197
  continue;
180
198
  }
181
199
  const projectId = requireProject(context);
200
+ const assetId = bareAssetId(target);
182
201
  const link = await context.client.callTool('get_asset_download_url', {
183
202
  projectId,
184
- assetId: target,
203
+ assetId,
185
204
  });
186
205
  const { bytes } = await context.client.fetchBytes(link.downloadUrl);
187
206
  mkdirSync(dir, { recursive: true });
188
- const path = join(dir, link.suggestedFilename ?? target);
207
+ const path = join(dir, link.suggestedFilename ?? assetId);
189
208
  writeFileSync(path, bytes);
190
- reports.push({ ...probeFile(path), assetId: target });
209
+ reports.push({ ...probeFile(path), assetId });
191
210
  }
192
211
  return { reports };
193
212
  },
194
213
  };
195
- const AGENTS_SNIPPET = `## Martini CLI
196
-
197
- Martini is available as the \`martini\` command (every MCP tool is a subcommand; \`martini --help\` lists them,
198
- \`martini <tool> --help\` shows a tool's flags). Prefer it over MCP tool calls for bulk, file, and wait work:
199
-
200
- - \`martini upload <files…> --canvas <id>\` uploads local files as assets in one step.
201
- - \`martini download <asset-id…> --dir out/\` saves completed assets; \`martini probe <path|id>\` measures them.
202
- - \`martini <generation tool> … --wait\` blocks until the asset is ready; \`martini wait <ids…>\` resumes a wait.
203
- - \`martini files pull dir/\` / \`martini files push dir/\` edit project memory files locally with conflict checks.
204
- - Any argument can be JSON: \`--json @args.json\`. Results are JSON on stdout; \`--fields a,b\` trims them; \`--out f\` writes them.
205
- - A wait stops at \`--timeout\` (default 50 s) with exit 4 but still prints the result and the pending ids; resume with \`martini wait <ids…> --timeout N\`, sized to your shell step.
206
- - Tools that quote first (\`generate_nodes\`, \`upscale_assets\`, \`enhance_draft\`): \`--approve --max-olives N\` takes the quote and approves it under the cap in one command; over the cap nothing starts.
207
-
208
- Exit codes: 0 ok · 1 tool error · 2 usage · 3 auth · 4 not ready or timed out · 5 insufficient olives.
209
- `;
210
- export const init = {
211
- name: 'init',
212
- summary: 'Print (or append to AGENTS.md with --write) the snippet that teaches agents to use the CLI',
213
- usage: 'martini init [--write [path]]',
214
- positionals: [{ name: 'path', description: 'With --write: the file to append to (default ./AGENTS.md)' }],
215
- flags: [
216
- {
217
- flag: 'write',
218
- kind: 'boolean',
219
- description: 'Append the snippet to the file instead of printing it (skipped when already present)',
220
- },
221
- ],
222
- async run(context) {
223
- if (flagBoolean(context.flags, 'write')) {
224
- const target = context.positionals[0] ?? join(context.cwd, 'AGENTS.md');
225
- const existing = existsSync(target) ? readFileSync(target, 'utf8') : '';
226
- if (existing.includes('## Martini CLI'))
227
- return { ok: true, path: target, changed: false };
228
- writeFileSync(target, `${existing.trimEnd()}${existing ? '\n\n' : ''}${AGENTS_SNIPPET}`);
229
- return { ok: true, path: target, changed: true };
230
- }
231
- return AGENTS_SNIPPET;
232
- },
233
- };
234
214
  export const version = {
235
215
  name: 'version',
236
- summary: 'The CLI version, the manifest hash it was built from, and the config file paths',
216
+ summary: 'The CLI version, which tool manifest commands run with, and the config file paths',
237
217
  usage: 'martini version',
238
- details: 'Result: { version, manifestHash, tools, userConfig }. martini --version prints the same.',
218
+ readOnly: true,
219
+ details: "Result: { version, manifestSource, manifestHash, cachedManifestHash, fetchedAt?, tools, manifestCache, userConfig }. manifestSource is cache when commands run with the server's tool list cached for this credential (cachedManifestHash, fetched at fetchedAt), baked when with the one this build carries (manifestHash, always this build's). tools counts the list in use; manifestCache is the cache file for this API URL and credential (null for a workflow run key or no key). Reads only local files: martini tools refreshes. martini --version prints the same.",
239
220
  async run(context) {
240
- const manifest = loadManifest();
221
+ const state = context.manifests.state;
241
222
  return {
242
223
  version: CLI_VERSION,
243
- manifestHash: manifest.hash,
244
- tools: manifest.tools.length,
224
+ manifestSource: state.source,
225
+ manifestHash: state.baked.hash,
226
+ cachedManifestHash: state.source === 'cache' ? state.manifest.hash : null,
227
+ ...(state.fetchedAt ? { fetchedAt: state.fetchedAt } : {}),
228
+ tools: state.manifest.tools.length,
229
+ manifestCache: state.cachePath,
245
230
  userConfig: userConfigPath(context.env),
246
231
  };
247
232
  },
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/commands/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/commands/tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,143 @@
1
+ import { CliApiError } from '../api.js';
2
+ import { flagBoolean } from '../args.js';
3
+ import { clearWorkspaceContext, findWorkspaceContext, saveWorkspaceContext } from '../config.js';
4
+ import { ArgumentError } from '../schema.js';
5
+ import { contextFlag } from './context.js';
6
+ const UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
7
+ function pickCanvas(canvases, wanted) {
8
+ const named = (canvas) => (typeof canvas.name === 'string' ? canvas.name : '');
9
+ const matches = canvases.filter(canvas => canvas.id === wanted || named(canvas).toLowerCase() === wanted.trim().toLowerCase());
10
+ if (matches.length === 1)
11
+ return matches[0];
12
+ const listed = canvases.map(canvas => `${named(canvas) || '(unnamed)'} (${String(canvas.id)})`).join(', ');
13
+ throw new ArgumentError(matches.length === 0
14
+ ? `No canvas "${wanted}" in this project. Canvases: ${listed || 'none yet — martini create_canvas makes one'}.`
15
+ : `${matches.length} canvases are named "${wanted}"; pass the id. Canvases: ${listed}.`);
16
+ }
17
+ function projectMatchesOf(error) {
18
+ if (!(error instanceof CliApiError))
19
+ return null;
20
+ try {
21
+ const body = JSON.parse(error.message);
22
+ if (!Array.isArray(body.projectMatches))
23
+ return null;
24
+ return body.projectMatches.filter((match) => typeof match?.id === 'string' && typeof match.name === 'string');
25
+ }
26
+ catch {
27
+ return null;
28
+ }
29
+ }
30
+ async function overviewByName(context, name, select) {
31
+ try {
32
+ return await context.client.callTool('get_board_overview', { projectQuery: name }, { select });
33
+ }
34
+ catch (error) {
35
+ const matches = projectMatchesOf(error);
36
+ if (!matches || matches.length === 0)
37
+ throw error;
38
+ const exact = matches.filter(match => match.name.trim().toLowerCase() === name.trim().toLowerCase());
39
+ if (exact.length === 1) {
40
+ const match = exact[0];
41
+ const overview = await context.client.callTool('get_board_overview', { projectId: match.id }, { select });
42
+ return { ...overview, project: { name: match.name, ...overview.project } };
43
+ }
44
+ const listed = matches
45
+ .map(match => `${match.name} (${match.id}${match.workspace ? `, ${match.workspace}` : ''})`)
46
+ .join(', ');
47
+ throw new ArgumentError(`${matches.length} projects match "${name}"; pass the id. Projects: ${listed}.`, {
48
+ hint: 'martini use <project-id>',
49
+ });
50
+ }
51
+ }
52
+ export const use = {
53
+ name: 'use',
54
+ summary: 'Choose the project and canvas for this directory, so commands stop needing --project and --canvas',
55
+ usage: 'martini use [<project-id|name>] [--canvas <id|name>] [--clear]',
56
+ details: 'Writes .martini/context.json in the working directory (or updates the one already in effect above it): { projectId, projectName, canvasId?, canvasName?, apiUrl }. Every later command run in this directory tree takes its project and canvas from it, under --project / --canvas and MARTINI_PROJECT_ID / MARTINI_CANVAS_ID; it holds no credential and is ignored under another --api-url. A name is matched by get_board_overview; when several projects match, the one called exactly that is used, and otherwise the command lists them so you can pass an id. With one canvas in the project that canvas is chosen; with several, name one with --canvas, or leave it and pass --canvas where a command needs it. Without arguments, prints the context in effect. --clear forgets it. Result: { projectId, projectName, canvasId, canvasName, canvases: [{ id, name }], file }.',
57
+ positionals: [{ name: 'project-id|name', description: 'The project: its id, or its name' }],
58
+ flags: [
59
+ {
60
+ flag: 'canvas',
61
+ kind: 'string',
62
+ value: '<id|name>',
63
+ description: 'The canvas to use with it (default: the only canvas, when the project has one)',
64
+ },
65
+ { flag: 'clear', kind: 'boolean', description: 'Forget the context for this directory' },
66
+ ],
67
+ examples: [
68
+ 'martini use "Harbor film"',
69
+ 'martini use <project-id> --canvas Storyboard',
70
+ 'martini use',
71
+ 'martini use --clear',
72
+ ],
73
+ async run(context) {
74
+ const [wanted, ...extra] = context.positionals;
75
+ if (extra.length > 0) {
76
+ throw new ArgumentError(`Unexpected argument ${JSON.stringify(extra[0])}: martini use takes one project; quote a name that has spaces.`);
77
+ }
78
+ if (flagBoolean(context.flags, 'clear') === true) {
79
+ if (wanted !== undefined)
80
+ throw new ArgumentError('Give either a project or --clear, not both.');
81
+ if (contextFlag(context.flags, 'canvas') !== undefined)
82
+ throw new ArgumentError('Give either --canvas or --clear, not both.');
83
+ return { cleared: clearWorkspaceContext(context.cwd) };
84
+ }
85
+ const found = findWorkspaceContext(context.cwd);
86
+ const current = found &&
87
+ (typeof found.context.apiUrl !== 'string' || found.context.apiUrl.replace(/\/+$/, '') === context.config.apiUrl)
88
+ ? found
89
+ : null;
90
+ const canvasFlag = contextFlag(context.flags, 'canvas');
91
+ if (wanted === undefined && canvasFlag === undefined) {
92
+ if (!current) {
93
+ throw new ArgumentError('No project is set for this directory. Run martini use <project-id|name>.', {
94
+ hint: 'martini get_projects --query "<name>" finds a project; martini create_project makes one.',
95
+ });
96
+ }
97
+ return { ...current.context, file: current.path };
98
+ }
99
+ const target = wanted ?? current?.context.projectId;
100
+ if (!target)
101
+ throw new ArgumentError('Name the project first: martini use <project-id|name> --canvas <id|name>.');
102
+ const select = ['project.id', 'project.name', 'canvases'];
103
+ const overview = wanted === undefined || UUID.test(target)
104
+ ? await context.client.callTool('get_board_overview', { projectId: target }, { select })
105
+ : await overviewByName(context, target, select);
106
+ const projectId = overview.project?.id;
107
+ if (typeof projectId !== 'string' || !projectId) {
108
+ throw new CliApiError(`get_board_overview did not name a project for "${target}".`, {
109
+ code: 'INVALID_RESPONSE',
110
+ status: 0,
111
+ tool: 'get_board_overview',
112
+ });
113
+ }
114
+ const canvases = Object.values(overview.canvases ?? {});
115
+ const canvas = canvasFlag !== undefined ? pickCanvas(canvases, canvasFlag) : canvases.length === 1 ? canvases[0] : undefined;
116
+ const next = {
117
+ projectId,
118
+ ...(typeof overview.project?.name === 'string' ? { projectName: overview.project.name } : {}),
119
+ ...(typeof canvas?.id === 'string' ? { canvasId: canvas.id } : {}),
120
+ ...(typeof canvas?.name === 'string' ? { canvasName: canvas.name } : {}),
121
+ apiUrl: context.config.apiUrl,
122
+ setAt: new Date(context.now()).toISOString(),
123
+ };
124
+ const file = saveWorkspaceContext(context.cwd, next);
125
+ return {
126
+ projectId,
127
+ projectName: next.projectName ?? null,
128
+ canvasId: next.canvasId ?? null,
129
+ canvasName: next.canvasName ?? null,
130
+ canvases: canvases.map(entry => ({ id: entry.id ?? null, name: entry.name ?? null })),
131
+ file,
132
+ ...(canvases.length > 1 && !canvas
133
+ ? {
134
+ note: 'Several canvases: pass --canvas <id|name> here to choose one, or --canvas on the commands that need it.',
135
+ }
136
+ : {}),
137
+ ...(canvases.length === 0
138
+ ? { note: 'No canvas yet: martini create_canvas --name "<name>", then martini use --canvas "<name>".' }
139
+ : {}),
140
+ };
141
+ },
142
+ };
143
+ //# sourceMappingURL=use.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use.js","sourceRoot":"","sources":["../../src/commands/use.ts"],"names":[],"mappings":"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"}