@neurodock/cli 0.8.1 → 0.9.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 +43 -0
- package/README.md +45 -11
- package/dist/assets/hooks/proactive_guardrail.py +11 -23
- package/dist/assets/schemas/neurotype-addenda.schema.json +167 -0
- package/dist/assets/schemas/profile.example.yaml +9 -0
- package/dist/assets/schemas/profile.schema.json +116 -0
- package/dist/assets/skills/adhd-daily-planner/SKILL.md +131 -0
- package/dist/assets/skills/asd-meeting-translator/SKILL.md +177 -0
- package/dist/assets/skills/audhd-context-recovery/SKILL.md +93 -0
- package/dist/assets/skills/dyspraxia-task-pacer/SKILL.md +174 -0
- package/dist/assets/skills/hyperfocus-formatter/SKILL.md +89 -0
- package/dist/assets/skills/ocd-decision-finalizer/SKILL.md +109 -0
- package/dist/assets/skills/visual-organizer/SKILL.md +94 -0
- package/dist/commands/host.d.ts.map +1 -1
- package/dist/commands/host.js +4 -6
- package/dist/commands/host.js.map +1 -1
- package/dist/commands/install-all.d.ts +27 -0
- package/dist/commands/install-all.d.ts.map +1 -1
- package/dist/commands/install-all.js +53 -1
- package/dist/commands/install-all.js.map +1 -1
- package/dist/commands/install-skills.d.ts +26 -0
- package/dist/commands/install-skills.d.ts.map +1 -0
- package/dist/commands/install-skills.js +164 -0
- package/dist/commands/install-skills.js.map +1 -0
- package/dist/commands/setup.d.ts +12 -0
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +2 -0
- package/dist/commands/setup.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/skills.d.ts +40 -0
- package/dist/lib/skills.d.ts.map +1 -0
- package/dist/lib/skills.js +115 -0
- package/dist/lib/skills.js.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: hyperfocus-formatter
|
|
3
|
+
version: 0.1.0
|
|
4
|
+
description: Reformats responses to Answer-First when sessions run long; surfaces the user's own prior intent if past their break threshold. Also activates on design-critique contexts (Figma reviews, comp reviews, prototype walk-throughs, spec reviews) so the verdict lands before the reasoning.
|
|
5
|
+
neurotypes: ["adhd", "audhd"]
|
|
6
|
+
status: stable
|
|
7
|
+
triggers:
|
|
8
|
+
- on_every_response: true # passive activation — applies a formatting transform
|
|
9
|
+
# Design-critique surfaces: the verdict must land first, then the reasoning.
|
|
10
|
+
# These phrase triggers force aggressive Answer-First (Tier B) shaping regardless
|
|
11
|
+
# of session length, because critique without a top-line verdict is unusable.
|
|
12
|
+
- phrase: "give me crit on this design"
|
|
13
|
+
- phrase: "review the comps I just sent"
|
|
14
|
+
- phrase: "Figma review please"
|
|
15
|
+
- phrase: "let me get spec review feedback"
|
|
16
|
+
- phrase: "design critique on the new flow"
|
|
17
|
+
- phrase: "walk through the prototype"
|
|
18
|
+
mcp_dependencies:
|
|
19
|
+
- server: mcp-chronometric
|
|
20
|
+
tools: [get_time_context, request_break_if_needed]
|
|
21
|
+
profile_dependencies:
|
|
22
|
+
- preferences.output_format
|
|
23
|
+
- preferences.max_chunk_size
|
|
24
|
+
- chronometric.hyperfocus_break_minutes
|
|
25
|
+
license: AGPL-3.0-or-later
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
# hyperfocus-formatter
|
|
29
|
+
|
|
30
|
+
A passive output transform. After the LLM has decided what to say, this skill reshapes how to say it based on how long the current session has been open. Short sessions get a light Answer-First touch. Longer sessions get an aggressive Answer-First structure with a hard chunk limit. Sessions past the user's own pre-configured break threshold get one verbatim line of their own prior intent prepended — never a lecture, never a block.
|
|
31
|
+
|
|
32
|
+
# TODO: phase-2 mcp-guardrail integration — once `mcp-guardrail.check_hyperfocus` lands, fold its signal into the threshold tier alongside `request_break_if_needed`.
|
|
33
|
+
|
|
34
|
+
## When to activate
|
|
35
|
+
|
|
36
|
+
- **Every response.** This skill runs passively on every LLM turn. It is a transform, not a generator.
|
|
37
|
+
- **Opt-out via profile.** If `preferences.output_format == "conventional"`, skip this skill entirely and emit the response unchanged.
|
|
38
|
+
- **Design-critique phrase triggers.** When the user's prompt contains any of the design-critique phrases listed in frontmatter (e.g. "give me crit on this design", "Figma review please", "walk through the prototype"), force Tier B shaping for this turn regardless of session length. The verdict line must precede the reasoning — critique that buries the call is unusable on a deadline.
|
|
39
|
+
- **No other phrase triggers.** Outside the design-critique set, there is no user-facing command. The user opts in once via profile and the transform stays on.
|
|
40
|
+
|
|
41
|
+
## Operating instructions
|
|
42
|
+
|
|
43
|
+
1. Read `preferences.output_format` from the user profile.
|
|
44
|
+
- If `"conventional"`: skip this skill. Emit the response as-is. Stop.
|
|
45
|
+
- If `"answer_first"` (default) or `"bullet_first"`: continue.
|
|
46
|
+
2. Call `get_time_context()`. Parse `current_session_length` (ISO 8601 duration) into minutes.
|
|
47
|
+
3. Read `chronometric.hyperfocus_break_minutes` from profile. Default to 90 if absent.
|
|
48
|
+
4. Read `preferences.max_chunk_size` from profile. Default to 5 if absent. Clamp to range [1, 7].
|
|
49
|
+
5. **Design-critique override.** If the user's prompt matches any of the design-critique phrase triggers in frontmatter (case-insensitive, substring match), skip the session-length tier selection in step 6 and apply Tier B directly. The verdict (the answer line) must be the design call — ship/don't-ship/iterate/blocker — not a preamble. Reasoning bullets follow.
|
|
50
|
+
6. Otherwise, pick the tier based on `current_session_length`:
|
|
51
|
+
- **Tier A — under 30 minutes.** Apply light Answer-First: one summary sentence (≤ 80 characters) as the first line. Blank line. Then the full original response unchanged.
|
|
52
|
+
- **Tier B — 30 minutes up to `hyperfocus_break_minutes`.** Apply aggressive Answer-First: first line is the answer (≤ 80 characters). Next N lines are supporting bullets where `N == max_chunk_size`. Anything that would not fit goes into a single `<details><summary>More detail</summary>…</details>` block. Never exceed the chunk limit in the visible (non-collapsed) section.
|
|
53
|
+
- **Tier C — at or above `hyperfocus_break_minutes`.** Call `request_break_if_needed(threshold_minutes = hyperfocus_break_minutes)`. If it returns `null`, fall back to Tier B. If it returns an object, prepend exactly ONE line to the Tier-B output that quotes `prior_intent` verbatim and names the `suggested_action`. Format: `Session length: <M> minutes. You set the threshold at <T>. Your stated intent: "<prior_intent>". Suggested next action: <suggested_action>.` Then a blank line, then the Tier-B response. Do not block. Do not repeat the line on subsequent responses unless the session length crosses another full threshold multiple.
|
|
54
|
+
7. Emit the transformed response.
|
|
55
|
+
|
|
56
|
+
## Outputs
|
|
57
|
+
|
|
58
|
+
- **Tier A.** One-sentence answer, blank line, original response.
|
|
59
|
+
- **Tier B.** Answer line, blank line, up to `max_chunk_size` bullets, optional collapsed details block.
|
|
60
|
+
- **Tier C.** One data line (session length, threshold, quoted prior intent, suggested action), blank line, Tier-B-shaped response.
|
|
61
|
+
|
|
62
|
+
The visible word count above any collapsed block must not exceed roughly 120 words in Tier B/C. If the underlying response is genuinely longer, the surplus belongs in the details block, not in the visible chunk.
|
|
63
|
+
|
|
64
|
+
## Do not
|
|
65
|
+
|
|
66
|
+
- Do not editorialise time. Never write "you've been at this a while", "wow, long session", "time flies". State the data plainly: `Session length: 102 minutes. You set the threshold at 90.`
|
|
67
|
+
- Do not use the word "hyperfocus" in user-facing output. It is a clinical term. The skill name uses it for developer-facing reasons only.
|
|
68
|
+
- Do not block, refuse, or withhold the user's response. The transform reshapes — it never gates.
|
|
69
|
+
- Do not use second-person directives: no "you should", no "you need to", no "you've been". State data; the user reads it.
|
|
70
|
+
- Do not paraphrase `prior_intent`. Quote it verbatim, inside double-quotes.
|
|
71
|
+
- Do not exceed `preferences.max_chunk_size` bullets in the visible section.
|
|
72
|
+
- Do not repeat the threshold line on every subsequent response — only when a new threshold multiple is crossed.
|
|
73
|
+
- Do not invent a `suggested_action` value. Use the exact string returned by `request_break_if_needed`. If the enum value is unfamiliar, render it literally (e.g. `switch_context`).
|
|
74
|
+
|
|
75
|
+
## What this skill is not
|
|
76
|
+
|
|
77
|
+
- Not a productivity coach.
|
|
78
|
+
- Not a wellness nudge.
|
|
79
|
+
- Not a moral judgement on session length.
|
|
80
|
+
- Not a clinical intervention. The skill emits structured data the user has pre-consented to see; nothing more.
|
|
81
|
+
|
|
82
|
+
## Examples
|
|
83
|
+
|
|
84
|
+
See `tests/`:
|
|
85
|
+
|
|
86
|
+
- `01-short-session-no-change.md` — Tier A: light Answer-First on a 12-minute session.
|
|
87
|
+
- `02-long-session-answer-first.md` — Tier B: aggressive Answer-First on a 75-minute session.
|
|
88
|
+
- `03-past-threshold-soft-nudge.md` — Tier C: one verbatim-intent line on a 102-minute session past the 90-minute threshold.
|
|
89
|
+
- `04-design-critique.md` — Tier B forced by a design-critique phrase trigger on an 8-minute session; verdict line precedes the reasoning bullets.
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ocd-decision-finalizer
|
|
3
|
+
version: 0.1.0
|
|
4
|
+
description: Surfaces prior decision evidence on repeat-validation requests; declines further re-analysis until new information appears.
|
|
5
|
+
neurotypes: ["ocd"]
|
|
6
|
+
status: beta
|
|
7
|
+
triggers:
|
|
8
|
+
- phrase_pattern: "should I really"
|
|
9
|
+
- phrase_pattern: "is this okay"
|
|
10
|
+
- phrase_pattern: "am I sure"
|
|
11
|
+
- phrase_pattern: "should we revisit"
|
|
12
|
+
mcp_dependencies:
|
|
13
|
+
- server: mcp-cognitive-graph
|
|
14
|
+
tools: [recall_decisions, recall_entity, record_fact]
|
|
15
|
+
profile_dependencies:
|
|
16
|
+
- identity.neurotypes
|
|
17
|
+
- guardrails.sycophancy_check
|
|
18
|
+
license: AGPL-3.0-or-later
|
|
19
|
+
authors:
|
|
20
|
+
- neurodock-core
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# ocd-decision-finalizer
|
|
24
|
+
|
|
25
|
+
This skill responds to repeat re-validation of an already-made decision by surfacing the prior decision verbatim from the cognitive graph and declining to re-analyse it until the user supplies new information. It is a workflow tool, not a clinical intervention. The user remains the authority and can override at any time.
|
|
26
|
+
|
|
27
|
+
# TODO: phase-2 mcp-guardrail integration — once `mcp-guardrail.check_rumination` is shipped, this skill will defer count-keeping to that server and only handle the response shape.
|
|
28
|
+
|
|
29
|
+
## Activation criteria
|
|
30
|
+
|
|
31
|
+
Activate only when **all** of the following are true:
|
|
32
|
+
|
|
33
|
+
- `profile.identity.neurotypes` contains `"ocd"`. If the user has not self-IDed OCD, this skill does not run. Never infer the neurotype from the user's text.
|
|
34
|
+
- The user's current message contains one of the trigger phrase patterns: `should I really`, `is this okay`, `am I sure`, `should we revisit`.
|
|
35
|
+
- The user's message names, or clearly references, a decision (a named technology, vendor, person, plan, or named project decision). If no decision is identifiable, do not activate — respond normally.
|
|
36
|
+
|
|
37
|
+
Do not activate if the user's message includes an explicit override token (see step 5).
|
|
38
|
+
|
|
39
|
+
## Operating instructions
|
|
40
|
+
|
|
41
|
+
Follow these steps in order. Do not improvise extra tool calls.
|
|
42
|
+
|
|
43
|
+
1. **Resolve the decision.** If the user names the decision directly (e.g. "Postgres" or "the v0.2 release plan"), call `mcp-cognitive-graph.recall_entity(name_or_alias=<the named thing>)`. If `entity` is null or `entity.type` is not `decision`, fall through to step 2. Otherwise remember `decision_id = entity.id`.
|
|
44
|
+
|
|
45
|
+
2. **List recent decisions for the project.** Call `mcp-cognitive-graph.recall_decisions(project=<the project the user is working in>, since=<14 days ago, ISO date>)`. Match the decision the user is asking about by string similarity against `decisions[].name`. If no match crosses 0.6 similarity, do not activate — respond normally and note "I do not have a prior decision record matching this; treating it as a fresh question." Stop.
|
|
46
|
+
|
|
47
|
+
3. **Count prior re-validations.** From the `facts` array on a `recall_entity(name_or_alias=decision_id)` call, count facts where `predicate == "tagged"` and `object.literal == "re-validated"`, scoped to the current local day. Call this count `N`.
|
|
48
|
+
|
|
49
|
+
4. **Detect fresh context in the current message.** If the user's message contains an explicit fresh-context marker — `this is new`, `since I last asked`, `new information`, `update:`, or a clearly novel fact not present in the existing facts — treat this as fresh context. Skip finality. Record the new fact: `record_fact(subject={type: "decision", id: decision_id}, predicate="mentioned_in", object={literal: <the new fact, verbatim, max 200 chars>}, source="ocd-decision-finalizer", confidence=0.8)`. Then respond normally. Stop.
|
|
50
|
+
|
|
51
|
+
5. **Detect explicit override.** If the user's message ends with `--override "fresh-context"` (or any `--override "<reason>"` form), respect it. Record the override locally only: `record_fact(subject={type: "decision", id: decision_id}, predicate="tagged", object={literal: "override:<reason>"}, source="ocd-decision-finalizer", confidence=1.0)`. Respond normally. The override is not transmitted; it is a local audit row. Stop.
|
|
52
|
+
|
|
53
|
+
6. **Log this re-validation request.** Before producing a response, call `record_fact(subject={type: "decision", id: decision_id}, predicate="tagged", object={literal: "re-validated"}, source="ocd-decision-finalizer", confidence=1.0)`. This call must happen on every activation that reaches this step so a future call sees the correct `N`.
|
|
54
|
+
|
|
55
|
+
7. **Branch on N.**
|
|
56
|
+
- If the post-write `N` is less than 3 (i.e. before this call there were fewer than 2 prior re-validations today): respond normally to the user's question, with one extra sentence: `This is the Nth time we have revisited this today; previously concluded: <decision.name> on <decided_on>.` Stop.
|
|
57
|
+
- If the post-write `N` is 3 or greater: enter **decision-finality mode** below.
|
|
58
|
+
|
|
59
|
+
## Decision-finality mode (output shape when N ≥ 3)
|
|
60
|
+
|
|
61
|
+
Render the following four-section response, in this order. Plain prose. No headers above the first section other than a one-line opener.
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
Opener (≤ 80 chars): direct, factual, names the decision and the count.
|
|
65
|
+
|
|
66
|
+
### What was decided
|
|
67
|
+
> "<decision.name>"
|
|
68
|
+
Decided on <decided_on>. Confidence at recording: <confidence with two decimals>.
|
|
69
|
+
Attribution: <decided_by[*].name comma-separated, or "unattributed">.
|
|
70
|
+
Source: <source verbatim if non-null, otherwise omit this line>.
|
|
71
|
+
|
|
72
|
+
### What you weighed
|
|
73
|
+
<Up to 5 bullets from facts on the decision entity where predicate is "mentioned_in"
|
|
74
|
+
and object.literal contains a trade-off marker (e.g. "trade-off:", "vs", "weighed").
|
|
75
|
+
Quote each literal verbatim. If no such facts exist, write the single line:
|
|
76
|
+
"No trade-offs recorded against this decision in the graph.">
|
|
77
|
+
|
|
78
|
+
### The grounded reply
|
|
79
|
+
I will not re-analyse this decision unless you give me new information. If something has changed, tell me what changed.
|
|
80
|
+
|
|
81
|
+
### Override
|
|
82
|
+
If you want me to run the analysis again anyway, repeat the message with `--override "fresh-context"` appended. The override is logged locally only.
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Rules:
|
|
86
|
+
|
|
87
|
+
- Every quoted decision name must come back verbatim from the graph. Do not paraphrase, summarise, or "polish" the title.
|
|
88
|
+
- The opener is one line. It states "This is the Nth time today" with the integer, and the decision name. No softening adjectives. No "I notice that".
|
|
89
|
+
- The "what you weighed" section is bounded at 5 bullets. If more than 5 candidate facts exist, take the 5 with the most recent `recorded_at` and append one closing line `(<M> further trade-off facts in the graph; ask for them if you want the full list.)`
|
|
90
|
+
- The override line is always present when finality fires. Without it the response is non-overridable, which violates the ethics contract (see ethics framework, items 2 and 3).
|
|
91
|
+
|
|
92
|
+
## What this skill is not
|
|
93
|
+
|
|
94
|
+
This is not a clinical intervention. It is not a refusal to help. It is not a judgement about the user. It surfaces prior reasoning from the graph and asks the user to add new information before more analysis. The user is the authority on whether to override. There is no diagnosis here, no treatment claim, no implication that the user is doing something wrong.
|
|
95
|
+
|
|
96
|
+
## Do not
|
|
97
|
+
|
|
98
|
+
- Do not use the words `rumination`, `anxiety`, `obsessive`, `compulsive`, `spiral`, `loop`, `executive function`, `neurodivergent`, `executive dysfunction`, or `intrusive` in user-facing output.
|
|
99
|
+
- Do not lecture about repetition. Do not say "you've asked this before — try to let it go".
|
|
100
|
+
- Do not paraphrase the decision name. Quote it verbatim from the graph.
|
|
101
|
+
- Do not fabricate a decision when `recall_decisions` returned none. Fall through to normal response.
|
|
102
|
+
- Do not fire when `"ocd"` is absent from `profile.identity.neurotypes`. The skill is opt-in by neurotype self-ID.
|
|
103
|
+
- Do not transmit the override anywhere; it is a local audit row only.
|
|
104
|
+
- Do not enter finality mode without surfacing the override path in the same response.
|
|
105
|
+
- Do not call `record_fact` more than twice per activation (one re-validation tag, optionally one fresh-context fact). Extra writes pollute the graph.
|
|
106
|
+
|
|
107
|
+
## Examples
|
|
108
|
+
|
|
109
|
+
See `tests/01-fourth-revalidation-same-day.md`, `tests/02-new-information-resets-counter.md`, and `tests/03-explicit-override.md` for full invocation traces.
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: visual-organizer
|
|
3
|
+
version: 0.1.0
|
|
4
|
+
description: Converts prose, meeting notes, or overwhelm-dumps into Mermaid diagrams (flowchart / sequence / mindmap).
|
|
5
|
+
neurotypes: ["adhd", "audhd", "asd"]
|
|
6
|
+
status: stable
|
|
7
|
+
triggers:
|
|
8
|
+
- command: "/visualize"
|
|
9
|
+
- command: "/diagram"
|
|
10
|
+
- phrase: "draw this out"
|
|
11
|
+
- phrase: "make a diagram"
|
|
12
|
+
- phrase: "i can't see the structure"
|
|
13
|
+
- phrase: "make a mermaid chart of this"
|
|
14
|
+
- phrase: "show me the flow visually"
|
|
15
|
+
- phrase: "map out the relationships"
|
|
16
|
+
mcp_dependencies: []
|
|
17
|
+
profile_dependencies:
|
|
18
|
+
- preferences.motion # if "reduced", the diagram MUST have animation: false
|
|
19
|
+
license: AGPL-3.0-or-later
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# visual-organizer
|
|
23
|
+
|
|
24
|
+
Turns a wall of related ideas into a Mermaid diagram so the user can see structure instead of paragraphs. Pure formatting skill — no MCP calls in v0.1.0.
|
|
25
|
+
|
|
26
|
+
## Activation
|
|
27
|
+
|
|
28
|
+
Activate when any of the following holds:
|
|
29
|
+
|
|
30
|
+
1. The user invokes `/visualize` or `/diagram`.
|
|
31
|
+
2. The user says any of these (case-insensitive): "draw this out", "make a diagram", "make a mermaid chart of this", "show me the flow visually", "map out the relationships".
|
|
32
|
+
3. The user says they can't see the structure, can't hold it all in their head, or otherwise signals that prose isn't loading — e.g. "I can't see the structure", "I've lost the thread of this", "I can't picture how these connect". Treat these as a request for a structural view alongside the prose answer.
|
|
33
|
+
4. The user has just pasted a wall of interlinked items (≥ 6 distinct concepts, references between them) and a structural view would help. Use judgement; the prose answer still goes first. Offer the diagram, don't impose it.
|
|
34
|
+
|
|
35
|
+
The user picked the trigger. Respect it. Do not editorialise their state.
|
|
36
|
+
|
|
37
|
+
## Pick the diagram type
|
|
38
|
+
|
|
39
|
+
| Input shape | Diagram |
|
|
40
|
+
| ------------------------------------------------- | ----------------------------------------------- |
|
|
41
|
+
| Linear cause-and-effect, a process, or a pipeline | `flowchart TD` |
|
|
42
|
+
| Interactions between named actors over time | `sequenceDiagram` |
|
|
43
|
+
| Loose related concepts the user dumped in one go | `mindmap` |
|
|
44
|
+
| Branching decisions and consequences | `flowchart LR` with diamond `{decision?}` nodes |
|
|
45
|
+
|
|
46
|
+
If two fit, pick the one with fewer nodes. Cognitive load cap below is the tie-breaker.
|
|
47
|
+
|
|
48
|
+
## Generate the Mermaid block
|
|
49
|
+
|
|
50
|
+
1. Open a fenced ` ```mermaid ` code block. Close it cleanly.
|
|
51
|
+
2. Use 2-space indentation throughout.
|
|
52
|
+
3. Node IDs: short, no spaces, `camelCase` (e.g. `prRaised`, `staging`, `merge`).
|
|
53
|
+
4. Node labels: human-readable inside `[brackets]` (rectangles), `("parens")` (rounded), or `{braces}` (decisions).
|
|
54
|
+
5. Edge labels: `-- short label -->`. Keep them under five words.
|
|
55
|
+
6. Group with `subgraph name["Label"] ... end` when grouping clarifies; do not over-group.
|
|
56
|
+
|
|
57
|
+
## Required directives (every diagram)
|
|
58
|
+
|
|
59
|
+
Put both at the very top of the block, before any other content.
|
|
60
|
+
|
|
61
|
+
1. `%%{init: {'theme':'neutral'}}%%` — single neutral hue, matches the project palette.
|
|
62
|
+
2. If `profile.preferences.motion == "reduced"`, also add `%%{init: {'flowchart': {'animation': false}}}%%`.
|
|
63
|
+
|
|
64
|
+
The two init blocks can be merged into one when both apply. Either form is acceptable as long as both keys are honoured.
|
|
65
|
+
|
|
66
|
+
## Cognitive load cap
|
|
67
|
+
|
|
68
|
+
**Hard cap: 25 nodes per diagram.** If the input has more, split into two diagrams or roll up sub-concepts into a single node and surface the detail in prose underneath. This is the project default — do not exceed it without an explicit user instruction.
|
|
69
|
+
|
|
70
|
+
## Output structure (every invocation)
|
|
71
|
+
|
|
72
|
+
In this order, every time:
|
|
73
|
+
|
|
74
|
+
1. One sentence stating what the diagram represents. No preamble.
|
|
75
|
+
2. The fenced Mermaid block.
|
|
76
|
+
3. An accessible-description line directly below the block, in the exact format:
|
|
77
|
+
`_Accessible description: <plain-prose summary>_`
|
|
78
|
+
Length: 20–200 characters. Screen-reader users get the same content as sighted users.
|
|
79
|
+
4. Optional: 1–3 bullets calling out the most important relationships shown. Only include if they add information the diagram alone doesn't make obvious.
|
|
80
|
+
|
|
81
|
+
## Do not
|
|
82
|
+
|
|
83
|
+
- Do not produce a diagram **instead of** a prose answer when the user asked a question. The diagram is a structural view alongside prose, not a replacement.
|
|
84
|
+
- Do not editorialise the user's state ("looks like you're overwhelmed!"). Just turn the text into a diagram.
|
|
85
|
+
- Do not exceed 25 nodes without an explicit instruction.
|
|
86
|
+
- Do not omit the accessible-description line. It is mandatory.
|
|
87
|
+
- Do not use colour to convey meaning — the neutral theme is single-hue by design.
|
|
88
|
+
- Do not animate. The neutral theme plus `animation: false` (when set) keeps motion out.
|
|
89
|
+
|
|
90
|
+
# TODO: phase-2 enrichment — when `mcp-cognitive-graph` is available, optionally call `recall_entity` to populate node labels with the user's existing terminology and link concepts to prior decisions.
|
|
91
|
+
|
|
92
|
+
## Examples
|
|
93
|
+
|
|
94
|
+
See `tests/01-flowchart-from-prose.md`, `tests/02-sequence-from-meeting-notes.md`, `tests/03-mindmap-from-overwhelm-dump.md`, and `tests/04-flowchart-from-cant-see-structure.md` for full input → output pairs that the CI replays against a reference client.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/commands/host.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/commands/host.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAC;AAE7F,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC9C;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;CACvD;AAoDD,wBAAgB,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,iBAAiB,CAQ1E;AAED,wBAAgB,gBAAgB,IAAI,iBAAiB,CAIpD"}
|
package/dist/commands/host.js
CHANGED
|
@@ -16,11 +16,7 @@
|
|
|
16
16
|
import { fileURLToPath } from "node:url";
|
|
17
17
|
import { existsSync, realpathSync } from "node:fs";
|
|
18
18
|
import { join, resolve, dirname } from "node:path";
|
|
19
|
-
import { register, unregister, detectPlatform, } from "@neurodock/native-host/dist/registration/index.js";
|
|
20
|
-
const DEFAULT_EXTENSION_IDS = [
|
|
21
|
-
// Placeholder until the Chrome Web Store ID is allocated.
|
|
22
|
-
"__NEURODOCK_EXTENSION_ID__",
|
|
23
|
-
];
|
|
19
|
+
import { register, unregister, detectPlatform, withDefaultExtensionIds, } from "@neurodock/native-host/dist/registration/index.js";
|
|
24
20
|
function resolveHostBinPath() {
|
|
25
21
|
// The bin lives at `<native-host package>/dist/cli.js`. We resolve it
|
|
26
22
|
// relative to this module so the path works both from a checkout
|
|
@@ -53,7 +49,9 @@ function resolveHostBinPath() {
|
|
|
53
49
|
return "neurodock-native-host";
|
|
54
50
|
}
|
|
55
51
|
export function runHostInstall(opts) {
|
|
56
|
-
|
|
52
|
+
// Always register the published store ids; caller-supplied ids (e.g. a
|
|
53
|
+
// locally-loaded unpacked build) are added on top.
|
|
54
|
+
const ids = withDefaultExtensionIds(opts.extensionIds);
|
|
57
55
|
const platform = detectPlatform();
|
|
58
56
|
const hostPath = resolveHostBinPath();
|
|
59
57
|
const outcomes = register({ hostPath, allowedExtensionIds: ids });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host.js","sourceRoot":"","sources":["../../src/commands/host.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH;;;;;;;;;;GAUG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EACL,QAAQ,EACR,UAAU,EACV,cAAc,
|
|
1
|
+
{"version":3,"file":"host.js","sourceRoot":"","sources":["../../src/commands/host.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH;;;;;;;;;;GAUG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EACL,QAAQ,EACR,UAAU,EACV,cAAc,EACd,uBAAuB,GACxB,MAAM,mDAAmD,CAAC;AAY3D,SAAS,kBAAkB;IACzB,sEAAsE;IACtE,iEAAiE;IACjE,iEAAiE;IACjE,kFAAkF;IAClF,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG;QACjB,iFAAiF;QACjF,OAAO,CACL,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,cAAc,EACd,YAAY,EACZ,aAAa,EACb,MAAM,EACN,QAAQ,CACT;QACD,sEAAsE;QACtE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC;QAChE,6FAA6F;QAC7F,OAAO,CACL,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,aAAa,EACb,MAAM,EACN,QAAQ,CACT;QACD,WAAW;QACX,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC;KACjE,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC;gBACH,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,CAAC;YACX,CAAC;QACH,CAAC;IACH,CAAC;IACD,wEAAwE;IACxE,wEAAwE;IACxE,sDAAsD;IACtD,OAAO,uBAAuB,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAwB;IACrD,uEAAuE;IACvE,mDAAmD;IACnD,MAAM,GAAG,GAAG,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAG,QAAQ,CAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC;IAClE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAG,UAAU,EAAE,CAAC;IAC9B,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAChC,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { readEnv } from "../lib/env.js";
|
|
2
2
|
import { runInit, type InitRunResult } from "./init.js";
|
|
3
3
|
import { runHostInstall as defaultRunHostInstall, type HostCommandResult } from "./host.js";
|
|
4
|
+
import { runInstallSkills as defaultRunInstallSkills, type InstallSkillsResult } from "./install-skills.js";
|
|
4
5
|
import type { ClientId } from "../types.js";
|
|
5
6
|
export type InstallerKind = "uv" | "pip";
|
|
6
7
|
export type InstallerChoice = InstallerKind | "auto";
|
|
@@ -18,6 +19,25 @@ export interface InstallAllOptions {
|
|
|
18
19
|
* command.
|
|
19
20
|
*/
|
|
20
21
|
readonly noNativeHost: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* When true, skip copying the per-neurotype skills into the client's
|
|
24
|
+
* personal-skills directory. Skills are installed by default so the
|
|
25
|
+
* happy path is one command; `--no-skills` opts out (mirrors
|
|
26
|
+
* `--no-native-host`).
|
|
27
|
+
*/
|
|
28
|
+
readonly noSkills: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Extra browser-extension ids to allow on the native host, on top of the
|
|
31
|
+
* published store ids. Needed for a locally-loaded unpacked build, whose
|
|
32
|
+
* id differs from the published one. Empty/omitted = published ids only.
|
|
33
|
+
*/
|
|
34
|
+
readonly extensionIds?: ReadonlyArray<string>;
|
|
35
|
+
}
|
|
36
|
+
export interface SkillsOutcome {
|
|
37
|
+
/** "installed" = ran, "skipped" = --no-skills or dry-run, "failed" = error/exit!=0. */
|
|
38
|
+
readonly status: "installed" | "skipped" | "failed";
|
|
39
|
+
readonly result?: InstallSkillsResult;
|
|
40
|
+
readonly error?: string;
|
|
21
41
|
}
|
|
22
42
|
export interface NativeHostOutcome {
|
|
23
43
|
/** "installed" = ran, "skipped" = --no-native-host or dry-run, "failed" = error caught. */
|
|
@@ -43,6 +63,7 @@ export interface InstallAllResult {
|
|
|
43
63
|
readonly packages: ReadonlyArray<PackageOutcome>;
|
|
44
64
|
readonly initResult: InitRunResult | null;
|
|
45
65
|
readonly nativeHost: NativeHostOutcome;
|
|
66
|
+
readonly skills: SkillsOutcome;
|
|
46
67
|
readonly messages: ReadonlyArray<string>;
|
|
47
68
|
/** 0 = ok, 1 = install/path failure, 2 = init failure */
|
|
48
69
|
readonly exitCode: 0 | 1 | 2;
|
|
@@ -64,6 +85,12 @@ export interface InstallAllDependencies {
|
|
|
64
85
|
* touch the user's registry / config dirs.
|
|
65
86
|
*/
|
|
66
87
|
readonly runHostInstall?: typeof defaultRunHostInstall;
|
|
88
|
+
/**
|
|
89
|
+
* Override the skills install step. Defaults to the real
|
|
90
|
+
* `runInstallSkills` from ./install-skills.js. Tests inject a stub so
|
|
91
|
+
* they don't touch the user's ~/.claude/skills dir.
|
|
92
|
+
*/
|
|
93
|
+
readonly runInstallSkills?: typeof defaultRunInstallSkills;
|
|
67
94
|
}
|
|
68
95
|
export type SpawnFn = (command: string, args: ReadonlyArray<string>, options: {
|
|
69
96
|
readonly env?: NodeJS.ProcessEnv;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-all.d.ts","sourceRoot":"","sources":["../../src/commands/install-all.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAoB,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EACL,cAAc,IAAI,qBAAqB,EACvC,KAAK,iBAAiB,EACvB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,KAAK,CAAC;AACzC,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG,MAAM,CAAC;AAErD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,KAAK,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"install-all.d.ts","sourceRoot":"","sources":["../../src/commands/install-all.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ import { spawnSync } from "node:child_process";
|
|
|
6
6
|
import { readEnv } from "../lib/env.js";
|
|
7
7
|
import { runInit } from "./init.js";
|
|
8
8
|
import { runHostInstall as defaultRunHostInstall, } from "./host.js";
|
|
9
|
+
import { runInstallSkills as defaultRunInstallSkills, } from "./install-skills.js";
|
|
9
10
|
const PACKAGES = [
|
|
10
11
|
{
|
|
11
12
|
pkg: "neurodock-mcp-chronometric",
|
|
@@ -33,6 +34,7 @@ export async function runInstallAll(options, deps = {}) {
|
|
|
33
34
|
const spawn = deps.spawn ?? defaultSpawn;
|
|
34
35
|
const init = deps.runInit ?? runInit;
|
|
35
36
|
const hostInstall = deps.runHostInstall ?? defaultRunHostInstall;
|
|
37
|
+
const skillsInstall = deps.runInstallSkills ?? defaultRunInstallSkills;
|
|
36
38
|
const messages = [];
|
|
37
39
|
// Phase 1: pick installer.
|
|
38
40
|
const installer = resolveInstaller(options.installer, env, spawn);
|
|
@@ -54,11 +56,18 @@ export async function runInstallAll(options, deps = {}) {
|
|
|
54
56
|
else {
|
|
55
57
|
messages.push("Would register the optional native-messaging host (browser extension <-> profile.yaml).");
|
|
56
58
|
}
|
|
59
|
+
if (options.noSkills) {
|
|
60
|
+
messages.push("Would skip the per-neurotype skills install (--no-skills).");
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
messages.push("Would install the per-neurotype skills into ~/.claude/skills (Claude Code / Claude Desktop).");
|
|
64
|
+
}
|
|
57
65
|
return {
|
|
58
66
|
installer: "dry-run",
|
|
59
67
|
packages: [],
|
|
60
68
|
initResult: null,
|
|
61
69
|
nativeHost: { status: "skipped" },
|
|
70
|
+
skills: { status: "skipped" },
|
|
62
71
|
messages,
|
|
63
72
|
exitCode: 0,
|
|
64
73
|
};
|
|
@@ -70,6 +79,7 @@ export async function runInstallAll(options, deps = {}) {
|
|
|
70
79
|
packages: [],
|
|
71
80
|
initResult: null,
|
|
72
81
|
nativeHost: { status: "skipped" },
|
|
82
|
+
skills: { status: "skipped" },
|
|
73
83
|
messages,
|
|
74
84
|
exitCode: 1,
|
|
75
85
|
};
|
|
@@ -121,6 +131,7 @@ export async function runInstallAll(options, deps = {}) {
|
|
|
121
131
|
packages: outcomes,
|
|
122
132
|
initResult: null,
|
|
123
133
|
nativeHost: { status: "skipped" },
|
|
134
|
+
skills: { status: "skipped" },
|
|
124
135
|
messages,
|
|
125
136
|
exitCode: 2,
|
|
126
137
|
};
|
|
@@ -130,6 +141,10 @@ export async function runInstallAll(options, deps = {}) {
|
|
|
130
141
|
// installs the browser extension, and surfacing a warning is friendlier
|
|
131
142
|
// than failing the whole "first-time install" command.
|
|
132
143
|
const nativeHost = installNativeHost(options, hostInstall, messages);
|
|
144
|
+
// Phase 3.6: install the per-neurotype skills (opt-out). Failure is
|
|
145
|
+
// non-fatal — the MCP servers are the core; skills are an enhancement —
|
|
146
|
+
// so a write hiccup in ~/.claude/skills should not fail the command.
|
|
147
|
+
const skills = await installSkills(options, skillsInstall, deps, messages);
|
|
133
148
|
// Phase 4: summary + suggested prompts.
|
|
134
149
|
const installedCount = outcomes.filter((o) => o.installed).length;
|
|
135
150
|
const onPathCount = outcomes.filter((o) => o.onPath).length;
|
|
@@ -151,6 +166,7 @@ export async function runInstallAll(options, deps = {}) {
|
|
|
151
166
|
: "pip"));
|
|
152
167
|
messages.push(" - Wired your MCP-aware clients (Claude Desktop / Claude Code / Cursor)");
|
|
153
168
|
messages.push(` - ${describeNativeHostBullet(nativeHost)}`);
|
|
169
|
+
messages.push(` - ${describeSkillsBullet(skills)}`);
|
|
154
170
|
messages.push("");
|
|
155
171
|
messages.push("Try one of these in your MCP client:");
|
|
156
172
|
for (const p of SUGGESTED_PROMPTS) {
|
|
@@ -164,10 +180,46 @@ export async function runInstallAll(options, deps = {}) {
|
|
|
164
180
|
packages: outcomes,
|
|
165
181
|
initResult,
|
|
166
182
|
nativeHost,
|
|
183
|
+
skills,
|
|
167
184
|
messages,
|
|
168
185
|
exitCode,
|
|
169
186
|
};
|
|
170
187
|
}
|
|
188
|
+
async function installSkills(options, skillsInstall, deps, messages) {
|
|
189
|
+
messages.push("");
|
|
190
|
+
if (options.noSkills) {
|
|
191
|
+
messages.push("Skipping skills install (--no-skills).");
|
|
192
|
+
return { status: "skipped" };
|
|
193
|
+
}
|
|
194
|
+
messages.push("Installing per-neurotype skills (Claude Code / Claude Desktop)...");
|
|
195
|
+
try {
|
|
196
|
+
const result = await skillsInstall({ client: options.client, dryRun: false, yes: options.yes }, deps.envOverrides ? { envOverrides: deps.envOverrides } : {});
|
|
197
|
+
for (const m of result.messages)
|
|
198
|
+
messages.push(` ${m}`);
|
|
199
|
+
return {
|
|
200
|
+
status: result.exitCode === 0 ? "installed" : "failed",
|
|
201
|
+
result,
|
|
202
|
+
...(result.exitCode !== 0
|
|
203
|
+
? { error: "skills install reported a non-zero exit" }
|
|
204
|
+
: {}),
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
catch (err) {
|
|
208
|
+
const detail = err instanceof Error ? err.message : String(err);
|
|
209
|
+
messages.push(` [warn] skills install failed: ${truncate(detail)}`);
|
|
210
|
+
messages.push(" This is optional — the MCP servers are wired regardless. Re-run 'neurodock install-skills' later.");
|
|
211
|
+
return { status: "failed", error: detail };
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
function describeSkillsBullet(outcome) {
|
|
215
|
+
if (outcome.status === "installed") {
|
|
216
|
+
return "Installed the per-neurotype skills into ~/.claude/skills (Claude Code / Claude Desktop)";
|
|
217
|
+
}
|
|
218
|
+
if (outcome.status === "failed") {
|
|
219
|
+
return "Skills install failed (optional — re-run 'neurodock install-skills' later)";
|
|
220
|
+
}
|
|
221
|
+
return "Skipped the per-neurotype skills (optional — run 'neurodock install-skills' to add them)";
|
|
222
|
+
}
|
|
171
223
|
function installNativeHost(options, hostInstall, messages) {
|
|
172
224
|
messages.push("");
|
|
173
225
|
if (options.noNativeHost) {
|
|
@@ -176,7 +228,7 @@ function installNativeHost(options, hostInstall, messages) {
|
|
|
176
228
|
}
|
|
177
229
|
messages.push("Installing native-messaging host (browser extension <-> profile.yaml)...");
|
|
178
230
|
try {
|
|
179
|
-
const result = hostInstall({ extensionIds: [] });
|
|
231
|
+
const result = hostInstall({ extensionIds: options.extensionIds ?? [] });
|
|
180
232
|
for (const o of result.outcomes) {
|
|
181
233
|
const detail = o.detail ? ` — ${o.detail}` : "";
|
|
182
234
|
messages.push(` [${o.action.padEnd(6)}] ${o.browser.padEnd(10)} ${o.manifestPath}${detail}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-all.js","sourceRoot":"","sources":["../../src/commands/install-all.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"install-all.js","sourceRoot":"","sources":["../../src/commands/install-all.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { readEnv } from "../lib/env.js";
|
|
2
|
+
import type { ClientId } from "../types.js";
|
|
3
|
+
export interface InstallSkillsOptions {
|
|
4
|
+
/** Which client's personal-skills dir to target, or `all`. */
|
|
5
|
+
readonly client: ClientId | "all";
|
|
6
|
+
readonly dryRun: boolean;
|
|
7
|
+
readonly yes: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface InstallSkillsDependencies {
|
|
10
|
+
/** Override the environment snapshot (for tests). */
|
|
11
|
+
readonly envOverrides?: Parameters<typeof readEnv>[0];
|
|
12
|
+
/**
|
|
13
|
+
* Override where the bundled skills live. Defaults to the first existing
|
|
14
|
+
* candidate from `bundledSkillsCandidates`. Tests inject a fake source.
|
|
15
|
+
*/
|
|
16
|
+
readonly skillsSourceDir?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface InstallSkillsResult {
|
|
19
|
+
readonly messages: ReadonlyArray<string>;
|
|
20
|
+
/** Number of (skill x client-target) copies written. */
|
|
21
|
+
readonly installed: number;
|
|
22
|
+
/** 0 = ok, 1 = no bundled skills found (packaging bug). */
|
|
23
|
+
readonly exitCode: 0 | 1;
|
|
24
|
+
}
|
|
25
|
+
export declare function runInstallSkills(options: InstallSkillsOptions, deps?: InstallSkillsDependencies): Promise<InstallSkillsResult>;
|
|
26
|
+
//# sourceMappingURL=install-skills.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-skills.d.ts","sourceRoot":"","sources":["../../src/commands/install-skills.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAE,OAAO,EAAoB,MAAM,eAAe,CAAC;AAS1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,oBAAoB;IACnC,8DAA8D;IAC9D,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,KAAK,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,yBAAyB;IACxC,qDAAqD;IACrD,QAAQ,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,wDAAwD;IACxD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,2DAA2D;IAC3D,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;CAC1B;AAUD,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,oBAAoB,EAC7B,IAAI,GAAE,yBAA8B,GACnC,OAAO,CAAC,mBAAmB,CAAC,CAgF9B"}
|