lsd-pi 1.1.2 → 1.1.3

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 (183) hide show
  1. package/README.md +2 -1
  2. package/dist/bedrock-auth.d.ts +25 -0
  3. package/dist/bedrock-auth.js +59 -0
  4. package/dist/headless.js +8 -3
  5. package/dist/loader.js +1 -0
  6. package/dist/onboarding-llm.d.ts +37 -0
  7. package/dist/onboarding-llm.js +64 -0
  8. package/dist/onboarding.d.ts +2 -14
  9. package/dist/onboarding.js +146 -71
  10. package/dist/pi-migration.js +1 -0
  11. package/dist/resources/extensions/memory/auto-extract.js +21 -3
  12. package/dist/resources/extensions/memory/dream.js +703 -0
  13. package/dist/resources/extensions/memory/extension-manifest.json +2 -2
  14. package/dist/resources/extensions/memory/index.js +115 -8
  15. package/dist/resources/extensions/slash-commands/extension-manifest.json +10 -10
  16. package/dist/resources/extensions/slash-commands/index.js +0 -4
  17. package/dist/resources/extensions/slash-commands/plan.js +181 -45
  18. package/dist/resources/extensions/subagent/agents.js +14 -1
  19. package/dist/resources/extensions/subagent/configured-model.js +3 -2
  20. package/dist/resources/extensions/subagent/index.js +34 -28
  21. package/dist/resources/extensions/subagent/launch-helpers.js +24 -0
  22. package/dist/resources/extensions/subagent/model-resolution.js +41 -3
  23. package/dist/resources/extensions/usage/extension-manifest.json +11 -0
  24. package/dist/resources/extensions/usage/index.js +346 -0
  25. package/{src/resources/skills/create-gsd-extension → dist/resources/skills/create-lsd-extension}/SKILL.md +6 -6
  26. package/{src/resources/skills/create-gsd-extension → dist/resources/skills/create-lsd-extension}/references/custom-tools.md +1 -1
  27. package/dist/resources/skills/{create-gsd-extension → create-lsd-extension}/references/extension-lifecycle.md +2 -2
  28. package/dist/resources/skills/{create-gsd-extension → create-lsd-extension}/references/extensioncontext-reference.md +1 -1
  29. package/{src/resources/skills/create-gsd-extension → dist/resources/skills/create-lsd-extension}/references/key-rules-gotchas.md +4 -4
  30. package/dist/resources/skills/{create-gsd-extension → create-lsd-extension}/references/packaging-distribution.md +6 -6
  31. package/dist/resources/skills/{create-gsd-extension → create-lsd-extension}/workflows/create-extension.md +3 -3
  32. package/dist/resources/skills/{create-gsd-extension → create-lsd-extension}/workflows/debug-extension.md +5 -5
  33. package/dist/resources/skills/teams-debug/SKILL.md +5 -6
  34. package/dist/resources/skills/teams-document/SKILL.md +1 -2
  35. package/dist/resources/skills/teams-plan/SKILL.md +3 -4
  36. package/dist/resources/skills/teams-run/SKILL.md +3 -4
  37. package/dist/resources/skills/teams-verify/SKILL.md +4 -5
  38. package/dist/startup-model-validation.js +1 -0
  39. package/dist/welcome-screen.js +13 -11
  40. package/dist/wizard.js +12 -0
  41. package/package.json +1 -1
  42. package/packages/pi-ai/dist/models.generated.d.ts +688 -409
  43. package/packages/pi-ai/dist/models.generated.d.ts.map +1 -1
  44. package/packages/pi-ai/dist/models.generated.js +761 -488
  45. package/packages/pi-ai/dist/models.generated.js.map +1 -1
  46. package/packages/pi-ai/scripts/generate-models.ts +40 -18
  47. package/packages/pi-ai/src/models.generated.ts +759 -486
  48. package/packages/pi-coding-agent/dist/cli/config-selector.js +1 -1
  49. package/packages/pi-coding-agent/dist/cli/config-selector.js.map +1 -1
  50. package/packages/pi-coding-agent/dist/core/agent-session.d.ts +1 -2
  51. package/packages/pi-coding-agent/dist/core/agent-session.d.ts.map +1 -1
  52. package/packages/pi-coding-agent/dist/core/agent-session.js +6 -30
  53. package/packages/pi-coding-agent/dist/core/agent-session.js.map +1 -1
  54. package/packages/pi-coding-agent/dist/core/settings-manager.d.ts +6 -0
  55. package/packages/pi-coding-agent/dist/core/settings-manager.d.ts.map +1 -1
  56. package/packages/pi-coding-agent/dist/core/settings-manager.js +44 -1
  57. package/packages/pi-coding-agent/dist/core/settings-manager.js.map +1 -1
  58. package/packages/pi-coding-agent/dist/core/skill-tool.test.js +9 -5
  59. package/packages/pi-coding-agent/dist/core/skill-tool.test.js.map +1 -1
  60. package/packages/pi-coding-agent/dist/core/skills.d.ts.map +1 -1
  61. package/packages/pi-coding-agent/dist/core/skills.js +3 -2
  62. package/packages/pi-coding-agent/dist/core/skills.js.map +1 -1
  63. package/packages/pi-coding-agent/dist/index.d.ts +1 -1
  64. package/packages/pi-coding-agent/dist/index.d.ts.map +1 -1
  65. package/packages/pi-coding-agent/dist/index.js +1 -1
  66. package/packages/pi-coding-agent/dist/index.js.map +1 -1
  67. package/packages/pi-coding-agent/dist/main.js +1 -1
  68. package/packages/pi-coding-agent/dist/main.js.map +1 -1
  69. package/packages/pi-coding-agent/dist/modes/interactive/components/bash-execution.js +2 -2
  70. package/packages/pi-coding-agent/dist/modes/interactive/components/bash-execution.js.map +1 -1
  71. package/packages/pi-coding-agent/dist/modes/interactive/components/footer.d.ts.map +1 -1
  72. package/packages/pi-coding-agent/dist/modes/interactive/components/footer.js +15 -12
  73. package/packages/pi-coding-agent/dist/modes/interactive/components/footer.js.map +1 -1
  74. package/packages/pi-coding-agent/dist/modes/interactive/components/settings-selector.d.ts +6 -0
  75. package/packages/pi-coding-agent/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  76. package/packages/pi-coding-agent/dist/modes/interactive/components/settings-selector.js +25 -1
  77. package/packages/pi-coding-agent/dist/modes/interactive/components/settings-selector.js.map +1 -1
  78. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js +1 -1
  79. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js.map +1 -1
  80. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.d.ts.map +1 -1
  81. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js +10 -0
  82. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js.map +1 -1
  83. package/packages/pi-coding-agent/dist/modes/interactive/controllers/extension-ui-controller.js +1 -1
  84. package/packages/pi-coding-agent/dist/modes/interactive/controllers/extension-ui-controller.js.map +1 -1
  85. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  86. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js +31 -22
  87. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js.map +1 -1
  88. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts +18 -5
  89. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  90. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.js +139 -20
  91. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.js.map +1 -1
  92. package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.d.ts.map +1 -1
  93. package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.js +4 -0
  94. package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.js.map +1 -1
  95. package/packages/pi-coding-agent/package.json +1 -1
  96. package/packages/pi-coding-agent/src/cli/config-selector.ts +1 -1
  97. package/packages/pi-coding-agent/src/core/agent-session.ts +5 -28
  98. package/packages/pi-coding-agent/src/core/settings-manager.ts +52 -1
  99. package/packages/pi-coding-agent/src/core/skill-tool.test.ts +18 -5
  100. package/packages/pi-coding-agent/src/core/skills.ts +3 -2
  101. package/packages/pi-coding-agent/src/index.ts +1 -1
  102. package/packages/pi-coding-agent/src/main.ts +1 -1
  103. package/packages/pi-coding-agent/src/modes/interactive/components/bash-execution.ts +2 -2
  104. package/packages/pi-coding-agent/src/modes/interactive/components/footer.ts +12 -13
  105. package/packages/pi-coding-agent/src/modes/interactive/components/settings-selector.ts +39 -1
  106. package/packages/pi-coding-agent/src/modes/interactive/components/tool-execution.ts +1 -1
  107. package/packages/pi-coding-agent/src/modes/interactive/controllers/chat-controller.ts +10 -0
  108. package/packages/pi-coding-agent/src/modes/interactive/controllers/extension-ui-controller.ts +1 -1
  109. package/packages/pi-coding-agent/src/modes/interactive/interactive-mode.ts +46 -20
  110. package/packages/pi-coding-agent/src/modes/interactive/theme/theme.ts +171 -20
  111. package/packages/pi-coding-agent/src/modes/interactive/theme/themes.ts +4 -0
  112. package/packages/pi-tui/dist/components/editor.d.ts +1 -0
  113. package/packages/pi-tui/dist/components/editor.d.ts.map +1 -1
  114. package/packages/pi-tui/dist/components/editor.js +23 -0
  115. package/packages/pi-tui/dist/components/editor.js.map +1 -1
  116. package/packages/pi-tui/src/components/editor.ts +23 -0
  117. package/pkg/dist/modes/interactive/theme/theme.d.ts +18 -5
  118. package/pkg/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  119. package/pkg/dist/modes/interactive/theme/theme.js +139 -20
  120. package/pkg/dist/modes/interactive/theme/theme.js.map +1 -1
  121. package/pkg/dist/modes/interactive/theme/themes.d.ts.map +1 -1
  122. package/pkg/dist/modes/interactive/theme/themes.js +4 -0
  123. package/pkg/dist/modes/interactive/theme/themes.js.map +1 -1
  124. package/pkg/package.json +1 -1
  125. package/src/resources/extensions/memory/auto-extract.ts +23 -3
  126. package/src/resources/extensions/memory/dream.ts +814 -0
  127. package/src/resources/extensions/memory/extension-manifest.json +2 -2
  128. package/src/resources/extensions/memory/index.ts +134 -13
  129. package/src/resources/extensions/memory/tests/auto-extract.test.ts +10 -2
  130. package/src/resources/extensions/memory/tests/dream.test.ts +142 -0
  131. package/src/resources/extensions/slash-commands/extension-manifest.json +10 -10
  132. package/src/resources/extensions/slash-commands/index.ts +3 -7
  133. package/src/resources/extensions/slash-commands/plan.ts +192 -46
  134. package/src/resources/extensions/subagent/agents.ts +11 -1
  135. package/src/resources/extensions/subagent/configured-model.ts +3 -2
  136. package/src/resources/extensions/subagent/index.ts +38 -30
  137. package/src/resources/extensions/subagent/launch-helpers.ts +30 -0
  138. package/src/resources/extensions/subagent/model-resolution.ts +40 -3
  139. package/src/resources/extensions/usage/extension-manifest.json +11 -0
  140. package/src/resources/extensions/usage/index.ts +441 -0
  141. package/{dist/resources/skills/create-gsd-extension → src/resources/skills/create-lsd-extension}/SKILL.md +6 -6
  142. package/{dist/resources/skills/create-gsd-extension → src/resources/skills/create-lsd-extension}/references/custom-tools.md +1 -1
  143. package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/references/extension-lifecycle.md +2 -2
  144. package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/references/extensioncontext-reference.md +1 -1
  145. package/{dist/resources/skills/create-gsd-extension → src/resources/skills/create-lsd-extension}/references/key-rules-gotchas.md +4 -4
  146. package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/references/packaging-distribution.md +6 -6
  147. package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/workflows/create-extension.md +3 -3
  148. package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/workflows/debug-extension.md +5 -5
  149. package/src/resources/skills/teams-debug/SKILL.md +5 -6
  150. package/src/resources/skills/teams-document/SKILL.md +1 -2
  151. package/src/resources/skills/teams-plan/SKILL.md +3 -4
  152. package/src/resources/skills/teams-run/SKILL.md +3 -4
  153. package/src/resources/skills/teams-verify/SKILL.md +4 -5
  154. package/dist/resources/extensions/slash-commands/create-extension.js +0 -264
  155. package/dist/resources/extensions/slash-commands/create-slash-command.js +0 -208
  156. package/src/resources/extensions/slash-commands/create-extension.ts +0 -297
  157. package/src/resources/extensions/slash-commands/create-slash-command.ts +0 -234
  158. /package/dist/resources/skills/{create-gsd-extension → create-lsd-extension}/references/compaction-session-control.md +0 -0
  159. /package/dist/resources/skills/{create-gsd-extension → create-lsd-extension}/references/custom-commands.md +0 -0
  160. /package/dist/resources/skills/{create-gsd-extension → create-lsd-extension}/references/custom-rendering.md +0 -0
  161. /package/dist/resources/skills/{create-gsd-extension → create-lsd-extension}/references/custom-ui.md +0 -0
  162. /package/dist/resources/skills/{create-gsd-extension → create-lsd-extension}/references/events-reference.md +0 -0
  163. /package/dist/resources/skills/{create-gsd-extension → create-lsd-extension}/references/extensionapi-reference.md +0 -0
  164. /package/dist/resources/skills/{create-gsd-extension → create-lsd-extension}/references/mode-behavior.md +0 -0
  165. /package/dist/resources/skills/{create-gsd-extension → create-lsd-extension}/references/model-provider-management.md +0 -0
  166. /package/dist/resources/skills/{create-gsd-extension → create-lsd-extension}/references/remote-execution-overrides.md +0 -0
  167. /package/dist/resources/skills/{create-gsd-extension → create-lsd-extension}/references/state-management.md +0 -0
  168. /package/dist/resources/skills/{create-gsd-extension → create-lsd-extension}/references/system-prompt-modification.md +0 -0
  169. /package/dist/resources/skills/{create-gsd-extension → create-lsd-extension}/workflows/add-capability.md +0 -0
  170. /package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/references/compaction-session-control.md +0 -0
  171. /package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/references/custom-commands.md +0 -0
  172. /package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/references/custom-rendering.md +0 -0
  173. /package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/references/custom-ui.md +0 -0
  174. /package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/references/events-reference.md +0 -0
  175. /package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/references/extensionapi-reference.md +0 -0
  176. /package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/references/mode-behavior.md +0 -0
  177. /package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/references/model-provider-management.md +0 -0
  178. /package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/references/remote-execution-overrides.md +0 -0
  179. /package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/references/state-management.md +0 -0
  180. /package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/references/system-prompt-modification.md +0 -0
  181. /package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/templates/extension-skeleton.ts +0 -0
  182. /package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/templates/stateful-tool-skeleton.ts +0 -0
  183. /package/src/resources/skills/{create-gsd-extension → create-lsd-extension}/workflows/add-capability.md +0 -0
