hub-launch 1.15.0 → 1.17.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 (108) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +103 -2
  3. package/dist/commands/init.d.ts +55 -0
  4. package/dist/commands/init.d.ts.map +1 -1
  5. package/dist/commands/init.js +93 -103
  6. package/dist/commands/init.js.map +1 -1
  7. package/dist/commands/instructions.d.ts +17 -0
  8. package/dist/commands/instructions.d.ts.map +1 -0
  9. package/dist/commands/instructions.js +51 -0
  10. package/dist/commands/instructions.js.map +1 -0
  11. package/dist/commands/launch.d.ts +21 -0
  12. package/dist/commands/launch.d.ts.map +1 -1
  13. package/dist/commands/launch.js +61 -0
  14. package/dist/commands/launch.js.map +1 -1
  15. package/dist/commands/script.d.ts +28 -0
  16. package/dist/commands/script.d.ts.map +1 -0
  17. package/dist/commands/script.js +69 -0
  18. package/dist/commands/script.js.map +1 -0
  19. package/dist/commands/session-hook.d.ts +26 -0
  20. package/dist/commands/session-hook.d.ts.map +1 -0
  21. package/dist/commands/session-hook.js +146 -0
  22. package/dist/commands/session-hook.js.map +1 -0
  23. package/dist/index.js +21 -0
  24. package/dist/index.js.map +1 -1
  25. package/dist/scripts/fix-commit.d.ts +2 -0
  26. package/dist/scripts/fix-commit.d.ts.map +1 -0
  27. package/dist/scripts/fix-commit.js +125 -0
  28. package/dist/scripts/fix-commit.js.map +1 -0
  29. package/dist/scripts/fix-setup.d.ts +2 -0
  30. package/dist/scripts/fix-setup.d.ts.map +1 -0
  31. package/dist/scripts/fix-setup.js +161 -0
  32. package/dist/scripts/fix-setup.js.map +1 -0
  33. package/dist/scripts/launch-run.d.ts +14 -0
  34. package/dist/scripts/launch-run.d.ts.map +1 -0
  35. package/dist/scripts/launch-run.js +117 -0
  36. package/dist/scripts/launch-run.js.map +1 -0
  37. package/dist/scripts/lib/exec.d.ts +48 -0
  38. package/dist/scripts/lib/exec.d.ts.map +1 -0
  39. package/dist/scripts/lib/exec.js +61 -0
  40. package/dist/scripts/lib/exec.js.map +1 -0
  41. package/dist/scripts/lib/io.d.ts +48 -0
  42. package/dist/scripts/lib/io.d.ts.map +1 -0
  43. package/dist/scripts/lib/io.js +72 -0
  44. package/dist/scripts/lib/io.js.map +1 -0
  45. package/dist/scripts/lib/read-config.d.ts +26 -0
  46. package/dist/scripts/lib/read-config.d.ts.map +1 -0
  47. package/dist/scripts/lib/read-config.js +65 -0
  48. package/dist/scripts/lib/read-config.js.map +1 -0
  49. package/dist/scripts/merge-local.d.ts +2 -0
  50. package/dist/scripts/merge-local.d.ts.map +1 -0
  51. package/dist/scripts/merge-local.js +146 -0
  52. package/dist/scripts/merge-local.js.map +1 -0
  53. package/dist/scripts/merge-remote.d.ts +12 -0
  54. package/dist/scripts/merge-remote.d.ts.map +1 -0
  55. package/dist/scripts/merge-remote.js +71 -0
  56. package/dist/scripts/merge-remote.js.map +1 -0
  57. package/dist/scripts/schedule-manage.d.ts +2 -0
  58. package/dist/scripts/schedule-manage.d.ts.map +1 -0
  59. package/dist/scripts/schedule-manage.js +151 -0
  60. package/dist/scripts/schedule-manage.js.map +1 -0
  61. package/dist/scripts/schedule-run.d.ts +2 -0
  62. package/dist/scripts/schedule-run.d.ts.map +1 -0
  63. package/dist/scripts/schedule-run.js +146 -0
  64. package/dist/scripts/schedule-run.js.map +1 -0
  65. package/dist/scripts/verify-gather.d.ts +2 -0
  66. package/dist/scripts/verify-gather.d.ts.map +1 -0
  67. package/dist/scripts/verify-gather.js +210 -0
  68. package/dist/scripts/verify-gather.js.map +1 -0
  69. package/dist/scripts/verify-post.d.ts +12 -0
  70. package/dist/scripts/verify-post.d.ts.map +1 -0
  71. package/dist/scripts/verify-post.js +72 -0
  72. package/dist/scripts/verify-post.js.map +1 -0
  73. package/dist/services/git/FilePublishService.d.ts +6 -0
  74. package/dist/services/git/FilePublishService.d.ts.map +1 -1
  75. package/dist/services/git/FilePublishService.js +79 -2
  76. package/dist/services/git/FilePublishService.js.map +1 -1
  77. package/dist/services/git/WorktreeService.d.ts +17 -0
  78. package/dist/services/git/WorktreeService.d.ts.map +1 -1
  79. package/dist/services/git/WorktreeService.js +40 -0
  80. package/dist/services/git/WorktreeService.js.map +1 -1
  81. package/dist/templates/planning-instructions.md +7 -7
  82. package/dist/templates/skill-creation-instructions.md +2 -2
  83. package/dist/templates/skills/hula-confirm/SKILL.md +3 -3
  84. package/dist/templates/skills/hula-fix/SKILL.md +3 -3
  85. package/dist/templates/skills/hula-launch/SKILL.md +14 -8
  86. package/dist/templates/skills/hula-merge/SKILL.md +2 -2
  87. package/dist/templates/skills/hula-plan/SKILL.md +5 -5
  88. package/dist/templates/skills/hula-schedule/SKILL.md +16 -16
  89. package/dist/templates/skills/hula-verify/SKILL.md +2 -2
  90. package/dist/types/config.schema.d.ts +235 -0
  91. package/dist/types/config.schema.d.ts.map +1 -1
  92. package/dist/types/config.schema.js +66 -0
  93. package/dist/types/config.schema.js.map +1 -1
  94. package/dist/utils/client-session.d.ts +2 -2
  95. package/dist/utils/client-session.js +2 -2
  96. package/package.json +6 -5
  97. package/scripts/postinstall.mjs +101 -0
  98. package/dist/templates/scripts/hula-fix-commit.sh +0 -114
  99. package/dist/templates/scripts/hula-fix-setup.sh +0 -152
  100. package/dist/templates/scripts/hula-launch-run.sh +0 -140
  101. package/dist/templates/scripts/hula-merge-local.sh +0 -138
  102. package/dist/templates/scripts/hula-merge-remote.sh +0 -94
  103. package/dist/templates/scripts/hula-read-config.sh +0 -38
  104. package/dist/templates/scripts/hula-schedule-manage.sh +0 -159
  105. package/dist/templates/scripts/hula-schedule-run.sh +0 -148
  106. package/dist/templates/scripts/hula-session-hook.sh +0 -68
  107. package/dist/templates/scripts/hula-verify-gather.sh +0 -135
  108. package/dist/templates/scripts/hula-verify-post.sh +0 -84
