create-snipara 2.0.5 → 2.0.7
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/README.md +27 -19
- package/dist/index.js +59 -42
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -12,8 +12,8 @@ npx create-snipara
|
|
|
12
12
|
|
|
13
13
|
`create-snipara` is the simple onboarding package for the agent path. It
|
|
14
14
|
creates or reuses auth, writes Hosted MCP config, and prepares the local project
|
|
15
|
-
so an LLM client can use Snipara context and reviewed memory.
|
|
16
|
-
|
|
15
|
+
so an LLM client can use Snipara context and reviewed memory. The default path is
|
|
16
|
+
hosted-only so the first success is a grounded answer, not a local tooling tour.
|
|
17
17
|
|
|
18
18
|
Use it when the goal is outcome-first agent work: the user asks for judgment,
|
|
19
19
|
implementation, release, or verification, and the agent handles Snipara context,
|
|
@@ -54,7 +54,7 @@ The product surfaces remain:
|
|
|
54
54
|
- Hosted MCP for LLM agents, context, and reviewed memory
|
|
55
55
|
- HTTP API / SDK for apps, integrators, backends, and pipelines
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
Advanced flags can wire local helpers around those surfaces:
|
|
58
58
|
|
|
59
59
|
- `snipara-companion` for Git-style status, briefs, timelines, phase commits,
|
|
60
60
|
handoffs, resume, and local workflow commands
|
|
@@ -69,12 +69,12 @@ The CLI now works around explicit install profiles:
|
|
|
69
69
|
|
|
70
70
|
| Profile | What it installs | Best for |
|
|
71
71
|
| ------------------ | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
|
|
72
|
-
| `hosted-
|
|
73
|
-
| `hosted-
|
|
72
|
+
| `hosted-only` | Hosted MCP config only | Default: first grounded answer with no local companion, hooks, or sandbox |
|
|
73
|
+
| `hosted-companion` | MCP + `snipara-companion` | Hosted context plus managed local workflow after first value |
|
|
74
74
|
| `full-stack` | MCP + `snipara-companion` + `snipara-sandbox` | Hosted context plus sandboxed local execution. Does not include orchestrator unless `--with-orchestrator` is passed |
|
|
75
75
|
| `runtime-only` | `snipara-sandbox` only | Local execution without hosted API |
|
|
76
76
|
|
|
77
|
-
Default profile: `hosted-
|
|
77
|
+
Default profile: `hosted-only`
|
|
78
78
|
|
|
79
79
|
## Free Account Fit
|
|
80
80
|
|
|
@@ -107,10 +107,10 @@ That distinction matters:
|
|
|
107
107
|
- opens the browser device-flow free Context + Memory account flow when needed
|
|
108
108
|
- writes Hosted MCP configuration
|
|
109
109
|
- detects a GitHub remote and can open the Snipara GitHub App automation path
|
|
110
|
-
-
|
|
110
|
+
- can activate the current folder locally through `snipara-companion source init` after the user opts into Companion
|
|
111
111
|
- explains the GitHub PR Answer Packs path for AI-assisted pull request workflows
|
|
112
|
-
- installs `snipara-companion`
|
|
113
|
-
|
|
112
|
+
- installs `snipara-companion` only with `--advanced`, `--profile hosted-companion`,
|
|
113
|
+
`--profile full-stack`, or `repair --with-companion`
|
|
114
114
|
- installs optional `snipara-sandbox`
|
|
115
115
|
- installs optional `snipara-orchestrator` for proof gates, drift checks, and htask workflows when requested
|
|
116
116
|
- configures `.mcp.json`
|
|
@@ -118,8 +118,8 @@ That distinction matters:
|
|
|
118
118
|
- creates `AGENTS.md` and `CLAUDE.md` when missing, or appends a marked Snipara section when those files already exist
|
|
119
119
|
- creates `.cursor/rules/snipara.mdc` and `.codex/config.toml` when those files do not already exist
|
|
120
120
|
- validates Codex config against Hosted MCP plus `bearer_token_env_var = "SNIPARA_API_KEY"` and tells users to restart Codex after MCP config changes
|
|
121
|
-
- installs local code overlay Git hooks
|
|
122
|
-
|
|
121
|
+
- installs local code overlay Git hooks only for explicit companion/full-stack
|
|
122
|
+
setups unless `--skip-hooks` is passed
|
|
123
123
|
- runs a real hosted MCP `tools/list` check and warns if the server still advertises legacy `rlm_*` duplicate tools
|
|
124
124
|
- generates Mistral Le Chat, Mistral Vibe, and LangChain `ChatMistralAI.bindTools` references without embedding secrets
|
|
125
125
|
- writes client-specific companion packs such as `.snipara/companion/CODEX.md` or `.snipara/companion/GEMINI.md`
|
|
@@ -155,9 +155,10 @@ The interactive flow now asks for:
|
|
|
155
155
|
- API key path: existing API key, free signup, or add key later
|
|
156
156
|
- AI client
|
|
157
157
|
|
|
158
|
-
By default, this uses the
|
|
159
|
-
|
|
160
|
-
|
|
158
|
+
By default, this uses the minimal `hosted-only` setup: hosted MCP config and a
|
|
159
|
+
doctor report, with no local Companion install, hooks, GitHub approval prompt, or
|
|
160
|
+
sandbox prompt. Add `--advanced` when you want profile selection, project id
|
|
161
|
+
entry, hook prompts, GitHub automation prompts, or sandbox provider prompts.
|
|
161
162
|
Use `--with-orchestrator` only when you explicitly need the advanced production
|
|
162
163
|
validation and htask package; it is not part of `full-stack` by default.
|
|
163
164
|
|
|
@@ -188,11 +189,12 @@ native skills should keep using `AGENTS.md`, `CLAUDE.md`, or project rules as th
|
|
|
188
189
|
shared instruction surface.
|
|
189
190
|
|
|
190
191
|
For Codex, `SNIPARA_API_KEY` is the only generated bearer token environment
|
|
191
|
-
variable. If Codex
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
the
|
|
192
|
+
variable. If Codex exposes only the lean Snipara MCP surface after restart,
|
|
193
|
+
that is expected. Use `snipara_help(query=...)` for routed guidance and
|
|
194
|
+
`snipara_help(list_all=true)` to inspect specialist opt-in surfaces. Use
|
|
195
|
+
`snipara-companion recall`, `snipara-companion query`, and
|
|
196
|
+
`snipara-companion task-commit` as the reliable local fallback when the simple
|
|
197
|
+
hosted tools are not callable.
|
|
196
198
|
|
|
197
199
|
Existing root `AGENTS.md` and `CLAUDE.md` files are not replaced. The installer
|
|
198
200
|
adds or refreshes a marked Snipara section so project-specific instructions stay
|
|
@@ -203,6 +205,12 @@ compaction-safe managed workflow and Git-style agent work commands. Keep the
|
|
|
203
205
|
machine plan in JSON for stable phase ids; an optional Markdown file can remain
|
|
204
206
|
the human-facing contract.
|
|
205
207
|
|
|
208
|
+
Enable those local helpers later with:
|
|
209
|
+
|
|
210
|
+
```bash
|
|
211
|
+
npx create-snipara repair --with-companion
|
|
212
|
+
```
|
|
213
|
+
|
|
206
214
|
```bash
|
|
207
215
|
snipara-companion status
|
|
208
216
|
snipara-companion source init .
|
package/dist/index.js
CHANGED
|
@@ -13,7 +13,7 @@ import { homedir } from "os";
|
|
|
13
13
|
// package.json
|
|
14
14
|
var package_default = {
|
|
15
15
|
name: "create-snipara",
|
|
16
|
-
version: "2.0.
|
|
16
|
+
version: "2.0.7",
|
|
17
17
|
description: "Onboard Snipara Hosted MCP Context + Memory with auth, companion workflows, and optional Snipara Sandbox",
|
|
18
18
|
main: "dist/index.js",
|
|
19
19
|
type: "module",
|
|
@@ -197,7 +197,7 @@ function shouldInstallDefaultHooks(aiClient) {
|
|
|
197
197
|
}
|
|
198
198
|
function buildProgram() {
|
|
199
199
|
const program = new Command();
|
|
200
|
-
program.name("create-snipara").description("Scaffold hosted Snipara MCP config
|
|
200
|
+
program.name("create-snipara").description("Scaffold hosted Snipara MCP config; advanced flags add local helpers").version(VERSION);
|
|
201
201
|
program.command("init").description("Install and configure Snipara for this project").option("--api-key <key>", "Snipara API key").option("--slug <slug>", "Project slug").option("--project-id <id>", "Project ID").option(
|
|
202
202
|
"--client <client>",
|
|
203
203
|
"AI client: claude-code, cursor, windsurf, codex, gemini, mistral, chatgpt, vscode, continue, claude-desktop, other"
|
|
@@ -543,9 +543,9 @@ function printBanner() {
|
|
|
543
543
|
\u2551 \u2551
|
|
544
544
|
\u2551 \u2022 Hosted MCP for LLM agents \u2551
|
|
545
545
|
\u2551 \u2022 Free account path with hosted context and reviewed memory \u2551
|
|
546
|
-
\u2551 \u2022
|
|
546
|
+
\u2551 \u2022 First grounded answer before local workflow setup \u2551
|
|
547
547
|
\u2551 \u2022 API / SDK for product integrations \u2551
|
|
548
|
-
\u2551 \u2022 Optional
|
|
548
|
+
\u2551 \u2022 Optional advanced companion, hooks, and Snipara Sandbox helpers \u2551
|
|
549
549
|
\u2551 \u2022 One CLI for auth, config, doctor, repair, and upgrade \u2551
|
|
550
550
|
\u2551 \u2551
|
|
551
551
|
\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D
|
|
@@ -784,7 +784,7 @@ function resolveRequestedProfile(options) {
|
|
|
784
784
|
if (options.profile && isInstallProfile(options.profile)) {
|
|
785
785
|
return options.profile;
|
|
786
786
|
}
|
|
787
|
-
return "hosted-
|
|
787
|
+
return "hosted-only";
|
|
788
788
|
}
|
|
789
789
|
function isInstallProfile(value) {
|
|
790
790
|
return ["hosted-only", "hosted-companion", "full-stack", "runtime-only"].includes(value);
|
|
@@ -828,15 +828,15 @@ function normalizeClientOption(value) {
|
|
|
828
828
|
}
|
|
829
829
|
function installProfileChoices() {
|
|
830
830
|
return [
|
|
831
|
-
{
|
|
832
|
-
title: "Hosted + Companion",
|
|
833
|
-
value: "hosted-companion",
|
|
834
|
-
description: "Default: hosted MCP config plus managed local workflow commands"
|
|
835
|
-
},
|
|
836
831
|
{
|
|
837
832
|
title: "Hosted only",
|
|
838
833
|
value: "hosted-only",
|
|
839
|
-
description: "
|
|
834
|
+
description: "Default: hosted MCP config, no local companion, hooks, or sandbox"
|
|
835
|
+
},
|
|
836
|
+
{
|
|
837
|
+
title: "Hosted + Companion",
|
|
838
|
+
value: "hosted-companion",
|
|
839
|
+
description: "Add managed local workflow commands after first value"
|
|
840
840
|
},
|
|
841
841
|
{
|
|
842
842
|
title: "Hosted + Companion + Sandbox",
|
|
@@ -1492,7 +1492,7 @@ function buildSniparaOnboardingSkill(endpoint, companionPrefix) {
|
|
|
1492
1492
|
"",
|
|
1493
1493
|
`Use the Hosted MCP endpoint: \`${endpoint}\`. Keep the API key in \`SNIPARA_API_KEY\` or the client secret store. Never paste keys into tracked files, prompts, logs, screenshots, or durable memory.`,
|
|
1494
1494
|
"",
|
|
1495
|
-
|
|
1495
|
+
'Validate availability with a simple tool-oriented call such as `snipara_help(query="what should I use for project context?")`, `snipara_settings`, or a lightweight `snipara_context_query`. Empty MCP resources or resource templates do not prove an outage because Snipara may be exposed as a tool-only MCP server.',
|
|
1496
1496
|
"",
|
|
1497
1497
|
"## Setup Steps",
|
|
1498
1498
|
"",
|
|
@@ -1512,7 +1512,7 @@ function buildSniparaOnboardingSkill(endpoint, companionPrefix) {
|
|
|
1512
1512
|
"",
|
|
1513
1513
|
"## Failure Handling",
|
|
1514
1514
|
"",
|
|
1515
|
-
"If broad discovery shows only
|
|
1515
|
+
"If broad discovery shows only the lean default tool surface, treat that as normal. Use `snipara_help(query=...)` for routed guidance, `snipara_help(list_all=true)` to inspect specialist opt-in surfaces, and Companion commands as a local fallback for recall, query, and task commit until the MCP session refreshes.",
|
|
1516
1516
|
""
|
|
1517
1517
|
].join("\n");
|
|
1518
1518
|
}
|
|
@@ -1733,17 +1733,13 @@ This project uses Snipara Hosted MCP for project context and reviewed memory.
|
|
|
1733
1733
|
- For Codex, expose the endpoint as a streamable HTTP MCP server and load the
|
|
1734
1734
|
key from \`SNIPARA_API_KEY\`.
|
|
1735
1735
|
- At the start of every new thread, validate hosted MCP with a tool-oriented
|
|
1736
|
-
call such as \`snipara_settings\`, \`
|
|
1736
|
+
call such as \`snipara_settings\`, \`snipara_help(query=...)\`, or a lightweight
|
|
1737
1737
|
\`snipara_context_query\`. Do not treat empty MCP resources/templates as an
|
|
1738
1738
|
outage because Snipara may be tool-only.
|
|
1739
|
-
- In Codex,
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
- If
|
|
1743
|
-
\`snipara_help(list_all=true)\` and compare exact tool names before concluding
|
|
1744
|
-
that a tool is unavailable. Do not infer absence from one broad discovery
|
|
1745
|
-
pass or a ranked tool-search result.
|
|
1746
|
-
- If Codex still exposes only a partial surface after exact discovery, use
|
|
1739
|
+
- In Codex, a lean Snipara tool set is expected. Use \`snipara_help(query=...)\`
|
|
1740
|
+
for routed guidance and \`snipara_help(list_all=true)\` to inspect specialist
|
|
1741
|
+
opt-in surfaces before requesting expanded schemas.
|
|
1742
|
+
- If Codex still cannot call the simple context or memory tools, use
|
|
1747
1743
|
\`snipara-companion recall\`, \`snipara-companion query\`, and
|
|
1748
1744
|
\`snipara-companion task-commit\` as the reliable local fallback, then restart
|
|
1749
1745
|
or reload Codex after MCP config changes.
|
|
@@ -1823,8 +1819,8 @@ Use Snipara Hosted MCP before answering project-specific questions.
|
|
|
1823
1819
|
|
|
1824
1820
|
- Endpoint: \`${buildHostedMcpEndpoint(answers)}\`
|
|
1825
1821
|
- Auth: use \`SNIPARA_API_KEY\` from the environment. Never commit keys.
|
|
1826
|
-
- At the start of every new thread, validate hosted MCP with a tool-oriented call such as \`snipara_settings\`, \`
|
|
1827
|
-
-
|
|
1822
|
+
- At the start of every new thread, validate hosted MCP with a tool-oriented call such as \`snipara_settings\`, \`snipara_help(query=...)\`, or a lightweight \`snipara_context_query\`. Do not treat empty MCP resources/templates as an outage because Snipara may be tool-only.
|
|
1823
|
+
- A lean default Snipara tool set is expected. Use \`snipara_help(query=...)\` for routed guidance, \`snipara_help(list_all=true)\` to inspect specialist opt-in surfaces, and \`snipara-companion recall\`, \`snipara-companion query\`, or \`snipara-companion task-commit\` as local fallbacks when the simple tools are unavailable.
|
|
1828
1824
|
- If the client supports native skills, install the generated Snipara skill pack from \`.snipara/templates/skills\`. Keep \`AGENTS.md\` as the shared fallback for clients without native skill support.
|
|
1829
1825
|
|
|
1830
1826
|
${EXPERIENCE_GOAL_SECTION}
|
|
@@ -1863,8 +1859,8 @@ This workspace uses Snipara Hosted MCP for current project context, business/cli
|
|
|
1863
1859
|
|
|
1864
1860
|
- Check the configured Snipara MCP server before answering project-specific questions.
|
|
1865
1861
|
- Endpoint: \`${buildHostedMcpEndpoint(answers)}\`
|
|
1866
|
-
- At the start of every new thread, validate hosted MCP with a tool-oriented call such as \`snipara_settings\`, \`
|
|
1867
|
-
-
|
|
1862
|
+
- At the start of every new thread, validate hosted MCP with a tool-oriented call such as \`snipara_settings\`, \`snipara_help(query=...)\`, or a lightweight \`snipara_context_query\`. Do not treat empty MCP resources/templates as an outage because Snipara may be tool-only.
|
|
1863
|
+
- A lean default Snipara tool set is expected. Use \`snipara_help(query=...)\` for routed guidance, \`snipara_help(list_all=true)\` to inspect specialist opt-in surfaces, and \`snipara-companion recall\`, \`snipara-companion query\`, or \`snipara-companion task-commit\` as local fallbacks when the simple tools are unavailable.
|
|
1868
1864
|
- If the client supports native skills, install the generated Snipara skill pack from \`.snipara/templates/skills\`. Keep \`AGENTS.md\` as the shared fallback for clients without native skill support.
|
|
1869
1865
|
|
|
1870
1866
|
${EXPERIENCE_GOAL_SECTION}
|
|
@@ -2541,8 +2537,8 @@ function getClientGuidance(client) {
|
|
|
2541
2537
|
"Codex should use the hosted MCP surface plus AGENTS.md as the canonical project instruction file.",
|
|
2542
2538
|
"The generated .snipara/templates/codex-config.toml is a merge-ready snippet for ~/.codex/config.toml if your Codex app does not read project .codex/config.toml.",
|
|
2543
2539
|
"Use SNIPARA_API_KEY as the only Codex bearer_token_env_var; restart Codex after changing MCP config.",
|
|
2544
|
-
"If Codex
|
|
2545
|
-
"When Codex
|
|
2540
|
+
"If Codex exposes only the lean Snipara tool set, that is expected. Use snipara_help(query=...) for routed guidance and snipara_help(list_all=true) to inspect specialist opt-in surfaces before requesting exact htask or swarm schemas.",
|
|
2541
|
+
"When Codex cannot expose orchestration schemas directly, use snipara-orchestrator swarm-* and htask-* as the primary path for shared queues and multi-agent task work."
|
|
2546
2542
|
];
|
|
2547
2543
|
}
|
|
2548
2544
|
if (client === "gemini") {
|
|
@@ -2591,6 +2587,26 @@ function getClientGuidance(client) {
|
|
|
2591
2587
|
function getCompanionCommands(answers) {
|
|
2592
2588
|
const projectFlag = answers.projectSlug ? ` --project ${answers.projectSlug}` : "";
|
|
2593
2589
|
const clientFlag = getCompanionInitClientFlag(answers.aiClient);
|
|
2590
|
+
if (!answers.installCompanion) {
|
|
2591
|
+
const commands = [
|
|
2592
|
+
{
|
|
2593
|
+
title: "Run doctor for this project",
|
|
2594
|
+
command: `${CREATE_SNIPARA_NPX_COMMAND} doctor`,
|
|
2595
|
+
purpose: "Inspect local wiring and hosted MCP reachability after the AI client restarts."
|
|
2596
|
+
},
|
|
2597
|
+
{
|
|
2598
|
+
title: "Enable local companion later",
|
|
2599
|
+
command: `${CREATE_SNIPARA_NPX_COMMAND} repair --with-companion`,
|
|
2600
|
+
purpose: "Opt into local source activation, managed workflows, guards, and task commits after the first hosted answer works."
|
|
2601
|
+
}
|
|
2602
|
+
];
|
|
2603
|
+
commands.push({
|
|
2604
|
+
title: answers.githubRepo ? "Connect GitHub PR Answer Packs later" : "Connect a GitHub repo for PR Answer Packs",
|
|
2605
|
+
command: `${CREATE_SNIPARA_NPX_COMMAND} --github${answers.githubPath ? ` --github-path ${answers.githubPath}` : ""}`,
|
|
2606
|
+
purpose: "Open the Snipara GitHub App flow only when the user is ready to approve repository access."
|
|
2607
|
+
});
|
|
2608
|
+
return commands;
|
|
2609
|
+
}
|
|
2594
2610
|
const localSourceCommands = answers.installCompanion ? [
|
|
2595
2611
|
{
|
|
2596
2612
|
title: "Activate this folder locally",
|
|
@@ -2602,13 +2618,7 @@ function getCompanionCommands(answers) {
|
|
|
2602
2618
|
command: `${COMPANION_NPX_COMMAND} source sync --json`,
|
|
2603
2619
|
purpose: "Refresh the local snapshot, document dry-run, and code overlay cache after files change."
|
|
2604
2620
|
}
|
|
2605
|
-
] : [
|
|
2606
|
-
{
|
|
2607
|
-
title: "Enable local companion workflows",
|
|
2608
|
-
command: `${CREATE_SNIPARA_NPX_COMMAND} repair --with-companion`,
|
|
2609
|
-
purpose: `Install ${COMPANION_PACKAGE_NAME} so this project can run local source activation, folder onboarding, and managed workflow commands without the dashboard.`
|
|
2610
|
-
}
|
|
2611
|
-
];
|
|
2621
|
+
] : [];
|
|
2612
2622
|
const businessOnboardingCommands = answers.installCompanion ? [
|
|
2613
2623
|
{
|
|
2614
2624
|
title: "Preview a business folder import",
|
|
@@ -2840,8 +2850,8 @@ ${guidance.map((line) => `- ${line}`).join("\n")}
|
|
|
2840
2850
|
|
|
2841
2851
|
## Agent Workflow
|
|
2842
2852
|
|
|
2843
|
-
- At the start of every new thread, validate hosted MCP with a tool-oriented call such as \`snipara_settings\`, \`
|
|
2844
|
-
-
|
|
2853
|
+
- At the start of every new thread, validate hosted MCP with a tool-oriented call such as \`snipara_settings\`, \`snipara_help(query=...)\`, or a lightweight \`snipara_context_query\`. Do not treat empty MCP resources/templates as an outage because Snipara may be tool-only.
|
|
2854
|
+
- A lean default Snipara tool set is expected. Use \`snipara_help(query=...)\` for routed guidance, \`snipara_help(list_all=true)\` to inspect specialist opt-in surfaces, and \`snipara-companion recall\`, \`snipara-companion query\`, or \`snipara-companion task-commit\` as local fallbacks when the simple tools are unavailable.
|
|
2845
2855
|
- Start substantial work with \`snipara_recall\` and \`snipara_context_query\`.
|
|
2846
2856
|
- Use \`answer_pack\` facts, caveats, source maps, and verification checks before making claims.
|
|
2847
2857
|
- For coding tasks, choose a workflow mode before editing: LITE for small single-phase changes, FULL managed workflow for multi-file, risky, release/deploy, architectural, compaction-prone, or future-maintainer-sensitive work.
|
|
@@ -3678,7 +3688,9 @@ function printSuccess(answers, report) {
|
|
|
3678
3688
|
chalk.green(" \u2713 Claude Code") + chalk.dim(" - .mcp.json MCP config, .claude/settings.json hooks when enabled")
|
|
3679
3689
|
);
|
|
3680
3690
|
}
|
|
3681
|
-
console.log(
|
|
3691
|
+
console.log(
|
|
3692
|
+
chalk.green(" \u2713 .snipara/companion") + chalk.dim(" - Doctor report and optional command references")
|
|
3693
|
+
);
|
|
3682
3694
|
const failedChecks = report.checks.filter((check) => check.status === "fail");
|
|
3683
3695
|
const warnedChecks = report.checks.filter((check) => check.status === "warn");
|
|
3684
3696
|
console.log(chalk.bold("\nNext steps:\n"));
|
|
@@ -3688,6 +3700,11 @@ function printSuccess(answers, report) {
|
|
|
3688
3700
|
nextStep += 1;
|
|
3689
3701
|
};
|
|
3690
3702
|
printNextStep("Restart your AI client if you created or changed hosted MCP config.");
|
|
3703
|
+
if (!answers.installCompanion && answers.profile !== "runtime-only") {
|
|
3704
|
+
printNextStep(
|
|
3705
|
+
"Ask your AI client for a first grounded answer using snipara_context_query before enabling local workflow helpers."
|
|
3706
|
+
);
|
|
3707
|
+
}
|
|
3691
3708
|
if (answers.aiClient === "claude-code") {
|
|
3692
3709
|
printNextStep(
|
|
3693
3710
|
"For Claude Code, start a new session and confirm Snipara appears in Settings -> MCP or ToolSearch."
|
|
@@ -3712,7 +3729,7 @@ function printSuccess(answers, report) {
|
|
|
3712
3729
|
"Restart Codex after changing ~/.codex/config.toml so it rediscovers the hosted Snipara MCP tools."
|
|
3713
3730
|
);
|
|
3714
3731
|
printNextStep(
|
|
3715
|
-
"If Codex shows only
|
|
3732
|
+
"If Codex shows only the lean Snipara tool set, that is expected. Use snipara_help(query=...) for routed guidance, confirm specialist opt-in surfaces with snipara_help(list_all=true), and request exact htask or swarm tools only when the workflow explicitly needs them."
|
|
3716
3733
|
);
|
|
3717
3734
|
printNextStep(
|
|
3718
3735
|
"If Codex still does not expose the hosted task-routing tools, prefer snipara-orchestrator swarm-* and htask-* for shared queue or multi-agent task work."
|
|
@@ -3729,11 +3746,11 @@ function printSuccess(answers, report) {
|
|
|
3729
3746
|
"For LangChain JavaScript, adapt .snipara/templates/mistral-langchain-tools.ts to bind Snipara recall, context_query, and settings tools to ChatMistralAI."
|
|
3730
3747
|
);
|
|
3731
3748
|
}
|
|
3732
|
-
printNextStep("Open .snipara/companion/README.md for local commands and repair flow.");
|
|
3733
3749
|
printNextStep(
|
|
3734
3750
|
`Run ${CREATE_SNIPARA_NPX_COMMAND} doctor anytime you want a fresh local validation report.`
|
|
3735
3751
|
);
|
|
3736
3752
|
if (answers.installCompanion) {
|
|
3753
|
+
printNextStep("Open .snipara/companion/README.md for local commands and repair flow.");
|
|
3737
3754
|
printNextStep(
|
|
3738
3755
|
`${COMPANION_COMMAND_NAME} ${MIN_COMPANION_VERSION}+ is installed for low-latency local hooks.`
|
|
3739
3756
|
);
|
|
@@ -3749,7 +3766,7 @@ function printSuccess(answers, report) {
|
|
|
3749
3766
|
);
|
|
3750
3767
|
} else if (answers.profile !== "runtime-only") {
|
|
3751
3768
|
printNextStep(
|
|
3752
|
-
`
|
|
3769
|
+
`Enable Companion, guards, managed workflows, and local folder helpers later with: ${CREATE_SNIPARA_NPX_COMMAND} repair --with-companion`
|
|
3753
3770
|
);
|
|
3754
3771
|
}
|
|
3755
3772
|
if (answers.installRuntime && !answers.runSandboxInit) {
|
|
@@ -3896,7 +3913,7 @@ function resolveMaintenanceProfile(detection, explicitProfile) {
|
|
|
3896
3913
|
if (detection.existingConfig.hasSniparaServer) {
|
|
3897
3914
|
return "hosted-only";
|
|
3898
3915
|
}
|
|
3899
|
-
return "hosted-
|
|
3916
|
+
return "hosted-only";
|
|
3900
3917
|
}
|
|
3901
3918
|
function readApiKeyFromEnvFiles() {
|
|
3902
3919
|
const candidates = [".env.local", ".env"];
|
package/package.json
CHANGED