@protolabsai/proto 0.41.0 → 0.45.0

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.
Files changed (2) hide show
  1. package/cli.js +60 -10
  2. package/package.json +2 -2
package/cli.js CHANGED
@@ -169159,7 +169159,7 @@ __export(geminiContentGenerator_exports, {
169159
169159
  createGeminiContentGenerator: () => createGeminiContentGenerator
169160
169160
  });
169161
169161
  function createGeminiContentGenerator(config2, gcConfig) {
169162
- const version2 = "0.41.0";
169162
+ const version2 = "0.45.0";
169163
169163
  const userAgent2 = config2.userAgent || `QwenCode/${version2} (${process.platform}; ${process.arch})`;
169164
169164
  const baseHeaders = {
169165
169165
  "User-Agent": userAgent2
@@ -170845,7 +170845,7 @@ function buildSystemPromptSuffix(text) {
170845
170845
 
170846
170846
  ${trimmed2}` : "";
170847
170847
  }
170848
- function getCoreSystemPrompt(userMemory, model, appendInstruction) {
170848
+ function getCoreSystemPrompt(userMemory, model, appendInstruction, interactive = false) {
170849
170849
  let systemMdEnabled = false;
170850
170850
  let systemMdPath = path20.resolve(path20.join(QWEN_CONFIG_DIR, "system.md"));
170851
170851
  const systemMdResolution = resolvePathFromEnv(process3.env["QWEN_SYSTEM_MD"]);
@@ -171109,6 +171109,36 @@ Workspace: ${parts2} files
171109
171109
  }
171110
171110
  }()}
171111
171111
 
171112
+ ${function() {
171113
+ if (!interactive)
171114
+ return "";
171115
+ if (!fs22.existsSync(path20.join(process3.cwd(), ".beads")))
171116
+ return "";
171117
+ return `
171118
+ # Beads (cross-session task tracker)
171119
+
171120
+ This workspace uses [beads_rust](https://github.com/Dicklesworthstone/beads_rust) (\`br\`). The ${ToolNames.TASK_CREATE} / ${ToolNames.TASK_UPDATE} tools you already use are backed by it, so every task you create persists to \`.beads/\` and survives across sessions on this machine.
171121
+
171122
+ Before inventing new tasks for a request, check for pre-existing work:
171123
+
171124
+ - \`br ready --json\` \u2014 actionable issues with no blockers; pick from here first
171125
+ - \`br list --status open --sort priority --json\` \u2014 full open list
171126
+ - \`br show <id> --json\` \u2014 details of a specific issue
171127
+
171128
+ When you take pre-existing work:
171129
+
171130
+ - \`br update --actor "\${BR_ACTOR:-assistant}" <id> --status in_progress --claim\`
171131
+ - \`br close --actor "\${BR_ACTOR:-assistant}" <id> --reason "evidence: <commit/PR/file>"\`
171132
+
171133
+ \`.beads/\` may be gitignored \u2014 check before running \`git add .beads/\`. When it IS tracked, sync to git after updates so other machines/agents see the changes:
171134
+
171135
+ - \`br sync --flush-only\` exports the DB to JSONL
171136
+ - \`git add .beads/ && git commit -m "<message>"\` \u2014 beads NEVER auto-commits; that's your job
171137
+
171138
+ Never run bare \`bv\` \u2014 it launches an interactive TUI and blocks the session. Use \`bv --robot-next\`, \`bv --robot-triage\`, etc. if you need it at all.
171139
+ `;
171140
+ }()}
171141
+
171112
171142
  ${getToolCallExamples(model || "")}
171113
171143
 
171114
171144
  # Final Reminder
@@ -197808,7 +197838,14 @@ ${blocks}`;
197808
197838
  { volatility: "run", content: blockerNote }
197809
197839
  ]);
197810
197840
  }
197811
- const corePrompt = getCoreSystemPrompt(userMemory, this.config.getModel(), appendSystemPrompt);
197841
+ const corePrompt = getCoreSystemPrompt(
197842
+ userMemory,
197843
+ this.config.getModel(),
197844
+ appendSystemPrompt,
197845
+ // Optional-chain so test mocks that don't stub isInteractive() still
197846
+ // pass; production Config always implements it.
197847
+ this.config.isInteractive?.() ?? false
197848
+ );
197812
197849
  return assemblePromptSections([
197813
197850
  { volatility: "stable", content: corePrompt.staticPrefix },
197814
197851
  { volatility: "workspace", content: corePrompt.dynamicSuffix },
@@ -271733,10 +271770,16 @@ var init_task_store = __esm({
271733
271770
  // Fallback in-memory store when br is not installed.
271734
271771
  fallbackTasks = null;
271735
271772
  fallbackPath;
271736
- constructor(runtimeDir, _sessionId, cwd6) {
271773
+ /**
271774
+ * @param interactive Only when true does this store shell out to `br` and
271775
+ * persist tasks into the shared `.beads/` queue. SDK / headless / CI
271776
+ * sessions stay on the per-session in-memory fallback so they don't
271777
+ * pollute the team-shared queue with ephemeral work.
271778
+ */
271779
+ constructor(runtimeDir, _sessionId, cwd6, interactive = false) {
271737
271780
  this.cwd = cwd6 ?? process.cwd();
271738
271781
  this.fallbackPath = path79.join(runtimeDir, "tasks", `${_sessionId}.json`);
271739
- this.brAvailable = this.detectBr();
271782
+ this.brAvailable = interactive && this.detectBr();
271740
271783
  if (this.brAvailable) {
271741
271784
  this.ensureInit();
271742
271785
  } else {
@@ -275965,7 +276008,14 @@ var init_config3 = __esm({
275965
276008
  }
275966
276009
  getTaskStore() {
275967
276010
  if (!this.taskStore) {
275968
- this.taskStore = new TaskStore(Storage.getRuntimeBaseDir(), this.getSessionId(), this.targetDir);
276011
+ this.taskStore = new TaskStore(
276012
+ Storage.getRuntimeBaseDir(),
276013
+ this.getSessionId(),
276014
+ this.targetDir,
276015
+ // Only interactive REPL sessions write to the shared `.beads/` queue;
276016
+ // SDK / headless / CI sessions stay on the per-session in-memory store.
276017
+ this.isInteractive?.() ?? false
276018
+ );
275969
276019
  }
275970
276020
  return this.taskStore;
275971
276021
  }
@@ -284655,7 +284705,7 @@ ${worktreeInfo}`);
284655
284705
  initialTask: this.arenaConfig?.task,
284656
284706
  runtimeConfig: {
284657
284707
  promptConfig: {
284658
- systemPrompt: getCoreSystemPrompt(this.config.getUserMemory(), model.modelId).full
284708
+ systemPrompt: getCoreSystemPrompt(this.config.getUserMemory(), model.modelId, void 0, this.config.isInteractive?.() ?? false).full
284659
284709
  },
284660
284710
  modelConfig: { model: model.modelId },
284661
284711
  runConfig: {
@@ -418133,7 +418183,7 @@ __name(getPackageJson, "getPackageJson");
418133
418183
  // packages/cli/src/utils/version.ts
418134
418184
  async function getCliVersion() {
418135
418185
  const pkgJson = await getPackageJson();
418136
- return "0.41.0";
418186
+ return "0.45.0";
418137
418187
  }
418138
418188
  __name(getCliVersion, "getCliVersion");
418139
418189
 
@@ -426141,7 +426191,7 @@ var formatDuration = /* @__PURE__ */ __name((milliseconds) => {
426141
426191
 
426142
426192
  // packages/cli/src/generated/git-commit.ts
426143
426193
  init_esbuild_shims();
426144
- var GIT_COMMIT_INFO = "bb10f1c94";
426194
+ var GIT_COMMIT_INFO = "7986bbcce";
426145
426195
 
426146
426196
  // packages/cli/src/utils/systemInfo.ts
426147
426197
  async function getNpmVersion() {
@@ -496163,7 +496213,7 @@ var QwenAgent = class {
496163
496213
  async initialize(args2) {
496164
496214
  this.clientCapabilities = args2.clientCapabilities;
496165
496215
  const authMethods = buildAuthMethods();
496166
- const version2 = "0.41.0";
496216
+ const version2 = "0.45.0";
496167
496217
  return {
496168
496218
  protocolVersion: PROTOCOL_VERSION,
496169
496219
  agentInfo: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@protolabsai/proto",
3
- "version": "0.41.0",
3
+ "version": "0.45.0",
4
4
  "description": "proto - AI-powered coding agent",
5
5
  "repository": {
6
6
  "type": "git",
@@ -21,7 +21,7 @@
21
21
  "bundled"
22
22
  ],
23
23
  "config": {
24
- "sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.41.0"
24
+ "sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.45.0"
25
25
  },
26
26
  "dependencies": {},
27
27
  "optionalDependencies": {