@@ -10,9 +10,9 @@ You are an expert technical planner for the HubLaunch project.
10
10
 
11
11
  ## Instructions
12
12
 
13
- Read the detailed planning guidelines from the workspace file:
13
+ Read the detailed planning guidelines by running:
14
14
 
15
- `.hublaunch/planning-instructions.md`
15
+ `hula instructions planning`
16
16
 
17
17
  Follow those instructions carefully to generate a comprehensive implementation plan.
18
18
 
@@ -23,7 +23,7 @@ The user will describe a feature or issue. Your job is to:
23
23
  1. **ASK CLARIFYING QUESTIONS FIRST** - Do not immediately generate a plan
24
24
  2. Understand the requirements through questions and answers
25
25
  3. Analyze the existing codebase context
26
- 4. Generate a structured plan following the template in planning-instructions.md
26
+ 4. Generate a structured plan following the template from `hula instructions planning`
27
27
  5. Include specific file paths, code suggestions, and actionable steps
28
28
  6. Consider testing, documentation, and edge cases
29
29
 
@@ -133,7 +133,7 @@ The plan should be immediately actionable by a developer familiar with the codeb
133
133
 
134
134
  Now proceed directly to plan validation **without waiting for the user**. The plan file was just created in this session — the path is already known.
135
135
 
136
- Read `.hublaunch/proceed-instructions.md` and execute the full validation workflow against the plan at `<path>` (substitute `<path>` with the actual plan file path you just created, e.g. `.hublaunch/plans/2025-12-29-14:30-feature-name.md`).
136
+ Read `hula instructions proceed` and execute the full validation workflow against the plan at `<path>` (substitute `<path>` with the actual plan file path you just created, e.g. `.hublaunch/plans/2025-12-29-14:30-feature-name.md`).
137
137
 
138
138
  **Important adjustments for inline execution:**
139
139
 
@@ -144,6 +144,6 @@ Read `.hublaunch/proceed-instructions.md` and execute the full validation workfl
144
144
  > ⚠️ Auto-validation could not complete. Run `/hula-confirm <path>` to resume.