@@ -1,5 +1,5 @@
1
1
  <overview>
2
- Non-negotiable rules and common gotchas when building GSD extensions.
2
+ Non-negotiable rules and common gotchas when building LSD extensions.
3
3
  </overview>
4
4
 
5
5
  <must_follow>
@@ -22,16 +22,16 @@ Non-negotiable rules and common gotchas when building GSD extensions.
22
22
  - Overlay components are **disposed when closed** — create fresh instances each time
23
23
  - Treat `ctx.reload()` as terminal — code after runs from pre-reload version
24
24
  - Check `ctx.hasUI` before dialog methods (false in print/JSON mode)
25
- - Extension errors are logged but don't crash GSD — tool_call handler errors fail-safe (block the tool)
25
+ - Extension errors are logged but don't crash LSD — tool_call handler errors fail-safe (block the tool)
26
26
  </common_patterns>
27
27
 
28
28
  <gsd_paths>
29
- **GSD extension paths (community/user-installed extensions):**
29
+ **LSD extension paths (community/user-installed extensions):**
30
30
  - Global: `~/.pi/agent/extensions/*.ts`
31
31
  - Global (subdir): `~/.pi/agent/extensions/*/index.ts`
32
32
  - Project-local: `.gsd/extensions/*.ts`
33
33
  - Project-local (subdir): `.gsd/extensions/*/index.ts`
