opencode-agentic-engine 0.1.9 → 0.2.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AA8lG/D,eAAO,MAAM,aAAa,EAAE,MAAqB,CAAA;AAEjD,QAAA,MAAM,YAAY,EAAE,YAGnB,CAAA;AACD,eAAe,YAAY,CAAA;AAG3B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAA;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AAC5J,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AA+mG/D,eAAO,MAAM,aAAa,EAAE,MAAqB,CAAA;AAEjD,QAAA,MAAM,YAAY,EAAE,YAGnB,CAAA;AACD,eAAe,YAAY,CAAA;AAG3B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAA;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AAC5J,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- // opencode-agentic-engine v0.1.9
1
+ // opencode-agentic-engine v0.2.1
2
2
  // Bundled for zero-install drop-in
3
3
 
4
4
  // src/index.ts
@@ -6565,7 +6565,7 @@ You have access to **22 specialized agentic_* tools** designed for software engi
6565
6565
  Your training data has a cutoff date. Before implementing:
6566
6566
  1. **Search skills**: \`agentic_skill find "relevant technology"\` \u2014 learn from past successes/failures
6567
6567
  2. **Search episodes**: \`agentic_episodes search "similar task"\` \u2014 see what worked before
6568
- 3. **Check latest versions**: Use \`websearch\` for "technology X latest version 2026" to ensure you use current APIs
6568
+ 3. **Search latest docs**: \`websearch "technology X latest version 2026"\` \u2014 check current APIs for ANY ecosystem (Node, Rust, Go, Python, etc.)
6569
6569
  4. Only then start implementing
6570
6570
 
6571
6571
  ### FOR MULTI-STEP FEATURES (apps, APIs, refactors):
@@ -6798,7 +6798,7 @@ Call the specific tool (agentic_nav, agentic_execute, etc.) directly.
6798
6798
  await traceLogger.init();
6799
6799
  } catch {
6800
6800
  }
6801
- autoUpdatePlugin("0.1.9");
6801
+ autoUpdatePlugin("0.2.1");
6802
6802
  configLoader.onChange((newConfig) => {
6803
6803
  vectorStore.setSearchWeights(newConfig.memory.search.keywordWeight, newConfig.memory.search.vectorWeight);
6804
6804
  vectorStore.setStopWordsLanguages(newConfig.memory.stopWordsLanguages);
@@ -9506,31 +9506,53 @@ ${dataset.data.slice(0, 2e3)}${dataset.data.length > 2e3 ? "\n\u2026 (truncated)
9506
9506
  `;
9507
9507
  }
9508
9508
  }
9509
- const techPattern = args.goal.match(/(node\.js|express|react|vue|angular|tailwind|bootstrap|sqlite|mongodb|postgres|typescript|next\.js|nuxt|svelte|prisma|drizzle|trpc|graphql|socket\.io|docker)/gi);
9510
- if (techPattern) {
9511
- const uniqueTech = [...new Set(techPattern.map((t) => t.toLowerCase().replace(/\.js$/, "").replace(/\.io$/, "")))];
9512
- knowledgeContext += `
9513
- ## Latest Technology Versions
9509
+ } catch {
9510
+ }
9511
+ let codebaseContext = "";
9512
+ try {
9513
+ for (const cfg of ["package.json", "Cargo.toml", "go.mod", "pyproject.toml", "Gemfile", "composer.json"]) {
9514
+ const cfgPath = join6(projectDir, cfg);
9515
+ if (existsSync8(cfgPath)) {
9516
+ codebaseContext += `
9517
+ ### ${cfg}
9518
+ \`\`\`
9519
+ ${readFileSync6(cfgPath, "utf-8").slice(0, 1e3)}
9520
+ \`\`\`
9514
9521
  `;
9515
- for (const tech of uniqueTech.slice(0, 4)) {
9522
+ }
9523
+ }
9524
+ const srcDirs = ["src", "app", "lib", "server"].filter((d) => existsSync8(join6(projectDir, d)));
9525
+ let filesRead = 0;
9526
+ for (const dir of srcDirs) {
9527
+ const walkDir = (d) => {
9528
+ if (filesRead >= 5) return;
9516
9529
  try {
9517
- const pkgName = tech === "node" ? "node" : tech === "socket" ? "socket.io" : tech;
9518
- const res = await fetch(`https://registry.npmjs.org/${pkgName}/latest`, { signal: AbortSignal.timeout(3e3) });
9519
- if (res.ok) {
9520
- const data = await res.json();
9521
- if (data.version) {
9522
- knowledgeContext += `- **${tech}**: v${data.version}${data.description ? ` \u2014 ${data.description.slice(0, 80)}` : ""}
9530
+ for (const entry of readdirSync2(d, { withFileTypes: true })) {
9531
+ if (filesRead >= 5) return;
9532
+ const full = join6(d, entry.name);
9533
+ if (entry.isDirectory() && !["node_modules", ".git", "dist"].includes(entry.name)) walkDir(full);
9534
+ else if (entry.isFile() && /\.(ts|js|tsx|jsx|mjs|rs|go|py)$/.test(entry.name)) {
9535
+ const content = readFileSync6(full, "utf-8").slice(0, 500);
9536
+ if (content.trim()) {
9537
+ codebaseContext += `
9538
+ ### ${full.replace(projectDir, ".")}
9539
+ \`\`\`
9540
+ ${content}
9541
+ \`\`\`
9523
9542
  `;
9543
+ filesRead++;
9544
+ }
9524
9545
  }
9525
9546
  }
9526
9547
  } catch {
9527
9548
  }
9528
- }
9549
+ };
9550
+ walkDir(join6(projectDir, dir));
9529
9551
  }
9530
9552
  } catch {
9531
9553
  }
9532
9554
  await navigator.scan(projectDir);
9533
- const summary = navigator.getSummary() + knowledgeContext;
9555
+ const summary = navigator.getSummary() + knowledgeContext + codebaseContext;
9534
9556
  let subtasks = [];
9535
9557
  try {
9536
9558
  const intent = await planner.decomposeWithLLM(llmEngine2, args.goal, summary);