@iloom/cli 0.12.2 → 0.13.0

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 (165) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/dist/{ClaudeContextManager-IENAE2CP.js → ClaudeContextManager-ZH6LEA5I.js} +5 -5
  4. package/dist/{ClaudeService-YIJCZUUB.js → ClaudeService-YR66WXZN.js} +4 -4
  5. package/dist/{IssueTrackerFactory-2OI7YIN6.js → IssueTrackerFactory-O2ZBA666.js} +3 -3
  6. package/dist/{LoomLauncher-3TSFW7QP.js → LoomLauncher-V54ENBEF.js} +5 -5
  7. package/dist/{MetadataManager-V4LSJ2PB.js → MetadataManager-HHE6LQF2.js} +2 -2
  8. package/dist/{PromptTemplateManager-I75WKXM4.js → PromptTemplateManager-4RFELNYY.js} +2 -2
  9. package/dist/README.md +1 -1
  10. package/dist/{SettingsManager-BMQCAXPP.js → SettingsManager-SLSYEYDZ.js} +4 -2
  11. package/dist/agents/iloom-artifact-reviewer.md +1 -0
  12. package/dist/agents/iloom-code-reviewer.md +21 -0
  13. package/dist/agents/iloom-issue-analyze-and-plan.md +30 -12
  14. package/dist/agents/iloom-issue-analyzer.md +32 -7
  15. package/dist/agents/iloom-issue-complexity-evaluator.md +32 -12
  16. package/dist/agents/iloom-issue-implementer.md +31 -12
  17. package/dist/agents/iloom-issue-planner.md +30 -12
  18. package/dist/agents/iloom-wave-verifier.md +126 -5
  19. package/dist/{build-PKHPE34Y.js → build-ZTGWDHWU.js} +8 -8
  20. package/dist/{chunk-GWJWECZB.js → chunk-55NTREIU.js} +25 -23
  21. package/dist/chunk-55NTREIU.js.map +1 -0
  22. package/dist/{chunk-AYLC633W.js → chunk-7TN5VW4I.js} +65 -7
  23. package/dist/chunk-7TN5VW4I.js.map +1 -0
  24. package/dist/{chunk-PMB6TYV4.js → chunk-C2BVNJW5.js} +2 -2
  25. package/dist/{chunk-QFDM23CO.js → chunk-E5OM25WK.js} +3 -3
  26. package/dist/{chunk-BFF27W3S.js → chunk-ERMEYFT6.js} +7 -2
  27. package/dist/chunk-ERMEYFT6.js.map +1 -0
  28. package/dist/{chunk-653XBU3L.js → chunk-F5NKWLMQ.js} +21 -15
  29. package/dist/chunk-F5NKWLMQ.js.map +1 -0
  30. package/dist/{chunk-H2M62IKR.js → chunk-G2DGDCDP.js} +15 -185
  31. package/dist/chunk-G2DGDCDP.js.map +1 -0
  32. package/dist/{chunk-35CBWAJL.js → chunk-GPBX2BY2.js} +2 -2
  33. package/dist/{chunk-ZM2AYHMO.js → chunk-GQDVH6FA.js} +2 -2
  34. package/dist/{chunk-GDDRANOZ.js → chunk-HWDQRW3O.js} +3 -3
  35. package/dist/chunk-HWDQRW3O.js.map +1 -0
  36. package/dist/{chunk-M3FBM4T3.js → chunk-J5JOJPK3.js} +2 -2
  37. package/dist/{chunk-UMZ2CIDW.js → chunk-KCAWSZUO.js} +11 -10
  38. package/dist/chunk-KCAWSZUO.js.map +1 -0
  39. package/dist/{chunk-OPQC4OWM.js → chunk-KGOBNC5A.js} +4 -4
  40. package/dist/{chunk-V5IYLWRA.js → chunk-LNY2Y32V.js} +2 -2
  41. package/dist/{chunk-7RCUWU3I.js → chunk-MRPIDNZU.js} +1 -1
  42. package/dist/chunk-MRPIDNZU.js.map +1 -0
  43. package/dist/{chunk-YWNF5755.js → chunk-N6DY47YN.js} +80 -45
  44. package/dist/chunk-N6DY47YN.js.map +1 -0
  45. package/dist/{chunk-VIQOQ463.js → chunk-OLJ54WGW.js} +15 -10
  46. package/dist/chunk-OLJ54WGW.js.map +1 -0
  47. package/dist/{chunk-6RINI7OL.js → chunk-PPQ5LV7U.js} +2 -2
  48. package/dist/{chunk-CTHB7345.js → chunk-PS6K2AOV.js} +5 -5
  49. package/dist/{chunk-Y2MVSEJK.js → chunk-QNRXRSKC.js} +6 -3
  50. package/dist/chunk-QNRXRSKC.js.map +1 -0
  51. package/dist/{chunk-EQIII6GI.js → chunk-SM3BCHYB.js} +5 -5
  52. package/dist/{chunk-OKB2NEDQ.js → chunk-T4KFKKEB.js} +7 -7
  53. package/dist/{chunk-VA6CWUAE.js → chunk-T4NESGYB.js} +3 -3
  54. package/dist/{chunk-VZ55H5X6.js → chunk-TJDKGKQV.js} +2 -2
  55. package/dist/{chunk-KCZSUJUR.js → chunk-UXBVDD7U.js} +6 -6
  56. package/dist/{chunk-QF2DROQR.js → chunk-WYDLOQYO.js} +2 -2
  57. package/dist/{chunk-4JZEQBWV.js → chunk-XIVLGWUX.js} +3 -1
  58. package/dist/chunk-XIVLGWUX.js.map +1 -0
  59. package/dist/{chunk-R7DGN73N.js → chunk-ZEFTWM5Z.js} +2 -2
  60. package/dist/{cleanup-QTZU46OP.js → cleanup-BCVY7PEF.js} +18 -18
  61. package/dist/cli.js +94 -69
  62. package/dist/cli.js.map +1 -1
  63. package/dist/{commit-P3OOQ3JN.js → commit-L5JNBU4U.js} +8 -8
  64. package/dist/{compile-IOXQTCP3.js → compile-GPJOHXH4.js} +8 -8
  65. package/dist/{contribute-EHWLYOMZ.js → contribute-QEGCI4PS.js} +4 -4
  66. package/dist/{dev-server-BLJ7NPKG.js → dev-server-67NPVWUN.js} +247 -31
  67. package/dist/dev-server-67NPVWUN.js.map +1 -0
  68. package/dist/{feedback-RFWGB4I5.js → feedback-2LWXKLQZ.js} +4 -4
  69. package/dist/{git-I3PO6FY7.js → git-IS7AV3ED.js} +4 -4
  70. package/dist/hooks/iloom-hook.js +40 -2
  71. package/dist/{ignite-6XT5BKSF.js → ignite-VQDJQ37S.js} +12 -14
  72. package/dist/index.d.ts +69 -37
  73. package/dist/index.js +23 -15
  74. package/dist/index.js.map +1 -1
  75. package/dist/{init-6FUPISD7.js → init-7SDJUAEZ.js} +8 -8
  76. package/dist/{install-deps-BMRONT2L.js → install-deps-NGSFDNUW.js} +8 -8
  77. package/dist/{issues-SUFQJY6O.js → issues-4HQKEUP7.js} +5 -5
  78. package/dist/{lint-PRD2DO5K.js → lint-C5FOVRXY.js} +8 -8
  79. package/dist/mcp/issue-management-server.js +19 -14
  80. package/dist/mcp/issue-management-server.js.map +1 -1
  81. package/dist/{open-NVFYA5IM.js → open-WUTLRI6S.js} +19 -15
  82. package/dist/open-WUTLRI6S.js.map +1 -0
  83. package/dist/{plan-7M5WB7VT.js → plan-GC3HF73T.js} +70 -39
  84. package/dist/plan-GC3HF73T.js.map +1 -0
  85. package/dist/{projects-L5AHUBGA.js → projects-3F6T3KZL.js} +2 -2
  86. package/dist/prompts/init-prompt.txt +40 -12
  87. package/dist/prompts/issue-prompt.txt +3 -0
  88. package/dist/prompts/plan-prompt.txt +67 -11
  89. package/dist/prompts/swarm-orchestrator-prompt.txt +25 -12
  90. package/dist/{rebase-5B7WQQAY.js → rebase-CSGQICAP.js} +7 -7
  91. package/dist/{recap-7PSTJ3MF.js → recap-CKGKFDJL.js} +7 -7
  92. package/dist/{run-6ZCDG7MX.js → run-3YL2IXXI.js} +19 -15
  93. package/dist/run-3YL2IXXI.js.map +1 -0
  94. package/dist/schema/settings.schema.json +35 -7
  95. package/dist/{shell-MX3WRDQN.js → shell-M2YYPNGV.js} +6 -6
  96. package/dist/{summary-WQ7QOAIQ.js → summary-XR4CBJEG.js} +9 -9
  97. package/dist/{test-LAIG62XM.js → test-ESDAHEVE.js} +8 -8
  98. package/dist/{test-git-PYJOYSED.js → test-git-KWPLHYSI.js} +4 -4
  99. package/dist/{test-jira-SM7IU5HW.js → test-jira-6NK7UHSV.js} +3 -3
  100. package/dist/{test-prefix-HIRZBXTM.js → test-prefix-VVODGHXP.js} +4 -4
  101. package/dist/{test-webserver-43PVP2JL.js → test-webserver-AHXKC6H4.js} +6 -6
  102. package/dist/{vscode-VZCCFQRY.js → vscode-OY7HOVRO.js} +6 -6
  103. package/package.json +1 -1
  104. package/dist/chunk-4JZEQBWV.js.map +0 -1
  105. package/dist/chunk-653XBU3L.js.map +0 -1
  106. package/dist/chunk-7RCUWU3I.js.map +0 -1
  107. package/dist/chunk-AYLC633W.js.map +0 -1
  108. package/dist/chunk-BFF27W3S.js.map +0 -1
  109. package/dist/chunk-GDDRANOZ.js.map +0 -1
  110. package/dist/chunk-GWJWECZB.js.map +0 -1
  111. package/dist/chunk-H2M62IKR.js.map +0 -1
  112. package/dist/chunk-UMZ2CIDW.js.map +0 -1
  113. package/dist/chunk-VIQOQ463.js.map +0 -1
  114. package/dist/chunk-Y2MVSEJK.js.map +0 -1
  115. package/dist/chunk-YWNF5755.js.map +0 -1
  116. package/dist/dev-server-BLJ7NPKG.js.map +0 -1
  117. package/dist/open-NVFYA5IM.js.map +0 -1
  118. package/dist/plan-7M5WB7VT.js.map +0 -1
  119. package/dist/run-6ZCDG7MX.js.map +0 -1
  120. /package/dist/{ClaudeContextManager-IENAE2CP.js.map → ClaudeContextManager-ZH6LEA5I.js.map} +0 -0
  121. /package/dist/{ClaudeService-YIJCZUUB.js.map → ClaudeService-YR66WXZN.js.map} +0 -0
  122. /package/dist/{IssueTrackerFactory-2OI7YIN6.js.map → IssueTrackerFactory-O2ZBA666.js.map} +0 -0
  123. /package/dist/{LoomLauncher-3TSFW7QP.js.map → LoomLauncher-V54ENBEF.js.map} +0 -0
  124. /package/dist/{MetadataManager-V4LSJ2PB.js.map → MetadataManager-HHE6LQF2.js.map} +0 -0
  125. /package/dist/{PromptTemplateManager-I75WKXM4.js.map → PromptTemplateManager-4RFELNYY.js.map} +0 -0
  126. /package/dist/{SettingsManager-BMQCAXPP.js.map → SettingsManager-SLSYEYDZ.js.map} +0 -0
  127. /package/dist/{build-PKHPE34Y.js.map → build-ZTGWDHWU.js.map} +0 -0
  128. /package/dist/{chunk-PMB6TYV4.js.map → chunk-C2BVNJW5.js.map} +0 -0
  129. /package/dist/{chunk-QFDM23CO.js.map → chunk-E5OM25WK.js.map} +0 -0
  130. /package/dist/{chunk-35CBWAJL.js.map → chunk-GPBX2BY2.js.map} +0 -0
  131. /package/dist/{chunk-ZM2AYHMO.js.map → chunk-GQDVH6FA.js.map} +0 -0
  132. /package/dist/{chunk-M3FBM4T3.js.map → chunk-J5JOJPK3.js.map} +0 -0
  133. /package/dist/{chunk-OPQC4OWM.js.map → chunk-KGOBNC5A.js.map} +0 -0
  134. /package/dist/{chunk-V5IYLWRA.js.map → chunk-LNY2Y32V.js.map} +0 -0
  135. /package/dist/{chunk-6RINI7OL.js.map → chunk-PPQ5LV7U.js.map} +0 -0
  136. /package/dist/{chunk-CTHB7345.js.map → chunk-PS6K2AOV.js.map} +0 -0
  137. /package/dist/{chunk-EQIII6GI.js.map → chunk-SM3BCHYB.js.map} +0 -0
  138. /package/dist/{chunk-OKB2NEDQ.js.map → chunk-T4KFKKEB.js.map} +0 -0
  139. /package/dist/{chunk-VA6CWUAE.js.map → chunk-T4NESGYB.js.map} +0 -0
  140. /package/dist/{chunk-VZ55H5X6.js.map → chunk-TJDKGKQV.js.map} +0 -0
  141. /package/dist/{chunk-KCZSUJUR.js.map → chunk-UXBVDD7U.js.map} +0 -0
  142. /package/dist/{chunk-QF2DROQR.js.map → chunk-WYDLOQYO.js.map} +0 -0
  143. /package/dist/{chunk-R7DGN73N.js.map → chunk-ZEFTWM5Z.js.map} +0 -0
  144. /package/dist/{cleanup-QTZU46OP.js.map → cleanup-BCVY7PEF.js.map} +0 -0
  145. /package/dist/{commit-P3OOQ3JN.js.map → commit-L5JNBU4U.js.map} +0 -0
  146. /package/dist/{compile-IOXQTCP3.js.map → compile-GPJOHXH4.js.map} +0 -0
  147. /package/dist/{contribute-EHWLYOMZ.js.map → contribute-QEGCI4PS.js.map} +0 -0
  148. /package/dist/{feedback-RFWGB4I5.js.map → feedback-2LWXKLQZ.js.map} +0 -0
  149. /package/dist/{git-I3PO6FY7.js.map → git-IS7AV3ED.js.map} +0 -0
  150. /package/dist/{ignite-6XT5BKSF.js.map → ignite-VQDJQ37S.js.map} +0 -0
  151. /package/dist/{init-6FUPISD7.js.map → init-7SDJUAEZ.js.map} +0 -0
  152. /package/dist/{install-deps-BMRONT2L.js.map → install-deps-NGSFDNUW.js.map} +0 -0
  153. /package/dist/{issues-SUFQJY6O.js.map → issues-4HQKEUP7.js.map} +0 -0
  154. /package/dist/{lint-PRD2DO5K.js.map → lint-C5FOVRXY.js.map} +0 -0
  155. /package/dist/{projects-L5AHUBGA.js.map → projects-3F6T3KZL.js.map} +0 -0
  156. /package/dist/{rebase-5B7WQQAY.js.map → rebase-CSGQICAP.js.map} +0 -0
  157. /package/dist/{recap-7PSTJ3MF.js.map → recap-CKGKFDJL.js.map} +0 -0
  158. /package/dist/{shell-MX3WRDQN.js.map → shell-M2YYPNGV.js.map} +0 -0
  159. /package/dist/{summary-WQ7QOAIQ.js.map → summary-XR4CBJEG.js.map} +0 -0
  160. /package/dist/{test-LAIG62XM.js.map → test-ESDAHEVE.js.map} +0 -0
  161. /package/dist/{test-git-PYJOYSED.js.map → test-git-KWPLHYSI.js.map} +0 -0
  162. /package/dist/{test-jira-SM7IU5HW.js.map → test-jira-6NK7UHSV.js.map} +0 -0
  163. /package/dist/{test-prefix-HIRZBXTM.js.map → test-prefix-VVODGHXP.js.map} +0 -0
  164. /package/dist/{test-webserver-43PVP2JL.js.map → test-webserver-AHXKC6H4.js.map} +0 -0
  165. /package/dist/{vscode-VZCCFQRY.js.map → vscode-OY7HOVRO.js.map} +0 -0
