xtrm-tools 0.7.4 → 0.7.9
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/.xtrm/config/pi/extensions/custom-footer/.pi/structured-returns/83051fe4-97da-4e2c-bdaa-343b32f4e714.combined.log +7 -0
- package/.xtrm/config/pi/extensions/custom-footer/.pi/structured-returns/83051fe4-97da-4e2c-bdaa-343b32f4e714.stderr.log +0 -0
- package/.xtrm/config/pi/extensions/custom-footer/.pi/structured-returns/83051fe4-97da-4e2c-bdaa-343b32f4e714.stdout.log +7 -0
- package/.xtrm/registry.json +537 -565
- package/.xtrm/skills/default/gitnexus-cli/SKILL.md +82 -0
- package/.xtrm/skills/default/gitnexus-exploring/SKILL.md +78 -0
- package/.xtrm/skills/default/gitnexus-guide/SKILL.md +64 -0
- package/.xtrm/skills/default/init-session/SKILL.md +3 -0
- package/.xtrm/skills/default/last30days/SKILL.md +1 -1
- package/.xtrm/skills/default/last30days/scripts/lib/youtube_yt.py +59 -40
- package/.xtrm/skills/default/sync-docs/references/doc-structure.md +1 -1
- package/.xtrm/skills/default/sync-docs/references/schema.md +1 -1
- package/.xtrm/skills/default/sync-docs/scripts/doc_structure_analyzer.py +2 -2
- package/.xtrm/skills/default/using-specialists/SKILL.md +346 -138
- package/.xtrm/skills/default/using-specialists/SKILL.safe.md +1082 -0
- package/.xtrm/skills/default/using-specialists/SKILL.ultra.md +1082 -0
- package/.xtrm/skills/default/vaultctl/SKILL.md +150 -0
- package/CHANGELOG.md +4 -4
- package/cli/dist/index.cjs +392 -194
- package/cli/dist/index.cjs.map +1 -1
- package/cli/package.json +1 -1
- package/package.json +8 -7
- package/packages/pi-extensions/MIGRATION_NOTES.md +39 -0
- package/packages/pi-extensions/README.md +43 -0
- package/packages/pi-extensions/extensions/README.md +5 -0
- package/{.xtrm/config/pi → packages/pi-extensions}/extensions/beads/index.ts +1 -1
- package/{.xtrm/config/pi → packages/pi-extensions}/extensions/beads/package.json +1 -4
- package/{.xtrm/config/pi → packages/pi-extensions}/extensions/custom-footer/index.ts +1 -1
- package/{.xtrm/config/pi → packages/pi-extensions}/extensions/custom-footer/package.json +1 -4
- package/packages/pi-extensions/extensions/custom-provider-qwen-cli/package.json +16 -0
- package/{.xtrm/config/pi → packages/pi-extensions}/extensions/pi-serena-compact/package.json +9 -2
- package/{.xtrm/config/pi → packages/pi-extensions}/extensions/quality-gates/index.ts +1 -1
- package/{.xtrm/config/pi → packages/pi-extensions}/extensions/quality-gates/package.json +1 -4
- package/{.xtrm/config/pi → packages/pi-extensions}/extensions/service-skills/index.ts +1 -1
- package/{.xtrm/config/pi → packages/pi-extensions}/extensions/service-skills/package.json +1 -4
- package/{.xtrm/config/pi → packages/pi-extensions}/extensions/session-flow/index.ts +1 -1
- package/{.xtrm/config/pi → packages/pi-extensions}/extensions/session-flow/package.json +1 -4
- package/{.xtrm/config/pi → packages/pi-extensions}/extensions/xtrm-loader/index.ts +1 -1
- package/{.xtrm/config/pi → packages/pi-extensions}/extensions/xtrm-loader/package.json +1 -4
- package/{.xtrm/config/pi → packages/pi-extensions}/extensions/xtrm-ui/index.ts +1 -1
- package/packages/pi-extensions/package.json +46 -0
- package/packages/pi-extensions/src/core/README.md +9 -0
- package/packages/pi-extensions/src/core/index.ts +5 -0
- package/packages/pi-extensions/src/extensions/auto-session-name.ts +3 -0
- package/packages/pi-extensions/src/extensions/auto-update.ts +3 -0
- package/packages/pi-extensions/src/extensions/beads.ts +3 -0
- package/packages/pi-extensions/src/extensions/compact-header.ts +3 -0
- package/packages/pi-extensions/src/extensions/custom-footer.ts +3 -0
- package/packages/pi-extensions/src/extensions/custom-provider-qwen-cli.ts +3 -0
- package/packages/pi-extensions/src/extensions/git-checkpoint.ts +3 -0
- package/packages/pi-extensions/src/extensions/lsp-bootstrap.ts +3 -0
- package/packages/pi-extensions/src/extensions/pi-serena-compact.ts +3 -0
- package/packages/pi-extensions/src/extensions/quality-gates.ts +3 -0
- package/packages/pi-extensions/src/extensions/service-skills.ts +3 -0
- package/packages/pi-extensions/src/extensions/session-flow.ts +3 -0
- package/packages/pi-extensions/src/extensions/xtrm-loader.ts +3 -0
- package/packages/pi-extensions/src/extensions/xtrm-ui.ts +3 -0
- package/packages/pi-extensions/src/index.ts +9 -0
- package/packages/pi-extensions/src/registry.ts +52 -0
- package/packages/pi-extensions/src/shared/index.ts +1 -0
- package/packages/pi-extensions/src/shared/legacy-path-map.ts +23 -0
- package/{.xtrm/config/pi/extensions/xtrm-ui/themes → packages/pi-extensions/themes/xtrm-ui}/pidex-dark.json +3 -7
- package/{.xtrm/config/pi/extensions/xtrm-ui/themes → packages/pi-extensions/themes/xtrm-ui}/pidex-light.json +0 -4
- package/.xtrm/config/pi/extensions/core/package.json +0 -18
- package/.xtrm/config/pi/extensions/custom-provider-qwen-cli/package.json +0 -1
- /package/{.xtrm/config/pi → packages/pi-extensions}/extensions/auto-session-name/index.ts +0 -0
- /package/{.xtrm/config/pi → packages/pi-extensions}/extensions/auto-session-name/package.json +0 -0
- /package/{.xtrm/config/pi → packages/pi-extensions}/extensions/auto-update/index.ts +0 -0
- /package/{.xtrm/config/pi → packages/pi-extensions}/extensions/auto-update/package.json +0 -0
- /package/{.xtrm/config/pi → packages/pi-extensions}/extensions/compact-header/index.ts +0 -0
- /package/{.xtrm/config/pi → packages/pi-extensions}/extensions/compact-header/package.json +0 -0
- /package/{.xtrm/config/pi → packages/pi-extensions}/extensions/custom-provider-qwen-cli/index.ts +0 -0
- /package/{.xtrm/config/pi → packages/pi-extensions}/extensions/git-checkpoint/index.ts +0 -0
- /package/{.xtrm/config/pi → packages/pi-extensions}/extensions/git-checkpoint/package.json +0 -0
- /package/{.xtrm/config/pi → packages/pi-extensions}/extensions/lsp-bootstrap/index.ts +0 -0
- /package/{.xtrm/config/pi → packages/pi-extensions}/extensions/lsp-bootstrap/package.json +0 -0
- /package/{.xtrm/config/pi → packages/pi-extensions}/extensions/pi-serena-compact/index.ts +0 -0
- /package/{.xtrm/config/pi → packages/pi-extensions}/extensions/xtrm-ui/format.ts +0 -0
- /package/{.xtrm/config/pi → packages/pi-extensions}/extensions/xtrm-ui/package.json +0 -0
- /package/{.xtrm/config/pi/extensions → packages/pi-extensions/src}/core/adapter.ts +0 -0
- /package/{.xtrm/config/pi/extensions → packages/pi-extensions/src}/core/guard-rules.ts +0 -0
- /package/{.xtrm/config/pi/extensions → packages/pi-extensions/src}/core/lib.ts +0 -0
- /package/{.xtrm/config/pi/extensions → packages/pi-extensions/src}/core/logger.ts +0 -0
- /package/{.xtrm/config/pi/extensions → packages/pi-extensions/src}/core/runner.ts +0 -0
- /package/{.xtrm/config/pi/extensions → packages/pi-extensions/src}/core/session-state.ts +0 -0
package/cli/package.json
CHANGED
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "xtrm-tools",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.9",
|
|
4
4
|
"description": "Claude Code tools installer (skills, hooks, MCP servers)",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"workspaces": [
|
|
8
8
|
"cli",
|
|
9
|
-
"
|
|
9
|
+
"packages/pi-extensions"
|
|
10
10
|
],
|
|
11
11
|
"bin": {
|
|
12
12
|
"xtrm": "cli/dist/index.cjs",
|
|
@@ -21,14 +21,14 @@
|
|
|
21
21
|
"scripts/ghgrep.mjs",
|
|
22
22
|
".xtrm/config",
|
|
23
23
|
".xtrm/hooks",
|
|
24
|
-
"
|
|
24
|
+
"packages/pi-extensions",
|
|
25
25
|
".xtrm/skills/default",
|
|
26
26
|
".xtrm/skills/optional",
|
|
27
27
|
".xtrm/registry.json",
|
|
28
28
|
"!**/__pycache__/**",
|
|
29
29
|
"!**/*.pyc",
|
|
30
30
|
"!.xtrm/hooks/tsconfig-cache.json",
|
|
31
|
-
"
|
|
31
|
+
"!packages/pi-extensions/extensions/**/.pi/**",
|
|
32
32
|
"!.xtrm/extensions/**/.pi/**",
|
|
33
33
|
"!.xtrm/**/test_*.py",
|
|
34
34
|
"!.xtrm/**/tests/**"
|
|
@@ -55,9 +55,11 @@
|
|
|
55
55
|
"start": "node cli/dist/index.cjs",
|
|
56
56
|
"lint": "echo 'No linting configured'",
|
|
57
57
|
"test": "npm test --workspace cli",
|
|
58
|
-
"version": "npm run sync:cli-version && git add cli/package.json",
|
|
58
|
+
"version": "npm run sync:cli-version && git add cli/package.json packages/pi-extensions/package.json",
|
|
59
59
|
"prepublishOnly": "npm run sync:cli-version && npm run build",
|
|
60
60
|
"release": "npm publish --tag latest",
|
|
61
|
+
"release:pi-extensions": "npm publish --workspace @jaggerxtrm/pi-extensions --tag latest --access public",
|
|
62
|
+
"release:all": "npm run release && npm run release:pi-extensions",
|
|
61
63
|
"gen-registry": "node scripts/gen-registry.mjs"
|
|
62
64
|
},
|
|
63
65
|
"engines": {
|
|
@@ -75,10 +77,9 @@
|
|
|
75
77
|
},
|
|
76
78
|
"pi": {
|
|
77
79
|
"extensions": [
|
|
78
|
-
"./
|
|
80
|
+
"./packages/pi-extensions"
|
|
79
81
|
],
|
|
80
82
|
"packages": [
|
|
81
|
-
"npm:pi-dex",
|
|
82
83
|
"npm:pi-gitnexus",
|
|
83
84
|
"npm:pi-serena-tools",
|
|
84
85
|
"npm:@zenobius/pi-worktrees",
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Pi extension source migration notes (P2)
|
|
2
|
+
|
|
3
|
+
## Legacy → new source map
|
|
4
|
+
|
|
5
|
+
| Legacy path | New path | Notes |
|
|
6
|
+
|---|---|---|
|
|
7
|
+
| `packages/pi-extensions/extensions/auto-session-name` | `packages/pi-extensions/extensions/auto-session-name` | extension source moved unchanged |
|
|
8
|
+
| `packages/pi-extensions/extensions/auto-update` | `packages/pi-extensions/extensions/auto-update` | extension source moved unchanged |
|
|
9
|
+
| `packages/pi-extensions/extensions/beads` | `packages/pi-extensions/extensions/beads` | now imports `../../src/core` |
|
|
10
|
+
| `packages/pi-extensions/extensions/compact-header` | `packages/pi-extensions/extensions/compact-header` | extension source moved unchanged |
|
|
11
|
+
| `packages/pi-extensions/extensions/custom-footer` | `packages/pi-extensions/extensions/custom-footer` | now imports `../../src/core` |
|
|
12
|
+
| `packages/pi-extensions/extensions/custom-provider-qwen-cli` | `packages/pi-extensions/extensions/custom-provider-qwen-cli` | extension source moved unchanged |
|
|
13
|
+
| `packages/pi-extensions/extensions/git-checkpoint` | `packages/pi-extensions/extensions/git-checkpoint` | extension source moved unchanged |
|
|
14
|
+
| `packages/pi-extensions/extensions/lsp-bootstrap` | `packages/pi-extensions/extensions/lsp-bootstrap` | extension source moved unchanged |
|
|
15
|
+
| `packages/pi-extensions/extensions/pi-serena-compact` | `packages/pi-extensions/extensions/pi-serena-compact` | extension source moved unchanged |
|
|
16
|
+
| `packages/pi-extensions/extensions/quality-gates` | `packages/pi-extensions/extensions/quality-gates` | now imports `../../src/core` |
|
|
17
|
+
| `packages/pi-extensions/extensions/service-skills` | `packages/pi-extensions/extensions/service-skills` | now imports `../../src/core` |
|
|
18
|
+
| `packages/pi-extensions/extensions/session-flow` | `packages/pi-extensions/extensions/session-flow` | now imports `../../src/core` |
|
|
19
|
+
| `packages/pi-extensions/extensions/xtrm-loader` | `packages/pi-extensions/extensions/xtrm-loader` | now imports `../../src/core` |
|
|
20
|
+
| `packages/pi-extensions/extensions/xtrm-ui` | `packages/pi-extensions/extensions/xtrm-ui` | theme assets moved to package-level `themes/xtrm-ui` |
|
|
21
|
+
| `packages/pi-extensions/src/core` | `packages/pi-extensions/src/core` | internal helpers; no separate `@xtrm/pi-core` package required |
|
|
22
|
+
|
|
23
|
+
## Asset migration
|
|
24
|
+
|
|
25
|
+
- `xtrm-ui/themes/*.json` moved to `packages/pi-extensions/themes/xtrm-ui/*.json`.
|
|
26
|
+
- `xtrm-ui` now discovers themes from `join(__dirname, "../../themes/xtrm-ui")`.
|
|
27
|
+
|
|
28
|
+
## Follow-up updates required in later phases
|
|
29
|
+
|
|
30
|
+
1. **Installer/runtime sync paths**
|
|
31
|
+
- Replace hardcoded `packages/pi-extensions/extensions/**` references with `packages/pi-extensions/extensions/**` in install/runtime copy logic.
|
|
32
|
+
2. **Registry generation**
|
|
33
|
+
- Update `scripts/gen-registry.mjs` asset sources once package path is the canonical source-of-truth.
|
|
34
|
+
3. **Tests and fixtures**
|
|
35
|
+
- Update tests asserting extension source paths (currently expecting `packages/pi-extensions/extensions`).
|
|
36
|
+
4. **Policies/docs references**
|
|
37
|
+
- Update docs/policies that still mention `packages/pi-extensions/extensions` after runtime switch lands.
|
|
38
|
+
5. **Packaging entrypoint wiring**
|
|
39
|
+
- Wire `packages/pi-extensions/src/index.ts` into Pi package install flow and extension registration.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# @jaggerxtrm/pi-extensions
|
|
2
|
+
|
|
3
|
+
Unified runtime package for xtrm-managed Pi extensions.
|
|
4
|
+
|
|
5
|
+
## Publish contract
|
|
6
|
+
|
|
7
|
+
- Package is published as `@jaggerxtrm/pi-extensions` (public npm package).
|
|
8
|
+
- No build step is required. Pi loads raw TypeScript extension entrypoints at runtime.
|
|
9
|
+
- `prepublishOnly` runs `verify:runtime` to ensure required runtime assets exist:
|
|
10
|
+
- `src/index.ts`
|
|
11
|
+
- `src/registry.ts`
|
|
12
|
+
- `extensions/`
|
|
13
|
+
- `themes/`
|
|
14
|
+
- Files shipped to npm are controlled by `files` in `package.json`.
|
|
15
|
+
|
|
16
|
+
## Release workflow
|
|
17
|
+
|
|
18
|
+
From repository root:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
npm run release:pi-extensions
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
To publish both root `xtrm-tools` and this package in one pass:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npm run release:all
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Install contract
|
|
31
|
+
|
|
32
|
+
Managed project runtime install path:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
pi install npm:@jaggerxtrm/pi-extensions
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Pi discovers this package through:
|
|
39
|
+
|
|
40
|
+
- `keywords: ["pi-package"]`
|
|
41
|
+
- `pi.extensions: ["./src/index.ts"]`
|
|
42
|
+
|
|
43
|
+
After install, keep `.pi/settings.json` package wiring pointed at `npm:@jaggerxtrm/pi-extensions`.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
|
|
2
2
|
import { isToolCallEventType, isBashToolResult } from "@mariozechner/pi-coding-agent";
|
|
3
|
-
import { SubprocessRunner, EventAdapter } from "
|
|
3
|
+
import { SubprocessRunner, EventAdapter } from "../../src/core";
|
|
4
4
|
|
|
5
5
|
export default function (pi: ExtensionAPI) {
|
|
6
6
|
const getCwd = (ctx: any) => ctx.cwd || process.cwd();
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
|
|
11
11
|
import { truncateToWidth, visibleWidth } from "@mariozechner/pi-tui";
|
|
12
12
|
|
|
13
|
-
import { SubprocessRunner, EventAdapter } from "
|
|
13
|
+
import { SubprocessRunner, EventAdapter } from "../../src/core";
|
|
14
14
|
|
|
15
15
|
export default function (pi: ExtensionAPI) {
|
|
16
16
|
interface BeadClaim {
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "pi-extension-custom-provider-qwen-cli",
|
|
3
|
+
"private": true,
|
|
4
|
+
"version": "1.7.1",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"clean": "echo 'nothing to clean'",
|
|
8
|
+
"build": "echo 'nothing to build'",
|
|
9
|
+
"check": "echo 'nothing to check'"
|
|
10
|
+
},
|
|
11
|
+
"pi": {
|
|
12
|
+
"extensions": [
|
|
13
|
+
"./index.ts"
|
|
14
|
+
]
|
|
15
|
+
}
|
|
16
|
+
}
|
package/{.xtrm/config/pi → packages/pi-extensions}/extensions/pi-serena-compact/package.json
RENAMED
|
@@ -2,7 +2,12 @@
|
|
|
2
2
|
"name": "pi-serena-compact",
|
|
3
3
|
"version": "1.0.0",
|
|
4
4
|
"description": "Compact output for Serena MCP tools in Pi",
|
|
5
|
-
"keywords": [
|
|
5
|
+
"keywords": [
|
|
6
|
+
"pi",
|
|
7
|
+
"pi-extension",
|
|
8
|
+
"serena",
|
|
9
|
+
"mcp"
|
|
10
|
+
],
|
|
6
11
|
"license": "MIT",
|
|
7
12
|
"type": "module",
|
|
8
13
|
"main": "index.ts",
|
|
@@ -11,6 +16,8 @@
|
|
|
11
16
|
"@mariozechner/pi-tui": "^0.56.0"
|
|
12
17
|
},
|
|
13
18
|
"pi": {
|
|
14
|
-
"extensions": [
|
|
19
|
+
"extensions": [
|
|
20
|
+
"./index.ts"
|
|
21
|
+
]
|
|
15
22
|
}
|
|
16
23
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
|
|
2
|
-
import { SubprocessRunner, EventAdapter } from "
|
|
2
|
+
import { SubprocessRunner, EventAdapter } from "../../src/core";
|
|
3
3
|
import * as path from "node:path";
|
|
4
4
|
import * as fs from "node:fs";
|
|
5
5
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
|
|
2
2
|
import { isBashToolResult } from "@mariozechner/pi-coding-agent";
|
|
3
|
-
import { SubprocessRunner, EventAdapter } from "
|
|
3
|
+
import { SubprocessRunner, EventAdapter } from "../../src/core";
|
|
4
4
|
|
|
5
5
|
function isClaimCommand(command: string): { isClaim: boolean; issueId: string | null } {
|
|
6
6
|
if (!/\bbd\s+update\b/.test(command) || !/--claim\b/.test(command)) {
|
|
@@ -2,7 +2,7 @@ import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
|
|
|
2
2
|
import * as fs from "node:fs";
|
|
3
3
|
import * as path from "node:path";
|
|
4
4
|
import { homedir } from "node:os";
|
|
5
|
-
import { Logger } from "
|
|
5
|
+
import { Logger } from "../../src/core";
|
|
6
6
|
|
|
7
7
|
const logger = new Logger({ namespace: "xtrm-loader" });
|
|
8
8
|
|
|
@@ -1027,7 +1027,7 @@ function isXtrmTheme(name: string | undefined): boolean {
|
|
|
1027
1027
|
export default function xtrmUiExtension(pi: ExtensionAPI): void {
|
|
1028
1028
|
let prefs: XtrmUiPrefs = { ...DEFAULT_PREFS };
|
|
1029
1029
|
let previousThemeName: string | null = null;
|
|
1030
|
-
const extensionThemeDir = join(__dirname, "themes");
|
|
1030
|
+
const extensionThemeDir = join(__dirname, "../../themes/xtrm-ui");
|
|
1031
1031
|
|
|
1032
1032
|
const getPrefs = () => prefs;
|
|
1033
1033
|
const setPrefs = (p: XtrmUiPrefs) => { prefs = p; };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@jaggerxtrm/pi-extensions",
|
|
3
|
+
"version": "0.7.9",
|
|
4
|
+
"description": "Unified Pi extension entrypoint for xtrm-managed extensions",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"publishConfig": {
|
|
7
|
+
"access": "public"
|
|
8
|
+
},
|
|
9
|
+
"keywords": [
|
|
10
|
+
"pi-package",
|
|
11
|
+
"pi",
|
|
12
|
+
"extension",
|
|
13
|
+
"xtrm"
|
|
14
|
+
],
|
|
15
|
+
"exports": {
|
|
16
|
+
".": "./src/index.ts",
|
|
17
|
+
"./registry": "./src/registry.ts"
|
|
18
|
+
},
|
|
19
|
+
"pi": {
|
|
20
|
+
"extensions": [
|
|
21
|
+
"./src/index.ts"
|
|
22
|
+
]
|
|
23
|
+
},
|
|
24
|
+
"author": "xtrm",
|
|
25
|
+
"license": "MIT",
|
|
26
|
+
"repository": {
|
|
27
|
+
"type": "git",
|
|
28
|
+
"url": "git+https://github.com/Jaggerxtrm/xtrm-tools.git",
|
|
29
|
+
"directory": "packages/pi-extensions"
|
|
30
|
+
},
|
|
31
|
+
"homepage": "https://github.com/Jaggerxtrm/xtrm-tools/tree/main/packages/pi-extensions",
|
|
32
|
+
"bugs": {
|
|
33
|
+
"url": "https://github.com/Jaggerxtrm/xtrm-tools/issues"
|
|
34
|
+
},
|
|
35
|
+
"scripts": {
|
|
36
|
+
"prepublishOnly": "npm run verify:runtime",
|
|
37
|
+
"verify:runtime": "node -e \"const fs=require('fs');const required=['src/index.ts','src/registry.ts','extensions','themes'];const missing=required.filter((entry)=>!fs.existsSync(entry));if(missing.length){console.error('Missing publish runtime assets: '+missing.join(', '));process.exit(1);}console.log('Runtime assets present for npm publish.');\""
|
|
38
|
+
},
|
|
39
|
+
"files": [
|
|
40
|
+
"src",
|
|
41
|
+
"extensions",
|
|
42
|
+
"themes",
|
|
43
|
+
"MIGRATION_NOTES.md",
|
|
44
|
+
"README.md"
|
|
45
|
+
]
|
|
46
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Internal core module layout
|
|
2
|
+
|
|
3
|
+
This directory is the internal home for shared code that previously lived in the published `@xtrm/pi-core` package.
|
|
4
|
+
|
|
5
|
+
## Contract for follow-up phases
|
|
6
|
+
|
|
7
|
+
- Keep all shared runtime helpers under `src/core/**`.
|
|
8
|
+
- Import from relative paths inside `@jaggerxtrm/pi-extensions`; do not publish or depend on `@xtrm/pi-core`.
|
|
9
|
+
- Delegate concrete extension entrypoints from `extensions/**` through the package root `src/index.ts`.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
|
|
2
|
+
|
|
3
|
+
import { registerManagedPiExtensions } from "./registry.ts";
|
|
4
|
+
|
|
5
|
+
export { managedPiExtensions, registerManagedPiExtensions } from "./registry.ts";
|
|
6
|
+
|
|
7
|
+
export default function registerXtrmPiExtensions(pi: ExtensionAPI): void {
|
|
8
|
+
registerManagedPiExtensions(pi);
|
|
9
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
|
|
2
|
+
|
|
3
|
+
import autoSessionNameExtension from "./extensions/auto-session-name.ts";
|
|
4
|
+
import autoUpdateExtension from "./extensions/auto-update.ts";
|
|
5
|
+
import beadsExtension from "./extensions/beads.ts";
|
|
6
|
+
import compactHeaderExtension from "./extensions/compact-header.ts";
|
|
7
|
+
import customFooterExtension from "./extensions/custom-footer.ts";
|
|
8
|
+
import customProviderQwenCliExtension from "./extensions/custom-provider-qwen-cli.ts";
|
|
9
|
+
import gitCheckpointExtension from "./extensions/git-checkpoint.ts";
|
|
10
|
+
import lspBootstrapExtension from "./extensions/lsp-bootstrap.ts";
|
|
11
|
+
import piSerenaCompactExtension from "./extensions/pi-serena-compact.ts";
|
|
12
|
+
import qualityGatesExtension from "./extensions/quality-gates.ts";
|
|
13
|
+
import serviceSkillsExtension from "./extensions/service-skills.ts";
|
|
14
|
+
import sessionFlowExtension from "./extensions/session-flow.ts";
|
|
15
|
+
import xtrmLoaderExtension from "./extensions/xtrm-loader.ts";
|
|
16
|
+
import xtrmUiExtension from "./extensions/xtrm-ui.ts";
|
|
17
|
+
|
|
18
|
+
export type ManagedPiExtension = {
|
|
19
|
+
readonly id: string;
|
|
20
|
+
readonly register: (pi: ExtensionAPI) => void;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export const managedPiExtensions: readonly ManagedPiExtension[] = [
|
|
24
|
+
{ id: "auto-session-name", register: autoSessionNameExtension },
|
|
25
|
+
{ id: "auto-update", register: autoUpdateExtension },
|
|
26
|
+
{ id: "beads", register: beadsExtension },
|
|
27
|
+
{ id: "compact-header", register: compactHeaderExtension },
|
|
28
|
+
{ id: "custom-footer", register: customFooterExtension },
|
|
29
|
+
{ id: "custom-provider-qwen-cli", register: customProviderQwenCliExtension },
|
|
30
|
+
{ id: "git-checkpoint", register: gitCheckpointExtension },
|
|
31
|
+
{ id: "lsp-bootstrap", register: lspBootstrapExtension },
|
|
32
|
+
{ id: "pi-serena-compact", register: piSerenaCompactExtension },
|
|
33
|
+
{ id: "quality-gates", register: qualityGatesExtension },
|
|
34
|
+
{ id: "service-skills", register: serviceSkillsExtension },
|
|
35
|
+
{ id: "session-flow", register: sessionFlowExtension },
|
|
36
|
+
{ id: "xtrm-loader", register: xtrmLoaderExtension },
|
|
37
|
+
{ id: "xtrm-ui", register: xtrmUiExtension },
|
|
38
|
+
];
|
|
39
|
+
|
|
40
|
+
function registerManagedExtension(pi: ExtensionAPI, extension: ManagedPiExtension): void {
|
|
41
|
+
try {
|
|
42
|
+
extension.register(pi);
|
|
43
|
+
} catch (error) {
|
|
44
|
+
console.warn(`[pi-extensions] Failed to register '${extension.id}':`, error);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export function registerManagedPiExtensions(pi: ExtensionAPI): void {
|
|
49
|
+
for (const extension of managedPiExtensions) {
|
|
50
|
+
registerManagedExtension(pi, extension);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./legacy-path-map";
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface ExtensionPathMapping {
|
|
2
|
+
readonly extensionId: string;
|
|
3
|
+
readonly legacyPath: string;
|
|
4
|
+
readonly newPath: string;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export const LEGACY_PATH_MAPPINGS: readonly ExtensionPathMapping[] = [
|
|
8
|
+
{ extensionId: "auto-session-name", legacyPath: ".xtrm/ext-src/auto-session-name", newPath: "packages/pi-extensions/extensions/auto-session-name" },
|
|
9
|
+
{ extensionId: "auto-update", legacyPath: ".xtrm/ext-src/auto-update", newPath: "packages/pi-extensions/extensions/auto-update" },
|
|
10
|
+
{ extensionId: "beads", legacyPath: ".xtrm/ext-src/beads", newPath: "packages/pi-extensions/extensions/beads" },
|
|
11
|
+
{ extensionId: "compact-header", legacyPath: ".xtrm/ext-src/compact-header", newPath: "packages/pi-extensions/extensions/compact-header" },
|
|
12
|
+
{ extensionId: "custom-footer", legacyPath: ".xtrm/ext-src/custom-footer", newPath: "packages/pi-extensions/extensions/custom-footer" },
|
|
13
|
+
{ extensionId: "custom-provider-qwen-cli", legacyPath: ".xtrm/ext-src/custom-provider-qwen-cli", newPath: "packages/pi-extensions/extensions/custom-provider-qwen-cli" },
|
|
14
|
+
{ extensionId: "git-checkpoint", legacyPath: ".xtrm/ext-src/git-checkpoint", newPath: "packages/pi-extensions/extensions/git-checkpoint" },
|
|
15
|
+
{ extensionId: "lsp-bootstrap", legacyPath: ".xtrm/ext-src/lsp-bootstrap", newPath: "packages/pi-extensions/extensions/lsp-bootstrap" },
|
|
16
|
+
{ extensionId: "pi-serena-compact", legacyPath: ".xtrm/ext-src/pi-serena-compact", newPath: "packages/pi-extensions/extensions/pi-serena-compact" },
|
|
17
|
+
{ extensionId: "quality-gates", legacyPath: ".xtrm/ext-src/quality-gates", newPath: "packages/pi-extensions/extensions/quality-gates" },
|
|
18
|
+
{ extensionId: "service-skills", legacyPath: ".xtrm/ext-src/service-skills", newPath: "packages/pi-extensions/extensions/service-skills" },
|
|
19
|
+
{ extensionId: "session-flow", legacyPath: ".xtrm/ext-src/session-flow", newPath: "packages/pi-extensions/extensions/session-flow" },
|
|
20
|
+
{ extensionId: "xtrm-loader", legacyPath: ".xtrm/ext-src/xtrm-loader", newPath: "packages/pi-extensions/extensions/xtrm-loader" },
|
|
21
|
+
{ extensionId: "xtrm-ui", legacyPath: ".xtrm/ext-src/xtrm-ui", newPath: "packages/pi-extensions/extensions/xtrm-ui" },
|
|
22
|
+
{ extensionId: "pi-core-internal", legacyPath: ".xtrm/ext-src/core", newPath: "packages/pi-extensions/src/core" },
|
|
23
|
+
] as const;
|
|
@@ -37,13 +37,9 @@
|
|
|
37
37
|
"customMessageBg": "surfaceCustom",
|
|
38
38
|
"customMessageText": "",
|
|
39
39
|
"customMessageLabel": "accentBlue",
|
|
40
|
-
"toolPendingBg": "
|
|
41
|
-
"toolSuccessBg": "
|
|
42
|
-
"toolErrorBg": "
|
|
43
|
-
"toolUseBg": "surface",
|
|
44
|
-
"toolUsePendingBg": "surface",
|
|
45
|
-
"toolUseSuccessBg": "surface",
|
|
46
|
-
"toolUseErrorBg": "surface",
|
|
40
|
+
"toolPendingBg": "surfaceAlt",
|
|
41
|
+
"toolSuccessBg": "surfaceAlt",
|
|
42
|
+
"toolErrorBg": "surfaceAlt",
|
|
47
43
|
"toolTitle": "",
|
|
48
44
|
"toolOutput": "gray",
|
|
49
45
|
|
|
@@ -40,10 +40,6 @@
|
|
|
40
40
|
"toolPendingBg": "surfaceAlt",
|
|
41
41
|
"toolSuccessBg": "surfaceAlt",
|
|
42
42
|
"toolErrorBg": "surfaceAlt",
|
|
43
|
-
"toolUseBg": "surfaceAlt",
|
|
44
|
-
"toolUsePendingBg": "surfaceAlt",
|
|
45
|
-
"toolUseSuccessBg": "surfaceAlt",
|
|
46
|
-
"toolUseErrorBg": "surfaceAlt",
|
|
47
43
|
"toolTitle": "",
|
|
48
44
|
"toolOutput": "gray",
|
|
49
45
|
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@xtrm/pi-core",
|
|
3
|
-
"version": "1.0.0",
|
|
4
|
-
"description": "Shared utilities for xtrm Pi extensions",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"exports": {
|
|
7
|
-
".": "./lib.ts",
|
|
8
|
-
"./lib": "./lib.ts",
|
|
9
|
-
"./logger": "./logger.ts",
|
|
10
|
-
"./runner": "./runner.ts",
|
|
11
|
-
"./adapter": "./adapter.ts",
|
|
12
|
-
"./guard-rules": "./guard-rules.ts",
|
|
13
|
-
"./session-state": "./session-state.ts"
|
|
14
|
-
},
|
|
15
|
-
"keywords": ["pi", "extension", "xtrm"],
|
|
16
|
-
"author": "xtrm",
|
|
17
|
-
"license": "MIT"
|
|
18
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{ "name": "pi-extension-custom-provider-qwen-cli", "private": true, "version": "1.7.1", "type": "module", "scripts": { "clean": "echo 'nothing to clean'", "build": "echo 'nothing to build'", "check": "echo 'nothing to check'" }, "pi": { "extensions": [ "./index.ts" ] } }
|
|
File without changes
|
/package/{.xtrm/config/pi → packages/pi-extensions}/extensions/auto-session-name/package.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|