@grant-vine/wunderkind 0.14.1 → 0.14.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/.claude-plugin/plugin.json +1 -1
- package/agents/ciso.md +1 -1
- package/agents/creative-director.md +1 -1
- package/agents/fullstack-wunderkind.md +1 -1
- package/agents/legal-counsel.md +1 -1
- package/agents/marketing-wunderkind.md +1 -1
- package/agents/product-wunderkind.md +1 -1
- package/commands/design-md.md +1 -1
- package/commands/dream.md +1 -1
- package/dist/agents/docs-config.js +1 -1
- package/dist/agents/shared-prompt-sections.js +1 -1
- package/dist/agents/shared-prompt-sections.js.map +1 -1
- package/dist/artifact-writer.d.ts +1 -5
- package/dist/artifact-writer.d.ts.map +1 -1
- package/dist/artifact-writer.js +15 -129
- package/dist/artifact-writer.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -16
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/agents/ciso.md
CHANGED
|
@@ -221,7 +221,7 @@ When operating as a subagent inside an OpenCode orchestrated workflow (Atlas/Sis
|
|
|
221
221
|
- Blockers (unresolved High/Critical findings awaiting engineering action): `.sisyphus/notepads/<plan-name>/issues.md`
|
|
222
222
|
- Evidence (when the command or workflow explicitly asks for durable proof): `.sisyphus/evidence/<topic>.md`
|
|
223
223
|
|
|
224
|
-
**APPEND ONLY** — never overwrite notepad or evidence files. Use Wunderkind's bounded durable-artifact writer for
|
|
224
|
+
**APPEND ONLY** — never overwrite notepad or evidence files. Use normal Write/Edit for ordinary repo files. Use Wunderkind's bounded durable-artifact writer only for protected `.sisyphus/notepads/` and `.sisyphus/evidence/` paths so append-only guarantees are preserved. Never use the Edit tool directly on notepad or evidence files.
|
|
225
225
|
|
|
226
226
|
|
|
227
227
|
## Hard Rules
|
|
@@ -179,4 +179,4 @@ When operating as a subagent inside an OpenCode orchestrated workflow (Atlas/Sis
|
|
|
179
179
|
- Blockers (missing brand assets, unresolved accessibility failures, design reviews pending): `.sisyphus/notepads/<plan-name>/issues.md`
|
|
180
180
|
- Evidence (when the command or workflow explicitly asks for durable proof): `.sisyphus/evidence/<topic>.md`
|
|
181
181
|
|
|
182
|
-
**APPEND ONLY** — never overwrite notepad or evidence files. Use Wunderkind's bounded durable-artifact writer for
|
|
182
|
+
**APPEND ONLY** — never overwrite notepad or evidence files. Use normal Write/Edit for ordinary repo files. Use Wunderkind's bounded durable-artifact writer only for protected `.sisyphus/notepads/` and `.sisyphus/evidence/` paths so append-only guarantees are preserved. Never use the Edit tool directly on notepad or evidence files.
|
|
@@ -284,7 +284,7 @@ When operating as a subagent inside an OpenCode orchestrated workflow (Atlas/Sis
|
|
|
284
284
|
- Blockers (build failures, type errors not yet resolved, external blockers): `.sisyphus/notepads/<plan-name>/issues.md`
|
|
285
285
|
- Evidence (when the command or workflow explicitly asks for durable proof): `.sisyphus/evidence/<topic>.md`
|
|
286
286
|
|
|
287
|
-
**APPEND ONLY** — never overwrite notepad or evidence files. Use Wunderkind's bounded durable-artifact writer for
|
|
287
|
+
**APPEND ONLY** — never overwrite notepad or evidence files. Use normal Write/Edit for ordinary repo files. Use Wunderkind's bounded durable-artifact writer only for protected `.sisyphus/notepads/` and `.sisyphus/evidence/` paths so append-only guarantees are preserved. Never use the Edit tool directly on notepad or evidence files.
|
|
288
288
|
|
|
289
289
|
---
|
|
290
290
|
|
package/agents/legal-counsel.md
CHANGED
|
@@ -152,7 +152,7 @@ When operating as a subagent inside an OpenCode orchestrated workflow (Atlas/Sis
|
|
|
152
152
|
- Blockers (ambiguous license terms requiring external counsel, missing regulatory clarity, unresolved IP questions): `.sisyphus/notepads/<plan-name>/issues.md`
|
|
153
153
|
- Evidence (when the command or workflow explicitly asks for durable proof): `.sisyphus/evidence/<topic>.md`
|
|
154
154
|
|
|
155
|
-
**APPEND ONLY** — never overwrite notepad or evidence files. Use Wunderkind's bounded durable-artifact writer for
|
|
155
|
+
**APPEND ONLY** — never overwrite notepad or evidence files. Use normal Write/Edit for ordinary repo files. Use Wunderkind's bounded durable-artifact writer only for protected `.sisyphus/notepads/` and `.sisyphus/evidence/` paths so append-only guarantees are preserved. Never use the Edit tool directly on notepad or evidence files.
|
|
156
156
|
|
|
157
157
|
## Hard Rules
|
|
158
158
|
|
|
@@ -182,6 +182,6 @@ When operating as a subagent inside an OpenCode orchestrated workflow (Atlas/Sis
|
|
|
182
182
|
- Blockers (approval bottlenecks, missing assets, unclear product details, access gaps for live audits): `.sisyphus/notepads/<plan-name>/issues.md`
|
|
183
183
|
- Evidence (when the command or workflow explicitly asks for durable proof): `.sisyphus/evidence/<topic>.md`
|
|
184
184
|
|
|
185
|
-
**APPEND ONLY** — never overwrite notepad or evidence files. Use Wunderkind's bounded durable-artifact writer for
|
|
185
|
+
**APPEND ONLY** — never overwrite notepad or evidence files. Use normal Write/Edit for ordinary repo files. Use Wunderkind's bounded durable-artifact writer only for protected `.sisyphus/notepads/` and `.sisyphus/evidence/` paths so append-only guarantees are preserved. Never use the Edit tool directly on notepad or evidence files.
|
|
186
186
|
|
|
187
187
|
---
|
|
@@ -275,6 +275,6 @@ When operating as a subagent inside an OpenCode orchestrated workflow (Atlas/Sis
|
|
|
275
275
|
- Blockers (dependency blocks, missing research, stakeholder misalignment): `.sisyphus/notepads/<plan-name>/issues.md`
|
|
276
276
|
- Evidence (when the command or workflow explicitly asks for durable proof): `.sisyphus/evidence/<topic>.md`
|
|
277
277
|
|
|
278
|
-
**APPEND ONLY** — never overwrite notepad or evidence files. Use Wunderkind's bounded durable-artifact writer for
|
|
278
|
+
**APPEND ONLY** — never overwrite notepad or evidence files. Use normal Write/Edit for ordinary repo files. Use Wunderkind's bounded durable-artifact writer only for protected `.sisyphus/notepads/` and `.sisyphus/evidence/` paths so append-only guarantees are preserved. Never use the Edit tool directly on notepad or evidence files.
|
|
279
279
|
|
|
280
280
|
---
|
package/commands/design-md.md
CHANGED
|
@@ -16,7 +16,7 @@ This command is invoked as `/design-md`.
|
|
|
16
16
|
2. Treat `DESIGN.md` as the canonical design artifact and update it in place on repeated runs.
|
|
17
17
|
3. Keep the `DESIGN.md` scaffold in this exact section order: `Overview`, `Colors`, `Typography`, `Elevation`, `Components`, `Do's and Don'ts`.
|
|
18
18
|
4. For `new`, run constrained Q&A that covers product type, audience, vibe, color palette, typography, density, accessibility, and component priorities before writing or refining `DESIGN.md`.
|
|
19
|
-
5. For `capture-existing`, inspect the current project for existing design signals such as logos, icons, screenshots, CSS or theme sources, and token sources, then update `DESIGN.md` from that evidence
|
|
19
|
+
5. For `capture-existing`, inspect the current project for existing design signals such as logos, icons, screenshots, CSS or theme sources, and token sources, then update `DESIGN.md` from that evidence using normal Write/Edit flows.
|
|
20
20
|
6. For `capture-existing`, write or update `.wunderkind/stitch/source-assets.md` with project-relative paths to the discovered source assets.
|
|
21
21
|
7. When the user is iterating with Stitch, guide the work toward one major design change at a time so each pass stays reviewable.
|
|
22
22
|
8. Summarize what was created, updated, inferred, and left unresolved.
|
package/commands/dream.md
CHANGED
|
@@ -24,7 +24,7 @@ This command is invoked as `/dream`.
|
|
|
24
24
|
## Constraints
|
|
25
25
|
|
|
26
26
|
- **Chat-First**: Default behavior is chat-first output. Do not create or modify files by default.
|
|
27
|
-
- **Save Only on Request**: Save output ONLY when the user explicitly asks. Permitted targets: `.sisyphus/notepads/` and `.sisyphus/evidence/`, written via Wunderkind's bounded durable-artifact writer.
|
|
27
|
+
- **Save Only on Request**: Save output ONLY when the user explicitly asks. Permitted targets: `.sisyphus/notepads/` and `.sisyphus/evidence/`, written via Wunderkind's bounded durable-artifact writer so append-only guarantees are preserved.
|
|
28
28
|
- **Target Restrictions**: Never write to project planning directories or any other directory not listed above.
|
|
29
29
|
- **No Mutation**: Do not mutate, update, or change SOUL files in `.wunderkind/souls/`. These are read-only for this workflow.
|
|
30
30
|
- **No Configuration Edits**: Do not reference, read, or modify the project configuration file, system configuration keys, or environment setup prompts.
|
|
@@ -44,7 +44,7 @@ export function buildDocsInstruction(agentKey, docsPath, docHistoryMode) {
|
|
|
44
44
|
: "Within `/docs-index`, treat this file as your managed home file. Refresh its contents if it already exists, or create it if missing.";
|
|
45
45
|
return `When docs output is enabled, write to: ${docsPath}/${config.canonicalFilename}
|
|
46
46
|
|
|
47
|
-
Use
|
|
47
|
+
Use normal Write/Edit tools for this managed docs lane. Do not use shell-based file mutation for docs-output.
|
|
48
48
|
|
|
49
49
|
History mode: ${docHistoryMode}
|
|
50
50
|
- overwrite: Replace the file contents each time.
|
|
@@ -13,7 +13,7 @@ When operating as a subagent inside an OpenCode orchestrated workflow (Atlas/Sis
|
|
|
13
13
|
- Blockers (${options.blockers}): \`.sisyphus/notepads/<plan-name>/issues.md\`
|
|
14
14
|
- Evidence (when the command or workflow explicitly asks for durable proof): \`.sisyphus/evidence/<topic>.md\`
|
|
15
15
|
|
|
16
|
-
**APPEND ONLY** — never overwrite notepad or evidence files. Use Wunderkind's bounded durable-artifact writer for
|
|
16
|
+
**APPEND ONLY** — never overwrite notepad or evidence files. Use normal Write/Edit for ordinary repo files. Use Wunderkind's bounded durable-artifact writer only for protected \`.sisyphus/notepads/\` and \`.sisyphus/evidence/\` paths so append-only guarantees are preserved. Never use the Edit tool directly on notepad or evidence files.`;
|
|
17
17
|
}
|
|
18
18
|
export function buildSoulMaintenanceSection() {
|
|
19
19
|
return `## SOUL Maintenance (.wunderkind/souls/)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-prompt-sections.js","sourceRoot":"","sources":["../../src/agents/shared-prompt-sections.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,6BAA6B,CAAC,OAI7C;IACC,OAAO;;;;;;;;;eASM,OAAO,CAAC,SAAS;eACjB,OAAO,CAAC,SAAS;cAClB,OAAO,CAAC,QAAQ;;;
|
|
1
|
+
{"version":3,"file":"shared-prompt-sections.js","sourceRoot":"","sources":["../../src/agents/shared-prompt-sections.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,6BAA6B,CAAC,OAI7C;IACC,OAAO;;;;;;;;;eASM,OAAO,CAAC,SAAS;eACjB,OAAO,CAAC,SAAS;cAClB,OAAO,CAAC,QAAQ;;;kVAGoT,CAAA;AAClV,CAAC;AAED,MAAM,UAAU,2BAA2B;IACzC,OAAO;;;;;;;;oNAQ2M,CAAA;AACpN,CAAC;AAED,MAAM,UAAU,4BAA4B;IAC1C,OAAO;;;6IAGoI,CAAA;AAC7I,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,QAA8B;IACvE,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACtD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1E,OAAO,CAAC,SAAS,OAAO,CAAC,OAAO,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAClI,CAAC,CAAC,CAAA;IAEF,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACvD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACjE,OAAO,CAAC,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACtD,CAAC,CAAC,IAAI,EAAE,CAAA;IAER,OAAO;QACL,mBAAmB;QACnB,4BAA4B,EAAE;QAC9B,GAAG,aAAa;QAChB,GAAG,aAAa;KACjB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;AACvB,CAAC;AAED,MAAM,UAAU,8BAA8B;IAC5C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BF,CAAA;AACP,CAAC"}
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
export declare const DURABLE_ARTIFACT_TOOL_NAME: "wunderkind_write_artifact";
|
|
2
|
-
export type DurableArtifactAgentKey = "marketing-wunderkind" | "creative-director" | "product-wunderkind" | "fullstack-wunderkind" | "ciso" | "legal-counsel";
|
|
3
|
-
export type DurableArtifactKind = "prd" | "plan" | "issue" | "draft" | "docs-output" | "design-md" | "notepad" | "evidence";
|
|
4
2
|
export interface DurableArtifactWriteRequest {
|
|
5
|
-
agentKey: DurableArtifactAgentKey;
|
|
6
|
-
kind: DurableArtifactKind;
|
|
7
3
|
relativePath: string;
|
|
8
4
|
content: string;
|
|
9
5
|
}
|
|
@@ -15,6 +11,6 @@ export interface DurableArtifactWriteResult {
|
|
|
15
11
|
export interface DurableArtifactWriteOptions {
|
|
16
12
|
docsPath?: string;
|
|
17
13
|
}
|
|
18
|
-
export declare function writeDurableArtifact(request: DurableArtifactWriteRequest, cwd: string,
|
|
14
|
+
export declare function writeDurableArtifact(request: DurableArtifactWriteRequest, cwd: string, _options?: DurableArtifactWriteOptions): DurableArtifactWriteResult;
|
|
19
15
|
export declare function readDurableArtifact(filePath: string): string | null;
|
|
20
16
|
//# sourceMappingURL=artifact-writer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifact-writer.d.ts","sourceRoot":"","sources":["../src/artifact-writer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"artifact-writer.d.ts","sourceRoot":"","sources":["../src/artifact-writer.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,0BAA0B,EAAG,2BAAoC,CAAA;AAE9E,MAAM,WAAW,2BAA2B;IAC1C,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,0BAA0B;IACzC,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAkGD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,2BAA2B,EACpC,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,2BAA2B,GACrC,0BAA0B,CAoD5B;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEnE"}
|
package/dist/artifact-writer.js
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { existsSync, lstatSync, mkdirSync, readFileSync, realpathSync, statSync, writeFileSync } from "node:fs";
|
|
2
2
|
import { dirname, isAbsolute, join, normalize, relative } from "node:path";
|
|
3
|
-
import { getDocsEligibleAgentKeys } from "./agents/docs-config.js";
|
|
4
|
-
import { resolveProjectLocalDocsPath } from "./cli/docs-output-helper.js";
|
|
5
3
|
export const DURABLE_ARTIFACT_TOOL_NAME = "wunderkind_write_artifact";
|
|
6
|
-
const DOCS_OUTPUT_ELIGIBLE_AGENT_KEYS = new Set(getDocsEligibleAgentKeys());
|
|
7
4
|
function normalizeRelativePath(input) {
|
|
8
5
|
const trimmed = input.trim();
|
|
9
6
|
const normalized = normalize(trimmed).replaceAll("\\", "/");
|
|
@@ -20,19 +17,6 @@ function isPathWithin(parentPath, candidatePath) {
|
|
|
20
17
|
const normalizedSegments = rel.replaceAll("\\", "/").split("/").filter((segment) => segment.length > 0);
|
|
21
18
|
return !normalizedSegments.includes("..");
|
|
22
19
|
}
|
|
23
|
-
function ensurePathHasNoSymlinkSegments(cwd, normalizedRelativePath, errorMessage) {
|
|
24
|
-
const segments = normalizedRelativePath.split("/").filter((segment) => segment.length > 0);
|
|
25
|
-
let lexicalCurrentPath = cwd;
|
|
26
|
-
for (const segment of segments) {
|
|
27
|
-
lexicalCurrentPath = join(lexicalCurrentPath, segment);
|
|
28
|
-
if (!existsSync(lexicalCurrentPath)) {
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
if (lstatSync(lexicalCurrentPath).isSymbolicLink()) {
|
|
32
|
-
throw new Error(errorMessage);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
20
|
function ensureSafeRelativePath(relativePath) {
|
|
37
21
|
const normalized = normalizeRelativePath(relativePath);
|
|
38
22
|
if (normalized === "" || normalized === ".") {
|
|
@@ -43,67 +27,11 @@ function ensureSafeRelativePath(relativePath) {
|
|
|
43
27
|
}
|
|
44
28
|
return normalized;
|
|
45
29
|
}
|
|
46
|
-
function
|
|
47
|
-
return
|
|
30
|
+
function isAppendOnlyPath(normalizedRelativePath) {
|
|
31
|
+
return normalizedRelativePath.startsWith(".sisyphus/notepads/") || normalizedRelativePath.startsWith(".sisyphus/evidence/");
|
|
48
32
|
}
|
|
49
|
-
function
|
|
50
|
-
return
|
|
51
|
-
}
|
|
52
|
-
function directoryLane(path) {
|
|
53
|
-
return { path, exactFile: false };
|
|
54
|
-
}
|
|
55
|
-
function exactFileLane(path) {
|
|
56
|
-
return { path, exactFile: true };
|
|
57
|
-
}
|
|
58
|
-
function getAllowedArtifactRoots(agentKey, docsOutputRoot) {
|
|
59
|
-
switch (agentKey) {
|
|
60
|
-
case "product-wunderkind":
|
|
61
|
-
return [
|
|
62
|
-
directoryLane(".sisyphus/prds"),
|
|
63
|
-
directoryLane(".sisyphus/plans"),
|
|
64
|
-
directoryLane(".sisyphus/issues"),
|
|
65
|
-
directoryLane(".sisyphus/drafts"),
|
|
66
|
-
directoryLane(".sisyphus/notepads"),
|
|
67
|
-
directoryLane(".sisyphus/evidence"),
|
|
68
|
-
directoryLane(docsOutputRoot),
|
|
69
|
-
];
|
|
70
|
-
case "creative-director":
|
|
71
|
-
return [
|
|
72
|
-
exactFileLane("DESIGN.md"),
|
|
73
|
-
directoryLane(".wunderkind/stitch"),
|
|
74
|
-
directoryLane(".sisyphus/notepads"),
|
|
75
|
-
directoryLane(".sisyphus/evidence"),
|
|
76
|
-
directoryLane(docsOutputRoot),
|
|
77
|
-
];
|
|
78
|
-
case "marketing-wunderkind":
|
|
79
|
-
return [directoryLane(docsOutputRoot), directoryLane(".sisyphus/notepads"), directoryLane(".sisyphus/evidence")];
|
|
80
|
-
case "ciso":
|
|
81
|
-
return [directoryLane(docsOutputRoot), directoryLane(".sisyphus/notepads"), directoryLane(".sisyphus/evidence")];
|
|
82
|
-
case "fullstack-wunderkind":
|
|
83
|
-
return [
|
|
84
|
-
directoryLane(docsOutputRoot),
|
|
85
|
-
directoryLane(".sisyphus/notepads"),
|
|
86
|
-
directoryLane(".sisyphus/evidence"),
|
|
87
|
-
directoryLane(".sisyphus/prds"),
|
|
88
|
-
directoryLane(".sisyphus/plans"),
|
|
89
|
-
directoryLane(".sisyphus/issues"),
|
|
90
|
-
exactFileLane("DESIGN.md"),
|
|
91
|
-
directoryLane(".wunderkind/stitch"),
|
|
92
|
-
];
|
|
93
|
-
case "legal-counsel":
|
|
94
|
-
return [directoryLane(".sisyphus/notepads"), directoryLane(".sisyphus/evidence")];
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
function appendOnlyArtifactKinds(kind) {
|
|
98
|
-
return kind === "notepad" || kind === "evidence";
|
|
99
|
-
}
|
|
100
|
-
function isAllowedArtifactPath(agentKey, normalizedRelativePath, docsOutputRoot) {
|
|
101
|
-
return getAllowedArtifactRoots(agentKey, docsOutputRoot).some((allowedLane) => {
|
|
102
|
-
if (allowedLane.exactFile) {
|
|
103
|
-
return normalizedRelativePath === allowedLane.path;
|
|
104
|
-
}
|
|
105
|
-
return normalizedRelativePath === allowedLane.path || normalizedRelativePath.startsWith(`${allowedLane.path}/`);
|
|
106
|
-
});
|
|
33
|
+
function isAllowedArtifactPath(normalizedRelativePath) {
|
|
34
|
+
return isAppendOnlyPath(normalizedRelativePath);
|
|
107
35
|
}
|
|
108
36
|
function resolveWritableParentPath(rootRealPath, cwd, normalizedRelativePath) {
|
|
109
37
|
const parentRelativePath = normalizeRelativePath(dirname(normalizedRelativePath));
|
|
@@ -136,63 +64,21 @@ function resolveWritableParentPath(rootRealPath, cwd, normalizedRelativePath) {
|
|
|
136
64
|
}
|
|
137
65
|
return resolvedCurrentPath;
|
|
138
66
|
}
|
|
139
|
-
function
|
|
140
|
-
if (
|
|
141
|
-
|
|
67
|
+
function validateProtectedArtifactPath(normalizedRelativePath) {
|
|
68
|
+
if (normalizedRelativePath.startsWith(".sisyphus/notepads/")) {
|
|
69
|
+
return;
|
|
142
70
|
}
|
|
143
|
-
if (
|
|
144
|
-
|
|
145
|
-
}
|
|
146
|
-
if (kind === "plan" && (agentKey !== "product-wunderkind" && agentKey !== "fullstack-wunderkind")) {
|
|
147
|
-
throw new Error(`${agentKey} may not write plan artifacts`);
|
|
148
|
-
}
|
|
149
|
-
if (kind === "plan" && !normalizedRelativePath.startsWith(".sisyphus/plans/")) {
|
|
150
|
-
throw new Error("plan artifacts must stay under .sisyphus/plans/");
|
|
151
|
-
}
|
|
152
|
-
if (kind === "issue" && (agentKey !== "product-wunderkind" && agentKey !== "fullstack-wunderkind")) {
|
|
153
|
-
throw new Error(`${agentKey} may not write issue artifacts`);
|
|
154
|
-
}
|
|
155
|
-
if (kind === "issue" && !normalizedRelativePath.startsWith(".sisyphus/issues/")) {
|
|
156
|
-
throw new Error("issue artifacts must stay under .sisyphus/issues/");
|
|
157
|
-
}
|
|
158
|
-
if (kind === "design-md" && agentKey !== "creative-director" && agentKey !== "fullstack-wunderkind") {
|
|
159
|
-
throw new Error(`${agentKey} may not write design artifacts`);
|
|
160
|
-
}
|
|
161
|
-
if (kind === "design-md" && normalizedRelativePath !== "DESIGN.md") {
|
|
162
|
-
throw new Error("design-md artifacts must write exactly to DESIGN.md");
|
|
163
|
-
}
|
|
164
|
-
if (kind === "draft" && !normalizedRelativePath.startsWith(".sisyphus/drafts/")) {
|
|
165
|
-
throw new Error("draft artifacts must stay under .sisyphus/drafts/");
|
|
166
|
-
}
|
|
167
|
-
if (kind === "docs-output" && !DOCS_OUTPUT_ELIGIBLE_AGENT_KEYS.has(agentKey)) {
|
|
168
|
-
throw new Error(`${agentKey} may not write docs-output artifacts`);
|
|
169
|
-
}
|
|
170
|
-
if (kind === "docs-output" && !normalizedRelativePath.startsWith(`${docsOutputRoot}/`)) {
|
|
171
|
-
throw new Error(`docs-output artifacts must stay under ${docsOutputRoot}/`);
|
|
172
|
-
}
|
|
173
|
-
if (kind === "notepad" && !normalizedRelativePath.startsWith(".sisyphus/notepads/")) {
|
|
174
|
-
throw new Error("notepad artifacts must stay under .sisyphus/notepads/");
|
|
175
|
-
}
|
|
176
|
-
if (kind === "evidence" && !normalizedRelativePath.startsWith(".sisyphus/evidence/")) {
|
|
177
|
-
throw new Error("evidence artifacts must stay under .sisyphus/evidence/");
|
|
71
|
+
if (normalizedRelativePath.startsWith(".sisyphus/evidence/")) {
|
|
72
|
+
return;
|
|
178
73
|
}
|
|
74
|
+
throw new Error("durable artifacts must stay inside append-only Wunderkind memory lanes");
|
|
179
75
|
}
|
|
180
|
-
export function writeDurableArtifact(request, cwd,
|
|
76
|
+
export function writeDurableArtifact(request, cwd, _options) {
|
|
181
77
|
const normalizedRelativePath = ensureSafeRelativePath(request.relativePath);
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
if (docsOutputRoot === null) {
|
|
185
|
-
throw new Error("docs-output artifacts require a resolved docsPath");
|
|
186
|
-
}
|
|
187
|
-
if (isReservedDesignMdPath(docsOutputRoot)) {
|
|
188
|
-
throw new Error("docs-output artifacts may not use DESIGN.md as docsPath because that path is reserved for design-md");
|
|
189
|
-
}
|
|
190
|
-
ensurePathHasNoSymlinkSegments(cwd, docsOutputRoot, "docs-output lane must not include symlinked segments");
|
|
191
|
-
}
|
|
192
|
-
if (!isAllowedArtifactPath(request.agentKey, normalizedRelativePath, docsOutputRoot ?? "__docs-output-disabled__")) {
|
|
193
|
-
throw new Error(`${request.agentKey} may not write outside its bounded durable-artifact lanes`);
|
|
78
|
+
if (!isAllowedArtifactPath(normalizedRelativePath)) {
|
|
79
|
+
throw new Error("durable artifacts must stay inside append-only Wunderkind memory lanes");
|
|
194
80
|
}
|
|
195
|
-
|
|
81
|
+
validateProtectedArtifactPath(normalizedRelativePath);
|
|
196
82
|
const rootRealPath = realpathSync(cwd);
|
|
197
83
|
const resolvedAbsolutePath = resolveWritableParentPath(rootRealPath, cwd, normalizedRelativePath);
|
|
198
84
|
if (!isPathWithin(rootRealPath, resolvedAbsolutePath)) {
|
|
@@ -221,7 +107,7 @@ export function writeDurableArtifact(request, cwd, options) {
|
|
|
221
107
|
throw new Error("durable artifact path must point to a file, not a directory");
|
|
222
108
|
}
|
|
223
109
|
const created = !existsSync(finalAbsolutePath);
|
|
224
|
-
const nextContent =
|
|
110
|
+
const nextContent = existsSync(finalAbsolutePath)
|
|
225
111
|
? `${readFileSync(finalAbsolutePath, "utf-8")}${request.content}`
|
|
226
112
|
: request.content;
|
|
227
113
|
writeFileSync(finalAbsolutePath, nextContent, "utf-8");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifact-writer.js","sourceRoot":"","sources":["../src/artifact-writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC/G,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"artifact-writer.js","sourceRoot":"","sources":["../src/artifact-writer.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAkIjD,QAAA,MAAM,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAkIjD,QAAA,MAAM,gBAAgB,EAAE,MA+JvB,CAAA;AAED,OAAO,EAAE,gBAAgB,IAAI,OAAO,EAAE,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -17,7 +17,7 @@ function getDocsOutputRuntimeState(configuredDocsPath) {
|
|
|
17
17
|
return {
|
|
18
18
|
displayDocsPath: configuredDocsPath,
|
|
19
19
|
docsTargets: "- docs-output invalid: configured docsPath conflicts with reserved design-md path DESIGN.md",
|
|
20
|
-
warning: `The configured docsPath (${configuredDocsPath}) is invalid for docs-output because it conflicts with the reserved design-md path \`DESIGN.md\`.
|
|
20
|
+
warning: `The configured docsPath (${configuredDocsPath}) is invalid for docs-output because it conflicts with the reserved design-md path \`DESIGN.md\`. Normal docs-output writes should be redirected to a non-conflicting directory before continuing.`,
|
|
21
21
|
};
|
|
22
22
|
}
|
|
23
23
|
return {
|
|
@@ -34,7 +34,7 @@ function getDocsOutputRuntimeState(configuredDocsPath) {
|
|
|
34
34
|
return {
|
|
35
35
|
displayDocsPath: configuredDocsPath,
|
|
36
36
|
docsTargets: `- docs-output invalid: configured docsPath is invalid (${reason})`,
|
|
37
|
-
warning: `The configured docsPath (${configuredDocsPath}) is invalid for docs-output: ${reason}.
|
|
37
|
+
warning: `The configured docsPath (${configuredDocsPath}) is invalid for docs-output: ${reason}. Normal docs-output writes should be redirected to a valid project-local directory before continuing.`,
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
40
|
}
|
|
@@ -112,17 +112,8 @@ const WunderkindPlugin = async (_input) => {
|
|
|
112
112
|
return {
|
|
113
113
|
tool: {
|
|
114
114
|
[DURABLE_ARTIFACT_TOOL_NAME]: tool({
|
|
115
|
-
description: "
|
|
115
|
+
description: "Append durable memory only inside protected Wunderkind lanes such as .sisyphus/notepads or .sisyphus/evidence. Use normal Write/Edit for ordinary repo files, docs-output, DESIGN.md, Stitch files, and planning files.",
|
|
116
116
|
args: {
|
|
117
|
-
agentKey: tool.schema.enum([
|
|
118
|
-
"marketing-wunderkind",
|
|
119
|
-
"creative-director",
|
|
120
|
-
"product-wunderkind",
|
|
121
|
-
"fullstack-wunderkind",
|
|
122
|
-
"ciso",
|
|
123
|
-
"legal-counsel",
|
|
124
|
-
]),
|
|
125
|
-
kind: tool.schema.enum(["prd", "plan", "issue", "draft", "docs-output", "design-md", "notepad", "evidence"]),
|
|
126
117
|
relativePath: tool.schema.string().min(1),
|
|
127
118
|
content: tool.schema.string(),
|
|
128
119
|
},
|
|
@@ -131,14 +122,16 @@ const WunderkindPlugin = async (_input) => {
|
|
|
131
122
|
const durableArtifactOptions = typeof wunderkindConfig?.docsPath === "string"
|
|
132
123
|
? { docsPath: wunderkindConfig.docsPath }
|
|
133
124
|
: undefined;
|
|
134
|
-
const result = writeDurableArtifact(
|
|
125
|
+
const result = writeDurableArtifact({
|
|
126
|
+
relativePath: args.relativePath,
|
|
127
|
+
content: args.content,
|
|
128
|
+
}, context.directory, durableArtifactOptions);
|
|
135
129
|
context.metadata({
|
|
136
130
|
title: `Durable artifact written: ${result.relativePath}`,
|
|
137
131
|
metadata: {
|
|
138
132
|
path: result.relativePath,
|
|
139
133
|
created: result.created,
|
|
140
|
-
|
|
141
|
-
kind: args.kind,
|
|
134
|
+
mode: "append",
|
|
142
135
|
},
|
|
143
136
|
});
|
|
144
137
|
return `Durable artifact written to ${result.relativePath}`;
|
|
@@ -251,7 +244,7 @@ Legacy delegation shorthand remains valid: Use marketing-wunderkind for GTM, bra
|
|
|
251
244
|
|
|
252
245
|
- Use \`task(...)\` for retained-agent or subagent delegation; always include explicit \`load_skills\` and \`run_in_background\`.
|
|
253
246
|
- Use \`skill(name="...")\` for shipped skills and sub-skills.
|
|
254
|
-
- Use
|
|
247
|
+
- Use normal \`Write\`/\`Edit\` for ordinary repo files, docs-output, \`DESIGN.md\`, \`.wunderkind/stitch/\`, and managed \`.sisyphus/\` planning files. Use \`${DURABLE_ARTIFACT_TOOL_NAME}(...)\` only for append-only Wunderkind memory lanes such as \`.sisyphus/notepads/\` and \`.sisyphus/evidence/\`.
|
|
255
248
|
|
|
256
249
|
### Project Configuration
|
|
257
250
|
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AACvF,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAA;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AAEpE,MAAM,oBAAoB,GAAG,uCAAuC,CAAA;AAEpE,SAAS,kBAAkB,CAAC,IAAY;IACtC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IAClE,OAAO,UAAU,KAAK,WAAW,IAAI,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;AAC1E,CAAC;AAED,SAAS,yBAAyB,CAAC,kBAA0B;IAK3D,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,2BAA2B,CAAC,kBAAkB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAA;QAE5F,IAAI,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAAC;YACrC,OAAO;gBACL,eAAe,EAAE,kBAAkB;gBACnC,WAAW,EAAE,6FAA6F;gBAC1G,OAAO,EACL,4BAA4B,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@grant-vine/wunderkind",
|
|
3
|
-
"version": "0.14.
|
|
3
|
+
"version": "0.14.2",
|
|
4
4
|
"description": "Wunderkind \u2014 specialist AI agent addon for OpenCode with 6 retained specialist agents for any software product team",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|