my-pi 0.1.3 → 0.1.4
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 +7 -0
- package/dist/{api-q7uQTUHx.js → api-BtlxiHyw.js} +15 -4
- package/dist/api-BtlxiHyw.js.map +1 -0
- package/dist/api.js +2 -2
- package/dist/index.js +65 -22
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
- package/src/extensions/mcp.ts +5 -0
- package/src/extensions/working-indicator.ts +1 -0
- package/dist/api-q7uQTUHx.js.map +0 -1
package/README.md
CHANGED
|
@@ -81,6 +81,12 @@ echo "plan a login page" | pnpx my-pi@latest --json
|
|
|
81
81
|
Outputs NDJSON events — one JSON object per line — for programmatic
|
|
82
82
|
consumption by other agents or scripts.
|
|
83
83
|
|
|
84
|
+
In non-interactive modes (`"prompt"`, `-P`, `--json`), my-pi keeps
|
|
85
|
+
headless-capable built-ins like MCP, LSP, chains, prompt presets,
|
|
86
|
+
recall, hooks, and secret filtering enabled, while skipping UI-only
|
|
87
|
+
built-ins like handoff, confirm-destructive, session auto-naming, and
|
|
88
|
+
working-indicator customization.
|
|
89
|
+
|
|
84
90
|
### Local telemetry (SQLite)
|
|
85
91
|
|
|
86
92
|
Telemetry is **disabled by default**. When enabled, my-pi records
|
|
@@ -238,6 +244,7 @@ import { create_my_pi, runPrintMode } from 'my-pi';
|
|
|
238
244
|
const runtime = await create_my_pi({
|
|
239
245
|
agent_dir: './tmp/pi-agent',
|
|
240
246
|
extensions: ['./my-ext.ts'],
|
|
247
|
+
runtime_mode: 'json',
|
|
241
248
|
telemetry: true,
|
|
242
249
|
telemetry_db_path: './tmp/evals.db',
|
|
243
250
|
});
|
|
@@ -2555,6 +2555,7 @@ function count_pending_enabled_servers(servers) {
|
|
|
2555
2555
|
return Array.from(servers.values()).filter((state) => state.enabled && state.status !== "connected").length;
|
|
2556
2556
|
}
|
|
2557
2557
|
function update_mcp_status(ctx, servers) {
|
|
2558
|
+
if (!ctx.hasUI) return;
|
|
2558
2559
|
if (servers.size === 0) {
|
|
2559
2560
|
ctx.ui.setStatus("mcp", void 0);
|
|
2560
2561
|
return;
|
|
@@ -2570,6 +2571,7 @@ function update_mcp_status(ctx, servers) {
|
|
|
2570
2571
|
ctx.ui.setStatus("mcp", ctx.ui.theme.fg("dim", fragments.join(" · ")));
|
|
2571
2572
|
}
|
|
2572
2573
|
function set_connect_feedback(ctx, pending_server_count) {
|
|
2574
|
+
if (!ctx.hasUI) return () => {};
|
|
2573
2575
|
const label = pending_server_count === 1 ? "Connecting 1 MCP server..." : `Connecting ${pending_server_count} MCP servers...`;
|
|
2574
2576
|
ctx.ui.setWorkingMessage(label);
|
|
2575
2577
|
ctx.ui.setWorkingIndicator({
|
|
@@ -5175,6 +5177,7 @@ function parse_working_indicator_mode(input) {
|
|
|
5175
5177
|
return null;
|
|
5176
5178
|
}
|
|
5177
5179
|
function apply_working_indicator(ctx, mode) {
|
|
5180
|
+
if (!ctx.hasUI) return;
|
|
5178
5181
|
ctx.ui.setWorkingIndicator(get_working_indicator(ctx, mode));
|
|
5179
5182
|
}
|
|
5180
5183
|
async function working_indicator(pi) {
|
|
@@ -5233,6 +5236,12 @@ const PI_AGENT_DIR_ENV = "PI_CODING_AGENT_DIR";
|
|
|
5233
5236
|
function resolve_agent_dir(cwd, agent_dir) {
|
|
5234
5237
|
return agent_dir ? resolve(cwd, agent_dir) : getAgentDir();
|
|
5235
5238
|
}
|
|
5239
|
+
const NON_INTERACTIVE_UI_ONLY_BUILTINS = [
|
|
5240
|
+
"handoff",
|
|
5241
|
+
"session-name",
|
|
5242
|
+
"confirm-destructive",
|
|
5243
|
+
"working-indicator"
|
|
5244
|
+
];
|
|
5236
5245
|
function get_force_disabled_builtins(options) {
|
|
5237
5246
|
const force_disabled = /* @__PURE__ */ new Set();
|
|
5238
5247
|
if (!options.mcp) force_disabled.add("mcp");
|
|
@@ -5247,6 +5256,7 @@ function get_force_disabled_builtins(options) {
|
|
|
5247
5256
|
if (!options.confirm_destructive) force_disabled.add("confirm-destructive");
|
|
5248
5257
|
if (!options.hooks_resolution) force_disabled.add("hooks-resolution");
|
|
5249
5258
|
if (!options.working_indicator) force_disabled.add("working-indicator");
|
|
5259
|
+
if (options.runtime_mode && options.runtime_mode !== "interactive") for (const key of NON_INTERACTIVE_UI_ONLY_BUILTINS) force_disabled.add(key);
|
|
5250
5260
|
return force_disabled;
|
|
5251
5261
|
}
|
|
5252
5262
|
function create_builtin_extension_factory(key, extension, force_disabled) {
|
|
@@ -5268,11 +5278,12 @@ function create_extensions_override(managed_inline_paths) {
|
|
|
5268
5278
|
};
|
|
5269
5279
|
}
|
|
5270
5280
|
async function create_my_pi(options = {}) {
|
|
5271
|
-
const { cwd = process.cwd(), agent_dir, extensions = [], extensionFactories: user_factories = [], mcp = true, skills = true, chain = true, filter_output = true, handoff = true, recall = true, prompt_presets = true, lsp = true, session_name = true, confirm_destructive = true, hooks_resolution = true, working_indicator = true, telemetry, telemetry_db_path, model, system_prompt, append_system_prompt } = options;
|
|
5281
|
+
const { cwd = process.cwd(), agent_dir, extensions = [], extensionFactories: user_factories = [], runtime_mode = "interactive", mcp = true, skills = true, chain = true, filter_output = true, handoff = true, recall = true, prompt_presets = true, lsp = true, session_name = true, confirm_destructive = true, hooks_resolution = true, working_indicator = true, telemetry, telemetry_db_path, model, system_prompt, append_system_prompt } = options;
|
|
5272
5282
|
const effective_agent_dir = resolve_agent_dir(cwd, agent_dir);
|
|
5273
5283
|
if (agent_dir) process.env[PI_AGENT_DIR_ENV] = effective_agent_dir;
|
|
5274
5284
|
const resolved_extensions = extensions.map((p) => resolve(cwd, p));
|
|
5275
5285
|
const force_disabled = get_force_disabled_builtins({
|
|
5286
|
+
runtime_mode,
|
|
5276
5287
|
mcp,
|
|
5277
5288
|
skills,
|
|
5278
5289
|
chain,
|
|
@@ -5310,7 +5321,7 @@ async function create_my_pi(options = {}) {
|
|
|
5310
5321
|
...system_prompt !== void 0 ? { systemPromptOverride: () => system_prompt } : {},
|
|
5311
5322
|
...append_system_prompt !== void 0 ? { appendSystemPromptOverride: (base) => [...base, append_system_prompt] } : {},
|
|
5312
5323
|
additionalExtensionPaths: [...resolved_extensions],
|
|
5313
|
-
additionalThemePaths: [PACKAGE_THEME_DIR],
|
|
5324
|
+
...runtime_mode === "interactive" ? { additionalThemePaths: [PACKAGE_THEME_DIR] } : {},
|
|
5314
5325
|
extensionFactories: [...managed_extension_factories, ...user_factories],
|
|
5315
5326
|
extensionsOverride: create_extensions_override(managed_inline_paths),
|
|
5316
5327
|
skillsOverride: (base) => {
|
|
@@ -5340,6 +5351,6 @@ async function create_my_pi(options = {}) {
|
|
|
5340
5351
|
});
|
|
5341
5352
|
}
|
|
5342
5353
|
//#endregion
|
|
5343
|
-
export { create_my_pi as n,
|
|
5354
|
+
export { runPrintMode$1 as i, create_my_pi as n, get_force_disabled_builtins as r, InteractiveMode$1 as t };
|
|
5344
5355
|
|
|
5345
|
-
//# sourceMappingURL=api-
|
|
5356
|
+
//# sourceMappingURL=api-BtlxiHyw.js.map
|