@offworld/sdk 0.1.8 → 0.1.11
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 +1 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +155 -33
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
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.
|
|
8
|
+
declare const VERSION = "0.1.11";
|
|
9
9
|
/**
|
|
10
10
|
* Default patterns to ignore when scanning repositories.
|
|
11
11
|
* Includes directories, binary files, IDE configs, and build outputs.
|
package/dist/index.d.mts.map
CHANGED
|
@@ -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.
|
|
18
|
+
const VERSION = "0.1.11";
|
|
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)
|
|
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
|
|
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
|
-
|
|
2046
|
-
|
|
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:
|
|
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:
|
|
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
|
-
|
|
2413
|
+
## OUTPUT INSTRUCTIONS
|
|
2414
|
+
|
|
2415
|
+
After exploring, output your complete reference wrapped in XML tags like this:
|
|
2416
|
+
|
|
2417
|
+
\`\`\`
|
|
2366
2418
|
<reference_output>
|
|
2367
|
-
|
|
2368
|
-
(the complete markdown content with NO frontmatter)
|
|
2419
|
+
(your complete markdown reference here)
|
|
2369
2420
|
</reference_output>
|
|
2421
|
+
\`\`\`
|
|
2370
2422
|
|
|
2371
|
-
|
|
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
|
-
*
|
|
2377
|
-
*
|
|
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
|
|
2382
|
-
|
|
2383
|
-
|
|
2384
|
-
|
|
2385
|
-
|
|
2386
|
-
|
|
2387
|
-
|
|
2388
|
-
|
|
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
|
-
|
|
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,
|