@brainpilot/app 0.0.5 → 0.0.6

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/dist/scaffold.js CHANGED
@@ -1,16 +1,30 @@
1
1
  /**
2
2
  * scaffold.ts — materialize the `./brainpilot/` launch directory tree
3
- * (TS_PI_REFACTOR_DESIGN §11A.2). Creating a default editable `bp_template/`
4
- * (agents prompts + example settings/mcp config) and a default
5
- * `brainpilot.config.json`.
3
+ * (TS_PI_REFACTOR_DESIGN §11A.2).
6
4
  *
7
- * Idempotent: existing files are never overwritten, protecting user edits
8
- * (§11A.4 step 2 "幂等,已存在不覆盖").
5
+ * What gets written (idempotent — existing files are never overwritten):
6
+ * - directory skeleton (bp_template/, bp_template/agents/, bp_template/skills/,
7
+ * .bp/, workspaces/, .runtime/logs/)
8
+ * - providers.json + providers.example.json
9
+ * - mcp_servers.json + mcp_servers.example.json
10
+ * - skills/README.md + skills/example.md
11
+ * - brainpilot.config.json
12
+ *
13
+ * What is INTENTIONALLY NOT written (#102 fix):
14
+ * - Per-agent prompt.md / manifest.json / settings.json under
15
+ * bp_template/agents/<name>/. These used to be scaffolded as
16
+ * user-editable copies of the built-in PERSONAS, but the writeIfAbsent
17
+ * guard meant they never picked up upstream prompt updates after a user
18
+ * ran `init` once — anyone who pulled new code kept silently running on
19
+ * stale prompts. The runtime's `loadPersona` already falls back to the
20
+ * in-code PERSONAS when the on-disk file is absent, so leaving the dir
21
+ * empty by default is the correct behaviour. Users who want to override
22
+ * a prompt can materialise one with `brainpilot template reset <agent>`.
9
23
  */
10
24
  import { mkdir, writeFile, access } from "node:fs/promises";
11
25
  import { constants as FS } from "node:fs";
12
26
  import { join } from "node:path";
13
- import { PERSONAS, BUILTIN_PERSONA_NAMES, AGENT_TOOL_CONFIG, BUILTIN_TOOL_CONFIG, BUILTIN_TOOL_CONFIG_BY_NAME, } from "@brainpilot/runtime";
27
+ import { materializeSkills } from "@brainpilot/runtime";
14
28
  import { dataPaths } from "./paths.js";
15
29
  /** Default backend port (§11A.5 决策 D). Runtime uses port+1 (stride-2 §16). */
16
30
  export const DEFAULT_PORT = 9001;
@@ -30,46 +44,6 @@ async function writeIfAbsent(path, content) {
30
44
  await writeFile(path, content, "utf8");
31
45
  return true;
32
46
  }
33
- /**
34
- * Per-agent persona text, sourced from the runtime's single-source-of-truth
35
- * `PERSONAS` registry so the scaffolded, user-editable copies never drift from
36
- * the built-in defaults the runtime falls back to.
37
- */
38
- const AGENT_PROMPTS = PERSONAS;
39
- /** Roles by agent name (mirrors `roleFor` in the runtime). */
40
- function roleForName(name) {
41
- if (name === "principal")
42
- return "principal";
43
- if (name === "trace")
44
- return "trace";
45
- return "expert";
46
- }
47
- /** Full tool allowlist (system + builtin) an agent is granted, for the manifest. */
48
- function allowedToolsForName(name) {
49
- const role = roleForName(name);
50
- const sys = role === "principal"
51
- ? AGENT_TOOL_CONFIG.principal
52
- : role === "trace"
53
- ? AGENT_TOOL_CONFIG.trace
54
- : (AGENT_TOOL_CONFIG[name] ?? AGENT_TOOL_CONFIG.expert);
55
- const builtin = role === "expert"
56
- ? (BUILTIN_TOOL_CONFIG_BY_NAME[name] ?? BUILTIN_TOOL_CONFIG.expert)
57
- : (BUILTIN_TOOL_CONFIG[role] ?? BUILTIN_TOOL_CONFIG._default);
58
- return [...sys, ...builtin];
59
- }
60
- function agentManifest(name) {
61
- return JSON.stringify({
62
- role: roleForName(name),
63
- parent: name === "principal" ? null : "principal",
64
- allowedTools: allowedToolsForName(name),
65
- }, null, 2);
66
- }
67
- const PRINCIPAL_SETTINGS = JSON.stringify({
68
- provider: "anthropic",
69
- model: "claude-sonnet-4-6",
70
- timeoutMs: 120000,
71
- maxRetries: 2,
72
- }, null, 2);
73
47
  /** Empty provider registry (the SSOT). Users add profiles via the Settings UI
74
48
  * or `brainpilot init --api-key …`. An empty registry is valid: resolveProvider
75
49
  * falls back to env until a profile exists. */
