@offworld/sdk 0.1.0 → 0.1.1

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/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # @offworld/sdk
2
2
 
3
- Core business logic for Offworld CLI and web app.
3
+ Core business logic for Offworld.
4
+
5
+ Powers the CLI and web app with git clone management, AI reference generation, and agent skill distribution.
4
6
 
5
7
  ## Installation
6
8
 
@@ -10,31 +12,31 @@ bun add @offworld/sdk
10
12
 
11
13
  ## Modules
12
14
 
13
- | Module | Description |
14
- | ---------------------- | ----------------------------------------- |
15
- | `config.ts` | Config load/save, path utilities |
16
- | `paths.ts` | XDG-compliant path resolution |
17
- | `clone.ts` | Git clone/update/remove |
18
- | `index-manager.ts` | Global + project map management |
19
- | `generate.ts` | AI reference generation |
20
- | `sync.ts` | Convex client for push/pull |
21
- | `auth.ts` | WorkOS token management |
22
- | `agents.ts` | Agent registry (6 agents) |
23
- | `agents-md.ts` | AGENTS.md reference table generation |
24
- | `repo-source.ts` | Parse repo input (URL, owner/repo, local) |
25
- | `manifest.ts` | Dependency parsing (package.json, etc.) |
26
- | `dep-mappings.ts` | npm package GitHub repo resolution |
27
- | `reference-matcher.ts` | Match deps to installed references |
28
- | `repo-manager.ts` | Bulk repo operations (update, prune, gc) |
29
- | `models.ts` | AI provider/model registry |
30
- | `installation.ts` | Upgrade/uninstall utilities |
31
-
32
- ## Key Exports
15
+ | Module | Description |
16
+ | --- | --- |
17
+ | `config.ts` | Config load/save, path utilities |
18
+ | `paths.ts` | XDG-compliant path resolution |
19
+ | `clone.ts` | Git clone/update/remove |
20
+ | `index-manager.ts` | Global + project map management |
21
+ | `generate.ts` | AI reference generation |
22
+ | `sync.ts` | Convex client for push/pull |
23
+ | `auth.ts` | WorkOS token management |
24
+ | `agents.ts` | Agent registry |
25
+ | `agents-md.ts` | AGENTS.md reference table generation |
26
+ | `repo-source.ts` | Parse repo input (URL, owner/repo, local) |
27
+ | `manifest.ts` | Dependency parsing (package.json, etc.) |
28
+ | `dep-mappings.ts` | npm package to GitHub repo resolution |
29
+ | `reference-matcher.ts` | Match deps to installed references |
30
+ | `repo-manager.ts` | Bulk repo operations (update, prune, gc) |
31
+ | `models.ts` | AI provider/model registry |
32
+ | `installation.ts` | Upgrade/uninstall utilities |
33
+
34
+ ## Usage
33
35
 
34
36
  ### Config & Paths
35
37
 
36
38
  ```typescript
37
- import { loadConfig, saveConfig, Paths, expandTilde } from "@offworld/sdk";
39
+ import { loadConfig, saveConfig, Paths } from "@offworld/sdk";
38
40
 
39
41
  const config = loadConfig();
40
42
  const skillDir = Paths.offworldDir;
@@ -44,7 +46,7 @@ const globalMap = Paths.globalMap;
44
46
  ### Clone Management
45
47
 
46
48
  ```typescript
47
- import { cloneRepo, updateRepo, removeRepo, listRepos } from "@offworld/sdk";
49
+ import { cloneRepo, updateRepo, removeRepo } from "@offworld/sdk";
48
50
 
49
51
  await cloneRepo(repoSource, { shallow: true });
50
52
  await updateRepo("owner/repo");
@@ -77,43 +79,27 @@ import { pullReference, pushReference, checkRemote } from "@offworld/sdk";
77
79
 
78
80
  const ref = await pullReference("owner/repo");
79
81
  await pushReference("owner/repo", referenceData);
80
- const status = await checkRemote("owner/repo");
81
82
  ```
82
83
 
83
84
  ### Dependency Resolution
84
85
 
85
86
  ```typescript