145
145
 
146
146
  where `<path>` is the plan file path.
147
- - **Finish with the Launch Offer** — after validation completes, execute the "Launch Offer" section of `.hublaunch/proceed-instructions.md` (issue-name resolution, the launch question, and launching on an affirmative reply). Never launch without an affirmative reply.
147
+ - **Finish with the Launch Offer** — after validation completes, execute the "Launch Offer" section of `hula instructions proceed` (issue-name resolution, the launch question, and launching on an affirmative reply). Never launch without an affirmative reply.
148
148
 
149
149
  **Note:** The plan is saved locally. When you run `/hula-launch`, the plan is automatically synced to `origin/main` before the GitHub issue is created and the implementation begins — no separate upload step needed. Because validation ends with the Launch Offer, an affirmative reply runs the `/hula-launch` workflow for the user automatically; they can also decline and run `/hula-launch` themselves later. `/hula-confirm` remains available as a standalone command for re-validation at any time.
@@ -76,13 +76,13 @@ guess between "run an existing action" and "create a new one". Likewise, if an
76
76
  Run exactly one Bash command. Use `--built-in` OR `--action-path`, never both:
77
77
 
78
78
  ```bash
79
- bash .github/scripts/hula-schedule-run.sh --built-in <name> [--entry-point <path>] [--outcome-type <type>] [--schedule "<cron>"] [--pr-policy <always|skip-if-open|close-previous>]
79
+ hula script schedule-run -- --built-in <name> [--entry-point <path>] [--outcome-type <type>] [--schedule "<cron>"] [--pr-policy <always|skip-if-open|close-previous>]
80
80
  ```
81
81
 
82
82
  or, for a custom action file:
83
83
 
84
84
  ```bash
85
- bash .github/scripts/hula-schedule-run.sh --action-path <path> [--entry-point <path>] [--outcome-type <type>] [--schedule "<cron>"] [--pr-policy <always|skip-if-open|close-previous>]
85
+ hula script schedule-run -- --action-path <path> [--entry-point <path>] [--outcome-type <type>] [--schedule "<cron>"] [--pr-policy <always|skip-if-open|close-previous>]
86
86
  ```
87
87
 
88
88
  Pass only the flags you resolved. Quote the cron expression. Only include
@@ -95,14 +95,14 @@ report the result (see **Reporting run/schedule results**).
95
95
 
96
96
  The user described what they want done but did not supply an existing action.
97
97
 
98
- **Read `.hublaunch/skill-creation-instructions.md` and follow it exactly.** In
98
+ **Read `hula instructions skill-creation` and follow it exactly.** In
99
99
  summary it has you: ask clarifying questions first (then STOP), confirm the
100
100
  action name, resolve+confirm any cron, write a free-form instruction markdown
101
101
  file to `.hublaunch/skills/<YYYY-MM-DD-HH:MM-slug>.md`, **publish it to
102
102
  origin/main BEFORE running** via
103
- `bash .github/scripts/hula-schedule-manage.sh --publish-skill <path>` (abort if
103
+ `hula script schedule-manage -- --publish-skill <path>` (abort if
104
104
  that returns `status:"error"`), then run/schedule it with
105
- `bash .github/scripts/hula-schedule-run.sh --action-path <path> …`, and report the
105
+ `hula script schedule-run -- --action-path <path> …`, and report the
106
106
  created file path plus the run/schedule result.
107
107
 
108
108
  ---
@@ -113,8 +113,8 @@ Run via the management wrapper:
113
113
 
114
114
  - `list` (no qualifier) → show **both** recent runs and active schedules:
115
115
  ```bash
116
- bash .github/scripts/hula-schedule-manage.sh --list
117
- bash .github/scripts/hula-schedule-manage.sh --list-schedules
116
+ hula script schedule-manage -- --list
117
+ hula script schedule-manage -- --list-schedules
118
118
  ```
119
119
  - "list runs" → only `--list`. "list schedules" → only `--list-schedules`.
120
120
 
@@ -123,7 +123,7 @@ Display the `cliOutput` from each result.
123
123
  ## Mode: show
124
124
 
125
125
  ```bash
126
- bash .github/scripts/hula-schedule-manage.sh --show <runId>
126
+ hula script schedule-manage -- --show <runId>
127
127
  ```
128
128
 
129
129
  Display the `cliOutput`.
@@ -131,7 +131,7 @@ Display the `cliOutput`.
131
131
  ## Mode: run-now
132
132
 
133
133
  ```bash
134
- bash .github/scripts/hula-schedule-manage.sh --run-now <scheduleId>
134
+ hula script schedule-manage -- --run-now <scheduleId>
135
135
  ```
136
136
 
137
137
  Report the new run id (`runId`) from the JSON, falling back to `cliOutput`.
@@ -140,19 +140,19 @@ Report the new run id (`runId`) from the JSON, falling back to `cliOutput`.
140
140
 
141
141
  1. Cancel the schedule:
142
142
  ```bash
143
- bash .github/scripts/hula-schedule-manage.sh --cancel-schedule <scheduleId>
143
+ hula script schedule-manage -- --cancel-schedule <scheduleId>
144
144
  ```
145
145
  2. If the cancelled schedule referenced an `actionPath` under
146
146
  `.hublaunch/skills/`, **ask the user whether to also delete that file.**
147
147
  3. If they opt in, FIRST verify no other active schedule still uses it:
148
148
  ```bash
149
- bash .github/scripts/hula-schedule-manage.sh --list-schedules
149
+ hula script schedule-manage -- --list-schedules
150
150
  ```
151
151
  - If another active schedule references the same `actionPath`, **refuse** and
152
152
  report which schedule id(s) still use it. Leave the file on the branch.
153
153
  - Otherwise delete it:
154
154
  ```bash
155
- bash .github/scripts/hula-schedule-manage.sh --delete-skill <actionPath>
155
+ hula script schedule-manage -- --delete-skill <actionPath>
156
156
  ```
157
157
 
158
158
  ## Mode: update-skill-file
@@ -167,7 +167,7 @@ schedule.
167
167
  it with `Write` for a large change), keeping the free-form template format.