34
34
 
35
- Note: `~/.gsd/agent/extensions/` is reserved for bundled extensions synced from the gsd-pi package.
35
+ Note: `~/.gsd/agent/extensions/` is reserved for bundled extensions synced from the lsd-pi package.
36
36
  Community extensions placed there are silently ignored by the loader.
37
37
  </gsd_paths>
@@ -1,5 +1,5 @@
1
1
  <overview>
2
- Packaging extensions for distribution via npm, git, or local paths. Creating GSD/pi packages.
2
+ Packaging extensions for distribution via npm, git, or local paths. Creating LSD/pi packages.
3
3
  </overview>
4
4
 
5
5
  <package_manifest>
@@ -7,7 +7,7 @@ Add a `pi` manifest to `package.json`:
7
7
 
8
8
  ```json
9
9
  {
10
- "name": "my-gsd-package",
10
+ "name": "my-lsd-package",
11
11
  "keywords": ["pi-package"],
12
12
  "pi": {
13
13
  "extensions": ["./extensions"],
@@ -21,12 +21,12 @@ Add a `pi` manifest to `package.json`:
21
21
 
22
22
  <installing>
23
23
  ```bash
24
- gsd install npm:@foo/bar@1.0.0
25
- gsd install git:github.com/user/repo@v1
26
- gsd install ./local/path
24
+ lsd install npm:@foo/bar@1.0.0
25
+ lsd install git:github.com/user/repo@v1
26
+ lsd install ./local/path
27
27
 
