@brainpilot/app 0.0.4 → 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.
Files changed (45) hide show
  1. package/README.md +85 -0
  2. package/dist/bin.js +2 -0
  3. package/dist/bin.js.map +1 -1
  4. package/dist/commands/down.d.ts.map +1 -1
  5. package/dist/commands/down.js +19 -5
  6. package/dist/commands/down.js.map +1 -1
  7. package/dist/commands/init.d.ts +2 -0
  8. package/dist/commands/init.d.ts.map +1 -1
  9. package/dist/commands/init.js +10 -6
  10. package/dist/commands/init.js.map +1 -1
  11. package/dist/commands/status.d.ts.map +1 -1
  12. package/dist/commands/status.js +7 -3
  13. package/dist/commands/status.js.map +1 -1
  14. package/dist/commands/template.d.ts +43 -0
  15. package/dist/commands/template.d.ts.map +1 -0
  16. package/dist/commands/template.js +300 -0
  17. package/dist/commands/template.js.map +1 -0
  18. package/dist/commands/up.d.ts +10 -5
  19. package/dist/commands/up.d.ts.map +1 -1
  20. package/dist/commands/up.js +51 -14
  21. package/dist/commands/up.js.map +1 -1
  22. package/dist/index.d.ts +1 -1
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +1 -1
  25. package/dist/index.js.map +1 -1
  26. package/dist/paths.d.ts +3 -0
  27. package/dist/paths.d.ts.map +1 -1
  28. package/dist/paths.js +2 -0
  29. package/dist/paths.js.map +1 -1
  30. package/dist/process-control.d.ts +17 -0
  31. package/dist/process-control.d.ts.map +1 -1
  32. package/dist/process-control.js +26 -0
  33. package/dist/process-control.js.map +1 -1
  34. package/dist/program.d.ts +4 -0
  35. package/dist/program.d.ts.map +1 -1
  36. package/dist/program.js +31 -0
  37. package/dist/program.js.map +1 -1
  38. package/dist/repo-mode.d.ts +21 -0
  39. package/dist/repo-mode.d.ts.map +1 -0
  40. package/dist/repo-mode.js +89 -0
  41. package/dist/repo-mode.js.map +1 -0
  42. package/dist/scaffold.d.ts.map +1 -1
  43. package/dist/scaffold.js +137 -83
  44. package/dist/scaffold.js.map +1 -1
  45. package/package.json +11 -6
