yaaw-se 0.1.0-dev.35745937645.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.
Files changed (208) hide show
  1. package/README.md +155 -0
  2. package/dist/cli/commands/doctor.d.ts +6 -0
  3. package/dist/cli/commands/doctor.js +21 -0
  4. package/dist/cli/commands/doctor.js.map +1 -0
  5. package/dist/cli/commands/install.d.ts +39 -0
  6. package/dist/cli/commands/install.js +209 -0
  7. package/dist/cli/commands/install.js.map +1 -0
  8. package/dist/cli/commands/status.d.ts +63 -0
  9. package/dist/cli/commands/status.js +23 -0
  10. package/dist/cli/commands/status.js.map +1 -0
  11. package/dist/cli/main.d.ts +2 -0
  12. package/dist/cli/main.js +40 -0
  13. package/dist/cli/main.js.map +1 -0
  14. package/dist/installer/boundary.d.ts +4 -0
  15. package/dist/installer/boundary.js +75 -0
  16. package/dist/installer/boundary.js.map +1 -0
  17. package/dist/installer/context.d.ts +3 -0
  18. package/dist/installer/context.js +14 -0
  19. package/dist/installer/context.js.map +1 -0
  20. package/dist/installer/detect.d.ts +7 -0
  21. package/dist/installer/detect.js +40 -0
  22. package/dist/installer/detect.js.map +1 -0
  23. package/dist/installer/filesystem.d.ts +1 -0
  24. package/dist/installer/filesystem.js +23 -0
  25. package/dist/installer/filesystem.js.map +1 -0
  26. package/dist/installer/hashing.d.ts +1 -0
  27. package/dist/installer/hashing.js +5 -0
  28. package/dist/installer/hashing.js.map +1 -0
  29. package/dist/installer/managed-sections.d.ts +8 -0
  30. package/dist/installer/managed-sections.js +53 -0
  31. package/dist/installer/managed-sections.js.map +1 -0
  32. package/dist/installer/manifest.d.ts +5 -0
  33. package/dist/installer/manifest.js +40 -0
  34. package/dist/installer/manifest.js.map +1 -0
  35. package/dist/installer/migrations/index.d.ts +14 -0
  36. package/dist/installer/migrations/index.js +23 -0
  37. package/dist/installer/migrations/index.js.map +1 -0
  38. package/dist/installer/migrations/installation/index.d.ts +2 -0
  39. package/dist/installer/migrations/installation/index.js +3 -0
  40. package/dist/installer/migrations/installation/index.js.map +1 -0
  41. package/dist/installer/migrations/project/index.d.ts +2 -0
  42. package/dist/installer/migrations/project/index.js +3 -0
  43. package/dist/installer/migrations/project/index.js.map +1 -0
  44. package/dist/installer/plan.d.ts +10 -0
  45. package/dist/installer/plan.js +298 -0
  46. package/dist/installer/plan.js.map +1 -0
  47. package/dist/installer/project-state.d.ts +2 -0
  48. package/dist/installer/project-state.js +41 -0
  49. package/dist/installer/project-state.js.map +1 -0
  50. package/dist/installer/status.d.ts +61 -0
  51. package/dist/installer/status.js +146 -0
  52. package/dist/installer/status.js.map +1 -0
  53. package/dist/installer/transaction.d.ts +10 -0
  54. package/dist/installer/transaction.js +176 -0
  55. package/dist/installer/transaction.js.map +1 -0
  56. package/dist/installer/types.d.ts +98 -0
  57. package/dist/installer/types.js +2 -0
  58. package/dist/installer/types.js.map +1 -0
  59. package/dist/installer/verify.d.ts +2 -0
  60. package/dist/installer/verify.js +49 -0
  61. package/dist/installer/verify.js.map +1 -0
  62. package/dist/integrations/claude-code.d.ts +1 -0
  63. package/dist/integrations/claude-code.js +13 -0
  64. package/dist/integrations/claude-code.js.map +1 -0
  65. package/dist/integrations/cline.d.ts +1 -0
  66. package/dist/integrations/cline.js +13 -0
  67. package/dist/integrations/cline.js.map +1 -0
  68. package/dist/integrations/codex.d.ts +1 -0
  69. package/dist/integrations/codex.js +13 -0
  70. package/dist/integrations/codex.js.map +1 -0
  71. package/dist/integrations/gemini-cli.d.ts +1 -0
  72. package/dist/integrations/gemini-cli.js +13 -0
  73. package/dist/integrations/gemini-cli.js.map +1 -0
  74. package/dist/integrations/helpers.d.ts +14 -0
  75. package/dist/integrations/helpers.js +86 -0
  76. package/dist/integrations/helpers.js.map +1 -0
  77. package/dist/integrations/registry.d.ts +4 -0
  78. package/dist/integrations/registry.js +18 -0
  79. package/dist/integrations/registry.js.map +1 -0
  80. package/dist/integrations/types.d.ts +31 -0
  81. package/dist/integrations/types.js +2 -0
  82. package/dist/integrations/types.js.map +1 -0
  83. package/dist/payload/bootstrap/claude-code.md +10 -0
  84. package/dist/payload/bootstrap/cline.md +10 -0
  85. package/dist/payload/bootstrap/codex.md +10 -0
  86. package/dist/payload/bootstrap/gemini-cli.md +10 -0
  87. package/dist/payload/payload-files.json +505 -0
  88. package/dist/payload/payload.json +4 -0
  89. package/dist/payload/skills/yaaw-create-spec/SKILL.md +10 -0
  90. package/dist/payload/skills/yaaw-create-ticket/SKILL.md +10 -0
  91. package/dist/payload/skills/yaaw-create-tickets/SKILL.md +10 -0
  92. package/dist/payload/skills/yaaw-implement/SKILL.md +10 -0
  93. package/dist/payload/skills/yaaw-orchestrator/SKILL.md +10 -0
  94. package/dist/payload/skills/yaaw-planner/SKILL.md +10 -0
  95. package/dist/payload/skills/yaaw-planning-review/SKILL.md +10 -0
  96. package/dist/payload/skills/yaaw-prd/SKILL.md +10 -0
  97. package/dist/payload/skills/yaaw-refine-prd/SKILL.md +10 -0
  98. package/dist/payload/skills/yaaw-repair/SKILL.md +10 -0
  99. package/dist/payload/skills/yaaw-review/SKILL.md +10 -0
  100. package/dist/payload/skills/yaaw-revise-prd/SKILL.md +10 -0
  101. package/dist/payload/yaaw-core/core/artifact-model.md +35 -0
  102. package/dist/payload/yaaw-core/core/authority.md +15 -0
  103. package/dist/payload/yaaw-core/core/context-loading.md +23 -0
  104. package/dist/payload/yaaw-core/core/invalidation.md +20 -0
  105. package/dist/payload/yaaw-core/core/lifecycle.md +33 -0
  106. package/dist/payload/yaaw-core/core/recovery.md +20 -0
  107. package/dist/payload/yaaw-core/core/routing.md +30 -0
  108. package/dist/payload/yaaw-core/core/state-model.md +26 -0
  109. package/dist/payload/yaaw-core/core/transitions.md +34 -0
  110. package/dist/payload/yaaw-core/expertise/changeability/MODULE.md +58 -0
  111. package/dist/payload/yaaw-core/expertise/frontend-design/MODULE.md +16 -0
  112. package/dist/payload/yaaw-core/expertise/python/MODULE.md +16 -0
  113. package/dist/payload/yaaw-core/expertise/security/MODULE.md +16 -0
  114. package/dist/payload/yaaw-core/expertise/testing/MODULE.md +16 -0
  115. package/dist/payload/yaaw-core/registries/expertise.json +47 -0
  116. package/dist/payload/yaaw-core/registries/paths.json +15 -0
  117. package/dist/payload/yaaw-core/registries/routing-policy.json +16 -0
  118. package/dist/payload/yaaw-core/registries/skills.json +14 -0
  119. package/dist/payload/yaaw-core/registries/transitions.json +29 -0
  120. package/dist/payload/yaaw-core/registries/workflows.json +37 -0
  121. package/dist/payload/yaaw-core/roles/implementer.md +15 -0
  122. package/dist/payload/yaaw-core/roles/orchestrator.md +16 -0
  123. package/dist/payload/yaaw-core/roles/planner.md +19 -0
  124. package/dist/payload/yaaw-core/roles/prd.md +19 -0
  125. package/dist/payload/yaaw-core/roles/reviewer.md +20 -0
  126. package/dist/payload/yaaw-core/rules/artifact-writing.md +10 -0
  127. package/dist/payload/yaaw-core/rules/assumption-challenge.md +109 -0
  128. package/dist/payload/yaaw-core/rules/changeability.md +38 -0
  129. package/dist/payload/yaaw-core/rules/durable-memory.md +9 -0
  130. package/dist/payload/yaaw-core/rules/question-format.md +20 -0
  131. package/dist/payload/yaaw-core/rules/recovery-evidence.md +9 -0
  132. package/dist/payload/yaaw-core/rules/repository-identity.md +16 -0
  133. package/dist/payload/yaaw-core/rules/review-independence.md +9 -0
  134. package/dist/payload/yaaw-core/rules/ticket-sizing.md +9 -0
  135. package/dist/payload/yaaw-core/schemas/engineering.schema.json +15 -0
  136. package/dist/payload/yaaw-core/schemas/evidence.schema.json +36 -0
  137. package/dist/payload/yaaw-core/schemas/handoff.schema.json +28 -0
  138. package/dist/payload/yaaw-core/schemas/observed-state.schema.json +25 -0
  139. package/dist/payload/yaaw-core/schemas/product.schema.json +12 -0
  140. package/dist/payload/yaaw-core/schemas/project-state.schema.json +74 -0
  141. package/dist/payload/yaaw-core/schemas/review.schema.json +19 -0
  142. package/dist/payload/yaaw-core/schemas/spec.schema.json +17 -0
  143. package/dist/payload/yaaw-core/schemas/ticket.schema.json +20 -0
  144. package/dist/payload/yaaw-core/templates/engineering.md +33 -0
  145. package/dist/payload/yaaw-core/templates/evidence.json +12 -0
  146. package/dist/payload/yaaw-core/templates/handoff.json +12 -0
  147. package/dist/payload/yaaw-core/templates/observed-state.json +9 -0
  148. package/dist/payload/yaaw-core/templates/product.md +26 -0
  149. package/dist/payload/yaaw-core/templates/project-state.json +13 -0
  150. package/dist/payload/yaaw-core/templates/review.md +28 -0
  151. package/dist/payload/yaaw-core/templates/spec.md +29 -0
  152. package/dist/payload/yaaw-core/templates/ticket.md +28 -0
  153. package/dist/payload/yaaw-core/workflows/implementation/implement-ticket.md +21 -0
  154. package/dist/payload/yaaw-core/workflows/implementation/repair-ticket.md +18 -0
  155. package/dist/payload/yaaw-core/workflows/implementation/select-ticket.md +16 -0
  156. package/dist/payload/yaaw-core/workflows/implementation/verify-ticket.md +17 -0
  157. package/dist/payload/yaaw-core/workflows/orchestration/determine-next-action.md +16 -0
  158. package/dist/payload/yaaw-core/workflows/orchestration/dispatch.md +17 -0
  159. package/dist/payload/yaaw-core/workflows/orchestration/inspect-state.md +17 -0
  160. package/dist/payload/yaaw-core/workflows/orchestration/reconcile-state.md +16 -0
  161. package/dist/payload/yaaw-core/workflows/orchestration/recover-interruption.md +17 -0
  162. package/dist/payload/yaaw-core/workflows/orchestration/route.md +20 -0
  163. package/dist/payload/yaaw-core/workflows/planning/create-spec.md +18 -0
  164. package/dist/payload/yaaw-core/workflows/planning/create-tickets.md +19 -0
  165. package/dist/payload/yaaw-core/workflows/planning/decision-frontier.md +27 -0
  166. package/dist/payload/yaaw-core/workflows/planning/discover.md +17 -0
  167. package/dist/payload/yaaw-core/workflows/planning/question-round.md +22 -0
  168. package/dist/payload/yaaw-core/workflows/planning/readiness-review.md +32 -0
  169. package/dist/payload/yaaw-core/workflows/planning/record-decisions.md +20 -0
  170. package/dist/payload/yaaw-core/workflows/planning/replan.md +18 -0
  171. package/dist/payload/yaaw-core/workflows/planning/route.md +20 -0
  172. package/dist/payload/yaaw-core/workflows/planning/write-understanding.md +24 -0
  173. package/dist/payload/yaaw-core/workflows/prd/create.md +22 -0
  174. package/dist/payload/yaaw-core/workflows/prd/question-round.md +20 -0
  175. package/dist/payload/yaaw-core/workflows/prd/readiness.md +22 -0
  176. package/dist/payload/yaaw-core/workflows/prd/record-decisions.md +20 -0
  177. package/dist/payload/yaaw-core/workflows/prd/refine.md +15 -0
  178. package/dist/payload/yaaw-core/workflows/prd/revise.md +18 -0
  179. package/dist/payload/yaaw-core/workflows/prd/route.md +23 -0
  180. package/dist/payload/yaaw-core/workflows/review/classify-findings.md +17 -0
  181. package/dist/payload/yaaw-core/workflows/review/inspect-change.md +16 -0
  182. package/dist/payload/yaaw-core/workflows/review/record-review.md +18 -0
  183. package/dist/payload/yaaw-core/workflows/review/review-ticket.md +20 -0
  184. package/dist/renderers/agent-skill.d.ts +1 -0
  185. package/dist/renderers/agent-skill.js +14 -0
  186. package/dist/renderers/agent-skill.js.map +1 -0
  187. package/dist/renderers/bootstrap-block.d.ts +1 -0
  188. package/dist/renderers/bootstrap-block.js +10 -0
  189. package/dist/renderers/bootstrap-block.js.map +1 -0
  190. package/dist/tui/confirm-plan.d.ts +3 -0
  191. package/dist/tui/confirm-plan.js +23 -0
  192. package/dist/tui/confirm-plan.js.map +1 -0
  193. package/dist/tui/existing-install.d.ts +2 -0
  194. package/dist/tui/existing-install.js +17 -0
  195. package/dist/tui/existing-install.js.map +1 -0
  196. package/dist/tui/result.d.ts +2 -0
  197. package/dist/tui/result.js +8 -0
  198. package/dist/tui/result.js.map +1 -0
  199. package/dist/tui/select-directory.d.ts +1 -0
  200. package/dist/tui/select-directory.js +12 -0
  201. package/dist/tui/select-directory.js.map +1 -0
  202. package/dist/tui/select-skills.d.ts +1 -0
  203. package/dist/tui/select-skills.js +29 -0
  204. package/dist/tui/select-skills.js.map +1 -0
  205. package/dist/tui/select-tools.d.ts +2 -0
  206. package/dist/tui/select-tools.js +19 -0
  207. package/dist/tui/select-tools.js.map +1 -0
  208. package/package.json +49 -0