28
28
  # Try without installing:
29
- gsd -e npm:@foo/bar
29
+ lsd -e npm:@foo/bar
30
30
  ```
31
31
  </installing>
32
32
 
@@ -12,7 +12,7 @@
12
12
  ## Step 1: Determine Scope and Placement
13
13
 
14
14
  Ask the user:
15
- - **Global** (`~/.pi/agent/extensions/`) — Available in all GSD sessions
15
+ - **Global** (`~/.pi/agent/extensions/`) — Available in all LSD sessions
16
16
  - **Project-local** (`.gsd/extensions/`) — Available only in this project
17
17
 
18
18
  ## Step 2: Determine Extension Capabilities
@@ -124,14 +124,14 @@ pi.on("tool_call", async (event, ctx) => {
124
124
 
125
125
  ```bash
126
126
  # Quick test without installing
127
- gsd -e ./path/to/my-extension.ts
127
+ lsd -e ./path/to/my-extension.ts
128
128
 
129
129
  # Or place in extensions dir and reload
130
130
  /reload
131
131
  ```
132
132
 
133
133
  Verify:
134
- - Extension loads without errors (check GSD startup output)
134
+ - Extension loads without errors (check LSD startup output)
135
135
  - Tools appear when LLM is asked to use them
136
136
  - Commands respond to `/mycommand`
137
137
  - Event hooks trigger at expected points
@@ -24,10 +24,10 @@
24
24
 
25
25
  ```bash