@@ -1 +1 @@
1
- {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvD,8EAA8E;AAC9E,eAAO,MAAM,YAAY,OAAO,CAAC;AAkJjC,MAAM,WAAW,eAAe;IAC9B,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,SAAS,CAAC;IACjB,uDAAuD;IACvD,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,cAAc,CAAC,CA0DzB;AAED,kFAAkF;AAClF,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAEpE"}
1
+ {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvD,8EAA8E;AAC9E,eAAO,MAAM,YAAY,OAAO,CAAC;AA+KjC,MAAM,WAAW,eAAe;IAC9B,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,SAAS,CAAC;IACjB,uDAAuD;IACvD,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,cAAc,CAAC,CAwDzB;AAED,kFAAkF;AAClF,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAEpE"}
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,56 +44,56 @@ async function writeIfAbsent(path, content) {
30
44
  await writeFile(path, content, "utf8");
31
45
  return true;
32
46
  }
47
+ /** Empty provider registry (the SSOT). Users add profiles via the Settings UI
48
+ * or `brainpilot init --api-key …`. An empty registry is valid: resolveProvider
49
+ * falls back to env until a profile exists. */
50
+ const TEMPLATE_PROVIDERS_DEFAULT = JSON.stringify({ profiles: [] }, null, 2);
51
+ /** Annotated example showing a filled-in provider profile to copy from. */
52
+ const TEMPLATE_PROVIDERS_EXAMPLE = JSON.stringify({
53
+ profiles: [
54
+ {
55
+ id: "example",
56
+ name: "Example Gateway",
57
+ baseUrl: "https://your-gateway.example.com",
58
+ apiKey: "sk-...",
59
+ models: ["claude-sonnet-4-6"],
60
+ },
61
+ ],
62
+ selectedProfileId: "example",
63
+ }, null, 2);
33
64
  /**
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.
65
+ * Default `mcp_servers.json` written into `bp_template/` (§11A.2).
66
+ *
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.
37
70
  */
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
- /** session-level default Pi SDK settings template (§11A.2). */
74
- const TEMPLATE_SETTINGS_EXAMPLE = JSON.stringify({
75
- provider: "anthropic",
76
- model: "claude-sonnet-4-6",
77
- apiKey: "",
78
- baseUrl: "",
71
+ const TEMPLATE_MCP_DEFAULT = JSON.stringify({
72
+ mcpServers: {},
79
73
  }, null, 2);
80
- /** MCP server config template (§11A.2). */
74
+ /**
75
+ * Annotated `mcp_servers.example.json` — shows every supported transport
76
+ * (stdio / streamable-http / sse) with a filled-in shape to copy from.
77
+ */
81
78
  const TEMPLATE_MCP_EXAMPLE = JSON.stringify({
82
- mcpServers: {},
79
+ mcpServers: {
80
+ "fs-stdio": {
81
+ type: "stdio",
82
+ command: "npx",
83
+ args: ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/dir"],
84
+ env: {},
85
+ },
86
+ "remote-http": {
87
+ type: "http",
88
+ url: "https://your-mcp-host.example.com/mcp",
89
+ headers: { Authorization: "Bearer <token>" },
90
+ },
91
+ "remote-sse": {
92
+ type: "sse",
93
+ url: "https://your-mcp-host.example.com/sse",
94
+ headers: { Authorization: "Bearer <token>" },
95
+ },
96
+ },
83
97
  }, null, 2);
84
98
  /**
85
99
  * README for `bp_template/skills/` — explains the app-controlled skill dir.
@@ -133,6 +147,41 @@ To create your own skill, copy this file, rename it, write a clear
133
147
  \`description:\` (the model reads it to decide when to use the skill), drop the
134
148
  \`disable-model-invocation\` line, and put the instructions below the frontmatter.
135
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
+ `;
136
185
  /**
137
186
  * Create the launch directory tree under `dataDir`. Idempotent — only writes
138
187
  * files that don't yet exist. Returns the list of newly created files so the
@@ -141,47 +190,52 @@ To create your own skill, copy this file, rename it, write a clear
141
190
  export async function scaffold(dataDir, options = {}) {
142
191
  const p = dataPaths(dataDir);
143
192
  const created = [];
144
- // ① 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.
145
195
  await mkdir(p.dataDir, { recursive: true });
146
196
  await mkdir(p.bpTemplateAgents, { recursive: true });
147
197
  await mkdir(p.bpTemplateSkills, { recursive: true });
148
198
  await mkdir(p.bp, { recursive: true });
149
199
  await mkdir(p.workspaces, { recursive: true });
150
200
  await mkdir(p.logsDir, { recursive: true });
151
- // Default bp_template/agents/<name>/* for every built-in agent
152
- // (user-editable; the runtime loads prompt.md when present, else falls
153
- // back to the same built-in persona this is sourced from).
154
- const writes = [];
155
- for (const name of BUILTIN_PERSONA_NAMES) {
156
- const dir = join(p.bpTemplateAgents, name);
157
- await mkdir(dir, { recursive: true });
158
- writes.push([join(dir, "prompt.md"), AGENT_PROMPTS[name]]);
159
- writes.push([join(dir, "manifest.json"), agentManifest(name)]);
160
- // Only the principal carries provider/model defaults; experts inherit the
161
- // session-level template settings.
162
- if (name === "principal") {
163
- writes.push([join(dir, "settings.json"), PRINCIPAL_SETTINGS]);
164
- }
165
- }
166
- writes.push(
167
- // ③ session-level template defaults.
168
- [p.bpTemplateSettings, TEMPLATE_SETTINGS_EXAMPLE], [join(p.bpTemplate, "settings.example.json"), TEMPLATE_SETTINGS_EXAMPLE], [p.bpTemplateMcpServers, TEMPLATE_MCP_EXAMPLE], [join(p.bpTemplate, "mcp_servers.example.json"), TEMPLATE_MCP_EXAMPLE],
169
- // ③a app-controlled skills (loaded instead of host-global ~/.pi/agent/skills).
170
- [join(p.bpTemplateSkills, "README.md"), SKILLS_README], [join(p.bpTemplateSkills, "example.md"), EXAMPLE_SKILL],
171
- // ④ CLI global config.
172
- [
173
- p.brainpilotConfig,
174
- JSON.stringify({
175
- port: options.port ?? DEFAULT_PORT,
176
- dataDir: ".",
177
- provider: { name: options.provider ?? "anthropic" },
178
- logLevel: "info",
179
- }, null, 2),
180
- ]);
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
+ ];
181
223
  for (const [path, content] of writes) {
182
224
  if (await writeIfAbsent(path, content))
183
225
  created.push(path);
184
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
+ }
185
239
  return { paths: p, created };
186
240
  }
187
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":"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"}
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.4",
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.4",
31
- "@brainpilot/protocol": "^0.0.4",
32
- "@brainpilot/runtime": "^0.0.4",
33
- "@brainpilot/web": "^0.0.4",
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
  }