@opencode_weave/weave 0.5.0 → 0.5.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 +5 -0
- package/dist/index.js +9 -7
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -35,6 +35,7 @@ Weave is a lean OpenCode plugin with multi-agent orchestration. It provides a co
|
|
|
35
35
|
- [Background Agents](#background-agents)
|
|
36
36
|
- [Tool Permissions](#tool-permissions)
|
|
37
37
|
- [Development](#development)
|
|
38
|
+
- [Acknowledgments](#acknowledgments)
|
|
38
39
|
- [License](#license)
|
|
39
40
|
|
|
40
41
|
## Overview
|
|
@@ -312,6 +313,10 @@ Tool access is controlled per-agent to ensure safety and specialized focus. For
|
|
|
312
313
|
- **Typecheck**: `bun run typecheck`
|
|
313
314
|
- **Clean**: `bun run clean`
|
|
314
315
|
|
|
316
|
+
## Acknowledgments
|
|
317
|
+
|
|
318
|
+
Weave was inspired by [Oh My OpenCode](https://github.com/code-yeongyu/oh-my-opencode) by [@code-yeongyu](https://github.com/code-yeongyu) — a pioneering OpenCode plugin that proved multi-agent orchestration, discipline agents, and structured plan-execute workflows could radically improve the developer experience. Many of Weave's core ideas — from category-based task dispatch to background agent parallelism — trace their roots to patterns Oh My OpenCode established. We're grateful for the trailblazing work and the vibrant community around it.
|
|
319
|
+
|
|
315
320
|
## License
|
|
316
321
|
|
|
317
322
|
MIT
|
package/dist/index.js
CHANGED
|
@@ -525,7 +525,7 @@ FORMAT RULES:
|
|
|
525
525
|
- Use /start-work to hand off to Tapestry for todo-list driven execution of multi-step plans
|
|
526
526
|
- Use shuttle for category-specific specialized work
|
|
527
527
|
- Use Weft for reviewing completed work or validating plans before execution
|
|
528
|
-
-
|
|
528
|
+
- MUST use Warp for security audits when changes touch auth, crypto, certificates, tokens, signatures, or input validation — not optional
|
|
529
529
|
- Delegate aggressively to keep your context lean
|
|
530
530
|
</Delegation>
|
|
531
531
|
|
|
@@ -568,6 +568,7 @@ For complex tasks that benefit from structured planning before execution:
|
|
|
568
568
|
- SKIP ONLY IF: User explicitly says "skip review"
|
|
569
569
|
- Weft reads the plan, verifies file references, checks executability
|
|
570
570
|
- If Weft rejects, send issues back to Pattern for revision
|
|
571
|
+
- MANDATORY: If the plan touches security-relevant areas (crypto, auth, certificates, tokens, signatures, or input validation) → also run Warp on the plan
|
|
571
572
|
3. EXECUTE: Tell the user to run \`/start-work\` to begin execution
|
|
572
573
|
- /start-work loads the plan, creates work state at \`.weave/state.json\`, and switches to Tapestry
|
|
573
574
|
- Tapestry reads the plan and works through tasks, marking checkboxes as it goes
|
|
@@ -596,11 +597,12 @@ When to skip Weft:
|
|
|
596
597
|
- User explicitly says "skip review"
|
|
597
598
|
- Simple question-answering (no code changes)
|
|
598
599
|
|
|
599
|
-
|
|
600
|
+
MANDATORY — If ANY changed file touches crypto, auth, certificates, tokens, signatures, or input validation:
|
|
601
|
+
→ MUST run Warp in parallel with Weft. This is NOT optional.
|
|
602
|
+
→ Failure to invoke Warp for security-relevant changes is a workflow violation.
|
|
600
603
|
- Warp is read-only and skeptical-biased — it rejects when security is at risk
|
|
601
604
|
- Warp self-triages: if no security-relevant changes, it fast-exits with APPROVE
|
|
602
605
|
- If Warp rejects: address the specific security issues before shipping
|
|
603
|
-
- Run Warp in parallel with Weft for comprehensive coverage
|
|
604
606
|
</ReviewWorkflow>
|
|
605
607
|
|
|
606
608
|
<Style>
|
|
@@ -1879,13 +1881,13 @@ function getPlanName(planPath) {
|
|
|
1879
1881
|
}
|
|
1880
1882
|
// src/features/work-state/validation.ts
|
|
1881
1883
|
import { readFileSync as readFileSync5, existsSync as existsSync6 } from "fs";
|
|
1882
|
-
import { resolve as resolve2 } from "path";
|
|
1884
|
+
import { resolve as resolve2, sep } from "path";
|
|
1883
1885
|
function validatePlan(planPath, projectDir) {
|
|
1884
1886
|
const errors = [];
|
|
1885
1887
|
const warnings = [];
|
|
1886
1888
|
const resolvedPlanPath = resolve2(planPath);
|
|
1887
1889
|
const allowedDir = resolve2(projectDir, PLANS_DIR);
|
|
1888
|
-
if (!resolvedPlanPath.startsWith(allowedDir +
|
|
1890
|
+
if (!resolvedPlanPath.startsWith(allowedDir + sep) && resolvedPlanPath !== allowedDir) {
|
|
1889
1891
|
errors.push({
|
|
1890
1892
|
severity: "error",
|
|
1891
1893
|
category: "structure",
|
|
@@ -2065,7 +2067,7 @@ function validateFileReferences(content, projectDir, warnings) {
|
|
|
2065
2067
|
}
|
|
2066
2068
|
const resolvedProject = resolve2(projectDir);
|
|
2067
2069
|
const absolutePath = resolve2(projectDir, filePath);
|
|
2068
|
-
if (!absolutePath.startsWith(resolvedProject +
|
|
2070
|
+
if (!absolutePath.startsWith(resolvedProject + sep) && absolutePath !== resolvedProject) {
|
|
2069
2071
|
warnings.push({
|
|
2070
2072
|
severity: "warning",
|
|
2071
2073
|
category: "file-references",
|
|
@@ -2433,7 +2435,7 @@ Before marking this task complete, verify the work:
|
|
|
2433
2435
|
If uncertain about quality, delegate to \`weft\` agent for a formal review:
|
|
2434
2436
|
\`call_weave_agent(agent="weft", prompt="Review the changes for [task description]")\`
|
|
2435
2437
|
|
|
2436
|
-
If changes touch auth, crypto, tokens, or input validation, delegate to \`warp\` agent for a security audit:
|
|
2438
|
+
MANDATORY: If changes touch auth, crypto, certificates, tokens, signatures, or input validation, you MUST delegate to \`warp\` agent for a security audit — this is NOT optional:
|
|
2437
2439
|
\`call_weave_agent(agent="warp", prompt="Security audit the changes for [task description]")\`
|
|
2438
2440
|
|
|
2439
2441
|
Only mark complete when ALL checks pass.`
|