@maincode-ai/matilda-code 0.19.8 → 0.20.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.
- package/bundled/{qc-helper → mainy}/SKILL.md +2 -2
- package/bundled/{qc-helper → mainy}/docs/features/commands.md +6 -6
- package/chunks/{agent-2NBSL6Q2.js → agent-N5H7ZVZN.js} +1 -1
- package/chunks/{agent-headless-AXEWDJRM.js → agent-headless-LBLAX66M.js} +1 -1
- package/chunks/askUserQuestion-MFLZ7MGJ.js +25 -0
- package/chunks/{chunk-WIDV26MB.js → chunk-CYTN3WRM.js} +1 -1
- package/chunks/{chunk-ILO32IXN.js → chunk-IB7TWUWM.js} +2 -2
- package/chunks/{chunk-WN7W7S2V.js → chunk-QT4UNNZ4.js} +1 -1
- package/chunks/{chunk-HUPUKBVY.js → chunk-RO6LKQPB.js} +3 -3
- package/chunks/{chunk-OJTERV74.js → chunk-TRM7SXZ5.js} +1 -1
- package/chunks/{chunk-HDVKP4RM.js → chunk-Z7OHKQ7V.js} +1 -1
- package/chunks/{computer-use-7PIVVKPK.js → computer-use-LG4QQFMP.js} +1 -1
- package/chunks/{contextCommand-SO4X2MS6.js → contextCommand-7KHYFQ6G.js} +1 -1
- package/chunks/{edit-B5KZGY7B.js → edit-U4PMKZYZ.js} +1 -1
- package/chunks/{enter-worktree-RRN3GMRW.js → enter-worktree-OIP2B3NM.js} +1 -1
- package/chunks/{enterPlanMode-ZPXWNPYM.js → enterPlanMode-6LZSSWFT.js} +1 -1
- package/chunks/{exit-worktree-HND5ZVDQ.js → exit-worktree-VN5I5XWV.js} +1 -1
- package/chunks/{exitPlanMode-K7HACJ6K.js → exitPlanMode-HE6EEGTO.js} +1 -1
- package/chunks/{geminiContentGenerator-ZE6UPRAE.js → geminiContentGenerator-GWGLIDJJ.js} +1 -1
- package/chunks/{glob-PXQT4CHI.js → glob-EGOAJNOQ.js} +1 -1
- package/chunks/{grep-B2OXQK7Q.js → grep-JYHW6SSG.js} +1 -1
- package/chunks/{matildaAgentContentGenerator-Q43QK5GQ.js → matildaAgentContentGenerator-AKNRQW6A.js} +1 -1
- package/chunks/{matildaContentGenerator-MTZC3PAG.js → matildaContentGenerator-MXP3V2UQ.js} +1 -1
- package/chunks/{monitor-6AWWXDIL.js → monitor-IDNOTNUP.js} +1 -1
- package/chunks/{notebook-edit-7BJPP7ZB.js → notebook-edit-4VBYBZFJ.js} +1 -1
- package/chunks/{openaiContentGenerator-JX2JAR3V.js → openaiContentGenerator-WTRQK5RJ.js} +1 -1
- package/chunks/{ripGrep-G3IY6ZWZ.js → ripGrep-DOB57AMM.js} +1 -1
- package/chunks/{scheduler-FFE43QWC.js → scheduler-AOKJEAXJ.js} +1 -1
- package/chunks/{serve-RXBWGIMV.js → serve-2JJY265V.js} +1 -1
- package/chunks/{shell-4HTE526K.js → shell-WFONAKPV.js} +1 -1
- package/chunks/{src-F4LDZDLP.js → src-IHYMMU26.js} +1 -1
- package/chunks/{team-create-VWJKHFTR.js → team-create-Z6636NPD.js} +1 -1
- package/chunks/{web-search-FEZM3B3R.js → web-search-W2FYCGK5.js} +1 -1
- package/chunks/{workflow-GNYDTGHJ.js → workflow-M7KXXDO6.js} +2 -2
- package/chunks/{write-file-2PLDMI5M.js → write-file-O4DJX4LP.js} +1 -1
- package/cli.js +90 -90
- package/package.json +2 -2
- package/chunks/askUserQuestion-V5YLTC4J.js +0 -25
- /package/bundled/{qc-helper → mainy}/docs/_meta.ts +0 -0
- /package/bundled/{qc-helper → mainy}/docs/common-workflow.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/configuration/_meta.ts +0 -0
- /package/bundled/{qc-helper → mainy}/docs/configuration/auth.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/configuration/matilda-ignore.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/configuration/model-providers.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/configuration/settings.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/configuration/themes.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/configuration/trusted-folders.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/extension/_meta.ts +0 -0
- /package/bundled/{qc-helper → mainy}/docs/extension/extension-releasing.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/extension/getting-started-extensions.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/extension/introduction.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/features/_meta.ts +0 -0
- /package/bundled/{qc-helper → mainy}/docs/features/approval-mode.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/features/arena.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/features/auto-mode.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/features/channels/_meta.ts +0 -0
- /package/bundled/{qc-helper → mainy}/docs/features/channels/dingtalk.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/features/channels/feishu.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/features/channels/overview.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/features/channels/plugins.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/features/channels/telegram.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/features/channels/weixin.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/features/code-review.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/features/dual-output.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/features/followup-suggestions.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/features/headless.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/features/hooks.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/features/language.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/features/lsp.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/features/markdown-rendering.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/features/mcp.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/features/memory.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/features/sandbox.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/features/scheduled-tasks.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/features/skills.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/features/status-line.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/features/structured-output.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/features/sub-agents.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/features/tips.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/features/token-caching.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/features/tool-use-summaries.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/features/worktree.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/ide-integration/_meta.ts +0 -0
- /package/bundled/{qc-helper → mainy}/docs/ide-integration/ide-companion-spec.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/ide-integration/ide-integration.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/integration-github-action.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/integration-jetbrains.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/integration-vscode.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/integration-zed.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/matilda-serve-deploy-local.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/matilda-serve.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/overview.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/quickstart.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/reference/_meta.ts +0 -0
- /package/bundled/{qc-helper → mainy}/docs/reference/keyboard-shortcuts.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/support/Uninstall.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/support/_meta.ts +0 -0
- /package/bundled/{qc-helper → mainy}/docs/support/tos-privacy.md +0 -0
- /package/bundled/{qc-helper → mainy}/docs/support/troubleshooting.md +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@maincode-ai/matilda-code",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.20.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "cli.js",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"bundled"
|
|
23
23
|
],
|
|
24
24
|
"config": {
|
|
25
|
-
"sandboxImageUri": "ghcr.io/maincode/matilda-code:0.
|
|
25
|
+
"sandboxImageUri": "ghcr.io/maincode/matilda-code:0.20.0"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {},
|
|
28
28
|
"optionalDependencies": {
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
// Force strict mode and setup for ESM
|
|
2
|
-
"use strict";
|
|
3
|
-
import{a as r}from"./chunk-ILBTI4K5.js";import"./chunk-47XR7IMP.js";import{g as m,i as h,p as f,q as g}from"./chunk-5U3A6KMU.js";import{Y as d}from"./chunk-QWBNNEV2.js";import"./chunk-FWDMPRKU.js";import{b as p}from"./chunk-GZPNIYVZ.js";import"./chunk-OWGSC52X.js";p();var a=d("ASK_USER_QUESTION"),w=`Use this tool when you need to ask the user questions during execution. This allows you to:
|
|
4
|
-
1. Gather user preferences or requirements
|
|
5
|
-
2. Clarify ambiguous instructions
|
|
6
|
-
3. Get decisions on implementation choices as you work
|
|
7
|
-
4. Offer choices to the user about what direction to take.
|
|
8
|
-
|
|
9
|
-
Usage notes:
|
|
10
|
-
- Users will always be able to select "Other" to provide custom text input
|
|
11
|
-
- Use multiSelect: true to allow multiple answers to be selected for a question
|
|
12
|
-
- If you recommend a specific option, make that the first option in the list and add "(Recommended)" at the end of the label
|
|
13
|
-
|
|
14
|
-
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.
|
|
15
|
-
`,A={name:"ask_user_question",description:w,parametersJsonSchema:{$schema:"https://json-schema.org/draft/2020-12/schema",type:"object",properties:{questions:{description:"Questions to ask the user (1-4 questions)",minItems:1,maxItems:4,type:"array",items:{type:"object",properties:{question:{description:'The complete question to ask the user. Should be clear, specific, and end with a question mark. Example: "Which library should we use for date formatting?" If multiSelect is true, phrase it accordingly, e.g. "Which features do you want to enable?"',type:"string"},header:{description:'Very short label displayed as a chip/tag (max 12 chars). Examples: "Auth method", "Library", "Approach".',type:"string"},options:{description:"The available choices for this question. Must have 2-4 options. Each option should be a distinct, mutually exclusive choice (unless multiSelect is enabled). There should be no 'Other' option, that will be provided automatically.",minItems:2,maxItems:4,type:"array",items:{type:"object",properties:{label:{description:"The display text for this option that the user will see and select. Should be concise (1-5 words) and clearly describe the choice.",type:"string"},description:{description:"Explanation of what this option means or what will happen if chosen. Useful for providing context about trade-offs or implications.",type:"string"}},required:["label","description"],additionalProperties:!1}},multiSelect:{description:"Set to true to allow the user to select multiple options instead of just one. Use when choices are not mutually exclusive.",default:!1,type:"boolean"}},required:["question","header","options"],additionalProperties:!1}},metadata:{description:"Optional metadata for tracking and analytics purposes. Not displayed to user.",type:"object",properties:{source:{description:'Optional identifier for the source of this question (e.g., "remember" for /remember command). Used for analytics tracking.',type:"string"}},additionalProperties:!1}},required:["questions"],additionalProperties:!1}},l=class extends m{constructor(s,e){super(e);this._config=s}userAnswers={};wasAnswered=!1;getDescription(){let s=this.params.questions.length;return`Ask user ${s} question${s>1?"s":""}`}async getDefaultPermission(){let s=this._config.getExperimentalZedIntegration()||this._config.getInputFormat()==="stream-json";return!this._config.isInteractive()&&!s?"allow":"ask"}async getConfirmationDetails(s){return{type:"ask_user_question",title:"Please answer the following question(s):",questions:this.params.questions,metadata:this.params.metadata,onConfirm:async(t,o)=>{switch(t){case"proceed_once":case"proceed_always":this.wasAnswered=!0,this.userAnswers=o?.answers??{};break;case"cancel":this.wasAnswered=!1;break;default:this.wasAnswered=!0,this.userAnswers=o?.answers??{};break}}}}async execute(s){try{let e=this._config.getExperimentalZedIntegration()||this._config.getInputFormat()==="stream-json";if(!this._config.isInteractive()&&!e){let i="Cannot ask user questions in non-interactive mode without ACP support. Please run in interactive mode or enable ACP mode to use this tool.";return{llmContent:i,returnDisplay:i}}if(!this.wasAnswered){let i="User declined to answer the questions.";return{llmContent:i,returnDisplay:i}}let t=Object.entries(this.userAnswers).map(([i,q])=>{let c=parseInt(i,10);return`**${this.params.questions[c]?.header||`Question ${c+1}`}**: ${q}`}).join(`
|
|
16
|
-
`);this.applyPlanGateMetadata();let o=`User has provided the following answers:
|
|
17
|
-
|
|
18
|
-
${t}`,n=`User has provided the following answers:
|
|
19
|
-
|
|
20
|
-
${t}`;return{llmContent:o,returnDisplay:n}}catch(e){let t=e instanceof Error?e.message:String(e);return a.error(`[AskUserQuestionTool] Error executing ask_user_question: ${t}`),{llmContent:`Failed to process user answers: ${t}`,returnDisplay:`Error processing answers: ${t}`}}}applyPlanGateMetadata(){let s=this.params.metadata?.source;if(!s)return;let e=this._config.getPlanGateState();if(e){if(s==="plan_gate_cap"){if(!e.capEscalationPending){a.warn("[applyPlanGateMetadata] plan_gate_cap ignored: no cap escalation pending");return}let t=Object.values(this.userAnswers)[0]??"";t===r.CONTINUE?e.gateMode="uncapped":t===r.APPROVE?e.gateMode="user_override":e.gateMode="user_takeover",e.capEscalationPending=!1}else if(s==="plan_gate_needs_user"){if(!e.needsUserPending){a.warn("[applyPlanGateMetadata] plan_gate_needs_user ignored: no needs_user pending");return}(e.gateMode==="capped"||e.gateMode==="uncapped")&&(e.reviewCount=0),e.needsUserPending=!1}}}},y=class u extends h{constructor(s){super(u.Name,g.ASK_USER_QUESTION,w,"think",A.parametersJsonSchema,!0,!1,!1);this.config=s}static Name=f.ASK_USER_QUESTION;validateToolParams(s){if(!Array.isArray(s.questions))return'Parameter "questions" must be an array.';if(s.questions.length<1||s.questions.length>4)return'Parameter "questions" must contain between 1 and 4 questions.';for(let e=0;e<s.questions.length;e++){let t=s.questions[e];if(!t.question||typeof t.question!="string"||t.question.trim()==="")return`Question ${e+1}: "question" must be a non-empty string.`;if(!t.header||typeof t.header!="string"||t.header.trim()==="")return`Question ${e+1}: "header" must be a non-empty string.`;if(t.header.length>12)return`Question ${e+1}: "header" must be 12 characters or less.`;if(!Array.isArray(t.options))return`Question ${e+1}: "options" must be an array.`;if(t.options.length<2||t.options.length>4)return`Question ${e+1}: "options" must contain between 2 and 4 options.`;for(let o=0;o<t.options.length;o++){let n=t.options[o];if(!n.label||typeof n.label!="string"||n.label.trim()==="")return`Question ${e+1}, Option ${o+1}: "label" must be a non-empty string.`;if(!n.description||typeof n.description!="string"||n.description.trim()==="")return`Question ${e+1}, Option ${o+1}: "description" must be a non-empty string.`}if(t.multiSelect!==void 0&&typeof t.multiSelect!="boolean")return`Question ${e+1}: "multiSelect" must be a boolean.`}return null}createInvocation(s){return new l(this.config,s)}};export{y as AskUserQuestionTool};
|
|
21
|
-
/**
|
|
22
|
-
* @license
|
|
23
|
-
* Copyright 2025 Matilda
|
|
24
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
25
|
-
*/
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|