agentic-pi 0.2.5 → 0.2.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 +141 -7
- package/dist/args.d.ts +13 -0
- package/dist/args.js +18 -0
- package/dist/args.js.map +1 -1
- package/dist/extensions/skills/index.d.ts +83 -0
- package/dist/extensions/skills/index.js +84 -0
- package/dist/extensions/skills/index.js.map +1 -0
- package/dist/run.d.ts +29 -0
- package/dist/run.js +11 -0
- package/dist/run.js.map +1 -1
- package/dist/runner.js +27 -0
- package/dist/runner.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -85,14 +85,50 @@ outcome programmatically without parsing stderr.
|
|
|
85
85
|
|
|
86
86
|
`--model provider/id` (e.g. `anthropic/claude-opus-4-5`, `openai/gpt-4o`).
|
|
87
87
|
Credentials come from environment variables (`OPENAI_API_KEY`,
|
|
88
|
-
`ANTHROPIC_API_KEY`, `OPENROUTER_API_KEY`) or Pi's
|
|
89
|
-
if you've logged in interactively. Provider/id mapping
|
|
90
|
-
`@earendil-works/pi-ai`'s `getModel()`.
|
|
88
|
+
`ANTHROPIC_API_KEY`, `OPENROUTER_API_KEY`, `FIREWORKS_API_KEY`, …) or Pi's
|
|
89
|
+
`~/.pi/agent/auth.json` if you've logged in interactively. Provider/id mapping
|
|
90
|
+
is delegated to `@earendil-works/pi-ai`'s `getModel()`.
|
|
91
91
|
|
|
92
92
|
`--thinking <level>` maps directly to Pi's `thinkingLevel`
|
|
93
93
|
(`off`/`minimal`/`low`/`medium`/`high`/`xhigh`). Per-provider effort is
|
|
94
94
|
handled by Pi.
|
|
95
95
|
|
|
96
|
+
**Fireworks AI** is supported out of the box — it's a first-class provider in
|
|
97
|
+
`@earendil-works/pi-ai`. Set `FIREWORKS_API_KEY` and select a model with the
|
|
98
|
+
`fireworks/` prefix and Fireworks' fully-qualified id:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
echo "summarize this repo" | agentic-pi run \
|
|
102
|
+
--model fireworks/accounts/fireworks/models/glm-5p2 \
|
|
103
|
+
--no-session
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
The provider id is everything after the first `/`, so the `accounts/…` path
|
|
107
|
+
(which itself contains slashes) is preserved intact. pi-ai talks to Fireworks
|
|
108
|
+
over its Anthropic-compatible endpoint (`https://api.fireworks.ai/inference`),
|
|
109
|
+
so tool-calling, streaming, and thinking all work as they do for first-party
|
|
110
|
+
Anthropic models.
|
|
111
|
+
|
|
112
|
+
Models in pi-ai's curated catalog ship with accurate context-window, max-token,
|
|
113
|
+
and cost metadata. At the time of writing that includes (run a recent build for
|
|
114
|
+
the current list):
|
|
115
|
+
|
|
116
|
+
| Model | `--model` value |
|
|
117
|
+
| --- | --- |
|
|
118
|
+
| GLM 5.2 | `fireworks/accounts/fireworks/models/glm-5p2` |
|
|
119
|
+
| DeepSeek V4 Pro | `fireworks/accounts/fireworks/models/deepseek-v4-pro` |
|
|
120
|
+
| Kimi K2.7 Code | `fireworks/accounts/fireworks/models/kimi-k2p7-code` |
|
|
121
|
+
| MiniMax M3 | `fireworks/accounts/fireworks/models/minimax-m3` |
|
|
122
|
+
| GPT-OSS 120B | `fireworks/accounts/fireworks/models/gpt-oss-120b` |
|
|
123
|
+
|
|
124
|
+
> The catalog is curated and shifts each pi-ai release (newer models added,
|
|
125
|
+
> retired ones dropped). To use a Fireworks model that isn't curated yet —
|
|
126
|
+
> or to correct its metadata — declare it in `~/.pi/agent/models.json` under a
|
|
127
|
+
> `fireworks` provider (`api: "anthropic-messages"`, `baseUrl:
|
|
128
|
+
> "https://api.fireworks.ai/inference"`, `apiKey: "FIREWORKS_API_KEY"`); see
|
|
129
|
+
> Pi's `docs/models.md`. agentic-pi resolves custom models from there
|
|
130
|
+
> automatically via Pi's `ModelRegistry`.
|
|
131
|
+
|
|
96
132
|
### 6. Defaults that match a containerized sandbox
|
|
97
133
|
|
|
98
134
|
- **`--no-session`** is intended to be the default in sandboxed runs (state
|
|
@@ -354,6 +390,97 @@ echo "summarize the repo" | OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318 \
|
|
|
354
390
|
node dist/cli.js run --model openai/gpt-5.4-nano --otel --no-session
|
|
355
391
|
```
|
|
356
392
|
|
|
393
|
+
### 11. Agent skills (`SKILL.md`)
|
|
394
|
+
|
|
395
|
+
Pi natively implements the [Agent Skills standard](https://agentskills.io) — the
|
|
396
|
+
same `SKILL.md`-in-a-folder convention used by Claude Code and Codex — and
|
|
397
|
+
agentic-pi exposes it. A **skill** is a directory containing a `SKILL.md` with YAML
|
|
398
|
+
frontmatter (`name` + `description`) and freeform instructions, plus any helper
|
|
399
|
+
scripts/references it needs:
|
|
400
|
+
|
|
401
|
+
```
|
|
402
|
+
roll-dice/
|
|
403
|
+
└── SKILL.md
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
```markdown
|
|
407
|
+
---
|
|
408
|
+
name: roll-dice
|
|
409
|
+
description: Roll an N-sided die. Use when asked to roll a die or dice.
|
|
410
|
+
---
|
|
411
|
+
|
|
412
|
+
# Roll Dice
|
|
413
|
+
|
|
414
|
+
Run `echo $((RANDOM % <sides> + 1))`, replacing `<sides>` with the die size.
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
**Progressive disclosure.** At startup Pi scans the skill locations and puts only
|
|
418
|
+
each skill's `name` + `description` into the system prompt. When a task matches, the
|
|
419
|
+
agent `read`s the full `SKILL.md` on demand, then loads any referenced scripts/assets
|
|
420
|
+
by relative path. This keeps the prompt small while making many skills available.
|
|
421
|
+
|
|
422
|
+
**Default locations — already discovered, no flag needed.** Drop a skill into any of:
|
|
423
|
+
|
|
424
|
+
- Global: `~/.pi/agent/skills/`, `~/.agents/skills/`
|
|
425
|
+
- Project (cwd + ancestors to git root): `.pi/skills/`, `.agents/skills/`
|
|
426
|
+
- Packages: a `skills/` directory or `pi.skills` entry in a dependency's `package.json`
|
|
427
|
+
|
|
428
|
+
**Mapping an existing skills folder via `--skill`.** To use skills you already keep
|
|
429
|
+
elsewhere — e.g. your Claude Code skills, or a directory mounted into a CI container —
|
|
430
|
+
point at it with `--skill <path>` (repeatable; accepts a directory of skills or a
|
|
431
|
+
single skill). It's **additive even with `--no-skills`**:
|
|
432
|
+
|
|
433
|
+
```bash
|
|
434
|
+
# Map your Claude Code skills directory straight into the agent
|
|
435
|
+
echo "use the roll-dice skill to roll a d20" | node dist/cli.js run \
|
|
436
|
+
--model openai/gpt-5.4-nano --no-session --skill ~/.claude/skills
|
|
437
|
+
|
|
438
|
+
# Load ONLY an explicit folder; suppress all default discovery
|
|
439
|
+
... --no-skills --skill ./ci-skills
|
|
440
|
+
|
|
441
|
+
# Turn skills off entirely
|
|
442
|
+
... --no-skills
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
Programmatic callers pass `skillPaths: string[]` / `noSkills: boolean` to `run()`.
|
|
446
|
+
|
|
447
|
+
**Cross-harness reuse via settings.** Instead of a flag on every run, list skill
|
|
448
|
+
directories in a Pi `settings.json` (under the agent dir) so they always load:
|
|
449
|
+
|
|
450
|
+
```json
|
|
451
|
+
{
|
|
452
|
+
"skills": ["~/.claude/skills", "~/.codex/skills"]
|
|
453
|
+
}
|
|
454
|
+
```
|
|
455
|
+
|
|
456
|
+
**One-shot caveat.** agentic-pi has no interactive mode, so Pi's `/skill:name` slash
|
|
457
|
+
command doesn't apply here — skills are **model-invoked** from the catalog. If the
|
|
458
|
+
model doesn't pick up a skill on its own, name it in the prompt ("use the `roll-dice`
|
|
459
|
+
skill …") to nudge it to load the `SKILL.md`.
|
|
460
|
+
|
|
461
|
+
**Safe by default.** A `--skill` path that doesn't exist is dropped with a warning
|
|
462
|
+
rather than aborting the run. Skills are a Pi-native *resource* (fed to the resource
|
|
463
|
+
loader), not agentic-pi tools, so they don't appear in the `extension_status` events.
|
|
464
|
+
|
|
465
|
+
**Observability.** Pi emits no skill-specific event, and skill *usage* only shows up
|
|
466
|
+
indirectly — when the agent loads a skill it `read`s the `SKILL.md`, so it surfaces as
|
|
467
|
+
a normal `tool_execution_start`/`_end` whose `args.path` ends in `SKILL.md`. To make
|
|
468
|
+
*discovery* visible, agentic-pi synthesizes a single `skills_status` event at startup:
|
|
469
|
+
|
|
470
|
+
```jsonl
|
|
471
|
+
{"type":"skills_status","status":"configured","discovered":2,"skills":[{"name":"roll-dice","source":"/abs/roll-dice/SKILL.md","modelInvocable":true}],"mappedPaths":["/abs/skills"],"noSkills":false,"sessionId":"…","timestamp":"…"}
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
`status` is `default` (no flags), `configured` (`--skill` paths resolved), or
|
|
475
|
+
`disabled` (`--no-skills`). `modelInvocable` is `false` for skills that set
|
|
476
|
+
`disable-model-invocation: true` (present but never auto-loaded). The event is
|
|
477
|
+
**gated**: a default run that discovers no skills emits nothing, so the golden JSONL
|
|
478
|
+
fixtures stay byte-identical. Programmatic callers read the same data from
|
|
479
|
+
`result.skills`.
|
|
480
|
+
|
|
481
|
+
> **Security:** a skill can instruct the model to take any action and may bundle code
|
|
482
|
+
> the model runs. Only map skill directories you trust.
|
|
483
|
+
|
|
357
484
|
## When to use this
|
|
358
485
|
|
|
359
486
|
- You have an orchestrator that calls a coding agent once per workflow
|
|
@@ -385,10 +512,11 @@ echo "list open PRs on owner/repo" | agentic-pi run \
|
|
|
385
512
|
Required env (one of):
|
|
386
513
|
|
|
387
514
|
```bash
|
|
388
|
-
#
|
|
515
|
+
# Model provider — at least one matching your --model
|
|
389
516
|
ANTHROPIC_API_KEY=sk-ant-…
|
|
390
517
|
OPENAI_API_KEY=sk-…
|
|
391
518
|
OPENROUTER_API_KEY=sk-or-…
|
|
519
|
+
FIREWORKS_API_KEY=fw-…
|
|
392
520
|
|
|
393
521
|
# GitHub — App credentials preferred over static token
|
|
394
522
|
GITHUB_APP_ID=…
|
|
@@ -402,7 +530,7 @@ GITHUB_TOKEN=ghp_…
|
|
|
402
530
|
|
|
403
531
|
| Flag | Description |
|
|
404
532
|
| --- | --- |
|
|
405
|
-
| `--model <provider/id>` | Required. e.g. `anthropic/claude-opus-4-5`, `openai/gpt-4o`. |
|
|
533
|
+
| `--model <provider/id>` | Required. e.g. `anthropic/claude-opus-4-5`, `openai/gpt-4o`, `fireworks/accounts/fireworks/models/glm-5p2`. See section 5. |
|
|
406
534
|
| `--thinking <level>` | `off` \| `minimal` \| `low` \| `medium` \| `high` \| `xhigh`. |
|
|
407
535
|
| `--profile <name>` | `read` \| `issues-write` \| `review-write` \| `repo-write`. Omit to disable GitHub tools entirely. |
|
|
408
536
|
| `--cwd <path>` | Working directory for the agent. Default: `$PWD`. |
|
|
@@ -418,6 +546,8 @@ GITHUB_TOKEN=ghp_…
|
|
|
418
546
|
| `--no-web-search` | Disable the web-search extension (no `web_search`/`web_fetch` tools). |
|
|
419
547
|
| `--no-file-search` | Disable the bundled FFF file-search extension; fall back to Pi's built-in `find`/`grep`. |
|
|
420
548
|
| `--file-search-mode <m>` | FFF mode: `override` (default) \| `tools-only` \| `tools-and-ui`. Overridden by the `PI_FFF_MODE` env var. See section 9. |
|
|
549
|
+
| `--skill <path>` | Load Agent Skills from `<path>` (a skills dir or a single skill). Repeatable; additive even with `--no-skills`. Maps e.g. `~/.claude/skills` into the agent. Default-location skills load without this. See section 11. |
|
|
550
|
+
| `--no-skills` | Disable Pi's default skill discovery. Explicit `--skill` paths still load. |
|
|
421
551
|
| `--web-search-max-calls <n>` | Cap combined `web_search` + `web_fetch` calls per run. Default: 30. |
|
|
422
552
|
| `--otel` | Enable OpenTelemetry traces + metrics export. Off by default. Requires an OTLP endpoint via `OTEL_EXPORTER_OTLP_ENDPOINT` (or `--otel-endpoint`). See section 10. |
|
|
423
553
|
| `--no-otel` | Force-disable OTEL even if `AGENTIC_PI_OTEL_ENABLED=1`. |
|
|
@@ -436,6 +566,7 @@ Reads the prompt from stdin. Emits JSONL on stdout. Exits 0 on `agent_end`,
|
|
|
436
566
|
{"type":"extension_status","extension":"github","status":"configured","profile":"read","toolCount":18,"sessionId":"<uuid>","timestamp":"…"}
|
|
437
567
|
{"type":"extension_status","extension":"web-search","status":"configured","provider":"tavily","toolCount":2,"maxCalls":30,"sessionId":"<uuid>","timestamp":"…"}
|
|
438
568
|
{"type":"extension_status","extension":"file-search","status":"configured","mode":"override","toolCount":3,"sessionId":"<uuid>","timestamp":"…"}
|
|
569
|
+
{"type":"skills_status","status":"configured","discovered":1,"skills":[{"name":"roll-dice","source":"…/SKILL.md","modelInvocable":true}],"mappedPaths":["…"],"noSkills":false,"sessionId":"<uuid>","timestamp":"…"}
|
|
439
570
|
{"type":"agent_start","sessionId":"<uuid>","timestamp":"…"}
|
|
440
571
|
{"type":"turn_start","sessionId":"<uuid>","timestamp":"…"}
|
|
441
572
|
{"type":"message_start","message":{…},"sessionId":"<uuid>","timestamp":"…"}
|
|
@@ -449,8 +580,10 @@ Reads the prompt from stdin. Emits JSONL on stdout. Exits 0 on `agent_end`,
|
|
|
449
580
|
```
|
|
450
581
|
|
|
451
582
|
`extension_status` is emitted once at startup so downstream logs can confirm
|
|
452
|
-
the GitHub profile (and whether auth succeeded). `
|
|
453
|
-
|
|
583
|
+
the GitHub profile (and whether auth succeeded). `skills_status` is emitted once
|
|
584
|
+
at startup too, but **only** when skills were configured or discovered (section 11) —
|
|
585
|
+
a default run with no skills omits it entirely. `usage_snapshot` is always the last
|
|
586
|
+
line in a successful run.
|
|
454
587
|
|
|
455
588
|
## Programmatic usage
|
|
456
589
|
|
|
@@ -517,6 +650,7 @@ console.log(result.records.length); // full event log
|
|
|
517
650
|
| `github` | `{status, reason, profile, toolCount}` \| `undefined` | Mirror of the GitHub `extension_status` event. |
|
|
518
651
|
| `webSearch` | `{status, reason, provider, toolCount, maxCalls}` \| `undefined` | Mirror of the web-search `extension_status` event. |
|
|
519
652
|
| `fileSearch` | `{status, reason, mode, toolCount}` \| `undefined` | Mirror of the FFF file-search `extension_status` event. |
|
|
653
|
+
| `skills` | `{status, discovered, skills: {name, source, modelInvocable}[], mappedPaths, noSkills}` \| `undefined` | Mirror of the `skills_status` event. Absent when none configured/discovered (section 11). |
|
|
520
654
|
| `records` | `EmitterRecord[]` | Every JSONL record in order. Same shape that the CLI writes. |
|
|
521
655
|
| `warnings` | `string[]` | Warnings that would have gone to stderr in CLI mode. |
|
|
522
656
|
|
package/dist/args.d.ts
CHANGED
|
@@ -87,6 +87,19 @@ export interface RunConfig {
|
|
|
87
87
|
* the same names). Set via `--file-search-mode <override|tools-only|tools-and-ui>`.
|
|
88
88
|
*/
|
|
89
89
|
fileSearchMode?: "override" | "tools-only" | "tools-and-ui";
|
|
90
|
+
/**
|
|
91
|
+
* Extra Agent Skill paths to load, beyond Pi's default discovery
|
|
92
|
+
* (~/.pi/agent/skills, ~/.agents/skills, .pi/skills, .agents/skills,
|
|
93
|
+
* package skills/). Each entry is a directory of skills OR a single skill
|
|
94
|
+
* dir/file. Set via `--skill <path>` (repeatable). Additive even with
|
|
95
|
+
* --no-skills.
|
|
96
|
+
*/
|
|
97
|
+
skillPaths?: string[];
|
|
98
|
+
/**
|
|
99
|
+
* Disable Pi's default skill discovery. Explicit --skill paths still load.
|
|
100
|
+
* Set via `--no-skills`. Default: discovery enabled (Pi's default).
|
|
101
|
+
*/
|
|
102
|
+
noSkills?: boolean;
|
|
90
103
|
/**
|
|
91
104
|
* OpenTelemetry traces + metrics export. Tri-state:
|
|
92
105
|
* - `true` (`--otel`) → enabled.
|
package/dist/args.js
CHANGED
|
@@ -48,6 +48,14 @@ Flags:
|
|
|
48
48
|
--file-search-mode <m> FFF mode: override | tools-only | tools-and-ui.
|
|
49
49
|
Default: override (FFF replaces built-in find/grep
|
|
50
50
|
under the same names). Overridden by PI_FFF_MODE env.
|
|
51
|
+
--skill <path> Load Agent Skills from <path> (a directory of
|
|
52
|
+
skills or a single skill). Repeatable. Additive
|
|
53
|
+
even with --no-skills. Maps e.g. ~/.claude/skills
|
|
54
|
+
into the agent. Skills in Pi's default locations
|
|
55
|
+
(.pi/skills, .agents/skills, ~/.pi/agent/skills)
|
|
56
|
+
are discovered automatically without this flag.
|
|
57
|
+
--no-skills Disable Pi's default skill discovery. Explicit
|
|
58
|
+
--skill paths still load.
|
|
51
59
|
--otel Enable OpenTelemetry traces + metrics export.
|
|
52
60
|
Off by default. Requires an OTLP endpoint via
|
|
53
61
|
OTEL_EXPORTER_OTLP_ENDPOINT (or --otel-endpoint).
|
|
@@ -196,6 +204,16 @@ export function parseArgs(argv) {
|
|
|
196
204
|
case "--no-file-search":
|
|
197
205
|
config.fileSearch = false;
|
|
198
206
|
break;
|
|
207
|
+
case "--skill": {
|
|
208
|
+
const v = next().trim();
|
|
209
|
+
if (!v)
|
|
210
|
+
throw new Error("--skill requires a non-empty path");
|
|
211
|
+
config.skillPaths = [...(config.skillPaths ?? []), v];
|
|
212
|
+
break;
|
|
213
|
+
}
|
|
214
|
+
case "--no-skills":
|
|
215
|
+
config.noSkills = true;
|
|
216
|
+
break;
|
|
199
217
|
case "--file-search-mode": {
|
|
200
218
|
const v = next();
|
|
201
219
|
if (v !== "override" && v !== "tools-only" && v !== "tools-and-ui") {
|
package/dist/args.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.js","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skills resource entry point.
|
|
3
|
+
*
|
|
4
|
+
* Pi implements the Agent Skills standard (https://agentskills.io) natively:
|
|
5
|
+
* a skill is a directory with a `SKILL.md` (frontmatter `name` + `description`
|
|
6
|
+
* + instructions). Pi's resource loader discovers skills from default
|
|
7
|
+
* locations (~/.pi/agent/skills, ~/.agents/skills, project .pi/skills,
|
|
8
|
+
* .agents/skills, and package `skills/` dirs) and surfaces them to the agent
|
|
9
|
+
* via progressive disclosure — only names/descriptions are always in context;
|
|
10
|
+
* the agent `read`s the full SKILL.md on demand.
|
|
11
|
+
*
|
|
12
|
+
* Unlike `github`/`web-search`, skills are NOT `customTools`. They're a
|
|
13
|
+
* Pi-native resource fed to `DefaultResourceLoader` via `additionalSkillPaths`
|
|
14
|
+
* / `noSkills` (the same channel file-search uses for `additionalExtensionPaths`).
|
|
15
|
+
* This module's only job is to normalize the operator's `--skill` paths
|
|
16
|
+
* (tilde + relative → absolute, drop missing ones) so the runner can hand
|
|
17
|
+
* them straight to the loader.
|
|
18
|
+
*
|
|
19
|
+
* Safe-by-default like every other extension: a path that doesn't exist is
|
|
20
|
+
* dropped with a warning rather than aborting the run.
|
|
21
|
+
*/
|
|
22
|
+
export interface SkillsConfig {
|
|
23
|
+
/**
|
|
24
|
+
* Extra skill paths from `--skill <path>` (repeatable). Each entry is a
|
|
25
|
+
* directory of skills OR a single skill directory/file. Additive even when
|
|
26
|
+
* `noSkills` is true.
|
|
27
|
+
*/
|
|
28
|
+
skillPaths?: string[];
|
|
29
|
+
/** When true, disable Pi's default skill discovery. Explicit paths still load. */
|
|
30
|
+
noSkills?: boolean;
|
|
31
|
+
/** Working directory, for resolving relative `--skill` paths. */
|
|
32
|
+
cwd: string;
|
|
33
|
+
/** Home directory for `~` expansion. Injectable for tests; default os.homedir(). */
|
|
34
|
+
home?: string;
|
|
35
|
+
}
|
|
36
|
+
export interface SkillsResult {
|
|
37
|
+
/**
|
|
38
|
+
* - "default" — no flags; rely on Pi's default discovery.
|
|
39
|
+
* - "configured" — at least one explicit `--skill` path resolved.
|
|
40
|
+
* - "disabled" — `--no-skills` with no explicit paths that resolved.
|
|
41
|
+
*/
|
|
42
|
+
status: "default" | "configured" | "disabled";
|
|
43
|
+
/** Resolved, existence-checked absolute paths for `additionalSkillPaths`. */
|
|
44
|
+
additionalSkillPaths: string[];
|
|
45
|
+
/** Pass-through for `DefaultResourceLoader.noSkills`. */
|
|
46
|
+
noSkills: boolean;
|
|
47
|
+
/** Non-fatal issues (e.g. a `--skill` path that doesn't exist). */
|
|
48
|
+
warnings: string[];
|
|
49
|
+
}
|
|
50
|
+
/** One discovered skill, flattened for the `skills_status` JSONL event. */
|
|
51
|
+
export interface SkillSummary {
|
|
52
|
+
/** Skill name (from SKILL.md frontmatter). */
|
|
53
|
+
name: string;
|
|
54
|
+
/** Absolute path to the skill's SKILL.md. */
|
|
55
|
+
source: string;
|
|
56
|
+
/**
|
|
57
|
+
* Whether the model can auto-invoke it. False when the skill set
|
|
58
|
+
* `disable-model-invocation: true` (hidden from the system prompt) — worth
|
|
59
|
+
* surfacing since such a skill is present but won't be picked up on its own.
|
|
60
|
+
*/
|
|
61
|
+
modelInvocable: boolean;
|
|
62
|
+
}
|
|
63
|
+
export interface SkillsStatusEvent {
|
|
64
|
+
type: "skills_status";
|
|
65
|
+
status: SkillsResult["status"];
|
|
66
|
+
/** Number of skills the resource loader actually discovered. */
|
|
67
|
+
discovered: number;
|
|
68
|
+
skills: SkillSummary[];
|
|
69
|
+
/** Operator-mapped `--skill` paths that resolved (echoed for observability). */
|
|
70
|
+
mappedPaths: string[];
|
|
71
|
+
noSkills: boolean;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Build the `skills_status` event, or null when it should be suppressed.
|
|
75
|
+
*
|
|
76
|
+
* Gated so a default run (no skill flags) in a clean environment (no skills
|
|
77
|
+
* discovered) emits nothing — keeping the golden `test/fixtures/*.jsonl`
|
|
78
|
+
* byte-identical (AGENTS.md rule #2). It surfaces only when the operator
|
|
79
|
+
* opted in via `--skill`/`--no-skills` (status !== "default") OR at least one
|
|
80
|
+
* skill was actually discovered.
|
|
81
|
+
*/
|
|
82
|
+
export declare function buildSkillsStatusEvent(result: SkillsResult, discovered: SkillSummary[]): SkillsStatusEvent | null;
|
|
83
|
+
export declare function loadSkillsExtension(config: SkillsConfig): SkillsResult;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skills resource entry point.
|
|
3
|
+
*
|
|
4
|
+
* Pi implements the Agent Skills standard (https://agentskills.io) natively:
|
|
5
|
+
* a skill is a directory with a `SKILL.md` (frontmatter `name` + `description`
|
|
6
|
+
* + instructions). Pi's resource loader discovers skills from default
|
|
7
|
+
* locations (~/.pi/agent/skills, ~/.agents/skills, project .pi/skills,
|
|
8
|
+
* .agents/skills, and package `skills/` dirs) and surfaces them to the agent
|
|
9
|
+
* via progressive disclosure — only names/descriptions are always in context;
|
|
10
|
+
* the agent `read`s the full SKILL.md on demand.
|
|
11
|
+
*
|
|
12
|
+
* Unlike `github`/`web-search`, skills are NOT `customTools`. They're a
|
|
13
|
+
* Pi-native resource fed to `DefaultResourceLoader` via `additionalSkillPaths`
|
|
14
|
+
* / `noSkills` (the same channel file-search uses for `additionalExtensionPaths`).
|
|
15
|
+
* This module's only job is to normalize the operator's `--skill` paths
|
|
16
|
+
* (tilde + relative → absolute, drop missing ones) so the runner can hand
|
|
17
|
+
* them straight to the loader.
|
|
18
|
+
*
|
|
19
|
+
* Safe-by-default like every other extension: a path that doesn't exist is
|
|
20
|
+
* dropped with a warning rather than aborting the run.
|
|
21
|
+
*/
|
|
22
|
+
import { existsSync } from "node:fs";
|
|
23
|
+
import { homedir } from "node:os";
|
|
24
|
+
import { isAbsolute, resolve } from "node:path";
|
|
25
|
+
/** Expand a leading `~` and resolve to an absolute path against `cwd`. */
|
|
26
|
+
function resolveSkillPath(raw, cwd, home) {
|
|
27
|
+
let p = raw;
|
|
28
|
+
if (p === "~") {
|
|
29
|
+
p = home;
|
|
30
|
+
}
|
|
31
|
+
else if (p.startsWith("~/")) {
|
|
32
|
+
p = resolve(home, p.slice(2));
|
|
33
|
+
}
|
|
34
|
+
return isAbsolute(p) ? p : resolve(cwd, p);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Build the `skills_status` event, or null when it should be suppressed.
|
|
38
|
+
*
|
|
39
|
+
* Gated so a default run (no skill flags) in a clean environment (no skills
|
|
40
|
+
* discovered) emits nothing — keeping the golden `test/fixtures/*.jsonl`
|
|
41
|
+
* byte-identical (AGENTS.md rule #2). It surfaces only when the operator
|
|
42
|
+
* opted in via `--skill`/`--no-skills` (status !== "default") OR at least one
|
|
43
|
+
* skill was actually discovered.
|
|
44
|
+
*/
|
|
45
|
+
export function buildSkillsStatusEvent(result, discovered) {
|
|
46
|
+
if (result.status === "default" && discovered.length === 0)
|
|
47
|
+
return null;
|
|
48
|
+
return {
|
|
49
|
+
type: "skills_status",
|
|
50
|
+
status: result.status,
|
|
51
|
+
discovered: discovered.length,
|
|
52
|
+
skills: discovered,
|
|
53
|
+
mappedPaths: result.additionalSkillPaths,
|
|
54
|
+
noSkills: result.noSkills,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
export function loadSkillsExtension(config) {
|
|
58
|
+
const home = config.home ?? homedir();
|
|
59
|
+
const noSkills = config.noSkills === true;
|
|
60
|
+
const warnings = [];
|
|
61
|
+
const additionalSkillPaths = [];
|
|
62
|
+
for (const raw of config.skillPaths ?? []) {
|
|
63
|
+
const abs = resolveSkillPath(raw, config.cwd, home);
|
|
64
|
+
if (!existsSync(abs)) {
|
|
65
|
+
// Non-fatal: an operator pointed at a folder that isn't there. Drop it
|
|
66
|
+
// and warn rather than failing the run (safe-by-default).
|
|
67
|
+
warnings.push(`skill path not found, ignoring: ${raw}`);
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
additionalSkillPaths.push(abs);
|
|
71
|
+
}
|
|
72
|
+
let status;
|
|
73
|
+
if (additionalSkillPaths.length > 0) {
|
|
74
|
+
status = "configured";
|
|
75
|
+
}
|
|
76
|
+
else if (noSkills) {
|
|
77
|
+
status = "disabled";
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
status = "default";
|
|
81
|
+
}
|
|
82
|
+
return { status, additionalSkillPaths, noSkills, warnings };
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/extensions/skills/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgChD,0EAA0E;AAC1E,SAAS,gBAAgB,CAAC,GAAW,EAAE,GAAW,EAAE,IAAY;IAC9D,IAAI,CAAC,GAAG,GAAG,CAAC;IACZ,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QACd,CAAC,GAAG,IAAI,CAAC;IACX,CAAC;SAAM,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC7C,CAAC;AA2BD;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAoB,EACpB,UAA0B;IAE1B,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACxE,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,UAAU,EAAE,UAAU,CAAC,MAAM;QAC7B,MAAM,EAAE,UAAU;QAClB,WAAW,EAAE,MAAM,CAAC,oBAAoB;QACxC,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC1B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAoB;IACtD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC;IAC1C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,oBAAoB,GAAa,EAAE,CAAC;IAE1C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,uEAAuE;YACvE,0DAA0D;YAC1D,QAAQ,CAAC,IAAI,CAAC,mCAAmC,GAAG,EAAE,CAAC,CAAC;YACxD,SAAS;QACX,CAAC;QACD,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,MAA8B,CAAC;IACnC,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,GAAG,YAAY,CAAC;IACxB,CAAC;SAAM,IAAI,QAAQ,EAAE,CAAC;QACpB,MAAM,GAAG,UAAU,CAAC;IACtB,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,SAAS,CAAC;IACrB,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAC9D,CAAC"}
|
package/dist/run.d.ts
CHANGED
|
@@ -101,6 +101,19 @@ export interface RunOptions {
|
|
|
101
101
|
* under the same names). The `PI_FFF_MODE` env var, if set, wins.
|
|
102
102
|
*/
|
|
103
103
|
fileSearchMode?: "override" | "tools-only" | "tools-and-ui";
|
|
104
|
+
/**
|
|
105
|
+
* Extra Agent Skill paths to load, beyond Pi's default discovery
|
|
106
|
+
* (`~/.pi/agent/skills`, `~/.agents/skills`, `.pi/skills`, `.agents/skills`,
|
|
107
|
+
* package `skills/`). Each entry is a directory of skills OR a single skill
|
|
108
|
+
* dir/file. Additive even with `noSkills`. Maps e.g. `~/.claude/skills` into
|
|
109
|
+
* the agent.
|
|
110
|
+
*/
|
|
111
|
+
skillPaths?: string[];
|
|
112
|
+
/**
|
|
113
|
+
* Disable Pi's default skill discovery. Explicit `skillPaths` still load.
|
|
114
|
+
* Default: discovery enabled (Pi's default).
|
|
115
|
+
*/
|
|
116
|
+
noSkills?: boolean;
|
|
104
117
|
/**
|
|
105
118
|
* Enable OTEL traces + metrics export. Default: `false` (or env
|
|
106
119
|
* `AGENTIC_PI_OTEL_ENABLED=1`). `false` here force-disables. Requires an
|
|
@@ -202,6 +215,22 @@ export interface RunResult {
|
|
|
202
215
|
mode?: string;
|
|
203
216
|
toolCount: number;
|
|
204
217
|
};
|
|
218
|
+
/**
|
|
219
|
+
* Mirror of the `skills_status` line. Present only when skills were
|
|
220
|
+
* configured (`skillPaths`/`noSkills`) or at least one skill was discovered;
|
|
221
|
+
* absent on a default run with no skills (matching the gated event).
|
|
222
|
+
*/
|
|
223
|
+
skills?: {
|
|
224
|
+
status: "default" | "configured" | "disabled";
|
|
225
|
+
discovered: number;
|
|
226
|
+
skills: Array<{
|
|
227
|
+
name: string;
|
|
228
|
+
source: string;
|
|
229
|
+
modelInvocable: boolean;
|
|
230
|
+
}>;
|
|
231
|
+
mappedPaths: string[];
|
|
232
|
+
noSkills: boolean;
|
|
233
|
+
};
|
|
205
234
|
/**
|
|
206
235
|
* Mirror of the telemetry `extension_status` line. Present only when OTEL
|
|
207
236
|
* was requested (enabled or explicitly disabled); absent on a default run.
|
package/dist/run.js
CHANGED
|
@@ -51,6 +51,8 @@ export async function run(options) {
|
|
|
51
51
|
webSearchMaxCalls: options.webSearchMaxCalls,
|
|
52
52
|
fileSearch: options.fileSearch ?? true,
|
|
53
53
|
fileSearchMode: options.fileSearchMode,
|
|
54
|
+
skillPaths: options.skillPaths,
|
|
55
|
+
noSkills: options.noSkills,
|
|
54
56
|
otel: options.otel,
|
|
55
57
|
otelIncludeContent: options.otelIncludeContent,
|
|
56
58
|
otelServiceName: options.otelServiceName,
|
|
@@ -130,6 +132,15 @@ function buildResult(exitCode, records, warnings) {
|
|
|
130
132
|
};
|
|
131
133
|
}
|
|
132
134
|
break;
|
|
135
|
+
case "skills_status":
|
|
136
|
+
result.skills = {
|
|
137
|
+
status: r.status,
|
|
138
|
+
discovered: r.discovered ?? 0,
|
|
139
|
+
skills: r.skills ?? [],
|
|
140
|
+
mappedPaths: r.mappedPaths ?? [],
|
|
141
|
+
noSkills: r.noSkills ?? false,
|
|
142
|
+
};
|
|
143
|
+
break;
|
|
133
144
|
case "message_end": {
|
|
134
145
|
// Accumulate assistant text. Pi's message structure:
|
|
135
146
|
// r.message = { role: "assistant", content: [{type:"text", text:"…"}, ...] }
|
package/dist/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAWH,OAAO,EACL,aAAa,EACb,OAAO,GAGR,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,OAAO,EAAwB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
|
package/dist/runner.js
CHANGED
|
@@ -15,6 +15,7 @@ import { Emitter } from "./emitter.js";
|
|
|
15
15
|
import { loadGitHubExtension, isMisconfigurationSkip } from "./extensions/github/index.js";
|
|
16
16
|
import { loadWebSearchExtension, isMisconfigurationSkip as isWebSearchMisconfig, } from "./extensions/web-search/index.js";
|
|
17
17
|
import { loadFileSearchExtension, isMisconfigurationSkip as isFileSearchMisconfig, } from "./extensions/file-search/index.js";
|
|
18
|
+
import { loadSkillsExtension, buildSkillsStatusEvent } from "./extensions/skills/index.js";
|
|
18
19
|
import { resolveModel } from "./models.js";
|
|
19
20
|
import { buildSandbox } from "./sandbox/index.js";
|
|
20
21
|
import { ensureImage, ImageLoaderError } from "./sandbox/images/loader.js";
|
|
@@ -79,6 +80,16 @@ export async function runOnce(config, prompt, deps) {
|
|
|
79
80
|
if (isFileSearchMisconfig(fileSearch)) {
|
|
80
81
|
warn(`file-search extension disabled (${fileSearch.reason}): ${fileSearch.message ?? ""}`);
|
|
81
82
|
}
|
|
83
|
+
// Agent Skills (https://agentskills.io). Pi discovers skills from default
|
|
84
|
+
// locations on its own; this only normalizes operator-mapped --skill paths
|
|
85
|
+
// (tilde/relative → absolute, drop missing) for the resource loader below.
|
|
86
|
+
const skills = loadSkillsExtension({
|
|
87
|
+
skillPaths: config.skillPaths,
|
|
88
|
+
noSkills: config.noSkills,
|
|
89
|
+
cwd: config.cwd,
|
|
90
|
+
});
|
|
91
|
+
for (const w of skills.warnings)
|
|
92
|
+
warn(`skills: ${w}`);
|
|
82
93
|
// Compose the env for the sandbox VM. Order (later wins):
|
|
83
94
|
// 1. Auto-injected GITHUB_TOKEN/GH_TOKEN from a minted installation
|
|
84
95
|
// token (when sandbox=gondolin AND github extension is configured).
|
|
@@ -167,6 +178,11 @@ export async function runOnce(config, prompt, deps) {
|
|
|
167
178
|
cwd: config.cwd,
|
|
168
179
|
agentDir,
|
|
169
180
|
additionalExtensionPaths: fileSearch.packageDir ? [fileSearch.packageDir] : [],
|
|
181
|
+
// Operator-mapped skill folders (e.g. --skill ~/.claude/skills). Additive
|
|
182
|
+
// even when noSkills is true (Pi semantics): --skill X --no-skills loads
|
|
183
|
+
// exactly X and nothing from default discovery.
|
|
184
|
+
additionalSkillPaths: skills.additionalSkillPaths,
|
|
185
|
+
noSkills: skills.noSkills,
|
|
170
186
|
});
|
|
171
187
|
await resourceLoader.reload();
|
|
172
188
|
// A load failure (e.g. missing native binary for this platform) is
|
|
@@ -245,6 +261,17 @@ export async function runOnce(config, prompt, deps) {
|
|
|
245
261
|
mode: fileSearch.mode,
|
|
246
262
|
toolCount: fileSearch.toolNames.length,
|
|
247
263
|
});
|
|
264
|
+
// Pi emits no skill-specific event, so we synthesize one from the resource
|
|
265
|
+
// loader's discovery. Gated (status !== "default" OR ≥1 skill discovered) so
|
|
266
|
+
// a default run in a clean env stays silent and the JSONL fixtures stay valid.
|
|
267
|
+
const skillsStatus = buildSkillsStatusEvent(skills, resourceLoader.getSkills().skills.map((s) => ({
|
|
268
|
+
name: s.name,
|
|
269
|
+
source: s.filePath,
|
|
270
|
+
modelInvocable: !s.disableModelInvocation,
|
|
271
|
+
})));
|
|
272
|
+
if (skillsStatus) {
|
|
273
|
+
emitter.event(skillsStatus);
|
|
274
|
+
}
|
|
248
275
|
// Only surfaced when telemetry was actually requested (enabled, or explicitly
|
|
249
276
|
// --no-otel). A silent default run emits nothing here, so the existing JSONL
|
|
250
277
|
// fixtures stay valid (AGENTS.md rule #2).
|
package/dist/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentic-pi",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.7",
|
|
4
4
|
"description": "A drop-in coding-agent harness built on earendil-works/pi, designed to replace opencode in workflow-driven systems like lastlight.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -44,8 +44,8 @@
|
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
46
|
"@earendil-works/gondolin": "^0.12.0",
|
|
47
|
-
"@earendil-works/pi-ai": "^0.
|
|
48
|
-
"@earendil-works/pi-coding-agent": "^0.
|
|
47
|
+
"@earendil-works/pi-ai": "^0.79.8",
|
|
48
|
+
"@earendil-works/pi-coding-agent": "^0.79.8",
|
|
49
49
|
"@ff-labs/pi-fff": "^0.9.4",
|
|
50
50
|
"@octokit/auth-app": "^7.1.4",
|
|
51
51
|
"@octokit/rest": "^21.0.2",
|