@somewhere-tech/cli 0.37.1 → 0.37.3

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.
@@ -1,3 +1,4 @@
1
+ import { callAdvisorRun, consumeAdvisorRun } from '../lib/advisor-runs.js';
1
2
  import { error, printJson } from '../lib/output.js';
2
3
  import { callPlatformHelpTool } from '../lib/platform-tools.js';
3
4
  import { loadConfig } from '../lib/config.js';
@@ -43,19 +44,48 @@ export async function callAnonymousAdvisor(question, context) {
43
44
  throw new Error(`${message}${detail ? ` [${detail}]` : ''}`);
44
45
  }
45
46
  const answer = payload.data?.answer;
47
+ if (!answer && payload.data?.run_id) {
48
+ const run = await consumeAdvisorRun(JSON.stringify(payload.data), message => process.stderr.write(message + '\n'));
49
+ if (run?.incomplete)
50
+ process.exitCode = 1;
51
+ if (run?.answer)
52
+ return run.answer;
53
+ throw new Error('Advisor run remains incomplete. Resume the saved request.');
54
+ }
46
55
  if (!answer)
47
56
  throw new Error('Advisor returned an empty response.');
48
57
  return answer;
49
58
  }
50
59
  export function registerAdvisor(program) {
51
60
  program
52
- .command('advisor <question>')
61
+ .command('advisor [question]')
53
62
  .description('Ask the somewhere.tech platform advisor; login adds linked-project context')
63
+ .option('--async', 'Use the durable Advisor candidate when enabled by the server')
64
+ .option('--resume <request-id>', 'Reconnect to the same saved Advisor request')
65
+ .option('--status <request-id>', 'Read one saved Advisor request status')
66
+ .option('--cancel <request-id>', 'Request cancellation of a saved Advisor run')
54
67
  .option('--json', 'Print the advisor response in a JSON envelope')
55
68
  .option('--file <path>', 'Attach a trimmed, redacted local file as context')
56
69
  .option('--no-context', 'Do not attach the linked project, previous run, or file')
57
70
  .action(async (question, opts) => {
58
71
  try {
72
+ if (opts.async || opts.resume || opts.status || opts.cancel) {
73
+ if ([opts.resume, opts.status, opts.cancel].filter(Boolean).length > 1)
74
+ throw new Error('Use one resume, status or cancel operation.');
75
+ if (opts.file)
76
+ throw new Error('File excerpts are not retained by the durable Advisor candidate. Supply the question and command diagnostics.');
77
+ const config = loadConfig(), localContext = opts.context === false ? undefined : buildAdvisorContext(), context = config?.token && config.temporary !== true ? localContext : anonymousAdvisorContext(localContext);
78
+ const result = await callAdvisorRun({ question, context, requestId: opts.resume ?? opts.status ?? opts.cancel, operation: opts.cancel ? 'cancel' : opts.status ? 'status' : 'resume', wait: !opts.cancel && !opts.status, progress: message => process.stderr.write(message + '\n') });
79
+ if (opts.json)
80
+ printJson(result);
81
+ else
82
+ process.stdout.write((result.answer ?? JSON.stringify(result)) + '\n');
83
+ if (result.incomplete)
84
+ process.exitCode = 1;
85
+ return;
86
+ }
87
+ if (!question)
88
+ throw new Error('Supply a question or a saved request to resume.');
59
89
  const config = loadConfig();
60
90
  const permanentCredential = !!config?.token && config.temporary !== true;
61
91
  const localContext = opts.context === false ? undefined : buildAdvisorContext(opts.file);
@@ -64,12 +94,20 @@ export function registerAdvisor(program) {
64
94
  // Only permanent credentials authorize the authenticated MCP path.
65
95
  // Temporary deploy credentials use the public advisor's IP gate, while
66
96
  // an expired or rejected permanent credential still fails closed here.
67
- const answer = permanentCredential
97
+ let answer = permanentCredential
68
98
  ? await callPlatformHelpTool('advisor', {
69
99
  question,
70
100
  ...(context ? { context } : {}),
71
101
  })
72
102
  : await callAnonymousAdvisor(question, context);
103
+ if (permanentCredential) {
104
+ const run = await consumeAdvisorRun(answer, message => process.stderr.write(message + '\n'));
105
+ if (run) {
106
+ if (run.incomplete)
107
+ process.exitCode = 1;
108
+ answer = run.answer ?? JSON.stringify(run);
109
+ }
110
+ }
73
111
  if (opts.json) {
74
112
  printJson({ question, answer });
75
113
  }
@@ -1 +1 @@
1
- {"version":3,"file":"advisor.js","sourceRoot":"","sources":["../../src/commands/advisor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"advisor.js","sourceRoot":"","sources":["../../src/commands/advisor.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { fetchWithProxy as fetch } from '../lib/http.js';
2
2
  import { once } from 'node:events';
3
3
  import { loadConfig } from '../lib/config.js';
4
- import { dim, error, printJson } from '../lib/output.js';
4
+ import { dim, error, printJson, printJsonError } from '../lib/output.js';
5
5
  import { callPlatformHelpTool } from './advisor.js';
6
6
  // Platform docs from the CLI — works with ZERO credentials (tsk_497b7eeb /
7
7
  // tsk_2ae9dce9 funnel work). The docs are public text URLs on the apex, so an
@@ -49,6 +49,40 @@ const ALIASES = {
49
49
  * page carries its actual canonical body; do not reconstruct topics from
50
50
  * references in the long-form corpus. */
51
51
  const PUBLIC_MANIFEST_PATH = '/docs-manifest.json';
52
+ const DOCS_SECTION_MAX_CHARS = 12000;
53
+ /** Edit distance with a lexical tie-break keeps recovery suggestions stable. */
54
+ function closestMatches(wanted, candidates) {
55
+ const query = wanted.trim().toLowerCase();
56
+ const distance = (candidate) => {
57
+ let row = Array.from({ length: query.length + 1 }, (_, index) => index);
58
+ for (const char of candidate.toLowerCase()) {
59
+ const next = [row[0] + 1];
60
+ for (let index = 1; index <= query.length; index++) {
61
+ next[index] = Math.min(next[index - 1] + 1, row[index] + 1, row[index - 1] + (char === query[index - 1] ? 0 : 1));
62
+ }
63
+ row = next;
64
+ }
65
+ return row[query.length];
66
+ };
67
+ return [...new Set(candidates)].map((id) => ({ id, score: distance(id) }))
68
+ .sort((a, b) => a.score - b.score || (a.id < b.id ? -1 : a.id > b.id ? 1 : 0))
69
+ .slice(0, 3).map(({ id }) => id);
70
+ }
71
+ function commandArg(value) {
72
+ return /^[a-zA-Z0-9._-]+$/.test(value) ? value : `'${value.replace(/'/g, "'\\''")}'`;
73
+ }
74
+ function reportDocsFailure(failure, json, topic) {
75
+ if (json) {
76
+ printJsonError(failure.error, failure.message, {
77
+ topic, hint: failure.hint, ...(failure.matches ? { matches: failure.matches } : {}),
78
+ });
79
+ }
80
+ else {
81
+ error(failure.message);
82
+ console.error(failure.hint);
83
+ }
84
+ process.exitCode = 1;
85
+ }
52
86
  function parseSections(value, bodyLength) {
53
87
  if (!Array.isArray(value))
54
88
  return undefined;
@@ -56,43 +90,60 @@ function parseSections(value, bodyLength) {
56
90
  if (!entry || typeof entry !== 'object')
57
91
  return false;
58
92
  const candidate = entry;
59
- return typeof candidate.id === 'string' && typeof candidate.heading === 'string'
93
+ return typeof candidate.id === 'string' && candidate.id.trim().length > 0
94
+ && typeof candidate.heading === 'string' && candidate.heading.trim().length > 0
60
95
  && Number.isInteger(candidate.start) && Number.isInteger(candidate.end)
61
96
  && candidate.start >= 0 && candidate.start < candidate.end
62
97
  && candidate.end <= bodyLength;
63
98
  });
64
99
  return sections.map(({ id, heading, start, end }) => ({ id, heading, start, end }));
65
100
  }
66
- /** Public-manifest rendering of the docs views. Older manifests carry only
67
- * `body`, so every view falls back to the complete page rather than to less. */
101
+ /** Render indexed public views without expanding a failed section request. */
68
102
  export function renderPublicDocsView(page, view) {
69
- const full = renderPublicPage(page);
70
103
  if (view.kind === 'full')
71
- return { content: full, view: 'full', complete: true };
104
+ return { content: renderPublicPage(page), view: 'full', complete: true };
72
105
  if (view.kind === 'default') {
73
106
  return page.summary
74
107
  ? { content: withNewline(page.summary), view: 'summary', complete: page.summary_complete === true }
75
- : { content: full, view: 'full', complete: true };
108
+ : { content: renderPublicPage(page), view: 'full', complete: true };
76
109
  }
77
- if (!page.sections) {
78
- return {
79
- content: full,
80
- view: 'full',
81
- complete: true,
82
- notice: `This docs version has no section index; printed all of "${page.id}".`,
83
- };
110
+ const sections = parseSections(page.sections, page.body.length);
111
+ const fail = (failure) => ({
112
+ content: '', view: 'section', complete: false, failure,
113
+ });
114
+ if (!sections?.length) {
115
+ return fail({
116
+ error: 'DOCS_SECTION_INDEX_UNAVAILABLE',
117
+ message: `No usable section index for "${page.id}".`,
118
+ hint: `Run: somewhere docs ${commandArg(page.id)} --full`,
119
+ });
84
120
  }
85
- const wanted = view.id.trim().toLowerCase();
86
- const match = page.sections.find((section) => section.id.toLowerCase() === wanted || headingText(section).toLowerCase() === wanted);
121
+ const wanted = view.id.trim().replace(/^#+\s*/, '').toLowerCase();
122
+ const match = sections.find((section) => section.id.toLowerCase() === wanted)
123
+ ?? sections.find((section) => headingText(section).toLowerCase() === wanted);
87
124
  if (!match) {
88
- const index = page.sections.map((section) => ` ${section.id} · ${headingText(section)}`).join('\n');
125
+ const matches = closestMatches(wanted, sections.map(({ id }) => id));
126
+ return fail({
127
+ error: 'DOCS_SECTION_NOT_FOUND',
128
+ message: `No section "${view.id}" in ${page.id}. Closest sections: ${matches.join(', ')}.`,
129
+ matches,
130
+ hint: `Run: somewhere docs ${commandArg(page.id)} --section ${commandArg(matches[0])}`,
131
+ });
132
+ }
133
+ const text = page.body.slice(match.start, match.end);
134
+ const children = sections.filter((section) => section.start > match.start && section.end <= match.end)
135
+ .sort((a, b) => a.start - b.start);
136
+ if (text.trimEnd().length > DOCS_SECTION_MAX_CHARS && children.length > 0) {
137
+ const kilo = (chars) => chars < 1000 ? `${chars}` : `${(chars / 1000).toFixed(1)}k`;
138
+ const lead = page.body.slice(match.start, children[0].start).trimEnd();
139
+ const index = children.map((section) => `- ${section.id} · ${kilo(section.end - section.start)}`).join('\n');
89
140
  return {
90
- content: `No section "${view.id}" in ${page.id}. Sections:\n${index}\n`,
91
- view: 'section',
92
- complete: false,
141
+ content: `${lead}\n\nThis section is ${kilo(text.trimEnd().length)} chars; its subsections (id · size):\n`
142
+ + `${index}\n\nOne subsection: somewhere docs ${commandArg(page.id)} --section <id>\n`,
143
+ view: 'section', complete: false,
93
144
  };
94
145
  }
95
- return { content: withNewline(page.body.slice(match.start, match.end)), view: 'section', complete: false };
146
+ return { content: withNewline(text), view: 'section', complete: false };
96
147
  }
97
148
  /** The platform prefixes docs tool responses with
98
149
  * `[docs] topic=<t> view=<v> complete=<bool> ...`; older platforms do not. */
@@ -252,8 +303,11 @@ export function registerDocs(program) {
252
303
  : ALIASES[requestedTopic.toLowerCase()];
253
304
  const entry = key ? TOPICS[key] : undefined;
254
305
  if (entry && view.kind === 'section') {
255
- error(`"${requestedTopic}" is a whole-file quick link without sections. Run: somewhere docs --list`);
256
- process.exitCode = 1;
306
+ reportDocsFailure({
307
+ error: 'DOCS_SECTION_INDEX_UNAVAILABLE',
308
+ message: `"${requestedTopic}" is a whole-file quick link without sections.`,
309
+ hint: `Run: somewhere docs ${commandArg(key ?? requestedTopic)} --full`,
310
+ }, opts.json === true, requestedTopic);
257
311
  return;
258
312
  }
259
313
  if (!entry) {
@@ -270,8 +324,9 @@ export function registerDocs(program) {
270
324
  ...(view.kind === 'section' ? { section: view.id } : {}),
271
325
  });
272
326
  const status = parseDocsStatusLine(content);
273
- if (view.kind === 'section' && !status.view) {
274
- console.error(dim(`This platform version does not support sections yet; printed all of "${requestedTopic}".`));
327
+ if (/^Topic "[^\n]*" not found\./.test(content)
328
+ || (view.kind === 'section' && (status.view !== 'section' || /(?:^|\n)No section "/.test(content)))) {
329
+ throw new Error('Authenticated docs did not return the requested view; trying the public index.');
275
330
  }
276
331
  if (opts.json)
277
332
  printJson({ topic: requestedTopic, ...status, content });
@@ -288,8 +343,10 @@ export function registerDocs(program) {
288
343
  const page = pages.find(({ id }) => id.toLowerCase() === requestedTopic.toLowerCase());
289
344
  if (page) {
290
345
  const rendered = renderPublicDocsView(page, view);
291
- if (rendered.notice)
292
- console.error(dim(rendered.notice));
346
+ if (rendered.failure) {
347
+ reportDocsFailure(rendered.failure, opts.json === true, page.id);
348
+ return;
349
+ }
293
350
  if (opts.json) {
294
351
  printJson({
295
352
  topic: page.id,
@@ -306,11 +363,18 @@ export function registerDocs(program) {
306
363
  }
307
364
  return;
308
365
  }
309
- const known = pages.map(({ id }) => id);
310
- error(`No documentation topic named "${requestedTopic}".`
311
- + (known.length ? ` Topics: ${known.join(', ')}.` : '')
312
- + ' Or run: somewhere docs --list');
313
- process.exitCode = 1;
366
+ const matches = closestMatches(requestedTopic, pages.map(({ id }) => id));
367
+ const question = /\s|\?/.test(requestedTopic);
368
+ const advisorQuestion = requestedTopic.replace(/[\\"$`]/g, '\\$&');
369
+ reportDocsFailure({
370
+ error: 'DOCS_TOPIC_NOT_FOUND',
371
+ message: `No documentation topic named "${requestedTopic}".`
372
+ + (matches.length ? ` Closest topics: ${matches.join(', ')}.` : ''),
373
+ matches,
374
+ hint: question
375
+ ? `For a construction question, run: somewhere advisor "${advisorQuestion}"`
376
+ : matches.length ? `Run: somewhere docs ${commandArg(matches[0])}` : 'Run: somewhere docs --list',
377
+ }, opts.json === true, requestedTopic);
314
378
  }
315
379
  catch (e) {
316
380
  const publicFailure = e instanceof Error ? e.message : String(e);
@@ -1 +1 @@
1
- {"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ import { randomBytes, randomUUID } from 'node:crypto';
2
+ import { chmodSync, existsSync, mkdirSync, readFileSync, renameSync, writeFileSync } from 'node:fs';
3
+ import { join } from 'node:path';
4
+ import { cliConfigDir, loadConfig } from './config.js';
5
+ import { fetchWithProxy } from './http.js';
6
+ import { redactAdvisorText } from './advisor-context.js';
7
+ const directory = () => join(cliConfigDir(), 'advisor-runs');
8
+ function path(id) { if (!/^[a-f0-9-]{36}$/i.test(id))
9
+ throw Error('Invalid Advisor request ID.'); return join(directory(), id + '.json'); }
10
+ function save(record) { mkdirSync(directory(), { recursive: true, mode: 0o700 }); chmodSync(directory(), 0o700); const target = path(record.request_id), temporary = target + '.' + randomUUID() + '.tmp'; writeFileSync(temporary, JSON.stringify(record), { mode: 0o600, flag: 'wx' }); renameSync(temporary, target); chmodSync(target, 0o600); }
11
+ function load(id) { if (!existsSync(path(id)))
12
+ throw Error('Advisor request was not found in this CLI configuration.'); return JSON.parse(readFileSync(path(id), 'utf8')); }
13
+ function url(suffix) { const result = new URL(process.env.SOMEWHERE_MCP_URL || 'https://mcp.somewhere.tech/mcp'); result.pathname = '/advisor/runs' + suffix; result.search = ''; result.hash = ''; return result.toString(); }
14
+ async function request(record, operation) {
15
+ const config = loadConfig(), token = record.owner_mode === 'account' && config?.temporary !== true ? config?.token : undefined;
16
+ if (record.owner_mode === 'account' && !token)
17
+ throw Error('Sign in to the account that owns this saved request.');
18
+ const res = await fetchWithProxy(url(operation === 'start' ? '' : '/' + record.run_id + (operation === 'status' ? '' : '/' + operation)), { method: operation === 'status' ? 'GET' : 'POST', headers: { 'Content-Type': 'application/json', 'User-Agent': 'somewhere-cli', ...(token ? { Authorization: 'Bearer ' + token } : { 'X-Advisor-Capability': record.capability }) }, ...(operation === 'start' ? { body: JSON.stringify(record.body) } : {}) }, 30000);
19
+ const payload = await res.json();
20
+ if (!res.ok || !payload.ok || !payload.data)
21
+ throw Error((payload.message || payload.error || 'Advisor transport failed.') + ' [HTTP ' + res.status + ']');
22
+ if (payload.data.run_id)
23
+ record.run_id = payload.data.run_id;
24
+ if (payload.data.status === 'settled' || payload.data.answer) {
25
+ delete record.body;
26
+ if (!record.run_id)
27
+ record.terminal = payload.data;
28
+ }
29
+ save(record);
30
+ return { ...payload.data, request_id: record.request_id };
31
+ }
32
+ /** Local identity is written before POST. Transport failure never creates another request. */
33
+ export async function callAdvisorRun(args) {
34
+ let record;
35
+ if (args.requestId)
36
+ record = load(args.requestId);
37
+ else {
38
+ if (!args.question)
39
+ throw Error('Supply a question or --resume <request-id>.');
40
+ const id = randomUUID(), created = Date.now(), context = args.context ? { ...args.context } : undefined;
41
+ if (context?.file)
42
+ delete context.file;
43
+ const config = loadConfig();
44
+ record = { owner_mode: config?.token && config.temporary !== true ? 'account' : 'anonymous', request_id: id, request_created_at: created, capability: randomBytes(32).toString('hex'), body: { question: redactAdvisorText(args.question), ...(context ? { context } : {}), request_id: id, request_created_at: created } };
45
+ save(record);
46
+ }
47
+ try {
48
+ if (record.terminal)
49
+ return { ...record.terminal, request_id: record.request_id };
50
+ if (args.operation === 'cancel' && !record.run_id)
51
+ throw Error('Start acknowledgment is unavailable; no cancellation or replacement dispatch was attempted. Recover only this original request.');
52
+ let result = await request(record, record.run_id ? (args.operation ?? 'resume') : 'start');
53
+ if (args.wait === false || args.operation === 'status' || args.operation === 'cancel')
54
+ return result;
55
+ if (result.status !== 'settled' && !result.answer)
56
+ args.progress?.('Advisor is working. To reconnect: somewhere advisor --resume ' + record.request_id);
57
+ while (result.status !== 'settled' && !result.answer) {
58
+ await new Promise(resolve => setTimeout(resolve, Math.min(10000, Math.max(1000, (result.retry_after_seconds ?? 2) * 1000))));
59
+ result = await request(record, result.next_step === 'resume' ? 'resume' : 'status');
60
+ }
61
+ return result;
62
+ }
63
+ catch (error) {
64
+ throw Error((error instanceof Error ? error.message : String(error)) + ' Resume only this request: somewhere advisor --resume ' + record.request_id);
65
+ }
66
+ }
67
+ /** Adopt an unpaid legacy/native prepared handle before its first billable resume. */
68
+ export async function consumeAdvisorRun(text, progress) {
69
+ let parsed;
70
+ try {
71
+ parsed = JSON.parse(text);
72
+ }
73
+ catch {
74
+ return null;
75
+ }
76
+ if (typeof parsed.run_id !== 'string' || typeof parsed.status !== 'string')
77
+ return null;
78
+ const config = loadConfig(), anonymous = typeof parsed.anonymous_capability === 'string', id = randomUUID();
79
+ if (!anonymous && (!config?.token || config.temporary === true))
80
+ throw Error('Sign in to the account that owns this Advisor run.');
81
+ const record = { owner_mode: anonymous ? 'anonymous' : 'account', request_id: id, request_created_at: Date.now(), capability: anonymous ? String(parsed.anonymous_capability) : randomBytes(32).toString('hex'), run_id: parsed.run_id };
82
+ save(record);
83
+ return callAdvisorRun({ requestId: id, operation: 'resume', progress });
84
+ }
85
+ //# sourceMappingURL=advisor-runs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advisor-runs.js","sourceRoot":"","sources":["../../src/lib/advisor-runs.ts"],"names":[],"mappings":"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"}
@@ -5,16 +5,16 @@ import { SKILLS_DIR, skillNames } from './skills-pack.js';
5
5
  export const AGENT_WORKFLOW = `## Getting started — build, deploy, verify
6
6
 
7
7
  \`somewhere init --name <slug>\` in an empty folder writes a local React +
8
- TypeScript starter without login. It signs users up, in and out; extend it
9
- rather than rebuilding sign-in (its README maps pages, routes, views and
10
- styles; \`init --catalog --json\` lists modules for \`--features\`). No account yet?
8
+ TypeScript starter without login. The default includes working sign-in;
9
+ extend it using the README file map. Minimal/bare starters omit auth.
10
+ \`init --catalog --json\` lists modules for \`--features\`. No account yet?
11
11
  \`npx @somewhere-tech/cli deploy\` publishes a temporary app and prints its live
12
12
  URL, claim URL, and expiry. Login is needed for account-owned operations,
13
- the email test inbox, cron and advisor. On a hosted VM, after consent, \`somewhere login\` prints a
13
+ the email test inbox and cron. On a hosted VM, after consent, \`somewhere login\` prints a
14
14
  code a human approves in their browser; the machine stays signed in.
15
- \`somewhere docs <topic>\` (\`--section <id>\`) prints one contract;
16
- \`somewhere advisor "<question>"\` answers design choices (MCP:
17
- \`docs({ topic })\`, \`advisor({ question })\`, \`catalog\`).
15
+ Ask \`somewhere advisor "<question>"\` how to build or fix it. For a reference,
16
+ use \`somewhere docs <topic> --section <id>\`
17
+ (MCP: \`advisor({ question })\`, \`docs({ topic })\`, \`catalog\`).
18
18
 
19
19
  After every change:
20
20
  1. \`somewhere typecheck\`, then \`somewhere deploy\` (do not build first). Deploy
@@ -34,13 +34,13 @@ Routes: \`index.html\` loads \`src/main.tsx\`; every extensionless path with no
34
34
  \`api/notes/[id].ts\` is \`/api/notes/:id\`; \`_\`-prefixed names are import-only
35
35
  helpers. Avoid names differing only in letter case (\`SignIn.tsx\`, \`signin.tsx\`).
36
36
 
37
- Sign-in: \`api/auth/[...path].ts\` is
37
+ With auth enabled, \`api/auth/[...path].ts\` is
38
38
  \`export { somewhereAuth as default } from '@somewhere-tech/sdk/server'\`; pages
39
39
  use \`createSomewhereAuth()\` from \`@somewhere-tech/sdk/auth\` (no SDK:
40
40
  \`docs({ topic: 'auth-client' })\`). \`auth.signUp({ email, password,
41
41
  displayName? })\` / \`auth.signIn({ email, password })\` return the user or throw
42
42
  with the message. Gate pages on \`auth.getState().status\` (React:
43
- \`useAuthState()\`) as the starter's \`src/App.tsx\` does. Sign-up signs the user
43
+ \`useAuthState()\`) as the auth starter's \`src/App.tsx\` does. Sign-up signs the user
44
44
  in with \`email_verified: false\`; unverified users can sign in and pass
45
45
  \`auth: 'required'\`. \`sw.auth.requireUser(req)\` returns \`{ id, email,
46
46
  role, email_verified, … }\` or throws 401 \`AUTH_REQUIRED\`;
@@ -1,8 +1,8 @@
1
1
  export const BUNDLED_SKILLS_PACK = {
2
2
  "schema": 1,
3
3
  "name": "somewhere-skills",
4
- "version": "1+79e6d9ee3f3a",
5
- "sha256": "79e6d9ee3f3ab89ebcf380a32eaa585455fd9544f121036a78fe214260696edd",
4
+ "version": "1+efd062ab7fba",
5
+ "sha256": "efd062ab7fba9b20d6229afba854ef03383a83a3b8c4206a1ab6bea3067f6898",
6
6
  "files": [
7
7
  {
8
8
  "path": "deploy-verify-loop/SKILL.md",
@@ -21,8 +21,8 @@ export const BUNDLED_SKILLS_PACK = {
21
21
  },
22
22
  {
23
23
  "path": "troubleshooting/SKILL.md",
24
- "sha256": "b7e2f6792e27f895d86ce2713f7fd480427793c8e5fd971f2052c6d3b1d6367f",
25
- "content": "---\nname: troubleshooting\ndescription: When a request fails, a deploy or save is refused, or the live app misbehaves and the cause is not obvious.\n---\n\n# Troubleshoot a failure\n\n## Read before guessing\n\n3. `somewhere browser` inspects a page; `somewhere logs --tail 10`, then\n `somewhere errors`: read the failure first.\n\nEvery JSON error from the platform now ships with a `hint` field that names the most relevant `docs` topic.\n\n`somewhere docs <topic>` (`--section <id>`) prints one contract; `somewhere advisor \"<question>\"` answers design choices\n\n## Limits the logs name\n\n| Ceiling | Value | Instead |\n|---|---|---|\n| Memory per request | about 256 MB | Stream or process in chunks; move heavy work to `sw.jobs` |\n| CPU time per request | about 30 s | Move long computation to `sw.jobs` |\n| Wall-clock time per request | about 300 s | Start the work with `sw.jobs` and return; poll the job |\n| Environment values | about 5 KB (5,120 bytes) for all of a project's values together | Keep large configuration in files; a save above the limit is refused with 413 `ENV_VALUE_TOO_LARGE` (one value) or `ENV_VALUES_TOO_LARGE` (all values together), naming the key and the limit |\n\n## Failure 1: FUNCTION_CPU_EXCEEDED or FUNCTION_MEMORY_EXCEEDED\n\nThe caller gets HTTP 500 in the platform's JSON error envelope, `{ ok: false, error, message, request_id }`, with `error` set to `FUNCTION_MEMORY_EXCEEDED` or `FUNCTION_CPU_EXCEEDED`, and the same code and message are recorded in the project's logs and errors. The fix is the \"Instead\" column: move the work to `sw.jobs`, or process it in smaller pieces.\n\n## Failure 2: a refused deploy\n\n`SCHEMA_DEPLOY_REFUSED` (409, at deploy) — `db/schema.ts` asked for something the deploy will not do silently\n\nDoes the file path match the URL? `api/users/[id].ts` serves `/api/users/123`. `api/users.ts` serves `/api/users`.\n\nSources (`somewhere docs <topic>`): getting-started, limits, sw.db, troubleshooting.\n"
24
+ "sha256": "6275138804adf14a03288d47fae24d14d668dd5ee1d5967653bd25e49145ea38",
25
+ "content": "---\nname: troubleshooting\ndescription: When a request fails, a deploy or save is refused, or the live app misbehaves and the cause is not obvious.\n---\n\n# Troubleshoot a failure\n\n## Read before guessing\n\n3. `somewhere browser` inspects a page; `somewhere logs --tail 10`, then\n `somewhere errors`: read the failure first.\n\nEvery JSON error from the platform now ships with a `hint` field that names the most relevant `docs` topic.\n\nAsk `somewhere advisor \"<question>\"` how to build or fix it. For a reference, use `somewhere docs <topic> --section <id>`\n\n## Limits the logs name\n\n| Ceiling | Value | Instead |\n|---|---|---|\n| Memory per request | about 256 MB | Stream or process in chunks; move heavy work to `sw.jobs` |\n| CPU time per request | about 30 s | Move long computation to `sw.jobs` |\n| Wall-clock time per request | about 300 s | Start the work with `sw.jobs` and return; poll the job |\n| Environment values | about 5 KB (5,120 bytes) for all of a project's values together | Keep large configuration in files; a save above the limit is refused with 413 `ENV_VALUE_TOO_LARGE` (one value) or `ENV_VALUES_TOO_LARGE` (all values together), naming the key and the limit |\n\n## Failure 1: FUNCTION_CPU_EXCEEDED or FUNCTION_MEMORY_EXCEEDED\n\nThe caller gets HTTP 500 in the platform's JSON error envelope, `{ ok: false, error, message, request_id }`, with `error` set to `FUNCTION_MEMORY_EXCEEDED` or `FUNCTION_CPU_EXCEEDED`, and the same code and message are recorded in the project's logs and errors. The fix is the \"Instead\" column: move the work to `sw.jobs`, or process it in smaller pieces.\n\n## Failure 2: a refused deploy\n\n`SCHEMA_DEPLOY_REFUSED` (409, at deploy) — `db/schema.ts` asked for something the deploy will not do silently\n\nDoes the file path match the URL? `api/users/[id].ts` serves `/api/users/123`. `api/users.ts` serves `/api/users`.\n\nSources (`somewhere docs <topic>`): getting-started, limits, sw.db, troubleshooting.\n"
26
26
  },
27
27
  {
28
28
  "path": "realtime-and-background/SKILL.md",
@@ -1 +1 @@
1
- {"version":3,"file":"skills-pack.generated.js","sourceRoot":"","sources":["../../src/lib/skills-pack.generated.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,mBAAmB,GAAe;IAC7C,QAAQ,EAAE,CAAC;IACX,MAAM,EAAE,kBAAkB;IAC1B,SAAS,EAAE,gBAAgB;IAC3B,QAAQ,EAAE,kEAAkE;IAC5E,OAAO,EAAE;QACP;YACE,MAAM,EAAE,6BAA6B;YACrC,QAAQ,EAAE,kEAAkE;YAC5E,SAAS,EAAE,ypEAAypE;SACrqE;QACD;YACE,MAAM,EAAE,yBAAyB;YACjC,QAAQ,EAAE,kEAAkE;YAC5E,SAAS,EAAE,48DAA48D;SACx9D;QACD;YACE,MAAM,EAAE,wBAAwB;YAChC,QAAQ,EAAE,kEAAkE;YAC5E,SAAS,EAAE,kjEAAkjE;SAC9jE;QACD;YACE,MAAM,EAAE,0BAA0B;YAClC,QAAQ,EAAE,kEAAkE;YAC5E,SAAS,EAAE,q8DAAq8D;SACj9D;QACD;YACE,MAAM,EAAE,kCAAkC;YAC1C,QAAQ,EAAE,kEAAkE;YAC5E,SAAS,EAAE,0yFAA0yF;SACtzF;QACD;YACE,MAAM,EAAE,+BAA+B;YACvC,QAAQ,EAAE,kEAAkE;YAC5E,SAAS,EAAE,+5CAA+5C;SAC36C;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"skills-pack.generated.js","sourceRoot":"","sources":["../../src/lib/skills-pack.generated.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,mBAAmB,GAAe;IAC7C,QAAQ,EAAE,CAAC;IACX,MAAM,EAAE,kBAAkB;IAC1B,SAAS,EAAE,gBAAgB;IAC3B,QAAQ,EAAE,kEAAkE;IAC5E,OAAO,EAAE;QACP;YACE,MAAM,EAAE,6BAA6B;YACrC,QAAQ,EAAE,kEAAkE;YAC5E,SAAS,EAAE,ypEAAypE;SACrqE;QACD;YACE,MAAM,EAAE,yBAAyB;YACjC,QAAQ,EAAE,kEAAkE;YAC5E,SAAS,EAAE,48DAA48D;SACx9D;QACD;YACE,MAAM,EAAE,wBAAwB;YAChC,QAAQ,EAAE,kEAAkE;YAC5E,SAAS,EAAE,kjEAAkjE;SAC9jE;QACD;YACE,MAAM,EAAE,0BAA0B;YAClC,QAAQ,EAAE,kEAAkE;YAC5E,SAAS,EAAE,s8DAAs8D;SACl9D;QACD;YACE,MAAM,EAAE,kCAAkC;YAC1C,QAAQ,EAAE,kEAAkE;YAC5E,SAAS,EAAE,0yFAA0yF;SACtzF;QACD;YACE,MAAM,EAAE,+BAA+B;YACvC,QAAQ,EAAE,kEAAkE;YAC5E,SAAS,EAAE,+5CAA+5C;SAC36C;KACF;CACF,CAAC"}
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@somewhere-tech/cli",
3
- "version": "0.37.1",
3
+ "version": "0.37.3",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@somewhere-tech/cli",
9
- "version": "0.37.1",
9
+ "version": "0.37.3",
10
10
  "bundleDependencies": [
11
11
  "@modelcontextprotocol/sdk",
12
12
  "chokidar",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@somewhere-tech/cli",
3
- "version": "0.37.1",
3
+ "version": "0.37.3",
4
4
  "description": "CLI for somewhere.tech — auth, projects, deploy, pull, promote, db, logs, env, MCP bridge.",
5
5
  "keywords": [
6
6
  "somewhere",