@@ -0,0 +1,15 @@
1
+ # Refine PRD
2
+
3
+ ## Purpose
4
+ Improve clarity/completeness without changing accepted product meaning.
5
+
6
+ ## Inputs
7
+ Current product artifact, requested clarification/cleanup, and `.yaaw-core/rules/assumption-challenge.md`.
8
+
9
+ ## Procedure
10
+ Consolidate duplicates, sharpen language, organize behavior/non-goals, and surface unresolved questions. Apply assumption challenging only to distinguish wording ambiguity from a genuine semantic contradiction. Preserve semantic meaning and product revision.
11
+
12
+ If assumption challenging exposes a genuine semantic contradiction or an edit would change accepted behavior, scope, constraints, or non-goals, do not silently resolve it during refinement; stop refinement and execute `prd.revise` instead.
13
+
14
+ ## Output
15
+ Clearer product artifact with unchanged semantic revision unless the workflow switches to revision.
@@ -0,0 +1,18 @@
1
+ # Revise PRD
2
+
3
+ ## Purpose
4
+ Change already accepted product intent while preserving history and invalidating stale downstream trust.
5
+
6
+ ## Inputs
7
+ Current accepted product revision, explicit human-requested change, and `.yaaw-core/rules/assumption-challenge.md`.
8
+
9
+ ## Procedure
10
+ 1. Identify the exact old requirement and requested new intent.
11
+ 2. Apply the assumption-challenge rule to the requested intent: test impact on accepted behavior, scope/non-goals, constraints, contradictions, and newly exposed product questions.
12
+ 3. Resolve only product-semantic issues under PRD/human authority; do not convert the revision into engineering design.
13
+ 4. Update `product.md`, increment product revision, and record the change/provenance.
14
+ 5. Execute `core/invalidation.md` against dependent engineering decisions, specs, tickets, and reviews.
15
+ 6. Mark product `draft` if new material current-frontier questions remain; otherwise run `prd.readiness`.
16
+
17
+ ## Boundary
18
+ Assumption challenging does not bypass explicit revision semantics. Do not rewrite engineering decisions yourself; invalidate their basis and return ownership to Planner.
@@ -0,0 +1,23 @@
1
+ # PRD route
2
+
3
+ ## Purpose
4
+ Choose and execute the next product-definition workflow from current product state and the human's request.
5
+
6
+ ## Inputs
7
+ `.yaaw-core/project/product.md` if present, `.yaaw-core/project/state.json`, current request, and relevant accepted product history.
8
+
9
+ ## Procedure
10
+ 1. Classify exactly one route:
11
+ - missing product -> `prd.create`;
12
+ - draft product with unresolved questions -> `prd.question-round`;
13
+ - clarity-only cleanup requested -> `prd.refine`;
14
+ - accepted intent change requested -> `prd.revise`;
15
+ - sufficient current intent -> terminal PRD result `READY`.
16
+ 2. For a workflow route, resolve the canonical ID through `registries/workflows.json` and execute it; do not stop after classification.
17
+ 3. After the workflow writes durable output, re-evaluate product state or return control to Orchestrator.
18
+
19
+ ## Output
20
+ Either one executed canonical PRD workflow or `READY` with the current product revision.
21
+
22
+ ## Stop conditions
23
+ Stop for human answers when material product ambiguity remains. Never infer engineering implementation choices as product intent.
@@ -0,0 +1,17 @@
1
+ # Classify findings
2
+
3
+ ## Purpose
4
+ Convert concrete review evidence into one authoritative outcome.
5
+
6
+ ## Classification
7
+ - `PASS`: current contract satisfied with adequate evidence.
8
+ - `REPAIR`: implementation defect; ticket/spec remain valid. This includes bounded changeability defects supported by concrete engineering impact.
9
+ - `REPLAN`: ticket/spec/engineering contract is materially invalid or insufficient.
10
+ - `BLOCKED`: required evidence is unavailable.
11
+
12
+ ## Findings
13
+ Assign durable `F-NNN` IDs and severity. Each finding records category, concrete evidence, expected behavior/property, actual behavior/implementation, and required repair/replan action.
14
+
15
+ For changeability findings, also record the violated principle and why the issue is more than a style preference. Valid categories include `CORRECTNESS`, `SECURITY`, `REGRESSION`, `CONTRACT`, `CHANGEABILITY`, `TESTING`, `COMPATIBILITY`, and `UX`.
16
+
17
+ Do not choose `REPAIR` when satisfying the finding requires changing accepted product/architecture meaning. Do not fail a review for personal style preference alone.
@@ -0,0 +1,16 @@
1
+ # Inspect change
2
+
3
+ ## Purpose
4
+ Build an evidence-grounded view of the actual implementation to review.
5
+
6
+ ## Inputs
7
+ Current ticket/spec/product/engineering revisions, actual repository state, project rules, verification evidence, and relevant expertise.
8
+
9
+ ## Procedure
10
+ 1. Revalidate source revisions and reject stale review inputs.
11
+ 2. Compute/record repository identity using `rules/repository-identity.md`.
12
+ 3. Inspect actual diff/files/tests/evidence; ignore implementation summaries when they conflict with observed work.
13
+ 4. Identify acceptance criteria, failure paths, regressions, and domain-specific requirements that must be checked.
14
+
15
+ ## Output
16
+ Review inspection tied to exact repository and contract identity.
@@ -0,0 +1,18 @@
1
+ # Record review
2
+
3
+ ## Purpose
4
+ Persist immutable acceptance history and update current ticket state legally.
5
+
6
+ ## Procedure
7
+ 1. Create the next immutable `.yaaw-core/project/reviews/TASK-NNN-RK.md` from the review template.
8
+ 2. Frontmatter records ticket/review round, result, ticket/spec revisions, reviewed repository identity, and evidence references.
9
+ 3. Body records findings, verification, evidence interpretation, and next action.
10
+ 4. Never overwrite prior review rounds.
11
+ 5. Apply exactly one legal transition:
12
+ - `PASS` -> ticket `PASS`;
13
+ - `REPAIR` -> `REPAIR_REQUIRED`;
14
+ - `REPLAN` -> `REPLAN_REQUIRED`;
15
+ - `BLOCKED` -> `BLOCKED`.
16
+ 6. Write state-transition provenance.
17
+
18
+ A prior PASS remains historical but becomes stale when repository/source revisions invalidate its basis.
@@ -0,0 +1,20 @@
1
+ # Review ticket
2
+
3
+ ## Purpose
4
+ Independently determine whether current implementation satisfies the current ticket contract.
5
+
6
+ ## Preconditions
7
+ Ticket is `REVIEW_REQUIRED`; source revisions and evidence are current enough to review.
8
+
9
+ ## Procedure
10
+ 1. Use a fresh review context when practical.
11
+ 2. Execute `review.inspect-change`.
12
+ 3. Check every acceptance criterion and required test/evidence.
13
+ 4. Inspect regressions, failure paths, security, UX/accessibility, migration, and compatibility when relevant.
14
+ 5. Apply `.yaaw-core/rules/changeability.md` to the changed surface. Assess only materially relevant principles and distinguish concrete engineering defects from style preferences.
15
+ 6. For any blocking changeability finding, record the principle, concrete location/evidence, expected property, actual implementation, engineering impact, and bounded repair/replan action.
16
+ 7. Execute `review.classify-findings`.
17
+ 8. Execute `review.record-review`.
18
+
19
+ ## Output
20
+ Exactly one result: `PASS`, `REPAIR`, `REPLAN`, or `BLOCKED`. Style preference alone cannot produce a failing result.
@@ -0,0 +1 @@
1
+ export declare function renderAgentSkill(source: string, expectedName: string): Promise<string>;
@@ -0,0 +1,14 @@
1
+ import { readFile } from "node:fs/promises";
2
+ export async function renderAgentSkill(source, expectedName) {
3
+ const text = await readFile(source, "utf8");
4
+ if (!text.startsWith("---\n"))
5
+ throw new Error(`${expectedName}: SKILL.md frontmatter must start on line 1`);
6
+ if (!text.includes(`\nname: ${expectedName}\n`))
7
+ throw new Error(`${expectedName}: canonical skill name mismatch`);
8
+ if (!text.includes("\ndescription: "))
9
+ throw new Error(`${expectedName}: canonical skill description missing`);
10
+ if (!text.includes(".yaaw-core/"))
11
+ throw new Error(`${expectedName}: canonical skill must use project-root-relative .yaaw-core references`);
12
+ return text;
13
+ }
14
+ //# sourceMappingURL=agent-skill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-skill.js","sourceRoot":"","sources":["../../src/renderers/agent-skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAc,EAAE,YAAoB;IACzE,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,6CAA6C,CAAC,CAAC;IAC7G,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,YAAY,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,iCAAiC,CAAC,CAAC;IACnH,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,uCAAuC,CAAC,CAAC;IAC/G,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,wEAAwE,CAAC,CAAC;IAC5I,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function renderBootstrapTemplate(source: string): Promise<string>;
@@ -0,0 +1,10 @@
1
+ import { readFile } from "node:fs/promises";
2
+ export async function renderBootstrapTemplate(source) {
3
+ const text = await readFile(source, "utf8");
4
+ if (!text.includes(".yaaw-core/"))
5
+ throw new Error(`Bootstrap template does not reference canonical .yaaw-core: ${source}`);
6
+ if (text.split("\n").length > 30)
7
+ throw new Error(`Bootstrap template is too large: ${source}`);
8
+ return text.trim() + "\n";
9
+ }
10
+ //# sourceMappingURL=bootstrap-block.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap-block.js","sourceRoot":"","sources":["../../src/renderers/bootstrap-block.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,MAAc;IAC1D,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,+DAA+D,MAAM,EAAE,CAAC,CAAC;IAC5H,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,MAAM,EAAE,CAAC,CAAC;IAChG,OAAO,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { InstallPlan } from "../installer/types.js";
2
+ export declare function formatPlan(plan: InstallPlan): string;
3
+ export declare function confirmPlan(plan: InstallPlan): Promise<boolean>;
@@ -0,0 +1,23 @@
1
+ import * as p from "@clack/prompts";
2
+ export function formatPlan(plan) {
3
+ const counts = new Map();
4
+ for (const op of plan.operations)
5
+ counts.set(op.type, (counts.get(op.type) ?? 0) + 1);
6
+ return [
7
+ `Project: ${plan.projectRoot}`,
8
+ `Action: ${plan.action}`,
9
+ `Tools: ${plan.selectedIntegrations.join(", ") || "none"}`,
10
+ `Skills: ${plan.selectedSkills.length}`,
11
+ ...[...counts].map(([type, count]) => `${type}: ${count}`),
12
+ "Outside project writes: none",
13
+ "Existing durable YAAW artifacts overwritten: none"
14
+ ].join("\n");
15
+ }
16
+ export async function confirmPlan(plan) {
17
+ p.note(formatPlan(plan), "YAAW-SE installation plan");
18
+ const ok = await p.confirm({ message: "Continue?", initialValue: true });
19
+ if (p.isCancel(ok))
20
+ return false;
21
+ return Boolean(ok);
22
+ }
23
+ //# sourceMappingURL=confirm-plan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirm-plan.js","sourceRoot":"","sources":["../../src/tui/confirm-plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAGpC,MAAM,UAAU,UAAU,CAAC,IAAiB;IAC1C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU;QAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACtF,OAAO;QACL,YAAY,IAAI,CAAC,WAAW,EAAE;QAC9B,WAAW,IAAI,CAAC,MAAM,EAAE;QACxB,UAAU,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE;QAC1D,WAAW,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;QACvC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAC,KAAK,CAAC,EAAC,EAAE,CAAA,GAAG,IAAI,KAAK,KAAK,EAAE,CAAC;QACvD,8BAA8B;QAC9B,mDAAmD;KACpD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAiB;IACjD,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,2BAA2B,CAAC,CAAC;IACtD,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IACzE,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QAAE,OAAO,KAAK,CAAC;IACjC,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC;AACrB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { InstallAction } from "../installer/types.js";
2
+ export declare function selectExistingAction(): Promise<InstallAction | "cancel">;
@@ -0,0 +1,17 @@
1
+ import * as p from "@clack/prompts";
2
+ export async function selectExistingAction() {
3
+ const action = await p.select({
4
+ message: "YAAW-SE installation detected. What would you like to do?",
5
+ options: [
6
+ { value: "quick-update", label: "Quick Update" },
7
+ { value: "modify", label: "Modify Installation" },
8
+ { value: "repair", label: "Repair Installation" },
9
+ { value: "uninstall", label: "Uninstall", hint: "preserves .yaaw-core/project" },
10
+ { value: "cancel", label: "Cancel" }
11
+ ]
12
+ });
13
+ if (p.isCancel(action))
14
+ return "cancel";
15
+ return action;
16
+ }
17
+ //# sourceMappingURL=existing-install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"existing-install.js","sourceRoot":"","sources":["../../src/tui/existing-install.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAGpC,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC;QAC5B,OAAO,EAAE,2DAA2D;QACpE,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE;YAChD,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,qBAAqB,EAAE;YACjD,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,qBAAqB,EAAE;YACjD,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,8BAA8B,EAAE;YAChF,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;SACrC;KACF,CAAC,CAAC;IACH,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,QAAQ,CAAC;IACxC,OAAO,MAAkC,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { IntegrationId } from "../integrations/types.js";
2
+ export declare function showSuccess(projectRoot: string, selected: IntegrationId[]): void;
@@ -0,0 +1,8 @@
1
+ import * as p from "@clack/prompts";
2
+ import { integrations } from "../integrations/registry.js";
3
+ export function showSuccess(projectRoot, selected) {
4
+ const hints = selected.map(id => `${integrations[id].displayName}: ${integrations[id].invocationHint("yaaw-orchestrator")}`).join("\n");
5
+ p.note([`Project: ${projectRoot}`, hints].filter(Boolean).join("\n"), "YAAW-SE is ready");
6
+ p.outro("Installation verified.");
7
+ }
8
+ //# sourceMappingURL=result.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/tui/result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAG3D,MAAM,UAAU,WAAW,CAAC,WAAmB,EAAE,QAAyB;IACxE,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAA,EAAE,CAAA,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC,WAAW,KAAK,YAAY,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtI,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC,CAAC;IAC1F,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;AACpC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function selectDirectory(defaultDirectory: string): Promise<string>;
@@ -0,0 +1,12 @@
1
+ import * as p from "@clack/prompts";
2
+ export async function selectDirectory(defaultDirectory) {
3
+ const value = await p.text({
4
+ message: "Where should YAAW-SE be installed?",
5
+ placeholder: defaultDirectory,
6
+ defaultValue: defaultDirectory
7
+ });
8
+ if (p.isCancel(value))
9
+ throw new Error("Installation cancelled");
10
+ return String(value || defaultDirectory);
11
+ }
12
+ //# sourceMappingURL=select-directory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-directory.js","sourceRoot":"","sources":["../../src/tui/select-directory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAEpC,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,gBAAwB;IAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC;QACzB,OAAO,EAAE,oCAAoC;QAC7C,WAAW,EAAE,gBAAgB;QAC7B,YAAY,EAAE,gBAAgB;KAC/B,CAAC,CAAC;IACH,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACjE,OAAO,MAAM,CAAC,KAAK,IAAI,gBAAgB,CAAC,CAAC;AAC3C,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function selectSkills(payloadRoot: string, initial?: string[]): Promise<string[]>;
@@ -0,0 +1,29 @@
1
+ import * as p from "@clack/prompts";
2
+ import { readFile } from "node:fs/promises";
3
+ import { join } from "node:path";
4
+ import { resolveSkillSelection } from "../installer/plan.js";
5
+ export async function selectSkills(payloadRoot, initial) {
6
+ const profile = await p.select({
7
+ message: "Which YAAW entrypoints should be exposed?",
8
+ options: [
9
+ { value: "standard", label: "Standard", hint: "all public YAAW skills" },
10
+ { value: "core", label: "Core only", hint: "orchestrator, PRD, planner, implement, review" },
11
+ { value: "custom", label: "Custom", hint: "choose individual entrypoints" }
12
+ ]
13
+ });
14
+ if (p.isCancel(profile))
15
+ throw new Error("Installation cancelled");
16
+ if (profile !== "custom")
17
+ return resolveSkillSelection(payloadRoot, String(profile));
18
+ const registry = JSON.parse(await readFile(join(payloadRoot, "yaaw-core", "registries", "skills.json"), "utf8"));
19
+ const values = await p.multiselect({
20
+ message: "Choose public YAAW skill entrypoints",
21
+ required: true,
22
+ initialValues: initial,
23
+ options: Object.entries(registry).map(([id, entry]) => ({ value: id, label: id, hint: entry.description }))
24
+ });
25
+ if (p.isCancel(values))
26
+ throw new Error("Installation cancelled");
27
+ return values;
28
+ }
29
+ //# sourceMappingURL=select-skills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-skills.js","sourceRoot":"","sources":["../../src/tui/select-skills.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,WAAmB,EAAE,OAAkB;IACxE,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC;QAC7B,OAAO,EAAE,2CAA2C;QACpD,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,wBAAwB,EAAE;YACxE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,+CAA+C,EAAE;YAC5F,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,+BAA+B,EAAE;SAC5E;KACF,CAAC,CAAC;IACH,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACnE,IAAI,OAAO,KAAK,QAAQ;QAAE,OAAO,qBAAqB,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAErF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACjH,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,WAAW,CAAC;QACjC,OAAO,EAAE,sCAAsC;QAC/C,QAAQ,EAAE,IAAI;QACd,aAAa,EAAE,OAAO;QACtB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAM,EAAC,EAAE,CAAA,CAAC,EAAE,KAAK,EAAC,EAAE,EAAE,KAAK,EAAC,EAAE,EAAE,IAAI,EAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;KAC5G,CAAC,CAAC;IACH,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAClE,OAAO,MAAkB,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { IntegrationId } from "../integrations/types.js";
2
+ export declare function selectTools(projectRoot: string, initial?: IntegrationId[]): Promise<IntegrationId[]>;
@@ -0,0 +1,19 @@
1
+ import * as p from "@clack/prompts";
2
+ import { integrationIds, integrations } from "../integrations/registry.js";
3
+ export async function selectTools(projectRoot, initial = []) {
4
+ const detections = await Promise.all(integrationIds.map(async (id) => [id, await integrations[id].detect(projectRoot)]));
5
+ const selected = await p.multiselect({
6
+ message: "Which AI coding tools should use YAAW-SE?",
7
+ required: true,
8
+ initialValues: initial,
9
+ options: detections.map(([id, detection]) => ({
10
+ value: id,
11
+ label: integrations[id].displayName,
12
+ hint: detection.detected ? "detected" : undefined
13
+ }))
14
+ });
15
+ if (p.isCancel(selected))
16
+ throw new Error("Installation cancelled");
17
+ return selected;
18
+ }
19
+ //# sourceMappingURL=select-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-tools.js","sourceRoot":"","sources":["../../src/tui/select-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAG3E,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,WAAmB,EAAE,OAAO,GAAoB,EAAE;IAClF,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,YAAY,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAU,CAAC,CAAC,CAAC;IAChI,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,WAAW,CAAC;QACnC,OAAO,EAAE,2CAA2C;QACpD,QAAQ,EAAE,IAAI;QACd,aAAa,EAAE,OAAO;QACtB,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5C,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,WAAW;YACnC,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;SAClD,CAAC,CAAC;KACJ,CAAC,CAAC;IACH,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACpE,OAAO,QAA2B,CAAC;AACrC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "yaaw-se",
3
+ "version": "0.1.0-dev.35745937645.1",
4
+ "description": "Artifact-first autonomous software engineering workflow installer.",
5
+ "type": "module",
6
+ "bin": {
7
+ "yaaw-se": "./dist/cli/main.js"
8
+ },
9
+ "files": [
10
+ "dist/**",
11
+ "README.md"
12
+ ],
13
+ "engines": {
14
+ "node": ">=20.12.0"
15
+ },
16
+ "scripts": {
17
+ "clean": "node scripts/clean_dist.mjs",
18
+ "build:ts": "tsc -p tsconfig.json",
19
+ "build:payload": "node scripts/build_npm_payload.mjs",
20
+ "verify:payload": "node scripts/verify_npm_payload.mjs",
21
+ "build": "npm run clean && npm run build:ts && npm run build:payload && npm run verify:payload",
22
+ "validate:core": "python scripts/validate_core.py && python scripts/validate_behavior.py && python scripts/behavior_oracle.py",
23
+ "validate:distribution": "python scripts/validate_distribution.py",
24
+ "test:python": "python -m unittest discover -s tests -v",
25
+ "test:cli": "npm run build:payload && vitest run tests/cli",
26
+ "test": "npm run validate:core && npm run validate:distribution && npm run test:python && npm run test:cli",
27
+ "prepack": "npm run test && npm run build",
28
+ "smoke:tarball": "npm run build && node scripts/smoke_npm_tarball.mjs",
29
+ "smoke:update": "npm run build && node scripts/smoke_npm_update.mjs"
30
+ },
31
+ "dependencies": {
32
+ "@clack/prompts": "1.8.1",
33
+ "commander": "14.0.3",
34
+ "semver": "7.8.5"
35
+ },
36
+ "devDependencies": {
37
+ "@types/node": "26.6.2",
38
+ "typescript": "7.0.2",
39
+ "vitest": "5.0.1"
40
+ },
41
+ "repository": {
42
+ "type": "git",
43
+ "url": "git+https://github.com/QuackyPROG/yaaw-SE.git"
44
+ },
45
+ "bugs": {
46
+ "url": "https://github.com/QuackyPROG/yaaw-SE/issues"
47
+ },
48
+ "homepage": "https://github.com/QuackyPROG/yaaw-SE#readme"
49
+ }