@protolabsai/proto 0.31.0 → 0.31.2

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
@@ -399,7 +399,7 @@ proto ships with 22 bundled skills for agentic workflows:
399
399
  - **finishing-a-development-branch** — Pre-merge cleanup
400
400
  - **harness-reference** — Sprint contracts, verification gates, and retry logic reference
401
401
  - **loop** — Iterative refinement loops
402
- - **qc-helper** — Quality control checks
402
+ - **proto-helper** — protoCLI usage, features, configuration, and troubleshooting
403
403
  - **receiving-code-review** — Process review feedback
404
404
  - **requesting-code-review** — Generate review requests
405
405
  - **review** — Code review workflow
@@ -1,6 +1,6 @@
1
1
  ---
2
- name: qc-helper
3
- description: Answer any question about Qwen Code usage, features, configuration, and troubleshooting by referencing the official user documentation. Also helps users view or modify their settings.json. Invoke with `/qc-helper` followed by a question, e.g. `/qc-helper how do I configure MCP servers?` or `/qc-helper change approval mode to yolo`.
2
+ name: proto-helper
3
+ description: Answer any question about protoCLI usage, features, configuration, and troubleshooting by referencing the official user documentation. Also helps users view or modify their settings.json. Invoke with `/proto-helper` followed by a question, e.g. `/proto-helper how do I configure MCP servers?` or `/proto-helper change approval mode to yolo`.
4
4
  allowedTools:
5
5
  - read_file
6
6
  - edit_file
@@ -9,9 +9,9 @@ allowedTools:
9
9
  - read_many_files
10
10
  ---
11
11
 
12
- # Qwen Code Helper
12
+ # protoCLI Helper
13
13
 
14
- You are a helpful assistant for **Qwen Code** — an AI coding agent for the terminal. Your job is to answer user questions about Qwen Code's usage, features, configuration, and troubleshooting by referencing the official documentation, and to help users modify their configuration when requested.
14
+ You are a helpful assistant for **protoCLI** — an AI coding agent for the terminal. Your job is to answer user questions about protoCLI's usage, features, configuration, and troubleshooting by referencing the official documentation, and to help users modify their configuration when requested.
15
15
 
16
16
  ## How to Find Documentation
17
17
 
@@ -100,9 +100,9 @@ When the user asks about configuration, the primary reference is `docs/configura
100
100
 
101
101
  | Level | Path | Description |
102
102
  | ------- | ------------------------------------------------------------ | -------------------------------------- |
103
- | User | `~/.qwen/settings.json` | Personal global config |
104
- | Project | `<project>/.qwen/settings.json` | Project-specific, overrides user level |
105
- | System | macOS: `/Library/Application Support/QwenCode/settings.json` | Admin-level config |
103
+ | User | `~/.proto/settings.json` | Personal global config |
104
+ | Project | `<project>/.proto/settings.json` | Project-specific, overrides user level |
105
+ | System | macOS: `/Library/Application Support/protoCLI/settings.json` | Admin-level config |
106
106
 
107
107
  **Priority** (highest to lowest): CLI args > env vars > system settings > project settings > user settings > defaults
108
108
 
@@ -136,12 +136,12 @@ When the user asks about configuration, the primary reference is `docs/configura
136
136
  When the user wants to modify their configuration:
137
137
 
138
138
  1. **Read the relevant doc** to understand the config key, its type, allowed values, and defaults
139
- 2. **Ask which config level** to modify if not specified: user (`~/.qwen/settings.json`) or project (`.qwen/settings.json`)
139
+ 2. **Ask which config level** to modify if not specified: user (`~/.proto/settings.json`) or project (`.proto/settings.json`)
140
140
  3. **Use `read_file`** to check the current content of the target settings file
141
141
  4. **Use `edit_file`** to apply the change with correct JSON syntax
142
142
  5. **After every configuration change**, you MUST remind the user:
143
143
 
144
- > **Note: Most configuration changes require restarting Qwen Code (`/exit` then re-launch) to take effect.** Only a few settings (like `permissions`) are picked up dynamically.
144
+ > **Note: Most configuration changes require restarting protoCLI (`/exit` then re-launch) to take effect.** Only a few settings (like `permissions`) are picked up dynamically.
145
145
 
146
146
  ### Important Notes
147
147
 