package/dist/index.d.ts CHANGED
@@ -123,6 +123,8 @@ interface WorktreeCleanupOptions {
123
123
  dryRun?: boolean;
124
124
  }
125
125
 
126
+ declare const VALID_CLAUDE_MODELS: readonly ["sonnet", "opus", "haiku", "sonnet[1m]", "opus[1m]"];
127
+ type ClaudeModel = (typeof VALID_CLAUDE_MODELS)[number];
126
128
  /**
127
129
  * Zod schema for iloom settings
128
130
  */
@@ -266,84 +268,90 @@ declare const IloomSettingsSchema: z.ZodObject<{
266
268
  } | undefined;
267
269
  }>>;
268
270
  agents: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
269
- model: z.ZodOptional<z.ZodEnum<["sonnet", "opus", "haiku"]>>;
270
- swarmModel: z.ZodOptional<z.ZodEnum<["sonnet", "opus", "haiku"]>>;
271
+ model: z.ZodOptional<z.ZodEnum<["sonnet", "opus", "haiku", "sonnet[1m]", "opus[1m]"]>>;
272
+ swarmModel: z.ZodOptional<z.ZodEnum<["sonnet", "opus", "haiku", "sonnet[1m]", "opus[1m]"]>>;
271
273
  enabled: z.ZodOptional<z.ZodBoolean>;
