vibe64 0.1.36 → 0.1.37
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/bin/run.js +1806 -1766
- package/bin/upgrade-state.js +4822 -4768
- package/dist/assets/{GithubBrowserTabs-BzJF4k9Y.js → GithubBrowserTabs-BykoCFfz.js} +1 -1
- package/dist/assets/{StudioErrorNotice-BdllGqRy.js → StudioErrorNotice-CSrUw1QV.js} +1 -1
- package/dist/assets/{Vibe64AsyncModuleState-Bi0TqlIu.js → Vibe64AsyncModuleState-Do9EqX3S.js} +1 -1
- package/dist/assets/{Vibe64AuthSettingsButton-BuvmwGiT.js → Vibe64AuthSettingsButton-CIwtchKm.js} +1 -1
- package/dist/assets/{Vibe64DashboardBackButton-Ccd4hpD6.js → Vibe64DashboardBackButton-BH_8j_VR.js} +1 -1
- package/dist/assets/{Vibe64DashboardShell-D67m4aWz.js → Vibe64DashboardShell-DXVDJUAY.js} +1 -1
- package/dist/assets/{Vibe64DatabaseWorkspace-D3uK1gDm.js → Vibe64DatabaseWorkspace-Ca8IHSRq.js} +1 -1
- package/dist/assets/{Vibe64OutputControls-D2CCECo5.css → Vibe64OutputControls-Co5YzwcK.css} +1 -1
- package/dist/assets/Vibe64OutputControls-DngQNTTt.js +8 -0
- package/dist/assets/{Vibe64RepositoryWorkspace-0jAxvdA8.js → Vibe64RepositoryWorkspace-BfsZozSJ.js} +1 -1
- package/dist/assets/{Vibe64SessionFiles-B3ONZrBL.css → Vibe64SessionFiles-Bl8wJ5Sk.css} +1 -1
- package/dist/assets/{Vibe64SessionFiles-BCOJ4QmR.js → Vibe64SessionFiles-n87RqqY6.js} +3 -3
- package/dist/assets/{Vibe64TemporaryAiFixAction-DM2jpPbQ.js → Vibe64TemporaryAiFixAction-BiuIE9mC.js} +1 -1
- package/dist/assets/{Vibe64UiStoryboardView-DP5af46a.js → Vibe64UiStoryboardView-BhKRpL0N.js} +1 -1
- package/dist/assets/{Vibe64UnavailableSessions-C7XwH1SS.js → Vibe64UnavailableSessions-Ca5nC7KH.js} +1 -1
- package/dist/assets/{_sessionId_-B1Ymr7c_.js → _sessionId_-B_TTRB4c.js} +1 -1
- package/dist/assets/{_sessionTool_-DVYdREoI.js → _sessionTool_-1V-z6Pbp.js} +1 -1
- package/dist/assets/{_slug_-CQseA9pt.css → _slug_-Buxpw0T4.css} +1 -1
- package/dist/assets/_slug_-DsqilUs_.js +24 -0
- package/dist/assets/{access-Cb7dkN53.js → access-tl4ht_d8.js} +1 -1
- package/dist/assets/{app-BvgY7oVf.js → app-DT4_MliP.js} +1 -1
- package/dist/assets/{assistantRouting-B38ujQ7x.js → assistantRouting-D4XpXcEf.js} +1 -1
- package/dist/assets/{changes-lsBcuikn.js → changes-DZWHZguL.js} +1 -1
- package/dist/assets/{client-CRI5CNKl.js → client-BWV84wi2.js} +2 -2
- package/dist/assets/{client-TGaWwOhc.css → client-DGrP-2AJ.css} +1 -1
- package/dist/assets/{conversation-CDEt9jBx.js → conversation-B90ERX9h.js} +1 -1
- package/dist/assets/{dashboard-D8HOAw46.js → dashboard-iREwhGqv.js} +1 -1
- package/dist/assets/{definitions-DLTX17nI.js → definitions-CNu5E87y.js} +1 -1
- package/dist/assets/{env-DJezQixO.js → env-D5KpTEw7.js} +1 -1
- package/dist/assets/{health-CtKdN_Nf.js → health-BhoO1d4h.js} +1 -1
- package/dist/assets/{history-BdZFOtz4.js → history-DVURy45X.js} +1 -1
- package/dist/assets/{incoming-VsQNnL9m.js → incoming-DzADFGqp.js} +1 -1
- package/dist/assets/{index-C4K3ntms.js → index-GBRpNZLy.js} +5 -5
- package/dist/assets/{index-C-osVUKw.css → index-irlMYzLh.css} +1 -1
- package/dist/assets/{integrations-CMQ9EDmt.js → integrations-Dy5jIiJ5.js} +1 -1
- package/dist/assets/{issues-DHpY5hSr.js → issues-lh7R775d.js} +1 -1
- package/dist/assets/{learning-DXlMuwzh.js → learning-_O1PEaam.js} +1 -1
- package/dist/assets/{mdi-yXT-CQ6u.js → mdi-CG9pWOSj.js} +1 -1
- package/dist/assets/{placement-NpX2s7u8.js → placement-BF-zIEhA.js} +1 -1
- package/dist/assets/{pull-requests-BcKNEUYH.js → pull-requests-ByE-Dvk7.js} +1 -1
- package/dist/assets/{repository-ClEgntHW.js → repository-BUfUAyS9.js} +1 -1
- package/dist/assets/{session-BlD46q-d.js → session-BdhKrcX4.js} +1 -1
- package/dist/assets/{settings-BwukeIKe.js → settings-CzhIcn9K.js} +1 -1
- package/dist/assets/shared-DpMvYJO3.js +2 -0
- package/dist/assets/{useArchivedVibe64Sessions-D5zUA-BC.js → useArchivedVibe64Sessions-CLHJOyeW.js} +1 -1
- package/dist/assets/{useVibe64ConversationLog-Dy6YTPQn.js → useVibe64ConversationLog-B4JgmxUf.js} +1 -1
- package/dist/assets/{useVibe64DatabaseTools-d6L09ugW.js → useVibe64DatabaseTools-4o6S8eXq.js} +1 -1
- package/dist/assets/{useVibe64Learning-cNKTv64W.js → useVibe64Learning-DyqXkpLw.js} +1 -1
- package/dist/assets/{useVibe64SessionData-C_jqncih.js → useVibe64SessionData-YhhE_5pC.js} +1 -1
- package/dist/assets/{useVibe64SessionSelection-uCEIWd3b.js → useVibe64SessionSelection-CuZCzAcY.js} +1 -1
- package/dist/assets/{useVibe64Terminal-BbghGR4x.js → useVibe64Terminal-Cg3idMcy.js} +1 -1
- package/dist/assets/{vibe64AssistantHost-BL1bnKm8.js → vibe64AssistantHost-CP6oxv5b.js} +1 -1
- package/dist/assets/{vibe64SessionFocus-DSJKVuRN.js → vibe64SessionFocus-Cz5Vq1re.js} +1 -1
- package/dist/assets/{vibe64SessionInfo-B_r1OMN0.js → vibe64SessionInfo-BuBUdL-e.js} +1 -1
- package/dist/assets/{vibe64SessionToolDefinitions-BualCK_5.js → vibe64SessionToolDefinitions-BJaJH5LR.js} +1 -1
- package/dist/index.html +13 -13
- package/docs/colleague-usage/ai-accounts-and-routing.md +4 -1
- package/docs/colleague-usage/ai-onboarding.md +11 -12
- package/docs/colleague-usage/coding-agents.md +4 -0
- package/docs/colleague-usage/connected-projects.md +8 -0
- package/docs/colleague-usage/learning-environment.md +3 -11
- package/docs/colleague-usage/learning-mode-ui.md +7 -0
- package/docs/colleague-usage/learning-practice-projects.md +13 -3
- package/docs/colleague-usage/learning-with-colleague.md +25 -1
- package/docs/colleague-usage/lesson-authoring.md +14 -5
- package/docs/colleague-usage/lesson-step-bar.md +99 -0
- package/docs/colleague-usage/preview.md +6 -3
- package/docs/colleague-usage/teaching-content.md +5 -2
- package/docs/templates/learn-topic/README.md +2 -2
- package/docs/training-content.md +146 -7
- package/node_modules/@local/vibe64-execution/src/server/hostProfile.js +12 -0
- package/node_modules/@local/vibe64-terminals/package.json +1 -0
- package/node_modules/@local/vibe64-training/package.json +3 -0
- package/package.json +3 -3
- package/server.bundle.mjs +36675 -36461
- package/dist/assets/Vibe64OutputControls-BfESn5kJ.js +0 -8
- package/dist/assets/_slug_-CYO2vjCd.js +0 -24
- package/dist/assets/shared-BM2SV6fi.js +0 -2
package/docs/training-content.md
CHANGED
|
@@ -120,17 +120,133 @@ topic with every step kind; the copyable template is `docs/templates/learn-topic
|
|
|
120
120
|
- `choice` — `question` (at most 2000 characters), 2–8 `options` and
|
|
121
121
|
`answer`, a non-empty list of unique option indexes (0-based, in range).
|
|
122
122
|
The learner passes by selecting exactly the answer indexes.
|
|
123
|
+
- `review` — the learner's own AI reviews their practice work against the
|
|
124
|
+
author's `rubric` (at most 600 characters, shown to the learner as the
|
|
125
|
+
step's check line) when the learner presses **Check my work**. It needs
|
|
126
|
+
the lesson's `exercise`. `evidence` (optional, default `["changes"]`) is
|
|
127
|
+
`["changes"]` or `["changes", "conversation"]`; see
|
|
128
|
+
[Review checks](#review-checks).
|
|
123
129
|
- `self` — the learner ticks **Done** after doing the step.
|
|
124
130
|
- `none` — reading only; cannot be `required`. The learner may press
|
|
125
131
|
**Mark as done**, which records a learner-origin `read` pass (a bonus that
|
|
126
132
|
never counts toward completion).
|
|
127
133
|
A kind declares only its own fields; anything else is rejected.
|
|
128
134
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
135
|
+
### Beats: the step bar walks the learner through a step
|
|
136
|
+
|
|
137
|
+
A step may end its body Markdown with a fenced `beats` block. The lesson step
|
|
138
|
+
bar (yellow, above the page in Learn mode) plays the beats one line at a time
|
|
139
|
+
while the learner stays where they are; the reader never shows the block.
|
|
140
|
+
|
|
141
|
+
````md
|
|
142
|
+
```beats
|
|
143
|
+
show preview: This is your app, running.
|
|
144
|
+
show chat: This is the coding chat. You ask for changes here.
|
|
145
|
+
do send-message: Ask it: "Make the heading green"
|
|
146
|
+
do agent-finished: Wait while the agent works.
|
|
147
|
+
do reload-preview: Press Reload preview to see the change.
|
|
148
|
+
check done: Press Done when the heading is green.
|
|
149
|
+
```
|
|
150
|
+
````
|
|
151
|
+
|
|
152
|
+
One beat per line: `<show|do|check> <target>[ <path>]: <text>`.
|
|
153
|
+
|
|
154
|
+
- `show <place>` points at a place and moves on by itself after 5–12 seconds
|
|
155
|
+
(longer text stays longer; never with reduced motion, where the learner
|
|
156
|
+
presses Next). Text is at most 160 characters.
|
|
157
|
+
- `do <place|action>` waits for the learner: to be at a place, or to do an
|
|
158
|
+
action (`send-message`, `agent-finished`, `file-opened <path>`,
|
|
159
|
+
`app-pressed`, `colleague-minimised`). `do send-message` text holds exactly one quoted prompt (at
|
|
160
|
+
most 500 characters). Only `file-opened` takes an argument, a relative
|
|
161
|
+
practice project path without `..`. A do beat completes when the page shows
|
|
162
|
+
its place, or when its activity happens in the lesson's practice project
|
|
163
|
+
after the beat began (`send-message`: a message accepted in the chat;
|
|
164
|
+
`agent-finished`: the agent's turn ends; `file-opened`: that file opens in
|
|
165
|
+
Files; `app-pressed`: the practice App's button; `colleague`, `save`,
|
|
166
|
+
`reload-preview`: Colleague opens, a Save succeeds, the Preview reloads;
|
|
167
|
+
`learning`: the learner presses **L**, which counts when they are back in
|
|
168
|
+
Learn; `colleague-minimised`: Colleague closes or minimises).
|
|
169
|
+
**Do it for me** does it for the learner (sending a `send-message` prompt as
|
|
170
|
+
the learner's Main chat message, stored as sent by the lesson), except Save,
|
|
171
|
+
`agent-finished`, `app-pressed`, `colleague-minimised` and `learning` (which
|
|
172
|
+
it only points at). A `check done` step whose do beats were
|
|
173
|
+
all detected is recorded done without a press.
|
|
174
|
+
- `check <auto|done>: <text>` is the step's own check (`auto` for
|
|
175
|
+
`check.kind:"auto"`, `done` for `self`): at most one, and the last line.
|
|
176
|
+
`check review` (for `check.kind:"review"`) takes no text: the bar shows the
|
|
177
|
+
step's `check.rubric` from `lesson.json`, its single source.
|
|
178
|
+
- Places: `preview`, `dashboard`, `database-erd`, `database-data`, `files`,
|
|
179
|
+
`changes`, `git-log`, `session-info`, `architecture`, `learning` (the **L**
|
|
180
|
+
button), `lesson` (the Lesson tab), `chat` (the coding chat), `colleague`,
|
|
181
|
+
`courses`, `lesson-bar` (the bar itself), `save` and `reload-preview`.
|
|
182
|
+
`dashboard` and `lesson-bar` can only be shown.
|
|
183
|
+
- 1–8 beats. Only `lesson`, `lesson-bar`, `courses`, `learning`,
|
|
184
|
+
`colleague`, `colleague-minimised` and `check done` work in a lesson without an `exercise`; every
|
|
185
|
+
other beat needs the practice project.
|
|
186
|
+
- A step with beats has no `guide`; **Show me** plays its beats from the first.
|
|
187
|
+
|
|
188
|
+
`vibe64 training validate` rejects an unknown kind, place or action, an
|
|
189
|
+
argument other than a `file-opened` path, a check that does not match the
|
|
190
|
+
step's check kind, a second or non-final check, a block that is not closed or
|
|
191
|
+
does not end the body, and beats together with a `guide`. Back and Next in the
|
|
192
|
+
bar move by beat into the neighbouring steps; after the last beat the bar shows
|
|
193
|
+
the step's own verdict control (Done, Mark as done, Check my work, or Answer in
|
|
194
|
+
Step for a choice) and Next step. **Step** (≡) on the bar opens the whole step
|
|
195
|
+
text under it in one click, so a beat never needs to repeat the body. Steps never advance by themselves.
|
|
196
|
+
|
|
197
|
+
**Check verdicts are final.** Verdicts come from the step's declared check: an
|
|
198
|
+
automatic check, the choice comparator, a review check (the learner's own AI
|
|
199
|
+
judging their work against the author's rubric), or the learner's tick on a
|
|
200
|
+
`self` step (or mark on a `none` step). A pass is never replaced. Colleague
|
|
201
|
+
teaches and explains but never passes a step and never runs a review. Prefer
|
|
202
|
+
an automatic check where a deterministic check can decide; write step bodies
|
|
132
203
|
so a learner can follow them without AI.
|
|
133
204
|
|
|
205
|
+
### Review checks
|
|
206
|
+
|
|
207
|
+
A review step judges work that a deterministic check cannot, for example "the
|
|
208
|
+
heading is green and nothing else broke":
|
|
209
|
+
|
|
210
|
+
```json
|
|
211
|
+
{ "id": "green-heading", "title": "Make the heading green",
|
|
212
|
+
"body": "steps/green-heading.md",
|
|
213
|
+
"check": { "kind": "review", "rubric": "The heading is green and nothing else broke.",
|
|
214
|
+
"evidence": ["changes", "conversation"] },
|
|
215
|
+
"required": true }
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
- The rubric is the only requirement. Write it as what the finished work
|
|
219
|
+
shows, in words the learner understands; it is shown to the learner and to
|
|
220
|
+
Colleague.
|
|
221
|
+
- Evidence `changes` is the practice session's work against the commit the
|
|
222
|
+
lesson started from, uncommitted work included: the changed files with
|
|
223
|
+
added/removed line counts and their diff, at most 60,000 characters (20,000
|
|
224
|
+
per file). Binary files, larger files and files beyond that budget are
|
|
225
|
+
listed without their text; agent guidance folders (`.agents`, `.claude`,
|
|
226
|
+
`.codex`, `.opencode`) are left out. `conversation` adds the last 20 turns
|
|
227
|
+
of the session's Main chat (the learner's and the agent's text, at most
|
|
228
|
+
40,000 characters). Work the coding agent did at the learner's request
|
|
229
|
+
counts unless the rubric says the learner must do it themselves.
|
|
230
|
+
- **Check my work** runs only from the learner's own browser, on the
|
|
231
|
+
learner's own AI account: the Helper route of their workflow in **AI
|
|
232
|
+
Accounts → Model routing** (workload `lesson_review`, input at most 160,000
|
|
233
|
+
characters, 180 seconds). Vibe64 never pays for or resells it.
|
|
234
|
+
- The reviewer returns Passed or Not yet, a comment (at most 600
|
|
235
|
+
characters), a hint for Not yet (at most 300) and up to six rubric points.
|
|
236
|
+
The result is saved as a `review` step result; Passed is final.
|
|
237
|
+
- Nothing is recorded, and nothing runs, while the coding agent is working
|
|
238
|
+
("Wait until the agent finishes") or when there are no changes yet ("No
|
|
239
|
+
changes yet"). Pressing again with unchanged evidence returns the saved
|
|
240
|
+
review without another AI call. A missing Helper route, a provider error or
|
|
241
|
+
timeout, a reply outside the fixed output schema or unreadable evidence
|
|
242
|
+
records nothing; the learner tries again.
|
|
243
|
+
- The evidence is data, never instructions: the reviewer is told to follow
|
|
244
|
+
only the rubric, so a prompt injected into the learner's project can at most
|
|
245
|
+
pass the learner's own practice step.
|
|
246
|
+
- Only lessons started after a review-capable release record the commit their
|
|
247
|
+
practice session started from; an older attempt is asked to restart before
|
|
248
|
+
its work can be reviewed.
|
|
249
|
+
|
|
134
250
|
Choice answers stay on the server. The lesson descriptor is never served to a
|
|
135
251
|
browser: a step body, `notes`, visual SVG/controller/asset or exercise file
|
|
136
252
|
cannot be any v2 lesson descriptor of the topic (for example, an exercise
|
|
@@ -584,11 +700,20 @@ is the one in progress, `lessonTitle` is filled only with `includeTitle`, and
|
|
|
584
700
|
|
|
585
701
|
Step results (`step-progress.json`, schema version 3) belong to the attempt in
|
|
586
702
|
progress: `{learnerId,revision,attemptId,lesson,results,receipts}`, at most 64
|
|
587
|
-
results. A result's `kind` is `auto`, `choice`, `self` or `read` (a
|
|
588
|
-
step the learner marked done), matching the pinned step's check. A
|
|
589
|
-
|
|
703
|
+
results. A result's `kind` is `auto`, `choice`, `review`, `self` or `read` (a
|
|
704
|
+
`none` step the learner marked done), matching the pinned step's check. A
|
|
705
|
+
`review` result has origin `check`, evidence `{reviewId,evidenceHash}` and
|
|
706
|
+
`review:{comment,hint?,points?}` (single-line text; only a review result has
|
|
707
|
+
it). A new attempt starts with none. `readStepProgress({actor,attemptId?})`
|
|
590
708
|
and `readAttemptRecord({actor,attemptId})` read them.
|
|
591
709
|
|
|
710
|
+
`runReviewExclusive({actor},operation)` serializes one learner's reviews with
|
|
711
|
+
`review.lock` (a second review while one runs is refused with
|
|
712
|
+
`VIBE64_TRAINING_REVIEW_BUSY`). It gives the review owner its private Helper
|
|
713
|
+
root `review-helpers/` and the retained Helper receipt `review-helper.json`
|
|
714
|
+
`{schemaVersion:1,learnerId,helper}` (`helper` is `null` once cleaned up), so a
|
|
715
|
+
review that stopped part-way is cleaned before the next one starts.
|
|
716
|
+
|
|
592
717
|
The published `20261008-learning-practice-history` upgrade reads vibe64 0.1.35
|
|
593
718
|
version 1 progress through the frozen `practiceHistoryReader.js`
|
|
594
719
|
(`readState`, `readExerciseProjectScope`), moved unchanged from the earlier
|
|
@@ -596,10 +721,19 @@ learner state; the live store no longer reads that format.
|
|
|
596
721
|
|
|
597
722
|
The same internal store adds `beginPreparation({actor,attemptId,expectedRevision})`,
|
|
598
723
|
`recordPreparationReady({actor,attemptId,initialSessionId,expectedRevision})` and
|
|
599
|
-
`recordPreparationFailure({actor,attemptId,initialSessionId,expectedRevision,stage,code,message})
|
|
724
|
+
`recordPreparationFailure({actor,attemptId,initialSessionId,expectedRevision,stage,code,message})`
|
|
725
|
+
and `recordPreparationStart({actor,attemptId,initialSessionId,expectedRevision,startCommit})`.
|
|
600
726
|
These are observation writers, not a provisioner, learner action or authority to
|
|
601
727
|
create an arbitrary project. Only an admitted server caller may compose them.
|
|
602
728
|
|
|
729
|
+
When the session owner refuses the practice session because the learner has no
|
|
730
|
+
usable AI yet (`vibe64_assistant_workflow_unavailable` or
|
|
731
|
+
`vibe64_assistant_role_unconfigured`), preparation records and throws
|
|
732
|
+
`VIBE64_TRAINING_PRACTICE_AI_REQUIRED` (409) with learner wording that asks them
|
|
733
|
+
to set up their AI and continue the same lesson. `lesson.read` and
|
|
734
|
+
`learning.read` return the saved failure's `code` and `message`, so the step bar
|
|
735
|
+
and Courses offer the AI setup instead of beats or a generic error.
|
|
736
|
+
|
|
603
737
|
An untouched `{phase:"reserved"}` remains valid and contains no session identity.
|
|
604
738
|
Explicit begin atomically saves `{phase:"preparing",initialSessionId}` before any
|
|
605
739
|
external effects. The immutable ID is `training-<attempt-UUID>`, validated by the
|
|
@@ -617,6 +751,11 @@ A failure records `preparing` with `failure:{stage,code,message}`; stages are
|
|
|
617
751
|
`project`, `session` or `setup`, code is at most 64 characters and the single-line
|
|
618
752
|
recovery message at most 512. It retains the ID and removes any old ready time.
|
|
619
753
|
Begin replays do not clear failures. A fresh successful observation can clear one.
|
|
754
|
+
Preparation records the verified exercise commit as `startCommit` (a 40- or
|
|
755
|
+
64-character Git object ID) just before it creates the practice session from
|
|
756
|
+
it; a retry before the session exists records it again, a ready attempt keeps
|
|
757
|
+
it, and every later phase carries it. A review check reads the learner's
|
|
758
|
+
changes against it. Attempts prepared before this field existed have none.
|
|
620
759
|
Matching observation replays precede revision checking and return `replayed:true`
|
|
621
760
|
without writing; a different stale observation conflicts rather than overriding
|
|
622
761
|
newer state. No project/session effect executes inside the user-state lock.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { createRequire as __vibe64CreateRequire } from 'node:module';const require=__vibe64CreateRequire(import.meta.url);
|
|
2
|
+
import h from"node:path";import l from"node:process";import{isMainThread as u}from"node:worker_threads";var n=Symbol.for(
|
|
3
|
+
"vibe64.hostProfile"),t=Symbol.for("vibe64.hostProfile.previousUmask"),b=["runtimePackRoot","sharedCacheRoot","execHelpe\
|
|
4
|
+
rPath"],s=Object.freeze({runtimePackRoot:"",sharedCacheRoot:"",execHelperPath:"",sharedGroupAccess:!1});function a(e){u&&
|
|
5
|
+
(e&&!(t in globalThis)?globalThis[t]=l.umask(7):!e&&t in globalThis&&(l.umask(globalThis[t]),delete globalThis[t]))}function T(e=null){
|
|
6
|
+
if(e===null)return delete globalThis[n],a(!1),s;let c=Object.keys(e).filter(o=>!(o in s));if(c.length)throw new TypeError(
|
|
7
|
+
`Unknown host profile setting: ${c.join(", ")}.`);let r={...s,...e};for(let o of b)if(typeof r[o]!="string"||r[o]&&!h.isAbsolute(
|
|
8
|
+
r[o]))throw new TypeError(`Host profile ${o} must be an absolute path or empty.`);if(typeof r.sharedGroupAccess!="boolea\
|
|
9
|
+
n")throw new TypeError("Host profile sharedGroupAccess must be true or false.");let i=Object.freeze(r);return globalThis[n]=
|
|
10
|
+
i,a(i.sharedGroupAccess),i}function f(){return globalThis[n]||s}function g(){return f().sharedGroupAccess?{inheritingDirectory:1528,
|
|
11
|
+
directory:504,file:432}:{inheritingDirectory:448,directory:448,file:384}}function y(){return f().sharedGroupAccess?"0007":
|
|
12
|
+
""}export{T as configureVibe64Host,f as vibe64Host,y as vibe64ProcessUmask,g as vibe64SharedModes};
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
"./shared/launchPreviewProtocol": "./src/shared/launchPreviewProtocol.js",
|
|
19
19
|
"./shared/assistantWorkPlan": "./src/shared/assistantWorkPlan.js",
|
|
20
20
|
"./server/retainedConversationHelper": "./src/server/retainedConversationHelper.js",
|
|
21
|
+
"./server/practiceAgentGuidance": "./src/server/practiceAgentGuidance.js",
|
|
21
22
|
"./server/assistantClaudeCommandUpgrade": "./src/server/assistantClaudeCommandUpgrade.js",
|
|
22
23
|
"./server/assistantClaudeDeliveryUpgrade": "./src/server/assistantClaudeDeliveryUpgrade.js",
|
|
23
24
|
"./server/assistantPlanProgressUpgrade": "./src/server/assistantPlanProgressUpgrade.js"
|
|
@@ -21,6 +21,8 @@
|
|
|
21
21
|
"./server/installed-catalogue": "./src/server/installedCatalogue.js",
|
|
22
22
|
"./server/routes": "./src/server/registerRoutes.js",
|
|
23
23
|
"./server/step-checks": "./src/server/stepChecks.js",
|
|
24
|
+
"./server/step-evidence": "./src/server/stepEvidence.js",
|
|
25
|
+
"./server/step-review": "./src/server/stepReview.js",
|
|
24
26
|
"./server/code-authorship": "./src/server/codeAuthorship.js",
|
|
25
27
|
"./server/code-save-owner": "./src/server/codeEditorActions.js",
|
|
26
28
|
"./server/step-actions": "./src/server/stepActions.js",
|
|
@@ -33,6 +35,7 @@
|
|
|
33
35
|
"./shared/presentation-schemas": "./src/shared/presentationSchemas.js",
|
|
34
36
|
"./shared/learning-guidance": "./src/shared/learningGuidance.js",
|
|
35
37
|
"./shared/guide-targets": "./src/shared/guideTargets.js",
|
|
38
|
+
"./shared/beats": "./src/shared/beats.js",
|
|
36
39
|
"./client/guide-overlay": "./src/client/TrainingGuideOverlay.vue",
|
|
37
40
|
"./client/guide": "./src/client/trainingGuide.js",
|
|
38
41
|
"./client/course-progress": "./src/client/courseProgress.js",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vibe64",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.37",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Run Vibe64 against the current project.",
|
|
6
6
|
"type": "module",
|
|
@@ -126,8 +126,8 @@
|
|
|
126
126
|
"figures": "6.1.0",
|
|
127
127
|
"find-my-way": "9.9.0",
|
|
128
128
|
"flatted": "3.4.4",
|
|
129
|
-
"genesis-compiler": "1.
|
|
130
|
-
"genesis-stack": "1.
|
|
129
|
+
"genesis-compiler": "1.10.0",
|
|
130
|
+
"genesis-stack": "1.3.0",
|
|
131
131
|
"get-port": "7.2.0",
|
|
132
132
|
"get-stream": "9.0.1",
|
|
133
133
|
"glob": "13.0.6",
|