claudius-core 0.5.0 → 0.7.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/.claude/agents/worker.md +239 -0
- package/.claude/hooks/hooks.json +7 -7
- package/.claude-plugin/marketplace.json +2 -2
- package/dist/cli/studio.d.ts.map +1 -1
- package/dist/cli/studio.js +6 -2
- package/dist/cli/studio.js.map +1 -1
- package/dist/daemon/install.d.ts +10 -2
- package/dist/daemon/install.d.ts.map +1 -1
- package/dist/daemon/install.js +57 -30
- package/dist/daemon/install.js.map +1 -1
- package/dist/daemon/pulse.d.ts.map +1 -1
- package/dist/daemon/pulse.js +6 -2
- package/dist/daemon/pulse.js.map +1 -1
- package/dist/index.js +88 -6
- package/dist/index.js.map +1 -1
- package/dist/studio/assets/{_basePickBy-DAOuQd_U.js → _basePickBy-C2hR16gh.js} +1 -1
- package/dist/studio/assets/{_baseUniq-nwA3_tYl.js → _baseUniq-CFzVbudk.js} +1 -1
- package/dist/studio/assets/{arc-uDujf1LK.js → arc-BZOL2XPO.js} +1 -1
- package/dist/studio/assets/{architectureDiagram-VXUJARFQ-D_E_zXYM.js → architectureDiagram-VXUJARFQ-BjC7OnR9.js} +1 -1
- package/dist/studio/assets/{blockDiagram-VD42YOAC-DiaqWuPa.js → blockDiagram-VD42YOAC-NRcH-027.js} +1 -1
- package/dist/studio/assets/{c4Diagram-YG6GDRKO-YZnL58OY.js → c4Diagram-YG6GDRKO-nWbiNSm7.js} +1 -1
- package/dist/studio/assets/channel-DnvatLGW.js +1 -0
- package/dist/studio/assets/{chunk-4BX2VUAB-CXKqFp9J.js → chunk-4BX2VUAB-CTqI7hrK.js} +1 -1
- package/dist/studio/assets/{chunk-55IACEB6-BzXZQvl6.js → chunk-55IACEB6-BnE-lAfH.js} +1 -1
- package/dist/studio/assets/{chunk-B4BG7PRW-D3wB-c7Z.js → chunk-B4BG7PRW-BHJ9qq40.js} +1 -1
- package/dist/studio/assets/{chunk-DI55MBZ5-CEgD3MsH.js → chunk-DI55MBZ5-DlvIlj-V.js} +1 -1
- package/dist/studio/assets/{chunk-FMBD7UC4-DvXfwtlZ.js → chunk-FMBD7UC4-p91uHAWQ.js} +1 -1
- package/dist/studio/assets/{chunk-QN33PNHL-hBU3naD2.js → chunk-QN33PNHL-BVroAoP7.js} +1 -1
- package/dist/studio/assets/{chunk-QZHKN3VN-BZPrpzn4.js → chunk-QZHKN3VN-Cczh8Tn2.js} +1 -1
- package/dist/studio/assets/{chunk-TZMSLE5B-D07xmR6z.js → chunk-TZMSLE5B-Ccqd0ElF.js} +1 -1
- package/dist/studio/assets/classDiagram-2ON5EDUG-BUjVTtF6.js +1 -0
- package/dist/studio/assets/classDiagram-v2-WZHVMYZB-BUjVTtF6.js +1 -0
- package/dist/studio/assets/clone-CMK9MsTM.js +1 -0
- package/dist/studio/assets/{cose-bilkent-S5V4N54A-9GJL7-qP.js → cose-bilkent-S5V4N54A-DtU1Go-z.js} +1 -1
- package/dist/studio/assets/{dagre-6UL2VRFP-DNQUvaBw.js → dagre-6UL2VRFP-CikLH6aA.js} +1 -1
- package/dist/studio/assets/{diagram-PSM6KHXK-DprGidRB.js → diagram-PSM6KHXK-GaMs4LtO.js} +1 -1
- package/dist/studio/assets/{diagram-QEK2KX5R-CJDapLWy.js → diagram-QEK2KX5R-Df0Evsxd.js} +1 -1
- package/dist/studio/assets/{diagram-S2PKOQOG-BDb_ZSa5.js → diagram-S2PKOQOG-DES3wxxG.js} +1 -1
- package/dist/studio/assets/{erDiagram-Q2GNP2WA-DDjuGTFT.js → erDiagram-Q2GNP2WA-BXw_Cux3.js} +1 -1
- package/dist/studio/assets/{flowDiagram-NV44I4VS-ZFrL-N3I.js → flowDiagram-NV44I4VS-hPJHzKlj.js} +1 -1
- package/dist/studio/assets/{ganttDiagram-JELNMOA3-gpeBUsNl.js → ganttDiagram-JELNMOA3-aO4UETri.js} +1 -1
- package/dist/studio/assets/{gitGraphDiagram-V2S2FVAM-CuVIbGEV.js → gitGraphDiagram-V2S2FVAM-mUX5hI0_.js} +1 -1
- package/dist/studio/assets/{graph-DibLK-AH.js → graph-BWcTyBhp.js} +1 -1
- package/dist/studio/assets/{index-CkTZrRvl.js → index-9in4DYSh.js} +2 -2
- package/dist/studio/assets/{infoDiagram-HS3SLOUP-BRSV5_41.js → infoDiagram-HS3SLOUP-CnweOvjR.js} +1 -1
- package/dist/studio/assets/{journeyDiagram-XKPGCS4Q-BXD6VLs4.js → journeyDiagram-XKPGCS4Q-D41e00K-.js} +1 -1
- package/dist/studio/assets/{kanban-definition-3W4ZIXB7-BsahUVbU.js → kanban-definition-3W4ZIXB7-fT_1gQy1.js} +1 -1
- package/dist/studio/assets/{layout-BiztazVO.js → layout-NwignBdr.js} +1 -1
- package/dist/studio/assets/{linear-CACjeyHq.js → linear-Bkk5Jj9D.js} +1 -1
- package/dist/studio/assets/{mermaid.core-C_JSJsmu.js → mermaid.core-B7Bz7MjD.js} +4 -4
- package/dist/studio/assets/{mindmap-definition-VGOIOE7T-C7DKq0Qo.js → mindmap-definition-VGOIOE7T-CGYqLxuS.js} +1 -1
- package/dist/studio/assets/{pieDiagram-ADFJNKIX-V3MNYWUB.js → pieDiagram-ADFJNKIX-CviES2rp.js} +1 -1
- package/dist/studio/assets/{quadrantDiagram-AYHSOK5B-BujoECiF.js → quadrantDiagram-AYHSOK5B-DqwSyoyP.js} +1 -1
- package/dist/studio/assets/{requirementDiagram-UZGBJVZJ-BmW5gBof.js → requirementDiagram-UZGBJVZJ-B6lzB--M.js} +1 -1
- package/dist/studio/assets/{sankeyDiagram-TZEHDZUN-C4EwtO5Y.js → sankeyDiagram-TZEHDZUN-D_l3Uq8H.js} +1 -1
- package/dist/studio/assets/{sequenceDiagram-WL72ISMW-CMmyX6xv.js → sequenceDiagram-WL72ISMW-BVrKJhPn.js} +1 -1
- package/dist/studio/assets/{stateDiagram-FKZM4ZOC-RipySKyS.js → stateDiagram-FKZM4ZOC-BfSr-tlH.js} +1 -1
- package/dist/studio/assets/stateDiagram-v2-4FDKWEC3-DezXOCpS.js +1 -0
- package/dist/studio/assets/{timeline-definition-IT6M3QCI-CzZtQvXl.js → timeline-definition-IT6M3QCI-8Hm_y6ko.js} +1 -1
- package/dist/studio/assets/{treemap-GDKQZRPO-JZVXiD79.js → treemap-GDKQZRPO-Dp1ifWuA.js} +1 -1
- package/dist/studio/assets/{xychartDiagram-PRI3JC2R-Vo68V-de.js → xychartDiagram-PRI3JC2R-DER_90BN.js} +1 -1
- package/dist/studio/index.html +1 -1
- package/global/agents/sleepless.md +139 -0
- package/global/templates/jobs/sleepless.md +15 -0
- package/package.json +1 -1
- package/.claudius/jobs/pulse.md +0 -15
- package/dist/studio/assets/channel-BX7DgAEO.js +0 -1
- package/dist/studio/assets/classDiagram-2ON5EDUG-BpvofyN6.js +0 -1
- package/dist/studio/assets/classDiagram-v2-WZHVMYZB-BpvofyN6.js +0 -1
- package/dist/studio/assets/clone-BVw_nM2b.js +0 -1
- package/dist/studio/assets/stateDiagram-v2-4FDKWEC3-D7ICAwgM.js +0 -1
- package/global/templates/jobs/global-pulse.md +0 -17
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: worker
|
|
3
|
+
description: Per-repo headless worker. Spawned by the sleepless global orchestrator. One cycle per invocation — merges open PRs, picks top-3 ready issues (skipping codex-labeled), fires developer agents in parallel, reviews and merges.
|
|
4
|
+
model: sonnet
|
|
5
|
+
memory: user
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Worker — Per-Repo Headless Worker
|
|
9
|
+
|
|
10
|
+
You are spawned by the global sleepless orchestrator to do one cycle of work in this repo.
|
|
11
|
+
Merge open PRs, pick up to 3 ready issues, develop in parallel, review, merge, then exit.
|
|
12
|
+
|
|
13
|
+
## Pre-flight: Global Halt Check
|
|
14
|
+
|
|
15
|
+
Before doing anything else, check for the global halt file. The sleepless agent passes the
|
|
16
|
+
global dir path in the prompt — look for `<global-dir>/.claudius/HALT`. If it exists, exit
|
|
17
|
+
immediately with `WORKER_HALTED`.
|
|
18
|
+
|
|
19
|
+
If the global dir path was not provided, check `../.claudius/HALT` (the parent dir convention
|
|
20
|
+
for repos managed from a sibling-level global orchestrator).
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
# Example (adapt path from prompt):
|
|
24
|
+
test -f ../.claudius/HALT && echo "HALTED" && exit 0 || true
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Startup: Recover Stale Claims
|
|
28
|
+
|
|
29
|
+
Check for issues labeled `in-progress` (with OR without the `claude` label) that have no open
|
|
30
|
+
PR — stale claims from a crashed prior run. Restore them:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
gh issue list --label in-progress --state open --json number,title --limit 20
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
For each in-progress issue, check if an open PR references it:
|
|
37
|
+
```bash
|
|
38
|
+
gh pr list --search "Closes #<N> in:body" --state open --json number --limit 1
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
If no open PR found → stale claim → restore to ready:
|
|
42
|
+
```bash
|
|
43
|
+
gh issue edit <N> --remove-label "in-progress,claude" --add-label "ready"
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Guard Checks
|
|
47
|
+
|
|
48
|
+
Exit `WORKER_OK` immediately if any fail:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
date
|
|
52
|
+
cat .claudius/config.yaml # read activeHours, budgetCapUsd, maxIssuesPerDay, goals
|
|
53
|
+
tail -20 .claudius/job-runs.jsonl
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
- Outside `activeHours` (respect timezone in config) → exit `WORKER_OK`
|
|
57
|
+
- Last 3 job-runs all `success:false` → exit `WORKER_OK` (avoid compounding failures)
|
|
58
|
+
- Budget already > 80% of `budgetCapUsd` → exit `WORKER_OK`
|
|
59
|
+
|
|
60
|
+
## Step 1: Merge Open PRs
|
|
61
|
+
|
|
62
|
+
Before picking new work, merge any open XS/S/M PRs with passing CI:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
gh pr list --json number,title,headRefName,statusCheckRollup --limit 20
|
|
66
|
+
bash .claude/scripts/merge-pr.sh <N>
|
|
67
|
+
gh issue close <issue-N> --comment "Closed by PR #<N>."
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Step 2: Pick Top-3 Issues
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
gh issue list --label ready --state open --json number,title,labels,body --limit 10
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
**Filter out any issue carrying the `codex` label** — those are Codex territory. Do not claim them.
|
|
77
|
+
|
|
78
|
+
If no ready issues after filtering → exit `WORKER_OK`.
|
|
79
|
+
|
|
80
|
+
Select up to 3 highest-priority `ready` issues (without `codex` label) aligned with configured
|
|
81
|
+
`goals`. Prefer smaller scope.
|
|
82
|
+
|
|
83
|
+
Issues are filtered and scored with dependency awareness:
|
|
84
|
+
- **Codex issues excluded** — any issue with the `codex` label is skipped entirely
|
|
85
|
+
- **Blocked issues excluded** — any issue with open `blocked-by` relationships is removed from
|
|
86
|
+
candidates
|
|
87
|
+
- **Cluster momentum** — issues in partially-complete clusters get +15 priority boost
|
|
88
|
+
- **Standard scoring** — label priorities, scope size, goal alignment
|
|
89
|
+
|
|
90
|
+
**Claim atomically** (add both `in-progress` and `claude` labels):
|
|
91
|
+
```bash
|
|
92
|
+
gh issue edit <N> --add-label "in-progress,claude" --remove-label "ready"
|
|
93
|
+
gh issue view <N> # read full body + acceptance criteria
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Step 3: Develop in Parallel
|
|
97
|
+
|
|
98
|
+
Each developer runs in its own isolated worktree. Do NOT derive or provide branch names.
|
|
99
|
+
|
|
100
|
+
Spawn one developer agent per issue using the `Agent` tool **concurrently**
|
|
101
|
+
(all in one tool call message).
|
|
102
|
+
|
|
103
|
+
For each issue, use `subagent_type: "developer"`. Each developer prompt must include:
|
|
104
|
+
- Full issue body and all acceptance criteria
|
|
105
|
+
- Issue number for commit message format (`type(scope): description (#N)`)
|
|
106
|
+
- Constraint: implement only what the issue asks, no scope creep
|
|
107
|
+
- Instruction: use your current branch (the worktree branch), do NOT create a new branch.
|
|
108
|
+
Implement, commit, push with `git push -u origin HEAD`, then report the branch name you
|
|
109
|
+
pushed. Do not create the PR (worker creates PRs).
|
|
110
|
+
|
|
111
|
+
Wait for all developer agents to complete before proceeding.
|
|
112
|
+
|
|
113
|
+
**On developer failure for an issue:**
|
|
114
|
+
```bash
|
|
115
|
+
gh issue edit <N> --remove-label "in-progress,claude" --add-label "ready"
|
|
116
|
+
gh issue comment <N> --body "Worker: developer failed. Restored to ready queue."
|
|
117
|
+
```
|
|
118
|
+
Remove it from the active set and continue with the rest.
|
|
119
|
+
|
|
120
|
+
## Step 4: Validate & Create PRs
|
|
121
|
+
|
|
122
|
+
For each successful developer result, **validate before creating the PR**.
|
|
123
|
+
|
|
124
|
+
**Pre-PR validation** — check the developer's branch in its worktree:
|
|
125
|
+
```bash
|
|
126
|
+
cd <worktree-path>
|
|
127
|
+
bun run lint 2>&1 | tail -5
|
|
128
|
+
bun run build 2>&1 | tail -5
|
|
129
|
+
```
|
|
130
|
+
If lint or build fails: re-spawn the developer with the errors and ask it to fix them.
|
|
131
|
+
Only create the PR once validation passes. Never create a PR with known lint/build failures.
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
gh pr create \
|
|
135
|
+
--head <branch-from-developer-output> \
|
|
136
|
+
--title "type(scope): description (#N)" \
|
|
137
|
+
--body "$(cat <<'EOF'
|
|
138
|
+
## Summary
|
|
139
|
+
- <bullet from developer output>
|
|
140
|
+
|
|
141
|
+
## Closes
|
|
142
|
+
Closes #N
|
|
143
|
+
|
|
144
|
+
## Test Plan
|
|
145
|
+
- [ ] <scenario>
|
|
146
|
+
EOF
|
|
147
|
+
)"
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
After each `gh pr create`, send a Slack notification (best-effort — never block on failure):
|
|
151
|
+
```bash
|
|
152
|
+
SLACK_CHANNEL=$(bun -e "
|
|
153
|
+
import { parse } from 'yaml';
|
|
154
|
+
import { readFileSync } from 'fs';
|
|
155
|
+
const c = parse(readFileSync('.claudius/config.yaml', 'utf8'));
|
|
156
|
+
process.stdout.write(c.slack?.channel ?? '');
|
|
157
|
+
" 2>/dev/null)
|
|
158
|
+
if [ -n "$SLACK_CHANNEL" ]; then
|
|
159
|
+
PR_TITLE=$(gh pr view $PR_NUMBER --json title --jq '.title')
|
|
160
|
+
PR_URL=$(gh pr view $PR_NUMBER --json url --jq '.url')
|
|
161
|
+
THREAD_REF=$(bun .claude/scripts/slack.ts send \
|
|
162
|
+
--channel "$SLACK_CHANNEL" \
|
|
163
|
+
--text "🔍 *PR #$PR_NUMBER ready for review* — $PR_TITLE $PR_URL") \
|
|
164
|
+
&& gh pr comment $PR_NUMBER --body "<!-- slack-thread: $THREAD_REF -->" \
|
|
165
|
+
|| true
|
|
166
|
+
fi
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
## Step 5: Review in Parallel
|
|
170
|
+
|
|
171
|
+
Spawn one reviewer agent per PR using the `Agent` tool **concurrently** (all in one message).
|
|
172
|
+
|
|
173
|
+
For each PR, use `subagent_type: "reviewer"`. Each reviewer prompt must include:
|
|
174
|
+
- PR number to review
|
|
175
|
+
- Issue number for AC verification
|
|
176
|
+
- Return structured verdict: `approve` / `request-changes` / `block`
|
|
177
|
+
|
|
178
|
+
Wait for all reviewer agents to complete.
|
|
179
|
+
|
|
180
|
+
**On `approve`:** proceed to merge (Step 6).
|
|
181
|
+
|
|
182
|
+
**On `request-changes`:** re-spawn the developer for that issue with reviewer feedback
|
|
183
|
+
(max 1 retry). After retry: push, update PR, re-spawn reviewer. If still `request-changes`
|
|
184
|
+
→ treat as `block`.
|
|
185
|
+
|
|
186
|
+
**On `block`:** restore labels, comment with reviewer's reason, skip to next.
|
|
187
|
+
```bash
|
|
188
|
+
gh issue edit <N> --remove-label "in-progress,claude" --add-label "ready"
|
|
189
|
+
gh issue comment <N> --body "Worker: reviewer blocked. Reason: <reason>."
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
## Step 6: Merge & Record
|
|
193
|
+
|
|
194
|
+
For each approved PR:
|
|
195
|
+
```bash
|
|
196
|
+
bash .claude/scripts/merge-pr.sh <PR-number>
|
|
197
|
+
gh issue close <N> --comment "Closed by PR #<M>."
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
After each merge, reply in the PR's Slack thread (best-effort):
|
|
201
|
+
```bash
|
|
202
|
+
THREAD_REF=$(gh pr view $PR_NUMBER --json comments \
|
|
203
|
+
--jq '[.comments[].body | select(startswith("<!-- slack-thread:"))] | first' \
|
|
204
|
+
| sed 's/<!-- slack-thread: //;s/ -->//')
|
|
205
|
+
if [ -n "$THREAD_REF" ] && [ "$THREAD_REF" != "null" ]; then
|
|
206
|
+
bun .claude/scripts/slack.ts reply \
|
|
207
|
+
--thread "$THREAD_REF" \
|
|
208
|
+
--text "✅ Merged PR #$PR_NUMBER" 2>/dev/null || true
|
|
209
|
+
fi
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
Append one line per merged issue to `.claude/memory/pulse.md` under `## Recent Build Outcomes`:
|
|
213
|
+
```
|
|
214
|
+
- 2026-03-03: built #N → PR#M merged (Xs)
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## Step 7: Cleanup
|
|
220
|
+
|
|
221
|
+
After all merges, remove stale agent sub-worktrees (best-effort):
|
|
222
|
+
```bash
|
|
223
|
+
git worktree list --porcelain | grep '^worktree' | grep 'agent-' | awk '{print $2}' | while read p; do
|
|
224
|
+
git worktree remove --force "$p" 2>/dev/null && echo "Removed $p" || true
|
|
225
|
+
done
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
Exit with `WORKER_OK`.
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## Headless Execution Notes
|
|
233
|
+
|
|
234
|
+
- Never use `EnterPlanMode`, `ExitPlanMode`, or `AskUserQuestion` — no human present
|
|
235
|
+
- Never provide branch names to developers — they run in isolated worktrees
|
|
236
|
+
- Skip any issue with the `codex` label — that's Codex territory
|
|
237
|
+
- Always restore both `in-progress` AND `claude` labels on failure/block
|
|
238
|
+
- Exit with `WORKER_OK` when the cycle completes (0 or up to 3 issues processed)
|
|
239
|
+
- On unrecoverable error per issue: restore labels, comment, continue — never abort the whole run
|
package/.claude/hooks/hooks.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"hooks": [
|
|
7
7
|
{
|
|
8
8
|
"type": "command",
|
|
9
|
-
"command": "npx tsx
|
|
9
|
+
"command": "npx tsx .claude/hooks/guardian.ts"
|
|
10
10
|
}
|
|
11
11
|
]
|
|
12
12
|
},
|
|
@@ -15,11 +15,11 @@
|
|
|
15
15
|
"hooks": [
|
|
16
16
|
{
|
|
17
17
|
"type": "command",
|
|
18
|
-
"command": "npx tsx
|
|
18
|
+
"command": "npx tsx .claude/hooks/guardian.ts"
|
|
19
19
|
},
|
|
20
20
|
{
|
|
21
21
|
"type": "command",
|
|
22
|
-
"command": "npx tsx
|
|
22
|
+
"command": "npx tsx .claude/hooks/worktree-path-guard.ts"
|
|
23
23
|
}
|
|
24
24
|
]
|
|
25
25
|
}
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"hooks": [
|
|
30
30
|
{
|
|
31
31
|
"type": "command",
|
|
32
|
-
"command": "npx tsx
|
|
32
|
+
"command": "npx tsx .claude/hooks/context-inject.ts"
|
|
33
33
|
}
|
|
34
34
|
]
|
|
35
35
|
}
|
|
@@ -39,11 +39,11 @@
|
|
|
39
39
|
"hooks": [
|
|
40
40
|
{
|
|
41
41
|
"type": "command",
|
|
42
|
-
"command": "npx tsx
|
|
42
|
+
"command": "npx tsx .claude/hooks/continue-or-stop.ts"
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
45
|
"type": "command",
|
|
46
|
-
"command": "npx tsx
|
|
46
|
+
"command": "npx tsx .claude/hooks/learner.ts",
|
|
47
47
|
"async": true
|
|
48
48
|
}
|
|
49
49
|
]
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"hooks": [
|
|
56
56
|
{
|
|
57
57
|
"type": "command",
|
|
58
|
-
"command": "npx tsx
|
|
58
|
+
"command": "npx tsx .claude/hooks/cost-watch.ts",
|
|
59
59
|
"async": true
|
|
60
60
|
}
|
|
61
61
|
]
|
|
@@ -21,10 +21,10 @@
|
|
|
21
21
|
"name": "claudius",
|
|
22
22
|
"source": "./",
|
|
23
23
|
"description": "Autonomous orchestration layer for Claude Code — agents, skills, hooks, and heartbeat daemon for round-the-clock development",
|
|
24
|
-
"version": "0.
|
|
24
|
+
"version": "0.7.0",
|
|
25
25
|
"strict": true,
|
|
26
26
|
"category": "development"
|
|
27
27
|
}
|
|
28
28
|
],
|
|
29
|
-
"version": "0.
|
|
29
|
+
"version": "0.7.0"
|
|
30
30
|
}
|
package/dist/cli/studio.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"studio.d.ts","sourceRoot":"","sources":["../../src/cli/studio.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,IAAI,IAAI,CAAC;CACb;AA4DD;;;GAGG;AACH,wBAAsB,iBAAiB,CACtC,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACtB,OAAO,CAAC,YAAY,CAAC,CA+EvB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"studio.d.ts","sourceRoot":"","sources":["../../src/cli/studio.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,IAAI,IAAI,CAAC;CACb;AA4DD;;;GAGG;AACH,wBAAsB,iBAAiB,CACtC,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACtB,OAAO,CAAC,YAAY,CAAC,CA+EvB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgF/D;AAED,wBAAgB,aAAa,IAAI,IAAI,CA2CpC;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAwC7D"}
|
package/dist/cli/studio.js
CHANGED
|
@@ -155,10 +155,14 @@ export async function cmdStudioUp(args) {
|
|
|
155
155
|
const port = handle.port;
|
|
156
156
|
// Try slim
|
|
157
157
|
const { isSlimInstalled, startSlimDomain } = await import("../daemon/slim.js");
|
|
158
|
-
const { projectSlug } = await import("../daemon/install.js");
|
|
159
158
|
let slimHandle = null;
|
|
160
159
|
let url = `http://localhost:${port}`;
|
|
161
|
-
const
|
|
160
|
+
const repoName = projectDir.replace(/\/+$/, "").split("/").pop() ?? "project";
|
|
161
|
+
const safeRepoName = repoName
|
|
162
|
+
.toLowerCase()
|
|
163
|
+
.replace(/[^a-z0-9]+/g, "-")
|
|
164
|
+
.replace(/^-|-$/g, "") || "project";
|
|
165
|
+
const domainName = `${safeRepoName}-studio`;
|
|
162
166
|
let domain = "";
|
|
163
167
|
if (config.studio?.slimEnabled !== false && isSlimInstalled()) {
|
|
164
168
|
slimHandle = startSlimDomain(domainName, port);
|
package/dist/cli/studio.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"studio.js","sourceRoot":"","sources":["../../src/cli/studio.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"studio.js","sourceRoot":"","sources":["../../src/cli/studio.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAO1C;;GAEG;AACH,SAAS,UAAU,CAAC,IAAY;IAC/B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC9B,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,oDAAoD;QAC/F,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;YAC7B,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB;IACzB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACtC,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE;YAClC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;YAC9B,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACvB,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACP,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;YAC7D,CAAC;QACF,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,IAAI,iBAAiB,GAAqD,IAAI,CAAC;AAE/E,KAAK,UAAU,qBAAqB,CAAC,IAAY;IAChD,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAErD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACtC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE;YACtF,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,KAAK;SACf,CAAC,CAAC;QAEH,iBAAiB,GAAG,KAAK,CAAC;QAE1B,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAE1B,4BAA4B;QAC5B,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACtC,UAAkB,EAClB,IAAwB;IAExB,IAAI,IAAY,CAAC;IACjB,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACjC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IAClB,CAAC;SAAM,CAAC;QACP,IAAI,GAAG,MAAM,iBAAiB,EAAE,CAAC;IAClC,CAAC;IAED,0BAA0B;IAC1B,MAAM,uBAAuB,GAAG,IAAI,CAAC;IACrC,IAAI,cAAkC,CAAC;IACvC,IAAI,CAAC;QACJ,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,uBAAuB,CAAC,CAAC;QACjE,IAAI,cAAc,EAAE,CAAC;YACpB,cAAc,GAAG,uBAAuB,CAAC;QAC1C,CAAC;aAAM,CAAC;YACP,MAAM,qBAAqB,CAAC,uBAAuB,CAAC,CAAC;YACrD,cAAc,GAAG,uBAAuB,CAAC;QAC1C,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,cAAc,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED,0DAA0D;IAC1D,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;IACtE,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;IACxE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACpD,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;IAEvE,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,UAAU,CAAC,CAAC;IAChD,OAAO,CAAC,KAAK,EAAE,CAAC;IAEhB,MAAM,GAAG,GAAG,eAAe,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;IAErE,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;IACzE,MAAM,iBAAiB,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IAErD,IAAI,iBAAiB,EAAE,CAAC;QACvB,GAAG,CAAC,GAAG,CACN,WAAW,EACX,WAAW,CAAC;YACX,IAAI,EAAE,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC;YACnC,kBAAkB,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE;SAChD,CAAC,CACF,CAAC;QACF,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;YACxB,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;YACjD,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;YACxD,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAC9C,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;YACD,OAAO,CAAC,CAAC,IAAI,CAAC,mDAAmD,EAAE,GAAG,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;IACJ,CAAC;SAAM,CAAC;QACP,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE;YAClB,OAAO,CAAC,CAAC,IAAI,CACZ,yHAAyH,EACzH,GAAG,CACH,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAEjD,MAAM,sBAAsB,GAAG,iBAAiB,CAAC,CAAC,2BAA2B;IAE7E,OAAO;QACN,IAAI;QACJ,IAAI;YACH,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,sBAAsB,EAAE,CAAC;gBAC5B,IAAI,CAAC;oBACJ,sBAAsB,CAAC,IAAI,EAAE,CAAC;gBAC/B,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YACX,CAAC;QACF,CAAC;KACD,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAc;IAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACjC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,uBAAuB,CAAC,CAAC;IAEhE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;QAC1E,OAAO;IACR,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAEtC,oBAAoB;IACpB,IAAI,OAA2B,CAAC;IAChC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;YAAE,OAAO,GAAG,MAAM,CAAC;IAC3D,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAE1C,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACtE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAEzB,WAAW;IACX,MAAM,EAAE,eAAe,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAE/E,IAAI,UAAU,GAAkD,IAAI,CAAC;IACrE,IAAI,GAAG,GAAG,oBAAoB,IAAI,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,SAAS,CAAC;IAC9E,MAAM,YAAY,GACjB,QAAQ;SACN,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC;IACtC,MAAM,UAAU,GAAG,GAAG,YAAY,SAAS,CAAC;IAC5C,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,KAAK,KAAK,IAAI,eAAe,EAAE,EAAE,CAAC;QAC/D,UAAU,GAAG,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC/C,IAAI,UAAU,EAAE,CAAC;YAChB,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;YACrB,MAAM,GAAG,UAAU,CAAC;QACrB,CAAC;IACF,CAAC;IAED,mBAAmB;IACnB,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,sBAAsB,CAAC,CAAC;IAC5D,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IAClD,aAAa,CACZ,OAAO,EACP,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAC7E,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,cAAc,UAAU,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,IAAI,CAAC,MAAM;QAAE,WAAW,CAAC,GAAG,CAAC,CAAC;IAE9B,MAAM,QAAQ,GAAG,GAAG,EAAE;QACrB,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACjD,UAAU,EAAE,IAAI,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,IAAI,CAAC;YACJ,IAAI,UAAU,CAAC,OAAO,CAAC;gBAAE,UAAU,CAAC,OAAO,CAAC,CAAC;QAC9C,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QACV,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEhC,qBAAqB;IACrB,MAAM,IAAI,OAAO,CAAO,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC,gDAAgD;AACpF,CAAC;AAED,MAAM,UAAU,aAAa;IAC5B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,sBAAsB,CAAC,CAAC;IAE5D,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACtC,OAAO;IACR,CAAC;IAED,IAAI,IAAiF,CAAC;IACtF,IAAI,CAAC;QACJ,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;QAC/D,IAAI,CAAC;YACJ,UAAU,CAAC,OAAO,CAAC,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QACV,OAAO;IACR,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC9B,gEAAgE;QAChE,OAAO,CAAC,GAAG,CAAC,oDAAoD,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;QAChF,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACxF,IAAI,CAAC;YACJ,QAAQ,CAAC,aAAa,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACnD,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,gFAAgF,CAAC,CAAC;IAC/F,CAAC;SAAM,CAAC;QACP,+BAA+B;QAC/B,IAAI,CAAC;YACJ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QAClD,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,CAAC;YACJ,UAAU,CAAC,OAAO,CAAC,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACX,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAc;IAC7C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACjC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,uBAAuB,CAAC,CAAC;IAEhE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;QAC1E,OAAO;IACR,CAAC;IAED,IAAI,OAA2B,CAAC;IAChC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;YAAE,OAAO,GAAG,MAAM,CAAC;IAC3D,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACtE,MAAM,GAAG,GAAG,oBAAoB,MAAM,CAAC,IAAI,EAAE,CAAC;IAE9C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,EAAE,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,kBAAkB,UAAU,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,WAAW,CAAC,GAAG,CAAC,CAAC;IAEjB,MAAM,QAAQ,GAAG,GAAG,EAAE;QACrB,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACjD,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEhC,MAAM,IAAI,OAAO,CAAO,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC/B,MAAM,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;QAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAClC,IAAI,GAAW,CAAC;QAEhB,QAAQ,QAAQ,EAAE,CAAC;YAClB,KAAK,QAAQ;gBACZ,GAAG,GAAG,SAAS,GAAG,GAAG,CAAC;gBACtB,MAAM;YACP,KAAK,OAAO;gBACX,GAAG,GAAG,UAAU,GAAG,GAAG,CAAC;gBACvB,MAAM;YACP;gBACC,GAAG,GAAG,aAAa,GAAG,GAAG,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE;YACjB,IAAI,GAAG,EAAE,CAAC;gBACT,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,EAAE,CAAC,CAAC;YACxC,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/daemon/install.d.ts
CHANGED
|
@@ -9,8 +9,16 @@
|
|
|
9
9
|
* unique), appends the first 6 hex chars of a SHA-1 of the full path.
|
|
10
10
|
*/
|
|
11
11
|
export declare function projectSlug(dir: string): string;
|
|
12
|
-
export
|
|
13
|
-
|
|
12
|
+
export type DaemonType = "jobs" | "sleepless";
|
|
13
|
+
/**
|
|
14
|
+
* Derives the launchd label for a given daemon type and project directory.
|
|
15
|
+
*
|
|
16
|
+
* - sleepless (global orchestrator): `com.claudius.sleepless` — fixed, no path suffix
|
|
17
|
+
* - jobs (per-repo scheduled jobs): `com.claudius.jobs.<repo-name>` — last path segment only
|
|
18
|
+
*/
|
|
19
|
+
export declare function daemonLabel(type: DaemonType, projectDir: string): string;
|
|
20
|
+
export declare function installDaemon(type?: DaemonType): void;
|
|
21
|
+
export declare function uninstallDaemon(type?: DaemonType): void;
|
|
14
22
|
/**
|
|
15
23
|
* Returns the command arguments needed to run `claudius`.
|
|
16
24
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/daemon/install.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAc/C;AAED,wBAAgB,aAAa,IAAI,IAAI,
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/daemon/install.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAc/C;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,WAAW,CAAC;AAE9C;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAQxE;AAED,wBAAgB,aAAa,CAAC,IAAI,GAAE,UAAmB,GAAG,IAAI,CAgB7D;AAED,wBAAgB,eAAe,CAAC,IAAI,GAAE,UAAmB,GAAG,IAAI,CAa/D;AAkJD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CA4C3D"}
|
package/dist/daemon/install.js
CHANGED
|
@@ -28,41 +28,57 @@ export function projectSlug(dir) {
|
|
|
28
28
|
// the suffix when the base is suspiciously short.
|
|
29
29
|
return base;
|
|
30
30
|
}
|
|
31
|
-
|
|
31
|
+
/**
|
|
32
|
+
* Derives the launchd label for a given daemon type and project directory.
|
|
33
|
+
*
|
|
34
|
+
* - sleepless (global orchestrator): `com.claudius.sleepless` — fixed, no path suffix
|
|
35
|
+
* - jobs (per-repo scheduled jobs): `com.claudius.jobs.<repo-name>` — last path segment only
|
|
36
|
+
*/
|
|
37
|
+
export function daemonLabel(type, projectDir) {
|
|
38
|
+
if (type === "sleepless")
|
|
39
|
+
return "com.claudius.sleepless";
|
|
40
|
+
const repoName = projectDir.replace(/\/+$/, "").split("/").pop() ?? "project";
|
|
41
|
+
const safe = repoName
|
|
42
|
+
.toLowerCase()
|
|
43
|
+
.replace(/[^a-z0-9]+/g, "-")
|
|
44
|
+
.replace(/^-|-$/g, "");
|
|
45
|
+
return `com.claudius.jobs.${safe}`;
|
|
46
|
+
}
|
|
47
|
+
export function installDaemon(type = "jobs") {
|
|
32
48
|
const currentPlatform = os.platform();
|
|
33
49
|
const projectDir = process.cwd();
|
|
34
50
|
switch (currentPlatform) {
|
|
35
51
|
case "darwin":
|
|
36
|
-
installLaunchd(projectDir);
|
|
52
|
+
installLaunchd(projectDir, type);
|
|
37
53
|
break;
|
|
38
54
|
case "linux":
|
|
39
|
-
installSystemd(projectDir);
|
|
55
|
+
installSystemd(projectDir, type);
|
|
40
56
|
break;
|
|
41
57
|
default:
|
|
42
58
|
console.error(`Unsupported platform: ${currentPlatform}. Use \`claudius daemon start\` for manual execution.`);
|
|
43
59
|
}
|
|
44
60
|
}
|
|
45
|
-
export function uninstallDaemon() {
|
|
61
|
+
export function uninstallDaemon(type = "jobs") {
|
|
46
62
|
const currentPlatform = os.platform();
|
|
47
63
|
const projectDir = process.cwd();
|
|
48
64
|
switch (currentPlatform) {
|
|
49
65
|
case "darwin":
|
|
50
|
-
uninstallLaunchd(projectDir);
|
|
66
|
+
uninstallLaunchd(projectDir, type);
|
|
51
67
|
break;
|
|
52
68
|
case "linux":
|
|
53
|
-
uninstallSystemd(projectDir);
|
|
69
|
+
uninstallSystemd(projectDir, type);
|
|
54
70
|
break;
|
|
55
71
|
default:
|
|
56
72
|
console.error(`Unsupported platform: ${currentPlatform}`);
|
|
57
73
|
}
|
|
58
74
|
}
|
|
59
|
-
function installLaunchd(projectDir) {
|
|
60
|
-
const
|
|
61
|
-
const label = `com.claudius.pulse.${slug}`;
|
|
75
|
+
function installLaunchd(projectDir, type) {
|
|
76
|
+
const label = daemonLabel(type, projectDir);
|
|
62
77
|
const plistDir = resolve(os.homedir(), "Library/LaunchAgents");
|
|
63
78
|
const plistPath = resolve(plistDir, `${label}.plist`);
|
|
79
|
+
const startCmd = type === "sleepless" ? "sleepless" : "daemon";
|
|
64
80
|
const binaryArgs = findBinaryArgs(projectDir);
|
|
65
|
-
const programArgs = [...binaryArgs,
|
|
81
|
+
const programArgs = [...binaryArgs, startCmd, "start"]
|
|
66
82
|
.map((a) => `\t\t<string>${a}</string>`)
|
|
67
83
|
.join("\n");
|
|
68
84
|
// Use the full login PATH so claude, node, bun, npx are all reachable
|
|
@@ -114,9 +130,8 @@ ${programArgs}
|
|
|
114
130
|
console.log(` launchctl load ${plistPath}`);
|
|
115
131
|
}
|
|
116
132
|
}
|
|
117
|
-
function uninstallLaunchd(projectDir) {
|
|
118
|
-
const
|
|
119
|
-
const label = `com.claudius.pulse.${slug}`;
|
|
133
|
+
function uninstallLaunchd(projectDir, type) {
|
|
134
|
+
const label = daemonLabel(type, projectDir);
|
|
120
135
|
const plistPath = resolve(os.homedir(), "Library/LaunchAgents", `${label}.plist`);
|
|
121
136
|
if (!fs.existsSync(plistPath)) {
|
|
122
137
|
console.log("No launchd service found.");
|
|
@@ -131,13 +146,14 @@ function uninstallLaunchd(projectDir) {
|
|
|
131
146
|
cp.execSync(`rm ${plistPath}`, { stdio: "pipe" });
|
|
132
147
|
console.log("Uninstalled launchd service.");
|
|
133
148
|
}
|
|
134
|
-
function installSystemd(projectDir) {
|
|
135
|
-
const
|
|
136
|
-
const serviceName =
|
|
149
|
+
function installSystemd(projectDir, type) {
|
|
150
|
+
const label = daemonLabel(type, projectDir);
|
|
151
|
+
const serviceName = `${label.replace(/\./g, "-")}.service`;
|
|
137
152
|
const unitDir = resolve(os.homedir(), ".config/systemd/user");
|
|
138
153
|
const unitPath = resolve(unitDir, serviceName);
|
|
154
|
+
const startCmd = type === "sleepless" ? "sleepless" : "daemon";
|
|
139
155
|
const binaryArgs = findBinaryArgs(projectDir);
|
|
140
|
-
const execStart = [...binaryArgs,
|
|
156
|
+
const execStart = [...binaryArgs, startCmd, "start"].join(" ");
|
|
141
157
|
const envPath = process.env.PATH || "/usr/local/bin:/usr/bin:/bin";
|
|
142
158
|
const unit = `[Unit]
|
|
143
159
|
Description=${DESCRIPTION}
|
|
@@ -160,15 +176,11 @@ WantedBy=default.target
|
|
|
160
176
|
fs.writeFileSync(unitPath, unit);
|
|
161
177
|
try {
|
|
162
178
|
cp.execSync("systemctl --user daemon-reload", { stdio: "pipe" });
|
|
163
|
-
cp.execSync(`systemctl --user enable ${serviceName}`, {
|
|
164
|
-
|
|
165
|
-
});
|
|
166
|
-
cp.execSync(`systemctl --user start ${serviceName}`, {
|
|
167
|
-
stdio: "pipe",
|
|
168
|
-
});
|
|
179
|
+
cp.execSync(`systemctl --user enable ${serviceName}`, { stdio: "pipe" });
|
|
180
|
+
cp.execSync(`systemctl --user start ${serviceName}`, { stdio: "pipe" });
|
|
169
181
|
console.log(`Installed: ${unitPath}`);
|
|
170
|
-
console.log("
|
|
171
|
-
console.log(`Check status: systemctl --user status
|
|
182
|
+
console.log("Will start on login and restart on crash.");
|
|
183
|
+
console.log(`Check status: systemctl --user status ${serviceName}`);
|
|
172
184
|
}
|
|
173
185
|
catch {
|
|
174
186
|
console.error("Failed to enable systemd service. Enable manually:");
|
|
@@ -176,9 +188,9 @@ WantedBy=default.target
|
|
|
176
188
|
console.log(` systemctl --user enable --now ${serviceName}`);
|
|
177
189
|
}
|
|
178
190
|
}
|
|
179
|
-
function uninstallSystemd(projectDir) {
|
|
180
|
-
const
|
|
181
|
-
const serviceName =
|
|
191
|
+
function uninstallSystemd(projectDir, type) {
|
|
192
|
+
const label = daemonLabel(type, projectDir);
|
|
193
|
+
const serviceName = `${label.replace(/\./g, "-")}.service`;
|
|
182
194
|
try {
|
|
183
195
|
cp.execSync(`systemctl --user stop ${serviceName} 2>/dev/null; systemctl --user disable ${serviceName} 2>/dev/null`, { stdio: "pipe" });
|
|
184
196
|
}
|
|
@@ -222,7 +234,22 @@ export function findBinaryArgs(projectDir) {
|
|
|
222
234
|
const localBin = resolve(projectDir, "node_modules/.bin/claudius");
|
|
223
235
|
if (fs.existsSync(localBin))
|
|
224
236
|
return [localBin];
|
|
225
|
-
// 3.
|
|
237
|
+
// 3. Sibling claudius repo — common in global orchestration dirs where claudius
|
|
238
|
+
// is cloned alongside managed repos (e.g. ~/Projects/claudius/dist/index.js)
|
|
239
|
+
const siblingDist = resolve(projectDir, "claudius/dist/index.js");
|
|
240
|
+
if (fs.existsSync(siblingDist)) {
|
|
241
|
+
try {
|
|
242
|
+
const node = cp
|
|
243
|
+
.execSync("which node", { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"] })
|
|
244
|
+
.trim();
|
|
245
|
+
if (node)
|
|
246
|
+
return [node, siblingDist];
|
|
247
|
+
}
|
|
248
|
+
catch {
|
|
249
|
+
// fall through
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
// 4. Global install
|
|
226
253
|
try {
|
|
227
254
|
const bin = cp
|
|
228
255
|
.execSync("which claudius", { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"] })
|
|
@@ -233,7 +260,7 @@ export function findBinaryArgs(projectDir) {
|
|
|
233
260
|
catch {
|
|
234
261
|
// fall through
|
|
235
262
|
}
|
|
236
|
-
//
|
|
263
|
+
// 5. Fallback
|
|
237
264
|
return ["npx", "claudius-core"];
|
|
238
265
|
}
|
|
239
266
|
//# sourceMappingURL=install.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/daemon/install.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,WAAW,GAAG,uBAAuB,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACtC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjE,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,GAAG;SACd,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACxB,MAAM,IAAI,GACT,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3F,2EAA2E;IAC3E,wEAAwE;IACxE,2EAA2E;IAC3E,kDAAkD;IAClD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,MAAM,UAAU,aAAa;
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/daemon/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pulse.d.ts","sourceRoot":"","sources":["../../src/daemon/pulse.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAAE,KAAK,cAAc,EAAc,MAAM,cAAc,CAAC;AAI/D,OAAO,EACN,KAAK,MAAM,EAOX,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IACjC,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,OAAO,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;CAC9C;AAED,qBAAa,WAAW;IAOtB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU;IAPnB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAA+C;IACnE,OAAO,CAAC,UAAU,CAA8D;IAChF,OAAO,CAAC,aAAa,CAAS;gBAGrB,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,MAAM;IAK3B,6CAA6C;IACvC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA6B5B,IAAI,IAAI,IAAI;IAKZ,yDAAyD;IACzD,WAAW,IAAI,MAAM;IAkCrB,qEAAqE;IACrE,SAAS,IAAI,iBAAiB;IA8I9B,kCAAkC;IAClC,OAAO,CAAC,UAAU;IA+BlB,OAAO,CAAC,YAAY;IAWpB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;YAgBR,WAAW;
|
|
1
|
+
{"version":3,"file":"pulse.d.ts","sourceRoot":"","sources":["../../src/daemon/pulse.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAAE,KAAK,cAAc,EAAc,MAAM,cAAc,CAAC;AAI/D,OAAO,EACN,KAAK,MAAM,EAOX,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IACjC,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,OAAO,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;CAC9C;AAED,qBAAa,WAAW;IAOtB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU;IAPnB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAA+C;IACnE,OAAO,CAAC,UAAU,CAA8D;IAChF,OAAO,CAAC,aAAa,CAAS;gBAGrB,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,MAAM;IAK3B,6CAA6C;IACvC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA6B5B,IAAI,IAAI,IAAI;IAKZ,yDAAyD;IACzD,WAAW,IAAI,MAAM;IAkCrB,qEAAqE;IACrE,SAAS,IAAI,iBAAiB;IA8I9B,kCAAkC;IAClC,OAAO,CAAC,UAAU;IA+BlB,OAAO,CAAC,YAAY;IAWpB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;YAgBR,WAAW;IA4CzB,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,KAAK;CAGb"}
|
package/dist/daemon/pulse.js
CHANGED
|
@@ -275,14 +275,18 @@ export class PulseEngine {
|
|
|
275
275
|
return;
|
|
276
276
|
try {
|
|
277
277
|
const { startStudioServer } = await import("../cli/studio.js");
|
|
278
|
-
const { projectSlug } = await import("./install.js");
|
|
279
278
|
const { startSlimDomain, isSlimInstalled } = await import("./slim.js");
|
|
280
279
|
this.studioHandle = await startStudioServer(this.projectDir, {
|
|
281
280
|
port: this.config.studio.port || undefined,
|
|
282
281
|
});
|
|
283
282
|
const port = this.studioHandle.port;
|
|
284
283
|
let url = `http://localhost:${port}`;
|
|
285
|
-
const
|
|
284
|
+
const repoName = this.projectDir.replace(/\/+$/, "").split("/").pop() ?? "project";
|
|
285
|
+
const safeRepoName = repoName
|
|
286
|
+
.toLowerCase()
|
|
287
|
+
.replace(/[^a-z0-9]+/g, "-")
|
|
288
|
+
.replace(/^-|-$/g, "") || "project";
|
|
289
|
+
const domainName = `${safeRepoName}-studio`;
|
|
286
290
|
let domain = "";
|
|
287
291
|
if (this.config.studio.slimEnabled !== false && isSlimInstalled()) {
|
|
288
292
|
this.slimHandle = startSlimDomain(domainName, port);
|