272
274
  providers: z.ZodOptional<z.ZodRecord<z.ZodEnum<["claude", "gemini", "codex"]>, z.ZodString>>;
273
275
  review: z.ZodOptional<z.ZodBoolean>;
274
276
  swarmReview: z.ZodOptional<z.ZodBoolean>;
275
277
  }, "strip", z.ZodTypeAny, {
276
- model?: "opus" | "sonnet" | "haiku" | undefined;
277
- swarmModel?: "opus" | "sonnet" | "haiku" | undefined;
278
+ model?: "sonnet" | "opus" | "haiku" | "sonnet[1m]" | "opus[1m]" | undefined;
279
+ swarmModel?: "sonnet" | "opus" | "haiku" | "sonnet[1m]" | "opus[1m]" | undefined;
278
280
  enabled?: boolean | undefined;
279
281
  providers?: Partial<Record<"claude" | "gemini" | "codex", string>> | undefined;
280
282
  review?: boolean | undefined;
281
283
  swarmReview?: boolean | undefined;
282
284
  }, {
283
- model?: "opus" | "sonnet" | "haiku" | undefined;
284
- swarmModel?: "opus" | "sonnet" | "haiku" | undefined;
285
+ model?: "sonnet" | "opus" | "haiku" | "sonnet[1m]" | "opus[1m]" | undefined;
286
+ swarmModel?: "sonnet" | "opus" | "haiku" | "sonnet[1m]" | "opus[1m]" | undefined;
285
287
  enabled?: boolean | undefined;
286
288
  providers?: Partial<Record<"claude" | "gemini" | "codex", string>> | undefined;
287
289
  review?: boolean | undefined;
288
290
  swarmReview?: boolean | undefined;
289
291
  }>>>>;
