@offworld/sdk 0.1.7 → 0.1.10

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/index.d.mts CHANGED
@@ -5,7 +5,7 @@ import { Agent, Config, Config as Config$1, FileIndex, FileIndexEntry, FileRole,
5
5
  * SDK Constants
6
6
  */
7
7
  /** SDK version - must match package.json */
8
- declare const VERSION = "0.1.7";
8
+ declare const VERSION = "0.1.10";
9
9
  /**
10
10
  * Default patterns to ignore when scanning repositories.
11
11
  * Includes directories, binary files, IDE configs, and build outputs.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/constants.ts","../src/config.ts","../src/paths.ts","../src/repo-source.ts","../src/index-manager.ts","../src/map.ts","../src/clone.ts","../src/ai/opencode.ts","../src/ai/errors.ts","../src/sync.ts","../src/auth.ts","../src/generate.ts","../src/agents.ts","../src/manifest.ts","../src/dep-mappings.ts","../src/reference-matcher.ts","../src/agents-md.ts","../src/repo-manager.ts","../src/models.ts","../src/installation.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/constants.ts","../src/config.ts","../src/paths.ts","../src/repo-source.ts","../src/index-manager.ts","../src/map.ts","../src/clone.ts","../src/ai/opencode.ts","../src/ai/errors.ts","../src/sync.ts","../src/auth.ts","../src/generate.ts","../src/agents.ts","../src/manifest.ts","../src/dep-mappings.ts","../src/reference-matcher.ts","../src/agents-md.ts","../src/repo-manager.ts","../src/models.ts","../src/installation.ts"],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -15,7 +15,7 @@ import { api } from "@offworld/backend-api/api";
15
15
  * SDK Constants
16
16
  */
17
17
  /** SDK version - must match package.json */
18
- const VERSION = "0.1.7";
18
+ const VERSION = "0.1.10";
19
19
  /**
20
20
  * Default patterns to ignore when scanning repositories.
21
21
  * Includes directories, binary files, IDE configs, and build outputs.
@@ -1252,6 +1252,21 @@ var TextAccumulator = class {
1252
1252
  return Array.from(this.parts.values()).join("");
1253
1253
  }
1254
1254
  /**
1255
+ * Get the number of distinct parts accumulated
1256
+ */
1257
+ getPartCount() {
1258
+ return this.parts.size;
1259
+ }
1260
+ /**
1261
+ * Get info about each part for debugging
1262
+ */
1263
+ getPartInfo() {
1264
+ return Array.from(this.parts.entries()).map(([id, text]) => ({
1265
+ id,
1266
+ length: text.length
1267
+ }));
1268
+ }
1269
+ /**
1255
1270
  * Clear accumulated text
1256
1271
  */
1257
1272
  clear() {
@@ -1525,14 +1540,20 @@ async function streamPrompt(options) {
1525
1540
  }
1526
1541
  }
1527
1542
  if (parsed.textPart) {
1543
+ const partId = parsed.textPart.id;
1528
1544
  const delta = textAccumulator.accumulatePart(parsed.textPart);
1529
1545
  if (!textAccumulator.hasReceivedText) debug("Writing reference...");
1530
- if (delta) stream(delta);
1546
+ if (delta) {
1547
+ if ((parsed.textPart.text?.length ?? 0) === delta.length && delta.length > 0) debug(`[part:${partId}] New text part started (${delta.slice(0, 50)}...)`);
1548
+ stream(delta);
1549
+ }
1531
1550
  }
1532
1551
  break;
1533
1552
  case "session.idle":
1534
1553
  if (parsed.props.sessionID === sessionId) {
1535
1554
  debug("Response complete");
1555
+ const partInfo = textAccumulator.getPartInfo();
1556
+ debug(`[parts] ${partInfo.length} text part(s): ${partInfo.map((p) => `${p.id}(${p.length})`).join(", ")}`);
1536
1557
  return textAccumulator.getFullText();
1537
1558
  }
1538
1559
  break;
@@ -1580,8 +1601,9 @@ async function streamPrompt(options) {
1580
1601
  * Sync utilities for CLI-Convex communication
1581
1602
  * Uses ConvexHttpClient for direct type-safe API calls
1582
1603
  */
1604
+ const PRODUCTION_CONVEX_URL = "https://trustworthy-coyote-128.convex.cloud";
1583
1605
  function getConvexUrl() {
1584
- return "";
1606
+ return process.env.CONVEX_URL ?? PRODUCTION_CONVEX_URL;
1585
1607
  }
1586
1608
  const GITHUB_API_BASE = "https://api.github.com";
1587
1609
  var SyncError = class extends Error {
@@ -1672,9 +1694,7 @@ var PushNotAllowedError = class extends SyncError {
1672
1694
  }
1673
1695
  };
1674
1696
  function createClient(token) {
1675
- const convexUrl = getConvexUrl();
1676
- if (!convexUrl) throw new SyncError("CONVEX_URL not configured. For local development, ensure apps/cli/.env contains CONVEX_URL=your_convex_url");
1677
- const client = new ConvexHttpClient(convexUrl);
1697
+ const client = new ConvexHttpClient(getConvexUrl());
1678
1698
  if (token) client.setAuth(token);
1679
1699
  return client;
1680
1700
  }
@@ -2042,8 +2062,19 @@ async function isLoggedIn() {
2042
2062
  async function getAuthStatus() {
2043
2063
  const data = loadAuthData();
2044
2064
  if (!data) return { isLoggedIn: false };
2045
- if (data.expiresAt) {
2046
- if (new Date(data.expiresAt) <= /* @__PURE__ */ new Date()) {
2065
+ let expiresAtStr = data.expiresAt;
2066
+ if (!expiresAtStr) {
2067
+ expiresAtStr = extractJwtExpiration(data.token);
2068
+ if (expiresAtStr) {
2069
+ data.expiresAt = expiresAtStr;
2070
+ saveAuthData(data);
2071
+ }
2072
+ }
2073
+ if (expiresAtStr) {
2074
+ const expiresAt = new Date(expiresAtStr);
2075
+ const now = /* @__PURE__ */ new Date();
2076
+ const oneMinute = 60 * 1e3;
2077
+ if (expiresAt <= now) {
2047
2078
  if (data.refreshToken) try {
2048
2079
  const refreshed = await refreshAccessToken();
2049
2080
  return {
@@ -2057,23 +2088,40 @@ async function getAuthStatus() {
2057
2088
  }
2058
2089
  return { isLoggedIn: false };
2059
2090
  }
2091
+ if (expiresAt.getTime() - now.getTime() < oneMinute) {
2092
+ if (data.refreshToken) try {
2093
+ const refreshed = await refreshAccessToken();
2094
+ return {
2095
+ isLoggedIn: true,
2096
+ email: refreshed.email,
2097
+ workosId: refreshed.workosId,
2098
+ expiresAt: refreshed.expiresAt
2099
+ };
2100
+ } catch {
2101
+ return {
2102
+ isLoggedIn: true,
2103
+ email: data.email,
2104
+ workosId: data.workosId,
2105
+ expiresAt: expiresAtStr
2106
+ };
2107
+ }
2108
+ }
2060
2109
  }
2061
2110
  return {
2062
2111
  isLoggedIn: true,
2063
2112
  email: data.email,
2064
2113
  workosId: data.workosId,
2065
- expiresAt: data.expiresAt
2114
+ expiresAt: expiresAtStr
2066
2115
  };
2067
2116
  }
2068
2117
  const WORKOS_API = "https://api.workos.com";
2118
+ const PRODUCTION_WORKOS_CLIENT_ID = "client_01KFAD76TNGN02AP96982HG35E";
2069
2119
  function getWorkosClientId() {
2070
- return "";
2120
+ return process.env.WORKOS_CLIENT_ID ?? PRODUCTION_WORKOS_CLIENT_ID;
2071
2121
  }
2072
2122
  async function refreshAccessToken() {
2073
2123
  const data = loadAuthData();
2074
2124
  if (!data?.refreshToken) throw new AuthError("No refresh token available. Please log in again.");
2075
- const clientId = getWorkosClientId();
2076
- if (!clientId) throw new AuthError("WORKOS_CLIENT_ID not configured");
2077
2125
  try {
2078
2126
  const response = await fetch(`${WORKOS_API}/user_management/authenticate`, {
2079
2127
  method: "POST",
@@ -2081,7 +2129,7 @@ async function refreshAccessToken() {
2081
2129
  body: new URLSearchParams({
2082
2130
  grant_type: "refresh_token",
2083
2131
  refresh_token: data.refreshToken,
2084
- client_id: clientId
2132
+ client_id: getWorkosClientId()
2085
2133
  })
2086
2134
  });
2087
2135
  if (!response.ok) throw new AuthError(`Token refresh failed: ${await response.text()}`);
@@ -2362,43 +2410,117 @@ Before outputting, verify:
2362
2410
 
2363
2411
  Now explore the codebase and generate the reference content.
2364
2412
 
2365
- CRITICAL: Wrap your final reference output in XML tags exactly like this:
2413
+ ## OUTPUT INSTRUCTIONS
2414
+
2415
+ After exploring, output your complete reference wrapped in XML tags like this:
2416
+
2417
+ \`\`\`
2366
2418
  <reference_output>
2367
- # {Library Name}
2368
- (the complete markdown content with NO frontmatter)
2419
+ (your complete markdown reference here)
2369
2420
  </reference_output>
2421
+ \`\`\`
2370
2422
 
2371
- Output ONLY the reference content inside the tags. No explanations before or after the tags.`;
2423
+ REQUIREMENTS:
2424
+ - Start with a level-1 heading with the actual library name (e.g., "# TanStack Query")
2425
+ - Include sections: Quick References (table), When to Use (bullets), Installation, Best Practices, Common Patterns (with code), API Quick Reference (table)
2426
+ - Minimum 2000 characters of actual content - short or placeholder content will be rejected
2427
+ - Fill in real information from your exploration - do not use placeholder text like "{Library Name}"
2428
+ - No YAML frontmatter - start directly with the markdown heading
2429
+ - Output ONLY the reference inside the tags, no other text
2430
+
2431
+ Begin exploring now.`;
2372
2432
  }
2373
2433
  /**
2374
2434
  * Extract the actual reference markdown content from AI response.
2375
2435
  * The response may include echoed prompt/system context before the actual reference.
2376
- * We look for the LAST occurrence of XML tags: <reference_output>...</reference_output>
2377
- * (Using last occurrence avoids extracting example tags from echoed prompt)
2436
+ * Handles multiple edge cases:
2437
+ * - Model echoes the prompt template (skip template content)
2438
+ * - Model forgets to close the tag (extract to end of response)
2439
+ * - Multiple tag pairs (find the one with real content)
2378
2440
  */
2379
- function extractReferenceContent(rawResponse) {
2441
+ function extractReferenceContent(rawResponse, onDebug) {
2380
2442
  const openTag = "<reference_output>";
2381
- const closeIndex = rawResponse.lastIndexOf("</reference_output>");
2382
- if (closeIndex !== -1) {
2383
- const openIndex = rawResponse.lastIndexOf(openTag, closeIndex);
2384
- if (openIndex !== -1) {
2385
- let content = rawResponse.slice(openIndex + 18, closeIndex).trim();
2386
- if (content.startsWith("```")) {
2387
- content = content.replace(/^```(?:markdown)?\s*\n?/, "");
2388
- content = content.replace(/\n?```\s*$/, "");
2443
+ const closeTag = "</reference_output>";
2444
+ onDebug?.(`[extract] Raw response length: ${rawResponse.length} chars`);
2445
+ const openIndices = [];
2446
+ const closeIndices = [];
2447
+ let pos = 0;
2448
+ while ((pos = rawResponse.indexOf(openTag, pos)) !== -1) {
2449
+ openIndices.push(pos);
2450
+ pos += 18;
2451
+ }
2452
+ pos = 0;
2453
+ while ((pos = rawResponse.indexOf(closeTag, pos)) !== -1) {
2454
+ closeIndices.push(pos);
2455
+ pos += 19;
2456
+ }
2457
+ onDebug?.(`[extract] Found ${openIndices.length} open tag(s), ${closeIndices.length} close tag(s)`);
2458
+ const cleanContent = (raw) => {
2459
+ let content = raw.trim();
2460
+ if (content.startsWith("```")) {
2461
+ content = content.replace(/^```(?:markdown)?\s*\n?/, "");
2462
+ content = content.replace(/\n?```\s*$/, "");
2463
+ }
2464
+ return content.trim();
2465
+ };
2466
+ const isTemplateContent = (content) => {
2467
+ return content.includes("{Library Name}") || content.includes("(your complete markdown reference here)");
2468
+ };
2469
+ for (let i = openIndices.length - 1; i >= 0; i--) {
2470
+ const openIdx = openIndices[i];
2471
+ if (openIdx === void 0) continue;
2472
+ const closeIdx = closeIndices.find((c) => c > openIdx);
2473
+ if (closeIdx !== void 0) {
2474
+ const content = cleanContent(rawResponse.slice(openIdx + 18, closeIdx));
2475
+ onDebug?.(`[extract] Pair ${i}: open=${openIdx}, close=${closeIdx}, len=${content.length}`);
2476
+ onDebug?.(`[extract] Preview: "${content.slice(0, 200)}${content.length > 200 ? "..." : ""}"`);
2477
+ if (isTemplateContent(content)) {
2478
+ onDebug?.(`[extract] Skipping pair ${i} - template placeholder content`);
2479
+ continue;
2480
+ }
2481
+ if (content.length >= 500) {
2482
+ onDebug?.(`[extract] Using pair ${i} - valid content`);
2483
+ validateReferenceContent(content);
2484
+ return content;
2485
+ }
2486
+ onDebug?.(`[extract] Pair ${i} too short (${content.length} chars)`);
2487
+ }
2488
+ }
2489
+ const lastOpenIdx = openIndices[openIndices.length - 1];
2490
+ if (lastOpenIdx !== void 0) {
2491
+ if (!closeIndices.some((c) => c > lastOpenIdx)) {
2492
+ onDebug?.(`[extract] Last open tag at ${lastOpenIdx} is unclosed - extracting to end`);
2493
+ const content = cleanContent(rawResponse.slice(lastOpenIdx + 18));
2494
+ onDebug?.(`[extract] Unclosed content: ${content.length} chars`);
2495
+ onDebug?.(`[extract] Preview: "${content.slice(0, 200)}${content.length > 200 ? "..." : ""}"`);
2496
+ if (!isTemplateContent(content) && content.length >= 500) {
2497
+ onDebug?.(`[extract] Using unclosed content - valid`);
2498
+ validateReferenceContent(content);
2499
+ return content;
2389
2500
  }
2390
- content = content.trim();
2391
- validateReferenceContent(content);
2392
- return content;
2393
2501
  }
2394
2502
  }
2395
- throw new Error("Failed to extract reference content: no <reference_output> tags found in AI response. The AI may have failed to follow the output format instructions.");
2503
+ onDebug?.(`[extract] No valid content found`);
2504
+ onDebug?.(`[extract] Response tail: "${rawResponse.slice(-300)}"`);
2505
+ throw new Error("Failed to extract reference content: no valid <reference_output> tags found. The AI may have failed to follow the output format or produced placeholder content.");
2396
2506
  }
2397
2507
  /**
2398
2508
  * Validate extracted reference content has minimum required structure.
2399
2509
  * Throws if content is invalid.
2400
2510
  */
2401
2511
  function validateReferenceContent(content) {
2512
+ const foundPlaceholders = [
2513
+ "{Library Name}",
2514
+ "{Full overview paragraph}",
2515
+ "{Table with 3-5 key files}",
2516
+ "{3+ bullet points}",
2517
+ "{Install commands}",
2518
+ "{3+ numbered items}",
2519
+ "{2+ code examples",
2520
+ "{Table of key exports}",
2521
+ "{Additional sections"
2522
+ ].filter((p) => content.includes(p));
2523
+ if (foundPlaceholders.length > 0) throw new Error(`Invalid reference content: contains template placeholders (${foundPlaceholders.slice(0, 3).join(", ")}). The AI echoed the format instead of generating actual content.`);
2402
2524
  if (content.length < 500) throw new Error(`Invalid reference content: too short (${content.length} chars, minimum 500). The AI may have produced placeholder or incomplete content.`);
2403
2525
  if (!content.startsWith("#")) throw new Error("Invalid reference content: must start with markdown heading. Content must begin with '# Library Name' (no YAML frontmatter).");
2404
2526
  }
@@ -2434,7 +2556,7 @@ async function generateReferenceWithAI(repoPath, repoName, options = {}) {
2434
2556
  onStream
2435
2557
  });
2436
2558
  onDebug?.(`Generation complete (${result.durationMs}ms, ${result.text.length} chars)`);
2437
- const referenceContent = extractReferenceContent(result.text);
2559
+ const referenceContent = extractReferenceContent(result.text, onDebug);
2438
2560
  onDebug?.(`Extracted reference content (${referenceContent.length} chars)`);
2439
2561
  return {
2440
2562
  referenceContent,