@saifymatteo/pi-extensions 0.1.4 → 0.1.6
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/CHANGELOG.md +34 -0
- package/package.json +2 -1
- package/packages/pi-bg-bash/AGENTS.md +29 -0
- package/packages/pi-bg-bash/CHANGELOG.md +25 -0
- package/packages/pi-bg-bash/package.json +2 -1
- package/packages/pi-bg-bash/src/index.ts +189 -99
- package/packages/pi-bg-bash/src/lib/output.ts +31 -0
- package/packages/pi-bg-bash/src/lib/panel.ts +155 -0
- package/packages/pi-bg-bash/src/lib/process-control.ts +221 -0
- package/packages/pi-bg-bash/src/lib/windows-console.ts +169 -0
- package/packages/pi-bg-bash/test/job-controls.test.mjs +347 -0
- package/packages/pi-bg-bash/test/native-process-control.test.mjs +126 -0
- package/packages/pi-bg-bash/test/output.test.mjs +28 -0
- package/packages/pi-bg-bash/test/panel.test.mjs +146 -0
- package/packages/pi-bg-bash/test/process-control.test.mjs +300 -0
- package/packages/pi-bg-bash/test/windows-console.test.mjs +221 -0
- package/packages/pi-claude-usage/CHANGELOG.md +18 -0
- package/packages/pi-claude-usage/package.json +2 -1
- package/packages/pi-clipboard-image/CHANGELOG.md +18 -0
- package/packages/pi-clipboard-image/package.json +2 -1
- package/packages/pi-codeblock-borders/CHANGELOG.md +18 -0
- package/packages/pi-codeblock-borders/package.json +2 -1
- package/packages/pi-codegraph/CHANGELOG.md +25 -0
- package/packages/pi-codegraph/package.json +2 -1
- package/packages/pi-compact-tools/CHANGELOG.md +24 -0
- package/packages/pi-compact-tools/package.json +2 -1
- package/packages/pi-compact-tools/src/index.ts +18 -8
- package/packages/pi-compact-tools/test/behavior.test.mjs +131 -0
- package/packages/pi-decisions/CHANGELOG.md +18 -0
- package/packages/pi-decisions/package.json +2 -1
- package/packages/pi-load-pi-dotenv/CHANGELOG.md +18 -0
- package/packages/pi-load-pi-dotenv/package.json +2 -1
- package/packages/pi-model-go/CHANGELOG.md +18 -0
- package/packages/pi-model-go/package.json +2 -1
- package/packages/pi-prestart-working/CHANGELOG.md +18 -0
- package/packages/pi-prestart-working/package.json +2 -1
- package/packages/pi-root-guard/CHANGELOG.md +18 -0
- package/packages/pi-root-guard/package.json +2 -1
- package/packages/pi-session-finder/CHANGELOG.md +18 -0
- package/packages/pi-session-finder/package.json +2 -1
- package/packages/pi-session-id/CHANGELOG.md +18 -0
- package/packages/pi-session-id/package.json +2 -1
- package/packages/pi-session-nav/CHANGELOG.md +18 -0
- package/packages/pi-session-nav/package.json +2 -1
- package/packages/pi-session-rename/CHANGELOG.md +18 -0
- package/packages/pi-session-rename/package.json +2 -1
- package/packages/pi-session-retention/CHANGELOG.md +25 -0
- package/packages/pi-session-retention/package.json +2 -1
- package/packages/pi-skill-usage-log/CHANGELOG.md +18 -0
- package/packages/pi-skill-usage-log/package.json +2 -1
- package/packages/pi-tool-usage-log/CHANGELOG.md +18 -0
- package/packages/pi-tool-usage-log/package.json +2 -1
- package/packages/pi-tts/CHANGELOG.md +18 -0
- package/packages/pi-tts/package.json +2 -1
- package/packages/pi-user-image-previews/CHANGELOG.md +18 -0
- package/packages/pi-user-image-previews/package.json +2 -1
- package/packages/pi-vision/CHANGELOG.md +18 -0
- package/packages/pi-vision/package.json +2 -1
- package/packages/pi-wait/CHANGELOG.md +18 -0
- package/packages/pi-wait/package.json +2 -1
- package/packages/pi-zvec/CHANGELOG.md +25 -0
- package/packages/pi-zvec/package.json +2 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@saifymatteo/pi-codegraph",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"license": "AGPL-3.0-only",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"src",
|
|
12
12
|
"examples",
|
|
13
13
|
"README.md",
|
|
14
|
+
"CHANGELOG.md",
|
|
14
15
|
"NOTICE.md",
|
|
15
16
|
"LICENSE"
|
|
16
17
|
],
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
Release notes are recorded from 0.1.3 onward.
|
|
4
|
+
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [0.1.5]
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- Keep new-request thinking and activity out of earlier tool cards, including steering messages received before session history is updated.
|
|
12
|
+
|
|
13
|
+
## [0.1.4]
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- Include package release notes in Pi 1.5.0's Extension Updates.
|
|
18
|
+
|
|
19
|
+
## [0.1.3]
|
|
20
|
+
|
|
21
|
+
### Fixed
|
|
22
|
+
|
|
23
|
+
- Classify the package as an extension in the Pi package gallery.
|
|
24
|
+
- Show the package screenshot as its gallery preview.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@saifymatteo/pi-compact-tools",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"description": "Groups consecutive tool calls into compact expandable transcript cards.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "AGPL-3.0-only",
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"files": [
|
|
12
12
|
"src",
|
|
13
13
|
"README.md",
|
|
14
|
+
"CHANGELOG.md",
|
|
14
15
|
"NOTICE.md",
|
|
15
16
|
"LICENSE"
|
|
16
17
|
],
|
|
@@ -455,7 +455,7 @@ function nestedSkills(result: SkillResult, toolName: string | undefined): string
|
|
|
455
455
|
// Anything visible between two calls (user/custom message, assistant text)
|
|
456
456
|
// starts a new group; tool results and thinking do not. A call seen twice
|
|
457
457
|
// (the in-flight copy of an already persisted message) keeps its first group.
|
|
458
|
-
function buildGroups(messages: Msg[]): { groupOf: Map<string, Group>; last?: Group } {
|
|
458
|
+
function buildGroups(messages: Msg[]): { groupOf: Map<string, Group>; last?: Group; active?: Group } {
|
|
459
459
|
const groupOf = new Map<string, Group>();
|
|
460
460
|
let current: Group | undefined;
|
|
461
461
|
let last: Group | undefined;
|
|
@@ -488,7 +488,9 @@ function buildGroups(messages: Msg[]): { groupOf: Map<string, Group>; last?: Gro
|
|
|
488
488
|
last = current;
|
|
489
489
|
}
|
|
490
490
|
}
|
|
491
|
-
|
|
491
|
+
// Historical cards remain addressable, but only an unbroken trailing run
|
|
492
|
+
// can own live activity. A user message or assistant text ends that run.
|
|
493
|
+
return { groupOf, last, active: current };
|
|
492
494
|
}
|
|
493
495
|
|
|
494
496
|
// [verb, singular, plural]; tools sharing verb+noun are counted together.
|
|
@@ -680,9 +682,9 @@ function markToolContexts(): void {
|
|
|
680
682
|
export default function (pi: ExtensionAPI) {
|
|
681
683
|
let retired = false;
|
|
682
684
|
let sessionManager: ExtensionContext["sessionManager"] | undefined;
|
|
683
|
-
let live: Msg | undefined; // in-flight assistant
|
|
685
|
+
let live: Msg | undefined; // latest user boundary or in-flight assistant, maybe not persisted yet
|
|
684
686
|
let running = false;
|
|
685
|
-
let cache: { key: string
|
|
687
|
+
let cache: (ReturnType<typeof buildGroups> & { key: string }) | undefined;
|
|
686
688
|
const invalidators = new Map<string, () => void>(); // toolCallId -> row redraw
|
|
687
689
|
// Native expanded belongs to Ctrl+O; pointer disclosure is local to the card.
|
|
688
690
|
const openHeads = new Set<string>();
|
|
@@ -705,7 +707,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
705
707
|
}
|
|
706
708
|
|
|
707
709
|
function syncActivity() {
|
|
708
|
-
const head = running && !latestThought(live) ? groups().
|
|
710
|
+
const head = running && !latestThought(live) ? groups().active?.head : undefined;
|
|
709
711
|
if (!head || !invalidators.has(head)) { stopActivity(); return; }
|
|
710
712
|
if (activityTimer !== undefined) return;
|
|
711
713
|
// One timer for the current parent, never one per row or historical card.
|
|
@@ -713,7 +715,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
713
715
|
syncActivity();
|
|
714
716
|
if (activityTimer === undefined) return;
|
|
715
717
|
activityFrame = (activityFrame + 1) % activityFrames.length;
|
|
716
|
-
invalidators.get(groups().
|
|
718
|
+
invalidators.get(groups().active!.head)?.();
|
|
717
719
|
}, 160);
|
|
718
720
|
}
|
|
719
721
|
|
|
@@ -829,7 +831,15 @@ export default function (pi: ExtensionAPI) {
|
|
|
829
831
|
if (event.message.role === "assistant") {
|
|
830
832
|
live = event.message as Msg;
|
|
831
833
|
syncActivity();
|
|
832
|
-
} else
|
|
834
|
+
} else {
|
|
835
|
+
if (event.message.role === "user") {
|
|
836
|
+
// message_start precedes persistence: do not wait for getBranch()
|
|
837
|
+
// to contain this boundary, especially for steering mid-run.
|
|
838
|
+
live = event.message as Msg;
|
|
839
|
+
cache = undefined;
|
|
840
|
+
}
|
|
841
|
+
refresh();
|
|
842
|
+
}
|
|
833
843
|
});
|
|
834
844
|
pi.on("message_update", (event) => {
|
|
835
845
|
if (event.message.role !== "assistant") return;
|
|
@@ -848,7 +858,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
848
858
|
}
|
|
849
859
|
// nf-fa-caret_down and nf-fa-caret_right
|
|
850
860
|
let text = theme.fg("warning", theme.bold(`${openHeads.has(group.head) ? "\uf0d7" : "\uf0da"} ${summarize(names, images) || "Skill instructions"}`));
|
|
851
|
-
if (running && group === groups().
|
|
861
|
+
if (running && group === groups().active) {
|
|
852
862
|
const thought = latestThought(live);
|
|
853
863
|
// nf-md-thought_bubble_outline
|
|
854
864
|
text += theme.fg("dim", thought ? ` \udb81\udff7 ${thought}` : ` ${activityFrames[activityFrame]}`);
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import test from 'node:test';
|
|
2
|
+
import assert from 'node:assert/strict';
|
|
3
|
+
import * as tui from '@earendil-works/pi-tui';
|
|
4
|
+
import { loadExtension } from '../../../test/load-extension.mjs';
|
|
5
|
+
|
|
6
|
+
const theme = { fg: (_token, text) => text, bold: text => text };
|
|
7
|
+
const assistant = content => ({ role: 'assistant', content });
|
|
8
|
+
const call = id => ({ type: 'toolCall', id, name: 'bash', arguments: { command: id } });
|
|
9
|
+
const user = text => ({ role: 'user', content: text });
|
|
10
|
+
|
|
11
|
+
function harness(t) {
|
|
12
|
+
const hooks = {};
|
|
13
|
+
const branch = [];
|
|
14
|
+
let resolver;
|
|
15
|
+
let activity;
|
|
16
|
+
const invalidated = [];
|
|
17
|
+
const extension = loadExtension(new URL('../src/index.ts', import.meta.url), {
|
|
18
|
+
'@earendil-works/pi-coding-agent': {
|
|
19
|
+
AssistantMessageComponent: class { updateContent() {} },
|
|
20
|
+
ToolExecutionComponent: class {},
|
|
21
|
+
keyHint: (_key, label) => `Ctrl+O ${label}`,
|
|
22
|
+
},
|
|
23
|
+
'@earendil-works/pi-tui': tui,
|
|
24
|
+
}, {
|
|
25
|
+
// No wall-clock animation needed to check card ownership.
|
|
26
|
+
setInterval: fn => { activity = fn; return 1; },
|
|
27
|
+
clearInterval: () => { activity = undefined; },
|
|
28
|
+
});
|
|
29
|
+
extension.default({
|
|
30
|
+
on: (name, handler) => { hooks[name] = handler; },
|
|
31
|
+
registerToolRenderer: fn => { resolver = fn; },
|
|
32
|
+
getSettings: () => ({}),
|
|
33
|
+
});
|
|
34
|
+
const emit = (name, message) => hooks[name]?.({ message });
|
|
35
|
+
hooks.session_start({}, { sessionManager: {
|
|
36
|
+
getSessionId: () => 'test',
|
|
37
|
+
getLeafId: () => branch.at(-1)?.id,
|
|
38
|
+
getBranch: () => branch,
|
|
39
|
+
} });
|
|
40
|
+
t.after(() => emit('session_shutdown'));
|
|
41
|
+
const persist = message => branch.push({ type: 'message', id: String(branch.length), message });
|
|
42
|
+
const render = id => resolver('bash', () => undefined).renderCall({ command: id }, theme, {
|
|
43
|
+
toolCallId: id, [Symbol.for('compact-tools.tuiContext')]: true,
|
|
44
|
+
expanded: false, isPartial: false, invalidate: () => invalidated.push(id),
|
|
45
|
+
}).render(90).join('\n');
|
|
46
|
+
return { emit, persist, render, invalidated, tick: () => activity?.() };
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
test('new request thinking does not appear in the previous tool card', t => {
|
|
50
|
+
const h = harness(t);
|
|
51
|
+
h.persist(user('first request'));
|
|
52
|
+
h.persist(assistant([call('old')]));
|
|
53
|
+
h.emit('agent_end');
|
|
54
|
+
const before = h.render('old');
|
|
55
|
+
assert.match(before, /Ran 1 command/);
|
|
56
|
+
|
|
57
|
+
h.emit('agent_start');
|
|
58
|
+
h.emit('message_start', user('second request'));
|
|
59
|
+
h.persist(user('second request'));
|
|
60
|
+
h.emit('message_start', assistant([]));
|
|
61
|
+
h.emit('message_update', assistant([{ type: 'thinking', thinking: 'NEW REQUEST THOUGHT' }]));
|
|
62
|
+
assert.equal(h.render('old'), before, 'previous card must not show new request activity');
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
test('new tool calls stay below the user boundary, live and persisted', t => {
|
|
66
|
+
const h = harness(t);
|
|
67
|
+
h.persist(user('first request'));
|
|
68
|
+
h.persist(assistant([call('old')]));
|
|
69
|
+
const before = h.render('old');
|
|
70
|
+
h.emit('agent_start');
|
|
71
|
+
h.emit('message_start', user('second request'));
|
|
72
|
+
h.persist(user('second request'));
|
|
73
|
+
h.emit('message_start', assistant([]));
|
|
74
|
+
h.emit('message_update', assistant([call('new')]));
|
|
75
|
+
assert.match(h.render('new'), /Ran 1 command/);
|
|
76
|
+
assert.equal(h.render('old'), before);
|
|
77
|
+
h.persist(assistant([call('new')]));
|
|
78
|
+
assert.match(h.render('new'), /Ran 1 command/, 'persisted/live duplicate must not count twice');
|
|
79
|
+
h.emit('agent_end');
|
|
80
|
+
assert.match(h.render('new'), /Ran 1 command/);
|
|
81
|
+
assert.equal(h.render('old'), before);
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
test('a steering user boundary stops previous card activity before persistence', t => {
|
|
85
|
+
const h = harness(t);
|
|
86
|
+
h.persist(user('first request'));
|
|
87
|
+
h.persist(assistant([call('old')]));
|
|
88
|
+
const before = h.render('old');
|
|
89
|
+
h.emit('agent_start');
|
|
90
|
+
h.emit('message_start', assistant([{ type: 'thinking', thinking: 'OLD THOUGHT' }]));
|
|
91
|
+
assert.match(h.render('old'), /OLD THOUGHT/);
|
|
92
|
+
h.emit('message_start', user('steering request'));
|
|
93
|
+
assert.equal(h.render('old'), before);
|
|
94
|
+
h.invalidated.length = 0;
|
|
95
|
+
h.tick();
|
|
96
|
+
assert.equal(h.invalidated.length, 0, 'old card animation stops at the pending boundary');
|
|
97
|
+
h.persist(user('steering request'));
|
|
98
|
+
h.emit('message_start', assistant([]));
|
|
99
|
+
h.emit('message_update', assistant([call('new')]));
|
|
100
|
+
assert.match(h.render('new'), /Ran 1 command/);
|
|
101
|
+
assert.equal(h.render('old'), before);
|
|
102
|
+
h.invalidated.length = 0;
|
|
103
|
+
h.tick();
|
|
104
|
+
assert.deepEqual(h.invalidated, ['new'], 'animation now belongs to the new card');
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
test('assistant text ends the active card while thinking alone preserves it', t => {
|
|
108
|
+
const h = harness(t);
|
|
109
|
+
h.persist(user('request'));
|
|
110
|
+
h.persist(assistant([call('first')]));
|
|
111
|
+
const before = h.render('first');
|
|
112
|
+
h.emit('agent_start');
|
|
113
|
+
h.emit('message_start', assistant([]));
|
|
114
|
+
h.emit('message_update', assistant([{ type: 'thinking', thinking: 'SAME REQUEST' }]));
|
|
115
|
+
assert.match(h.render('first'), /SAME REQUEST/);
|
|
116
|
+
h.emit('message_update', assistant([
|
|
117
|
+
{ type: 'thinking', thinking: 'SAME REQUEST' },
|
|
118
|
+
{ type: 'text', text: 'Visible response' },
|
|
119
|
+
]));
|
|
120
|
+
assert.equal(h.render('first'), before);
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
test('consecutive tool-only assistant messages still share one card', t => {
|
|
124
|
+
const h = harness(t);
|
|
125
|
+
h.persist(user('request'));
|
|
126
|
+
h.persist(assistant([call('first')]));
|
|
127
|
+
h.emit('message_start', assistant([]));
|
|
128
|
+
h.emit('message_update', assistant([call('second')]));
|
|
129
|
+
assert.match(h.render('first'), /Ran 2 commands/);
|
|
130
|
+
assert.equal(h.render('second'), '');
|
|
131
|
+
});
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
Release notes are recorded from 0.1.3 onward.
|
|
4
|
+
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [0.1.4]
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- Include package release notes in Pi 1.5.0's Extension Updates.
|
|
12
|
+
|
|
13
|
+
## [0.1.3]
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
|
|
17
|
+
- Classify the package as an extension in the Pi package gallery.
|
|
18
|
+
- Show the package screenshot as its gallery preview.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@saifymatteo/pi-decisions",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"license": "AGPL-3.0-only",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"src",
|
|
12
12
|
"examples",
|
|
13
13
|
"README.md",
|
|
14
|
+
"CHANGELOG.md",
|
|
14
15
|
"NOTICE.md",
|
|
15
16
|
"LICENSE"
|
|
16
17
|
],
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
Release notes are recorded from 0.1.3 onward.
|
|
4
|
+
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [0.1.4]
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- Include package release notes in Pi 1.5.0's Extension Updates.
|
|
12
|
+
|
|
13
|
+
## [0.1.3]
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
|
|
17
|
+
- Classify the package as an extension in the Pi package gallery.
|
|
18
|
+
- Show the package screenshot as its gallery preview.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@saifymatteo/pi-load-pi-dotenv",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "Loads environment variables from the Pi agent directory without replacing existing environment values.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "AGPL-3.0-only",
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"files": [
|
|
12
12
|
"src",
|
|
13
13
|
"README.md",
|
|
14
|
+
"CHANGELOG.md",
|
|
14
15
|
"NOTICE.md",
|
|
15
16
|
"LICENSE"
|
|
16
17
|
],
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
Release notes are recorded from 0.1.3 onward.
|
|
4
|
+
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [0.1.4]
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- Include package release notes in Pi 1.5.0's Extension Updates.
|
|
12
|
+
|
|
13
|
+
## [0.1.3]
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
|
|
17
|
+
- Classify the package as an extension in the Pi package gallery.
|
|
18
|
+
- Show the package screenshot as its gallery preview.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@saifymatteo/pi-model-go",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"license": "AGPL-3.0-only",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"files": [
|
|
11
11
|
"src",
|
|
12
12
|
"README.md",
|
|
13
|
+
"CHANGELOG.md",
|
|
13
14
|
"NOTICE.md",
|
|
14
15
|
"LICENSE"
|
|
15
16
|
],
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
Release notes are recorded from 0.1.3 onward.
|
|
4
|
+
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [0.1.4]
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- Include package release notes in Pi 1.5.0's Extension Updates.
|
|
12
|
+
|
|
13
|
+
## [0.1.3]
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
|
|
17
|
+
- Classify the package as an extension in the Pi package gallery.
|
|
18
|
+
- Show the package screenshot as its gallery preview.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@saifymatteo/pi-prestart-working",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "Show a labelled Working spinner while before_agent_start hooks run.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "AGPL-3.0-only",
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"files": [
|
|
12
12
|
"src",
|
|
13
13
|
"README.md",
|
|
14
|
+
"CHANGELOG.md",
|
|
14
15
|
"NOTICE.md",
|
|
15
16
|
"LICENSE"
|
|
16
17
|
],
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
Release notes are recorded from 0.1.3 onward.
|
|
4
|
+
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [0.1.4]
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- Include package release notes in Pi 1.5.0's Extension Updates.
|
|
12
|
+
|
|
13
|
+
## [0.1.3]
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
|
|
17
|
+
- Classify the package as an extension in the Pi package gallery.
|
|
18
|
+
- Show the package screenshot as its gallery preview.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@saifymatteo/pi-root-guard",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "Blocks selected write/edit and simple bash writes into Pi and Claude configuration roots.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "AGPL-3.0-only",
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"files": [
|
|
12
12
|
"src",
|
|
13
13
|
"README.md",
|
|
14
|
+
"CHANGELOG.md",
|
|
14
15
|
"NOTICE.md",
|
|
15
16
|
"LICENSE"
|
|
16
17
|
],
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
Release notes are recorded from 0.1.3 onward.
|
|
4
|
+
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [0.1.4]
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- Include package release notes in Pi 1.5.0's Extension Updates.
|
|
12
|
+
|
|
13
|
+
## [0.1.3]
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
|
|
17
|
+
- Classify the package as an extension in the Pi package gallery.
|
|
18
|
+
- Show the package screenshot as its gallery preview.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@saifymatteo/pi-session-finder",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"license": "AGPL-3.0-only",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"files": [
|
|
11
11
|
"src",
|
|
12
12
|
"README.md",
|
|
13
|
+
"CHANGELOG.md",
|
|
13
14
|
"NOTICE.md",
|
|
14
15
|
"LICENSE"
|
|
15
16
|
],
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
Release notes are recorded from 0.1.3 onward.
|
|
4
|
+
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [0.1.4]
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- Include package release notes in Pi 1.5.0's Extension Updates.
|
|
12
|
+
|
|
13
|
+
## [0.1.3]
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
|
|
17
|
+
- Classify the package as an extension in the Pi package gallery.
|
|
18
|
+
- Show the package screenshot as its gallery preview.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@saifymatteo/pi-session-id",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"license": "AGPL-3.0-only",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"files": [
|
|
11
11
|
"src",
|
|
12
12
|
"README.md",
|
|
13
|
+
"CHANGELOG.md",
|
|
13
14
|
"NOTICE.md",
|
|
14
15
|
"LICENSE"
|
|
15
16
|
],
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
Release notes are recorded from 0.1.3 onward.
|
|
4
|
+
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [0.1.4]
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- Include package release notes in Pi 1.5.0's Extension Updates.
|
|
12
|
+
|
|
13
|
+
## [0.1.3]
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
|
|
17
|
+
- Classify the package as an extension in the Pi package gallery.
|
|
18
|
+
- Show the package screenshot as its gallery preview.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@saifymatteo/pi-session-nav",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"license": "AGPL-3.0-only",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"files": [
|
|
11
11
|
"src",
|
|
12
12
|
"README.md",
|
|
13
|
+
"CHANGELOG.md",
|
|
13
14
|
"NOTICE.md",
|
|
14
15
|
"LICENSE"
|
|
15
16
|
],
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
Release notes are recorded from 0.1.3 onward.
|
|
4
|
+
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [0.1.4]
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- Include package release notes in Pi 1.5.0's Extension Updates.
|
|
12
|
+
|
|
13
|
+
## [0.1.3]
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
|
|
17
|
+
- Classify the package as an extension in the Pi package gallery.
|
|
18
|
+
- Show the package screenshot as its gallery preview.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@saifymatteo/pi-session-rename",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"license": "AGPL-3.0-only",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"files": [
|
|
11
11
|
"src",
|
|
12
12
|
"README.md",
|
|
13
|
+
"CHANGELOG.md",
|
|
13
14
|
"NOTICE.md",
|
|
14
15
|
"LICENSE"
|
|
15
16
|
],
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
Release notes are recorded from 0.1.3 onward.
|
|
4
|
+
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [0.1.5]
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- Include package release notes in Pi 1.5.0's Extension Updates.
|
|
12
|
+
|
|
13
|
+
## [0.1.4]
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
|
|
17
|
+
- Schedule automatic maintenance outside the awaited session-start handler; defer launch while the agent is busy.
|
|
18
|
+
- Offer `/session-cleanup` for first approval without interrupting startup, retaining store locking, protected sessions, and shutdown draining.
|
|
19
|
+
|
|
20
|
+
## [0.1.3]
|
|
21
|
+
|
|
22
|
+
### Fixed
|
|
23
|
+
|
|
24
|
+
- Classify the package as an extension in the Pi package gallery.
|
|
25
|
+
- Show the package screenshot as its gallery preview.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@saifymatteo/pi-session-retention",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"license": "AGPL-3.0-only",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"files": [
|
|
11
11
|
"src",
|
|
12
12
|
"README.md",
|
|
13
|
+
"CHANGELOG.md",
|
|
13
14
|
"NOTICE.md",
|
|
14
15
|
"LICENSE"
|
|
15
16
|
],
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
Release notes are recorded from 0.1.3 onward.
|
|
4
|
+
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [0.1.4]
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- Include package release notes in Pi 1.5.0's Extension Updates.
|
|
12
|
+
|
|
13
|
+
## [0.1.3]
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
|
|
17
|
+
- Classify the package as an extension in the Pi package gallery.
|
|
18
|
+
- Show the package screenshot as its gallery preview.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@saifymatteo/pi-skill-usage-log",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"license": "AGPL-3.0-only",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"files": [
|
|
11
11
|
"src",
|
|
12
12
|
"README.md",
|
|
13
|
+
"CHANGELOG.md",
|
|
13
14
|
"NOTICE.md",
|
|
14
15
|
"LICENSE"
|
|
15
16
|
],
|