290
292
  spin: z.ZodOptional<z.ZodObject<{
291
- model: z.ZodDefault<z.ZodEnum<["sonnet", "opus", "haiku"]>>;
292
- swarmModel: z.ZodOptional<z.ZodEnum<["sonnet", "opus", "haiku"]>>;
293
+ model: z.ZodDefault<z.ZodEnum<["sonnet", "opus", "haiku", "sonnet[1m]", "opus[1m]"]>>;
294
+ swarmModel: z.ZodOptional<z.ZodEnum<["sonnet", "opus", "haiku", "sonnet[1m]", "opus[1m]"]>>;
293
295
  postSwarmReview: z.ZodDefault<z.ZodBoolean>;
294
296
  }, "strip", z.ZodTypeAny, {
295
- model: "opus" | "sonnet" | "haiku";
297
+ model: "sonnet" | "opus" | "haiku" | "sonnet[1m]" | "opus[1m]";
296
298
  postSwarmReview: boolean;
297
- swarmModel?: "opus" | "sonnet" | "haiku" | undefined;
299
+ swarmModel?: "sonnet" | "opus" | "haiku" | "sonnet[1m]" | "opus[1m]" | undefined;
298
300
  }, {
299
- model?: "opus" | "sonnet" | "haiku" | undefined;
300
- swarmModel?: "opus" | "sonnet" | "haiku" | undefined;
301
+ model?: "sonnet" | "opus" | "haiku" | "sonnet[1m]" | "opus[1m]" | undefined;
302
+ swarmModel?: "sonnet" | "opus" | "haiku" | "sonnet[1m]" | "opus[1m]" | undefined;
301
303
  postSwarmReview?: boolean | undefined;
302
304
  }>>;
303
305
  plan: z.ZodOptional<z.ZodObject<{
304
- model: z.ZodDefault<z.ZodEnum<["sonnet", "opus", "haiku"]>>;
306
+ model: z.ZodDefault<z.ZodEnum<["sonnet", "opus", "haiku", "sonnet[1m]", "opus[1m]"]>>;
305
307
  planner: z.ZodDefault<z.ZodEnum<["claude", "gemini", "codex"]>>;
306
308
  reviewer: z.ZodDefault<z.ZodEnum<["claude", "gemini", "codex", "none"]>>;
307
309
  waveVerification: z.ZodDefault<z.ZodBoolean>;
308
310
  }, "strip", z.ZodTypeAny, {
309
- model: "opus" | "sonnet" | "haiku";
311
+ model: "sonnet" | "opus" | "haiku" | "sonnet[1m]" | "opus[1m]";
310
312
  planner: "claude" | "gemini" | "codex";
311
313
  reviewer: "claude" | "gemini" | "codex" | "none";
312
314
  waveVerification: boolean;
313
315
  }, {
314
- model?: "opus" | "sonnet" | "haiku" | undefined;
316
+ model?: "sonnet" | "opus" | "haiku" | "sonnet[1m]" | "opus[1m]" | undefined;
315
317
  planner?: "claude" | "gemini" | "codex" | undefined;
316
318
  reviewer?: "claude" | "gemini" | "codex" | "none" | undefined;
317
319
  waveVerification?: boolean | undefined;
318
320
  }>>;
319
321
  summary: z.ZodOptional<z.ZodObject<{
320
- model: z.ZodDefault<z.ZodEnum<["sonnet", "opus", "haiku"]>>;
322
+ model: z.ZodDefault<z.ZodEnum<["sonnet", "opus", "haiku", "sonnet[1m]", "opus[1m]"]>>;
321
323
  }, "strip", z.ZodTypeAny, {
322
- model: "opus" | "sonnet" | "haiku";
324
+ model: "sonnet" | "opus" | "haiku" | "sonnet[1m]" | "opus[1m]";
323
325
  }, {
324
- model?: "opus" | "sonnet" | "haiku" | undefined;
326
+ model?: "sonnet" | "opus" | "haiku" | "sonnet[1m]" | "opus[1m]" | undefined;
325
327
  }>>;
