@open-agent-toolkit/cli 0.0.61 → 0.0.65

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 (58) hide show
  1. package/assets/docs/cli-utilities/tool-packs.md +74 -4
  2. package/assets/docs/reference/file-locations.md +1 -1
  3. package/assets/docs/reference/oat-directory-structure.md +2 -0
  4. package/assets/docs/workflows/ideas/index.md +6 -0
  5. package/assets/docs/workflows/ideas/lifecycle.md +12 -0
  6. package/assets/docs/workflows/projects/lifecycle.md +21 -0
  7. package/assets/docs/workflows/skills/index.md +8 -2
  8. package/assets/public-package-versions.json +4 -4
  9. package/assets/skills/oat-brainstorm/SKILL.md +600 -0
  10. package/assets/skills/oat-brainstorm/references/destinations.md +167 -0
  11. package/assets/skills/oat-brainstorm/references/dogfood-results.md +731 -0
  12. package/assets/skills/oat-brainstorm/references/visual-companion.md +316 -0
  13. package/assets/skills/oat-brainstorm/scripts/frame-template.html +214 -0
  14. package/assets/skills/oat-brainstorm/scripts/helper.js +88 -0
  15. package/assets/skills/oat-brainstorm/scripts/server.cjs +354 -0
  16. package/assets/skills/oat-brainstorm/scripts/start-server.sh +176 -0
  17. package/assets/skills/oat-brainstorm/scripts/stop-server.sh +56 -0
  18. package/assets/skills/oat-brainstorm/templates/brainstorm-doc.md +79 -0
  19. package/assets/skills/oat-idea-ideate/SKILL.md +8 -4
  20. package/assets/skills/oat-pjm-add-backlog-item/SKILL.md +2 -1
  21. package/assets/skills/oat-pjm-update-repo-reference/SKILL.md +2 -1
  22. package/assets/skills/oat-project-complete/SKILL.md +49 -2
  23. package/assets/skills/oat-project-document/SKILL.md +2 -1
  24. package/assets/skills/oat-project-pr-final/SKILL.md +2 -1
  25. package/assets/skills/oat-project-spec/SKILL.md +2 -2
  26. package/assets/skills/oat-project-summary/SKILL.md +2 -1
  27. package/dist/commands/config/index.d.ts.map +1 -1
  28. package/dist/commands/config/index.js +12 -0
  29. package/dist/commands/init/tools/brainstorm/index.d.ts +22 -0
  30. package/dist/commands/init/tools/brainstorm/index.d.ts.map +1 -0
  31. package/dist/commands/init/tools/brainstorm/index.js +145 -0
  32. package/dist/commands/init/tools/brainstorm/install-brainstorm.d.ts +19 -0
  33. package/dist/commands/init/tools/brainstorm/install-brainstorm.d.ts.map +1 -0
  34. package/dist/commands/init/tools/brainstorm/install-brainstorm.js +37 -0
  35. package/dist/commands/init/tools/index.d.ts +3 -1
  36. package/dist/commands/init/tools/index.d.ts.map +1 -1
  37. package/dist/commands/init/tools/index.js +76 -6
  38. package/dist/commands/init/tools/shared/skill-manifest.d.ts +7 -0
  39. package/dist/commands/init/tools/shared/skill-manifest.d.ts.map +1 -1
  40. package/dist/commands/init/tools/shared/skill-manifest.js +11 -0
  41. package/dist/commands/tools/remove/index.d.ts.map +1 -1
  42. package/dist/commands/tools/remove/index.js +2 -1
  43. package/dist/commands/tools/shared/install-sync-context.d.ts.map +1 -1
  44. package/dist/commands/tools/shared/install-sync-context.js +3 -1
  45. package/dist/commands/tools/shared/scan-tools.d.ts.map +1 -1
  46. package/dist/commands/tools/shared/scan-tools.js +3 -1
  47. package/dist/commands/tools/shared/types.d.ts +1 -1
  48. package/dist/commands/tools/shared/types.d.ts.map +1 -1
  49. package/dist/commands/tools/update/index.d.ts.map +1 -1
  50. package/dist/commands/tools/update/index.js +2 -1
  51. package/dist/commands/tools/update/update-tools.d.ts.map +1 -1
  52. package/dist/commands/tools/update/update-tools.js +6 -1
  53. package/dist/config/oat-config.d.ts +1 -1
  54. package/dist/config/oat-config.d.ts.map +1 -1
  55. package/dist/config/oat-config.js +1 -0
  56. package/dist/config/resolve.d.ts.map +1 -1
  57. package/dist/config/resolve.js +1 -0
  58. package/package.json +2 -2
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: oat-idea-ideate
3
- version: 1.2.0
4
- description: Use when continuing brainstorming for an existing idea or starting from a scratchpad entry. Guides conversational ideation and refinement.
3
+ version: 1.2.1
4
+ description: Use when continuing an existing tracked idea or expanding an explicit scratchpad seed from {IDEAS_ROOT}/scratchpad.md. Do NOT use to start a brand-new, destinationless brainstorm; use oat-brainstorm for that.
5
5
  argument-hint: '[--global]'
