@pasko70/pibo 1.9.13 → 1.10.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.
- package/README.md +183 -183
- package/context/codex-base-prompt.md +148 -148
- package/context/compute-worker.md +23 -23
- package/context/pibo-compaction-prompt.md +100 -100
- package/context/pibo-native-tooling.md +18 -18
- package/context/pibo-system-prompt.md +77 -77
- package/dist/apps/chat/agent-profiles.js +2 -2
- package/dist/apps/chat/agent-store.js +263 -250
- package/dist/apps/chat/chat-request-normalizers.js +10 -0
- package/dist/apps/chat/data/project-service.js +168 -168
- package/dist/apps/chat/data/read-state-service.js +18 -18
- package/dist/apps/chat/data/session-query-service.js +25 -25
- package/dist/apps/chat/data/timeline-query-service.js +19 -19
- package/dist/apps/chat/loop-api.js +176 -0
- package/dist/apps/chat/static-assets.js +854 -854
- package/dist/apps/chat/web-app.js +6 -6
- package/dist/apps/chat/workflow-manual-trigger-runtime.js +149 -46
- package/dist/apps/chat/workflow-persistence.js +255 -255
- package/dist/apps/chat-ui/assets/{dist-yCYNNb5d.js → dist-BwKObYnX.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-BCB6zezO.js → dist-CKtT8YGm.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-CnVsqwSG.js → dist-CS7wdk0Z.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-HqTN67dc.js → dist-D-cxLQO1.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-BNMu92bb.js → dist-DUlaXAk7.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-CzE6k3F3.js → dist-DlATLa-U.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-Dq4GxJi3.js → dist-GdEM8UW1.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-BZ2eTC4f.js → dist-LHRs1Nhr.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-D811wJeV.js → dist-Y-AA2omI.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-WyXdYl-w.js → dist-nOLTkZrJ.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-BHa-kcGl.js → dist-wE9nop9V.js} +1 -1
- package/dist/apps/chat-ui/assets/{index-DwHJfmiF.js → index-8W_yMHQI.js} +6 -6
- package/dist/apps/chat-ui/index.html +17 -17
- package/dist/apps/chat-ui/manifest.webmanifest +25 -25
- package/dist/apps/chat-ui/sw.js +47 -47
- package/dist/apps/chat-vscode-web/index.html +12 -12
- package/dist/apps/cli-ui/cliSessionsCommand.js +23 -23
- package/dist/apps/context-files-ui/index.html +11 -11
- package/dist/cli.js +61 -44
- package/dist/compute/cli.js +54 -54
- package/dist/core/routed-session.js +30 -1
- package/dist/core/runtime.js +6 -1
- package/dist/core/session-router.js +4 -2
- package/dist/cron/cli.js +15 -15
- package/dist/cron/store.js +49 -49
- package/dist/data/cli.js +23 -23
- package/dist/data/event-log.js +23 -23
- package/dist/data/message-store.js +27 -27
- package/dist/data/navigation-store.js +9 -9
- package/dist/data/observation-store.js +4 -4
- package/dist/data/payload-store.js +17 -17
- package/dist/data/schema.js +433 -433
- package/dist/data/session-store.js +4 -4
- package/dist/data/telemetry-queries.js +54 -54
- package/dist/data/telemetry.js +197 -197
- package/dist/debug/events.js +12 -12
- package/dist/debug/failures.js +6 -6
- package/dist/debug/index.js +227 -227
- package/dist/debug/messages.js +6 -6
- package/dist/debug/pty.js +124 -124
- package/dist/debug/session.js +29 -29
- package/dist/debug/tools.js +5 -5
- package/dist/debug/web-snapshot-browser-scripts.js +294 -294
- package/dist/debug/web-streaming-browser-library.js +925 -925
- package/dist/debug/web-streaming-browser-scripts.js +232 -232
- package/dist/debug/web-streaming-provider-telemetry.js +4 -4
- package/dist/debug/web.js +93 -93
- package/dist/gateway/cli.js +19 -19
- package/dist/gateway/server.js +4 -2
- package/dist/gateway/web.js +2 -2
- package/dist/loops/channel.js +8 -0
- package/dist/loops/cli.js +208 -0
- package/dist/loops/plugin.js +16 -0
- package/dist/loops/prompts.js +83 -0
- package/dist/loops/service.js +357 -0
- package/dist/loops/stopping.js +170 -0
- package/dist/loops/store.js +531 -0
- package/dist/loops/templates.js +232 -0
- package/dist/loops/tools.js +167 -0
- package/dist/loops/types.js +1 -0
- package/dist/mcp/config-command.js +53 -53
- package/dist/mcp/index.js +21 -21
- package/dist/mcp/registry.js +11 -11
- package/dist/pi-packages/cli.js +11 -11
- package/dist/plugins/builtin.js +8 -0
- package/dist/plugins/context-files-store.js +110 -110
- package/dist/plugins/context-files.js +4 -4
- package/dist/plugins/registry.js +23 -12
- package/dist/ralph/cli.js +18 -18
- package/dist/ralph/templates.js +140 -140
- package/dist/reliability/store.js +226 -226
- package/dist/sessions/pibo-data-store.js +16 -16
- package/dist/sessions/sqlite-store.js +53 -53
- package/dist/setup/cli.js +58 -58
- package/dist/tools/agent-browser-wrapper.js +80 -80
- package/dist/tools/browser-use-cdp.js +12 -12
- package/dist/tools/browser-use-wrapper.js +762 -762
- package/dist/tools/guides.js +589 -538
- package/dist/tools/index.js +122 -99
- package/dist/tools/registry.js +21 -3
- package/dist/tools/runtime/node-worker-source.js +205 -205
- package/dist/tools/runtime/python-worker-source.js +177 -177
- package/dist/vscode/cli.js +9 -9
- package/dist/web-annotations/cdp.js +900 -900
- package/dist/web-annotations/store.js +96 -96
- package/docs/README.md +23 -23
- package/docs/ops/install-developer-host.md +112 -112
- package/docs/ops/install-user-host.md +96 -96
- package/docs/ops/upgrade-user-to-developer-host.md +69 -69
- package/docs/ops/vscode-extension-release.md +160 -160
- package/package.json +98 -95
- package/skills/builtin/graphify/SKILL.md +52 -52
- package/skills/builtin/loop/SKILL.md +69 -0
- package/skills/builtin/pi-agent-harness/SKILL.md +319 -319
- package/skills/builtin/pi-agent-harness/agents/openai.yaml +4 -4
- package/skills/builtin/pibo-docker-system/SKILL.md +170 -170
- package/skills/builtin/pibo-spec-writing/SKILL.md +330 -330
- package/skills/builtin/prd/SKILL.md +143 -143
- package/skills/builtin/ralph-loop/SKILL.md +361 -359
- package/skills/builtin/ralph-prd-json/SKILL.md +123 -123
- package/skills/builtin/skill-creator/LICENSE.txt +201 -201
- package/skills/builtin/skill-creator/SKILL.md +513 -513
- package/skills/builtin/skill-creator/agents/analyzer.md +274 -274
- package/skills/builtin/skill-creator/agents/comparator.md +202 -202
- package/skills/builtin/skill-creator/agents/grader.md +223 -223
- package/skills/builtin/skill-creator/assets/eval_review.html +146 -146
- package/skills/builtin/skill-creator/eval-viewer/generate_review.py +471 -471
- package/skills/builtin/skill-creator/eval-viewer/viewer.html +1325 -1325
- package/skills/builtin/skill-creator/references/schemas.md +430 -430
- package/skills/builtin/skill-creator/scripts/aggregate_benchmark.py +401 -401
- package/skills/builtin/skill-creator/scripts/generate_report.py +326 -326
- package/skills/builtin/skill-creator/scripts/improve_description.py +247 -247
- package/skills/builtin/skill-creator/scripts/package_skill.py +136 -136
- package/skills/builtin/skill-creator/scripts/quick_validate.py +102 -102
- package/skills/builtin/skill-creator/scripts/run_eval.py +310 -310
- package/skills/builtin/skill-creator/scripts/run_loop.py +328 -328
- package/skills/builtin/skill-creator/scripts/utils.py +47 -47
- package/skills/builtin/web-annotations/SKILL.md +93 -93
- package/src/mcp/LICENSE.mcp-cli +21 -21
- package/dist/apps/vscode-artifacts/latest.vsix +0 -0
- package/dist/apps/vscode-artifacts/pibo-vscode-ext-1.9.13.vsix +0 -0
|
@@ -47,10 +47,10 @@ export class SessionStore {
|
|
|
47
47
|
"updated_at = excluded.updated_at",
|
|
48
48
|
"last_activity_at = excluded.last_activity_at",
|
|
49
49
|
];
|
|
50
|
-
this.db.prepare(`
|
|
51
|
-
INSERT INTO sessions (${baseColumns.join(", ")})
|
|
52
|
-
VALUES (${baseColumns.map(() => "?").join(", ")})
|
|
53
|
-
ON CONFLICT(id) DO UPDATE SET ${assignments.join(", ")}
|
|
50
|
+
this.db.prepare(`
|
|
51
|
+
INSERT INTO sessions (${baseColumns.join(", ")})
|
|
52
|
+
VALUES (${baseColumns.map(() => "?").join(", ")})
|
|
53
|
+
ON CONFLICT(id) DO UPDATE SET ${assignments.join(", ")}
|
|
54
54
|
`).run(...values);
|
|
55
55
|
}
|
|
56
56
|
}
|
|
@@ -6,15 +6,15 @@ export function listTelemetrySessions(db, input = {}) {
|
|
|
6
6
|
const limit = normalizeTelemetryListLimit(input.limit);
|
|
7
7
|
const nowMs = Date.parse(input.now ?? new Date().toISOString());
|
|
8
8
|
const thresholdMs = input.thresholdMs ?? DEFAULT_STALE_THRESHOLD_MS;
|
|
9
|
-
const rows = db.prepare(`
|
|
10
|
-
SELECT t.*, counts.turn_count AS turn_count FROM telemetry_turns t
|
|
11
|
-
JOIN (
|
|
12
|
-
SELECT pibo_session_id, MAX(updated_at) AS max_updated, COUNT(*) AS turn_count
|
|
13
|
-
FROM telemetry_turns
|
|
14
|
-
GROUP BY pibo_session_id
|
|
15
|
-
) counts ON counts.pibo_session_id = t.pibo_session_id AND counts.max_updated = t.updated_at
|
|
16
|
-
ORDER BY t.updated_at DESC
|
|
17
|
-
LIMIT ?
|
|
9
|
+
const rows = db.prepare(`
|
|
10
|
+
SELECT t.*, counts.turn_count AS turn_count FROM telemetry_turns t
|
|
11
|
+
JOIN (
|
|
12
|
+
SELECT pibo_session_id, MAX(updated_at) AS max_updated, COUNT(*) AS turn_count
|
|
13
|
+
FROM telemetry_turns
|
|
14
|
+
GROUP BY pibo_session_id
|
|
15
|
+
) counts ON counts.pibo_session_id = t.pibo_session_id AND counts.max_updated = t.updated_at
|
|
16
|
+
ORDER BY t.updated_at DESC
|
|
17
|
+
LIMIT ?
|
|
18
18
|
`).all(limit);
|
|
19
19
|
return rows.map((row) => telemetrySessionSummaryFromTurnRow(db, row, Number(row.turn_count), nowMs, thresholdMs));
|
|
20
20
|
}
|
|
@@ -41,11 +41,11 @@ export function getTelemetryTurnTimeline(db, turnIdOrEventId, input = {}) {
|
|
|
41
41
|
if (!turn)
|
|
42
42
|
return undefined;
|
|
43
43
|
const limit = normalizeTelemetryListLimit(input.limit);
|
|
44
|
-
const phaseRows = db.prepare(`
|
|
45
|
-
SELECT * FROM telemetry_phases
|
|
46
|
-
WHERE turn_id = ?
|
|
47
|
-
ORDER BY started_at ASC, created_at ASC
|
|
48
|
-
LIMIT ?
|
|
44
|
+
const phaseRows = db.prepare(`
|
|
45
|
+
SELECT * FROM telemetry_phases
|
|
46
|
+
WHERE turn_id = ?
|
|
47
|
+
ORDER BY started_at ASC, created_at ASC
|
|
48
|
+
LIMIT ?
|
|
49
49
|
`).all(turn.turnId, limit);
|
|
50
50
|
const phases = phaseRows.map(phaseFromRow);
|
|
51
51
|
const providerRequests = listTelemetryProviderRequestsForTurn(db, turn.turnId, input);
|
|
@@ -61,11 +61,11 @@ export function getTelemetryTurnTimeline(db, turnIdOrEventId, input = {}) {
|
|
|
61
61
|
export function listTelemetryProviderEventsPage(db, providerRequestId, input = {}) {
|
|
62
62
|
const limit = normalizeTelemetryListLimit(input.limit);
|
|
63
63
|
const afterSequence = input.afterSequence ?? -1;
|
|
64
|
-
const rows = db.prepare(`
|
|
65
|
-
SELECT * FROM telemetry_provider_events
|
|
66
|
-
WHERE provider_request_id = ? AND sequence > ?
|
|
67
|
-
ORDER BY sequence ASC
|
|
68
|
-
LIMIT ?
|
|
64
|
+
const rows = db.prepare(`
|
|
65
|
+
SELECT * FROM telemetry_provider_events
|
|
66
|
+
WHERE provider_request_id = ? AND sequence > ?
|
|
67
|
+
ORDER BY sequence ASC
|
|
68
|
+
LIMIT ?
|
|
69
69
|
`).all(providerRequestId, afterSequence, limit + 1);
|
|
70
70
|
const hasMore = rows.length > limit;
|
|
71
71
|
const pageRows = rows.slice(0, limit).map(providerEventFromRow);
|
|
@@ -84,11 +84,11 @@ export function listTelemetryStaleWork(db, input = {}) {
|
|
|
84
84
|
const limit = normalizeTelemetryListLimit(input.limit);
|
|
85
85
|
const thresholdMs = input.thresholdMs ?? DEFAULT_STALE_THRESHOLD_MS;
|
|
86
86
|
const nowMs = Date.parse(input.now ?? new Date().toISOString());
|
|
87
|
-
const rows = db.prepare(`
|
|
88
|
-
SELECT * FROM telemetry_phases
|
|
89
|
-
WHERE status = 'open'
|
|
90
|
-
ORDER BY COALESCE(last_progress_at, started_at) ASC
|
|
91
|
-
LIMIT ?
|
|
87
|
+
const rows = db.prepare(`
|
|
88
|
+
SELECT * FROM telemetry_phases
|
|
89
|
+
WHERE status = 'open'
|
|
90
|
+
ORDER BY COALESCE(last_progress_at, started_at) ASC
|
|
91
|
+
LIMIT ?
|
|
92
92
|
`).all(MAX_TELEMETRY_LIST_LIMIT);
|
|
93
93
|
return rows.map(phaseFromRow)
|
|
94
94
|
.map((phase) => {
|
|
@@ -117,56 +117,56 @@ function getTelemetryTurn(db, turnId) {
|
|
|
117
117
|
}
|
|
118
118
|
function listTelemetryTurnsForSession(db, piboSessionId, input = {}) {
|
|
119
119
|
const limit = normalizeTelemetryListLimit(input.limit);
|
|
120
|
-
const rows = db.prepare(`
|
|
121
|
-
SELECT * FROM telemetry_turns
|
|
122
|
-
WHERE pibo_session_id = ?
|
|
123
|
-
ORDER BY updated_at DESC
|
|
124
|
-
LIMIT ?
|
|
120
|
+
const rows = db.prepare(`
|
|
121
|
+
SELECT * FROM telemetry_turns
|
|
122
|
+
WHERE pibo_session_id = ?
|
|
123
|
+
ORDER BY updated_at DESC
|
|
124
|
+
LIMIT ?
|
|
125
125
|
`).all(piboSessionId, limit);
|
|
126
126
|
return rows.map(turnFromRow);
|
|
127
127
|
}
|
|
128
128
|
function getTelemetryTurnByEventId(db, eventId) {
|
|
129
|
-
const row = db.prepare(`
|
|
130
|
-
SELECT * FROM telemetry_turns
|
|
131
|
-
WHERE event_id = ? OR input_event_id = ?
|
|
132
|
-
ORDER BY updated_at DESC
|
|
133
|
-
LIMIT 1
|
|
129
|
+
const row = db.prepare(`
|
|
130
|
+
SELECT * FROM telemetry_turns
|
|
131
|
+
WHERE event_id = ? OR input_event_id = ?
|
|
132
|
+
ORDER BY updated_at DESC
|
|
133
|
+
LIMIT 1
|
|
134
134
|
`).get(eventId, eventId);
|
|
135
135
|
return row ? turnFromRow(row) : undefined;
|
|
136
136
|
}
|
|
137
137
|
function getTelemetryActivePhaseForSession(db, piboSessionId, turnId) {
|
|
138
138
|
const row = turnId
|
|
139
|
-
? db.prepare(`
|
|
140
|
-
SELECT * FROM telemetry_phases
|
|
141
|
-
WHERE pibo_session_id = ? AND turn_id = ? AND status = 'open'
|
|
142
|
-
ORDER BY COALESCE(last_progress_at, started_at) DESC
|
|
143
|
-
LIMIT 1
|
|
139
|
+
? db.prepare(`
|
|
140
|
+
SELECT * FROM telemetry_phases
|
|
141
|
+
WHERE pibo_session_id = ? AND turn_id = ? AND status = 'open'
|
|
142
|
+
ORDER BY COALESCE(last_progress_at, started_at) DESC
|
|
143
|
+
LIMIT 1
|
|
144
144
|
`).get(piboSessionId, turnId)
|
|
145
|
-
: db.prepare(`
|
|
146
|
-
SELECT * FROM telemetry_phases
|
|
147
|
-
WHERE pibo_session_id = ? AND status = 'open'
|
|
148
|
-
ORDER BY COALESCE(last_progress_at, started_at) DESC
|
|
149
|
-
LIMIT 1
|
|
145
|
+
: db.prepare(`
|
|
146
|
+
SELECT * FROM telemetry_phases
|
|
147
|
+
WHERE pibo_session_id = ? AND status = 'open'
|
|
148
|
+
ORDER BY COALESCE(last_progress_at, started_at) DESC
|
|
149
|
+
LIMIT 1
|
|
150
150
|
`).get(piboSessionId);
|
|
151
151
|
return row ? phaseFromRow(row) : undefined;
|
|
152
152
|
}
|
|
153
153
|
function listTelemetryProviderRequestsForTurn(db, turnId, input = {}) {
|
|
154
154
|
const limit = normalizeTelemetryListLimit(input.limit);
|
|
155
|
-
const rows = db.prepare(`
|
|
156
|
-
SELECT * FROM telemetry_provider_requests
|
|
157
|
-
WHERE turn_id = ?
|
|
158
|
-
ORDER BY started_at ASC
|
|
159
|
-
LIMIT ?
|
|
155
|
+
const rows = db.prepare(`
|
|
156
|
+
SELECT * FROM telemetry_provider_requests
|
|
157
|
+
WHERE turn_id = ?
|
|
158
|
+
ORDER BY started_at ASC
|
|
159
|
+
LIMIT ?
|
|
160
160
|
`).all(turnId, limit);
|
|
161
161
|
return rows.map(providerRequestFromRow);
|
|
162
162
|
}
|
|
163
163
|
function listTelemetryToolCallsForTurn(db, turnId, input = {}) {
|
|
164
164
|
const limit = normalizeTelemetryListLimit(input.limit);
|
|
165
|
-
const rows = db.prepare(`
|
|
166
|
-
SELECT * FROM telemetry_tool_calls
|
|
167
|
-
WHERE turn_id = ?
|
|
168
|
-
ORDER BY COALESCE(args_started_at, created_at) ASC
|
|
169
|
-
LIMIT ?
|
|
165
|
+
const rows = db.prepare(`
|
|
166
|
+
SELECT * FROM telemetry_tool_calls
|
|
167
|
+
WHERE turn_id = ?
|
|
168
|
+
ORDER BY COALESCE(args_started_at, created_at) ASC
|
|
169
|
+
LIMIT ?
|
|
170
170
|
`).all(turnId, limit);
|
|
171
171
|
return rows.map(toolCallFromRow);
|
|
172
172
|
}
|