package/cli.js CHANGED
@@ -169083,7 +169083,7 @@ __export(geminiContentGenerator_exports, {
169083
169083
  createGeminiContentGenerator: () => createGeminiContentGenerator
169084
169084
  });
169085
169085
  function createGeminiContentGenerator(config2, gcConfig) {
169086
- const version2 = "0.31.0";
169086
+ const version2 = "0.31.2";
169087
169087
  const userAgent2 = config2.userAgent || `QwenCode/${version2} (${process.platform}; ${process.arch})`;
169088
169088
  const baseHeaders = {
169089
169089
  "User-Agent": userAgent2
@@ -210680,6 +210680,22 @@ Usage notes:
210680
210680
  - Users will always be able to select "Other" to provide custom text input
210681
210681
  - Use multiSelect: true to allow multiple answers to be selected for a question
210682
210682
  - If you recommend a specific option, make that the first option in the list and add "(Recommended)" at the end of the label
210683
+ - IMPORTANT: \`questions\` is a real array. Do NOT JSON-encode it as a string.
210684
+
210685
+ Example shape (replace placeholder text with your actual question/options):
210686
+ {
210687
+ "questions": [
210688
+ {
210689
+ "question": "<your question, ending in '?'>",
210690
+ "header": "<short label, \u226430 chars>",
210691
+ "options": [
210692
+ { "label": "<choice A>", "description": "<what choice A means>" },
210693
+ { "label": "<choice B>", "description": "<what choice B means>" }
210694
+ ],
210695
+ "multiSelect": false
210696
+ }
210697
+ ]
210698
+ }
210683
210699
 
210684
210700
  Plan mode note: In plan mode, use this tool to clarify requirements or choose between approaches BEFORE finalizing your plan. Do NOT use this tool to ask "Is this plan ready?" or "Should I proceed?" - use ExitPlanMode for plan approval.
210685
210701
  `;
@@ -210859,6 +210875,16 @@ ${answersContent}`;
210859
210875
  this.config = config2;
210860
210876
  }
210861
210877
  validateToolParams(params) {
210878
+ if (typeof params.questions === "string") {
210879
+ const raw2 = params.questions;
210880
+ try {
210881
+ const parsed = JSON.parse(raw2);
210882
+ debugLogger40.warn(`[ask_user_question] coerced stringified questions array (len=${raw2.length}). Model emitted JSON-encoded string instead of native array.`);
210883
+ params.questions = parsed;
210884
+ } catch {
210885
+ return 'Parameter "questions" was a string that could not be parsed as JSON. Pass `questions` as a real array literal, not a JSON-encoded string.';
210886
+ }
210887
+ }
210862
210888
  if (!Array.isArray(params.questions)) {
210863
210889
  return 'Parameter "questions" must be an array.';
210864
210890
  }
@@ -414993,7 +415019,7 @@ __name(getPackageJson, "getPackageJson");
414993
415019
  // packages/cli/src/utils/version.ts
414994
415020
  async function getCliVersion() {
414995
415021
  const pkgJson = await getPackageJson();
414996
- return "0.31.0";
415022
+ return "0.31.2";
414997
415023
  }
414998
415024
  __name(getCliVersion, "getCliVersion");
414999
415025
 
@@ -422765,7 +422791,7 @@ var formatDuration = /* @__PURE__ */ __name((milliseconds) => {
422765
422791
 
422766
422792
  // packages/cli/src/generated/git-commit.ts
422767
422793
  init_esbuild_shims();
422768
- var GIT_COMMIT_INFO = "d77ab4b1b";
422794
+ var GIT_COMMIT_INFO = "6f0311683";
422769
422795
 
422770
422796
  // packages/cli/src/utils/systemInfo.ts
422771
422797
  async function getNpmVersion() {
@@ -490931,7 +490957,7 @@ var QwenAgent = class {
490931
490957
  async initialize(args2) {
490932
490958
  this.clientCapabilities = args2.clientCapabilities;
490933
490959
  const authMethods = buildAuthMethods();
490934
- const version2 = "0.31.0";
490960
+ const version2 = "0.31.2";
490935
490961
  return {
490936
490962
  protocolVersion: PROTOCOL_VERSION,
490937
490963
  agentInfo: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@protolabsai/proto",
3
- "version": "0.31.0",
3
+ "version": "0.31.2",
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.31.0"
24
+ "sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.31.2"
25
25
  },
26
26
  "dependencies": {},
27
27
  "optionalDependencies": {