26
26
  # Test in isolation
27
- gsd -e ./path/to/extension.ts
27
+ lsd -e ./path/to/extension.ts
28
28
 
29
- # Check GSD startup output for errors
30
- # Extension errors are logged but don't crash GSD
29
+ # Check LSD startup output for errors
30
+ # Extension errors are logged but don't crash LSD
31
31
  ```
32
32
 
33
33
  ## Step 3: Verify File Location
@@ -38,7 +38,7 @@ Community extensions must be in auto-discovery paths:
38
38
  - `.gsd/extensions/*.ts`
39
39
  - `.gsd/extensions/*/index.ts`
40
40
 
41
- Note: `~/.gsd/agent/extensions/` is reserved for bundled extensions synced from the gsd-pi package.
41
+ Note: `~/.gsd/agent/extensions/` is reserved for bundled extensions synced from the lsd-pi package.
42
42
 
43
43
  The file must `export default function(pi: ExtensionAPI) { ... }`.
44
44
 
@@ -49,7 +49,7 @@ Read `../references/key-rules-gotchas.md` and verify each rule against the exten
49
49
  ## Step 5: Add Debugging
50
50
 
51
51
  ```typescript
52
- // Temporary: log to stderr (visible in GSD output)
52
+ // Temporary: log to stderr (visible in LSD output)
53
53
  console.error("[my-ext] Loading...");
54
54
 
