@diegopetrucci/pi-extensions 0.1.61 → 0.1.63
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/.pi-fleet-tested-version +1 -1
- package/README.md +3 -2
- package/extensions/agent-workflow-audit/.pi-fleet-tested-version +1 -1
- package/extensions/agent-workflow-audit/package.json +1 -1
- package/extensions/annotate-git-diff/.pi-fleet-tested-version +1 -1
- package/extensions/annotate-git-diff/package.json +1 -1
- package/extensions/annotate-last-message/.pi-fleet-tested-version +1 -1
- package/extensions/annotate-last-message/package.json +1 -1
- package/extensions/brrr/.pi-fleet-tested-version +1 -1
- package/extensions/brrr/package.json +1 -1
- package/extensions/claude-fast/.pi-fleet-tested-version +1 -1
- package/extensions/claude-fast/README.md +2 -0
- package/extensions/claude-fast/package.json +1 -1
- package/extensions/code-reviewer/.pi-fleet-tested-version +1 -1
- package/extensions/code-reviewer/README.md +1 -0
- package/extensions/code-reviewer/index.ts +24 -2
- package/extensions/code-reviewer/package.json +1 -1
- package/extensions/confirm-destructive/.pi-fleet-tested-version +1 -1
- package/extensions/confirm-destructive/package.json +1 -1
- package/extensions/context-cap/.pi-fleet-tested-version +1 -1
- package/extensions/context-cap/package.json +1 -1
- package/extensions/context-inspector/.pi-fleet-tested-version +1 -1
- package/extensions/context-inspector/package.json +1 -1
- package/extensions/contrarian/.pi-fleet-tested-version +1 -1
- package/extensions/contrarian/README.md +2 -0
- package/extensions/contrarian/index.ts +34 -8
- package/extensions/contrarian/package.json +1 -1
- package/extensions/dirty-repo-guard/.pi-fleet-tested-version +1 -1
- package/extensions/dirty-repo-guard/package.json +1 -1
- package/extensions/dynamic-context-pruning/.pi-fleet-tested-version +1 -1
- package/extensions/dynamic-context-pruning/README.md +78 -11
- package/extensions/dynamic-context-pruning/index.ts +171 -21
- package/extensions/dynamic-context-pruning/package.json +1 -1
- package/extensions/fast/.pi-fleet-tested-version +1 -0
- package/extensions/fast/README.md +119 -0
- package/extensions/fast/fast.example.json +4 -0
- package/extensions/fast/index.ts +383 -0
- package/extensions/fast/package.json +39 -0
- package/extensions/git-footer/.pi-fleet-tested-version +1 -1
- package/extensions/git-footer/package.json +1 -1
- package/extensions/gnosis/.pi-fleet-tested-version +1 -1
- package/extensions/gnosis/package.json +1 -1
- package/extensions/illustrations-to-explain-things/.pi-fleet-tested-version +1 -1
- package/extensions/illustrations-to-explain-things/package.json +1 -1
- package/extensions/inline-bash/.pi-fleet-tested-version +1 -1
- package/extensions/inline-bash/package.json +1 -1
- package/extensions/librarian/.pi-fleet-tested-version +1 -1
- package/extensions/librarian/README.md +1 -1
- package/extensions/librarian/index.ts +34 -5
- package/extensions/librarian/package.json +1 -1
- package/extensions/minimal-footer/.pi-fleet-tested-version +1 -1
- package/extensions/minimal-footer/package.json +1 -1
- package/extensions/notify/.pi-fleet-tested-version +1 -1
- package/extensions/notify/package.json +1 -1
- package/extensions/openai-fast/.pi-fleet-tested-version +1 -1
- package/extensions/openai-fast/README.md +2 -0
- package/extensions/openai-fast/package.json +1 -1
- package/extensions/oracle/.pi-fleet-tested-version +1 -1
- package/extensions/oracle/README.md +2 -0
- package/extensions/oracle/index.ts +34 -8
- package/extensions/oracle/package.json +1 -1
- package/extensions/permission-gate/.pi-fleet-tested-version +1 -1
- package/extensions/permission-gate/package.json +1 -1
- package/extensions/quiet-tools/.pi-fleet-tested-version +1 -1
- package/extensions/quiet-tools/package.json +1 -1
- package/extensions/review/.pi-fleet-tested-version +1 -1
- package/extensions/review/package.json +1 -1
- package/extensions/todo/.pi-fleet-tested-version +1 -1
- package/extensions/todo/package.json +1 -1
- package/extensions/triage-comments/.pi-fleet-tested-version +1 -1
- package/extensions/triage-comments/package.json +1 -1
- package/package.json +5 -6
|
@@ -20,6 +20,31 @@ type PiModel = {
|
|
|
20
20
|
thinkingLevelMap?: ThinkingLevelMap;
|
|
21
21
|
};
|
|
22
22
|
|
|
23
|
+
type ModelSelectionContext = {
|
|
24
|
+
model?: PiModel;
|
|
25
|
+
modelRegistry: { getAvailable(): PiModel[] | Promise<PiModel[]> };
|
|
26
|
+
scopedModels?: ReadonlyArray<{ model: PiModel; thinkingLevel?: ThinkingLevel }>;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
function modelKey(model: PiModel): string {
|
|
30
|
+
return `${model.provider}/${model.id}`.toLowerCase();
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function hasModelScope(ctx: ModelSelectionContext): boolean {
|
|
34
|
+
return Array.isArray(ctx.scopedModels) && ctx.scopedModels.length > 0;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function isModelInScope(ctx: ModelSelectionContext, model: PiModel): boolean {
|
|
38
|
+
if (!hasModelScope(ctx)) return true;
|
|
39
|
+
const key = modelKey(model);
|
|
40
|
+
return ctx.scopedModels!.some((entry) => modelKey(entry.model) === key);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
async function getAutoSelectableModels(ctx: ModelSelectionContext): Promise<PiModel[]> {
|
|
44
|
+
const available = await ctx.modelRegistry.getAvailable();
|
|
45
|
+
return hasModelScope(ctx) ? available.filter((model) => isModelInScope(ctx, model)) : available;
|
|
46
|
+
}
|
|
47
|
+
|
|
23
48
|
interface UsageStats {
|
|
24
49
|
input: number;
|
|
25
50
|
output: number;
|
|
@@ -163,8 +188,6 @@ const PROVIDER_MODEL_PREFERENCES: Record<string, string[]> = {
|
|
|
163
188
|
"accounts/fireworks/models/glm-5p2",
|
|
164
189
|
"accounts/fireworks/routers/glm-5p2-fast",
|
|
165
190
|
"accounts/fireworks/models/minimax-m3",
|
|
166
|
-
"accounts/fireworks/models/glm-5p1",
|
|
167
|
-
"accounts/fireworks/routers/glm-5p1-fast",
|
|
168
191
|
"accounts/fireworks/models/kimi-k2p6",
|
|
169
192
|
"accounts/fireworks/routers/kimi-k2p6-turbo",
|
|
170
193
|
"accounts/fireworks/routers/kimi-k2p6-fast",
|
|
@@ -873,7 +896,7 @@ function appendThinkingLevelClampReason(
|
|
|
873
896
|
}
|
|
874
897
|
|
|
875
898
|
async function findAvailableModel(
|
|
876
|
-
ctx:
|
|
899
|
+
ctx: ModelSelectionContext,
|
|
877
900
|
modelRef: string,
|
|
878
901
|
): Promise<PiModel | undefined> {
|
|
879
902
|
const available = await ctx.modelRegistry.getAvailable();
|
|
@@ -919,11 +942,11 @@ function toOracleSelection(
|
|
|
919
942
|
}
|
|
920
943
|
|
|
921
944
|
function buildSessionFallbackSelection(
|
|
922
|
-
ctx:
|
|
945
|
+
ctx: ModelSelectionContext,
|
|
923
946
|
thinkingLevelOverride: ThinkingLevel | undefined,
|
|
924
947
|
): OracleSelection | undefined {
|
|
925
948
|
const model = ctx.model;
|
|
926
|
-
if (!model) return undefined;
|
|
949
|
+
if (!model || !isModelInScope(ctx, model)) return undefined;
|
|
927
950
|
return toOracleSelection(
|
|
928
951
|
model,
|
|
929
952
|
thinkingLevelOverride,
|
|
@@ -939,14 +962,16 @@ function withFallbackReason(selection: OracleSelection, previous: OracleSelectio
|
|
|
939
962
|
}
|
|
940
963
|
|
|
941
964
|
async function selectOracleModel(
|
|
942
|
-
ctx:
|
|
965
|
+
ctx: ModelSelectionContext,
|
|
943
966
|
thinkingLevelOverride?: ThinkingLevel,
|
|
944
967
|
): Promise<{ ok: true; selection: OracleSelection; ordered: OracleSelection[] } | { ok: false; error: string }> {
|
|
945
|
-
const available = await ctx
|
|
968
|
+
const available = await getAutoSelectableModels(ctx);
|
|
946
969
|
if (available.length === 0) {
|
|
947
970
|
return {
|
|
948
971
|
ok: false,
|
|
949
|
-
error:
|
|
972
|
+
error: hasModelScope(ctx)
|
|
973
|
+
? "No authenticated models are available in the current session model scope. Adjust the scope, log in, or configure an API key."
|
|
974
|
+
: "No authenticated models are available. Log in or configure an API key first.",
|
|
950
975
|
};
|
|
951
976
|
}
|
|
952
977
|
|
|
@@ -1253,6 +1278,7 @@ type OracleExtensionDeps = {
|
|
|
1253
1278
|
};
|
|
1254
1279
|
|
|
1255
1280
|
export const __test__ = {
|
|
1281
|
+
buildSessionFallbackSelection,
|
|
1256
1282
|
createOracleExtension,
|
|
1257
1283
|
findAvailableModel,
|
|
1258
1284
|
isModelAvailabilityError,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
0.83.0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
0.83.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@diegopetrucci/pi-quiet-tools",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.10",
|
|
4
4
|
"description": "A pi extension that visually compacts collapsed built-in tool rows in the TUI without changing tool results sent to the model.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pi-package",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
0.83.0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
0.83.0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
0.83.0
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@diegopetrucci/pi-extensions",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.63",
|
|
4
4
|
"description": "A collection of pi extensions and skills for annotation UIs, context management, workflow audits, contrarian review, review-comment triage, notifications, brrr push alerts, safety guards, GitHub research, repo-local knowledge, todos, tool rendering, model/provider helpers, and Xiaohei-style article illustrations.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pi-package",
|
|
@@ -45,7 +45,6 @@
|
|
|
45
45
|
"./extensions/annotate-git-diff/index.ts",
|
|
46
46
|
"./extensions/annotate-last-message/index.ts",
|
|
47
47
|
"./extensions/brrr/index.ts",
|
|
48
|
-
"./extensions/claude-fast/index.ts",
|
|
49
48
|
"./extensions/code-reviewer/index.ts",
|
|
50
49
|
"./extensions/confirm-destructive/index.ts",
|
|
51
50
|
"./extensions/context-cap/index.ts",
|
|
@@ -53,12 +52,12 @@
|
|
|
53
52
|
"./extensions/contrarian/index.ts",
|
|
54
53
|
"./extensions/dirty-repo-guard/index.ts",
|
|
55
54
|
"./extensions/dynamic-context-pruning/index.ts",
|
|
55
|
+
"./extensions/fast/index.ts",
|
|
56
56
|
"./extensions/gnosis/index.ts",
|
|
57
57
|
"./extensions/inline-bash/index.ts",
|
|
58
58
|
"./extensions/librarian/index.ts",
|
|
59
59
|
"./extensions/minimal-footer/index.ts",
|
|
60
60
|
"./extensions/notify/index.ts",
|
|
61
|
-
"./extensions/openai-fast/index.ts",
|
|
62
61
|
"./extensions/oracle/index.ts",
|
|
63
62
|
"./extensions/permission-gate/index.ts",
|
|
64
63
|
"./extensions/quiet-tools/index.ts",
|
|
@@ -72,9 +71,9 @@
|
|
|
72
71
|
]
|
|
73
72
|
},
|
|
74
73
|
"devDependencies": {
|
|
75
|
-
"@earendil-works/pi-ai": "^0.
|
|
76
|
-
"@earendil-works/pi-coding-agent": "^0.
|
|
77
|
-
"@earendil-works/pi-tui": "^0.
|
|
74
|
+
"@earendil-works/pi-ai": "^0.83.0",
|
|
75
|
+
"@earendil-works/pi-coding-agent": "^0.83.0",
|
|
76
|
+
"@earendil-works/pi-tui": "^0.83.0",
|
|
78
77
|
"@types/node": "^25.9.1",
|
|
79
78
|
"husky": "^9.1.7",
|
|
80
79
|
"typebox": "^1.3.6",
|