@osovv/vv-opencode 0.35.1 → 0.35.5
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/dist/commands/patch-provider.d.ts +21 -3
- package/dist/commands/patch-provider.js +22 -3
- package/dist/commands/patch-provider.js.map +1 -1
- package/dist/lib/vvoc-preset-registry.d.ts +1 -1
- package/dist/lib/vvoc-preset-registry.js +1 -1
- package/dist/plugins/system-context-injection/index.js +31 -6
- package/dist/plugins/system-context-injection/index.js.map +1 -1
- package/package.json +1 -1
- package/schemas/vvoc/v3.json +1 -1
- package/templates/agents/vv-controller.md +6 -2
- package/templates/skills/vv-execute/SKILL.md +26 -2
|
@@ -13,10 +13,28 @@ type ProviderObjectPatchPreset = {
|
|
|
13
13
|
type PatchPreset = ProviderBaseUrlPatchPreset | ProviderObjectPatchPreset;
|
|
14
14
|
declare const PATCH_PROVIDER_PRESETS: {
|
|
15
15
|
readonly "stepfun-ai": {
|
|
16
|
-
readonly kind: "provider-
|
|
16
|
+
readonly kind: "provider-object";
|
|
17
17
|
readonly providerID: "stepfun";
|
|
18
|
-
readonly
|
|
19
|
-
|
|
18
|
+
readonly value: {
|
|
19
|
+
readonly options: {
|
|
20
|
+
readonly baseURL: "https://api.stepfun.ai/v1";
|
|
21
|
+
};
|
|
22
|
+
readonly models: {
|
|
23
|
+
readonly "step-3.7-flash": {
|
|
24
|
+
readonly name: "Step 3.7 Flash";
|
|
25
|
+
readonly limit: {
|
|
26
|
+
readonly context: 256000;
|
|
27
|
+
readonly input: 256000;
|
|
28
|
+
readonly output: 256000;
|
|
29
|
+
};
|
|
30
|
+
readonly modalities: {
|
|
31
|
+
readonly input: readonly ["text", "image"];
|
|
32
|
+
readonly output: readonly ["text"];
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
readonly summary: "provider.stepfun.models.step-3.7-flash patched + baseURL";
|
|
20
38
|
};
|
|
21
39
|
readonly zai: {
|
|
22
40
|
readonly kind: "provider-object";
|
|
@@ -33,6 +33,25 @@ const ZAI_CODING_PLAN_PATCH = {
|
|
|
33
33
|
},
|
|
34
34
|
},
|
|
35
35
|
};
|
|
36
|
+
const STEPFUN_PATCH = {
|
|
37
|
+
options: {
|
|
38
|
+
baseURL: "https://api.stepfun.ai/v1",
|
|
39
|
+
},
|
|
40
|
+
models: {
|
|
41
|
+
"step-3.7-flash": {
|
|
42
|
+
name: "Step 3.7 Flash",
|
|
43
|
+
limit: {
|
|
44
|
+
context: 256000,
|
|
45
|
+
input: 256000,
|
|
46
|
+
output: 256000,
|
|
47
|
+
},
|
|
48
|
+
modalities: {
|
|
49
|
+
input: ["text", "image"],
|
|
50
|
+
output: ["text"],
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
};
|
|
36
55
|
const OPENAI_PATCH = {
|
|
37
56
|
models: {
|
|
38
57
|
"vv-gpt-5.4-xhigh": {
|
|
@@ -59,10 +78,10 @@ const OPENAI_PATCH = {
|
|
|
59
78
|
};
|
|
60
79
|
const PATCH_PROVIDER_PRESETS = {
|
|
61
80
|
"stepfun-ai": {
|
|
62
|
-
kind: "provider-
|
|
81
|
+
kind: "provider-object",
|
|
63
82
|
providerID: "stepfun",
|
|
64
|
-
|
|
65
|
-
summary: "provider.stepfun.
|
|
83
|
+
value: STEPFUN_PATCH,
|
|
84
|
+
summary: "provider.stepfun.models.step-3.7-flash patched + baseURL",
|
|
66
85
|
},
|
|
67
86
|
zai: {
|
|
68
87
|
kind: "provider-object",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patch-provider.js","sourceRoot":"","sources":["../../src/commands/patch-provider.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,iBAAiB;AACjB,wBAAwB;AACxB,kDAAkD;AAClD,mLAAmL;AACnL,0CAA0C;AAC1C,gDAAgD;AAChD,kBAAkB;AAClB,sBAAsB;AACtB,sBAAsB;AACtB,EAAE;AACF,mBAAmB;AACnB,yDAAyD;AACzD,+FAA+F;AAC/F,8EAA8E;AAC9E,mGAAmG;AACnG,iBAAiB;AACjB,EAAE;AACF,uBAAuB;AACvB,oGAAoG;AACpG,qBAAqB;AAErB,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,2BAA2B,EAC3B,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAkB5B,MAAM,qBAAqB,GAAG;IAC5B,MAAM,EAAE;QACN,cAAc,EAAE;YACd,oBAAoB,EAAE;gBACpB,KAAK,EAAE;oBACL,OAAO,EAAE,MAAM;oBACf,MAAM,EAAE,KAAK;iBACd;aACF;SACF;KACF;CACyC,CAAC;AAE7C,MAAM,YAAY,GAAG;IACnB,MAAM,EAAE;QACN,kBAAkB,EAAE;YAClB,IAAI,EAAE,kBAAkB;YACxB,EAAE,EAAE,SAAS;YACb,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE;gBACP,eAAe,EAAE,OAAO;gBACxB,gBAAgB,EAAE,MAAM;gBACxB,OAAO,EAAE,CAAC,6BAA6B,CAAC;aACzC;SACF;QACD,kBAAkB,EAAE;YAClB,IAAI,EAAE,kBAAkB;YACxB,EAAE,EAAE,SAAS;YACb,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE;gBACP,eAAe,EAAE,OAAO;gBACxB,gBAAgB,EAAE,MAAM;gBACxB,OAAO,EAAE,CAAC,6BAA6B,CAAC;aACzC;SACF;KACF;CACyC,CAAC;AAE7C,MAAM,sBAAsB,GAAG;IAC7B,YAAY,EAAE;QACZ,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"patch-provider.js","sourceRoot":"","sources":["../../src/commands/patch-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,7 +39,7 @@ export declare const BUILTIN_VVOC_PRESET_REGISTRY: {
|
|
|
39
39
|
readonly description: "Personal osovv role assignments (deepseek + stepfun + minimax).";
|
|
40
40
|
readonly agents: {
|
|
41
41
|
readonly default: "deepseek/deepseek-v4-flash";
|
|
42
|
-
readonly fast: "stepfun/step-3.
|
|
42
|
+
readonly fast: "stepfun/step-3.7-flash";
|
|
43
43
|
readonly smart: "deepseek/deepseek-v4-pro";
|
|
44
44
|
readonly vision: "minimax-coding-plan/MiniMax-M2.7";
|
|
45
45
|
};
|
|
@@ -60,7 +60,7 @@ export const BUILTIN_VVOC_PRESET_REGISTRY = {
|
|
|
60
60
|
description: "Personal osovv role assignments (deepseek + stepfun + minimax).",
|
|
61
61
|
agents: {
|
|
62
62
|
default: "deepseek/deepseek-v4-flash",
|
|
63
|
-
fast: "stepfun/step-3.
|
|
63
|
+
fast: "stepfun/step-3.7-flash",
|
|
64
64
|
smart: "deepseek/deepseek-v4-pro",
|
|
65
65
|
vision: "minimax-coding-plan/MiniMax-M2.7",
|
|
66
66
|
},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// FILE: src/plugins/system-context-injection/index.ts
|
|
2
|
-
// VERSION: 0.
|
|
2
|
+
// VERSION: 0.4.1
|
|
3
3
|
// START_MODULE_CONTRACT
|
|
4
4
|
// PURPOSE: Inject reusable vvoc system context into primary chat sessions without polluting known subagent prompts.
|
|
5
5
|
// SCOPE: Main-session system instruction definitions, editing-workflow guidance, known subagent filtering, config-aware custom subagent tracking, and chat.message system prompt injection.
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
// END_MODULE_MAP
|
|
15
15
|
//
|
|
16
16
|
// START_CHANGE_SUMMARY
|
|
17
|
+
// LAST_CHANGE: [v0.4.1 - Added explore-specific system guidance that enforces compact search/discovery handoffs instead of file dumps.]
|
|
17
18
|
// LAST_CHANGE: [v0.3.4 - Added vvoc managed skill directory to config.skills.paths in config hook.]
|
|
18
19
|
// LAST_CHANGE: [v0.3.3 - Updated editing workflow guidance to prefer exact context-anchored `line#hash#anchor` refs from read output.]
|
|
19
20
|
// LAST_CHANGE: [v0.4.0 - Removed `apply_patch` instruction from editing_workflow block — tool-level disable is stronger than prompt text.]
|
|
@@ -27,17 +28,21 @@ import { MANAGED_SUBAGENT_NAMES } from "../../lib/managed-agents.js";
|
|
|
27
28
|
import { isPluginEnabled } from "../../lib/plugin-toggle-config.js";
|
|
28
29
|
import { existsSync } from "node:fs";
|
|
29
30
|
import { getGlobalOpencodeSkillsDir, getProjectVvocDir, getVvocSkillsDir, } from "../../lib/vvoc-paths.js";
|
|
30
|
-
const BUILT_IN_SUBAGENTS = ["general"
|
|
31
|
+
const BUILT_IN_SUBAGENTS = ["general"];
|
|
31
32
|
const PLUGIN_MANAGED_SUBAGENTS = ["guardian"];
|
|
32
33
|
const INTERNAL_PRIMARY_AGENTS = ["compaction", "title", "summary"];
|
|
33
34
|
const SELF_SUFFICIENT_PRIMARY_AGENTS = [];
|
|
35
|
+
const EXPLORE_SUBAGENT = "explore";
|
|
34
36
|
const MAIN_SESSION_SYSTEM_CONTEXTS = [
|
|
35
37
|
[
|
|
36
38
|
"<proactive_context_gathering>",
|
|
37
39
|
"Before answering questions about the codebase or making changes, gather the context you need whenever the task depends on unfamiliar code, unclear scope, or multiple candidate implementation areas.",
|
|
38
|
-
"When delegation is available, proactively use the explore subagent for
|
|
39
|
-
"
|
|
40
|
-
"
|
|
40
|
+
"When delegation is available, proactively use the explore subagent for repository search and discovery.",
|
|
41
|
+
"Treat the explore subagent as a grep/glob/fuzzy-search worker: use it to find relevant files, symbols, call sites, tests, config entries, and useful line ranges.",
|
|
42
|
+
"Do not ask explore to return exact file contents, large pasted excerpts, or rewrite proposals. If full contents are needed, have explore return file paths plus the most relevant line ranges or anchors, then read the file directly in the parent session.",
|
|
43
|
+
"Keep explore handoffs compact: a short summary and a small set of relevant file references with brief explanations.",
|
|
44
|
+
"Use short quoted snippets only when needed to disambiguate a match or support a finding.",
|
|
45
|
+
"Skip explore when the target file is already known and one or two direct reads are enough.",
|
|
41
46
|
"Gather evidence before acting on unfamiliar code.",
|
|
42
47
|
"If the task is already localized and the required context is already in view, work directly.",
|
|
43
48
|
"If the current agent cannot delegate, work with the context already in view.",
|
|
@@ -110,6 +115,20 @@ const MAIN_SESSION_SYSTEM_CONTEXTS = [
|
|
|
110
115
|
"</project_overlays>",
|
|
111
116
|
].join("\n"),
|
|
112
117
|
];
|
|
118
|
+
const EXPLORE_SYSTEM_CONTEXTS = [
|
|
119
|
+
[
|
|
120
|
+
"<explore_role>",
|
|
121
|
+
"You are a repository search-and-discovery worker.",
|
|
122
|
+
"Behave like grep/glob/fuzzy-search over the repo: locate relevant files, symbols, call sites, config entries, tests, and line ranges.",
|
|
123
|
+
"Do not act like a file-dumping reader and never act like an editor.",
|
|
124
|
+
"Do not return exact file contents, large pasted excerpts, or rewrite proposals unless the parent explicitly asks for them.",
|
|
125
|
+
"Default output: a short summary plus a compact, prioritized list of relevant paths with why they matter and line references or anchors when useful.",
|
|
126
|
+
"Use short quoted snippets only when needed to disambiguate a match or prove a finding.",
|
|
127
|
+
"If full contents seem necessary, return the path and the most relevant line ranges or anchors so the parent session can read the file directly.",
|
|
128
|
+
"Keep results capped and focused. Prefer the smallest useful set of references over broad dumps.",
|
|
129
|
+
"</explore_role>",
|
|
130
|
+
].join("\n"),
|
|
131
|
+
];
|
|
113
132
|
// START_BLOCK_AGENT_FILTERS
|
|
114
133
|
function createKnownSubagentSet() {
|
|
115
134
|
return new Set([...BUILT_IN_SUBAGENTS, ...PLUGIN_MANAGED_SUBAGENTS, ...MANAGED_SUBAGENT_NAMES]);
|
|
@@ -136,6 +155,12 @@ function shouldInjectForAgent(agentName, knownSubagents) {
|
|
|
136
155
|
}
|
|
137
156
|
return true;
|
|
138
157
|
}
|
|
158
|
+
function getSystemContextsForAgent(agentName) {
|
|
159
|
+
if (agentName === EXPLORE_SUBAGENT) {
|
|
160
|
+
return EXPLORE_SYSTEM_CONTEXTS;
|
|
161
|
+
}
|
|
162
|
+
return MAIN_SESSION_SYSTEM_CONTEXTS;
|
|
163
|
+
}
|
|
139
164
|
// END_BLOCK_AGENT_FILTERS
|
|
140
165
|
// START_BLOCK_SYSTEM_CONTEXT_FORMATTING
|
|
141
166
|
function hasInjectedContext(existingSystem, context) {
|
|
@@ -183,7 +208,7 @@ export const SystemContextInjectionPlugin = async () => {
|
|
|
183
208
|
if (!shouldInjectForAgent(output.message.agent, knownSubagents)) {
|
|
184
209
|
return;
|
|
185
210
|
}
|
|
186
|
-
output.message.system = appendSystemContexts(output.message.system,
|
|
211
|
+
output.message.system = appendSystemContexts(output.message.system, getSystemContextsForAgent(output.message.agent));
|
|
187
212
|
},
|
|
188
213
|
};
|
|
189
214
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/system-context-injection/index.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,iBAAiB;AACjB,wBAAwB;AACxB,sHAAsH;AACtH,8LAA8L;AAC9L,qFAAqF;AACrF,qEAAqE;AACrE,kBAAkB;AAClB,sBAAsB;AACtB,sBAAsB;AACtB,EAAE;AACF,mBAAmB;AACnB,0HAA0H;AAC1H,iBAAiB;AACjB,EAAE;AACF,uBAAuB;AACvB,sGAAsG;AACtG,yIAAyI;AACzI,6IAA6I;AAC7I,mKAAmK;AACnK,wJAAwJ;AACxJ,4LAA4L;AAC5L,yKAAyK;AACzK,2HAA2H;AAC3H,qBAAqB;AAGrB,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,kBAAkB,GAAG,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/system-context-injection/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/schemas/vvoc/v3.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "https://cdn.jsdelivr.net/npm/@osovv/vv-opencode@0.35.
|
|
3
|
+
"$id": "https://cdn.jsdelivr.net/npm/@osovv/vv-opencode@0.35.5/schemas/vvoc/v3.json",
|
|
4
4
|
"title": "vvoc config",
|
|
5
5
|
"description": "Canonical vvoc configuration document.",
|
|
6
6
|
"type": "object",
|
|
@@ -59,8 +59,12 @@ When rerouting, state the current route, the trigger, the next route, and why th
|
|
|
59
59
|
<context_gathering>
|
|
60
60
|
- CRITICAL: Every sub-agent (explore, investigator, vv-analyst, vv-architect, vv-implementer, vv-spec-reviewer, vv-code-reviewer, and any other delegate) starts with a COMPLETELY FRESH context. They have NO access to the current conversation history. ALL relevant findings, evidence, assumptions, and context MUST be explicitly passed in the delegation prompt. Never assume a sub-agent knows what was discussed earlier in this session.
|
|
61
61
|
- When findings, analysis results, or investigation output exist before delegating, enumerate them explicitly in the packet body. Do NOT write "as discussed", "as presented above", "the findings show", or similar hand-waving references.
|
|
62
|
-
- Use `explore` only for factual context gathering: locating files,
|
|
63
|
-
-
|
|
62
|
+
- Use `explore` only for factual context gathering and repository search: locating files, symbols, call sites, config entries, tests, and relevant line ranges.
|
|
63
|
+
- Treat `explore` as a grep/glob/fuzzy-search worker, not as a file-dumping reader and never as an editor.
|
|
64
|
+
- Do not ask `explore` to return exact file contents, full-file excerpts, or rewrite proposals. If full contents are needed, require `explore` to return paths plus the most relevant line ranges or anchors, then read the file directly in the parent session.
|
|
65
|
+
- Ask `explore` for a compact handoff only: a small set of relevant files, why each matters, and line references or anchors when useful. Prefer short summaries over pasted code.
|
|
66
|
+
- Use short quoted snippets only when necessary to disambiguate a match or prove a finding.
|
|
67
|
+
- Skip `explore` when the target file is already known and 1-2 direct reads are enough.
|
|
64
68
|
- After delegating factual exploration or review, let the subagent finish before starting new overlapping work. Continue with independent work or wait for the handoff.
|
|
65
69
|
- If context is already local and sufficient, work directly.
|
|
66
70
|
- Gather evidence before acting on unfamiliar code.
|
|
@@ -145,12 +145,36 @@ Run the acceptance criteria. For each criterion:
|
|
|
145
145
|
- Does the test pass?
|
|
146
146
|
- Did the implementer miss any edge cases?
|
|
147
147
|
|
|
148
|
-
If all criteria pass →
|
|
148
|
+
If all criteria pass → proceed to commit.
|
|
149
149
|
If criteria fail → re-dispatch implementer with specific failure details.
|
|
150
150
|
</step>
|
|
151
151
|
|
|
152
|
+
<step name="commit">
|
|
153
|
+
After all acceptance criteria pass, commit the task's changes to git.
|
|
154
|
+
All changed files (new, modified, deleted) from the task must be committed together.
|
|
155
|
+
|
|
156
|
+
Derive a business task identifier from (in priority order):
|
|
157
|
+
1. Branch name — extract ticket/issue reference (e.g. `feat/JIRA-123-description` → `JIRA-123`)
|
|
158
|
+
2. Spec title from `.vvoc/specs/` — if a spec exists for this feature, use its title
|
|
159
|
+
3. Plan title from plan.xml — use the plan's summary or overarching feature name
|
|
160
|
+
4. Ask the user explicitly — if no identifier is derivable, ask the user what business context to include
|
|
161
|
+
|
|
162
|
+
Match the commit message style to the repository's existing convention.
|
|
163
|
+
Inspect the last 10 commits with `git log --oneline -10` and replicate the pattern.
|
|
164
|
+
Typical modern repos use conventional commits: `type(scope): description` or `type: description`.
|
|
165
|
+
|
|
166
|
+
Format: `<business-ref> <type>(<scope>): <task title>`
|
|
167
|
+
e.g. `JIRA-123 feat(catalog): implement product search endpoint`
|
|
168
|
+
If no business identifier is available, omit it: `fix(scope): task title`
|
|
169
|
+
|
|
170
|
+
Do NOT include internal T-NNN task IDs in commit messages — these are workflow-local identifiers.
|
|
171
|
+
|
|
172
|
+
If git is not available or the working directory is not a git repository, skip with a warning.
|
|
173
|
+
If the commit fails (e.g. nothing to commit, hook rejection), report the failure and stop. Do not silently proceed.
|
|
174
|
+
</step>
|
|
175
|
+
|
|
152
176
|
<step name="close">
|
|
153
|
-
Mark the task complete in TodoWrite. Close the work item with work_item_close.
|
|
177
|
+
The task's changes are already committed. Mark the task complete in TodoWrite. Close the work item with work_item_close.
|
|
154
178
|
If all tasks are done → proceed to completion.
|
|
155
179
|
Otherwise → move to the next task in dependency order.
|
|
156
180
|
</step>
|