168
168
  3. Re-publish it:
169
169
  ```bash
170
- bash .github/scripts/hula-schedule-manage.sh --publish-skill <actionPath>
170
+ hula script schedule-manage -- --publish-skill <actionPath>
171
171
  ```
172
172
  4. No schedule change is needed. Inform the user that the **next scheduled run
173
173
  will use the updated content** (the server re-reads the file on every fire).
@@ -180,14 +180,14 @@ update-schedule endpoint, so cancel + recreate on the same action:
180
180
  1. Read the existing schedule's `actionPath` (or `builtIn`), `entryPoint`, and
181
181
  `outcomeType` via:
182
182
  ```bash
183
- bash .github/scripts/hula-schedule-manage.sh --list-schedules
183
+ hula script schedule-manage -- --list-schedules
184
184
  ```
185
185
  2. Resolve the new cron and **confirm the readback** (see Cron table).
186
186
  3. Cancel the old schedule, then recreate with the new cron on the **same**
187
187
  action:
188
188
  ```bash
189
- bash .github/scripts/hula-schedule-manage.sh --cancel-schedule <old-id>
190
- bash .github/scripts/hula-schedule-run.sh --action-path <same-path> [--entry-point <path>] [--outcome-type <type>] --schedule "<new-cron>"
189
+ hula script schedule-manage -- --cancel-schedule <old-id>
190
+ hula script schedule-run -- --action-path <same-path> [--entry-point <path>] [--outcome-type <type>] --schedule "<new-cron>"
191
191
  ```
192
192
  (Use `--built-in <name>` instead of `--action-path` if the schedule used a
193
193
  built-in.)
@@ -72,7 +72,7 @@ Stop execution here. Do not proceed.
72
72
  Run the gather script — it fetches issue details, finds the linked PR, and downloads file changes and diff in one terminal approval:
73
73
 
74
74
  ```bash
75
- bash .github/scripts/hula-verify-gather.sh <issue-number>
75
+ hula script verify-gather -- <issue-number>
76
76
  ```
77
77
 
78
78
  The script outputs JSON with `status`, `issueTitle`, `issueState`, `issueUrl`, `prNumber`, `prTitle`, `prUrl`, `prState`, `prBranch`, `prIsDraft`, `diffFile`, `filesChanged`, and `lines`.
@@ -295,7 +295,7 @@ Wait for user response.
295
295
  Save the verification report to a temporary file, then run the post script (one terminal approval):
296
296
 
297
297
  ```bash
298
- bash .github/scripts/hula-verify-post.sh <pr-number> /tmp/hula-verify-report-<pr-number>.md
298
+ hula script verify-post -- <pr-number> /tmp/hula-verify-report-<pr-number>.md
299
299
  ```
300
300
 
301
301
  The script outputs JSON with `status`, `prNumber`, and `commentUrl`.
@@ -298,6 +298,167 @@ export declare const ConfigSchema: z.ZodObject<{
298
298
  browserHeadless: z.ZodDefault<z.ZodEnum<["auto", "always", "never"]>>;
299
299
  worktreeBasePath: z.ZodDefault<z.ZodString>;
300
300
  envVars: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodLiteral<"all">]>>;
