shariq-pi-extensions 0.1.0

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 (123) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +94 -0
  3. package/THIRD_PARTY_NOTICES.md +11 -0
  4. package/docs/ARCHITECTURE.md +54 -0
  5. package/docs/DEVELOPMENT.md +88 -0
  6. package/docs/EXTENSIONS.md +89 -0
  7. package/extensions/antigravity-provider/LICENSE +21 -0
  8. package/extensions/antigravity-provider/README.md +23 -0
  9. package/extensions/antigravity-provider/antigravity/cloud-code-assist.ts +519 -0
  10. package/extensions/antigravity-provider/antigravity/index.ts +67 -0
  11. package/extensions/antigravity-provider/antigravity/models.ts +184 -0
  12. package/extensions/antigravity-provider/antigravity/oauth.ts +499 -0
  13. package/extensions/antigravity-provider/index.ts +3 -0
  14. package/extensions/ask-user/README.md +21 -0
  15. package/extensions/ask-user/index.ts +417 -0
  16. package/extensions/background-terminals/README.md +43 -0
  17. package/extensions/background-terminals/index.ts +400 -0
  18. package/extensions/background-terminals/src/manager.ts +480 -0
  19. package/extensions/background-terminals/src/output-buffer.ts +110 -0
  20. package/extensions/background-terminals/src/presentation.ts +74 -0
  21. package/extensions/background-terminals/src/types.ts +47 -0
  22. package/extensions/background-terminals/src/ui.ts +478 -0
  23. package/extensions/context-usage/LICENSE +21 -0
  24. package/extensions/context-usage/README.md +20 -0
  25. package/extensions/context-usage/index.ts +2006 -0
  26. package/extensions/context-usage/lib/ansi.ts +60 -0
  27. package/extensions/context-usage/lib/boundary.ts +27 -0
  28. package/extensions/context-usage/lib/chat.ts +190 -0
  29. package/extensions/context-usage/lib/config.ts +30 -0
  30. package/extensions/context-usage/lib/fmt.ts +59 -0
  31. package/extensions/context-usage/lib/style.ts +260 -0
  32. package/extensions/copy-all/README.md +15 -0
  33. package/extensions/copy-all/index.ts +72 -0
  34. package/extensions/factory-provider/API_KEYS.md +17 -0
  35. package/extensions/factory-provider/AUTH.md +15 -0
  36. package/extensions/factory-provider/README.md +90 -0
  37. package/extensions/factory-provider/REFRESH_MODELS.md +185 -0
  38. package/extensions/factory-provider/UPDATING.md +97 -0
  39. package/extensions/factory-provider/factory/api-keys.ts +407 -0
  40. package/extensions/factory-provider/factory/auth.ts +132 -0
  41. package/extensions/factory-provider/factory/constants.ts +15 -0
  42. package/extensions/factory-provider/factory/dashboard.ts +363 -0
  43. package/extensions/factory-provider/factory/droid.ts +84 -0
  44. package/extensions/factory-provider/factory/limits.ts +342 -0
  45. package/extensions/factory-provider/factory/models.ts +283 -0
  46. package/extensions/factory-provider/factory/responses.ts +331 -0
  47. package/extensions/factory-provider/factory/warm-theme.ts +53 -0
  48. package/extensions/factory-provider/factory/websocket.ts +130 -0
  49. package/extensions/factory-provider/index.ts +204 -0
  50. package/extensions/factory-provider/scripts/audit-reasoning-efforts.py +84 -0
  51. package/extensions/firecrawl-web/README.md +31 -0
  52. package/extensions/firecrawl-web/auth.ts +92 -0
  53. package/extensions/firecrawl-web/client.ts +238 -0
  54. package/extensions/firecrawl-web/index.ts +96 -0
  55. package/extensions/firecrawl-web/output.ts +125 -0
  56. package/extensions/git-info/README.md +25 -0
  57. package/extensions/git-info/index.ts +162 -0
  58. package/extensions/git-info/src/git.ts +206 -0
  59. package/extensions/git-info/src/ui.ts +291 -0
  60. package/extensions/goal/README.md +44 -0
  61. package/extensions/goal/constants.ts +4 -0
  62. package/extensions/goal/extension.ts +1064 -0
  63. package/extensions/goal/index.ts +2 -0
  64. package/extensions/goal/types.ts +56 -0
  65. package/extensions/goal/ui.ts +334 -0
  66. package/extensions/orchestration/README.md +58 -0
  67. package/extensions/orchestration/dashboard.ts +192 -0
  68. package/extensions/orchestration/engine.ts +706 -0
  69. package/extensions/orchestration/index.ts +243 -0
  70. package/extensions/orchestration/prompts.ts +124 -0
  71. package/extensions/orchestration/protocol.ts +116 -0
  72. package/extensions/orchestration/settings-ui.ts +41 -0
  73. package/extensions/orchestration/settings.ts +59 -0
  74. package/extensions/orchestration/storage.ts +49 -0
  75. package/extensions/orchestration/types.ts +105 -0
  76. package/extensions/performance-status/README.md +5 -0
  77. package/extensions/performance-status/index.ts +171 -0
  78. package/extensions/pi-memory/README.md +53 -0
  79. package/extensions/pi-memory/index.ts +326 -0
  80. package/extensions/pi-memory/src/config.ts +75 -0
  81. package/extensions/pi-memory/src/database.ts +617 -0
  82. package/extensions/pi-memory/src/extraction.ts +178 -0
  83. package/extensions/pi-memory/src/project.ts +80 -0
  84. package/extensions/pi-memory/src/projection.ts +59 -0
  85. package/extensions/pi-memory/src/redaction.ts +60 -0
  86. package/extensions/pi-memory/src/retrieval.ts +30 -0
  87. package/extensions/pi-memory/src/service.ts +194 -0
  88. package/extensions/pi-memory/src/session.ts +146 -0
  89. package/extensions/pi-memory/src/types.ts +82 -0
  90. package/extensions/shared/README.md +18 -0
  91. package/extensions/shared/activity-status.ts +31 -0
  92. package/extensions/shared/child-session.ts +150 -0
  93. package/extensions/shared/context-utilization.ts +47 -0
  94. package/extensions/shared/dashboard-state.ts +99 -0
  95. package/extensions/shared/tool-call-timeout.ts +104 -0
  96. package/extensions/shared/tui-dashboard.ts +139 -0
  97. package/extensions/shell-shortcuts/README.md +17 -0
  98. package/extensions/shell-shortcuts/features/exit-alias.ts +10 -0
  99. package/extensions/shell-shortcuts/index.ts +6 -0
  100. package/extensions/subagents/README.md +89 -0
  101. package/extensions/subagents/index.ts +1386 -0
  102. package/extensions/subagents/src/backend.ts +69 -0
  103. package/extensions/subagents/src/backends/pi.ts +781 -0
  104. package/extensions/subagents/src/catalog.ts +85 -0
  105. package/extensions/subagents/src/config.ts +241 -0
  106. package/extensions/subagents/src/context.ts +57 -0
  107. package/extensions/subagents/src/coordinator.ts +64 -0
  108. package/extensions/subagents/src/domain.ts +294 -0
  109. package/extensions/subagents/src/format.ts +74 -0
  110. package/extensions/subagents/src/manager.ts +813 -0
  111. package/extensions/subagents/src/prompt.ts +94 -0
  112. package/extensions/subagents/src/result-delivery.ts +20 -0
  113. package/extensions/subagents/src/runtime.ts +48 -0
  114. package/extensions/subagents/src/ui/takeover.ts +695 -0
  115. package/extensions/subagents/src/ui/transcript.ts +182 -0
  116. package/extensions/subagents/src/worktree.ts +175 -0
  117. package/extensions/web-fetch/README.md +13 -0
  118. package/extensions/web-fetch/index.ts +441 -0
  119. package/package.json +117 -0
  120. package/skills/background-terminals/SKILL.md +42 -0
  121. package/skills/orchestration/SKILL.md +33 -0
  122. package/skills/subagents/SKILL.md +89 -0
  123. package/themes/ember-warm-dark.json +85 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Shariq Riaz
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,94 @@
1
+ # Shariq's Pi extensions
2
+
3
+ Cross-platform extensions and operating skills for the Pi coding agent. Credentials and runtime state stay on each machine and are never bundled with the package.
4
+
5
+ ## Install
6
+
7
+ Install from npm:
8
+
9
+ ```bash
10
+ pi install npm:shariq-pi-extensions
11
+ ```
12
+
13
+ Or install the latest source from GitHub:
14
+
15
+ ```bash
16
+ pi install git:https://github.com/shariqriazz/shariq-pi-extensions
17
+ ```
18
+
19
+ Run `/reload` in an existing Pi session after installation; new sessions load the package automatically.
20
+
21
+ ## Included extensions
22
+
23
+ The package contains:
24
+
25
+ - Antigravity provider
26
+ - structured user questions
27
+ - managed background terminals
28
+ - copy-all transcript support
29
+ - Factory OAuth and rotating API-key provider
30
+ - Firecrawl search and scraping
31
+ - Git status UI
32
+ - persistent task goals
33
+ - dedicated multi-agent orchestration
34
+ - Pi Memory
35
+ - per-response TPS, TTFT, elapsed-time, and output status
36
+ - Context Usage display
37
+ - small shell and command shortcuts
38
+ - Pi subagents
39
+ - lightweight URL fetching
40
+
41
+ The package also includes the `ember-warm-dark` TUI theme and declares the `background-terminals`, `orchestration`, and `subagents` skills so Pi loads their operating guidance automatically. Pi reads them from the installed package; duplicating files under `<agent-dir>/skills` is unnecessary and would leave stale copies after removal.
42
+
43
+ See [`docs/EXTENSIONS.md`](docs/EXTENSIONS.md) for commands, tools, configuration, and external dependencies.
44
+
45
+ ## Enable or disable extensions
46
+
47
+ Open Pi's package configuration UI:
48
+
49
+ ```bash
50
+ pi config
51
+ ```
52
+
53
+ Toggle individual resources, including Pi Memory, save, and run `/reload`. Disabling Pi Memory stops capture and injection without deleting its database under `<agent-dir>/pi-memory/`. Remove the installed package to disable the whole suite:
54
+
55
+ ```bash
56
+ pi remove npm:shariq-pi-extensions
57
+ ```
58
+
59
+ For a Git installation, use `pi remove git:https://github.com/shariqriazz/shariq-pi-extensions`.
60
+
61
+ ## Pi Memory
62
+
63
+ Pi Memory lives at [`extensions/pi-memory`](extensions/pi-memory) inside the same package as every other extension. Use `pi config` to enable or disable it independently; no second package installation is required. Its runtime database remains under `<agent-dir>/pi-memory/` whether the extension is enabled or disabled.
64
+
65
+ ## Update
66
+
67
+ ```bash
68
+ pi update --extensions --no-approve
69
+ ```
70
+
71
+ An npm installation follows published versions. An unpinned Git installation follows the repository's default branch; a source pinned to a tag or commit remains fixed until its reference is changed explicitly.
72
+
73
+ ## Machine-local configuration
74
+
75
+ The repository never contains credentials. Configure authentication separately on each machine through Pi login, environment variables, or the service's normal credential store.
76
+
77
+ Runtime files use Pi's active agent directory rather than a fixed home or checkout path. This keeps the same package usable on macOS and Linux and prevents updates from overwriting state.
78
+
79
+ ## Development
80
+
81
+ ```bash
82
+ mise install --locked
83
+ mise exec --locked -- npm ci
84
+ mise exec --locked -- npm run validate
85
+ mise exec --locked -- npm run pack:inspect
86
+ ```
87
+
88
+ See [`docs/DEVELOPMENT.md`](docs/DEVELOPMENT.md) for repository workflow and release checks, and [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) for package boundaries.
89
+
90
+ ## Credits and license
91
+
92
+ Parts of this suite began with work by [Ben Davis](https://github.com/davis7dotsh) and [Thomas Mustier](https://github.com/tmustier). See [`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md) for details.
93
+
94
+ Released under the [MIT License](LICENSE).
@@ -0,0 +1,11 @@
1
+ # Third-party notices
2
+
3
+ This package includes substantial local changes to work that began in two public Pi setups.
4
+
5
+ ## Ben Davis
6
+
7
+ Several early extensions and shared patterns were adapted from [Ben Davis's `davis7dotsh/my-pi-setup`](https://github.com/davis7dotsh/my-pi-setup), including work around user questions, background terminals, transcript copying, Firecrawl tools, Git status, and subagents. The implementations in this package have since been reorganized and extended, but Ben's setup was the starting point for those parts.
8
+
9
+ ## Thomas Mustier
10
+
11
+ `extensions/context-usage` is derived from `pi-contextimate` in [Thomas Mustier's `tmustier/pine-of-glass`](https://github.com/tmustier/pine-of-glass). That work is distributed under the MIT License. Its original copyright and license text are preserved in [`extensions/context-usage/LICENSE`](extensions/context-usage/LICENSE).
@@ -0,0 +1,54 @@
1
+ # Architecture
2
+
3
+ Last verified: 2026-08-21
4
+
5
+ ## Package boundary
6
+
7
+ The repository has one Pi package boundary at its root. Every extension, including Pi Memory, is an independently declared resource in `package.json#pi.extensions`. Pi therefore loads only intentional extension factories, and `pi config` can toggle each one without separate installation.
8
+
9
+ ## Source layout
10
+
11
+ ```text
12
+ extensions/<name>/index.ts suite extension entrypoints
13
+ extensions/<name>/src/ extension-owned implementation
14
+ extensions/shared/ runtime helpers shared across extensions
15
+ skills/ operating guidance paired with async extensions
16
+ docs/ package-level maintenance documentation
17
+ scripts/ repository validation helpers
18
+ ```
19
+
20
+ Extension entrypoints register tools, commands, providers, events, or UI. Shared code stays in `extensions/shared` only when more than one extension owns the behavior. Provider-specific protocol and authentication code remains inside its provider directory. The background-terminal, orchestration, and subagent skills ship beside their extensions so a new machine receives the required lifecycle guidance with the tools.
21
+
22
+ ## Dependency model
23
+
24
+ Pi-owned packages and `typebox` are optional peer dependencies at runtime. Pi supplies them when it loads the package. Exact versions are development dependencies so local typechecking and tests use a reproducible API surface.
25
+
26
+ Third-party runtime dependencies are normal package dependencies:
27
+
28
+ - `@lydell/node-pty` powers managed background terminals;
29
+ - `effect` powers subagent lifecycle and coordination;
30
+ - `ws` powers Factory's Responses WebSocket transport.
31
+
32
+ The repository uses one root manifest and lockfile for the full extension suite.
33
+
34
+ ## Runtime state
35
+
36
+ Installed package directories are treated as immutable. Extensions resolve writable state through Pi's APIs:
37
+
38
+ - Factory key selection, Droid metadata, and throttled per-credential limit cache: `<agent-dir>/factory/`
39
+ - Pi Memory state: `<agent-dir>/pi-memory/`
40
+ - Subagent configuration and catalog: paths derived from `getAgentDir()`
41
+ - Orchestration settings and run ledgers: `<agent-dir>/orchestration/`
42
+ - project configuration: paths derived from Pi's `CONFIG_DIR_NAME`
43
+
44
+ Credentials remain in Pi auth storage, environment variables, service credential stores, or ignored machine-local files. Package source never contains an API key, OAuth token, database, cache, or session.
45
+
46
+ ## Portability
47
+
48
+ Runtime paths use `node:path`, `getAgentDir()`, `CONFIG_DIR_NAME`, `os.homedir()`, and platform checks where service credential locations differ. Code must not assume `/Users`, `/home`, Homebrew, a particular shell, or a package installation path. Native PTY support is installed through npm for the active Node platform.
49
+
50
+ ## Loading and updates
51
+
52
+ Pi manages npm and Git package installations and may replace their contents during updates, so user state must never be written beside extension source.
53
+
54
+ `pi config` controls every individual package resource, including Pi Memory. Disabling Pi Memory leaves its runtime database intact and prevents its extension factory from loading after reload.
@@ -0,0 +1,88 @@
1
+ # Development and cutover
2
+
3
+ Last verified: 2026-08-21
4
+
5
+ ## Requirements
6
+
7
+ - mise
8
+ - Pi matching the pinned development dependency version
9
+ - platform build support required by `@lydell/node-pty`
10
+
11
+ Install the exact Node toolchain and dependencies:
12
+
13
+ ```bash
14
+ mise install --locked
15
+ mise exec --locked -- npm ci
16
+ ```
17
+
18
+ ## Validation
19
+
20
+ Validate the complete suite and inspect the package payload:
21
+
22
+ ```bash
23
+ mise exec --locked -- npm run validate
24
+ mise exec --locked -- npm pack --dry-run
25
+ ```
26
+
27
+ The root validation checks TypeScript, runtime tests, declared extension and skill entrypoints, and forbidden runtime files. Inspect the package file list before committing. It must not contain credentials, `.env`, Factory key configuration, caches, databases, sessions, logs, or `node_modules`.
28
+
29
+ ## Adding an extension
30
+
31
+ 1. Add a self-contained directory under `extensions/` with an `index.ts` entrypoint.
32
+ 2. Use relative imports for extension-owned code and `extensions/shared` only for genuinely shared behavior.
33
+ 3. Put external runtime modules in root `dependencies`.
34
+ 4. Add the exact entrypoint to root `package.json#pi.extensions`.
35
+ 5. Add focused runtime tests and update `docs/EXTENSIONS.md`.
36
+ 6. Run both validations and inspect the package payload.
37
+
38
+ Do not add nested package manifests or lockfiles to default-suite extensions. The workspace root owns their dependencies and tooling.
39
+
40
+ ## Runtime configuration
41
+
42
+ Use `getAgentDir()` for user-level state and `CONFIG_DIR_NAME` for project-level Pi configuration. Use `node:path` and explicit platform branches where third-party credential locations differ. Never infer a writable location from `import.meta.url` or the installed package directory.
43
+
44
+ Keep secrets out of examples and fixtures. Tests should inject temporary roots, fake environment objects, or local test servers rather than reading real credentials.
45
+
46
+ ## Skills paired with extensions
47
+
48
+ The root manifest declares `skills/background-terminals` and `skills/subagents`. Pi loads them directly from the managed Git package. Do not copy them into the agent directory from install scripts; that would create duplicates and leave stale files after removal.
49
+
50
+ When either skill changes, validate its structure and keep its behavior aligned with the corresponding extension tools.
51
+
52
+ ## Pi Memory
53
+
54
+ Pi Memory is a normal root-package resource at `extensions/pi-memory`. It is declared separately in `package.json#pi.extensions`, so `pi config` can enable or disable it without affecting the other extensions. Its database stays under `<agent-dir>/pi-memory/` and must never be stored in the installed package directory.
55
+
56
+ ## Current-machine cutover
57
+
58
+ Do not remove a working local extension set before the managed package is available.
59
+
60
+ 1. Push and validate the public GitHub repository.
61
+ 2. Run `pi install git:https://github.com/shariqriazz/shariq-pi-extensions`; do not reload yet.
62
+ 3. Move old auto-discovered extension directories out of the active Pi extension directory so package and local copies cannot load together.
63
+ 4. Move the old paired skill directories out of active discovery; the Git package supplies them.
64
+ 5. Keep Pi Memory disabled through the package resource filter when memory should remain inactive; preserve its data under `<agent-dir>/pi-memory/`.
65
+ 6. Preserve Factory keys and Droid cache under `<agent-dir>/factory/` with restrictive permissions.
66
+ 7. Run `/reload` once.
67
+ 8. Verify package provenance through `pi list`, then check representative commands, tools, providers, and both packaged skills.
68
+
69
+ Rollback is the reverse: remove the Git package from Pi settings, restore the local extension and skill directories, and reload. Never delete credentials or databases during rollback.
70
+
71
+ ## Distribution
72
+
73
+ GitHub hosts the public source and npm distributes versioned releases. Push validated changes to `main` under the repository's normal Git policy.
74
+
75
+ ```bash
76
+ git push origin main
77
+ gh repo view shariqriazz/shariq-pi-extensions --json visibility,url
78
+ ```
79
+
80
+ Before publishing a new npm version:
81
+
82
+ 1. Update `package.json#version` using semantic versioning.
83
+ 2. Run `mise exec --locked -- npm ci` and `mise exec --locked -- npm run validate`.
84
+ 3. Inspect `mise exec --locked -- npm run pack:inspect` for secrets, runtime state, and accidental files.
85
+ 4. Publish with `npm publish --access public --provenance`, or run the `Publish npm package` workflow with `NPM_TOKEN` configured.
86
+ 5. Verify the registry version and install it with `pi install npm:shariq-pi-extensions`.
87
+
88
+ Use npm for stable versioned installs. Use an unpinned Git source for updates directly from `main`, and a tag or commit when a machine should remain fixed to a known revision.
@@ -0,0 +1,89 @@
1
+ # Extension catalog
2
+
3
+ Last verified: 2026-08-20
4
+
5
+ ## Providers
6
+
7
+ ### [Antigravity Provider](../extensions/antigravity-provider/README.md)
8
+
9
+ Registers the `antigravity` provider and `/login antigravity` flow for supported Google Antigravity models. Use `/antigravity.doctor` to inspect non-secret provider status. Credentials remain in Pi auth storage.
10
+
11
+ ### [Factory provider](../extensions/factory-provider/README.md)
12
+
13
+ Registers one `factory` provider with Factory account OAuth, direct API keys, or rotating API keys. `/factory` opens one full-width dashboard for provider/authentication state, model metadata, rotation status, and authoritative Factory usage across every credential. Standard and Droid Core windows stay separate, percentages are labeled as used, and keys are never aggregated. Rotation applies a monthly → weekly → 5-hour eligibility waterfall, then selects the least recently used eligible key and retains same-request failover for recognized pre-output errors. Background refreshes are throttled to 15 minutes; `r` force-refreshes from the dashboard.
14
+
15
+ Rotating keys belong in `<agent-dir>/factory/api-keys.json`. Droid metadata cache belongs in `<agent-dir>/factory/droid.json`. Refresh metadata explicitly after upgrading Droid:
16
+
17
+ ```bash
18
+ FACTORY_DROID_REFRESH=1 pi --list-models factory
19
+ ```
20
+
21
+ The curated catalog intentionally excludes `-fast` variants and the removals documented in `extensions/factory-provider/REFRESH_MODELS.md`.
22
+
23
+ ## Agent workflow
24
+
25
+ ### [Structured questions](../extensions/ask-user/README.md)
26
+
27
+ `ask_user` presents one blocking multiple-choice decision with an optional custom answer. It is intended for decisions that cannot be resolved safely from available context.
28
+
29
+ ### [Goals](../extensions/goal/README.md)
30
+
31
+ The goal extension adds persistent, branch-safe objectives, progress evidence, budgets, pause/resume controls, and strict completion/blocker gates. Use `/goal` for the operator UI and the `create_goal`, `get_goal`, `update_goal_progress`, and `update_goal` tools for agent-controlled state.
32
+
33
+ ### [Subagents](../extensions/subagents/README.md)
34
+
35
+ The subagent extension runs flat Pi child agents with profiles, capability policies, continuation, result delivery, optional worktrees, and a dashboard. Configuration lives in `<agent-dir>/subagents.json`; trusted projects may override it through their Pi config directory. The configured concurrency ceiling is 50.
36
+
37
+ The extension supplies tools including `spawn_agent`, `task`, `check_agent`, `list_agents`, `wait_agent`, `send_message`, `close_agent`, `reply_question`, and `apply_agent_changes`. Child settlement automatically sends a follow-up that starts the next parent turn; status tools are for explicit inspection, not waiting.
38
+
39
+ ### [Orchestration](../extensions/orchestration/README.md)
40
+
41
+ The Orchestration extension coordinates explicitly requested large tasks through a dedicated orchestrator plus configurable explorer, frontend, backend, general-worker, and reviewer models. `/orchestration` opens the dashboard and `/orchestration settings` configures global role models. It reuses the canonical Subagents runtime, maintains a 10-worker pool per project, isolates Git writers in task worktrees, resumes the original worker for substantial review fixes, and applies final reviewed changes without committing or pushing.
42
+
43
+ The model-facing `create_orchestration` tool starts planning only after an explicit orchestration request. `get_orchestration` reports status without advancing work. Interrupted runs recover paused under `<agent-dir>/orchestration/`.
44
+
45
+ ### [Background terminals](../extensions/background-terminals/README.md)
46
+
47
+ Managed PTYs support servers, watchers, long builds, downloads, and interactive processes. The extension tracks up to eight concurrent terminals, retains bounded output, stores full logs in restrictive temporary directories, and stops process groups during shutdown or reload.
48
+
49
+ Its tools are `start_terminal`, `read_terminal`, `write_terminal`, `list_terminals`, and `stop_terminal`. A model-started terminal automatically sends a completion or failure follow-up and starts the next parent turn. Reading a terminal no longer suppresses that delivery; agents should inspect only for explicit progress requests or immediate interaction.
50
+
51
+ ## Web access
52
+
53
+ ### [Firecrawl web](../extensions/firecrawl-web/README.md)
54
+
55
+ `web_search` discovers current web, news, images, GitHub, research, and PDF sources. `web_scrape` renders difficult or JavaScript-heavy pages. Authentication resolves from environment variables, the active Pi agent `.env`, or Firecrawl CLI credentials.
56
+
57
+ ### [Web fetch](../extensions/web-fetch/README.md)
58
+
59
+ `web_fetch` retrieves a known HTTP or HTTPS URL without spending Firecrawl credits. It supports Markdown, text, and HTML output with bounded time and response size.
60
+
61
+ ## Interface and quality of life
62
+
63
+ ### [Context Usage](../extensions/context-usage/README.md)
64
+
65
+ Displays the estimated prompt and session contribution to the active context window. The default summary is a compact context-budget card; use `Ctrl+O` or `/context-usage` to cycle to compact and expanded audit views.
66
+
67
+ ### [Performance status](../extensions/performance-status/README.md)
68
+
69
+ Adds a responsive footer-area status row for each assistant message. Live TPS/output are marked as estimates; final TPS uses conventional decode throughput from first streamed token to message completion. TTFT and total elapsed time separately expose provider latency, prefill, and hidden reasoning; output tokens and active tools remain separate.
70
+
71
+ ### [Git info](../extensions/git-info/README.md)
72
+
73
+ Adds repository state to Pi's interface. `/lg` opens the local Git view and `/pr` exposes pull-request context when available.
74
+
75
+ ### [Copy all](../extensions/copy-all/README.md)
76
+
77
+ `/copy-all` copies the current conversation in a readable form while omitting tool protocol noise that does not belong in the transcript.
78
+
79
+ ### [Shell shortcuts](../extensions/shell-shortcuts/README.md)
80
+
81
+ Adds `/exit` as an alias for Pi's normal quit command. Keep this extension limited to small, low-risk conveniences.
82
+
83
+ ## [Persistent memory](../extensions/pi-memory/README.md)
84
+
85
+ Pi Memory lives at `extensions/pi-memory` as an individually toggleable resource in the main package. It injects bounded relevant memories, queues asynchronous extraction, and stores durable state in SQLite under `<agent-dir>/pi-memory/`. Enable or disable it through `pi config`; disabling it does not delete its data.
86
+
87
+ ## Per-extension details
88
+
89
+ Implementation-specific behavior and maintenance notes remain next to each extension in its own README. Package-wide installation, dependencies, state boundaries, and release rules belong in the root documentation.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Antigravity extension contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,23 @@
1
+ # Antigravity Provider
2
+
3
+ Local persistent Pi provider for Google Antigravity-compatible models.
4
+
5
+ - Package module: `extensions/antigravity-provider/`
6
+ - Provider id: `antigravity`
7
+ - Login command: `/login antigravity`
8
+ - Doctor command: `/antigravity.doctor`
9
+
10
+ The provider includes an IPv4 OAuth token-exchange fallback for Node environments where the default request fails. Its deterministic catalog follows Antigravity CLI 1.1.13 model identifiers and runtime behavior.
11
+
12
+ Current public model IDs:
13
+ - `antigravity/gemini-3.7-flash`
14
+ - `antigravity/gemini-3.6-flash`
15
+ - `antigravity/gemini-3.5-flash`
16
+ - `antigravity/gemini-3.1-pro`
17
+ - `antigravity/claude-sonnet-4-6`
18
+ - `antigravity/claude-opus-4-6`
19
+ - `antigravity/gpt-oss-120b`
20
+
21
+ Pi's thinking selector is normalized to Antigravity's runtime IDs: Flash models clamp `off`/`minimal` to `low` and `xhigh`/`max` to `high`; Gemini 3.1 Pro clamps to its `low`/`high` pair; Claude and GPT-OSS use their single fixed-thinking runtime regardless of the selected Pi level.
22
+
23
+ The provider id intentionally remains `antigravity`; existing `~/.pi/agent/auth.json` credentials continue to work without moving secret values. After updating `agy`, compare `agy models` with `antigravity/models.ts` before changing this deterministic catalog.