6
6
  disable-model-invocation: true
7
7
  user-invocable: true
@@ -10,13 +10,13 @@ allowed-tools: Read, Write, Bash, Glob, AskUserQuestion
10
10
 
11
11
  # Ideate
12
12
 
13
- Resume brainstorming on an existing idea, or pick one from the scratchpad to start exploring.
13
+ Resume brainstorming on an existing tracked idea, or expand an explicit scratchpad seed into a tracked idea before continuing ideation.
14
14
 
15
15
  ## Mode Assertion
16
16
 
17
17
  **OAT MODE: Ideation**
18
18
 
19
- **Purpose:** Lightweight brainstorming through natural, exploratory conversation. Capture the essence of an idea without formal structure or implementation detail.
19
+ **Purpose:** Lightweight brainstorming through natural, exploratory conversation for an idea record that already exists or for a scratchpad seed the user explicitly selects. Capture the essence of that tracked idea without formal structure or implementation detail.
20
20
 
21
21
  **BLOCKED Activities:**
22
22
 
@@ -25,6 +25,7 @@ Resume brainstorming on an existing idea, or pick one from the scratchpad to sta
25
25
  - No technical designs or architecture
26
26
  - No task breakdowns or plans
27
27
  - No forced structure — let the idea breathe
28
+ - No brand-new destinationless brainstorm activation. Use `oat-brainstorm` when the user says "let's brainstorm", "brainstorm this", or otherwise opens exploratory discussion without naming an existing idea or scratchpad seed.
28
29
 
29
30
  **ALLOWED Activities:**
30
31
 
@@ -41,6 +42,7 @@ If you catch yourself:
41
42
  - Writing implementation details → STOP (capture as an Open Question instead)
42
43
  - Formalizing requirements → STOP (keep it conversational)
43
44
  - Creating structured deliverables → STOP (save for project workflow)
45
+ - Treating a generic brainstorm request as a scratchpad entry → STOP. Scratchpad mode requires an actual unchecked entry in `{IDEAS_ROOT}/scratchpad.md` or an explicit user reference to one.
44
46
 
45
47
  **Recovery:**
46
48
 
@@ -90,6 +92,8 @@ Determine whether to operate at project level or user (global) level.
90
92
 
91
93
  ### Step 1: Resolve Active Idea
92
94
 
95
+ This skill is a resume / expand flow, not a blank-slate brainstorm entry point. If the user has only asked to brainstorm and has not named an existing idea, an active idea, or a scratchpad seed, stop and route to `oat-brainstorm`.
96
+
93
97
  Read `activeIdea` from config:
94
98
 