55
55
  pi.on("session_start", async (_event, ctx) => {
@@ -1,18 +1,17 @@
1
1
  ---
2
2
  name: teams-debug
3
3
  description: "Fix any bug related to an active Teams plan. Can be triggered by the user at any time or automatically from teams-verify on failure. Reads the plan for context, spawns a targeted builder subagent to fix the issue, then appends a debug status update to the plan."
4
- user-invocable: true
5
4
  ---
6
5
 
7
6
  # Teams: Debug
8
7
 
9
8
  Fix a bug related to the current Teams plan. This skill can be triggered:
10
- - **By the user at any time** — e.g. "something's broken, use `/teams-debug`"
11
- - **Automatically from `/teams-verify`** — when a scenario fails during manual verification
9
+ - **By the user at any time** — e.g. "something's broken, use `/skill:teams-debug`"
10
+ - **Automatically from `/skill:teams-verify`** — when a scenario fails during manual verification
12
11
 
13
12
  It reads the plan (which contains all review and verification history) before fixing.
14
13
 
15
- **Prerequisite:** A `.lsd/plan/PLAN-*.md` file must exist. If none found, stop and tell the user to run `/teams-plan` first.
14
+ **Prerequisite:** A `.lsd/plan/PLAN-*.md` file must exist. If none found, stop and tell the user to run `/skill:teams-plan` first.
16
15
 
17
16
  ---
18
17
 
@@ -32,7 +31,7 @@ Otherwise, ask:
32
31
 
33
32
  > **What's the bug?**
34
33
  >
35
- > Describe what went wrong, what you expected, and what you saw. Include the scenario name if it came from `/teams-verify`.
34
+ > Describe what went wrong, what you expected, and what you saw. Include the scenario name if it came from `/skill:teams-verify`.
36
35
 
37
36
  Wait for their response.
38
37
 
@@ -127,4 +126,4 @@ Print:
127
126
  ```
128
127
 
129
128
  Then ask:
130
- > **Want to re-verify this scenario? Run `/teams-verify` to continue from where you left off.**
129
+ > **Want to re-verify this scenario? Run `/skill:teams-verify` to continue from where you left off.**
@@ -1,7 +1,6 @@
1
1
  ---
2
2
  name: teams-document
3
3
  description: "Update existing project docs (README.md, ARCHITECTURE.md, etc.) and the active plan file to reflect the latest build. Spawns a worker subagent scribe to find and update relevant documentation files and ensure the plan is accurate, then appends a docs status update to the plan."
4
- user-invocable: true
5
4
  ---
6
5
 
7
6
  # Teams: Document
@@ -9,7 +8,7 @@ user-invocable: true
9
8
  Update existing project documentation to reflect what was built in the current plan. Spawns a worker subagent that finds relevant docs and updates them — no new files created unless explicitly needed.
10
9
 
11
10
  **Prerequisite:** A `.lsd/plan/PLAN-*.md` file must exist. If none found, stop:
12
- > No plan files found in `.lsd/plan/`. Run `/teams-plan` first.
11
+ > No plan files found in `.lsd/plan/`. Run `/skill:teams-plan` first.
13
12
 
14
13
  ---
15
14
 
@@ -1,7 +1,6 @@
1
1
  ---
2
2
  name: teams-plan
3
3
  description: "Plan and build a feature. Orchestrator plans, spawns sequential builder subagents per phase (with Playwright/Maestro verification), then a reviewer subagent, then a builder to apply fixes. Supports parallel mode for independent phases."
4
- user-invocable: true
5
4
  ---
6
5
 
7
6
  # Teams: Plan + Build
@@ -41,7 +40,7 @@ mkdir -p .lsd/plan
41
40
  - Check for existing plan files: `.lsd/plan/PLAN-*.md`
42
41
  - Count existing files to determine N (next plan number = count + 1)
43
42
  - If plans exist, inform the user:
44
- > **Found [N-1] existing plan(s). Creating Plan #[N]. Use `/teams-run` to resume an existing plan.**
43
+ > **Found [N-1] existing plan(s). Creating Plan #[N]. Use `/skill:teams-run` to resume an existing plan.**
45
44
  - If no existing plans: plan number = 1
46
45
 
47
46
  Write `.lsd/plan/PLAN-[N].md`:
@@ -291,7 +290,7 @@ Final summary format:
291
290
  ```
292
291
 
293
292
  Then suggest:
294
- > **Build done. Run `/teams-verify` to walk through manual E2E verification.**
293
+ > **Build done. Run `/skill:teams-verify` to walk through manual E2E verification.**
295
294
 
296
295
  ---
297
296
 
@@ -299,7 +298,7 @@ Then suggest:
299
298
 
300
299
  Ask the user:
301
300
 
302
- > **"Would you like to update your documentation? Run `/teams-document` to have the scribe update your README, ARCHITECTURE.md, and other docs."**
301
+ > **"Would you like to update your documentation? Run `/skill:teams-document` to have the scribe update your README, ARCHITECTURE.md, and other docs."**
303
302
 
304
303
  If yes, invoke the `teams-document` skill.
305
304
 
@@ -1,7 +1,6 @@
1
1
  ---
2
2
  name: teams-run
3
3
  description: "Resume building a single Teams plan. Orchestrator spawns sequential or parallel builder subagents per incomplete phase, then a reviewer subagent, then applies fixes."
4
- user-invocable: true
5
4
  ---
6
5
 
7
6
  # Teams: Run (Resume Build)
@@ -13,7 +12,7 @@ You are the orchestrator. Resume an existing build by running all incomplete pha
13
12
  ## Step 1: Find the Plan
14
13
 
15
14
  List all files matching `.lsd/plan/PLAN-*.md`. If none exist:
16
- > No plan files found in `.lsd/plan/`. Use `/teams-plan` to create a plan first.
15
+ > No plan files found in `.lsd/plan/`. Use `/skill:teams-plan` to create a plan first.
17
16
 
18
17
  If multiple plan files exist, show the list and ask the user which plan to resume. Default to the highest-numbered plan.
19
18
 
@@ -216,7 +215,7 @@ Final summary:
216
215
  ```
217
216
 
218
217
  Then suggest:
219
- > **Build done. Run `/teams-verify` to walk through manual E2E verification.**
218
+ > **Build done. Run `/skill:teams-verify` to walk through manual E2E verification.**
220
219
 
221
220
  ---
222
221
 
@@ -224,7 +223,7 @@ Then suggest:
224
223
 
225
224
  Ask the user:
226
225
 
227
- > **"Would you like to update your documentation? Run `/teams-document` to have the scribe update your README, ARCHITECTURE.md, and other docs."**
226
+ > **"Would you like to update your documentation? Run `/skill:teams-document` to have the scribe update your README, ARCHITECTURE.md, and other docs."**
228
227
 
229
228
  If yes, invoke the `teams-document` skill.
230
229
 
@@ -1,7 +1,6 @@
1
1
  ---
2
2
  name: teams-verify
3
3
  description: "Guide the user through manually verifying the build E2E — walks through each scenario step-by-step, records pass/fail, and appends a verification status update to the plan file."
4
- user-invocable: true
5
4
  ---
6
5
 
7
6
  # Teams: Manual Verify
@@ -13,7 +12,7 @@ You guide the user through manually verifying the completed build end-to-end. On
13
12
  ## Step 1: Load the Plan
14
13
 
15
14
  Find and read the most recent `.lsd/plan/PLAN-*.md` (highest number). Store as `PLAN_FILE`. If none exist:
16
- > No plan files found in `.lsd/plan/`. Run `/teams-plan` first.
15
+ > No plan files found in `.lsd/plan/`. Run `/skill:teams-plan` first.
17
16
 
18
17
  Extract:
19
18
  - Plan ID (the `Plan ID:` field — e.g. `#2`)
@@ -63,7 +62,7 @@ Then ask:
63
62
 
64
63
  - **pass** → record it, move to next scenario
65
64
  - **fail** → ask: *"What went wrong?"* Record their description. Then immediately offer:
66
- > **Bug detected. Run `/teams-debug` to fix it now, or continue verifying the rest first?**
65
+ > **Bug detected. Run `/skill:teams-debug` to fix it now, or continue verifying the rest first?**
67
66
 
68
67
  If they say **fix now**: invoke the `teams-debug` skill directly, passing the scenario name and their failure description as context. After the fix is applied, re-run this scenario before continuing.
69
68
 
@@ -115,9 +114,9 @@ Print the final result:
115
114
  If there are failures, offer:
116
115
 
117
116
  > **N scenario(s) failed. Options:**
118
- > - `/teams-debug` — fix bugs one at a time with full plan context (recommended)
117
+ > - `/skill:teams-debug` — fix bugs one at a time with full plan context (recommended)
119
118
  > - **Fix all** — I spawn a single builder to address all failures at once
120
119
 
121
- If they choose **`/teams-debug`**: invoke the `teams-debug` skill for each failed scenario in order, passing the scenario name and failure description. After each fix, update the `## Verification` section in the plan to mark the scenario as `FIXED`.
120
+ If they choose **`/skill:teams-debug`**: invoke the `teams-debug` skill for each failed scenario in order, passing the scenario name and failure description. After each fix, update the `## Verification` section in the plan to mark the scenario as `FIXED`.
122
121
 
123
122
  If they choose **fix all**: read the failures from the plan's `## Verification` section and spawn a **Sonnet** builder subagent with the full list of issues. Then offer to re-run verification on just the failed scenarios.
@@ -35,6 +35,7 @@ export function validateConfiguredModel(modelRegistry, settingsManager) {
35
35
  ? availableModels.find((m) => m.provider === piDefault.provider && m.id === piDefault.model)
36
36
  : undefined) ||
37
37
  availableModels.find((m) => m.provider === 'openai' && m.id === 'gpt-5.4') ||
38
+ availableModels.find((m) => m.provider === 'openai' && m.id === 'gpt-5.4-mini') ||
38
39
  availableModels.find((m) => m.provider === 'openai') ||
39
40
  availableModels.find((m) => m.provider === 'anthropic' && m.id === 'claude-opus-4-6') ||
40
41
  availableModels.find((m) => m.provider === 'anthropic' && m.id.includes('opus')) ||
@@ -9,6 +9,7 @@ import os from 'node:os';
9
9
  import chalk from 'chalk';
10
10
  import { GSD_LOGO_SEGMENTS } from './logo.js';
11
11
  import { brandNameChalk, LSD_BLUE, LSD_PINK, LSD_YELLOW } from './lsd-brand.js';
12
+ import { accentHex } from './cli-theme.js';
12
13
  function getShortCwd() {
13
14
  const cwd = process.cwd();
14
15
  const home = os.homedir();
@@ -37,6 +38,7 @@ export function printWelcomeScreen(opts) {
37
38
  const YELLOW = LSD_YELLOW;
38
39
  const BLUE = LSD_BLUE;
39
40
  const PINK = LSD_PINK;
41
+ const ACCENT = accentHex();
40
42
  // ── Panel widths ────────────────────────────────────────────────────────────
41
43
  // Layout: 1 leading space + LEFT_INNER logo content + 1 inner divider + RIGHT_INNER info
42
44
  // Total: 1 + LEFT_INNER + 1 + RIGHT_INNER = termWidth
@@ -63,23 +65,23 @@ export function printWelcomeScreen(opts) {
63
65
  if (process.env.CONTEXT7_API_KEY)
64
66
  toolParts.push('Context7 ✓');
65
67
  // Tools summary row
66
- const toolsLeft = toolParts.length > 0 ? chalk.hex(PINK).dim(' ' + toolParts.join(' · ')) : '';
68
+ const toolsLeft = toolParts.length > 0 ? chalk.hex(PINK)(' ' + toolParts.join(' · ')) : '';
67
69
  const footerRow = rpad(toolsLeft, RIGHT_INNER);
68
70
  const DIVIDER = null;
69
71
  const rightRows = [
70
72
  titleRow,
71
73
  DIVIDER,
72
- modelName ? ` Model ${chalk.hex(BLUE).dim(modelName)}` : '',
73
- provider ? ` Provider ${chalk.hex(BLUE).dim(provider)}` : '',
74
- ` Directory ${chalk.hex(BLUE).dim(shortCwd)}`,
74
+ modelName ? ` Model ${chalk.hex(ACCENT)(modelName)}` : '',
75
+ provider ? ` Provider ${chalk.hex(ACCENT)(provider)}` : '',
76
+ ` Directory ${chalk.hex(ACCENT)(shortCwd)}`,
75
77
  DIVIDER,
76
78
  footerRow,
77
79
  '',
78
80
  ];
79
81
  // ── Render ──────────────────────────────────────────────────────────────────
80
82
  const out = [''];
81
- // Top bar — full-width blue separator
82
- out.push(chalk.hex(BLUE)(H.repeat(termWidth)));
83
+ // Top bar — full-width accent separator
84
+ out.push(chalk.hex(ACCENT)(H.repeat(termWidth)));
83
85
  for (let i = 0; i < 8; i++) {
84
86
  const row = leftRows[i];
85
87
  const lContent = row
@@ -87,16 +89,16 @@ export function printWelcomeScreen(opts) {
87
89
  : ' '.repeat(LEFT_INNER);
88
90
  const rRow = rightRows[i];
89
91
  if (rRow === null) {
90
- // Section divider: left logo area + blue ├────... extending right
91
- out.push(' ' + lContent + chalk.hex(BLUE).dim(DS + H.repeat(RIGHT_INNER)));
92
+ // Section divider: left logo area + accent ├────... extending right
93
+ out.push(' ' + lContent + chalk.hex(ACCENT)(DS + H.repeat(RIGHT_INNER)));
92
94
  }
93
95
  else {
94
96
  // Content row: 1 space + logo │ info (no outer vertical borders)
95
- out.push(' ' + lContent + chalk.hex(BLUE).dim(DV) + rpad(rRow, RIGHT_INNER));
97
+ out.push(' ' + lContent + chalk.hex(ACCENT)(DV) + rpad(rRow, RIGHT_INNER));
96
98
  }
97
99
  }
98
- // Bottom bar — full-width blue separator
99
- out.push(chalk.hex(BLUE)(H.repeat(termWidth)));
100
+ // Bottom bar — full-width accent separator
101
+ out.push(chalk.hex(ACCENT)(H.repeat(termWidth)));
100
102
  out.push('');
101
103
  process.stderr.write(out.join('\n') + '\n');
102
104
  }
package/dist/wizard.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { BEDROCK_PROVIDER_ID, applyBedrockCredentialToEnv, decodeBedrockCredential } from './bedrock-auth.js';
1
2
  // ─── Env hydration ────────────────────────────────────────────────────────────
2
3
  /**
3
4
  * Hydrate process.env from stored auth.json credentials for optional tool keys.
@@ -5,6 +6,17 @@
5
6
  * wizard on prior launches.
6
7
  */
7
8
  export function loadStoredEnvKeys(authStorage) {
9
+ const hasExplicitBedrockAuth = Boolean(process.env.AWS_PROFILE ||
10
+ process.env.AWS_ACCESS_KEY_ID ||
11
+ process.env.AWS_SECRET_ACCESS_KEY);
12
+ const bedrockCred = authStorage.getCredentialsForProvider(BEDROCK_PROVIDER_ID)
13
+ .find((cred) => cred.type === 'api_key' && typeof cred.key === 'string' && cred.key);
14
+ if (!hasExplicitBedrockAuth && bedrockCred?.type === 'api_key') {
15
+ const parsed = decodeBedrockCredential(bedrockCred.key);
16
+ if (parsed) {
17
+ applyBedrockCredentialToEnv(parsed);
18
+ }
19
+ }
8
20
  const providers = [
9
21
  ['brave', 'BRAVE_API_KEY'],
10
22
  ['brave_answers', 'BRAVE_ANSWERS_KEY'],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lsd-pi",
3
- "version": "1.1.2",
3
+ "version": "1.1.3",
4
4
  "description": "LSD — let stuff develop coding agent",
5
5
  "license": "MIT",
6
6
  "repository": {