86
- import {
87
- parseDependencies,
88
- resolveDependencyRepo,
89
- matchDependenciesToReferences,
90
- } from "@offworld/sdk";
87
+ import { parseDependencies, resolveDependencyRepo, matchDependenciesToReferences } from "@offworld/sdk";
91
88
 
92
89
  const deps = parseDependencies("package.json");
93
90
  const repo = await resolveDependencyRepo("zod");
94
91
  const matches = matchDependenciesToReferences(deps);
95
92
  ```
96
93
 
97
- ### Agent Management
98
-
99
- ```typescript
100
- import { detectInstalledAgents, agents } from "@offworld/sdk";
101
-
102
- const installed = detectInstalledAgents();
103
- console.log(agents); // AgentConfig[]
104
- ```
105
-
106
94
  ## Data Paths
107
95
 
108
- | Purpose | Getter |
109
- | ---------- | --------------------- |
110
- | Config | `Paths.config` |
111
- | Data root | `Paths.data` |
112
- | Skill dir | `Paths.offworldDir` |
113
- | Global map | `Paths.globalMap` |
96
+ | Purpose | Getter |
97
+ | --- | --- |
98
+ | Config | `Paths.config` |
99
+ | Data root | `Paths.data` |
100
+ | Skill dir | `Paths.offworldDir` |
101
+ | Global map | `Paths.globalMap` |
114
102
  | References | `Paths.referencesDir` |
115
- | Auth | `Paths.auth` |
116
- | State | `Paths.state` |
117
103
 
118
104
  ## Commands
119
105
 
@@ -122,6 +108,4 @@ bun run build # Build with tsdown
122
108
  bun run dev # Watch mode
123
109
  bun run typecheck # Type check
124
110
  bun run test # Run tests
125
- bun run test:unit # Unit tests only
126
- bun run test:integration # Integration tests
127
111
  ```
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.0";
8
+ declare const VERSION = "0.1.1";
9
9
  /**
10
10
  * Default patterns to ignore when scanning repositories.
11
11
  * Includes directories, binary files, IDE configs, and build outputs.
@@ -391,11 +391,11 @@ declare class OpenCodeReferenceError extends Error {
391
391
  constructor(message: string, details?: unknown | undefined);
392
392
  }
393
393
  /**
394
- * Error when the @opencode-ai/sdk package is not installed
394
+ * Error when the @opencode-ai/sdk package is not installed or invalid
395
395
  */
396
396
  declare class OpenCodeSDKError extends OpenCodeReferenceError {
397
397
  readonly _tag: "OpenCodeSDKError";
398
- constructor();
398
+ constructor(message?: string);
399
399
  }
400
400
  //#endregion
401
401
  //#region src/sync.d.ts
@@ -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
@@ -1,6 +1,6 @@
1
1
  import { chmodSync, existsSync, lstatSync, mkdirSync, readFileSync, readdirSync, rmSync, statSync, symlinkSync, unlinkSync, writeFileSync } from "node:fs";
2
2
  import { basename, dirname, join, resolve } from "node:path";
3
- import { ConfigSchema, GlobalMapSchema, ProjectMapSchema } from "@offworld/types";
3
+ import { ConfigSchema, GitHubRepoMetadataSchema, GlobalMapSchema, ModelsDevDataSchema, NpmPackageResponseSchema, ProjectMapSchema, WorkOSTokenResponseSchema } from "@offworld/types";
4
4
  import { xdgConfig, xdgData, xdgState } from "xdg-basedir";
5
5
  import { homedir } from "node:os";
6
6
  import { createHash } from "node:crypto";
@@ -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.0";
18
+ const VERSION = "0.1.1";
19
19
  /**
20
20
  * Default patterns to ignore when scanning repositories.
21
21
  * Includes directories, binary files, IDE configs, and build outputs.
@@ -200,7 +200,10 @@ function getRepoPath(fullName, provider = "github", config) {
200
200
  */