95
99
  ```bash
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  name: oat-pjm-add-backlog-item
3
- version: 1.1.0
3
+ version: 1.1.1
4
4
  description: Use when the user requests or confirms adding a new repo backlog item — e.g. "add a backlog item for X", "capture that as backlog", "track that follow-up", "file a backlog ticket", or confirms a previously offered backlog capture. Do NOT auto-invoke when a follow-up is mentioned. Creates the item file in the file-per-item backlog structure, regenerates the index, and prompts for curated overview updates.
5
+ disable-model-invocation: false
5
6
  user-invocable: true
6
7
  allowed-tools: Read, Write, Bash, Glob, Grep, AskUserQuestion
7
8
  ---
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  name: oat-pjm-update-repo-reference
3
- version: 1.1.0
3
+ version: 1.1.1
4
4
  description: Use when repo reference artifacts need updating — roadmap, decision records, backlog status, or completed history. Frequently invoked at project completion, often chained from `oat-project-document`, to ensure `.oat/repo/reference/` state reflects what shipped.
5
+ disable-model-invocation: false
5
6
  user-invocable: true
6
7
  allowed-tools: Read, Write, Bash, Glob, Grep, AskUserQuestion
7
8
  ---
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-complete
3
- version: 1.4.4
3
+ version: 1.4.5
4
4
  description: Use when all implementation work is finished and the project is ready to close. Marks the OAT project lifecycle as complete.
5
5
  disable-model-invocation: true
6
6
  user-invocable: true
@@ -379,10 +379,56 @@ echo "Project archived to $ARCHIVE_PATH"
379
379
 
380
380
  - Always archive locally first. The local archive is the authoritative completion artifact even when remote sync is also configured.
381
381
  - If `archive.summaryExportPath` is configured and `summary.md` exists after archive, copy it to `{repoRoot}/{archive.summaryExportPath}/YYYYMMDD-{PROJECT_NAME}.md`.
382
- - If `archive.s3SyncOnComplete=true` and `archive.s3Uri` is configured, sync the archived project to `{archive.s3Uri}/{repo-slug}/{PROJECT_NAME}/`. The S3 sync excludes process artifacts (`reviews/*`, `pr/*`) — only core deliverables (discovery, spec, design, plan, implementation, summary, state) are uploaded. The CLI enforces this via `S3_ARCHIVE_SYNC_EXCLUDES` in `archive-utils.ts`.
382
+ - If `archive.s3SyncOnComplete=true` and `archive.s3Uri` is configured, sync the archived project to `{archive.s3Uri}/{repo-slug}/projects/YYYYMMDD-{PROJECT_NAME}/`. The S3 sync excludes process artifacts (`reviews/*`, `pr/*`) — only core deliverables (discovery, spec, design, plan, implementation, summary, state) are uploaded. The CLI enforces this via `S3_ARCHIVE_SYNC_EXCLUDES` in `archive-utils.ts`.
383
383
  - If AWS CLI is missing or unusable for that S3 sync, warn and continue. Completion must not fail after the local archive succeeds.
384
384
  - If `archive.s3SyncOnComplete` is false or `archive.s3Uri` is unset, skip remote sync without prompting.
385
385
 
386
+ **AWS credential handling for archive S3 sync (required):**
387
+
388
+ When `archive.s3SyncOnComplete=true` and `archive.s3Uri` is set, the agent MUST honor the repo's archive-scoped AWS credentials instead of falling back to whatever shell profile/region happens to be active. The contract mirrors `buildAwsEnv` in `packages/cli/src/commands/project/archive/archive-utils.ts`.
389
+
390
+ - **Read both keys from OAT config before any AWS CLI call:**
391
+
392
+ ```bash
393
+ ARCHIVE_AWS_PROFILE=$(oat config get archive.awsProfile 2>/dev/null || true)
394
+ ARCHIVE_AWS_REGION=$(oat config get archive.awsRegion 2>/dev/null || true)
395
+ ```
396
+
397
+ - **Apply them to every `aws` invocation tied to archive sync** — preflight checks (`aws --version`, `aws sts get-caller-identity`), bucket access probes (`aws s3 ls`), and the actual `aws s3 sync`. Do not mix configured values across some calls and ambient values across others.
398
+ - **Configured archive values WIN over ambient shell AWS env vars.** A non-empty `archive.awsProfile` overrides any `AWS_PROFILE` or `AWS_DEFAULT_PROFILE` already exported in the shell. A non-empty `archive.awsRegion` overrides `AWS_REGION` and `AWS_DEFAULT_REGION`. Treat the repo's archive-scoped declaration as deliberate intent — users should not have to unset shell env vars to get correct archive credentials. Empty/unset config values fall through to the AWS CLI's normal resolution chain.
399
+ - **Prefer the OAT CLI when it is available.** If you delegate archive sync to an `oat project archive ...` invocation, the CLI applies the canonical handling for you (config-resolved profile/region clobber the spawned env). Do not pass `--profile` / `--region` flags unless the user asked for a one-off override different from the repo config.
400
+ - **Manual AWS CLI fallback** — when no OAT command wraps the operation and the agent must call `aws` directly, pass the configured profile/region explicitly. Either use flags:
401
+
402
+ ```bash
403
+ AWS_FLAGS=()
404
+ if [[ -n "$ARCHIVE_AWS_PROFILE" ]]; then
405
+ AWS_FLAGS+=(--profile "$ARCHIVE_AWS_PROFILE")
406
+ fi
407
+ if [[ -n "$ARCHIVE_AWS_REGION" ]]; then
408
+ AWS_FLAGS+=(--region "$ARCHIVE_AWS_REGION")
409
+ fi
410
+
411
+ aws "${AWS_FLAGS[@]}" sts get-caller-identity
412
+ aws "${AWS_FLAGS[@]}" s3 sync \
413
+ "$ARCHIVE_PATH" \
414
+ "${ARCHIVE_S3_URI%/}/${REPO_SLUG}/projects/${SNAPSHOT_NAME}/" \
415
+ --exclude 'reviews/*' --exclude 'pr/*'
416
+ ```
417
+
418
+ …or set the equivalent env vars for the spawned process so the same precedence applies:
419
+
420
+ ```bash
421
+ AWS_ENV=()
422
+ [[ -n "$ARCHIVE_AWS_PROFILE" ]] && AWS_ENV+=("AWS_PROFILE=$ARCHIVE_AWS_PROFILE")
423
+ [[ -n "$ARCHIVE_AWS_REGION" ]] && AWS_ENV+=("AWS_REGION=$ARCHIVE_AWS_REGION")
424
+ env "${AWS_ENV[@]}" aws s3 sync ...
425
+ ```
426
+
427
+ Both shapes are acceptable; the AWS CLI treats `--profile` / `--region` and `AWS_PROFILE` / `AWS_REGION` env as higher precedence than `AWS_DEFAULT_*`, so the configured values win.
428
+
429
+ - **Report the resolved profile/region in the completion summary** so the user can confirm the right identity ran the sync, e.g. `Archive S3 sync used AWS profile=tkstang-artifact-sync region=us-east-1`. Do not echo raw access keys, session tokens, or any value from `AWS_SECRET_ACCESS_KEY` / `AWS_SESSION_TOKEN`. If `archive.awsProfile` or `archive.awsRegion` is unset, report `<unset; using shell default>` for that field.
430
+ - **AccessDenied troubleshooting** — if `aws s3 sync` returns AccessDenied, confirm before retrying that the spawn actually used `archive.awsProfile` (not the ambient shell profile). A common pitfall is invoking `aws s3 sync` without flags from a shell where `AWS_PROFILE` points at an unrelated identity; rerun with the configured profile/region applied as above.
431
+
386
432
  **Worktree durability guard (required):**
387
433
 
388
434
  - If running in a worktree and the primary repo archive path is unavailable, do not silently continue with a local-only archive.
@@ -488,6 +534,7 @@ Show user:
488
534
 
489
535
  - "Project **{PROJECT_NAME}** marked as complete."
490
536
  - If archived: "Archived location: **{PROJECT_PATH}**"
537
+ - If S3 archive sync ran: include the resolved AWS profile and region used (e.g. `Archive S3 sync: profile=<archive.awsProfile> region=<archive.awsRegion>`). Show `<unset; using shell default>` for any field the config did not provide. Never echo raw credentials (`AWS_SECRET_ACCESS_KEY`, `AWS_SESSION_TOKEN`, etc.).
491
538
  - Include commit hash and push result for the bookkeeping changes.
492
539
  - If PR was opened: include the PR URL.
493
540
  - If `oat_pr_url` is present, show it in the completion summary even when PR creation was skipped because the project already tracked an open PR.
@@ -1,8 +1,9 @@
1
1
  ---
2
2
  name: oat-project-document
3
- version: 1.4.0
3
+ version: 1.4.1
4
4
  description: Use when the user requests or confirms documenting an active OAT project — e.g. "document the project", "update the docs", "run oat-project-document", or confirms a previously offered documentation run. Do NOT auto-invoke when implementation completes. Analyzes project artifacts, presents a documentation delta plan, and applies approved changes.
5
5
  argument-hint: '[project-path] [--auto]'
6
+ disable-model-invocation: false
6
7
  user-invocable: true
7
8
  allowed-tools: Read, Write, Edit, Bash(git:*), Glob, Grep, AskUserQuestion, Skill
8
9
  ---
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  name: oat-project-pr-final
3
- version: 1.4.0
3
+ version: 1.4.1
4
4
  description: Use when the user requests or confirms opening the final PR for an active OAT project — e.g. "open the final PR", "ship it", "run oat-project-pr-final", or confirms a previously offered final-PR step. Do NOT auto-invoke when phases are marked complete. Generates the final lifecycle PR description from artifacts and creates the PR.
5
+ disable-model-invocation: false
5
6
  user-invocable: true
6
7
  allowed-tools: Read, Write, Bash(git:*), Glob, Grep, AskUserQuestion
7
8
  ---
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: oat-project-spec
3
- version: 2.0.0
4
- description: Optional standalone skill for formalizing requirements into a structured spec.md when discovery is complete but you're not ready to design yet. Independent of the design workflow — oat-project-design confirms requirements automatically and does not require this skill to be run first.
3
+ version: 2.0.1
4
+ description: Use when discovery is complete but you're not ready to design yet, and you want to formalize requirements into a structured spec.md as an optional standalone step. Independent of the design workflow — oat-project-design confirms requirements automatically and does not require this skill to be run first.
5
5
  disable-model-invocation: true
6
6
  user-invocable: true
7
7
  allowed-tools: Read, Write, Bash(git:*), Glob, Grep, AskUserQuestion
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  name: oat-project-summary
3
- version: 1.1.0
3
+ version: 1.1.1
4
4
  description: Use when the user requests or confirms summarizing an active OAT project — e.g. "summarize the project", "generate the summary", "run oat-project-summary", or confirms a previously offered summary run. Do NOT auto-invoke when implementation completes. Generates summary.md from project artifacts as institutional memory.
5
+ disable-model-invocation: false
5
6
  user-invocable: true
6
7
  allowed-tools: Read, Write, Bash(git:*), Glob, Grep, AskUserQuestion
7
8
  ---
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/config/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGhF,OAAO,EACL,KAAK,SAAS,EACd,KAAK,cAAc,EAGnB,KAAK,UAAU,EAOhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwDpC,UAAU,yBAAyB;IACjC,mBAAmB,EAAE,CACnB,OAAO,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,KAC/C,cAAc,CAAC;IACpB,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACxD,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAClE,mBAAmB,EAAE,CACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,KACnB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,cAAc,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/D,eAAe,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E,mBAAmB,EAAE,CACnB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,CAAC,UAAU,KACnB,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,sBAAsB,EAAE,CACtB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM,CAAC,UAAU,KACnB,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;CAC/B;AAwmCD,wBAAgB,mBAAmB,CACjC,SAAS,GAAE,OAAO,CAAC,yBAAyB,CAAM,GACjD,OAAO,CA0GT"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/config/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGhF,OAAO,EACL,KAAK,SAAS,EACd,KAAK,cAAc,EAGnB,KAAK,UAAU,EAOhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyDpC,UAAU,yBAAyB;IACjC,mBAAmB,EAAE,CACnB,OAAO,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,KAC/C,cAAc,CAAC;IACpB,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACxD,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAClE,mBAAmB,EAAE,CACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,KACnB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,cAAc,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/D,eAAe,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E,mBAAmB,EAAE,CACnB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,CAAC,UAAU,KACnB,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,sBAAsB,EAAE,CACtB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM,CAAC,UAAU,KACnB,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;CAC/B;AAonCD,wBAAgB,mBAAmB,CACjC,SAAS,GAAE,OAAO,CAAC,yBAAyB,CAAM,GACjD,OAAO,CA0GT"}
@@ -24,6 +24,7 @@ const KEY_ORDER = [
24
24
  'documentation.requireForProjectCompletion',
25
25
  'git.defaultBranch',
26
26
  'projects.root',
27
+ 'tools.brainstorm',
27
28
  'tools.core',
28
29
  'tools.docs',
29
30
  'tools.ideas',
@@ -196,6 +197,17 @@ const CONFIG_CATALOG = [
196
197
  owningCommand: 'oat config set archive.awsRegion <value>',
197
198
  description: 'AWS region forwarded as AWS_REGION to every `aws` invocation made by the archive S3 sync (completion + `oat project archive sync`). Precedence: per-invocation flag > existing shell env > this config value.',
198
199
  },
200
+ {
201
+ key: 'tools.brainstorm',
202
+ group: 'Shared Repo (.oat/config.json)',
203
+ file: '.oat/config.json',
204
+ scope: 'shared repo',
205
+ type: 'boolean',
206
+ defaultValue: 'false',
207
+ mutability: 'read/write',
208
+ owningCommand: 'oat tools install / oat tools update',
209
+ description: 'Whether the brainstorm tool pack is installed.',
210
+ },
199
211
  {
200
212
  key: 'tools.core',
201
213
  group: 'Shared Repo (.oat/config.json)',
@@ -0,0 +1,22 @@
1
+ import { type CommandContext, type GlobalOptions } from '../../../../app/command-context.js';
2
+ import { type PromptContext } from '../../../shared/shared.prompts.js';
3
+ import { type ScanToolsOptions } from '../../../tools/shared/scan-tools.js';
4
+ import type { ToolInfo } from '../../../tools/shared/types.js';
5
+ import { type OatConfig } from '../../../../config/oat-config.js';
6
+ import { Command } from 'commander';
7
+ import { type InstallBrainstormOptions, type InstallBrainstormResult } from './install-brainstorm.js';
8
+ type InstallScope = 'project' | 'user';
9
+ interface InitToolsBrainstormDependencies {
10
+ buildCommandContext: (options: GlobalOptions) => CommandContext;
11
+ resolveProjectRoot: (cwd: string) => Promise<string>;
12
+ resolveScopeRoot: (scope: InstallScope, cwd: string, home: string) => string;
13
+ resolveAssetsRoot: () => Promise<string>;
14
+ installBrainstorm: (options: InstallBrainstormOptions) => Promise<InstallBrainstormResult>;
15
+ confirmAction: (message: string, ctx: PromptContext) => Promise<boolean>;
16
+ scanTools: (options: ScanToolsOptions) => Promise<ToolInfo[]>;
17
+ readOatConfig: (repoRoot: string) => Promise<OatConfig>;
18
+ writeOatConfig: (repoRoot: string, config: OatConfig) => Promise<void>;
19
+ }
20
+ export declare function createInitToolsBrainstormCommand(overrides?: Partial<InitToolsBrainstormDependencies>): Command;
21
+ export {};
22
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/commands/init/tools/brainstorm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,iCAAiC,CAAC;AAMzC,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EACL,KAAK,SAAS,EAGf,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAEL,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC7B,MAAM,sBAAsB,CAAC;AAM9B,KAAK,YAAY,GAAG,SAAS,GAAG,MAAM,CAAC;AAEvC,UAAU,+BAA+B;IACvC,mBAAmB,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,cAAc,CAAC;IAChE,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,gBAAgB,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7E,iBAAiB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,iBAAiB,EAAE,CACjB,OAAO,EAAE,wBAAwB,KAC9B,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACtC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACzE,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9D,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACxD,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACxE;AA+KD,wBAAgB,gCAAgC,CAC9C,SAAS,GAAE,OAAO,CAAC,+BAA+B,CAAM,GACvD,OAAO,CA2BT"}
@@ -0,0 +1,145 @@
1
+ import { buildCommandContext, } from '../../../../app/command-context.js';
2
+ import { resolvePackDefaultScope } from '../../../init/tools/shared/skill-manifest.js';
3
+ import { confirmAction, } from '../../../shared/shared.prompts.js';
4
+ import { readGlobalOptions } from '../../../shared/shared.utils.js';
5
+ import { canonicalPathsForPack, setInstalledCanonicalPaths, } from '../../../tools/shared/install-sync-context.js';
6
+ import { scanTools as defaultScanTools, } from '../../../tools/shared/scan-tools.js';
7
+ import { readOatConfig as defaultReadOatConfig, writeOatConfig as defaultWriteOatConfig, } from '../../../../config/oat-config.js';
8
+ import { resolveAssetsRoot } from '../../../../fs/assets.js';
9
+ import { resolveProjectRoot, resolveScopeRoot } from '../../../../fs/paths.js';
10
+ import { Command } from 'commander';
11
+ import { installBrainstorm as defaultInstallBrainstorm, } from './install-brainstorm.js';
12
+ const DEFAULT_DEPENDENCIES = {
13
+ buildCommandContext,
14
+ resolveProjectRoot,
15
+ resolveScopeRoot,
16
+ resolveAssetsRoot,
17
+ installBrainstorm: defaultInstallBrainstorm,
18
+ confirmAction,
19
+ scanTools: defaultScanTools,
20
+ readOatConfig: defaultReadOatConfig,
21
+ writeOatConfig: defaultWriteOatConfig,
22
+ };
23
+ async function resolveInstallScope(context, projectRoot, userRoot, assetsRoot, dependencies) {
24
+ // Honor explicit --scope before any existing-install or default
25
+ // resolution so callers can always override.
26
+ if (context.scope === 'project') {
27
+ return { scope: 'project', source: 'explicit' };
28
+ }
29
+ if (context.scope === 'user') {
30
+ return { scope: 'user', source: 'explicit' };
31
+ }
32
+ // Existing-install detection MUST short-circuit before PACK_METADATA
33
+ // defaultScope is consulted, so re-installing a pack already placed at
34
+ // a particular scope never silently migrates the user across scopes.
35
+ const [projectTools, userTools] = await Promise.all([
36
+ dependencies.scanTools({
37
+ scope: 'project',
38
+ scopeRoot: projectRoot,
39
+ assetsRoot,
40
+ }),
41
+ dependencies.scanTools({
42
+ scope: 'user',
43
+ scopeRoot: userRoot,
44
+ assetsRoot,
45
+ }),
46
+ ]);
47
+ const installedAtProject = projectTools.some((tool) => tool.pack === 'brainstorm');
48
+ const installedAtUser = userTools.some((tool) => tool.pack === 'brainstorm');
49
+ if (installedAtProject) {
50
+ return { scope: 'project', source: 'existing-install' };
51
+ }
52
+ if (installedAtUser) {
53
+ return { scope: 'user', source: 'existing-install' };
54
+ }
55
+ return {
56
+ scope: resolvePackDefaultScope('brainstorm'),
57
+ source: 'pack-default',
58
+ };
59
+ }
60
+ function getCountSummary(result) {
61
+ return {
62
+ skills: `copied=${result.copiedSkills.length}, updated=${result.updatedSkills.length}, skipped=${result.skippedSkills.length}`,
63
+ };
64
+ }
65
+ function reportSuccess(context, scope, targetRoot, assetsRoot, result) {
66
+ if (context.json) {
67
+ context.logger.json({
68
+ status: 'ok',
69
+ scope,
70
+ targetRoot,
71
+ assetsRoot,
72
+ result,
73
+ });
74
+ return;
75
+ }
76
+ const counts = getCountSummary(result);
77
+ context.logger.info('Installed brainstorm tool pack.');
78
+ context.logger.info(`Scope: ${scope}`);
79
+ context.logger.info(`Target root: ${targetRoot}`);
80
+ context.logger.info(`Skills: ${counts.skills}`);
81
+ context.logger.info(`Run: oat sync --scope ${scope}`);
82
+ }
83
+ async function persistConfigAfterInstall(projectRoot, dependencies) {
84
+ const config = await dependencies.readOatConfig(projectRoot);
85
+ const tools = { ...(config.tools ?? {}), brainstorm: true };
86
+ await dependencies.writeOatConfig(projectRoot, { ...config, tools });
87
+ }
88
+ async function runInitToolsBrainstorm(context, options, dependencies) {
89
+ try {
90
+ const projectRoot = await dependencies.resolveProjectRoot(context.cwd);
91
+ const userRoot = dependencies.resolveScopeRoot('user', context.cwd, context.home);
92
+ const assetsRoot = await dependencies.resolveAssetsRoot();
93
+ const { scope } = await resolveInstallScope(context, projectRoot, userRoot, assetsRoot, dependencies);
94
+ const targetRoot = scope === 'project' ? projectRoot : userRoot;
95
+ if (options.force && context.interactive) {
96
+ const confirmed = await dependencies.confirmAction(`Force overwrite existing brainstorm assets in ${scope} scope?`, { interactive: context.interactive });
97
+ if (!confirmed) {
98
+ if (!context.json) {
99
+ context.logger.info('Cancelled: no files were overwritten.');
100
+ }
101
+ process.exitCode = 0;
102
+ return false;
103
+ }
104
+ }
105
+ const result = await dependencies.installBrainstorm({
106
+ assetsRoot,
107
+ targetRoot,
108
+ force: options.force,
109
+ });
110
+ // Persist tools.brainstorm: true to .oat/config.json after a
111
+ // successful install so config-write semantics match the main
112
+ // installer flow used by `oat init tools`.
113
+ await persistConfigAfterInstall(projectRoot, dependencies);
114
+ reportSuccess(context, scope, targetRoot, assetsRoot, result);
115
+ process.exitCode = 0;
116
+ return true;
117
+ }
118
+ catch (error) {
119
+ const message = error instanceof Error ? error.message : String(error);
120
+ if (context.json) {
121
+ context.logger.json({ status: 'error', message });
122
+ }
123
+ else {
124
+ context.logger.error(message);
125
+ }
126
+ process.exitCode = 1;
127
+ return false;
128
+ }
129
+ }
130
+ export function createInitToolsBrainstormCommand(overrides = {}) {
131
+ const dependencies = {
132
+ ...DEFAULT_DEPENDENCIES,
133
+ ...overrides,
134
+ };
135
+ return new Command('brainstorm')
136
+ .description('Install OAT brainstorm skill (always-on entry point with visual companion)')
137
+ .option('--force', 'Overwrite existing files where applicable')
138
+ .action(async (options, command) => {
139
+ const context = dependencies.buildCommandContext(readGlobalOptions(command));
140
+ const didInstall = await runInitToolsBrainstorm(context, options, dependencies);
141
+ if (didInstall) {
142
+ setInstalledCanonicalPaths(command, canonicalPathsForPack('brainstorm'));
143
+ }
144
+ });
145
+ }
@@ -0,0 +1,19 @@
1
+ import { BRAINSTORM_SKILLS } from '../../../init/tools/shared/skill-manifest.js';
2
+ export { BRAINSTORM_SKILLS };
3
+ export interface InstallBrainstormOptions {
4
+ assetsRoot: string;
5
+ targetRoot: string;
6
+ force?: boolean;
7
+ }
8
+ export interface InstallBrainstormResult {
9
+ copiedSkills: string[];
10
+ updatedSkills: string[];
11
+ skippedSkills: string[];
12
+ outdatedSkills: Array<{
13
+ name: string;
14
+ installed: string | null;
15
+ bundled: string | null;
16
+ }>;
17
+ }
18
+ export declare function installBrainstorm(options: InstallBrainstormOptions): Promise<InstallBrainstormResult>;
19
+ //# sourceMappingURL=install-brainstorm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-brainstorm.d.ts","sourceRoot":"","sources":["../../../../../src/commands/init/tools/brainstorm/install-brainstorm.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAE/E,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAE7B,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,EAAE,KAAK,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,CAAC,CAAC;CACJ;AAED,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,uBAAuB,CAAC,CAqClC"}
@@ -0,0 +1,37 @@
1
+ import { join } from 'node:path';
2
+ import { copyDirWithVersionCheck } from '../../../init/tools/shared/copy-helpers.js';
3
+ import { BRAINSTORM_SKILLS } from '../../../init/tools/shared/skill-manifest.js';
4
+ export { BRAINSTORM_SKILLS };
5
+ export async function installBrainstorm(options) {
6
+ const force = options.force ?? false;
7
+ const result = {
8
+ copiedSkills: [],
9
+ updatedSkills: [],
10
+ skippedSkills: [],
11
+ outdatedSkills: [],
12
+ };
13
+ for (const skill of BRAINSTORM_SKILLS) {
14
+ const source = join(options.assetsRoot, 'skills', skill);
15
+ const destination = join(options.targetRoot, '.agents', 'skills', skill);
16
+ // The visual-companion bundle (scripts/, references/) ships under the
17
+ // skill directory and copies along with it via copyDirWithVersionCheck.
18
+ const copyResult = await copyDirWithVersionCheck(source, destination, force);
19
+ if (copyResult.status === 'copied') {
20
+ result.copiedSkills.push(skill);
21
+ }
22
+ else if (copyResult.status === 'updated') {
23
+ result.updatedSkills.push(skill);
24
+ }
25
+ else if (copyResult.status === 'outdated') {
26
+ result.outdatedSkills.push({
27
+ name: skill,
28
+ installed: copyResult.installedVersion ?? null,
29
+ bundled: copyResult.bundledVersion ?? null,
30
+ });
31
+ }
32
+ else {
33
+ result.skippedSkills.push(skill);
34
+ }
35
+ }
36
+ return result;
37
+ }
@@ -6,6 +6,7 @@ import type { ToolInfo } from '../../tools/shared/types.js';
6
6
  import { type OatConfig } from '../../../config/oat-config.js';
7
7
  import type { ConcreteScope } from '../../../shared/types.js';
8
8
  import { Command } from 'commander';
9
+ import { type InstallBrainstormOptions, type InstallBrainstormResult } from './brainstorm/install-brainstorm.js';
9
10
  import { type InstallCoreOptions, type InstallCoreResult } from './core/install-core.js';
10
11
  import { type InstallDocsOptions, type InstallDocsResult } from './docs/install-docs.js';
11
12
  import { type InstallIdeasOptions, type InstallIdeasResult } from './ideas/install-ideas.js';
@@ -15,7 +16,7 @@ import { type InstallUtilityOptions, type InstallUtilityResult } from './utility
15
16
  import { type InstallWorkflowsOptions, type InstallWorkflowsResult } from './workflows/install-workflows.js';
16
17
  type InstallScope = 'project' | 'user';
17
18
  type PackInstallTarget = InstallScope | 'both';
18
- export type ToolPack = 'core' | 'ideas' | 'docs' | 'workflows' | 'utility' | 'project-management' | 'research';
19
+ export type ToolPack = 'core' | 'ideas' | 'docs' | 'workflows' | 'utility' | 'project-management' | 'research' | 'brainstorm';
19
20
  export interface InitToolsDependencies {
20
21
  buildCommandContext: (options: GlobalOptions) => CommandContext;
21
22
  resolveProjectRoot: (cwd: string) => Promise<string>;
@@ -31,6 +32,7 @@ export interface InitToolsDependencies {
31
32
  installUtility: (options: InstallUtilityOptions) => Promise<InstallUtilityResult>;
32
33
  installProjectManagement: (options: InstallProjectManagementOptions) => Promise<InstallProjectManagementResult>;
33
34
  installResearch: (options: InstallResearchOptions) => Promise<InstallResearchResult>;
35
+ installBrainstorm: (options: InstallBrainstormOptions) => Promise<InstallBrainstormResult>;
34
36
  copyDirWithStatus: (source: string, destination: string, force: boolean) => Promise<'copied' | 'updated' | 'skipped'>;
35
37
  removeDirectory: (target: string) => Promise<void>;
36
38
  removeFile: (target: string) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/init/tools/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/init/tools/index.ts"],"names":[],"mappings":"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"}