326
328
  capabilities: z.ZodOptional<z.ZodObject<{
327
329
  web: z.ZodOptional<z.ZodObject<{
328
330
  basePort: z.ZodOptional<z.ZodNumber>;
331
+ protocol: z.ZodDefault<z.ZodEnum<["http", "https"]>>;
329
332
  devServer: z.ZodDefault<z.ZodEnum<["process", "docker"]>>;
330
333
  dockerFile: z.ZodDefault<z.ZodString>;
331
334
  containerPort: z.ZodOptional<z.ZodNumber>;
332
335
  dockerBuildArgs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
336
+ dockerBuildSecrets: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
333
337
  dockerRunArgs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
334
338
  }, "strip", z.ZodTypeAny, {
339
+ protocol: "http" | "https";
335
340
  devServer: "docker" | "process";
336
341
  dockerFile: string;
337
342
  basePort?: number | undefined;
338
343
  containerPort?: number | undefined;
339
344
  dockerBuildArgs?: Record<string, string> | undefined;
345
+ dockerBuildSecrets?: Record<string, string> | undefined;
340
346
  dockerRunArgs?: string[] | undefined;
341
347
  }, {
342
348
  basePort?: number | undefined;
349
+ protocol?: "http" | "https" | undefined;
343
350
  devServer?: "docker" | "process" | undefined;
344
351
  dockerFile?: string | undefined;
345
352
  containerPort?: number | undefined;
346
353
  dockerBuildArgs?: Record<string, string> | undefined;
354
+ dockerBuildSecrets?: Record<string, string> | undefined;
347
355
  dockerRunArgs?: string[] | undefined;
348
356
  }>>;
349
357
  database: z.ZodOptional<z.ZodObject<{
@@ -355,11 +363,13 @@ declare const IloomSettingsSchema: z.ZodObject<{
355
363
  }>>;
356
364
  }, "strip", z.ZodTypeAny, {
357
365
  web?: {
366
+ protocol: "http" | "https";
358
367
  devServer: "docker" | "process";
359
368
  dockerFile: string;
360
369
  basePort?: number | undefined;
361
370
  containerPort?: number | undefined;
362
371
  dockerBuildArgs?: Record<string, string> | undefined;
372
+ dockerBuildSecrets?: Record<string, string> | undefined;
363
373
  dockerRunArgs?: string[] | undefined;
364
374
  } | undefined;
365
375
  database?: {
@@ -368,10 +378,12 @@ declare const IloomSettingsSchema: z.ZodObject<{
368
378
  }, {
369
379
  web?: {
370
380
  basePort?: number | undefined;
381
+ protocol?: "http" | "https" | undefined;
371
382
  devServer?: "docker" | "process" | undefined;
372
383
  dockerFile?: string | undefined;
373
384
  containerPort?: number | undefined;
374
385
  dockerBuildArgs?: Record<string, string> | undefined;
386
+ dockerBuildSecrets?: Record<string, string> | undefined;
375
387
  dockerRunArgs?: string[] | undefined;
376
388
  } | undefined;
377
389
  database?: {
@@ -622,15 +634,15 @@ declare const IloomSettingsSchema: z.ZodObject<{
622
634
  commitTimeout: number;
623
635
  };
624
636
  plan?: {
625
- model: "opus" | "sonnet" | "haiku";
637
+ model: "sonnet" | "opus" | "haiku" | "sonnet[1m]" | "opus[1m]";
626
638
  planner: "claude" | "gemini" | "codex";
627
639
  reviewer: "claude" | "gemini" | "codex" | "none";
628
640
  waveVerification: boolean;
629
641
  } | undefined;
630
642
  spin?: {
631
- model: "opus" | "sonnet" | "haiku";
643
+ model: "sonnet" | "opus" | "haiku" | "sonnet[1m]" | "opus[1m]";
632
644
  postSwarmReview: boolean;
633
- swarmModel?: "opus" | "sonnet" | "haiku" | undefined;
645
+ swarmModel?: "sonnet" | "opus" | "haiku" | "sonnet[1m]" | "opus[1m]" | undefined;
634
646
  } | undefined;
635
647
  devServer?: {
636
648
  mode: "docker";
@@ -675,23 +687,25 @@ declare const IloomSettingsSchema: z.ZodObject<{
675
687
  } | undefined;
676
688
  } | undefined;
677
689
  agents?: Record<string, {
678
- model?: "opus" | "sonnet" | "haiku" | undefined;
679
- swarmModel?: "opus" | "sonnet" | "haiku" | undefined;
690
+ model?: "sonnet" | "opus" | "haiku" | "sonnet[1m]" | "opus[1m]" | undefined;
691
+ swarmModel?: "sonnet" | "opus" | "haiku" | "sonnet[1m]" | "opus[1m]" | undefined;
680
692
  enabled?: boolean | undefined;
681
693
  providers?: Partial<Record<"claude" | "gemini" | "codex", string>> | undefined;
682
694
  review?: boolean | undefined;
683
695
  swarmReview?: boolean | undefined;
684
696
  }> | null | undefined;
685
697
  summary?: {
686
- model: "opus" | "sonnet" | "haiku";
698
+ model: "sonnet" | "opus" | "haiku" | "sonnet[1m]" | "opus[1m]";
687
699
  } | undefined;
688
700
  capabilities?: {
689
701
  web?: {
702
+ protocol: "http" | "https";
690
703
  devServer: "docker" | "process";
691
704
  dockerFile: string;
692
705
  basePort?: number | undefined;
693
706
  containerPort?: number | undefined;
694
707
  dockerBuildArgs?: Record<string, string> | undefined;
708
+ dockerBuildSecrets?: Record<string, string> | undefined;
695
709
  dockerRunArgs?: string[] | undefined;
696
710
  } | undefined;
697
711
  database?: {
@@ -752,14 +766,14 @@ declare const IloomSettingsSchema: z.ZodObject<{
752
766
  } | undefined;
753
767
  }, {
754
768
  plan?: {
755
- model?: "opus" | "sonnet" | "haiku" | undefined;
769
+ model?: "sonnet" | "opus" | "haiku" | "sonnet[1m]" | "opus[1m]" | undefined;
756
770
  planner?: "claude" | "gemini" | "codex" | undefined;
757
771
  reviewer?: "claude" | "gemini" | "codex" | "none" | undefined;
758
772
  waveVerification?: boolean | undefined;
759
773
  } | undefined;
760
774
  spin?: {
761
- model?: "opus" | "sonnet" | "haiku" | undefined;
762
- swarmModel?: "opus" | "sonnet" | "haiku" | undefined;
775
+ model?: "sonnet" | "opus" | "haiku" | "sonnet[1m]" | "opus[1m]" | undefined;
776
+ swarmModel?: "sonnet" | "opus" | "haiku" | "sonnet[1m]" | "opus[1m]" | undefined;
763
777
  postSwarmReview?: boolean | undefined;
764
778
  } | undefined;
765
779
  devServer?: {
@@ -806,23 +820,25 @@ declare const IloomSettingsSchema: z.ZodObject<{
806
820
  } | undefined;
807
821
  } | undefined;
808
822
  agents?: Record<string, {
809
- model?: "opus" | "sonnet" | "haiku" | undefined;
810
- swarmModel?: "opus" | "sonnet" | "haiku" | undefined;
823
+ model?: "sonnet" | "opus" | "haiku" | "sonnet[1m]" | "opus[1m]" | undefined;
824
+ swarmModel?: "sonnet" | "opus" | "haiku" | "sonnet[1m]" | "opus[1m]" | undefined;
811
825
  enabled?: boolean | undefined;
812
826
  providers?: Partial<Record<"claude" | "gemini" | "codex", string>> | undefined;
813
827
  review?: boolean | undefined;
814
828
  swarmReview?: boolean | undefined;
815
829
  }> | null | undefined;
816
830
  summary?: {
817
- model?: "opus" | "sonnet" | "haiku" | undefined;
831
+ model?: "sonnet" | "opus" | "haiku" | "sonnet[1m]" | "opus[1m]" | undefined;
818
832
  } | undefined;
819
833
  capabilities?: {
820
834
  web?: {
821
835
  basePort?: number | undefined;
836
+ protocol?: "http" | "https" | undefined;
822
837
  devServer?: "docker" | "process" | undefined;
823
838
  dockerFile?: string | undefined;
824
839
  containerPort?: number | undefined;
825
840
  dockerBuildArgs?: Record<string, string> | undefined;
841
+ dockerBuildSecrets?: Record<string, string> | undefined;
826
842
  dockerRunArgs?: string[] | undefined;
827
843
  } | undefined;
828
844
  database?: {
@@ -964,17 +980,17 @@ declare class SettingsManager {
964
980
  * Default is defined in SpinAgentSettingsSchema
965
981
  *
966
982
  * @param settings - Pre-loaded settings object
967
- * @returns Model shorthand ('opus', 'sonnet', or 'haiku')
983
+ * @returns Model shorthand (e.g. 'opus', 'sonnet', 'haiku', 'sonnet[1m]', 'opus[1m]')
968
984
  */
969
- getSpinModel(settings?: IloomSettings, mode?: 'swarm'): 'sonnet' | 'opus' | 'haiku';
985
+ getSpinModel(settings?: IloomSettings, mode?: 'swarm'): ClaudeModel;
970
986
  /**
971
987
  * Get the plan command model with default applied
972
988
  * Default is defined in PlanCommandSettingsSchema
973
989
  *
974
990
  * @param settings - Pre-loaded settings object
975
- * @returns Model shorthand ('opus', 'sonnet', or 'haiku')
991
+ * @returns Model shorthand (e.g. 'opus', 'sonnet', 'haiku', 'sonnet[1m]', 'opus[1m]')
976
992
  */
977
- getPlanModel(settings?: IloomSettings): 'sonnet' | 'opus' | 'haiku';
993
+ getPlanModel(settings?: IloomSettings): ClaudeModel;
978
994
  /**
979
995
  * Get the plan command planner with default applied
980
996
  * Default is 'claude'
@@ -1004,9 +1020,9 @@ declare class SettingsManager {
1004
1020
  * Default is defined in SummarySettingsSchema
1005
1021
  *
1006
1022
  * @param settings - Pre-loaded settings object
1007
- * @returns Model shorthand ('opus', 'sonnet', or 'haiku')
1023
+ * @returns Model shorthand (e.g. 'opus', 'sonnet', 'haiku', 'sonnet[1m]', 'opus[1m]')
1008
1024
  */
1009
- getSummaryModel(settings?: IloomSettings): 'sonnet' | 'opus' | 'haiku';
1025
+ getSummaryModel(settings?: IloomSettings): ClaudeModel;
1010
1026
  }
1011
1027
 
1012
1028
  /**
@@ -1360,6 +1376,7 @@ interface CreateLoomInput {
1360
1376
  enableDevServer?: boolean;
1361
1377
  enableTerminal?: boolean;
1362
1378
  oneShot?: OneShotMode;
1379
+ dangerouslySkipPermissions?: boolean;
1363
1380
  complexity?: ComplexityOverride;
1364
1381
  setArguments?: string[];
1365
1382
  executablePath?: string;
@@ -1500,6 +1517,12 @@ interface DevServerStartedEvent {
1500
1517
  buildDurationMs?: number;
1501
1518
  /** Time in milliseconds from start to the server being ready */
1502
1519
  startDurationMs: number;
1520
+ /**
1521
+ * Number of BuildKit secrets mounted during docker build.
1522
+ * Only present when mode is 'docker' and secrets are configured.
1523
+ * Tracks feature adoption without exposing secret IDs or paths.
1524
+ */
1525
+ docker_build_secrets_count?: number;
1503
1526
  }
1504
1527
  interface DevServerStoppedEvent {
1505
1528
  /** Execution mode for the dev server */
@@ -1638,7 +1661,7 @@ interface DatabaseProvider {
1638
1661
  interface Config {
1639
1662
  defaultPort: number;
1640
1663
  databaseProvider?: 'neon' | 'supabase' | 'planetscale';
1641
- claudeModel?: 'opus' | 'sonnet' | 'haiku';
1664
+ claudeModel?: ClaudeModel;
1642
1665
  skipClaude?: boolean;
1643
1666
  customWorkspaceRoot?: string;
1644
1667
  }
@@ -1653,6 +1676,7 @@ interface StartOptions {
1653
1676
  epic?: boolean;
1654
1677
  createOnly?: boolean;
1655
1678
  oneShot?: OneShotMode;
1679
+ dangerouslySkipPermissions?: boolean;
1656
1680
  complexity?: ComplexityOverride;
1657
1681
  body?: string;
1658
1682
  json?: boolean;
@@ -2145,10 +2169,15 @@ interface TemplateVariables {
2145
2169
  SWARM_MODE?: boolean;
2146
2170
  WAVE_VERIFICATION?: boolean;
2147
2171
  AUTO_SWARM_MODE?: boolean;
2172
+ AUTONOMOUS_MODE?: boolean;
2148
2173
  NO_CLEANUP?: boolean;
2149
2174
  POST_SWARM_REVIEW?: boolean;
2150
2175
  ISSUE_PREFIX?: string;
2151
2176
  SWARM_TEAM_NAME?: string;
2177
+ ISSUE_TRACKER?: string;
2178
+ IS_GITHUB_TRACKER?: boolean;
2179
+ VCS_PROVIDER?: string;
2180
+ IS_GITHUB_VCS?: boolean;
2152
2181
  }
2153
2182
  declare class PromptTemplateManager {
2154
2183
  private templateDir;
@@ -2247,6 +2276,7 @@ interface MetadataFile {
2247
2276
  prUrls?: Record<string, string>;
2248
2277
  draftPrNumber?: number;
2249
2278
  oneShot?: OneShotMode;
2279
+ dangerouslySkipPermissions?: boolean;
2250
2280
  complexity?: ComplexityOverride;
2251
2281
  capabilities?: ProjectCapability[];
2252
2282
  state?: SwarmState;
@@ -2289,6 +2319,7 @@ interface WriteMetadataInput {
2289
2319
  prUrls: Record<string, string>;
2290
2320
  draftPrNumber?: number;
2291
2321
  oneShot?: OneShotMode;
2322
+ dangerouslySkipPermissions?: boolean;
2292
2323
  complexity?: ComplexityOverride;
2293
2324
  capabilities: ProjectCapability[];
2294
2325
  state?: SwarmState;
@@ -2332,6 +2363,7 @@ interface LoomMetadata {
2332
2363
  prUrls: Record<string, string>;
2333
2364
  draftPrNumber: number | null;
2334
2365
  oneShot: OneShotMode | null;
2366
+ dangerouslySkipPermissions: boolean;
2335
2367
  complexity: ComplexityOverride | null;
2336
2368
  capabilities: ProjectCapability[];
2337
2369
  state: SwarmState | null;
package/dist/index.js CHANGED
@@ -1008,6 +1008,7 @@ __export(SettingsManager_exports, {
1008
1008
  SettingsManager: () => SettingsManager,
1009
1009
  SpinAgentSettingsSchema: () => SpinAgentSettingsSchema,
1010
1010
  SummarySettingsSchema: () => SummarySettingsSchema,
1011
+ VALID_CLAUDE_MODELS: () => VALID_CLAUDE_MODELS,
1011
1012
  WorkflowPermissionSchema: () => WorkflowPermissionSchema,
1012
1013
  WorkflowPermissionSchemaNoDefaults: () => WorkflowPermissionSchemaNoDefaults,
1013
1014
  WorkflowsSettingsSchema: () => WorkflowsSettingsSchema,
@@ -1038,7 +1039,7 @@ function redactSensitiveFields(obj) {
1038
1039
  }
1039
1040
  return result;
1040
1041
  }
1041
- var mergeModeValues, mergeModeTransform, BaseAgentSettingsSchema, AgentSettingsSchema, SpinAgentSettingsSchema, PlanCommandSettingsSchema, SummarySettingsSchema, WorkflowPermissionSchema, WorkflowPermissionSchemaNoDefaults, WorkflowsSettingsSchema, WorkflowsSettingsSchemaNoDefaults, CapabilitiesSettingsSchema, CapabilitiesSettingsSchemaNoDefaults, DevServerSettingsSchema, DevServerSettingsSchemaNoDefaults, NeonSettingsSchema, DatabaseProvidersSettingsSchema, IloomSettingsSchema, IloomSettingsSchemaNoDefaults, SettingsManager;
1042
+ var mergeModeValues, mergeModeTransform, VALID_CLAUDE_MODELS, BaseAgentSettingsSchema, AgentSettingsSchema, SpinAgentSettingsSchema, PlanCommandSettingsSchema, SummarySettingsSchema, WorkflowPermissionSchema, WorkflowPermissionSchemaNoDefaults, WorkflowsSettingsSchema, WorkflowsSettingsSchemaNoDefaults, CapabilitiesSettingsSchema, CapabilitiesSettingsSchemaNoDefaults, DevServerSettingsSchema, DevServerSettingsSchemaNoDefaults, NeonSettingsSchema, DatabaseProvidersSettingsSchema, IloomSettingsSchema, IloomSettingsSchemaNoDefaults, SettingsManager;
1042
1043
  var init_SettingsManager = __esm({
1043
1044
  "src/lib/SettingsManager.ts"() {
1044
1045
  "use strict";
@@ -1048,9 +1049,10 @@ var init_SettingsManager = __esm({
1048
1049
  const map = { "github-pr": "pr", "github-draft-pr": "draft-pr", "bitbucket-pr": "pr" };
1049
1050
  return map[val] ?? val;
1050
1051
  };
1052
+ VALID_CLAUDE_MODELS = ["sonnet", "opus", "haiku", "sonnet[1m]", "opus[1m]"];
1051
1053
  BaseAgentSettingsSchema = z.object({
1052
- model: z.enum(["sonnet", "opus", "haiku"]).optional().describe("Claude model shorthand: sonnet, opus, or haiku"),
1053
- swarmModel: z.enum(["sonnet", "opus", "haiku"]).optional().describe("Model to use for this agent in swarm mode. Overrides the base model when running inside swarm workers."),
1054
+ model: z.enum(VALID_CLAUDE_MODELS).optional().describe("Claude model shorthand: sonnet, opus, haiku, sonnet[1m], or opus[1m]"),
1055
+ swarmModel: z.enum(VALID_CLAUDE_MODELS).optional().describe("Model to use for this agent in swarm mode. Overrides the base model when running inside swarm workers."),
1054
1056
  enabled: z.boolean().optional().describe("Whether this agent is enabled. Defaults to true."),
1055
1057
  providers: z.record(
1056
1058
  z.enum(["claude", "gemini", "codex"]),
@@ -1061,18 +1063,18 @@ var init_SettingsManager = __esm({
1061
1063
  });
1062
1064
  AgentSettingsSchema = BaseAgentSettingsSchema;
1063
1065
  SpinAgentSettingsSchema = z.object({
1064
- model: z.enum(["sonnet", "opus", "haiku"]).default("opus").describe("Claude model shorthand for spin orchestrator"),
1065
- swarmModel: z.enum(["sonnet", "opus", "haiku"]).optional().describe("Model for the spin orchestrator when running in swarm mode. Overrides spin.model for swarm workflows."),
1066
+ model: z.enum(VALID_CLAUDE_MODELS).default("opus").describe("Claude model shorthand for spin orchestrator"),
1067
+ swarmModel: z.enum(VALID_CLAUDE_MODELS).optional().describe("Model for the spin orchestrator when running in swarm mode. Overrides spin.model for swarm workflows."),
1066
1068
  postSwarmReview: z.boolean().default(true).describe("Run a full code review after swarm completion, auto-fixing issues with confidence 80+. Defaults to true.")
1067
1069
  });
1068
1070
  PlanCommandSettingsSchema = z.object({
1069
- model: z.enum(["sonnet", "opus", "haiku"]).default("opus").describe("Claude model shorthand for plan command"),
1071
+ model: z.enum(VALID_CLAUDE_MODELS).default("opus").describe("Claude model shorthand for plan command"),
1070
1072
  planner: z.enum(["claude", "gemini", "codex"]).default("claude").describe("AI provider for creating the plan"),
1071
1073
  reviewer: z.enum(["claude", "gemini", "codex", "none"]).default("none").describe("AI provider for reviewing the plan (none to skip review)"),
1072
1074
  waveVerification: z.boolean().default(true).describe("When enabled, the planner generates verification child issues between dependency waves to catch integration issues early.")
1073
1075
  });
1074
1076
  SummarySettingsSchema = z.object({
1075
- model: z.enum(["sonnet", "opus", "haiku"]).default("sonnet").describe("Claude model shorthand for session summary generation")
1077
+ model: z.enum(VALID_CLAUDE_MODELS).default("sonnet").describe("Claude model shorthand for session summary generation")
1076
1078
  });
1077
1079
  WorkflowPermissionSchema = z.object({
1078
1080
  permissionMode: z.enum(["plan", "acceptEdits", "bypassPermissions", "default"]).optional().describe("Permission mode for Claude CLI in this workflow type"),
@@ -1105,10 +1107,12 @@ var init_SettingsManager = __esm({
1105
1107
  CapabilitiesSettingsSchema = z.object({
1106
1108
  web: z.object({
1107
1109
  basePort: z.number().min(1, "Base port must be >= 1").max(65535, "Base port must be <= 65535").optional().describe("Base port for web workspace port calculations (default: 3000)"),
1110
+ protocol: z.enum(["http", "https"]).default("http").describe("Protocol for dev server URLs (http or https)"),
1108
1111
  devServer: z.enum(["process", "docker"]).default("process").describe('Dev server mode: "process" runs natively, "docker" runs inside a Docker container with port mapping'),
1109
1112
  dockerFile: z.string().default("./Dockerfile").describe('Path to Dockerfile relative to worktree root (only used when devServer is "docker")'),
1110
1113
  containerPort: z.number().min(1, "Container port must be >= 1").max(65535, "Container port must be <= 65535").optional().describe("Port the app runs on inside the Docker container (auto-detected from EXPOSE directive if not set)"),
1111
1114
  dockerBuildArgs: z.record(z.string()).optional().describe('Build arguments to pass to docker build (e.g., {"NODE_ENV": "development"})'),
1115
+ dockerBuildSecrets: z.record(z.string()).optional().describe('Secret files to mount during docker build via --secret (e.g., {"npmrc": "~/.npmrc"}). Keys are secret IDs, values are source file paths.'),
1112
1116
  dockerRunArgs: z.array(z.string()).optional().describe('Additional arguments for docker run (e.g., ["-v", "./src:/app/src"] for volume mounts)')
1113
1117
  }).optional().describe('Web dev server settings. To declare a project as a web project, add "web" to the capabilities array in .iloom/package.iloom.json or .iloom/package.iloom.local.json.'),
1114
1118
  database: z.object({
@@ -1118,10 +1122,12 @@ var init_SettingsManager = __esm({
1118
1122
  CapabilitiesSettingsSchemaNoDefaults = z.object({
1119
1123
  web: z.object({
1120
1124
  basePort: z.number().min(1, "Base port must be >= 1").max(65535, "Base port must be <= 65535").optional().describe("Base port for web workspace port calculations (default: 3000)"),
1125
+ protocol: z.enum(["http", "https"]).optional().describe("Protocol for dev server URLs (http or https)"),
1121
1126
  devServer: z.enum(["process", "docker"]).optional().describe('Dev server mode: "process" runs natively, "docker" runs inside a Docker container with port mapping'),
1122
1127
  dockerFile: z.string().optional().describe('Path to Dockerfile relative to worktree root (only used when devServer is "docker")'),
1123
1128
  containerPort: z.number().min(1, "Container port must be >= 1").max(65535, "Container port must be <= 65535").optional().describe("Port the app runs on inside the Docker container (auto-detected from EXPOSE directive if not set)"),
1124
1129
  dockerBuildArgs: z.record(z.string()).optional().describe('Build arguments to pass to docker build (e.g., {"NODE_ENV": "development"})'),
1130
+ dockerBuildSecrets: z.record(z.string()).optional().describe('Secret files to mount during docker build via --secret (e.g., {"npmrc": "~/.npmrc"}). Keys are secret IDs, values are source file paths.'),
1125
1131
  dockerRunArgs: z.array(z.string()).optional().describe('Additional arguments for docker run (e.g., ["-v", "./src:/app/src"] for volume mounts)')
1126
1132
  }).optional().describe('Web dev server settings. To declare a project as a web project, add "web" to the capabilities array in .iloom/package.iloom.json or .iloom/package.iloom.local.json.'),
1127
1133
  database: z.object({
@@ -1319,18 +1325,18 @@ var init_SettingsManager = __esm({
1319
1325
  "Per-agent configuration overrides. Available agents: iloom-issue-analyzer (analyzes issues), iloom-issue-planner (creates implementation plans), iloom-issue-analyze-and-plan (combined analysis and planning), iloom-issue-complexity-evaluator (evaluates complexity), iloom-issue-enhancer (enhances issue descriptions), iloom-issue-implementer (implements code changes), iloom-code-reviewer (reviews code changes against requirements), iloom-artifact-reviewer (reviews artifacts before posting), iloom-swarm-worker (swarm worker agent, dynamically generated). Use swarmModel on any agent to override its model in swarm mode."
1320
1326
  ),
1321
1327
  spin: z.object({
1322
- model: z.enum(["sonnet", "opus", "haiku"]).optional(),
1323
- swarmModel: z.enum(["sonnet", "opus", "haiku"]).optional(),
1328
+ model: z.enum(VALID_CLAUDE_MODELS).optional(),
1329
+ swarmModel: z.enum(VALID_CLAUDE_MODELS).optional(),
1324
1330
  postSwarmReview: z.boolean().optional()
1325
1331
  }).optional().describe("Spin orchestrator configuration"),
1326
1332
  plan: z.object({
1327
- model: z.enum(["sonnet", "opus", "haiku"]).optional(),
1333
+ model: z.enum(VALID_CLAUDE_MODELS).optional(),
1328
1334
  planner: z.enum(["claude", "gemini", "codex"]).optional(),
1329
1335
  reviewer: z.enum(["claude", "gemini", "codex", "none"]).optional(),
1330
1336
  waveVerification: z.boolean().optional()
1331
1337
  }).optional().describe("Plan command configuration"),
1332
1338
  summary: z.object({
1333
- model: z.enum(["sonnet", "opus", "haiku"]).optional()
1339
+ model: z.enum(VALID_CLAUDE_MODELS).optional()
1334
1340
  }).optional().describe("Session summary generation configuration"),
1335
1341
  capabilities: CapabilitiesSettingsSchemaNoDefaults.describe("Project capability configurations"),
1336
1342
  devServer: DevServerSettingsSchemaNoDefaults.optional().describe("Docker-based dev server configuration"),
@@ -1604,7 +1610,7 @@ ${errorMessages.join("\n")}`
1604
1610
  * Default is defined in SpinAgentSettingsSchema
1605
1611
  *
1606
1612
  * @param settings - Pre-loaded settings object
1607
- * @returns Model shorthand ('opus', 'sonnet', or 'haiku')
1613
+ * @returns Model shorthand (e.g. 'opus', 'sonnet', 'haiku', 'sonnet[1m]', 'opus[1m]')
1608
1614
  */
1609
1615
  getSpinModel(settings, mode) {
1610
1616
  var _a, _b;
@@ -1612,7 +1618,7 @@ ${errorMessages.join("\n")}`
1612
1618
  if ((_a = settings == null ? void 0 : settings.spin) == null ? void 0 : _a.swarmModel) {
1613
1619
  return settings.spin.swarmModel;
1614
1620
  }
1615
- return "opus";
1621
+ return "opus[1m]";
1616
1622
  }
1617
1623
  return ((_b = settings == null ? void 0 : settings.spin) == null ? void 0 : _b.model) ?? SpinAgentSettingsSchema.parse({}).model;
1618
1624
  }
@@ -1621,7 +1627,7 @@ ${errorMessages.join("\n")}`
1621
1627
  * Default is defined in PlanCommandSettingsSchema
1622
1628
  *
1623
1629
  * @param settings - Pre-loaded settings object
1624
- * @returns Model shorthand ('opus', 'sonnet', or 'haiku')
1630
+ * @returns Model shorthand (e.g. 'opus', 'sonnet', 'haiku', 'sonnet[1m]', 'opus[1m]')
1625
1631
  */
1626
1632
  getPlanModel(settings) {
1627
1633
  var _a;
@@ -1665,7 +1671,7 @@ ${errorMessages.join("\n")}`
1665
1671
  * Default is defined in SummarySettingsSchema
1666
1672
  *
1667
1673
  * @param settings - Pre-loaded settings object
1668
- * @returns Model shorthand ('opus', 'sonnet', or 'haiku')
1674
+ * @returns Model shorthand (e.g. 'opus', 'sonnet', 'haiku', 'sonnet[1m]', 'opus[1m]')
1669
1675
  */
1670
1676
  getSummaryModel(settings) {
1671
1677
  var _a;
@@ -1936,6 +1942,7 @@ var MetadataManager = class {
1936
1942
  prUrls: data.prUrls ?? {},
1937
1943
  draftPrNumber: data.draftPrNumber ?? null,
1938
1944
  oneShot: data.oneShot ?? null,
1945
+ dangerouslySkipPermissions: data.dangerouslySkipPermissions ?? false,
1939
1946
  complexity: data.complexity ?? null,
1940
1947
  capabilities: data.capabilities ?? [],
1941
1948
  state: data.state ?? null,
@@ -2009,6 +2016,7 @@ var MetadataManager = class {
2009
2016
  capabilities: input.capabilities,
2010
2017
  ...input.draftPrNumber && { draftPrNumber: input.draftPrNumber },
2011
2018
  ...input.oneShot && { oneShot: input.oneShot },
2019
+ ...input.dangerouslySkipPermissions && { dangerouslySkipPermissions: true },
2012
2020
  ...input.complexity && { complexity: input.complexity },
2013
2021
  ...input.state && { state: input.state },
2014
2022
  ...input.childIssueNumbers && input.childIssueNumbers.length > 0 && { childIssueNumbers: input.childIssueNumbers },