201
201
  function toMetaDirName(repoName) {
202
202
  if (repoName.includes("/")) {
203
- const [owner, repo] = repoName.split("/");
203
+ const parts = repoName.split("/");
204
+ const owner = parts[0];
205
+ const repo = parts[1];
206
+ if (!owner || !repo) return repoName;
204
207
  if (owner === repo) return repo;
205
208
  return `${owner}-${repo}`;
206
209
  }
@@ -215,7 +218,10 @@ function toMetaDirName(repoName) {
215
218
  */
216
219
  function toReferenceFileName(repoName) {
217
220
  if (repoName.includes("/")) {
218
- const [owner, repo] = repoName.split("/");
221
+ const parts = repoName.split("/");
222
+ const owner = parts[0];
223
+ const repo = parts[1];
224
+ if (!owner || !repo) return `${repoName.toLowerCase()}.md`;
219
225
  const ownerLower = owner.toLowerCase();
220
226
  const repoLower = repo.toLowerCase();
221
227
  if (repoLower.split("-").find((part) => part.length >= 3 && ownerLower.includes(part)) || ownerLower === repoLower) return `${repoLower}.md`;
@@ -1009,12 +1015,12 @@ var OpenCodeReferenceError = class extends Error {
1009
1015
  }
1010
1016
  };
1011
1017
  /**
1012
- * Error when the @opencode-ai/sdk package is not installed
1018
+ * Error when the @opencode-ai/sdk package is not installed or invalid
1013
1019
  */
1014
1020
  var OpenCodeSDKError = class extends OpenCodeReferenceError {
1015
1021
  _tag = "OpenCodeSDKError";
1016
- constructor() {
1017
- super("Failed to import @opencode-ai/sdk. Install it with: bun add @opencode-ai/sdk");
1022
+ constructor(message) {
1023
+ super(message ?? "Failed to import @opencode-ai/sdk. Install it with: bun add @opencode-ai/sdk");
1018
1024
  this.name = "OpenCodeSDKError";
1019
1025
  }
1020
1026
  };
@@ -1373,20 +1379,22 @@ async function getOpenCodeSDK() {
1373
1379
  };
1374
1380
  try {
1375
1381
  const sdk = await import("@opencode-ai/sdk");
1382
+ if (typeof sdk.createOpencode !== "function" || typeof sdk.createOpencodeClient !== "function") throw new OpenCodeSDKError("SDK missing required exports");
1376
1383
  cachedCreateOpencode = sdk.createOpencode;
1377
1384
  cachedCreateOpencodeClient = sdk.createOpencodeClient;
1378
1385
  return {
1379
1386
  createOpencode: cachedCreateOpencode,
1380
1387
  createOpencodeClient: cachedCreateOpencodeClient
1381
1388
  };
1382
- } catch {
1389
+ } catch (error) {
1390
+ if (error instanceof OpenCodeSDKError) throw error;
1383
1391
  throw new OpenCodeSDKError();
1384
1392
  }
1385
1393
  }
1386
1394
  function formatToolMessage(tool, state) {
1387
1395
  if (state.title) return state.title;
1388
1396
  if (!tool) return null;
1389
- const input = state.input;
1397
+ const input = state.input && typeof state.input === "object" && !Array.isArray(state.input) ? state.input : void 0;
1390
1398
  if (!input) return `Running ${tool}...`;
1391
1399
  switch (tool) {
1392
1400
  case "read": {
@@ -1883,7 +1891,10 @@ async function fetchGitHubMetadata(owner, repo) {
1883
1891
  "User-Agent": "offworld-cli"
1884
1892
  } });
1885
1893
  if (!response.ok) return null;
1886
- const data = await response.json();
1894
+ const json = await response.json();
1895
+ const result = GitHubRepoMetadataSchema.safeParse(json);
1896
+ if (!result.success) return null;
1897
+ const data = result.data;
1887
1898
  return {
1888
1899
  stars: data.stargazers_count ?? 0,
1889
1900
  description: data.description ?? void 0,
@@ -1940,6 +1951,13 @@ function validatePushAllowed(source) {
1940
1951
  /**
1941
1952
  * Authentication utilities for offworld CLI
1942
1953
  */
1954
+ const AuthDataSchema = z.object({
1955
+ token: z.string(),
1956
+ expiresAt: z.string().optional(),
1957
+ workosId: z.string().optional(),
1958
+ refreshToken: z.string().optional(),
1959
+ email: z.string().optional()
1960
+ });
1943
1961
  var AuthError = class extends Error {
1944
1962
  constructor(message) {
1945
1963
  super(message);
@@ -2003,9 +2021,10 @@ function loadAuthData() {
2003
2021
  if (!existsSync(authPath)) return null;
2004
2022
  try {
2005
2023
  const content = readFileSync(authPath, "utf-8");
2006
- const data = JSON.parse(content);
2007
- if (!data.token || typeof data.token !== "string") return null;
2008
- return data;
2024
+ const json = JSON.parse(content);
2025
+ const parsed = AuthDataSchema.safeParse(json);
2026
+ if (!parsed.success) return null;
2027
+ return parsed.data;
2009
2028
  } catch {
2010
2029
  return null;
2011
2030
  }
@@ -2131,7 +2150,8 @@ async function refreshAccessToken() {
2131
2150
  })
2132
2151
  });
2133
2152
  if (!response.ok) throw new AuthError(`Token refresh failed: ${await response.text()}`);
2134
- const tokenData = await response.json();
2153
+ const json = await response.json();
2154
+ const tokenData = WorkOSTokenResponseSchema.parse(json);
2135
2155
  const newAuthData = {
2136
2156
  token: tokenData.access_token,
2137
2157
  email: tokenData.user.email,
@@ -2236,6 +2256,10 @@ function getAllAgentConfigs() {
2236
2256
  * This module provides a streamlined approach to generating reference files
2237
2257
  * by delegating all codebase exploration to the AI agent via OpenCode.
2238
2258
  */
2259
+ const PackageJsonKeywordsSchema = z.object({
2260
+ name: z.string().optional(),
2261
+ keywords: z.array(z.string()).optional()
2262
+ });
2239
2263
  function normalizeKeyword(value) {
2240
2264
  const trimmed = value.trim();
2241
2265
  if (!trimmed) return [];
@@ -2264,10 +2288,11 @@ function deriveKeywords(fullName, localPath, referenceContent) {
2264
2288
  const packageJsonPath = join(localPath, "package.json");
2265
2289
  if (existsSync(packageJsonPath)) try {
2266
2290
  const content = readFileSync(packageJsonPath, "utf-8");
2267
- const data = JSON.parse(content);
2268
- if (data.name) addKeywords(data.name);
2269
- if (Array.isArray(data.keywords)) {
2270
- for (const keyword of data.keywords) if (typeof keyword === "string") addKeywords(keyword);
2291
+ const json = JSON.parse(content);
2292
+ const parsed = PackageJsonKeywordsSchema.safeParse(json);
2293
+ if (parsed.success) {
2294
+ if (parsed.data.name) addKeywords(parsed.data.name);
2295
+ if (parsed.data.keywords) for (const keyword of parsed.data.keywords) addKeywords(keyword);
2271
2296
  }
2272
2297
  } catch {}
2273
2298
  return Array.from(keywords);
@@ -2802,6 +2827,12 @@ function parseRequirementsTxt(path) {
2802
2827
  //#endregion
2803
2828
  //#region src/dep-mappings.ts
2804
2829
  /**
2830
+ * Three-tier dependency name to GitHub repo resolution:
2831
+ * 1. KNOWN_MAPPINGS - hardcoded popular packages
2832
+ * 2. npm registry fallback
2833
+ * 3. User prompt (handled by caller)
2834
+ */
2835
+ /**
2805
2836
  * Hardcoded mappings for popular packages.
2806
2837
  * Covers top ecosystems: React, Vue, Svelte, backend, database, validation, styling.
2807
2838
  */
@@ -2899,7 +2930,10 @@ async function resolveFromNpm(packageName) {
2899
2930
  try {
2900
2931
  const res = await fetch(`https://registry.npmjs.org/${packageName}`);
2901
2932
  if (!res.ok) return null;
2902
- const repoUrl = (await res.json()).repository?.url;
2933
+ const json = await res.json();
2934
+ const result = NpmPackageResponseSchema.safeParse(json);
2935
+ if (!result.success) return null;
2936
+ const repoUrl = result.data.repository?.url;
2903
2937
  if (!repoUrl) return null;
2904
2938
  return parseGitHubUrl(repoUrl);
2905
2939
  } catch {
@@ -3343,7 +3377,10 @@ async function fetchModelsDevData() {
3343
3377
  if (cachedData && now - cacheTime < CACHE_TTL_MS) return cachedData;
3344
3378
  const res = await fetch(MODELS_DEV_URL, { signal: AbortSignal.timeout(1e4) });
3345
3379
  if (!res.ok) throw new Error(`Failed to fetch models.dev: ${res.status} ${res.statusText}`);
3346
- cachedData = await res.json();
3380
+ const json = await res.json();
3381
+ const parsed = ModelsDevDataSchema.safeParse(json);
3382
+ if (!parsed.success) throw new Error(`Invalid models.dev response: ${parsed.error.message}`);
3383
+ cachedData = parsed.data;
3347
3384
  cacheTime = now;
3348
3385
  return cachedData;
3349
3386
  }
@@ -3355,7 +3392,7 @@ async function listProviders() {
3355
3392
  return Object.values(data).map((p) => ({
3356
3393
  id: p.id,
3357
3394
  name: p.name,
3358
- env: p.env
3395
+ env: p.env ?? []
3359
3396
  })).sort((a, b) => a.name.localeCompare(b.name));
3360
3397
  }
3361
3398
  /**
@@ -3367,11 +3404,11 @@ async function getProvider(providerId) {
3367
3404
  return {
3368
3405
  id: provider.id,
3369
3406
  name: provider.name,
3370
- env: provider.env,
3407
+ env: provider.env ?? [],
3371
3408
  models: Object.values(provider.models).filter((m) => m.status !== "deprecated").map((m) => ({
3372
3409
  id: m.id,
3373
3410
  name: m.name,
3374
- reasoning: m.reasoning,
3411
+ reasoning: m.reasoning ?? false,
3375
3412
  experimental: m.experimental,
3376
3413
  status: m.status
3377
3414
  })).sort((a, b) => a.name.localeCompare(b.name))
@@ -3385,11 +3422,11 @@ async function listProvidersWithModels() {
3385
3422
  return Object.values(data).map((p) => ({
3386
3423
  id: p.id,
3387
3424
  name: p.name,
3388
- env: p.env,
3425
+ env: p.env ?? [],
3389
3426
  models: Object.values(p.models).filter((m) => m.status !== "deprecated").map((m) => ({
3390
3427
  id: m.id,
3391
3428
  name: m.name,
3392
- reasoning: m.reasoning,
3429
+ reasoning: m.reasoning ?? false,
3393
3430
  experimental: m.experimental,
3394
3431
  status: m.status
3395
3432
  })).sort((a, b) => a.name.localeCompare(b.name))
@@ -3500,14 +3537,18 @@ async function fetchLatestVersion(method) {
3500
3537
  if (installMethod === "npm" || installMethod === "pnpm" || installMethod === "bun") {
3501
3538
  const response = await fetch(`https://registry.npmjs.org/${NPM_PACKAGE}/latest`);
3502
3539
  if (!response.ok) return null;
3503
- return (await response.json()).version ?? null;
3540
+ const json = await response.json();
3541
+ const result = NpmPackageResponseSchema.safeParse(json);
3542
+ if (!result.success) return null;
3543
+ return result.data.version ?? null;
3504
3544
  }
3505
3545
  const response = await fetch(`https://api.github.com/repos/${GITHUB_REPO}/releases/latest`, { headers: {
3506
3546
  Accept: "application/vnd.github.v3+json",
3507
3547
  "User-Agent": "offworld-cli"
3508
3548
  } });
3509
3549
  if (!response.ok) return null;
3510
- return (await response.json()).tag_name?.replace(/^v/, "") ?? null;
3550
+ const json = await response.json();
3551
+ return (typeof json === "object" && json !== null && "tag_name" in json ? String(json.tag_name) : null)?.replace(/^v/, "") ?? null;
3511
3552
  } catch {
3512
3553
  return null;
3513
3554
  }