@osovv/vv-opencode 0.35.0 → 0.35.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.
package/README.md
CHANGED
|
@@ -235,6 +235,7 @@ Skills are loaded by OpenCode at session start through `config.skills.paths` (re
|
|
|
235
235
|
bun install # Install dependencies
|
|
236
236
|
bun run check # Typecheck + lint + format check + test
|
|
237
237
|
bun run fmt # Auto-format source files
|
|
238
|
+
bun run release:check # Verify package/schema release consistency
|
|
238
239
|
```
|
|
239
240
|
|
|
240
241
|
Git hooks managed via `lefthook`.
|
|
@@ -251,20 +252,51 @@ bun dist/cli.js status --config-dir "$tmpdir"
|
|
|
251
252
|
### Full release verification
|
|
252
253
|
|
|
253
254
|
```bash
|
|
255
|
+
bun run release:check
|
|
254
256
|
bun run check
|
|
255
|
-
bun run build
|
|
256
257
|
bun run pack:check
|
|
257
258
|
```
|
|
258
259
|
|
|
259
260
|
---
|
|
260
|
-
|
|
261
261
|
## Publishing
|
|
262
262
|
|
|
263
|
+
The release flow is automated via a local wrapper and a tag-gated GitHub Actions workflow.
|
|
264
|
+
|
|
265
|
+
### Local bump
|
|
266
|
+
|
|
267
|
+
```bash
|
|
268
|
+
bun run release:bump patch # or minor, major, prerelease, or explicit semver
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
This will:
|
|
272
|
+
1. Reject if the worktree is dirty
|
|
273
|
+
2. Bump `package.json` via `npm version --no-git-tag-version`
|
|
274
|
+
3. Update `schemas/vvoc/v3.json` `$id` to the new version
|
|
275
|
+
4. Run `release:check` for consistency
|
|
276
|
+
5. Create a release commit and annotated tag `vX.Y.Z`
|
|
277
|
+
|
|
278
|
+
### Push to trigger publish
|
|
279
|
+
|
|
280
|
+
```bash
|
|
281
|
+
git push && git push --tags
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
The GitHub Actions workflow triggers on `v*` tag pushes, verifies the tag matches
|
|
285
|
+
`package.json`, runs full validation (typecheck, lint, fmt check, tests, build, pack
|
|
286
|
+
check, `release:check`), and publishes to npm with `--provenance`.
|
|
287
|
+
|
|
288
|
+
### Checking consistency manually
|
|
289
|
+
|
|
263
290
|
```bash
|
|
264
|
-
bun run check
|
|
291
|
+
bun run release:check
|
|
265
292
|
```
|
|
266
293
|
|
|
267
|
-
|
|
294
|
+
This verifies that `package.json` name, version, and `schemas/vvoc/v3.json` `$id` and
|
|
295
|
+
config format version are all consistent. Run it independently anytime.
|
|
296
|
+
|
|
297
|
+
### CI publish workflow
|
|
298
|
+
|
|
299
|
+
The workflow uses npm provenance/trusted publishing (`id-token: write`) and does not publish on normal branch pushes. Configure npm trusted publishing for this GitHub repository/package, or adapt the publish step to use an `NPM_TOKEN` secret if token-based publishing is required.
|
|
268
300
|
|
|
269
301
|
---
|
|
270
302
|
|
|
@@ -3,6 +3,7 @@ import type { ProtocolErrorCode, TrackedAgentName } from "./protocol.js";
|
|
|
3
3
|
export type ResumableTaskEnvelope = {
|
|
4
4
|
taskId: string;
|
|
5
5
|
innerResult: string;
|
|
6
|
+
format: "resumable_header" | "task_element";
|
|
6
7
|
};
|
|
7
8
|
export declare function unwrapResumableTaskResult(output: string): {
|
|
8
9
|
normalizedOutput: string;
|
|
@@ -28,6 +28,7 @@ const SAFE_TRACKED_RESULT_REPAIR_CODES = new Set([
|
|
|
28
28
|
"MISSING_ROUTE",
|
|
29
29
|
"UNEXPECTED_TOP_BLOCK_LINE",
|
|
30
30
|
]);
|
|
31
|
+
const TASK_ELEMENT_OPEN_RE = /^<task\s+id="([^"]+)"\s+state="([^"]+)"\s*>$/;
|
|
31
32
|
const FORMAT_ONLY_REPAIR_SYSTEM_PROMPT = "Format-only workflow repair. Do not call tools, do not perform implementation or review work, and do not cause side effects. Return only the corrected final response text.";
|
|
32
33
|
const FORMAT_ONLY_REPAIR_DISABLED_TOOLS = {
|
|
33
34
|
apply_patch: false,
|
|
@@ -76,9 +77,61 @@ function parseResumableTaskEnvelope(output) {
|
|
|
76
77
|
.slice(startTagIndex + 1, endTagIndex)
|
|
77
78
|
.join("\n")
|
|
78
79
|
.trim(),
|
|
80
|
+
format: "resumable_header",
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Parse the new OpenCode `<task id="ses_..." state="completed">...</task>` envelope format.
|
|
85
|
+
* Also strips any nested `<task_result>`/`</task_result>` wrapper inside the element body.
|
|
86
|
+
*/
|
|
87
|
+
function parseTaskElementEnvelope(output) {
|
|
88
|
+
const normalizedOutput = output.replace(/\r\n/g, "\n");
|
|
89
|
+
const lines = normalizedOutput.split("\n");
|
|
90
|
+
const firstMeaningfulIndex = lines.findIndex((line) => line.trim().length > 0);
|
|
91
|
+
if (firstMeaningfulIndex < 0) {
|
|
92
|
+
return undefined;
|
|
93
|
+
}
|
|
94
|
+
const firstMeaningfulLine = lines[firstMeaningfulIndex]?.trim() ?? "";
|
|
95
|
+
const openTagMatch = TASK_ELEMENT_OPEN_RE.exec(firstMeaningfulLine);
|
|
96
|
+
if (!openTagMatch) {
|
|
97
|
+
return undefined;
|
|
98
|
+
}
|
|
99
|
+
const taskId = openTagMatch[1];
|
|
100
|
+
// Find closing </task> tag
|
|
101
|
+
const closeTagIndex = lines.findIndex((line, index) => index > firstMeaningfulIndex && line.trim() === "</task>");
|
|
102
|
+
if (closeTagIndex < 0) {
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
// Extract inner content (between open and close tags)
|
|
106
|
+
let innerLines = lines.slice(firstMeaningfulIndex + 1, closeTagIndex);
|
|
107
|
+
// Strip outer <task_result>/</task_result> wrapper if present
|
|
108
|
+
const innerFirstIdx = innerLines.findIndex((line) => line.trim().length > 0);
|
|
109
|
+
if (innerFirstIdx >= 0) {
|
|
110
|
+
const innerFirstTrimmed = innerLines[innerFirstIdx]?.trim() ?? "";
|
|
111
|
+
if (innerFirstTrimmed === "<task_result>") {
|
|
112
|
+
// Find the closing </task_result>
|
|
113
|
+
const innerCloseIdx = innerLines.findIndex((line, index) => index > innerFirstIdx && line.trim() === "</task_result>");
|
|
114
|
+
if (innerCloseIdx >= 0) {
|
|
115
|
+
innerLines = innerLines.slice(innerFirstIdx + 1, innerCloseIdx);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return {
|
|
120
|
+
taskId,
|
|
121
|
+
innerResult: innerLines.join("\n").trim(),
|
|
122
|
+
format: "task_element",
|
|
79
123
|
};
|
|
80
124
|
}
|
|
81
125
|
export function unwrapResumableTaskResult(output) {
|
|
126
|
+
// Try the new <task> element format first
|
|
127
|
+
const taskElementEnvelope = parseTaskElementEnvelope(output);
|
|
128
|
+
if (taskElementEnvelope) {
|
|
129
|
+
return {
|
|
130
|
+
normalizedOutput: taskElementEnvelope.innerResult,
|
|
131
|
+
...(taskElementEnvelope ? { envelope: taskElementEnvelope } : {}),
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
// Fall back to the old resumable task header format
|
|
82
135
|
const envelope = parseResumableTaskEnvelope(output);
|
|
83
136
|
return {
|
|
84
137
|
normalizedOutput: envelope?.innerResult ?? output,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repair.js","sourceRoot":"","sources":["../../../src/plugins/workflow/repair.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,iBAAiB;AACjB,wBAAwB;AACxB,0IAA0I;AAC1I,6JAA6J;AAC7J,uFAAuF;AACvF,uEAAuE;AACvE,kBAAkB;AAClB,sBAAsB;AACtB,sBAAsB;AACtB,EAAE;AACF,mBAAmB;AACnB,gHAAgH;AAChH,gHAAgH;AAChH,8GAA8G;AAC9G,0GAA0G;AAC1G,6HAA6H;AAC7H,iBAAiB;AACjB,EAAE;AACF,uBAAuB;AACvB,gJAAgJ;AAChJ,4JAA4J;AAC5J,0JAA0J;AAC1J,qBAAqB;
|
|
1
|
+
{"version":3,"file":"repair.js","sourceRoot":"","sources":["../../../src/plugins/workflow/repair.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@osovv/vv-opencode",
|
|
3
|
-
"version": "0.35.
|
|
3
|
+
"version": "0.35.1",
|
|
4
4
|
"description": "Portable OpenCode workflow plugins, explicit memory, and CLI tooling.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -68,6 +68,8 @@
|
|
|
68
68
|
"test": "bun test",
|
|
69
69
|
"check": "bun run typecheck && bun run lint && bun run fmt:check && bun test",
|
|
70
70
|
"pack:check": "bun run build && bun -e \"const root = await import('./dist/index.js'); if (!('GuardianPlugin' in root)) throw new Error('dist root export missing GuardianPlugin'); if (!('HashlineEditPlugin' in root)) throw new Error('dist root export missing HashlineEditPlugin'); if (!('ModelRolesPlugin' in root)) throw new Error('dist root export missing ModelRolesPlugin'); if (!('SystemContextInjectionPlugin' in root)) throw new Error('dist root export missing SystemContextInjectionPlugin'); if (!('WorkflowPlugin' in root)) throw new Error('dist root export missing WorkflowPlugin'); if (!('SecretsRedactionPlugin' in root)) throw new Error('dist root export missing SecretsRedactionPlugin'); await import('./dist/plugins/guardian/index.js'); await import('./dist/plugins/hashline-edit/index.js'); await import('./dist/plugins/model-roles/index.js'); await import('./dist/plugins/system-context-injection/index.js'); await import('./dist/plugins/workflow/index.js'); await import('./dist/plugins/secrets-redaction/index.js')\" && npm pack --dry-run",
|
|
71
|
+
"release:check": "bun scripts/release-check.ts",
|
|
72
|
+
"release:bump": "bun scripts/release-bump.ts",
|
|
71
73
|
"prepare": "lefthook install --force"
|
|
72
74
|
},
|
|
73
75
|
"dependencies": {
|
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.1/schemas/vvoc/v3.json",
|
|
4
4
|
"title": "vvoc config",
|
|
5
5
|
"description": "Canonical vvoc configuration document.",
|
|
6
6
|
"type": "object",
|
|
@@ -110,9 +110,7 @@
|
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
,
|
|
113
|
+
},
|
|
116
114
|
"plugins": {
|
|
117
115
|
"type": "object",
|
|
118
116
|
"propertyNames": { "minLength": 1 },
|
|
@@ -120,4 +118,5 @@
|
|
|
120
118
|
"type": "boolean"
|
|
121
119
|
}
|
|
122
120
|
}
|
|
121
|
+
}
|
|
123
122
|
}
|