301
+ steps: z.ZodOptional<z.ZodObject<{
302
+ implementation: z.ZodOptional<z.ZodObject<{
303
+ model: z.ZodOptional<z.ZodString>;
304
+ }, "strip", z.ZodTypeAny, {
305
+ model?: string | undefined;
306
+ }, {
307
+ model?: string | undefined;
308
+ }>>;
309
+ findBugs: z.ZodOptional<z.ZodObject<{
310
+ model: z.ZodOptional<z.ZodString>;
311
+ maxIterations: z.ZodOptional<z.ZodNumber>;
312
+ diffMaxLines: z.ZodOptional<z.ZodNumber>;
313
+ excludeRegex: z.ZodOptional<z.ZodString>;
314
+ }, "strip", z.ZodTypeAny, {
315
+ model?: string | undefined;
316
+ maxIterations?: number | undefined;
317
+ diffMaxLines?: number | undefined;
318
+ excludeRegex?: string | undefined;
319
+ }, {
320
+ model?: string | undefined;
321
+ maxIterations?: number | undefined;
322
+ diffMaxLines?: number | undefined;
323
+ excludeRegex?: string | undefined;
324
+ }>>;
325
+ bugfix: z.ZodOptional<z.ZodObject<{
326
+ model: z.ZodOptional<z.ZodString>;
327
+ }, "strip", z.ZodTypeAny, {
328
+ model?: string | undefined;
329
+ }, {
330
+ model?: string | undefined;
331
+ }>>;
332
+ lintfix: z.ZodOptional<z.ZodObject<{
333
+ model: z.ZodOptional<z.ZodString>;
334
+ maxIterations: z.ZodOptional<z.ZodNumber>;
335
+ }, "strip", z.ZodTypeAny, {
336
+ model?: string | undefined;
337
+ maxIterations?: number | undefined;
338
+ }, {
339
+ model?: string | undefined;
340
+ maxIterations?: number | undefined;
341
+ }>>;
342
+ build: z.ZodOptional<z.ZodObject<{
343
+ model: z.ZodOptional<z.ZodString>;
344
+ maxIterations: z.ZodOptional<z.ZodNumber>;
345
+ }, "strip", z.ZodTypeAny, {
346
+ model?: string | undefined;
347
+ maxIterations?: number | undefined;
348
+ }, {
349
+ model?: string | undefined;
350
+ maxIterations?: number | undefined;
351
+ }>>;
352
+ regression: z.ZodOptional<z.ZodObject<{
353
+ skip: z.ZodOptional<z.ZodBoolean>;
354
+ }, "strip", z.ZodTypeAny, {
355
+ skip?: boolean | undefined;
356
+ }, {
357
+ skip?: boolean | undefined;
358
+ }>>;
359
+ mergeConflict: z.ZodOptional<z.ZodObject<{
360
+ model: z.ZodOptional<z.ZodString>;
361
+ }, "strip", z.ZodTypeAny, {
362
+ model?: string | undefined;
363
+ }, {
364
+ model?: string | undefined;
365
+ }>>;
366
+ summary: z.ZodOptional<z.ZodObject<{
367
+ model: z.ZodOptional<z.ZodString>;
368
+ maxIterations: z.ZodOptional<z.ZodNumber>;
369
+ }, "strip", z.ZodTypeAny, {
370
+ model?: string | undefined;
371
+ maxIterations?: number | undefined;
372
+ }, {
373
+ model?: string | undefined;
374
+ maxIterations?: number | undefined;
375
+ }>>;
376
+ verify: z.ZodOptional<z.ZodObject<{
377
+ model: z.ZodOptional<z.ZodString>;
378
+ maxIterations: z.ZodOptional<z.ZodNumber>;
379
+ skip: z.ZodOptional<z.ZodBoolean>;
380
+ }, "strip", z.ZodTypeAny, {
381
+ model?: string | undefined;
382
+ maxIterations?: number | undefined;
383
+ skip?: boolean | undefined;
384
+ }, {
385
+ model?: string | undefined;
386
+ maxIterations?: number | undefined;
387
+ skip?: boolean | undefined;
388
+ }>>;
389
+ }, "strip", z.ZodTypeAny, {
390
+ implementation?: {
391
+ model?: string | undefined;
392
+ } | undefined;
393
+ findBugs?: {
394
+ model?: string | undefined;
395
+ maxIterations?: number | undefined;
396
+ diffMaxLines?: number | undefined;
397
+ excludeRegex?: string | undefined;
398
+ } | undefined;
399
+ bugfix?: {
400
+ model?: string | undefined;
401
+ } | undefined;
402
+ lintfix?: {
403
+ model?: string | undefined;
404
+ maxIterations?: number | undefined;
405
+ } | undefined;
406
+ build?: {
407
+ model?: string | undefined;
408
+ maxIterations?: number | undefined;
409
+ } | undefined;
410
+ regression?: {
411
+ skip?: boolean | undefined;
412
+ } | undefined;
413
+ mergeConflict?: {
414
+ model?: string | undefined;
415
+ } | undefined;
416
+ summary?: {
417
+ model?: string | undefined;
418
+ maxIterations?: number | undefined;
419
+ } | undefined;
420
+ verify?: {
421
+ model?: string | undefined;
422
+ maxIterations?: number | undefined;
423
+ skip?: boolean | undefined;
424
+ } | undefined;
425
+ }, {
426
+ implementation?: {
427
+ model?: string | undefined;
428
+ } | undefined;
429
+ findBugs?: {
430
+ model?: string | undefined;
431
+ maxIterations?: number | undefined;
432
+ diffMaxLines?: number | undefined;
433
+ excludeRegex?: string | undefined;
434
+ } | undefined;
435
+ bugfix?: {
436
+ model?: string | undefined;
437
+ } | undefined;
438
+ lintfix?: {
439
+ model?: string | undefined;
440
+ maxIterations?: number | undefined;
441
+ } | undefined;
442
+ build?: {
443
+ model?: string | undefined;
444
+ maxIterations?: number | undefined;
445
+ } | undefined;
446
+ regression?: {
447
+ skip?: boolean | undefined;
448
+ } | undefined;
449
+ mergeConflict?: {
450
+ model?: string | undefined;
451
+ } | undefined;
452
+ summary?: {
453
+ model?: string | undefined;
454
+ maxIterations?: number | undefined;
455
+ } | undefined;
456
+ verify?: {
457
+ model?: string | undefined;
458
+ maxIterations?: number | undefined;
459
+ skip?: boolean | undefined;
460
+ } | undefined;
461
+ }>>;
301
462
  }, "strip", z.ZodTypeAny, {
302
463
  planPath: string;
303
464
  editorCommand: "cursor" | "vsCode" | "other";
@@ -373,6 +534,43 @@ export declare const ConfigSchema: z.ZodObject<{
373
534
  } | undefined;
374
535
  } | undefined;
