hub-launch 1.29.0 → 1.31.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.
- package/CHANGELOG.md +21 -0
- package/README.md +53 -1
- package/dist/commands/errorWatcher.d.ts +2 -0
- package/dist/commands/errorWatcher.d.ts.map +1 -1
- package/dist/commands/errorWatcher.js +13 -0
- package/dist/commands/errorWatcher.js.map +1 -1
- package/dist/commands/init.d.ts +12 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +55 -4
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/launch.d.ts +36 -0
- package/dist/commands/launch.d.ts.map +1 -1
- package/dist/commands/launch.js +267 -6
- package/dist/commands/launch.js.map +1 -1
- package/dist/commands/login.d.ts +14 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +26 -4
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/schedule.d.ts +15 -0
- package/dist/commands/schedule.d.ts.map +1 -1
- package/dist/commands/schedule.js +81 -2
- package/dist/commands/schedule.js.map +1 -1
- package/dist/commands/script.d.ts +1 -1
- package/dist/commands/script.d.ts.map +1 -1
- package/dist/commands/script.js +3 -0
- package/dist/commands/script.js.map +1 -1
- package/dist/commands/session-hook.d.ts +9 -0
- package/dist/commands/session-hook.d.ts.map +1 -1
- package/dist/commands/session-hook.js +60 -15
- package/dist/commands/session-hook.js.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/scripts/backlog-add.d.ts +2 -0
- package/dist/scripts/backlog-add.d.ts.map +1 -0
- package/dist/scripts/backlog-add.js +145 -0
- package/dist/scripts/backlog-add.js.map +1 -0
- package/dist/scripts/backlog-init.d.ts +2 -0
- package/dist/scripts/backlog-init.d.ts.map +1 -0
- package/dist/scripts/backlog-init.js +84 -0
- package/dist/scripts/backlog-init.js.map +1 -0
- package/dist/scripts/backlog-resync.d.ts +2 -0
- package/dist/scripts/backlog-resync.d.ts.map +1 -0
- package/dist/scripts/backlog-resync.js +156 -0
- package/dist/scripts/backlog-resync.js.map +1 -0
- package/dist/scripts/launch-run.d.ts +1 -0
- package/dist/scripts/launch-run.d.ts.map +1 -1
- package/dist/scripts/launch-run.js +47 -3
- package/dist/scripts/launch-run.js.map +1 -1
- package/dist/scripts/lib/backlog-sync.d.ts +27 -0
- package/dist/scripts/lib/backlog-sync.d.ts.map +1 -0
- package/dist/scripts/lib/backlog-sync.js +48 -0
- package/dist/scripts/lib/backlog-sync.js.map +1 -0
- package/dist/scripts/lib/read-config.d.ts +16 -0
- package/dist/scripts/lib/read-config.d.ts.map +1 -1
- package/dist/scripts/lib/read-config.js +34 -0
- package/dist/scripts/lib/read-config.js.map +1 -1
- package/dist/services/api/HulaApiClient.d.ts +39 -0
- package/dist/services/api/HulaApiClient.d.ts.map +1 -1
- package/dist/services/api/HulaApiClient.js +15 -0
- package/dist/services/api/HulaApiClient.js.map +1 -1
- package/dist/services/github/IssueService.d.ts.map +1 -1
- package/dist/services/github/IssueService.js +3 -0
- package/dist/services/github/IssueService.js.map +1 -1
- package/dist/services/plan/GitHubSourcePlanService.d.ts +67 -0
- package/dist/services/plan/GitHubSourcePlanService.d.ts.map +1 -0
- package/dist/services/plan/GitHubSourcePlanService.js +148 -0
- package/dist/services/plan/GitHubSourcePlanService.js.map +1 -0
- package/dist/services/plan/PlanBranchService.d.ts +5 -1
- package/dist/services/plan/PlanBranchService.d.ts.map +1 -1
- package/dist/services/plan/PlanBranchService.js +21 -3
- package/dist/services/plan/PlanBranchService.js.map +1 -1
- package/dist/templates/proceed-instructions.md +2 -1
- package/dist/templates/skills/hula-approve/SKILL.md +31 -0
- package/dist/templates/skills/hula-fix/SKILL.md +10 -0
- package/dist/templates/skills/hula-launch/SKILL.md +40 -1
- package/dist/templates/skills/hula-plan/SKILL.md +39 -4
- package/dist/types/config.schema.d.ts +24 -0
- package/dist/types/config.schema.d.ts.map +1 -1
- package/dist/types/config.schema.js +11 -0
- package/dist/types/config.schema.js.map +1 -1
- package/dist/types/issue.schema.d.ts +6 -0
- package/dist/types/issue.schema.d.ts.map +1 -1
- package/dist/types/issue.schema.js +8 -0
- package/dist/types/issue.schema.js.map +1 -1
- package/dist/types/pr.schema.d.ts +38 -0
- package/dist/types/pr.schema.d.ts.map +1 -1
- package/dist/types/pr.schema.js +7 -0
- package/dist/types/pr.schema.js.map +1 -1
- package/dist/utils/client-session.d.ts +16 -0
- package/dist/utils/client-session.d.ts.map +1 -1
- package/dist/utils/client-session.js +29 -0
- package/dist/utils/client-session.js.map +1 -1
- package/dist/utils/sandbox-profile.d.ts +44 -0
- package/dist/utils/sandbox-profile.d.ts.map +1 -0
- package/dist/utils/sandbox-profile.js +78 -0
- package/dist/utils/sandbox-profile.js.map +1 -0
- package/package.json +1 -1
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: hula-plan
|
|
3
3
|
description: "Plan (step 1 of 2): describe what you want built — drafts an implementation plan, validates it until it stands on its own, then offers to launch. Use when the user asks to plan, build, or implement something."
|
|
4
4
|
disable-model-invocation: true
|
|
5
|
-
argument-hint: <what you want built> [--folder <subfolder>] [--autoLaunch [--test] [--handoff <username>]]
|
|
5
|
+
argument-hint: <what you want built> [--issue <n> | --pr <n>] [--folder <subfolder>] [--autoLaunch [--test] [--handoff <username>]]
|
|
6
6
|
allowed-tools: Bash Read
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -31,8 +31,24 @@ The user will describe a feature or issue. Your job is to:
|
|
|
31
31
|
|
|
32
32
|
Issue description: $ARGUMENTS
|
|
33
33
|
Folder (optional): Parsed from $ARGUMENTS if --folder flag is provided
|
|
34
|
+
Source (optional): Parsed from $ARGUMENTS if `--issue <ref>` or `--pr <ref>` is provided — see "Starting From an Existing Issue or PR" below. The rest of $ARGUMENTS is then the user's extra instructions on top of that issue or PR.
|
|
34
35
|
Auto-launch (optional): Parsed from $ARGUMENTS if --autoLaunch flag is provided (optionally combined with --test and/or --handoff <username>, both otherwise unused until the Launch Offer)
|
|
35
36
|
|
|
37
|
+
## Starting From an Existing Issue or PR
|
|
38
|
+
|
|
39
|
+
`--issue <ref>` plans work on an issue already on the repo; `--pr <ref>` plans more changes to an open pull request. `<ref>` is a number, `#number`, or a GitHub URL for **this** repository. Without either flag, skip this section.
|
|
40
|
+
|
|
41
|
+
1. **Exactly one source.** If both `--issue` and `--pr` are present, stop with:
|
|
42
|
+
```
|
|
43
|
+
❌ Pass --issue or --pr to /hula-plan, not both. To work an issue on an existing PR without a plan, run: hula launch --issue <n> --pr <m>
|
|
44
|
+
```
|
|
45
|
+
2. **Read the source** (read-only — never comment on, edit, or assign it):
|
|
46
|
+
- `--issue`: `gh issue view <ref> --json number,title,body,state,url,comments`. If `state` is not `OPEN`, stop with `❌ Issue #<n> is closed.` If `gh` reports it is a pull request, stop with `❌ #<n> is a pull request — use --pr <n>.`
|
|
47
|
+
- `--pr`: `gh pr view <ref> --json number,title,body,state,url,headRefName,baseRefName,isCrossRepository,files` and `gh pr diff <ref>`. If `state` is not `OPEN`, stop with `❌ PR #<n> is not open.` If `isCrossRepository` is `true`, stop with `❌ PR #<n> comes from a fork; HubLaunch can only continue same-repo PRs.`
|
|
48
|
+
3. **Treat it as the feature description.** The issue/PR title, body, and comments (plus the PR's current diff) are what the user wants built; the rest of `$ARGUMENTS` is extra instructions that take precedence where they conflict. Run the Deep Analysis and clarifying questions below as usual.
|
|
49
|
+
4. **Say where the plan came from.** Add a `## Source` section directly under the Plan Summary: `Issue #<n> — <url>` or `Pull request #<n> — <url> (branch <headRefName> → <baseRefName>)`. For a PR, the plan must describe only the **new** work: its existing commits stay as they are and new commits go on top.
|
|
50
|
+
5. **Default name.** Unless the user names it, the tracking/branch name is `issue-<n>` or `pr-<n>` (the same default `hula launch --issue/--pr` uses).
|
|
51
|
+
|
|
36
52
|
## Additional Context
|
|
37
53
|
|
|
38
54
|
Use the `#codebase` tool to search for relevant existing code:
|
|
@@ -122,11 +138,27 @@ The plan should be immediately actionable by a developer familiar with the codeb
|
|
|
122
138
|
|
|
123
139
|
**⚠️ NEVER create plan files in the project root directory.** The plan file MUST always be inside the `.hublaunch/plans/` directory (or a subfolder of it). If you cannot read the config file, use the default path `.hublaunch/plans/`.
|
|
124
140
|
|
|
141
|
+
### Step 1.5: Create the Chat Backlog (if not already created)
|
|
142
|
+
|
|
143
|
+
Every `/hula-plan` chat gets one backlog: a running list of things that come up during the conversation that should NOT be folded into the plan being drafted right now.
|
|
144
|
+
|
|
145
|
+
1. **Check if this chat already has one.** Scan this conversation's own history for a prior `<!-- hula-backlog: <key> -->` HTML comment (emitted by an earlier `/hula-plan`, `/hula-fix`, or `/hula-approve` in the same chat). If found, reuse that `<key>` — do not create a second backlog.
|
|
146
|
+
2. **If none found, create one:**
|
|
147
|
+
- Generate `<key>` as `bl-` followed by 8 lowercase base-36 characters (e.g. `bl-m3x9k2p1`).
|
|
148
|
+
- Run: `hula script backlog-init -- <key>`
|
|
149
|
+
- Parse the JSON output: `{"status":"success","key":"<key>","path":"<path>","created":true|false}`. If `status` is `"error"`, log a one-line warning and continue — a backlog failure must never block planning.
|
|
150
|
+
3. **Emit the tracking comment** in this response's output, alongside the existing `<!-- hula-plan -->` / `<!-- hula-branch -->` comments: `<!-- hula-backlog: <key> -->`
|
|
151
|
+
4. **During the rest of this planning conversation**, whenever something surfaces that should be tracked but is not part of the plan being drafted right now (a follow-up idea, a deferred concern, something the user mentions in passing that isn't this plan's scope), run `hula script backlog-add -- <key> "<one-line item text>" --project <owner>/<repo> --tracking-name <issueName>` and continue silently — do not interrupt the flow to announce this each time. It surfaces later in the `/hula-approve` summary.
|
|
152
|
+
- `<issueName>` is the branch/tracking name resolved in Step 2 (or, if Step 2 hasn't run yet, the same name you'll resolve there). `<owner>/<repo>` comes from `gh repo view --json nameWithOwner -q .nameWithOwner`.
|
|
153
|
+
- The `--project`/`--tracking-name` args let the item sync to the `hula-project` dashboard when the repo is configured for remote (`hulaApiKey` + `hulaProjectUrl`). They're optional: if you can't resolve either value, omit them and just run `hula script backlog-add -- <key> "<one-line item text>"` — the local backlog still works, and any unsynced item is retried automatically at `/hula-approve` time.
|
|
154
|
+
|
|
125
155
|
### Step 2: Create the Plan Branch
|
|
126
156
|
|
|
127
157
|
Right after saving the plan file, create the feature branch on origin with the plan committed to it. This is the **plan-branch flow**: the git branch exists from plan time onward, so branch-scoped infrastructure (Vercel Preview env vars, per-branch databases, beforeLaunch hooks) can rely on it well before the launch.
|
|
128
158
|
|
|
129
|
-
|
|
159
|
+
**With `--pr`, skip this step.** The work branch is the PR's own head branch, which already exists; `hula launch --pr` commits the plan to it at launch time. Do not run `hula upload`, and print `🌿 Branch: PR head `<headRefName>` (plan committed at launch)` in place of the 🌿 line in Step 3, omitting the `hula-branch` comment.
|
|
160
|
+
|
|
161
|
+
1. **Resolve `<issueName>`** using the same rules as the Launch Offer's "Resolve the issue name" step in `hula instructions proceed`: a name the user specified anywhere in this conversation wins (most recent first); otherwise, with `--issue`, use `issue-<n>`; otherwise derive the default from the plan file's basename (strip the `YYYY-MM-DD-HH:MM-` prefix and `.md`, shorten a >3-word slug to its 2–3 most distinctive words, always kebab-case).
|
|
130
162
|
2. **Create the branch** by running:
|
|
131
163
|
|
|
132
164
|
`hula upload <planPath> --branch <issueName>`
|
|
@@ -143,11 +175,13 @@ Right after saving the plan file, create the feature branch on origin with the p
|
|
|
143
175
|
🌿 Branch created: `feature-name` (plan pushed to origin)
|
|
144
176
|
<!-- hula-plan: .hublaunch/plans/2025-12-29-14:30-feature-name.md -->
|
|
145
177
|
<!-- hula-branch: feature-name -->
|
|
178
|
+
<!-- hula-backlog: bl-m3x9k2p1 -->
|
|
179
|
+
<!-- hula-source: --issue 42 -->
|
|
146
180
|
|
|
147
181
|
📋 **Proceeding to validation now…**
|
|
148
182
|
```
|
|
149
183
|
|
|
150
|
-
(Substitute the actual resolved `<issueName>` in the branch line and the `hula-branch` comment. If branch creation failed in Step 2, replace the 🌿 line with `⚠️ Branch creation deferred to launch time` and omit the `hula-branch` comment.)
|
|
184
|
+
(Substitute the actual resolved `<issueName>` in the branch line and the `hula-branch` comment, and the actual `<key>` from Step 1.5 in the `hula-backlog` comment. Emit the `hula-source` comment only when `--issue` or `--pr` was given, as `<!-- hula-source: --issue <n> -->` or `<!-- hula-source: --pr <n> -->` with the resolved number — `/hula-launch` reads it to launch against that issue or PR. If branch creation failed in Step 2, replace the 🌿 line with `⚠️ Branch creation deferred to launch time` and omit the `hula-branch` comment. If Step 1.5 reused an existing backlog key or its `backlog-init` failed, still emit the `hula-backlog` comment with the resolved/reused `<key>`.)
|
|
151
185
|
|
|
152
186
|
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.
|
|
153
187
|
|
|
@@ -167,9 +201,10 @@ Read `hula instructions proceed` and execute the full validation workflow agains
|
|
|
167
201
|
- **`--autoLaunch` skips the Launch Offer's confirmation sub-step only.** If `--autoLaunch` was present in `$ARGUMENTS`:
|
|
168
202
|
1. Still perform the Launch Offer's "1. Resolve the issue name" step exactly as documented there (conversation-mention wins, else the plan-filename-slug default) — resolution itself is unchanged.
|
|
169
203
|
2. Skip "2. Ask the launch question" and "3. Interpret the reply" entirely — do not ask, do not wait.
|
|
170
|
-
3. Print exactly (substituting the resolved name): `🚀 --autoLaunch set — launching as
|
|
204
|
+
3. Print exactly (substituting the resolved name): `🚀 --autoLaunch set — launching as `<issueName>`…`
|
|
171
205
|
4. Immediately perform the Launch Offer's "4. Execute the launch" step: read `.agents/skills/hula-launch/SKILL.md` and execute its workflow with `<issueName> <planPath>`.
|
|
172
206
|
5. If `--test` and/or `--handoff <username>` were also present in `$ARGUMENTS`, pass them through to the launch — same as the Launch Offer's reply table does for a manual reply containing those flags.
|
|
207
|
+
6. If `--issue` or `--pr` was given, pass `--issue <n>` / `--pr <n>` through to the launch as well.
|
|
173
208
|
- **Without `--autoLaunch`**, behavior is completely unchanged: ask and wait as today.
|
|
174
209
|
|
|
175
210
|
**Note:** The plan is saved locally AND pushed to its feature branch on origin (Step 2). When you run `/hula-launch`, the plan branch is re-synced automatically (covering validation edits and renames) 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. If `--autoLaunch` was passed to `/hula-plan`, the launch runs automatically once validation completes — no reply needed.
|
|
@@ -181,6 +181,22 @@ export declare const ConfigSchema: z.ZodObject<{
|
|
|
181
181
|
memory?: number | undefined;
|
|
182
182
|
disk?: number | undefined;
|
|
183
183
|
}>>;
|
|
184
|
+
sandboxProfile: z.ZodOptional<z.ZodEffects<z.ZodObject<{
|
|
185
|
+
type: z.ZodEnum<["base", "android"]>;
|
|
186
|
+
jdk: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<17>, z.ZodLiteral<21>]>>;
|
|
187
|
+
}, "strip", z.ZodTypeAny, {
|
|
188
|
+
type: "base" | "android";
|
|
189
|
+
jdk?: 17 | 21 | undefined;
|
|
190
|
+
}, {
|
|
191
|
+
type: "base" | "android";
|
|
192
|
+
jdk?: 17 | 21 | undefined;
|
|
193
|
+
}>, {
|
|
194
|
+
type: "base" | "android";
|
|
195
|
+
jdk?: 17 | 21 | undefined;
|
|
196
|
+
}, {
|
|
197
|
+
type: "base" | "android";
|
|
198
|
+
jdk?: 17 | 21 | undefined;
|
|
199
|
+
}>>;
|
|
184
200
|
updateNotificationUrl: z.ZodOptional<z.ZodString>;
|
|
185
201
|
updateNotificationNameTag: z.ZodOptional<z.ZodString>;
|
|
186
202
|
commandAliases: z.ZodOptional<z.ZodObject<{
|
|
@@ -515,6 +531,10 @@ export declare const ConfigSchema: z.ZodObject<{
|
|
|
515
531
|
memory?: number | undefined;
|
|
516
532
|
disk?: number | undefined;
|
|
517
533
|
} | undefined;
|
|
534
|
+
sandboxProfile?: {
|
|
535
|
+
type: "base" | "android";
|
|
536
|
+
jdk?: 17 | 21 | undefined;
|
|
537
|
+
} | undefined;
|
|
518
538
|
updateNotificationUrl?: string | undefined;
|
|
519
539
|
updateNotificationNameTag?: string | undefined;
|
|
520
540
|
commandAliases?: {
|
|
@@ -627,6 +647,10 @@ export declare const ConfigSchema: z.ZodObject<{
|
|
|
627
647
|
memory?: number | undefined;
|
|
628
648
|
disk?: number | undefined;
|
|
629
649
|
} | undefined;
|
|
650
|
+
sandboxProfile?: {
|
|
651
|
+
type: "base" | "android";
|
|
652
|
+
jdk?: 17 | 21 | undefined;
|
|
653
|
+
} | undefined;
|
|
630
654
|
updateNotificationUrl?: string | undefined;
|
|
631
655
|
updateNotificationNameTag?: string | undefined;
|
|
632
656
|
commandAliases?: {
|
|
@@ -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;AAYxB,eAAO,MAAM,qBAAqB,+CAA6C,CAAC;AAChF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,uKACqH,CAAC;AAE7J;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAQ7D;AAGD,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
|
|
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;AAYxB,eAAO,MAAM,qBAAqB,+CAA6C,CAAC;AAChF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,uKACqH,CAAC;AAE7J;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAQ7D;AAGD,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6LvB,CAAC;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAGlD,eAAO,MAAM,cAAc,EAAE,MAc5B,CAAC"}
|
|
@@ -113,6 +113,17 @@ export const ConfigSchema = z.object({
|
|
|
113
113
|
disk: z.number().int().min(5).max(200).optional(),
|
|
114
114
|
})
|
|
115
115
|
.optional(),
|
|
116
|
+
// Which prebuilt sandbox image this repo's tasks launch in (see
|
|
117
|
+
// utils/sandbox-profile.ts). Asked once by `hula init`; absent means base.
|
|
118
|
+
sandboxProfile: z
|
|
119
|
+
.object({
|
|
120
|
+
type: z.enum(['base', 'android']),
|
|
121
|
+
jdk: z.union([z.literal(17), z.literal(21)]).optional(),
|
|
122
|
+
})
|
|
123
|
+
.refine((p) => p.jdk === undefined || p.type === 'android', {
|
|
124
|
+
message: 'sandboxProfile.jdk requires sandboxProfile.type "android"',
|
|
125
|
+
})
|
|
126
|
+
.optional(),
|
|
116
127
|
updateNotificationUrl: z.string().optional(),
|
|
117
128
|
updateNotificationNameTag: z.string().optional(),
|
|
118
129
|
// Command aliases
|
|
@@ -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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"}
|
|
@@ -27,6 +27,7 @@ export declare const GitHubIssueSchema: z.ZodObject<{
|
|
|
27
27
|
name: string;
|
|
28
28
|
color: string;
|
|
29
29
|
}>, "many">;
|
|
30
|
+
pull_request: z.ZodOptional<z.ZodUnknown>;
|
|
30
31
|
}, "strip", z.ZodTypeAny, {
|
|
31
32
|
number: number;
|
|
32
33
|
title: string;
|
|
@@ -43,6 +44,7 @@ export declare const GitHubIssueSchema: z.ZodObject<{
|
|
|
43
44
|
name: string;
|
|
44
45
|
color: string;
|
|
45
46
|
}[];
|
|
47
|
+
pull_request?: unknown;
|
|
46
48
|
}, {
|
|
47
49
|
number: number;
|
|
48
50
|
title: string;
|
|
@@ -59,6 +61,7 @@ export declare const GitHubIssueSchema: z.ZodObject<{
|
|
|
59
61
|
name: string;
|
|
60
62
|
color: string;
|
|
61
63
|
}[];
|
|
64
|
+
pull_request?: unknown;
|
|
62
65
|
}>;
|
|
63
66
|
export type GitHubIssue = z.infer<typeof GitHubIssueSchema>;
|
|
64
67
|
export declare const IssueSchema: z.ZodObject<{
|
|
@@ -72,6 +75,7 @@ export declare const IssueSchema: z.ZodObject<{
|
|
|
72
75
|
assignees: z.ZodArray<z.ZodString, "many">;
|
|
73
76
|
priority: z.ZodOptional<z.ZodEnum<["Critical", "High", "Medium", "Low", "Minimal"]>>;
|
|
74
77
|
status: z.ZodOptional<z.ZodEnum<["unassigned", "initialWaiting", "waiting", "ready"]>>;
|
|
78
|
+
isPullRequest: z.ZodOptional<z.ZodBoolean>;
|
|
75
79
|
}, "strip", z.ZodTypeAny, {
|
|
76
80
|
number: number;
|
|
77
81
|
title: string;
|
|
@@ -83,6 +87,7 @@ export declare const IssueSchema: z.ZodObject<{
|
|
|
83
87
|
status?: "unassigned" | "initialWaiting" | "waiting" | "ready" | undefined;
|
|
84
88
|
priority?: "Critical" | "High" | "Medium" | "Low" | "Minimal" | undefined;
|
|
85
89
|
body?: string | undefined;
|
|
90
|
+
isPullRequest?: boolean | undefined;
|
|
86
91
|
}, {
|
|
87
92
|
number: number;
|
|
88
93
|
title: string;
|
|
@@ -94,6 +99,7 @@ export declare const IssueSchema: z.ZodObject<{
|
|
|
94
99
|
status?: "unassigned" | "initialWaiting" | "waiting" | "ready" | undefined;
|
|
95
100
|
priority?: "Critical" | "High" | "Medium" | "Low" | "Minimal" | undefined;
|
|
96
101
|
body?: string | undefined;
|
|
102
|
+
isPullRequest?: boolean | undefined;
|
|
97
103
|
}>;
|
|
98
104
|
export type Issue = z.infer<typeof IssueSchema>;
|
|
99
105
|
export declare const CreateIssueParamsSchema: z.ZodObject<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issue.schema.d.ts","sourceRoot":"","sources":["../../src/types/issue.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"issue.schema.d.ts","sourceRoot":"","sources":["../../src/types/issue.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwB5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAG5D,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAetB,CAAC;AACH,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAGhD,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;EAMlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAGxE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;EAK7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
|
|
@@ -17,6 +17,10 @@ export const GitHubIssueSchema = z.object({
|
|
|
17
17
|
name: z.string(),
|
|
18
18
|
color: z.string(),
|
|
19
19
|
})),
|
|
20
|
+
// Present (an object) only when the "issue" is actually a pull request —
|
|
21
|
+
// the GitHub issues endpoint returns PRs too. Used to reject `--issue <n>`
|
|
22
|
+
// where <n> is a PR. Optional/unknown so normal issues still parse.
|
|
23
|
+
pull_request: z.unknown().optional(),
|
|
20
24
|
});
|
|
21
25
|
// Internal Issue representation
|
|
22
26
|
export const IssueSchema = z.object({
|
|
@@ -30,6 +34,10 @@ export const IssueSchema = z.object({
|
|
|
30
34
|
assignees: z.array(z.string()),
|
|
31
35
|
priority: PrioritySchema.optional(),
|
|
32
36
|
status: IssueStatusSchema.optional(),
|
|
37
|
+
// True when the underlying GitHub "issue" is actually a pull request
|
|
38
|
+
// (the issues endpoint returns both). Set from `pull_request` on the API
|
|
39
|
+
// payload; used to reject `--issue <n>` where <n> is a PR.
|
|
40
|
+
isPullRequest: z.boolean().optional(),
|
|
33
41
|
});
|
|
34
42
|
// Create issue params
|
|
35
43
|
export const CreateIssueParamsSchema = z.object({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issue.schema.js","sourceRoot":"","sources":["../../src/types/issue.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvE,wBAAwB;AACxB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC1B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,SAAS,EAAE,CAAC,CAAC,KAAK,CAChB,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;KACxC,CAAC,CACH;IACD,MAAM,EAAE,CAAC,CAAC,KAAK,CACb,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;KAClB,CAAC,CACH;
|
|
1
|
+
{"version":3,"file":"issue.schema.js","sourceRoot":"","sources":["../../src/types/issue.schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,19 +9,45 @@ export declare const PullRequestSchema: z.ZodObject<{
|
|
|
9
9
|
head: z.ZodObject<{
|
|
10
10
|
ref: z.ZodString;
|
|
11
11
|
sha: z.ZodString;
|
|
12
|
+
repo: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
13
|
+
full_name: z.ZodString;
|
|
14
|
+
}, "strip", z.ZodTypeAny, {
|
|
15
|
+
full_name: string;
|
|
16
|
+
}, {
|
|
17
|
+
full_name: string;
|
|
18
|
+
}>>>;
|
|
12
19
|
}, "strip", z.ZodTypeAny, {
|
|
13
20
|
ref: string;
|
|
14
21
|
sha: string;
|
|
22
|
+
repo?: {
|
|
23
|
+
full_name: string;
|
|
24
|
+
} | null | undefined;
|
|
15
25
|
}, {
|
|
16
26
|
ref: string;
|
|
17
27
|
sha: string;
|
|
28
|
+
repo?: {
|
|
29
|
+
full_name: string;
|
|
30
|
+
} | null | undefined;
|
|
18
31
|
}>;
|
|
19
32
|
base: z.ZodObject<{
|
|
20
33
|
ref: z.ZodString;
|
|
34
|
+
repo: z.ZodOptional<z.ZodObject<{
|
|
35
|
+
full_name: z.ZodString;
|
|
36
|
+
}, "strip", z.ZodTypeAny, {
|
|
37
|
+
full_name: string;
|
|
38
|
+
}, {
|
|
39
|
+
full_name: string;
|
|
40
|
+
}>>;
|
|
21
41
|
}, "strip", z.ZodTypeAny, {
|
|
22
42
|
ref: string;
|
|
43
|
+
repo?: {
|
|
44
|
+
full_name: string;
|
|
45
|
+
} | undefined;
|
|
23
46
|
}, {
|
|
24
47
|
ref: string;
|
|
48
|
+
repo?: {
|
|
49
|
+
full_name: string;
|
|
50
|
+
} | undefined;
|
|
25
51
|
}>;
|
|
26
52
|
created_at: z.ZodString;
|
|
27
53
|
updated_at: z.ZodString;
|
|
@@ -45,9 +71,15 @@ export declare const PullRequestSchema: z.ZodObject<{
|
|
|
45
71
|
head: {
|
|
46
72
|
ref: string;
|
|
47
73
|
sha: string;
|
|
74
|
+
repo?: {
|
|
75
|
+
full_name: string;
|
|
76
|
+
} | null | undefined;
|
|
48
77
|
};
|
|
49
78
|
base: {
|
|
50
79
|
ref: string;
|
|
80
|
+
repo?: {
|
|
81
|
+
full_name: string;
|
|
82
|
+
} | undefined;
|
|
51
83
|
};
|
|
52
84
|
merged_at: string | null;
|
|
53
85
|
user: {
|
|
@@ -66,9 +98,15 @@ export declare const PullRequestSchema: z.ZodObject<{
|
|
|
66
98
|
head: {
|
|
67
99
|
ref: string;
|
|
68
100
|
sha: string;
|
|
101
|
+
repo?: {
|
|
102
|
+
full_name: string;
|
|
103
|
+
} | null | undefined;
|
|
69
104
|
};
|
|
70
105
|
base: {
|
|
71
106
|
ref: string;
|
|
107
|
+
repo?: {
|
|
108
|
+
full_name: string;
|
|
109
|
+
} | undefined;
|
|
72
110
|
};
|
|
73
111
|
merged_at: string | null;
|
|
74
112
|
user: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pr.schema.d.ts","sourceRoot":"","sources":["../../src/types/pr.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"pr.schema.d.ts","sourceRoot":"","sources":["../../src/types/pr.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4B5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAG5D,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;EAK7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAG9D,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;EAM1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
|
package/dist/types/pr.schema.js
CHANGED
|
@@ -10,9 +10,16 @@ export const PullRequestSchema = z.object({
|
|
|
10
10
|
head: z.object({
|
|
11
11
|
ref: z.string(), // branch name
|
|
12
12
|
sha: z.string(),
|
|
13
|
+
// Repository the head branch lives in. `null` when the source fork was
|
|
14
|
+
// deleted. Optional so existing fixtures (which omit it) still parse. Used
|
|
15
|
+
// to detect fork PRs: head.repo.full_name !== base.repo.full_name.
|
|
16
|
+
repo: z.object({ full_name: z.string() }).nullable().optional(),
|
|
13
17
|
}),
|
|
14
18
|
base: z.object({
|
|
15
19
|
ref: z.string(),
|
|
20
|
+
// Repository the base branch lives in (always this repo for a non-fork
|
|
21
|
+
// PR). Optional so existing fixtures still parse.
|
|
22
|
+
repo: z.object({ full_name: z.string() }).optional(),
|
|
16
23
|
}),
|
|
17
24
|
created_at: z.string(),
|
|
18
25
|
updated_at: z.string(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pr.schema.js","sourceRoot":"","sources":["../../src/types/pr.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,sBAAsB;AACtB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC3C,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACb,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,cAAc;QAC/B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"pr.schema.js","sourceRoot":"","sources":["../../src/types/pr.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,sBAAsB;AACtB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC3C,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACb,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,cAAc;QAC/B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;QACf,uEAAuE;QACvE,2EAA2E;QAC3E,mEAAmE;QACnE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;KAChE,CAAC;IACF,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACb,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;QACf,uEAAuE;QACvE,kDAAkD;QAClD,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;KACrD,CAAC;IACF,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC5C,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACb,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;KAClB,CAAC;CACH,CAAC,CAAC;AAGH,gBAAgB;AAChB,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACpE,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACvC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAC;AAGH,aAAa;AACb,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE;IACnD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC7E,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC9C,CAAC,CAAC"}
|
|
@@ -20,4 +20,20 @@
|
|
|
20
20
|
* mapping directory by the repo directory's basename)
|
|
21
21
|
*/
|
|
22
22
|
export declare function readClientSessionId(branchName: string, projectRoot?: string): string | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* Return the Claude Code session id recorded by the hook for a chat-scoped
|
|
25
|
+
* backlog init (`hula script backlog-init -- <key>`), or undefined when none
|
|
26
|
+
* was captured (hook not registered, capture race lost, or malformed file).
|
|
27
|
+
* Never throws — provenance capture is best-effort and must not block.
|
|
28
|
+
*
|
|
29
|
+
* Reads `$HOME/.hublaunch-sessions/<repo-dir-name>/<key>-backlog.json`, the
|
|
30
|
+
* companion file written by the backlog marker family in session-hook.ts.
|
|
31
|
+
* No branch sanitization is needed: `key` is already constrained to
|
|
32
|
+
* `/^bl-[a-z0-9]{6,12}$/` by backlog-init before this is ever called.
|
|
33
|
+
*
|
|
34
|
+
* @param key - the `bl-...` backlog key
|
|
35
|
+
* @param projectRoot - consumer repo root (defaults to cwd; the hook keys the
|
|
36
|
+
* mapping directory by the repo directory's basename)
|
|
37
|
+
*/
|
|
38
|
+
export declare function readBacklogSessionId(key: string, projectRoot?: string): string | undefined;
|
|
23
39
|
//# sourceMappingURL=client-session.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-session.d.ts","sourceRoot":"","sources":["../../src/utils/client-session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAWH;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,WAAW,GAAE,MAAsB,GAClC,MAAM,GAAG,SAAS,CAmBpB"}
|
|
1
|
+
{"version":3,"file":"client-session.d.ts","sourceRoot":"","sources":["../../src/utils/client-session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAWH;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,WAAW,GAAE,MAAsB,GAClC,MAAM,GAAG,SAAS,CAmBpB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,EACX,WAAW,GAAE,MAAsB,GAClC,MAAM,GAAG,SAAS,CAmBpB"}
|
|
@@ -40,4 +40,33 @@ export function readClientSessionId(branchName, projectRoot = process.cwd()) {
|
|
|
40
40
|
return undefined;
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Return the Claude Code session id recorded by the hook for a chat-scoped
|
|
45
|
+
* backlog init (`hula script backlog-init -- <key>`), or undefined when none
|
|
46
|
+
* was captured (hook not registered, capture race lost, or malformed file).
|
|
47
|
+
* Never throws — provenance capture is best-effort and must not block.
|
|
48
|
+
*
|
|
49
|
+
* Reads `$HOME/.hublaunch-sessions/<repo-dir-name>/<key>-backlog.json`, the
|
|
50
|
+
* companion file written by the backlog marker family in session-hook.ts.
|
|
51
|
+
* No branch sanitization is needed: `key` is already constrained to
|
|
52
|
+
* `/^bl-[a-z0-9]{6,12}$/` by backlog-init before this is ever called.
|
|
53
|
+
*
|
|
54
|
+
* @param key - the `bl-...` backlog key
|
|
55
|
+
* @param projectRoot - consumer repo root (defaults to cwd; the hook keys the
|
|
56
|
+
* mapping directory by the repo directory's basename)
|
|
57
|
+
*/
|
|
58
|
+
export function readBacklogSessionId(key, projectRoot = process.cwd()) {
|
|
59
|
+
try {
|
|
60
|
+
const mappingPath = join(homedir(), '.hublaunch-sessions', basename(projectRoot), `${key}-backlog.json`);
|
|
61
|
+
if (!existsSync(mappingPath))
|
|
62
|
+
return undefined;
|
|
63
|
+
const parsed = JSON.parse(readFileSync(mappingPath, 'utf-8'));
|
|
64
|
+
return typeof parsed.sessionId === 'string' && parsed.sessionId
|
|
65
|
+
? parsed.sessionId
|
|
66
|
+
: undefined;
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
43
72
|
//# sourceMappingURL=client-session.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-session.js","sourceRoot":"","sources":["../../src/utils/client-session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEtC,sFAAsF;AACtF,SAAS,cAAc,CAAC,MAAc;IACpC,OAAO,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACrE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CACjC,UAAkB,EAClB,cAAsB,OAAO,CAAC,GAAG,EAAE;IAEnC,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CACtB,OAAO,EAAE,EACT,qBAAqB,EACrB,QAAQ,CAAC,WAAW,CAAC,EACrB,GAAG,cAAc,CAAC,UAAU,CAAC,OAAO,CACrC,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;YAAE,OAAO,SAAS,CAAC;QAE/C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAE3D,CAAC;QACF,OAAO,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS;YAC7D,CAAC,CAAC,MAAM,CAAC,SAAS;YAClB,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"client-session.js","sourceRoot":"","sources":["../../src/utils/client-session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEtC,sFAAsF;AACtF,SAAS,cAAc,CAAC,MAAc;IACpC,OAAO,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACrE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CACjC,UAAkB,EAClB,cAAsB,OAAO,CAAC,GAAG,EAAE;IAEnC,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CACtB,OAAO,EAAE,EACT,qBAAqB,EACrB,QAAQ,CAAC,WAAW,CAAC,EACrB,GAAG,cAAc,CAAC,UAAU,CAAC,OAAO,CACrC,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;YAAE,OAAO,SAAS,CAAC;QAE/C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAE3D,CAAC;QACF,OAAO,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS;YAC7D,CAAC,CAAC,MAAM,CAAC,SAAS;YAClB,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,oBAAoB,CAClC,GAAW,EACX,cAAsB,OAAO,CAAC,GAAG,EAAE;IAEnC,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CACtB,OAAO,EAAE,EACT,qBAAqB,EACrB,QAAQ,CAAC,WAAW,CAAC,EACrB,GAAG,GAAG,eAAe,CACtB,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;YAAE,OAAO,SAAS,CAAC;QAE/C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAE3D,CAAC;QACF,OAAO,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS;YAC7D,CAAC,CAAC,MAAM,CAAC,SAAS;YAClB,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-repo sandbox profile: which prebuilt sandbox image the server launches a
|
|
3
|
+
* task in. Mirrors hula-server's `SandboxProfile` (services/queue/sandbox-profile.ts).
|
|
4
|
+
* Clients send only the `type` enum (plus optional `jdk`); the server maps it to
|
|
5
|
+
* an image, so an unknown type is a 400 there.
|
|
6
|
+
*
|
|
7
|
+
* - `base`: Node, Python 3.12, PHP 8.3 (the default; omitted from requests).
|
|
8
|
+
* - `android`: adds JDK 17 & 21, the Android SDK, Ruby 3.3 + fastlane.
|
|
9
|
+
*/
|
|
10
|
+
export type SandboxProfileType = 'base' | 'android';
|
|
11
|
+
export interface SandboxProfile {
|
|
12
|
+
type: SandboxProfileType;
|
|
13
|
+
/** JDK major version — android only. The sandbox defaults to 17 when absent. */
|
|
14
|
+
jdk?: 17 | 21;
|
|
15
|
+
}
|
|
16
|
+
export declare const SANDBOX_PROFILE_TYPES: readonly SandboxProfileType[];
|
|
17
|
+
export declare const SANDBOX_PROFILE_JDKS: readonly [17, 21];
|
|
18
|
+
/**
|
|
19
|
+
* Parse the `--sandbox-profile` flag value: `base`, `android`, `android:17`, or
|
|
20
|
+
* `android:21`. Throws with a user-facing message on anything else.
|
|
21
|
+
*/
|
|
22
|
+
export declare function parseSandboxProfileFlag(value: string): SandboxProfile;
|
|
23
|
+
/**
|
|
24
|
+
* Resolve the effective profile: the `--sandbox-profile` flag wins, then the
|
|
25
|
+
* repo config's `sandboxProfile`, then `base`. Returns an `error` (never throws)
|
|
26
|
+
* so callers can apply their own exit/group-mode failure handling.
|
|
27
|
+
*/
|
|
28
|
+
export declare function resolveSandboxProfile(flag: string | undefined, configProfile: SandboxProfile | undefined): {
|
|
29
|
+
profile: SandboxProfile;
|
|
30
|
+
error?: undefined;
|
|
31
|
+
} | {
|
|
32
|
+
profile?: undefined;
|
|
33
|
+
error: string;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* The `sandboxProfile` value to put on a request body, or `undefined` for
|
|
37
|
+
* `base` — the server default — so base launches keep byte-identical bodies and
|
|
38
|
+
* older servers never see the field.
|
|
39
|
+
*/
|
|
40
|
+
export declare function sandboxProfileForRequest(profile: SandboxProfile | undefined): SandboxProfile | undefined;
|
|
41
|
+
/** Human-readable label, e.g. `android (JDK 21)`. */
|
|
42
|
+
export declare function describeSandboxProfile(profile: SandboxProfile): string;
|
|
43
|
+
export declare function detectAndroidProject(repoRoot: string): boolean;
|
|
44
|
+
//# sourceMappingURL=sandbox-profile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandbox-profile.d.ts","sourceRoot":"","sources":["../../src/utils/sandbox-profile.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,SAAS,CAAC;AAEpD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,kBAAkB,CAAC;IACzB,gFAAgF;IAChF,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC;CACf;AAED,eAAO,MAAM,qBAAqB,EAAE,SAAS,kBAAkB,EAG9D,CAAC;AACF,eAAO,MAAM,oBAAoB,mBAAoB,CAAC;AAEtD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAiBrE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,aAAa,EAAE,cAAc,GAAG,SAAS,GACxC;IAAE,OAAO,EAAE,cAAc,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,OAAO,CAAC,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CASzF;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,cAAc,GAAG,SAAS,GAClC,cAAc,GAAG,SAAS,CAG5B;AAED,qDAAqD;AACrD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAItE;AAiBD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE9D"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { existsSync } from 'fs';
|
|
2
|
+
import { join } from 'path';
|
|
3
|
+
export const SANDBOX_PROFILE_TYPES = [
|
|
4
|
+
'base',
|
|
5
|
+
'android',
|
|
6
|
+
];
|
|
7
|
+
export const SANDBOX_PROFILE_JDKS = [17, 21];
|
|
8
|
+
/**
|
|
9
|
+
* Parse the `--sandbox-profile` flag value: `base`, `android`, `android:17`, or
|
|
10
|
+
* `android:21`. Throws with a user-facing message on anything else.
|
|
11
|
+
*/
|
|
12
|
+
export function parseSandboxProfileFlag(value) {
|
|
13
|
+
const [rawType, rawJdk, ...rest] = value.trim().toLowerCase().split(':');
|
|
14
|
+
if (rest.length > 0 || !SANDBOX_PROFILE_TYPES.includes(rawType)) {
|
|
15
|
+
throw new Error(`--sandbox-profile must be one of: base, android, android:17, android:21 (got "${value}")`);
|
|
16
|
+
}
|
|
17
|
+
const type = rawType;
|
|
18
|
+
if (rawJdk === undefined)
|
|
19
|
+
return { type };
|
|
20
|
+
if (type !== 'android') {
|
|
21
|
+
throw new Error('--sandbox-profile: a JDK version is only valid with "android"');
|
|
22
|
+
}
|
|
23
|
+
const jdk = Number(rawJdk);
|
|
24
|
+
if (jdk !== 17 && jdk !== 21) {
|
|
25
|
+
throw new Error('--sandbox-profile: JDK must be 17 or 21');
|
|
26
|
+
}
|
|
27
|
+
return { type, jdk };
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Resolve the effective profile: the `--sandbox-profile` flag wins, then the
|
|
31
|
+
* repo config's `sandboxProfile`, then `base`. Returns an `error` (never throws)
|
|
32
|
+
* so callers can apply their own exit/group-mode failure handling.
|
|
33
|
+
*/
|
|
34
|
+
export function resolveSandboxProfile(flag, configProfile) {
|
|
35
|
+
if (flag !== undefined) {
|
|
36
|
+
try {
|
|
37
|
+
return { profile: parseSandboxProfileFlag(flag) };
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
return { error: error instanceof Error ? error.message : String(error) };
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return { profile: configProfile ?? { type: 'base' } };
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* The `sandboxProfile` value to put on a request body, or `undefined` for
|
|
47
|
+
* `base` — the server default — so base launches keep byte-identical bodies and
|
|
48
|
+
* older servers never see the field.
|
|
49
|
+
*/
|
|
50
|
+
export function sandboxProfileForRequest(profile) {
|
|
51
|
+
if (!profile || profile.type === 'base')
|
|
52
|
+
return undefined;
|
|
53
|
+
return profile.jdk !== undefined ? { type: profile.type, jdk: profile.jdk } : { type: profile.type };
|
|
54
|
+
}
|
|
55
|
+
/** Human-readable label, e.g. `android (JDK 21)`. */
|
|
56
|
+
export function describeSandboxProfile(profile) {
|
|
57
|
+
return profile.type === 'android'
|
|
58
|
+
? `android (JDK ${profile.jdk ?? 17})`
|
|
59
|
+
: profile.type;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Files whose presence marks a repo as a native Android / React Native project.
|
|
63
|
+
* Used only to preselect the `hula init` answer — a greenfield repo has none of
|
|
64
|
+
* these, so the user's choice is what decides there.
|
|
65
|
+
*/
|
|
66
|
+
const ANDROID_MARKERS = [
|
|
67
|
+
'android/build.gradle',
|
|
68
|
+
'android/build.gradle.kts',
|
|
69
|
+
'android/settings.gradle',
|
|
70
|
+
'android/settings.gradle.kts',
|
|
71
|
+
'settings.gradle',
|
|
72
|
+
'settings.gradle.kts',
|
|
73
|
+
'gradlew',
|
|
74
|
+
];
|
|
75
|
+
export function detectAndroidProject(repoRoot) {
|
|
76
|
+
return ANDROID_MARKERS.some((marker) => existsSync(join(repoRoot, marker)));
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=sandbox-profile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandbox-profile.js","sourceRoot":"","sources":["../../src/utils/sandbox-profile.ts"],"names":[],"mappings":"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"}
|