@@ -90,26 +64,12 @@ const TEMPLATE_PROVIDERS_EXAMPLE = JSON.stringify({
90
64
  /**
91
65
  * Default `mcp_servers.json` written into `bp_template/` (§11A.2).
92
66
  *
93
- * Ships BrainPilot's three built-in remote MCP services (knowledge base, skills,
94
- * paper search) over streamable-http. Edit or remove these entries to point at
95
- * your own deployment; an entry whose `url` is blanked out is treated as an
96
- * unconfigured placeholder and skipped at startup.
67
+ * Starts empty users add their own MCP servers (http/sse/stdio) as needed.
68
+ * The built-in skills library is NOT an MCP server it is loaded through Pi's
69
+ * native skill pipeline from `bp_template/skills/`, so it needs no entry here.
97
70
  */
98
71
  const TEMPLATE_MCP_DEFAULT = JSON.stringify({
99
- mcpServers: {
100
- bp_KB: {
101
- type: "http",
102
- url: "http://8.145.42.208:8005/mcp",
103
- },
104
- bp_skills: {
105
- type: "http",
106
- url: "http://8.145.42.208:8006/mcp",
107
- },
108
- bp_papersearch: {
109
- type: "http",
110
- url: "http://8.145.42.208:8007/mcp",
111
- },
112
- },
72
+ mcpServers: {},
113
73
  }, null, 2);
114
74
  /**
115
75
  * Annotated `mcp_servers.example.json` — shows every supported transport
@@ -187,6 +147,41 @@ To create your own skill, copy this file, rename it, write a clear
187
147
  \`description:\` (the model reads it to decide when to use the skill), drop the
188
148
  \`disable-model-invocation\` line, and put the instructions below the frontmatter.
189
149
  `;
150
+ /**
151
+ * README dropped into the empty `bp_template/agents/` dir so users understand
152
+ * why it isn't pre-populated — and how to materialise an override when they
153
+ * actually want one.
154
+ */
155
+ const AGENTS_README = `# Agent prompt overrides
156
+
157
+ This directory is intentionally **empty by default** — BrainPilot loads agent
158
+ system prompts from its built-in \`PERSONAS\` registry that ships with the
159
+ runtime package, so a fresh install always uses the latest prompts after
160
+ \`git pull\` without any extra step.
161
+
162
+ Drop a file at \`agents/<name>/prompt.md\` to **override** a built-in agent's
163
+ prompt. The runtime reads the on-disk file first and falls back to the built-in
164
+ when the file is absent or empty.
165
+
166
+ Easiest way to start customising an agent: materialise the current built-in
167
+ prompt as a starting point, then edit it.
168
+
169
+ \`\`\`bash
170
+ npm run bp -- template reset <agent> # writes built-in prompt to disk
171
+ # now edit bp_template/agents/<agent>/prompt.md
172
+ \`\`\`
173
+
174
+ Other useful subcommands:
175
+
176
+ \`\`\`bash
177
+ npm run bp -- template list # show drift status for every agent
178
+ npm run bp -- template diff [<agent>] # show local vs built-in diff
179
+ npm run bp -- template reset [<agent>] # overwrite local with built-in (backs up)
180
+ \`\`\`
181
+
182
+ Built-in agent names: principal, librarian, experimentalist, engineer, writer,
183
+ auditor, trace.
184
+ `;
190
185
  /**
191
186
  * Create the launch directory tree under `dataDir`. Idempotent — only writes
192
187
  * files that don't yet exist. Returns the list of newly created files so the
@@ -195,47 +190,52 @@ To create your own skill, copy this file, rename it, write a clear
195
190
  export async function scaffold(dataDir, options = {}) {
196
191
  const p = dataPaths(dataDir);
197
192
  const created = [];
198
- // ① Directory skeleton.
193
+ // ① Directory skeleton — bp_template/agents/ is created (empty) so users
194
+ // have an obvious place to drop overrides; see AGENTS_README below.
199
195
  await mkdir(p.dataDir, { recursive: true });
200
196
  await mkdir(p.bpTemplateAgents, { recursive: true });
201
197
  await mkdir(p.bpTemplateSkills, { recursive: true });
202
198
  await mkdir(p.bp, { recursive: true });
203
199
  await mkdir(p.workspaces, { recursive: true });
204
200
  await mkdir(p.logsDir, { recursive: true });
205
- // Default bp_template/agents/<name>/* for every built-in agent
206
- // (user-editable; the runtime loads prompt.md when present, else falls
207
- // back to the same built-in persona this is sourced from).
208
- const writes = [];
209
- for (const name of BUILTIN_PERSONA_NAMES) {
210
- const dir = join(p.bpTemplateAgents, name);
211
- await mkdir(dir, { recursive: true });
212
- writes.push([join(dir, "prompt.md"), AGENT_PROMPTS[name]]);
213
- writes.push([join(dir, "manifest.json"), agentManifest(name)]);
214
- // Only the principal carries provider/model defaults; experts inherit the
215
- // session-level template settings.
216
- if (name === "principal") {
217
- writes.push([join(dir, "settings.json"), PRINCIPAL_SETTINGS]);
218
- }
219
- }
220
- writes.push(
221
- // ③ provider registry (SSOT) + an annotated example to copy from.
222
- [p.bpTemplateProviders, TEMPLATE_PROVIDERS_DEFAULT], [join(p.bpTemplate, "providers.example.json"), TEMPLATE_PROVIDERS_EXAMPLE], [p.bpTemplateMcpServers, TEMPLATE_MCP_DEFAULT], [join(p.bpTemplate, "mcp_servers.example.json"), TEMPLATE_MCP_EXAMPLE],
223
- // ③a app-controlled skills (loaded instead of host-global ~/.pi/agent/skills).
224
- [join(p.bpTemplateSkills, "README.md"), SKILLS_README], [join(p.bpTemplateSkills, "example.md"), EXAMPLE_SKILL],
225
- // ④ CLI global config.
226
- [
227
- p.brainpilotConfig,
228
- JSON.stringify({
229
- port: options.port ?? DEFAULT_PORT,
230
- dataDir: ".",
231
- provider: { name: options.provider ?? "anthropic" },
232
- logLevel: "info",
233
- }, null, 2),
234
- ]);
201
+ const writes = [
202
+ // ② provider registry (SSOT) + an annotated example to copy from.
203
+ [p.bpTemplateProviders, TEMPLATE_PROVIDERS_DEFAULT],
204
+ [join(p.bpTemplate, "providers.example.json"), TEMPLATE_PROVIDERS_EXAMPLE],
205
+ [p.bpTemplateMcpServers, TEMPLATE_MCP_DEFAULT],
206
+ [join(p.bpTemplate, "mcp_servers.example.json"), TEMPLATE_MCP_EXAMPLE],
207
+ // ③ app-controlled skills (loaded instead of host-global ~/.pi/agent/skills).
208
+ [join(p.bpTemplateSkills, "README.md"), SKILLS_README],
209
+ [join(p.bpTemplateSkills, "example.md"), EXAMPLE_SKILL],
210
+ // agents dir README empty by design (#102 fix).
211
+ [join(p.bpTemplateAgents, "README.md"), AGENTS_README],
212
+ // CLI global config.
213
+ [
214
+ p.brainpilotConfig,
215
+ JSON.stringify({
216
+ port: options.port ?? DEFAULT_PORT,
217
+ dataDir: ".",
218
+ provider: { name: options.provider ?? "anthropic" },
219
+ logLevel: "info",
220
+ }, null, 2),
221
+ ],
222
+ ];
235
223
  for (const [path, content] of writes) {
236
224
  if (await writeIfAbsent(path, content))
237
225
  created.push(path);
238
226
  }
227
+ // ⑥ Materialize the built-in skills content (@brainpilot/skills) into
228
+ // bp_template/skills/ for Pi's native skill pipeline. Skip-if-exists at the
229
+ // file level, so user edits and the README/example above are preserved.
230
+ // Best-effort: a missing skills package never fails the scaffold.
231
+ try {
232
+ const res = await materializeSkills(p.dataDir);
233
+ if (res.copied > 0)
234
+ created.push(`${p.bpTemplateSkills} (+${res.copied} skill files)`);
235
+ }
236
+ catch {
237
+ /* skills are a convenience — never block scaffolding on them */
238
+ }
239
239
  return { paths: p, created };
240
240
  }