375
536
  envVars?: string[] | "all" | undefined;
537
+ steps?: {
538
+ implementation?: {
539
+ model?: string | undefined;
540
+ } | undefined;
541
+ findBugs?: {
542
+ model?: string | undefined;
543
+ maxIterations?: number | undefined;
544
+ diffMaxLines?: number | undefined;
545
+ excludeRegex?: string | undefined;
546
+ } | undefined;
547
+ bugfix?: {
548
+ model?: string | undefined;
549
+ } | undefined;
550
+ lintfix?: {
551
+ model?: string | undefined;
552
+ maxIterations?: number | undefined;
553
+ } | undefined;
554
+ build?: {
555
+ model?: string | undefined;
556
+ maxIterations?: number | undefined;
557
+ } | undefined;
558
+ regression?: {
559
+ skip?: boolean | undefined;
560
+ } | undefined;
561
+ mergeConflict?: {
562
+ model?: string | undefined;
563
+ } | undefined;
564
+ summary?: {
565
+ model?: string | undefined;
566
+ maxIterations?: number | undefined;
567
+ } | undefined;
568
+ verify?: {
569
+ model?: string | undefined;
570
+ maxIterations?: number | undefined;
571
+ skip?: boolean | undefined;
572
+ } | undefined;
573
+ } | undefined;
376
574
  }, {
377
575
  planPath?: string | undefined;
378
576
  projectOwner?: string | undefined;
@@ -448,6 +646,43 @@ export declare const ConfigSchema: z.ZodObject<{
448
646
  browserHeadless?: "never" | "auto" | "always" | undefined;
449
647
  worktreeBasePath?: string | undefined;
450
648
  envVars?: string[] | "all" | undefined;
649
+ steps?: {
650
+ implementation?: {
651
+ model?: string | undefined;
652
+ } | undefined;
653
+ findBugs?: {
654
+ model?: string | undefined;
655
+ maxIterations?: number | undefined;
656
+ diffMaxLines?: number | undefined;
657
+ excludeRegex?: string | undefined;
658
+ } | undefined;
659
+ bugfix?: {
660
+ model?: string | undefined;
661
+ } | undefined;
662
+ lintfix?: {
663
+ model?: string | undefined;
664
+ maxIterations?: number | undefined;
665
+ } | undefined;
666
+ build?: {
667
+ model?: string | undefined;
668
+ maxIterations?: number | undefined;
669
+ } | undefined;
670
+ regression?: {
671
+ skip?: boolean | undefined;
672
+ } | undefined;
673
+ mergeConflict?: {
674
+ model?: string | undefined;
675
+ } | undefined;
676
+ summary?: {
677
+ model?: string | undefined;
678
+ maxIterations?: number | undefined;
679
+ } | undefined;
680
+ verify?: {
681
+ model?: string | undefined;
682
+ maxIterations?: number | undefined;
683
+ skip?: boolean | undefined;
684
+ } | undefined;
685
+ } | undefined;
451
686
  }>;
452
687
  export type Config = z.infer<typeof ConfigSchema>;
453
688
  export declare const DEFAULT_CONFIG: Config;
@@ -1 +1 @@
1
- {"version":3,"file":"config.schema.d.ts","sourceRoot":"","sources":["../../src/types/config.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,QAAA,MAAM,uBAAuB;;;;;;;;;EAK3B,CAAC;AAEH,QAAA,MAAM,iBAAiB;;;;;;;;;EAGrB,CAAC;AAEH,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGlB,CAAC;AAEH,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;EAOf,CAAC;AAGH,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYrB,CAAC;AAGH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAC9E,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAClE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAC5D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AACtD,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAGlE,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmGvB,CAAC;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAGlD,eAAO,MAAM,cAAc,EAAE,MAe5B,CAAC"}
1
+ {"version":3,"file":"config.schema.d.ts","sourceRoot":"","sources":["../../src/types/config.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,QAAA,MAAM,uBAAuB;;;;;;;;;EAK3B,CAAC;AAEH,QAAA,MAAM,iBAAiB;;;;;;;;;EAGrB,CAAC;AAEH,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGlB,CAAC;AAEH,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;EAOf,CAAC;AAGH,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYrB,CAAC;AAGH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAC9E,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAClE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAC5D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AACtD,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAGlE,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsKvB,CAAC;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAGlD,eAAO,MAAM,cAAc,EAAE,MAe5B,CAAC"}
@@ -120,6 +120,72 @@ export const ConfigSchema = z.object({
120
120
  envVars: z
121
121
  .union([z.array(z.string()), z.literal('all')])
122
122
  .optional(),
123
+ // Per-pipeline-step overrides forwarded to the server's ralph-run request
124
+ // (hula-server PR #442). Each of the 9 keys mirrors a stage of the ralph
125
+ // pipeline and lets you override the AI model, the loop-iteration cap, and/or
126
+ // skip behavior for that stage instead of using the server's hardcoded
127
+ // defaults: implementation, findBugs, bugfix, lintfix, build, regression,
128
+ // mergeConflict, summary, verify. Config-file only (plus the --skip-regression
129
+ // launch flag). Absent entirely = nothing sent (backwards compatible). Full
130
+ // field table + the two cross-field conflict rules:
131
+ // https://github.com/NoStackApp/hub-launch#configuring-per-step-model--iteration-overrides
132
+ steps: z
133
+ .object({
134
+ implementation: z
135
+ .object({
136
+ model: z.string().min(1).optional(),
137
+ })
138
+ .optional(),
139
+ findBugs: z
140
+ .object({
141
+ model: z.string().min(1).optional(),
142
+ maxIterations: z.number().int().min(1).max(20).optional(),
143
+ diffMaxLines: z.number().int().min(1).optional(),
144
+ excludeRegex: z.string().min(1).optional(),
145
+ })
146
+ .optional(),
147
+ bugfix: z
148
+ .object({
149
+ model: z.string().min(1).optional(),
150
+ })
151
+ .optional(),
152
+ lintfix: z
153
+ .object({
154
+ model: z.string().min(1).optional(),
155
+ maxIterations: z.number().int().min(1).max(20).optional(),
156
+ })
157
+ .optional(),
158
+ build: z
159
+ .object({
160
+ model: z.string().min(1).optional(),
161
+ maxIterations: z.number().int().min(1).max(20).optional(),
162
+ })
163
+ .optional(),
164
+ regression: z
165
+ .object({
166
+ skip: z.boolean().optional(),
167
+ })
168
+ .optional(),
169
+ mergeConflict: z
170
+ .object({
171
+ model: z.string().min(1).optional(),
172
+ })
173
+ .optional(),
174
+ summary: z
175
+ .object({
176
+ model: z.string().min(1).optional(),
177
+ maxIterations: z.number().int().min(1).max(20).optional(),
178
+ })
179
+ .optional(),
180
+ verify: z
181
+ .object({
182
+ model: z.string().min(1).optional(),
183
+ maxIterations: z.number().int().min(1).max(20).optional(),
184
+ skip: z.boolean().optional(),
185
+ })
186
+ .optional(),
187
+ })
188
+ .optional(),
123
189
  });
124
190
  // Default configuration
125
191
  export const DEFAULT_CONFIG = {
@@ -1 +1 @@
1
- {"version":3,"file":"config.schema.js","sourceRoot":"","sources":["../../src/types/config.schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.schema.js","sourceRoot":"","sources":["../../src/types/config.schema.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * client-session.ts — read the Claude Code session id captured by the
3
- * hula-session-hook (see src/templates/scripts/hula-session-hook.sh).
3
+ * hula session-hook (see src/commands/session-hook.ts).
4
4
  *
5
5
  * The hook is a Claude Code PreToolUse hook: when a chat session runs
6
- * /hula-launch (i.e. Bash invokes hula-launch-run.sh), it writes
6
+ * /hula-launch (i.e. Bash invokes `hula script launch-run`), it writes
7
7
  * $HOME/.hublaunch-sessions/<repo-dir-name>/<branch>.json
8
8
  * moments before the hula CLI itself runs. `hula launch` reads it here and
9
9
  * forwards it to hula-server as `clientSessionId` (server PR #419) so client
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * client-session.ts — read the Claude Code session id captured by the
3
- * hula-session-hook (see src/templates/scripts/hula-session-hook.sh).
3
+ * hula session-hook (see src/commands/session-hook.ts).
4
4
  *
5
5
  * The hook is a Claude Code PreToolUse hook: when a chat session runs
6
- * /hula-launch (i.e. Bash invokes hula-launch-run.sh), it writes
6
+ * /hula-launch (i.e. Bash invokes `hula script launch-run`), it writes
7
7
  * $HOME/.hublaunch-sessions/<repo-dir-name>/<branch>.json
8
8
  * moments before the hula CLI itself runs. `hula launch` reads it here and
9
9
  * forwards it to hula-server as `clientSessionId` (server PR #419) so client
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hub-launch",
3
- "version": "1.15.0",
3
+ "version": "1.17.0",
4
4
  "description": "GitHub Issue and PR automation CLI tool with plugin/hook system for project-specific customizations",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -19,15 +19,16 @@
19
19
  },
20
20
  "scripts": {
21
21
  "build": "tsc && shx chmod +x dist/index.js && npm run copy-templates",
22
- "copy-templates": "shx mkdir -p dist/templates && shx cp src/templates/*.md dist/templates/ && shx mkdir -p dist/templates/scripts && shx cp src/templates/scripts/*.sh dist/templates/scripts/ && shx mkdir -p dist/templates/skills && shx cp -r src/templates/skills/* dist/templates/skills/",
22
+ "postbuild": "node scripts/postinstall.mjs",
23
+ "postinstall": "node scripts/postinstall.mjs",
24
+ "copy-templates": "shx mkdir -p dist/templates && shx cp src/templates/*.md dist/templates/ && shx mkdir -p dist/templates/skills && shx cp -r src/templates/skills/* dist/templates/skills/",
23
25
  "watch": "tsc --watch",
24
26
  "dev": "tsx src/index.ts",
25
27
  "debug": "tsx --inspect-brk src/index.ts",
26
28
  "typecheck": "tsc --noEmit",
27
29
  "test": "vitest run",
28
30
  "test:watch": "vitest",
29
- "test:scripts": "bats src/templates/scripts/__tests__/*.test.sh",
30
- "regression": "tsc --noEmit && tsc && shx chmod +x dist/index.js && npm run copy-templates",
31
+ "regression": "tsc --noEmit && tsc && shx chmod +x dist/index.js && npm run copy-templates && vitest run",
31
32
  "clean": "shx rm -rf dist",
32
33
  "install:global": "npm run build && pnpm link --global && pnpm setup",
33
34
  "i:hula": "pnpm install && npm run install:global",
@@ -46,6 +47,7 @@
46
47
  "files": [
47
48
  "dist/",
48
49
  "bin/",
50
+ "scripts/postinstall.mjs",
49
51
  "README.md",
50
52
  "CHANGELOG.md"
51
53
  ],
@@ -65,7 +67,6 @@
65
67
  "devDependencies": {
66
68
  "@types/inquirer": "^9.0.9",
67
69
  "@types/node": "^20.10.0",
68
- "bats": "^1.11.0",
69
70
  "shx": "^0.4.0",
70
71
  "tsx": "^4.20.6",
71
72
  "typescript": "^5.3.3",