@probelabs/visor 0.1.181-ee → 0.1.182-ee
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/defaults/code-talk.yaml +80 -14
- package/defaults/engineer.yaml +33 -15
- package/defaults/skills/code-explorer.yaml +5 -0
- package/dist/agent-protocol/a2a-frontend.d.ts +10 -0
- package/dist/agent-protocol/a2a-frontend.d.ts.map +1 -1
- package/dist/agent-protocol/task-evaluator.d.ts +52 -0
- package/dist/agent-protocol/task-evaluator.d.ts.map +1 -0
- package/dist/agent-protocol/task-store.d.ts +5 -3
- package/dist/agent-protocol/task-store.d.ts.map +1 -1
- package/dist/agent-protocol/tasks-cli-handler.d.ts.map +1 -1
- package/dist/agent-protocol/tasks-tui.d.ts +34 -0
- package/dist/agent-protocol/tasks-tui.d.ts.map +1 -0
- package/dist/agent-protocol/trace-serializer.d.ts +90 -0
- package/dist/agent-protocol/trace-serializer.d.ts.map +1 -0
- package/dist/agent-protocol/track-execution.d.ts +2 -0
- package/dist/agent-protocol/track-execution.d.ts.map +1 -1
- package/dist/cli-main.d.ts.map +1 -1
- package/dist/defaults/code-talk.yaml +80 -14
- package/dist/defaults/engineer.yaml +33 -15
- package/dist/defaults/skills/code-explorer.yaml +5 -0
- package/dist/docs/commands.md +57 -14
- package/dist/docs/configuration.md +2 -0
- package/dist/docs/guides/graceful-restart.md +178 -0
- package/dist/docs/observability.md +69 -0
- package/dist/docs/production-deployment.md +17 -0
- package/dist/email/polling-runner.d.ts +4 -0
- package/dist/email/polling-runner.d.ts.map +1 -1
- package/dist/generated/config-schema.d.ts +70 -6
- package/dist/generated/config-schema.d.ts.map +1 -1
- package/dist/generated/config-schema.json +36 -6
- package/dist/index.js +5006 -886
- package/dist/providers/mcp-custom-sse-server.d.ts +4 -0
- package/dist/providers/mcp-custom-sse-server.d.ts.map +1 -1
- package/dist/runners/graceful-restart.d.ts +46 -0
- package/dist/runners/graceful-restart.d.ts.map +1 -0
- package/dist/runners/mcp-server-runner.d.ts +12 -0
- package/dist/runners/mcp-server-runner.d.ts.map +1 -1
- package/dist/runners/runner-factory.d.ts.map +1 -1
- package/dist/runners/runner-host.d.ts +12 -0
- package/dist/runners/runner-host.d.ts.map +1 -1
- package/dist/runners/runner.d.ts +12 -0
- package/dist/runners/runner.d.ts.map +1 -1
- package/dist/sdk/a2a-frontend-4LP3MLTS.mjs +1718 -0
- package/dist/sdk/a2a-frontend-4LP3MLTS.mjs.map +1 -0
- package/dist/sdk/{a2a-frontend-BDACLGMA.mjs → a2a-frontend-MU5EO2HZ.mjs} +35 -1
- package/dist/sdk/a2a-frontend-MU5EO2HZ.mjs.map +1 -0
- package/dist/sdk/{check-provider-registry-4YKTEDKF.mjs → check-provider-registry-I4BCWKRU.mjs} +7 -7
- package/dist/sdk/{check-provider-registry-Z7EHECLC.mjs → check-provider-registry-RRWCXSTG.mjs} +3 -3
- package/dist/sdk/{chunk-VMVIM4JB.mjs → chunk-4I3TJ7UJ.mjs} +37 -7
- package/dist/sdk/chunk-4I3TJ7UJ.mjs.map +1 -0
- package/dist/sdk/{chunk-7YZSSO4X.mjs → chunk-6DPPP7LD.mjs} +10 -10
- package/dist/sdk/chunk-7ERVRLDV.mjs +296 -0
- package/dist/sdk/chunk-7ERVRLDV.mjs.map +1 -0
- package/dist/sdk/chunk-ANUT54HW.mjs +1502 -0
- package/dist/sdk/chunk-ANUT54HW.mjs.map +1 -0
- package/dist/sdk/chunk-DHETLQIX.mjs +739 -0
- package/dist/sdk/chunk-DHETLQIX.mjs.map +1 -0
- package/dist/sdk/chunk-QXT47ZHR.mjs +390 -0
- package/dist/sdk/chunk-QXT47ZHR.mjs.map +1 -0
- package/dist/sdk/{chunk-6HLDM4OB.mjs → chunk-TQQNSHQV.mjs} +71 -30
- package/dist/sdk/chunk-TQQNSHQV.mjs.map +1 -0
- package/dist/sdk/chunk-ZOF5QT6U.mjs +5943 -0
- package/dist/sdk/chunk-ZOF5QT6U.mjs.map +1 -0
- package/dist/sdk/{config-TSA5FUOM.mjs → config-2STD74CJ.mjs} +2 -2
- package/dist/sdk/config-JE4HKTWW.mjs +16 -0
- package/dist/sdk/failure-condition-evaluator-5DZYMCGW.mjs +18 -0
- package/dist/sdk/github-frontend-L3F5JXPJ.mjs +1394 -0
- package/dist/sdk/github-frontend-L3F5JXPJ.mjs.map +1 -0
- package/dist/sdk/{host-6QBBL3QW.mjs → host-QBJ7TOWG.mjs} +3 -3
- package/dist/sdk/{host-CVH2CSHM.mjs → host-X5ZZCEWN.mjs} +2 -2
- package/dist/sdk/routing-CVQT4KHX.mjs +26 -0
- package/dist/sdk/{schedule-tool-ADUXTCY7.mjs → schedule-tool-AECLFHSY.mjs} +7 -7
- package/dist/sdk/{schedule-tool-5XBASQVY.mjs → schedule-tool-Z6QYL2B3.mjs} +3 -3
- package/dist/sdk/{schedule-tool-handler-N7UNABOA.mjs → schedule-tool-handler-6QLZRTQA.mjs} +7 -7
- package/dist/sdk/{schedule-tool-handler-GBIJS376.mjs → schedule-tool-handler-J4NUETJ6.mjs} +3 -3
- package/dist/sdk/schedule-tool-handler-J4NUETJ6.mjs.map +1 -0
- package/dist/sdk/sdk.d.mts +33 -0
- package/dist/sdk/sdk.d.ts +33 -0
- package/dist/sdk/sdk.js +2120 -404
- package/dist/sdk/sdk.js.map +1 -1
- package/dist/sdk/sdk.mjs +6 -6
- package/dist/sdk/task-evaluator-HLNXKKVV.mjs +1278 -0
- package/dist/sdk/task-evaluator-HLNXKKVV.mjs.map +1 -0
- package/dist/sdk/trace-helpers-WJXYVV4S.mjs +29 -0
- package/dist/sdk/trace-helpers-WJXYVV4S.mjs.map +1 -0
- package/dist/sdk/trace-reader-ZY77OFNM.mjs +266 -0
- package/dist/sdk/trace-reader-ZY77OFNM.mjs.map +1 -0
- package/dist/sdk/track-execution-MKIQXP2C.mjs +136 -0
- package/dist/sdk/track-execution-MKIQXP2C.mjs.map +1 -0
- package/dist/sdk/{workflow-check-provider-SRIMWKLQ.mjs → workflow-check-provider-EXMC6JIS.mjs} +7 -7
- package/dist/sdk/workflow-check-provider-EXMC6JIS.mjs.map +1 -0
- package/dist/sdk/{workflow-check-provider-3IXIADSV.mjs → workflow-check-provider-VKYGI5GK.mjs} +3 -3
- package/dist/sdk/workflow-check-provider-VKYGI5GK.mjs.map +1 -0
- package/dist/slack/socket-runner.d.ts +12 -0
- package/dist/slack/socket-runner.d.ts.map +1 -1
- package/dist/teams/webhook-runner.d.ts +4 -0
- package/dist/teams/webhook-runner.d.ts.map +1 -1
- package/dist/telegram/polling-runner.d.ts +2 -0
- package/dist/telegram/polling-runner.d.ts.map +1 -1
- package/dist/types/config.d.ts +33 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/whatsapp/webhook-runner.d.ts +4 -0
- package/dist/whatsapp/webhook-runner.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/sdk/a2a-frontend-BDACLGMA.mjs.map +0 -1
- package/dist/sdk/chunk-6HLDM4OB.mjs.map +0 -1
- package/dist/sdk/chunk-VMVIM4JB.mjs.map +0 -1
- /package/dist/sdk/{check-provider-registry-4YKTEDKF.mjs.map → check-provider-registry-I4BCWKRU.mjs.map} +0 -0
- /package/dist/sdk/{check-provider-registry-Z7EHECLC.mjs.map → check-provider-registry-RRWCXSTG.mjs.map} +0 -0
- /package/dist/sdk/{chunk-7YZSSO4X.mjs.map → chunk-6DPPP7LD.mjs.map} +0 -0
- /package/dist/sdk/{config-TSA5FUOM.mjs.map → config-2STD74CJ.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-5XBASQVY.mjs.map → config-JE4HKTWW.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-ADUXTCY7.mjs.map → failure-condition-evaluator-5DZYMCGW.mjs.map} +0 -0
- /package/dist/sdk/{host-6QBBL3QW.mjs.map → host-QBJ7TOWG.mjs.map} +0 -0
- /package/dist/sdk/{host-CVH2CSHM.mjs.map → host-X5ZZCEWN.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-handler-GBIJS376.mjs.map → routing-CVQT4KHX.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-handler-N7UNABOA.mjs.map → schedule-tool-AECLFHSY.mjs.map} +0 -0
- /package/dist/sdk/{workflow-check-provider-3IXIADSV.mjs.map → schedule-tool-Z6QYL2B3.mjs.map} +0 -0
- /package/dist/sdk/{workflow-check-provider-SRIMWKLQ.mjs.map → schedule-tool-handler-6QLZRTQA.mjs.map} +0 -0
package/defaults/code-talk.yaml
CHANGED
|
@@ -136,18 +136,59 @@ outputs:
|
|
|
136
136
|
value_js: |
|
|
137
137
|
const result = outputs?.['explore-code'];
|
|
138
138
|
if (result?.answer) return result.answer;
|
|
139
|
-
const
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
if (typeof routeNotes === 'string' && routeNotes.trim().length > 0) {
|
|
143
|
-
return { text: routeNotes };
|
|
139
|
+
const resultText = typeof result?.text === 'string' ? result.text.trim() : '';
|
|
140
|
+
if (resultText.length > 0) {
|
|
141
|
+
return { text: resultText };
|
|
144
142
|
}
|
|
145
|
-
|
|
146
|
-
const
|
|
147
|
-
if (
|
|
148
|
-
|
|
143
|
+
const routeNotes = outputs?.['setup-projects']?.routing_decision?.notes;
|
|
144
|
+
const checkoutProjects = outputs?.['setup-projects']?.checkout_projects;
|
|
145
|
+
if (
|
|
146
|
+
(!Array.isArray(checkoutProjects) || checkoutProjects.length === 0) &&
|
|
147
|
+
typeof routeNotes === 'string' &&
|
|
148
|
+
routeNotes.trim().length > 0
|
|
149
|
+
) {
|
|
150
|
+
return { text: routeNotes.trim() };
|
|
151
|
+
}
|
|
152
|
+
return { text: 'Code exploration did not produce an answer.' };
|
|
153
|
+
|
|
154
|
+
- name: exploration_status
|
|
155
|
+
description: Outcome of the exploration step
|
|
156
|
+
value_js: |
|
|
157
|
+
const result = outputs?.['explore-code'];
|
|
158
|
+
if (result?.answer?.text) return 'success';
|
|
159
|
+
const resultText = typeof result?.text === 'string' ? result.text.trim() : '';
|
|
160
|
+
if (resultText.length > 0) {
|
|
161
|
+
if (/timed out/i.test(resultText)) return 'timeout';
|
|
162
|
+
return 'failed';
|
|
149
163
|
}
|
|
150
|
-
|
|
164
|
+
const routeNotes = outputs?.['setup-projects']?.routing_decision?.notes;
|
|
165
|
+
const checkoutProjects = outputs?.['setup-projects']?.checkout_projects;
|
|
166
|
+
if (
|
|
167
|
+
(!Array.isArray(checkoutProjects) || checkoutProjects.length === 0) &&
|
|
168
|
+
typeof routeNotes === 'string' &&
|
|
169
|
+
routeNotes.trim().length > 0
|
|
170
|
+
) {
|
|
171
|
+
return 'no_projects';
|
|
172
|
+
}
|
|
173
|
+
return 'failed';
|
|
174
|
+
|
|
175
|
+
- name: exploration_error
|
|
176
|
+
description: Timeout or failure detail when exploration did not return a real answer
|
|
177
|
+
value_js: |
|
|
178
|
+
const result = outputs?.['explore-code'];
|
|
179
|
+
if (result?.answer?.text) return '';
|
|
180
|
+
const resultText = typeof result?.text === 'string' ? result.text.trim() : '';
|
|
181
|
+
if (resultText.length > 0) return resultText;
|
|
182
|
+
const routeNotes = outputs?.['setup-projects']?.routing_decision?.notes;
|
|
183
|
+
const checkoutProjects = outputs?.['setup-projects']?.checkout_projects;
|
|
184
|
+
if (
|
|
185
|
+
(!Array.isArray(checkoutProjects) || checkoutProjects.length === 0) &&
|
|
186
|
+
typeof routeNotes === 'string' &&
|
|
187
|
+
routeNotes.trim().length > 0
|
|
188
|
+
) {
|
|
189
|
+
return routeNotes.trim();
|
|
190
|
+
}
|
|
191
|
+
return 'Code exploration did not produce an answer.';
|
|
151
192
|
|
|
152
193
|
- name: references
|
|
153
194
|
description: Code/doc references from exploration
|
|
@@ -174,11 +215,20 @@ outputs:
|
|
|
174
215
|
const result = outputs?.['explore-code'];
|
|
175
216
|
const confidence = result?.confidence;
|
|
176
217
|
const reason = result?.confidence_reason;
|
|
177
|
-
if (typeof reason === 'string') return reason;
|
|
218
|
+
if (typeof reason === 'string' && reason.trim().length > 0) return reason;
|
|
178
219
|
if (confidence === 'high') return '';
|
|
220
|
+
const resultText = typeof result?.text === 'string' ? result.text.trim() : '';
|
|
221
|
+
if (resultText.length > 0) return resultText;
|
|
179
222
|
const routeNotes = outputs?.['setup-projects']?.routing_decision?.notes;
|
|
180
|
-
|
|
181
|
-
|
|
223
|
+
const checkoutProjects = outputs?.['setup-projects']?.checkout_projects;
|
|
224
|
+
if (
|
|
225
|
+
(!Array.isArray(checkoutProjects) || checkoutProjects.length === 0) &&
|
|
226
|
+
typeof routeNotes === 'string' &&
|
|
227
|
+
routeNotes.trim().length > 0
|
|
228
|
+
) {
|
|
229
|
+
return routeNotes.trim();
|
|
230
|
+
}
|
|
231
|
+
return 'Code exploration did not produce an answer.';
|
|
182
232
|
|
|
183
233
|
- name: projects_explored
|
|
184
234
|
description: Which project IDs were checked out
|
|
@@ -261,7 +311,7 @@ steps:
|
|
|
261
311
|
skip_code_context: true
|
|
262
312
|
enableDelegate: true
|
|
263
313
|
enableExecutePlan: false
|
|
264
|
-
max_iterations:
|
|
314
|
+
max_iterations: 100
|
|
265
315
|
prompt_type: code-explorer
|
|
266
316
|
allowBash: true
|
|
267
317
|
bashConfig:
|
|
@@ -415,8 +465,17 @@ steps:
|
|
|
415
465
|
- Each delegate should answer ONE specific question (not "look at the code")
|
|
416
466
|
- Run multiple delegates in PARALLEL for different hypotheses or components
|
|
417
467
|
- Ask delegates to return specific file paths and line numbers
|
|
468
|
+
- Do NOT delegate or re-search the same question twice in one investigation
|
|
469
|
+
- If a delegate returns enough evidence for the current claim, stop and use it
|
|
418
470
|
|
|
419
471
|
Relay complete data from tools — do not summarize or compress tool output.
|
|
472
|
+
|
|
473
|
+
Investigation scope:
|
|
474
|
+
- Stop once you have enough evidence to answer the question accurately
|
|
475
|
+
- If this is an implementation handoff for engineer, optimize for the minimum
|
|
476
|
+
sufficient handoff: repo, branch/ref, target files, relevant tests, and the
|
|
477
|
+
key evidence explaining why those files matter
|
|
478
|
+
- Prefer one search followed by targeted extract over repeated broad searches
|
|
420
479
|
</instructions>
|
|
421
480
|
|
|
422
481
|
{% if inputs.exploration_prompt %}
|
|
@@ -468,6 +527,13 @@ steps:
|
|
|
468
527
|
implementation, then consult docs to confirm semantics. When multiple projects
|
|
469
528
|
are involved, trace data and config flow across them.
|
|
470
529
|
|
|
530
|
+
Efficiency rules for this investigation:
|
|
531
|
+
- Reuse evidence already found in earlier tool results
|
|
532
|
+
- If the question is narrow and the relevant files are already identified,
|
|
533
|
+
stop exploring and answer
|
|
534
|
+
- If the next consumer is engineer, avoid broad code archaeology once the
|
|
535
|
+
implementation target and validation path are clear
|
|
536
|
+
|
|
471
537
|
Synthesize a single answer:
|
|
472
538
|
- Ground everything in code/docs evidence
|
|
473
539
|
- End with a "## References" section with clickable GitHub links:
|
package/defaults/engineer.yaml
CHANGED
|
@@ -338,19 +338,25 @@ steps:
|
|
|
338
338
|
<delegation>
|
|
339
339
|
Use the delegate tool for parallel work, plan validation, and build discovery.
|
|
340
340
|
|
|
341
|
-
|
|
341
|
+
FIRST decide whether delegation is needed.
|
|
342
|
+
|
|
343
|
+
Delegate "Discover build system" ONLY when the exact commands are not already
|
|
344
|
+
available in the provided context, code-explorer output, project metadata, or
|
|
345
|
+
recent tool results.
|
|
342
346
|
- Check: Makefile, package.json (scripts), Cargo.toml, go.mod, pyproject.toml
|
|
343
347
|
- Check: CI config (.github/workflows/, .gitlab-ci.yml, Jenkinsfile)
|
|
344
348
|
- Check: README for build/test/lint instructions
|
|
345
349
|
- Return the EXACT commands for: build, test, lint/format, and any pre-commit hooks
|
|
346
350
|
- Example output: "build: make, test: make test, lint: gofmt -l . && golangci-lint run"
|
|
347
|
-
|
|
351
|
+
- Reuse these commands throughout the session. Do NOT rediscover them once known.
|
|
348
352
|
|
|
349
|
-
|
|
353
|
+
Delegate "Plan validation" ONLY when the task is broad, high-risk, multi-repo,
|
|
354
|
+
or the implementation path is still unclear after reviewing existing context.
|
|
350
355
|
- Describe: files to change, approach, patterns to follow
|
|
351
356
|
- Ask the delegate to verify: do these files exist? Are there existing tests?
|
|
352
357
|
Are there related utilities or patterns to reuse? Any API contracts to respect?
|
|
353
|
-
-
|
|
358
|
+
- Skip this delegate for narrow single-repo changes when code-explorer or direct
|
|
359
|
+
inspection already identified the target files, branch, and validation path.
|
|
354
360
|
|
|
355
361
|
Also delegate for:
|
|
356
362
|
- Multi-repo changes (one delegate per repo, in parallel)
|
|
@@ -361,9 +367,12 @@ steps:
|
|
|
361
367
|
- Sequential dependent work (step B needs step A's output)
|
|
362
368
|
- Simple single-file edits (fewer than 5 iterations)
|
|
363
369
|
- Git operations (commit, push, PR) — always do these yourself
|
|
370
|
+
- Questions you already delegated once in this session
|
|
364
371
|
|
|
365
372
|
Delegates have fewer iterations and no access to your conversation.
|
|
366
373
|
Provide all necessary context in the delegate prompt.
|
|
374
|
+
If a delegate returns empty output, times out, or repeats information already
|
|
375
|
+
known, do NOT call the same delegate again. Fall back to direct tools.
|
|
367
376
|
</delegation>
|
|
368
377
|
|
|
369
378
|
<git-workflow>
|
|
@@ -372,12 +381,17 @@ steps:
|
|
|
372
381
|
|
|
373
382
|
Before your final response, verify:
|
|
374
383
|
□ Build passes (using exact commands from "Discover build system" delegate)
|
|
375
|
-
□ Tests pass (
|
|
384
|
+
□ Tests pass (start with the narrowest relevant tests; run broader suites only
|
|
385
|
+
when required by repo policy, when the change is cross-cutting, or when focused
|
|
386
|
+
tests indicate wider impact)
|
|
376
387
|
□ Lint/format passes (if the project has a linter)
|
|
377
388
|
□ git add <files>
|
|
378
389
|
□ git commit -m "descriptive message"
|
|
379
390
|
□ git push -u origin <branch-name>
|
|
380
391
|
□ gh pr create (for new PRs) or update existing PR
|
|
392
|
+
- For a new branch: ALWAYS push first, then use `gh pr create --head <branch-name>`
|
|
393
|
+
- If PR creation fails, inspect stderr, fix the missing prerequisite, and retry once
|
|
394
|
+
- Do NOT repeat the same `gh pr create` command after the same error
|
|
381
395
|
No PR URL = failed task. Report errors honestly, never claim false success.
|
|
382
396
|
|
|
383
397
|
If build/test/lint fails, fix the issue before committing. If you cannot fix it,
|
|
@@ -397,19 +411,23 @@ steps:
|
|
|
397
411
|
<efficiency>
|
|
398
412
|
- Use context data directly — don't re-read files or re-run searches for
|
|
399
413
|
information already provided by code-explorer.
|
|
414
|
+
- If code-explorer already identified the repo, branch, files, tests, or exact
|
|
415
|
+
commands, treat that as the default source of truth unless a tool result proves
|
|
416
|
+
it wrong.
|
|
400
417
|
- If a project has <setup> commands listed, run them FIRST (in the project's
|
|
401
418
|
directory) before any other work. These are prerequisites (e.g., `npm install`,
|
|
402
419
|
`make deps`, database migrations).
|
|
403
|
-
- Use tasks to track
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
- If a bash command fails,
|
|
412
|
-
|
|
420
|
+
- Use tasks to track real phases of work, not every obvious micro-step.
|
|
421
|
+
- For narrow single-repo changes, keep the task list minimal:
|
|
422
|
+
1. "Implement changes"
|
|
423
|
+
2. "Verify build"
|
|
424
|
+
3. "Create pull request"
|
|
425
|
+
- Add "Run setup commands", "Discover build system", or "Plan validation"
|
|
426
|
+
ONLY when you actually need to perform those steps.
|
|
427
|
+
- Mark in_progress/completed as you go. Do NOT skip "Verify build".
|
|
428
|
+
- If a bash command fails, diagnose the cause before retrying.
|
|
429
|
+
- Do NOT repeat the same logical action after the same error unless you changed
|
|
430
|
+
a prerequisite (for example: push before re-running `gh pr create`).
|
|
413
431
|
</efficiency>
|
|
414
432
|
{% assign has_trace = inputs.trace_id | size %}
|
|
415
433
|
{% assign has_slack_user = inputs.slack_user_id | size %}
|
|
@@ -29,6 +29,11 @@ knowledge: |
|
|
|
29
29
|
- If confidence "high", trust the answer — do NOT re-call with rephrased question
|
|
30
30
|
- Only call again for a genuinely DIFFERENT aspect of the codebase
|
|
31
31
|
- If confidence "medium" or "low", check confidence_reason for what to refine
|
|
32
|
+
- If `exploration_status` is `timeout`, `failed`, or `no_projects`, do NOT re-call
|
|
33
|
+
with a paraphrase of the same question. Report the failure honestly and only retry
|
|
34
|
+
if you can narrow the question or change the scope.
|
|
35
|
+
- If `references` is empty and confidence is low, treat that as "not answered yet",
|
|
36
|
+
not as a usable code answer.
|
|
32
37
|
|
|
33
38
|
## Usage Instructions
|
|
34
39
|
1. Call the `code-explorer` tool with the user's question — do NOT try to answer code questions yourself
|
|
@@ -39,6 +39,16 @@ export declare class A2AFrontend implements ActiveFrontend {
|
|
|
39
39
|
/** Set the full Visor config (needed for check definitions). */
|
|
40
40
|
setVisorConfig(config: VisorConfig): void;
|
|
41
41
|
start(ctx: FrontendContext): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Stop listening for new connections and free the port.
|
|
44
|
+
* In-flight tasks continue processing.
|
|
45
|
+
*/
|
|
46
|
+
stopListening(): Promise<void>;
|
|
47
|
+
/**
|
|
48
|
+
* Drain: stop accepting new tasks, wait for in-flight tasks to complete.
|
|
49
|
+
* @param timeoutMs - Max wait time. 0 = unlimited (default).
|
|
50
|
+
*/
|
|
51
|
+
drain(timeoutMs?: number): Promise<void>;
|
|
42
52
|
stop(): Promise<void>;
|
|
43
53
|
private handleRequest;
|
|
44
54
|
private serveAgentCard;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"a2a-frontend.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/agent-protocol/a2a-frontend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EACV,SAAS,EACT,mBAAmB,EACnB,YAAY,EAGZ,SAAS,EACT,aAAa,EAGb,SAAS,EAGV,MAAM,SAAS,CAAC;AAajB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAkGnD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,YAAY,EACrB,IAAI,EAAE,SAAS,GACd,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA4BzB;AAED,+EAA+E;AAC/E,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa,EAAE,CAmCxF;AAMD,qBAAa,WAAY,YAAW,cAAc;IAChD,QAAQ,CAAC,IAAI,SAAS;IAEtB,OAAO,CAAC,MAAM,CAA2C;IACzD,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,YAAY,CAA+C;IACnE,OAAO,CAAC,IAAI,CAAgC;IAC5C,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,SAAS,CAA0B;IAE3C,OAAO,CAAC,UAAU,CAAK;gBAEX,MAAM,EAAE,mBAAmB,EAAE,SAAS,CAAC,EAAE,SAAS;IAK9D,iFAAiF;IACjF,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,sDAAsD;IACtD,SAAS,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI;IAI5B,gEAAgE;IAChE,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAInC,KAAK,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"a2a-frontend.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/agent-protocol/a2a-frontend.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task Response Evaluator with LLM Judge + Trace Analysis.
|
|
3
|
+
*
|
|
4
|
+
* Evaluates completed agent tasks on two axes:
|
|
5
|
+
* 1. Response quality (relevance, completeness, actionability)
|
|
6
|
+
* 2. Execution quality (tool call efficiency, unnecessary delegations)
|
|
7
|
+
*
|
|
8
|
+
* Uses ProbeAgent in single-shot mode (same pattern as llm-judge.ts).
|
|
9
|
+
*/
|
|
10
|
+
import type { SqliteTaskStore } from './task-store';
|
|
11
|
+
export interface ResponseQuality {
|
|
12
|
+
rating: number;
|
|
13
|
+
category: 'excellent' | 'good' | 'adequate' | 'poor' | 'off-topic' | 'error';
|
|
14
|
+
relevance: boolean;
|
|
15
|
+
completeness: boolean;
|
|
16
|
+
actionable: boolean;
|
|
17
|
+
reasoning: string;
|
|
18
|
+
}
|
|
19
|
+
export interface ExecutionQuality {
|
|
20
|
+
rating: number;
|
|
21
|
+
category: 'efficient' | 'adequate' | 'wasteful' | 'error';
|
|
22
|
+
unnecessary_tool_calls?: number;
|
|
23
|
+
reasoning: string;
|
|
24
|
+
}
|
|
25
|
+
export interface TaskEvaluationResult {
|
|
26
|
+
response_quality: ResponseQuality;
|
|
27
|
+
execution_quality?: ExecutionQuality;
|
|
28
|
+
overall_rating: number;
|
|
29
|
+
summary: string;
|
|
30
|
+
}
|
|
31
|
+
export interface TaskEvaluatorConfig {
|
|
32
|
+
model?: string;
|
|
33
|
+
provider?: string;
|
|
34
|
+
apiKey?: string;
|
|
35
|
+
prompt?: string;
|
|
36
|
+
traceDir?: string;
|
|
37
|
+
}
|
|
38
|
+
export declare const DEFAULT_EVALUATION_PROMPT = "You are a task response quality evaluator for an AI agent system called Visor.\n\nYou will receive the user's original request and an execution trace inside <execution_trace> tags. The trace is a YAML-formatted view of the entire agent execution, including the final response. When no trace is available, the agent response is provided directly.\n\n## How to Read the Execution Trace\n\nThe trace is a tree of spans representing the agent's execution pipeline:\n\n**Top-level: `visor.run`** \u2014 The root span with metadata:\n- `trace_id`: Unique execution identifier\n- `visor` / `probe`: Software versions\n- `source`: Where the request came from (e.g., \"slack\", \"cli\")\n- `duration`: Total wall-clock time\n\n**Checks** \u2014 Named processing steps (e.g., `route-intent`, `explore-code`, `generate-response`):\n- `type`: \"ai\" (LLM-powered), \"script\" (deterministic), or \"workflow\" (sub-pipeline)\n- `duration`: How long this step took\n- `input`: What was passed to this check \u2014 may include an `intent` (the user's question as understood by the router) and dependency outputs\n- `output`: The check's result \u2014 may be structured JSON or plain text\n\n**AI blocks** (`ai: model-name`) \u2014 Individual LLM calls within checks:\n- Shows model used, duration, and token counts (input/output)\n- `intent`: The question or instruction sent to the LLM\n\n**Tool calls** \u2014 Listed as `- toolName(input) \u2192 size`:\n- `search(\"query\" in repo)`: Code search. \"\u2192 no results\" means nothing was found; otherwise shows result size\n- `extract(file/path)`: File content extraction with result size\n- `listFiles(dir)`: Directory listing\n- `bash()`: Shell command execution\n\n**Delegations** (`search.delegate(\"query\")`) \u2014 Sub-agent searches:\n- Contains their own AI blocks and tool calls\n- Used for complex multi-step code exploration\n\n**The `response` field** at the end of the trace is the final answer sent back to the user. This is the primary output to evaluate.\n\n**Symbols:**\n- `\u2717` marks failed/error spans\n- `= check-name` means output is identical to that check's output (deduplication)\n\n## Evaluation Criteria\n\n**Response Quality** (1-5):\n- **Relevance**: Does the response directly address what the user asked? A response about the wrong topic or that misunderstands the question scores low.\n- **Completeness**: Does it fully answer the question? Partial answers, missing key details, or surface-level responses score lower.\n- **Actionable**: Can the user act on this information? Vague or generic advice scores lower than specific, concrete answers with code references.\n- Rating: 5=excellent (thorough, specific, directly useful), 4=good (answers well but minor gaps), 3=adequate (addresses question but lacks depth), 2=poor (partially relevant or very incomplete), 1=off-topic or error\n\n**Execution Quality** (1-5, only when trace is provided):\n- **Efficiency**: Were tool calls necessary and well-targeted? Good search queries that find results on the first try score high.\n- **Redundancy**: Were there duplicate searches, unnecessary re-searches with slightly different queries, or tools called for information already available?\n- **Delegation quality**: Were search delegations productive? Did they explore relevant code paths?\n- **Token usage**: Was input context kept reasonable, or did the agent load excessive amounts of code?\n- Rating: 5=efficient (minimal, targeted tool use), 4=adequate (minor redundancy), 3=some waste (noticeable unnecessary calls), 2=wasteful (many redundant searches or delegations), 1=error/broken execution\n\n**Overall Rating** (1-5): Weighted combination \u2014 response quality matters most, execution quality is secondary. A perfect response from a wasteful execution still scores 3-4 overall.\n\nYou MUST respond with valid JSON matching the provided schema. Be specific in your reasoning \u2014 reference actual check names, tool calls, or response content.";
|
|
39
|
+
/**
|
|
40
|
+
* Evaluate a completed task using an LLM judge.
|
|
41
|
+
*
|
|
42
|
+
* @param taskId - Task ID (full or prefix)
|
|
43
|
+
* @param store - Initialized SqliteTaskStore
|
|
44
|
+
* @param config - Optional evaluator configuration
|
|
45
|
+
* @returns Evaluation result with ratings and reasoning
|
|
46
|
+
*/
|
|
47
|
+
export declare function evaluateTask(taskId: string, store: SqliteTaskStore, config?: TaskEvaluatorConfig): Promise<TaskEvaluationResult>;
|
|
48
|
+
/**
|
|
49
|
+
* Run evaluation and store result as a task artifact.
|
|
50
|
+
*/
|
|
51
|
+
export declare function evaluateAndStore(taskId: string, store: SqliteTaskStore, config?: TaskEvaluatorConfig): Promise<TaskEvaluationResult>;
|
|
52
|
+
//# sourceMappingURL=task-evaluator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-evaluator.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/agent-protocol/task-evaluator.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAOpD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC;IAC7E,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC;IAC1D,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,eAAe,CAAC;IAClC,iBAAiB,CAAC,EAAE,gBAAgB,CAAC;IACrC,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD,eAAO,MAAM,yBAAyB,44HAyDwH,CAAC;AAoD/J;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,eAAe,EACtB,MAAM,CAAC,EAAE,mBAAmB,GAC3B,OAAO,CAAC,oBAAoB,CAAC,CAqI/B;AAMD;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,eAAe,EACtB,MAAM,CAAC,EAAE,mBAAmB,GAC3B,OAAO,CAAC,oBAAoB,CAAC,CAe/B"}
|
|
@@ -60,8 +60,10 @@ export interface TaskStore {
|
|
|
60
60
|
rows: TaskQueueRow[];
|
|
61
61
|
total: number;
|
|
62
62
|
};
|
|
63
|
-
/** Mark
|
|
64
|
-
|
|
63
|
+
/** Mark 'working' tasks as 'failed' (crash recovery on startup).
|
|
64
|
+
* When `claimedBy` is provided, only fails tasks owned by that instance.
|
|
65
|
+
* Without it, only fails **unclaimed** working tasks (safe default). */
|
|
66
|
+
failStaleTasks(reason?: string, claimedBy?: string): number;
|
|
65
67
|
/** Mark 'working' tasks older than the given age as 'failed' (runtime stale detection). */
|
|
66
68
|
failStaleTasksByAge(olderThanMs: number, reason?: string): number;
|
|
67
69
|
/** Delete completed/failed/canceled tasks older than the given age. */
|
|
@@ -95,7 +97,7 @@ export declare class SqliteTaskStore implements TaskStore {
|
|
|
95
97
|
claimNextSubmitted(workerId: string): AgentTask | null;
|
|
96
98
|
reclaimStaleTasks(_workerId: string, staleTimeoutMs?: number): AgentTask[];
|
|
97
99
|
releaseClaim(taskId: string): void;
|
|
98
|
-
failStaleTasks(reason?: string): number;
|
|
100
|
+
failStaleTasks(reason?: string, claimedBy?: string): number;
|
|
99
101
|
failStaleTasksByAge(olderThanMs: number, reason?: string): number;
|
|
100
102
|
purgeOldTasks(olderThanMs: number): number;
|
|
101
103
|
deleteExpiredTasks(): string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-store.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/agent-protocol/task-store.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EACL,SAAS,EACT,YAAY,EACZ,aAAa,EACb,sBAAsB,EACtB,SAAS,EAGV,MAAM,SAAS,CAAC;AAgFjB,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,YAAY,CAAC;IAC7B,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,mEAAmE;AACnE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAG1B,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAChD,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAC1C,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,CAAC;IAGpD,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IACzF,0FAA0F;IAC1F,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAClD,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IAC3D,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IAC3D,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAG9C,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACvD,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,CAAC;IAC1E,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAGnC,YAAY,CAAC,CAAC,MAAM,EAAE,eAAe,GAAG;QAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAGhF
|
|
1
|
+
{"version":3,"file":"task-store.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/agent-protocol/task-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasks-cli-handler.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/agent-protocol/tasks-cli-handler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tasks-cli-handler.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/agent-protocol/tasks-cli-handler.ts"],"names":[],"mappings":"AAs7BA,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgHtE"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { SqliteTaskStore, type ListTasksFilter } from './task-store';
|
|
2
|
+
export declare class TasksTUI {
|
|
3
|
+
private screen;
|
|
4
|
+
private listBox;
|
|
5
|
+
private detailBox;
|
|
6
|
+
private statusBar;
|
|
7
|
+
private store;
|
|
8
|
+
private filter;
|
|
9
|
+
private instanceId;
|
|
10
|
+
private items;
|
|
11
|
+
private total;
|
|
12
|
+
private selectedIndex;
|
|
13
|
+
private scrollOffset;
|
|
14
|
+
private mode;
|
|
15
|
+
private detailScrollOffset;
|
|
16
|
+
private detailLines;
|
|
17
|
+
private refreshInterval?;
|
|
18
|
+
private destroyed;
|
|
19
|
+
constructor(store: SqliteTaskStore, filter: ListTasksFilter);
|
|
20
|
+
private setupKeyBindings;
|
|
21
|
+
private getVisibleHeight;
|
|
22
|
+
private moveSelection;
|
|
23
|
+
private ensureVisible;
|
|
24
|
+
private scrollDetail;
|
|
25
|
+
private loadTasks;
|
|
26
|
+
private enterDetail;
|
|
27
|
+
private render;
|
|
28
|
+
private renderDetail;
|
|
29
|
+
private wrapText;
|
|
30
|
+
start(): Promise<void>;
|
|
31
|
+
destroy(): void;
|
|
32
|
+
}
|
|
33
|
+
export declare function runTasksTUI(filter: ListTasksFilter): Promise<void>;
|
|
34
|
+
//# sourceMappingURL=tasks-tui.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tasks-tui.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/agent-protocol/tasks-tui.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,eAAe,EAAE,KAAK,eAAe,EAAqB,MAAM,cAAc,CAAC;AAmGxF,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,IAAI,CAAoB;IAChC,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,WAAW,CAAgB;IAEnC,OAAO,CAAC,eAAe,CAAC,CAAiB;IACzC,OAAO,CAAC,SAAS,CAAS;gBAEd,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,eAAe;IA2E3D,OAAO,CAAC,gBAAgB;IAkHxB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,SAAS;IAejB,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,MAAM;IA2Ed,OAAO,CAAC,YAAY;IA8GpB,OAAO,CAAC,QAAQ;IAoBV,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAmB5B,OAAO,IAAI,IAAI;CAahB;AAMD,wBAAsB,WAAW,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAUxE"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Trace serializer for LLM evaluation prompts and CLI display.
|
|
3
|
+
*
|
|
4
|
+
* Supports multiple trace backends:
|
|
5
|
+
* 1. Grafana Tempo (via Grafana datasource proxy or direct Tempo API)
|
|
6
|
+
* 2. Jaeger (via Jaeger HTTP API)
|
|
7
|
+
* 3. Local NDJSON files (Visor's file-span-exporter OTEL format)
|
|
8
|
+
*
|
|
9
|
+
* Auto-detects the backend from environment variables:
|
|
10
|
+
* - OTEL_EXPORTER_OTLP_ENDPOINT + VISOR_TELEMETRY_SINK=otlp → probe Grafana/Jaeger
|
|
11
|
+
* - VISOR_TRACE_BACKEND=grafana|jaeger|file (explicit override)
|
|
12
|
+
* - GRAFANA_URL, GRAFANA_TEMPO_DATASOURCE_ID → Grafana Tempo
|
|
13
|
+
* - JAEGER_URL → Jaeger
|
|
14
|
+
* - Falls back to local file scan
|
|
15
|
+
*/
|
|
16
|
+
export interface TraceBackendConfig {
|
|
17
|
+
type: 'grafana' | 'jaeger' | 'file' | 'auto';
|
|
18
|
+
/** Grafana base URL, e.g. http://localhost:3000 */
|
|
19
|
+
grafanaUrl?: string;
|
|
20
|
+
/** Grafana Tempo datasource ID (default: auto-detect) */
|
|
21
|
+
grafanaDatasourceId?: string | number;
|
|
22
|
+
/** Jaeger base URL, e.g. http://localhost:16686 */
|
|
23
|
+
jaegerUrl?: string;
|
|
24
|
+
/** Local trace directory (default: output/traces) */
|
|
25
|
+
traceDir?: string;
|
|
26
|
+
/** Auth token for remote APIs */
|
|
27
|
+
authToken?: string;
|
|
28
|
+
}
|
|
29
|
+
interface NormalizedSpan {
|
|
30
|
+
traceId: string;
|
|
31
|
+
spanId: string;
|
|
32
|
+
parentSpanId?: string;
|
|
33
|
+
name: string;
|
|
34
|
+
startTimeMs: number;
|
|
35
|
+
endTimeMs: number;
|
|
36
|
+
durationMs: number;
|
|
37
|
+
attributes: Record<string, string | number | boolean>;
|
|
38
|
+
events: Array<{
|
|
39
|
+
name: string;
|
|
40
|
+
attributes: Record<string, string | number | boolean>;
|
|
41
|
+
}>;
|
|
42
|
+
status: 'ok' | 'error';
|
|
43
|
+
}
|
|
44
|
+
interface SpanTree {
|
|
45
|
+
span: NormalizedSpan;
|
|
46
|
+
children: SpanTree[];
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Fetch trace spans by trace ID. Tries backends in order:
|
|
50
|
+
* 1. Explicit backend (config.type)
|
|
51
|
+
* 2. Grafana Tempo (auto-detect)
|
|
52
|
+
* 3. Jaeger (auto-detect)
|
|
53
|
+
* 4. Local NDJSON files
|
|
54
|
+
*/
|
|
55
|
+
export declare function fetchTraceSpans(traceId: string, config?: Partial<TraceBackendConfig>): Promise<NormalizedSpan[]>;
|
|
56
|
+
/**
|
|
57
|
+
* Find the NDJSON trace file matching a given trace ID.
|
|
58
|
+
* Scans the first line of each `.ndjson` file in the trace directory.
|
|
59
|
+
*/
|
|
60
|
+
export declare function findTraceFile(traceId: string, traceDir?: string): Promise<string | null>;
|
|
61
|
+
export interface RenderTreeOptions {
|
|
62
|
+
maxDepth?: number;
|
|
63
|
+
maxChars?: number;
|
|
64
|
+
/** Fallback intent text for AI spans whose input is too truncated */
|
|
65
|
+
fallbackIntent?: string;
|
|
66
|
+
/** When true, don't truncate output/intent previews */
|
|
67
|
+
fullOutput?: boolean;
|
|
68
|
+
/** Final task response from the task store (full, not OTEL-truncated) */
|
|
69
|
+
taskResponse?: string;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Serialize a trace (by ID) into a compact text tree for LLM prompts.
|
|
73
|
+
* Auto-detects the backend (Grafana Tempo, Jaeger, local files).
|
|
74
|
+
*/
|
|
75
|
+
export declare function serializeTraceForPrompt(traceIdOrPath: string, maxChars?: number, backendConfig?: Partial<TraceBackendConfig>,
|
|
76
|
+
/** Final task response from the task store (not truncated by OTEL) */
|
|
77
|
+
taskResponse?: string): Promise<string>;
|
|
78
|
+
/**
|
|
79
|
+
* Render a span tree as a compact ASCII tree with durations and details.
|
|
80
|
+
*/
|
|
81
|
+
export declare function renderSpanTree(tree: SpanTree, opts?: RenderTreeOptions): string;
|
|
82
|
+
export declare function renderTraceTree(tree: any, // ExecutionNode from trace-reader
|
|
83
|
+
opts?: RenderTreeOptions): string;
|
|
84
|
+
/**
|
|
85
|
+
* Render a span tree as YAML-like structured output.
|
|
86
|
+
* More readable than ASCII tree for JSON inputs/outputs.
|
|
87
|
+
*/
|
|
88
|
+
export declare function renderSpanYaml(tree: SpanTree, allSpans: NormalizedSpan[], opts?: RenderTreeOptions): string;
|
|
89
|
+
export {};
|
|
90
|
+
//# sourceMappingURL=trace-serializer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace-serializer.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/agent-protocol/trace-serializer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAWH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IAC7C,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,mBAAmB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtC,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAmBD,UAAU,cAAc;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IACtD,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;IACvF,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;CACxB;AAED,UAAU,QAAQ;IAChB,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,QAAQ,EAAE,CAAC;CACtB;AAqKD;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GACnC,OAAO,CAAC,cAAc,EAAE,CAAC,CA0B3B;AA2ID;;;GAGG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAmB9F;AAgJD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uDAAuD;IACvD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AA4CD;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,aAAa,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC;AAC3C,sEAAsE;AACtE,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,CAAC,CA+BjB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAwB/E;AAGD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,GAAG,EAAE,kCAAkC;AAC7C,IAAI,CAAC,EAAE,iBAAiB,GACvB,MAAM,CAqBR;AAMD;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,cAAc,EAAE,EAC1B,IAAI,CAAC,EAAE,iBAAiB,GACvB,MAAM,CA+BR"}
|
|
@@ -19,6 +19,8 @@ export interface TrackExecutionOptions {
|
|
|
19
19
|
metadata?: Record<string, unknown>;
|
|
20
20
|
/** Human-readable description of what's being executed */
|
|
21
21
|
messageText: string;
|
|
22
|
+
/** Run LLM evaluation after task completion (non-blocking). */
|
|
23
|
+
autoEvaluate?: boolean;
|
|
22
24
|
}
|
|
23
25
|
/**
|
|
24
26
|
* Wrap an engine execution call with task lifecycle tracking.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"track-execution.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/agent-protocol/track-execution.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAgB,SAAS,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"track-execution.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/agent-protocol/track-execution.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAgB,SAAS,EAAE,MAAM,SAAS,CAAC;AAUvD,MAAM,MAAM,UAAU,GAClB,KAAK,GACL,OAAO,GACP,UAAU,GACV,OAAO,GACP,UAAU,GACV,OAAO,GACP,KAAK,GACL,KAAK,GACL,KAAK,GACL,WAAW,GACX,SAAS,CAAC;AAEd,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,0DAA0D;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,CAAC,EACpC,IAAI,EAAE,qBAAqB,EAC3B,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACzB,OAAO,CAAC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,CAAC,CAAA;CAAE,CAAC,CA4GzC"}
|
package/dist/cli-main.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/cli-main.ts"],"names":[],"mappings":"AA2qCA;;GAEG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/cli-main.ts"],"names":[],"mappings":"AA2qCA;;GAEG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAskD1C"}
|