@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.
Files changed (139) hide show
  1. package/README.md +183 -183
  2. package/context/codex-base-prompt.md +148 -148
  3. package/context/compute-worker.md +23 -23
  4. package/context/pibo-compaction-prompt.md +100 -100
  5. package/context/pibo-native-tooling.md +18 -18
  6. package/context/pibo-system-prompt.md +77 -77
  7. package/dist/apps/chat/agent-profiles.js +2 -2
  8. package/dist/apps/chat/agent-store.js +263 -250
  9. package/dist/apps/chat/chat-request-normalizers.js +10 -0
  10. package/dist/apps/chat/data/project-service.js +168 -168
  11. package/dist/apps/chat/data/read-state-service.js +18 -18
  12. package/dist/apps/chat/data/session-query-service.js +25 -25
  13. package/dist/apps/chat/data/timeline-query-service.js +19 -19
  14. package/dist/apps/chat/loop-api.js +176 -0
  15. package/dist/apps/chat/static-assets.js +854 -854
  16. package/dist/apps/chat/web-app.js +6 -6
  17. package/dist/apps/chat/workflow-manual-trigger-runtime.js +149 -46
  18. package/dist/apps/chat/workflow-persistence.js +255 -255
  19. package/dist/apps/chat-ui/assets/{dist-yCYNNb5d.js → dist-BwKObYnX.js} +1 -1
  20. package/dist/apps/chat-ui/assets/{dist-BCB6zezO.js → dist-CKtT8YGm.js} +1 -1
  21. package/dist/apps/chat-ui/assets/{dist-CnVsqwSG.js → dist-CS7wdk0Z.js} +1 -1
  22. package/dist/apps/chat-ui/assets/{dist-HqTN67dc.js → dist-D-cxLQO1.js} +1 -1
  23. package/dist/apps/chat-ui/assets/{dist-BNMu92bb.js → dist-DUlaXAk7.js} +1 -1
  24. package/dist/apps/chat-ui/assets/{dist-CzE6k3F3.js → dist-DlATLa-U.js} +1 -1
  25. package/dist/apps/chat-ui/assets/{dist-Dq4GxJi3.js → dist-GdEM8UW1.js} +1 -1
  26. package/dist/apps/chat-ui/assets/{dist-BZ2eTC4f.js → dist-LHRs1Nhr.js} +1 -1
  27. package/dist/apps/chat-ui/assets/{dist-D811wJeV.js → dist-Y-AA2omI.js} +1 -1
  28. package/dist/apps/chat-ui/assets/{dist-WyXdYl-w.js → dist-nOLTkZrJ.js} +1 -1
  29. package/dist/apps/chat-ui/assets/{dist-BHa-kcGl.js → dist-wE9nop9V.js} +1 -1
  30. package/dist/apps/chat-ui/assets/{index-DwHJfmiF.js → index-8W_yMHQI.js} +6 -6
  31. package/dist/apps/chat-ui/index.html +17 -17
  32. package/dist/apps/chat-ui/manifest.webmanifest +25 -25
  33. package/dist/apps/chat-ui/sw.js +47 -47
  34. package/dist/apps/chat-vscode-web/index.html +12 -12
  35. package/dist/apps/cli-ui/cliSessionsCommand.js +23 -23
  36. package/dist/apps/context-files-ui/index.html +11 -11
  37. package/dist/cli.js +61 -44
  38. package/dist/compute/cli.js +54 -54
  39. package/dist/core/routed-session.js +30 -1
  40. package/dist/core/runtime.js +6 -1
  41. package/dist/core/session-router.js +4 -2
  42. package/dist/cron/cli.js +15 -15
  43. package/dist/cron/store.js +49 -49
  44. package/dist/data/cli.js +23 -23
  45. package/dist/data/event-log.js +23 -23
  46. package/dist/data/message-store.js +27 -27
  47. package/dist/data/navigation-store.js +9 -9
  48. package/dist/data/observation-store.js +4 -4
  49. package/dist/data/payload-store.js +17 -17
  50. package/dist/data/schema.js +433 -433
  51. package/dist/data/session-store.js +4 -4
  52. package/dist/data/telemetry-queries.js +54 -54
  53. package/dist/data/telemetry.js +197 -197
  54. package/dist/debug/events.js +12 -12
  55. package/dist/debug/failures.js +6 -6
  56. package/dist/debug/index.js +227 -227
  57. package/dist/debug/messages.js +6 -6
  58. package/dist/debug/pty.js +124 -124
  59. package/dist/debug/session.js +29 -29
  60. package/dist/debug/tools.js +5 -5
  61. package/dist/debug/web-snapshot-browser-scripts.js +294 -294
  62. package/dist/debug/web-streaming-browser-library.js +925 -925
  63. package/dist/debug/web-streaming-browser-scripts.js +232 -232
  64. package/dist/debug/web-streaming-provider-telemetry.js +4 -4
  65. package/dist/debug/web.js +93 -93
  66. package/dist/gateway/cli.js +19 -19
  67. package/dist/gateway/server.js +4 -2
  68. package/dist/gateway/web.js +2 -2
  69. package/dist/loops/channel.js +8 -0
  70. package/dist/loops/cli.js +208 -0
  71. package/dist/loops/plugin.js +16 -0
  72. package/dist/loops/prompts.js +83 -0
  73. package/dist/loops/service.js +357 -0
  74. package/dist/loops/stopping.js +170 -0
  75. package/dist/loops/store.js +531 -0
  76. package/dist/loops/templates.js +232 -0
  77. package/dist/loops/tools.js +167 -0
  78. package/dist/loops/types.js +1 -0
  79. package/dist/mcp/config-command.js +53 -53
  80. package/dist/mcp/index.js +21 -21
  81. package/dist/mcp/registry.js +11 -11
  82. package/dist/pi-packages/cli.js +11 -11
  83. package/dist/plugins/builtin.js +8 -0
  84. package/dist/plugins/context-files-store.js +110 -110
  85. package/dist/plugins/context-files.js +4 -4
  86. package/dist/plugins/registry.js +23 -12
  87. package/dist/ralph/cli.js +18 -18
  88. package/dist/ralph/templates.js +140 -140
  89. package/dist/reliability/store.js +226 -226
  90. package/dist/sessions/pibo-data-store.js +16 -16
  91. package/dist/sessions/sqlite-store.js +53 -53
  92. package/dist/setup/cli.js +58 -58
  93. package/dist/tools/agent-browser-wrapper.js +80 -80
  94. package/dist/tools/browser-use-cdp.js +12 -12
  95. package/dist/tools/browser-use-wrapper.js +762 -762
  96. package/dist/tools/guides.js +589 -538
  97. package/dist/tools/index.js +122 -99
  98. package/dist/tools/registry.js +21 -3
  99. package/dist/tools/runtime/node-worker-source.js +205 -205
  100. package/dist/tools/runtime/python-worker-source.js +177 -177
  101. package/dist/vscode/cli.js +9 -9
  102. package/dist/web-annotations/cdp.js +900 -900
  103. package/dist/web-annotations/store.js +96 -96
  104. package/docs/README.md +23 -23
  105. package/docs/ops/install-developer-host.md +112 -112
  106. package/docs/ops/install-user-host.md +96 -96
  107. package/docs/ops/upgrade-user-to-developer-host.md +69 -69
  108. package/docs/ops/vscode-extension-release.md +160 -160
  109. package/package.json +98 -95
  110. package/skills/builtin/graphify/SKILL.md +52 -52
  111. package/skills/builtin/loop/SKILL.md +69 -0
  112. package/skills/builtin/pi-agent-harness/SKILL.md +319 -319
  113. package/skills/builtin/pi-agent-harness/agents/openai.yaml +4 -4
  114. package/skills/builtin/pibo-docker-system/SKILL.md +170 -170
  115. package/skills/builtin/pibo-spec-writing/SKILL.md +330 -330
  116. package/skills/builtin/prd/SKILL.md +143 -143
  117. package/skills/builtin/ralph-loop/SKILL.md +361 -359
  118. package/skills/builtin/ralph-prd-json/SKILL.md +123 -123
  119. package/skills/builtin/skill-creator/LICENSE.txt +201 -201
  120. package/skills/builtin/skill-creator/SKILL.md +513 -513
  121. package/skills/builtin/skill-creator/agents/analyzer.md +274 -274
  122. package/skills/builtin/skill-creator/agents/comparator.md +202 -202
  123. package/skills/builtin/skill-creator/agents/grader.md +223 -223
  124. package/skills/builtin/skill-creator/assets/eval_review.html +146 -146
  125. package/skills/builtin/skill-creator/eval-viewer/generate_review.py +471 -471
  126. package/skills/builtin/skill-creator/eval-viewer/viewer.html +1325 -1325
  127. package/skills/builtin/skill-creator/references/schemas.md +430 -430
  128. package/skills/builtin/skill-creator/scripts/aggregate_benchmark.py +401 -401
  129. package/skills/builtin/skill-creator/scripts/generate_report.py +326 -326
  130. package/skills/builtin/skill-creator/scripts/improve_description.py +247 -247
  131. package/skills/builtin/skill-creator/scripts/package_skill.py +136 -136
  132. package/skills/builtin/skill-creator/scripts/quick_validate.py +102 -102
  133. package/skills/builtin/skill-creator/scripts/run_eval.py +310 -310
  134. package/skills/builtin/skill-creator/scripts/run_loop.py +328 -328
  135. package/skills/builtin/skill-creator/scripts/utils.py +47 -47
  136. package/skills/builtin/web-annotations/SKILL.md +93 -93
  137. package/src/mcp/LICENSE.mcp-cli +21 -21
  138. package/dist/apps/vscode-artifacts/latest.vsix +0 -0
  139. 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
  }