241
241
  /** Whether the data dir already has a `bp_template/` (used by `up` to decide). */
@@ -1 +1 @@
1
- {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,SAAS,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,QAAQ,EACR,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAkB,MAAM,YAAY,CAAC;AAEvD,8EAA8E;AAC9E,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC;AAEjC,KAAK,UAAU,MAAM,CAAC,IAAY;IAChC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,KAAK,UAAU,aAAa,CAAC,IAAY,EAAE,OAAe;IACxD,IAAI,MAAM,MAAM,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACrC,MAAM,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACvC,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,aAAa,GAA2B,QAAQ,CAAC;AAEvD,8DAA8D;AAC9D,SAAS,WAAW,CAAC,IAAY;IAC/B,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,WAAW,CAAC;IAC7C,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC;IACrC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,oFAAoF;AACpF,SAAS,mBAAmB,CAAC,IAAY;IACvC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,GAAG,GACP,IAAI,KAAK,WAAW;QAClB,CAAC,CAAC,iBAAiB,CAAC,SAAU;QAC9B,CAAC,CAAC,IAAI,KAAK,OAAO;YAChB,CAAC,CAAC,iBAAiB,CAAC,KAAM;YAC1B,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,MAAO,CAAC,CAAC;IAC/D,MAAM,OAAO,GACX,IAAI,KAAK,QAAQ;QACf,CAAC,CAAC,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC,MAAO,CAAC;QACpE,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC,QAAS,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,IAAI,CAAC,SAAS,CACnB;QACE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;QACvB,MAAM,EAAE,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW;QACjD,YAAY,EAAE,mBAAmB,CAAC,IAAI,CAAC;KACxC,EACD,IAAI,EACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,CACvC;IACE,QAAQ,EAAE,WAAW;IACrB,KAAK,EAAE,mBAAmB;IAC1B,SAAS,EAAE,MAAM;IACjB,UAAU,EAAE,CAAC;CACd,EACD,IAAI,EACJ,CAAC,CACF,CAAC;AAEF;;+CAE+C;AAC/C,MAAM,0BAA0B,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAE7E,2EAA2E;AAC3E,MAAM,0BAA0B,GAAG,IAAI,CAAC,SAAS,CAC/C;IACE,QAAQ,EAAE;QACR;YACE,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,kCAAkC;YAC3C,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,CAAC,mBAAmB,CAAC;SAC9B;KACF;IACD,iBAAiB,EAAE,SAAS;CAC7B,EACD,IAAI,EACJ,CAAC,CACF,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,oBAAoB,GAAG,IAAI,CAAC,SAAS,CACzC;IACE,UAAU,EAAE;QACV,KAAK,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,8BAA8B;SACpC;QACD,SAAS,EAAE;YACT,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,8BAA8B;SACpC;QACD,cAAc,EAAE;YACd,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,8BAA8B;SACpC;KACF;CACF,EACD,IAAI,EACJ,CAAC,CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,oBAAoB,GAAG,IAAI,CAAC,SAAS,CACzC;IACE,UAAU,EAAE;QACV,UAAU,EAAE;YACV,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,CAAC,IAAI,EAAE,yCAAyC,EAAE,cAAc,CAAC;YACvE,GAAG,EAAE,EAAE;SACR;QACD,aAAa,EAAE;YACb,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,uCAAuC;YAC5C,OAAO,EAAE,EAAE,aAAa,EAAE,gBAAgB,EAAE;SAC7C;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,KAAK;YACX,GAAG,EAAE,uCAAuC;YAC5C,OAAO,EAAE,EAAE,aAAa,EAAE,gBAAgB,EAAE;SAC7C;KACF;CACF,EACD,IAAI,EACJ,CAAC,CACF,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BrB,CAAC;AAEF,mFAAmF;AACnF,MAAM,aAAa,GAAG;;;;;;;;;;;;;;CAcrB,CAAC;AAeF;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,OAAe,EACf,UAA2B,EAAE;IAE7B,MAAM,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,wBAAwB;IACxB,MAAM,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,MAAM,KAAK,CAAC,CAAC,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,MAAM,KAAK,CAAC,CAAC,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,MAAM,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,MAAM,KAAK,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,MAAM,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE5C,iEAAiE;IACjE,0EAA0E;IAC1E,8DAA8D;IAC9D,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,IAAI,IAAI,qBAAqB,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;QAC3C,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,aAAa,CAAC,IAAI,CAAE,CAAC,CAAC,CAAC;QAC5D,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/D,0EAA0E;QAC1E,mCAAmC;QACnC,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,MAAM,CAAC,IAAI;IACT,kEAAkE;IAClE,CAAC,CAAC,CAAC,mBAAmB,EAAE,0BAA0B,CAAC,EACnD,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,wBAAwB,CAAC,EAAE,0BAA0B,CAAC,EAC1E,CAAC,CAAC,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,EAC9C,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,0BAA0B,CAAC,EAAE,oBAAoB,CAAC;IACtE,+EAA+E;IAC/E,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,EAAE,WAAW,CAAC,EAAE,aAAa,CAAC,EACtD,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,EAAE,YAAY,CAAC,EAAE,aAAa,CAAC;IACvD,uBAAuB;IACvB;QACE,CAAC,CAAC,gBAAgB;QAClB,IAAI,CAAC,SAAS,CACZ;YACE,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,YAAY;YAClC,OAAO,EAAE,GAAG;YACZ,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,IAAI,WAAW,EAAE;YACnD,QAAQ,EAAE,MAAM;SACjB,EACD,IAAI,EACJ,CAAC,CACF;KACF,CACF,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,EAAE,CAAC;QACrC,IAAI,MAAM,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;AAC/B,CAAC;AAED,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAe;IAChD,OAAO,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,13 +1,18 @@
1
1
  {
2
2
  "name": "@brainpilot/app",
3
- "version": "0.0.5",
3
+ "version": "0.0.6",
4
+ "engines": {
5
+ "node": ">=22"
6
+ },
4
7
  "license": "Apache-2.0",
5
8
  "type": "module",
6
9
  "description": "BrainPilot CLI — Docker-free local one-click launch (bin: brainpilot / bnpt)",
10
+ "homepage": "https://github.com/NeuroAIHub/BrainPilot#readme",
7
11
  "main": "./dist/index.js",
8
12
  "types": "./dist/index.d.ts",
9
13
  "files": [
10
- "dist"
14
+ "dist",
15
+ "README.md"
11
16
  ],
12
17
  "repository": {
13
18
  "type": "git",
@@ -27,10 +32,10 @@
27
32
  "test": "vitest run"
28
33
  },
29
34
  "dependencies": {
30
- "@brainpilot/backend-core": "^0.0.5",
31
- "@brainpilot/protocol": "^0.0.5",
32
- "@brainpilot/runtime": "^0.0.5",
33
- "@brainpilot/web": "^0.0.5",
35
+ "@brainpilot/backend-core": "^0.0.6",
36
+ "@brainpilot/protocol": "^0.0.6",
37
+ "@brainpilot/runtime": "^0.0.6",
38
+ "@brainpilot/web": "^0.0.6",
34
39
  "commander": "^12.1.0",
35
40
  "picocolors": "^1.1.0"
36
41
  }