@probelabs/visor 0.1.153 → 0.1.154
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/dist/index.js +185 -67
- package/dist/output/traces/{run-2026-03-04T13-24-27-240Z.ndjson → run-2026-03-04T15-57-32-312Z.ndjson} +84 -84
- package/dist/{traces/run-2026-03-04T13-25-12-321Z.ndjson → output/traces/run-2026-03-04T15-58-17-868Z.ndjson} +1774 -1774
- package/dist/providers/mcp-custom-sse-server.d.ts.map +1 -1
- package/dist/scheduler/schedule-tool.d.ts.map +1 -1
- package/dist/sdk/{check-provider-registry-OEPUY5P6.mjs → check-provider-registry-2HT3USLQ.mjs} +7 -7
- package/dist/sdk/{check-provider-registry-ZOGNKTC3.mjs → check-provider-registry-CQTR5OVS.mjs} +7 -7
- package/dist/sdk/{check-provider-registry-CSIZGIKC.mjs → check-provider-registry-PK3OTEX6.mjs} +7 -7
- package/dist/sdk/{chunk-CPYQDJ27.mjs → chunk-AS6LIEO4.mjs} +3 -3
- package/dist/sdk/{chunk-KBX4OIXL.mjs → chunk-AU6RDTY4.mjs} +2 -2
- package/dist/sdk/{chunk-Y3XWPKFP.mjs → chunk-GQ7H7E4Y.mjs} +2 -2
- package/dist/sdk/{chunk-Y3XWPKFP.mjs.map → chunk-GQ7H7E4Y.mjs.map} +1 -1
- package/dist/sdk/{chunk-WG7P66MJ.mjs → chunk-ILIWDV37.mjs} +2 -2
- package/dist/sdk/{chunk-DNDS7R3N.mjs → chunk-NZADFXHE.mjs} +7 -1
- package/dist/sdk/chunk-NZADFXHE.mjs.map +1 -0
- package/dist/sdk/{chunk-U7KB66AN.mjs → chunk-PW3RK2IS.mjs} +55 -35
- package/dist/sdk/chunk-PW3RK2IS.mjs.map +1 -0
- package/dist/sdk/{chunk-NYK7WDGH.mjs → chunk-RH7C77KY.mjs} +55 -35
- package/dist/sdk/chunk-RH7C77KY.mjs.map +1 -0
- package/dist/sdk/{chunk-SMR5N5MG.mjs → chunk-S6MIZBKN.mjs} +3 -3
- package/dist/sdk/{chunk-SMR5N5MG.mjs.map → chunk-S6MIZBKN.mjs.map} +1 -1
- package/dist/sdk/{chunk-ZCUGMT7X.mjs → chunk-SPCGI24K.mjs} +3 -3
- package/dist/sdk/{chunk-EYQWEVZF.mjs → chunk-WPF7PJ64.mjs} +55 -35
- package/dist/sdk/chunk-WPF7PJ64.mjs.map +1 -0
- package/dist/sdk/{chunk-VBN45DBR.mjs → chunk-ZPRIWRM2.mjs} +3 -3
- package/dist/sdk/{config-SW3VO4DQ.mjs → config-CWHZO5AL.mjs} +2 -2
- package/dist/sdk/{failure-condition-evaluator-R3UE4PE7.mjs → failure-condition-evaluator-LYFZMQ6Y.mjs} +3 -3
- package/dist/sdk/{failure-condition-evaluator-Y32S6DB2.mjs → failure-condition-evaluator-TCB66TZU.mjs} +3 -3
- package/dist/sdk/{github-frontend-6KZSVSPC.mjs → github-frontend-6C7WVBEL.mjs} +3 -3
- package/dist/sdk/{github-frontend-6SIR7QWX.mjs → github-frontend-XKPAYXOT.mjs} +3 -3
- package/dist/sdk/{host-A5HS6F6G.mjs → host-6DJCOUJE.mjs} +2 -2
- package/dist/sdk/{host-YBJOWFT4.mjs → host-LKPQXXCY.mjs} +2 -2
- package/dist/sdk/{routing-MMEOAH34.mjs → routing-5U4Z5KI2.mjs} +4 -4
- package/dist/sdk/{routing-U63OJMZQ.mjs → routing-L224WQSY.mjs} +4 -4
- package/dist/sdk/{schedule-tool-NMCFABHK.mjs → schedule-tool-7VHYOB5O.mjs} +7 -7
- package/dist/sdk/{schedule-tool-NYRLSV4F.mjs → schedule-tool-HRFONU5J.mjs} +7 -7
- package/dist/sdk/{schedule-tool-74VMD77T.mjs → schedule-tool-MVXQWDE2.mjs} +7 -7
- package/dist/sdk/{schedule-tool-handler-2TFSBZ2O.mjs → schedule-tool-handler-KXZC4ZOR.mjs} +7 -7
- package/dist/sdk/{schedule-tool-handler-DRVRLVGD.mjs → schedule-tool-handler-NY67TD3Y.mjs} +7 -7
- package/dist/sdk/{schedule-tool-handler-EOQBRZSD.mjs → schedule-tool-handler-VYXBBOB6.mjs} +7 -7
- package/dist/sdk/sdk.js +45 -19
- package/dist/sdk/sdk.js.map +1 -1
- package/dist/sdk/sdk.mjs +6 -6
- package/dist/sdk/{trace-helpers-JJLVZ2RJ.mjs → trace-helpers-AWTAWKRA.mjs} +2 -2
- package/dist/sdk/{trace-helpers-2BIVADUK.mjs → trace-helpers-GI65SVE2.mjs} +2 -2
- package/dist/sdk/{workflow-check-provider-GIW4WECT.mjs → workflow-check-provider-6QS4QI55.mjs} +7 -7
- package/dist/sdk/{workflow-check-provider-UQMMFLSK.mjs → workflow-check-provider-HGFTX64I.mjs} +7 -7
- package/dist/sdk/{workflow-check-provider-4NHVFLMQ.mjs → workflow-check-provider-PJSFGBCM.mjs} +7 -7
- package/dist/sdk/{workflow-registry-MHUSKSD6.mjs → workflow-registry-NGV3SESX.mjs} +2 -2
- package/dist/slack/schedule-tool-handler.d.ts.map +1 -1
- package/dist/traces/{run-2026-03-04T13-24-27-240Z.ndjson → run-2026-03-04T15-57-32-312Z.ndjson} +84 -84
- package/dist/{output/traces/run-2026-03-04T13-25-12-321Z.ndjson → traces/run-2026-03-04T15-58-17-868Z.ndjson} +1774 -1774
- package/dist/workflow-registry.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/sdk/chunk-DNDS7R3N.mjs.map +0 -1
- package/dist/sdk/chunk-EYQWEVZF.mjs.map +0 -1
- package/dist/sdk/chunk-NYK7WDGH.mjs.map +0 -1
- package/dist/sdk/chunk-U7KB66AN.mjs.map +0 -1
- /package/dist/sdk/{check-provider-registry-CSIZGIKC.mjs.map → check-provider-registry-2HT3USLQ.mjs.map} +0 -0
- /package/dist/sdk/{check-provider-registry-OEPUY5P6.mjs.map → check-provider-registry-CQTR5OVS.mjs.map} +0 -0
- /package/dist/sdk/{check-provider-registry-ZOGNKTC3.mjs.map → check-provider-registry-PK3OTEX6.mjs.map} +0 -0
- /package/dist/sdk/{chunk-CPYQDJ27.mjs.map → chunk-AS6LIEO4.mjs.map} +0 -0
- /package/dist/sdk/{chunk-KBX4OIXL.mjs.map → chunk-AU6RDTY4.mjs.map} +0 -0
- /package/dist/sdk/{chunk-WG7P66MJ.mjs.map → chunk-ILIWDV37.mjs.map} +0 -0
- /package/dist/sdk/{chunk-VBN45DBR.mjs.map → chunk-SPCGI24K.mjs.map} +0 -0
- /package/dist/sdk/{chunk-ZCUGMT7X.mjs.map → chunk-ZPRIWRM2.mjs.map} +0 -0
- /package/dist/sdk/{config-SW3VO4DQ.mjs.map → config-CWHZO5AL.mjs.map} +0 -0
- /package/dist/sdk/{failure-condition-evaluator-R3UE4PE7.mjs.map → failure-condition-evaluator-LYFZMQ6Y.mjs.map} +0 -0
- /package/dist/sdk/{failure-condition-evaluator-Y32S6DB2.mjs.map → failure-condition-evaluator-TCB66TZU.mjs.map} +0 -0
- /package/dist/sdk/{github-frontend-6KZSVSPC.mjs.map → github-frontend-6C7WVBEL.mjs.map} +0 -0
- /package/dist/sdk/{github-frontend-6SIR7QWX.mjs.map → github-frontend-XKPAYXOT.mjs.map} +0 -0
- /package/dist/sdk/{host-A5HS6F6G.mjs.map → host-6DJCOUJE.mjs.map} +0 -0
- /package/dist/sdk/{host-YBJOWFT4.mjs.map → host-LKPQXXCY.mjs.map} +0 -0
- /package/dist/sdk/{routing-MMEOAH34.mjs.map → routing-5U4Z5KI2.mjs.map} +0 -0
- /package/dist/sdk/{routing-U63OJMZQ.mjs.map → routing-L224WQSY.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-74VMD77T.mjs.map → schedule-tool-7VHYOB5O.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-NMCFABHK.mjs.map → schedule-tool-HRFONU5J.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-NYRLSV4F.mjs.map → schedule-tool-MVXQWDE2.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-handler-2TFSBZ2O.mjs.map → schedule-tool-handler-KXZC4ZOR.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-handler-DRVRLVGD.mjs.map → schedule-tool-handler-NY67TD3Y.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-handler-EOQBRZSD.mjs.map → schedule-tool-handler-VYXBBOB6.mjs.map} +0 -0
- /package/dist/sdk/{trace-helpers-2BIVADUK.mjs.map → trace-helpers-AWTAWKRA.mjs.map} +0 -0
- /package/dist/sdk/{trace-helpers-JJLVZ2RJ.mjs.map → trace-helpers-GI65SVE2.mjs.map} +0 -0
- /package/dist/sdk/{workflow-check-provider-4NHVFLMQ.mjs.map → workflow-check-provider-6QS4QI55.mjs.map} +0 -0
- /package/dist/sdk/{workflow-check-provider-GIW4WECT.mjs.map → workflow-check-provider-HGFTX64I.mjs.map} +0 -0
- /package/dist/sdk/{workflow-check-provider-UQMMFLSK.mjs.map → workflow-check-provider-PJSFGBCM.mjs.map} +0 -0
- /package/dist/sdk/{workflow-registry-MHUSKSD6.mjs.map → workflow-registry-NGV3SESX.mjs.map} +0 -0
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
process.env.VISOR_VERSION = '0.1.
|
|
3
|
-
process.env.PROBE_VERSION = '0.6.0-
|
|
4
|
-
process.env.VISOR_COMMIT_SHA = '
|
|
5
|
-
process.env.VISOR_COMMIT_SHORT = '
|
|
2
|
+
process.env.VISOR_VERSION = '0.1.154';
|
|
3
|
+
process.env.PROBE_VERSION = '0.6.0-rc271';
|
|
4
|
+
process.env.VISOR_COMMIT_SHA = '1ceb9f8073c3ec36e82c277d3e4bfcbf3320ba3b';
|
|
5
|
+
process.env.VISOR_COMMIT_SHORT = '1ceb9f80';
|
|
6
6
|
/******/ (() => { // webpackBootstrap
|
|
7
7
|
/******/ var __webpack_modules__ = ({
|
|
8
8
|
|
|
@@ -188256,6 +188256,15 @@ class CustomToolsSSEServer {
|
|
|
188256
188256
|
original_expression: args.original_expression,
|
|
188257
188257
|
// For cancel/pause/resume
|
|
188258
188258
|
schedule_id: args.schedule_id,
|
|
188259
|
+
// For trigger actions
|
|
188260
|
+
trigger_channels: args.trigger_channels,
|
|
188261
|
+
trigger_from: args.trigger_from,
|
|
188262
|
+
trigger_from_bots: args.trigger_from_bots,
|
|
188263
|
+
trigger_contains: args.trigger_contains,
|
|
188264
|
+
trigger_match: args.trigger_match,
|
|
188265
|
+
trigger_threads: args.trigger_threads,
|
|
188266
|
+
trigger_description: args.trigger_description,
|
|
188267
|
+
trigger_id: args.trigger_id,
|
|
188259
188268
|
};
|
|
188260
188269
|
const scheduleResult = await (0, schedule_tool_1.handleScheduleAction)(scheduleArgs, scheduleContext);
|
|
188261
188270
|
result = scheduleResult.success
|
|
@@ -194160,19 +194169,13 @@ function formatTrigger(trigger) {
|
|
|
194160
194169
|
* Handle create_trigger action
|
|
194161
194170
|
*/
|
|
194162
194171
|
async function handleCreateTrigger(args, context, store) {
|
|
194163
|
-
//
|
|
194164
|
-
|
|
194165
|
-
return {
|
|
194166
|
-
success: false,
|
|
194167
|
-
message: 'Missing workflow',
|
|
194168
|
-
error: 'Please specify the workflow to run when the trigger fires.',
|
|
194169
|
-
};
|
|
194170
|
-
}
|
|
194172
|
+
// Default workflow to "default" if not specified
|
|
194173
|
+
const workflow = args.workflow || 'default';
|
|
194171
194174
|
// Validate workflow exists if we have available workflows
|
|
194172
|
-
if (context.availableWorkflows && !context.availableWorkflows.includes(
|
|
194175
|
+
if (context.availableWorkflows && !context.availableWorkflows.includes(workflow)) {
|
|
194173
194176
|
return {
|
|
194174
194177
|
success: false,
|
|
194175
|
-
message: `Workflow "${
|
|
194178
|
+
message: `Workflow "${workflow}" not found`,
|
|
194176
194179
|
error: `Available workflows: ${context.availableWorkflows.slice(0, 5).join(', ')}${context.availableWorkflows.length > 5 ? '...' : ''}`,
|
|
194177
194180
|
};
|
|
194178
194181
|
}
|
|
@@ -194188,7 +194191,7 @@ async function handleCreateTrigger(args, context, store) {
|
|
|
194188
194191
|
};
|
|
194189
194192
|
}
|
|
194190
194193
|
// Check permissions for the workflow
|
|
194191
|
-
const permissionCheck = checkSchedulePermissions(context,
|
|
194194
|
+
const permissionCheck = checkSchedulePermissions(context, workflow);
|
|
194192
194195
|
if (!permissionCheck.allowed) {
|
|
194193
194196
|
return {
|
|
194194
194197
|
success: false,
|
|
@@ -194208,12 +194211,12 @@ async function handleCreateTrigger(args, context, store) {
|
|
|
194208
194211
|
contains: args.trigger_contains,
|
|
194209
194212
|
matchPattern: args.trigger_match,
|
|
194210
194213
|
threads: args.trigger_threads ?? 'any',
|
|
194211
|
-
workflow:
|
|
194214
|
+
workflow: workflow,
|
|
194212
194215
|
inputs: args.workflow_inputs,
|
|
194213
194216
|
status: 'active',
|
|
194214
194217
|
enabled: true,
|
|
194215
194218
|
});
|
|
194216
|
-
logger_1.logger.info(`[ScheduleTool] Created message trigger ${trigger.id} for user ${context.userId}: workflow="${
|
|
194219
|
+
logger_1.logger.info(`[ScheduleTool] Created message trigger ${trigger.id} for user ${context.userId}: workflow="${workflow}"`);
|
|
194217
194220
|
return {
|
|
194218
194221
|
success: true,
|
|
194219
194222
|
message: `**Message trigger created!**
|
|
@@ -194346,12 +194349,17 @@ function getScheduleToolDefinition() {
|
|
|
194346
194349
|
|
|
194347
194350
|
YOU (the AI) must extract and structure all scheduling parameters. Do NOT pass natural language time expressions - convert them to cron or ISO timestamps.
|
|
194348
194351
|
|
|
194349
|
-
CRITICAL WORKFLOW RULE:
|
|
194352
|
+
CRITICAL WORKFLOW RULE (for 'create' action only):
|
|
194350
194353
|
- To schedule a WORKFLOW, the user MUST use a '%' prefix (e.g., "schedule %my-workflow daily").
|
|
194351
194354
|
- If the '%' prefix is present, extract the word following it as the 'workflow' parameter (without the '%').
|
|
194352
194355
|
- If the '%' prefix is NOT present, the request is a simple text reminder. The ENTIRE user request (excluding the schedule expression) MUST be placed in the 'reminder_text' parameter.
|
|
194353
194356
|
- DO NOT guess or infer a workflow name from a user's request without the '%' prefix.
|
|
194354
194357
|
|
|
194358
|
+
WORKFLOW RULE FOR TRIGGERS (create_trigger action):
|
|
194359
|
+
- Triggers ALWAYS require a workflow. The '%' prefix rule does NOT apply to triggers.
|
|
194360
|
+
- If the user specifies a workflow name (with or without '%'), use it directly.
|
|
194361
|
+
- If the user does NOT specify a workflow name, use "default" as the workflow name.
|
|
194362
|
+
|
|
194355
194363
|
ACTIONS:
|
|
194356
194364
|
- create: Schedule a new reminder or workflow
|
|
194357
194365
|
- list: Show user's active schedules
|
|
@@ -194364,7 +194372,7 @@ Slack messages in specific channels. Use the create_trigger, list_triggers, dele
|
|
|
194364
194372
|
actions for this. Message triggers fire workflows based on message content, channel, sender, and thread scope.
|
|
194365
194373
|
|
|
194366
194374
|
TRIGGER ACTIONS:
|
|
194367
|
-
- create_trigger: Create a new message trigger (requires
|
|
194375
|
+
- create_trigger: Create a new message trigger (requires at least one filter; workflow defaults to "default" if not specified). Supports filtering by user IDs (trigger_from), channels, keywords, regex, and thread scope.
|
|
194368
194376
|
- list_triggers: Show user's message triggers
|
|
194369
194377
|
- delete_trigger: Remove a trigger by ID
|
|
194370
194378
|
- update_trigger: Enable/disable a trigger by ID
|
|
@@ -194464,6 +194472,9 @@ User: "watch #cicd for messages containing 'failed' and run %handle-cicd"
|
|
|
194464
194472
|
User: "trigger on each of my messages in this channel and run %auto-reply" (user ID is U3P2L4XNE)
|
|
194465
194473
|
→ { "action": "create_trigger", "trigger_channels": ["C09V810NY6R"], "trigger_from": ["U3P2L4XNE"], "workflow": "auto-reply" }
|
|
194466
194474
|
|
|
194475
|
+
User: "trigger on each message in this channel" (no workflow specified — use "default")
|
|
194476
|
+
→ { "action": "create_trigger", "trigger_channels": ["C09V810NY6R"], "workflow": "default" }
|
|
194477
|
+
|
|
194467
194478
|
User: "list my message triggers"
|
|
194468
194479
|
→ { "action": "list_triggers" }
|
|
194469
194480
|
|
|
@@ -194497,7 +194508,7 @@ User: "disable trigger abc123"
|
|
|
194497
194508
|
},
|
|
194498
194509
|
workflow: {
|
|
194499
194510
|
type: 'string',
|
|
194500
|
-
description: 'For create: workflow ID to run. ONLY populate this if the user used the % prefix (e.g., "%my-workflow"). Extract the name without the % symbol. If no % prefix, use reminder_text instead.',
|
|
194511
|
+
description: 'For create: workflow ID to run. ONLY populate this if the user used the % prefix (e.g., "%my-workflow"). Extract the name without the % symbol. If no % prefix, use reminder_text instead. For create_trigger: workflow is REQUIRED — use the workflow name the user specified (% prefix optional), or "default" if not specified.',
|
|
194501
194512
|
},
|
|
194502
194513
|
workflow_inputs: {
|
|
194503
194514
|
type: 'object',
|
|
@@ -198079,6 +198090,15 @@ async function executeScheduleTool(args, slackContext, slackClient, availableWor
|
|
|
198079
198090
|
original_expression: args.original_expression,
|
|
198080
198091
|
// For cancel/pause/resume
|
|
198081
198092
|
schedule_id: args.schedule_id,
|
|
198093
|
+
// For trigger actions
|
|
198094
|
+
trigger_channels: args.trigger_channels,
|
|
198095
|
+
trigger_from: args.trigger_from,
|
|
198096
|
+
trigger_from_bots: args.trigger_from_bots,
|
|
198097
|
+
trigger_contains: args.trigger_contains,
|
|
198098
|
+
trigger_match: args.trigger_match,
|
|
198099
|
+
trigger_threads: args.trigger_threads,
|
|
198100
|
+
trigger_description: args.trigger_description,
|
|
198101
|
+
trigger_id: args.trigger_id,
|
|
198082
198102
|
};
|
|
198083
198103
|
// If AI didn't provide target, default to current Slack context
|
|
198084
198104
|
if (!toolArgs.target_type && slackContext.channel) {
|
|
@@ -224465,6 +224485,12 @@ class WorkflowRegistry {
|
|
|
224465
224485
|
message: 'Input parameter schema is recommended',
|
|
224466
224486
|
});
|
|
224467
224487
|
}
|
|
224488
|
+
if (input.schema?.type === 'array' && !input.schema.items) {
|
|
224489
|
+
warnings.push({
|
|
224490
|
+
path: `inputs[${i}].schema`,
|
|
224491
|
+
message: 'Array schema should define "items" (e.g. items: { type: string }). Some LLM providers (Gemini) reject array schemas without items.',
|
|
224492
|
+
});
|
|
224493
|
+
}
|
|
224468
224494
|
}
|
|
224469
224495
|
}
|
|
224470
224496
|
// Validate output parameters
|
|
@@ -355804,9 +355830,10 @@ You are working with a workspace. Available paths: ${workspaceDesc}
|
|
|
355804
355830
|
}
|
|
355805
355831
|
if (completionAttempted && this.completionPrompt && !options._completionPromptProcessed) {
|
|
355806
355832
|
if (this.debug) {
|
|
355807
|
-
console.log("[DEBUG] Running completion prompt
|
|
355833
|
+
console.log("[DEBUG] Running completion prompt as continuation of current session...");
|
|
355808
355834
|
}
|
|
355809
355835
|
try {
|
|
355836
|
+
const originalResult = finalResult;
|
|
355810
355837
|
if (this.tracer) {
|
|
355811
355838
|
this.tracer.recordEvent("completion_prompt.started", {
|
|
355812
355839
|
"completion_prompt.original_result_length": finalResult?.length || 0
|
|
@@ -355819,24 +355846,66 @@ Here is the result to review:
|
|
|
355819
355846
|
${finalResult}
|
|
355820
355847
|
</result>
|
|
355821
355848
|
|
|
355822
|
-
|
|
355823
|
-
|
|
355824
|
-
|
|
355825
|
-
|
|
355826
|
-
|
|
355827
|
-
|
|
355828
|
-
|
|
355829
|
-
|
|
355830
|
-
|
|
355849
|
+
Double-check your response based on the criteria above. If everything looks good, respond with your previous answer exactly as-is using attempt_completion. If something needs to be fixed or is missing, do it now, then respond with the COMPLETE updated answer (everything you did in total, not just the fix) using attempt_completion.`;
|
|
355850
|
+
currentMessages.push({ role: "user", content: completionPromptMessage });
|
|
355851
|
+
completionResult = null;
|
|
355852
|
+
completionAttempted = false;
|
|
355853
|
+
const completionMaxIterations = 5;
|
|
355854
|
+
const completionStreamOptions = {
|
|
355855
|
+
model: this.provider ? this.provider(this.model) : this.model,
|
|
355856
|
+
messages: this.prepareMessagesWithImages(currentMessages),
|
|
355857
|
+
tools: tools2,
|
|
355858
|
+
stopWhen: (0, import_ai4.stepCountIs)(completionMaxIterations),
|
|
355859
|
+
maxTokens: maxResponseTokens,
|
|
355860
|
+
temperature: 0.3,
|
|
355861
|
+
onStepFinish: ({ toolResults, text, finishReason, usage }) => {
|
|
355862
|
+
if (usage) {
|
|
355863
|
+
this.tokenCounter.recordUsage(usage);
|
|
355864
|
+
}
|
|
355865
|
+
if (options.onStream && text) {
|
|
355866
|
+
options.onStream(text);
|
|
355867
|
+
}
|
|
355868
|
+
if (this.debug) {
|
|
355869
|
+
console.log(`[DEBUG] Completion prompt step finished (reason: ${finishReason}, tools: ${toolResults?.length || 0})`);
|
|
355870
|
+
}
|
|
355871
|
+
}
|
|
355872
|
+
};
|
|
355873
|
+
const providerOpts = this._buildThinkingProviderOptions(maxResponseTokens);
|
|
355874
|
+
if (providerOpts) {
|
|
355875
|
+
completionStreamOptions.providerOptions = providerOpts;
|
|
355876
|
+
}
|
|
355877
|
+
const cpResult = await this.streamTextWithRetryAndFallback(completionStreamOptions);
|
|
355878
|
+
const cpFinalText = await cpResult.text;
|
|
355879
|
+
const cpUsage = await cpResult.usage;
|
|
355880
|
+
if (cpUsage) {
|
|
355881
|
+
this.tokenCounter.recordUsage(cpUsage, cpResult.experimental_providerMetadata);
|
|
355882
|
+
}
|
|
355883
|
+
const cpMessages = await cpResult.response?.messages;
|
|
355884
|
+
if (cpMessages) {
|
|
355885
|
+
for (const msg of cpMessages) {
|
|
355886
|
+
currentMessages.push(msg);
|
|
355887
|
+
}
|
|
355888
|
+
}
|
|
355889
|
+
if (completionResult) {
|
|
355890
|
+
finalResult = completionResult;
|
|
355891
|
+
completionAttempted = true;
|
|
355892
|
+
} else if (cpFinalText && cpFinalText.trim().length > 0) {
|
|
355893
|
+
finalResult = cpFinalText;
|
|
355894
|
+
completionAttempted = true;
|
|
355895
|
+
} else {
|
|
355896
|
+
finalResult = originalResult;
|
|
355897
|
+
completionAttempted = true;
|
|
355898
|
+
if (this.debug) {
|
|
355899
|
+
console.log("[DEBUG] Completion prompt returned empty result, keeping original.");
|
|
355900
|
+
}
|
|
355831
355901
|
}
|
|
355832
|
-
this._extractedRawBlocks = savedExtractedBlocks;
|
|
355833
|
-
finalResult = completionResult2;
|
|
355834
355902
|
if (this.debug) {
|
|
355835
|
-
console.log(`[DEBUG] Completion prompt finished.
|
|
355903
|
+
console.log(`[DEBUG] Completion prompt finished. Final result length: ${finalResult?.length || 0}`);
|
|
355836
355904
|
}
|
|
355837
355905
|
if (this.tracer) {
|
|
355838
355906
|
this.tracer.recordEvent("completion_prompt.completed", {
|
|
355839
|
-
"completion_prompt.final_result_length": finalResult?.length || 0
|
|
355907
|
+
"completion_prompt.final_result_length": finalResult?.length || 0,
|
|
355908
|
+
"completion_prompt.used_original": finalResult === originalResult
|
|
355840
355909
|
});
|
|
355841
355910
|
}
|
|
355842
355911
|
} catch (error2) {
|
|
@@ -357594,6 +357663,17 @@ function parseDelegatedTargets(rawResponse) {
|
|
|
357594
357663
|
}
|
|
357595
357664
|
return normalizeTargets(fallbackTargetsFromText(trimmed));
|
|
357596
357665
|
}
|
|
357666
|
+
function splitTargetSuffix(target) {
|
|
357667
|
+
const searchStart = target.length > 2 && target[1] === ":" && /[a-zA-Z]/.test(target[0]) ? 2 : 0;
|
|
357668
|
+
const colonIdx = target.indexOf(":", searchStart);
|
|
357669
|
+
const hashIdx = target.indexOf("#");
|
|
357670
|
+
if (colonIdx !== -1 && (hashIdx === -1 || colonIdx < hashIdx)) {
|
|
357671
|
+
return { filePart: target.substring(0, colonIdx), suffix: target.substring(colonIdx) };
|
|
357672
|
+
} else if (hashIdx !== -1) {
|
|
357673
|
+
return { filePart: target.substring(0, hashIdx), suffix: target.substring(hashIdx) };
|
|
357674
|
+
}
|
|
357675
|
+
return { filePart: target, suffix: "" };
|
|
357676
|
+
}
|
|
357597
357677
|
function buildSearchDelegateTask({ searchQuery, searchPath, exact, language, allowTests }) {
|
|
357598
357678
|
return [
|
|
357599
357679
|
"You are a code-search subagent. Your job is to find ALL relevant code locations for the given query.",
|
|
@@ -357622,7 +357702,7 @@ function buildSearchDelegateTask({ searchQuery, searchPath, exact, language, all
|
|
|
357622
357702
|
"Deduplicate targets. Do NOT explain or answer - ONLY return the JSON targets."
|
|
357623
357703
|
].join("\n");
|
|
357624
357704
|
}
|
|
357625
|
-
var import_ai5, CODE_SEARCH_SCHEMA, searchTool, queryTool, extractTool, delegateTool, analyzeAllTool;
|
|
357705
|
+
var import_ai5, import_fs11, CODE_SEARCH_SCHEMA, searchTool, queryTool, extractTool, delegateTool, analyzeAllTool;
|
|
357626
357706
|
var init_vercel = __esm({
|
|
357627
357707
|
"src/tools/vercel.js"() {
|
|
357628
357708
|
"use strict";
|
|
@@ -357633,6 +357713,7 @@ var init_vercel = __esm({
|
|
|
357633
357713
|
init_delegate();
|
|
357634
357714
|
init_analyzeAll();
|
|
357635
357715
|
init_common2();
|
|
357716
|
+
import_fs11 = __nccwpck_require__(79896);
|
|
357636
357717
|
init_error_types();
|
|
357637
357718
|
init_hashline();
|
|
357638
357719
|
CODE_SEARCH_SCHEMA = {
|
|
@@ -357758,10 +357839,47 @@ var init_vercel = __esm({
|
|
|
357758
357839
|
}
|
|
357759
357840
|
return fallbackResult;
|
|
357760
357841
|
}
|
|
357842
|
+
const delegateBase = options.allowedFolders?.[0] || options.cwd || ".";
|
|
357761
357843
|
const resolutionBase = searchPaths[0] || options.cwd || ".";
|
|
357762
|
-
const resolvedTargets = targets.map((target) => resolveTargetPath(target,
|
|
357844
|
+
const resolvedTargets = targets.map((target) => resolveTargetPath(target, delegateBase));
|
|
357845
|
+
const validatedTargets = [];
|
|
357846
|
+
for (const target of resolvedTargets) {
|
|
357847
|
+
const { filePart, suffix } = splitTargetSuffix(target);
|
|
357848
|
+
if ((0, import_fs11.existsSync)(filePart)) {
|
|
357849
|
+
validatedTargets.push(target);
|
|
357850
|
+
continue;
|
|
357851
|
+
}
|
|
357852
|
+
let fixed = false;
|
|
357853
|
+
const parts = filePart.split("/").filter(Boolean);
|
|
357854
|
+
for (let i5 = 0; i5 < parts.length - 1; i5++) {
|
|
357855
|
+
if (parts[i5] === parts[i5 + 1]) {
|
|
357856
|
+
const candidate = "/" + [...parts.slice(0, i5), ...parts.slice(i5 + 1)].join("/");
|
|
357857
|
+
if ((0, import_fs11.existsSync)(candidate)) {
|
|
357858
|
+
validatedTargets.push(candidate + suffix);
|
|
357859
|
+
if (debug) console.error(`[search-delegate] Fixed doubled path segment: ${filePart} \u2192 ${candidate}`);
|
|
357860
|
+
fixed = true;
|
|
357861
|
+
break;
|
|
357862
|
+
}
|
|
357863
|
+
}
|
|
357864
|
+
}
|
|
357865
|
+
if (fixed) continue;
|
|
357866
|
+
for (const altBase of [resolutionBase, options.cwd].filter(Boolean)) {
|
|
357867
|
+
if (altBase === delegateBase) continue;
|
|
357868
|
+
const altResolved = resolveTargetPath(target, altBase);
|
|
357869
|
+
const { filePart: altFile } = splitTargetSuffix(altResolved);
|
|
357870
|
+
if ((0, import_fs11.existsSync)(altFile)) {
|
|
357871
|
+
validatedTargets.push(altResolved);
|
|
357872
|
+
if (debug) console.error(`[search-delegate] Resolved with alt base: ${filePart} \u2192 ${altFile}`);
|
|
357873
|
+
fixed = true;
|
|
357874
|
+
break;
|
|
357875
|
+
}
|
|
357876
|
+
}
|
|
357877
|
+
if (fixed) continue;
|
|
357878
|
+
if (debug) console.error(`[search-delegate] Warning: target may not exist: ${filePart}`);
|
|
357879
|
+
validatedTargets.push(target);
|
|
357880
|
+
}
|
|
357763
357881
|
const extractOptions = {
|
|
357764
|
-
files:
|
|
357882
|
+
files: validatedTargets,
|
|
357765
357883
|
cwd: resolutionBase,
|
|
357766
357884
|
allowTests: allow_tests ?? true
|
|
357767
357885
|
};
|
|
@@ -358314,7 +358432,7 @@ Example: <edit><file_path>${file_path}</file_path><symbol>${allMatches[0].qualif
|
|
|
358314
358432
|
Example: <extract><targets>${file_path}#${symbol15}</targets></extract>`;
|
|
358315
358433
|
}
|
|
358316
358434
|
}
|
|
358317
|
-
const content = await
|
|
358435
|
+
const content = await import_fs12.promises.readFile(resolvedPath2, "utf-8");
|
|
358318
358436
|
const lines = content.split("\n");
|
|
358319
358437
|
if (position) {
|
|
358320
358438
|
const refIndent = detectBaseIndent(symbolInfo.code);
|
|
@@ -358325,7 +358443,7 @@ Example: <extract><targets>${file_path}#${symbol15}</targets></extract>`;
|
|
|
358325
358443
|
} else {
|
|
358326
358444
|
lines.splice(symbolInfo.startLine - 1, 0, ...newLines, "");
|
|
358327
358445
|
}
|
|
358328
|
-
await
|
|
358446
|
+
await import_fs12.promises.writeFile(resolvedPath2, lines.join("\n"), "utf-8");
|
|
358329
358447
|
if (fileTracker) {
|
|
358330
358448
|
const updated = await findSymbol(resolvedPath2, symbol15, cwd || process.cwd());
|
|
358331
358449
|
if (updated) {
|
|
@@ -358343,7 +358461,7 @@ Example: <extract><targets>${file_path}#${symbol15}</targets></extract>`;
|
|
|
358343
358461
|
const reindented = reindent(new_string, originalIndent);
|
|
358344
358462
|
const newLines = reindented.split("\n");
|
|
358345
358463
|
lines.splice(symbolInfo.startLine - 1, symbolInfo.endLine - symbolInfo.startLine + 1, ...newLines);
|
|
358346
|
-
await
|
|
358464
|
+
await import_fs12.promises.writeFile(resolvedPath2, lines.join("\n"), "utf-8");
|
|
358347
358465
|
if (fileTracker) {
|
|
358348
358466
|
const updated = await findSymbol(resolvedPath2, symbol15, cwd || process.cwd());
|
|
358349
358467
|
if (updated) {
|
|
@@ -358398,7 +358516,7 @@ async function handleLineEdit({ resolvedPath: resolvedPath2, file_path, start_li
|
|
|
358398
358516
|
if (position !== void 0 && position !== null && position !== "before" && position !== "after") {
|
|
358399
358517
|
return 'Error editing file: Invalid position - must be "before" or "after". Use position="before" to insert before the line, or position="after" to insert after it.';
|
|
358400
358518
|
}
|
|
358401
|
-
const content = await
|
|
358519
|
+
const content = await import_fs12.promises.readFile(resolvedPath2, "utf-8");
|
|
358402
358520
|
const fileLines = content.split("\n");
|
|
358403
358521
|
if (startLine > fileLines.length) {
|
|
358404
358522
|
return `Error editing file: Line ${startLine} is beyond file length (${fileLines.length} lines). Use 'extract' to read the current file content.`;
|
|
@@ -358427,20 +358545,20 @@ async function handleLineEdit({ resolvedPath: resolvedPath2, file_path, start_li
|
|
|
358427
358545
|
const newLines = cleaned === "" ? [] : cleaned.split("\n");
|
|
358428
358546
|
if (position === "after") {
|
|
358429
358547
|
fileLines.splice(startLine, 0, ...newLines);
|
|
358430
|
-
await
|
|
358548
|
+
await import_fs12.promises.writeFile(resolvedPath2, fileLines.join("\n"), "utf-8");
|
|
358431
358549
|
if (fileTracker) await fileTracker.trackFileAfterWrite(resolvedPath2);
|
|
358432
358550
|
const action = `${newLines.length} line${newLines.length !== 1 ? "s" : ""} inserted after line ${startLine}`;
|
|
358433
358551
|
return buildLineEditResponse(file_path, startLine, startLine, newLines.length, fileLines, startLine, action, modifications);
|
|
358434
358552
|
} else if (position === "before") {
|
|
358435
358553
|
fileLines.splice(startLine - 1, 0, ...newLines);
|
|
358436
|
-
await
|
|
358554
|
+
await import_fs12.promises.writeFile(resolvedPath2, fileLines.join("\n"), "utf-8");
|
|
358437
358555
|
if (fileTracker) await fileTracker.trackFileAfterWrite(resolvedPath2);
|
|
358438
358556
|
const action = `${newLines.length} line${newLines.length !== 1 ? "s" : ""} inserted before line ${startLine}`;
|
|
358439
358557
|
return buildLineEditResponse(file_path, startLine, startLine, newLines.length, fileLines, startLine - 1, action, modifications);
|
|
358440
358558
|
} else {
|
|
358441
358559
|
const replacedCount = endLine - startLine + 1;
|
|
358442
358560
|
fileLines.splice(startLine - 1, replacedCount, ...newLines);
|
|
358443
|
-
await
|
|
358561
|
+
await import_fs12.promises.writeFile(resolvedPath2, fileLines.join("\n"), "utf-8");
|
|
358444
358562
|
if (fileTracker) await fileTracker.trackFileAfterWrite(resolvedPath2);
|
|
358445
358563
|
let action;
|
|
358446
358564
|
if (newLines.length === 0) {
|
|
@@ -358453,14 +358571,14 @@ async function handleLineEdit({ resolvedPath: resolvedPath2, file_path, start_li
|
|
|
358453
358571
|
return buildLineEditResponse(file_path, startLine, endLine, newLines.length, fileLines, startLine - 1, action, modifications);
|
|
358454
358572
|
}
|
|
358455
358573
|
}
|
|
358456
|
-
var import_ai6,
|
|
358574
|
+
var import_ai6, import_fs12, import_path16, import_fs13, editTool, createTool, multiEditTool, editSchema, createSchema, multiEditSchema, editDescription, createDescription, multiEditDescription, editToolDefinition, createToolDefinition, multiEditToolDefinition;
|
|
358457
358575
|
var init_edit = __esm({
|
|
358458
358576
|
"src/tools/edit.js"() {
|
|
358459
358577
|
"use strict";
|
|
358460
358578
|
import_ai6 = __nccwpck_require__(86619);
|
|
358461
|
-
import_fs11 = __nccwpck_require__(79896);
|
|
358462
|
-
import_path16 = __nccwpck_require__(16928);
|
|
358463
358579
|
import_fs12 = __nccwpck_require__(79896);
|
|
358580
|
+
import_path16 = __nccwpck_require__(16928);
|
|
358581
|
+
import_fs13 = __nccwpck_require__(79896);
|
|
358464
358582
|
init_path_validation();
|
|
358465
358583
|
init_fuzzyMatch();
|
|
358466
358584
|
init_symbolEdit();
|
|
@@ -358544,7 +358662,7 @@ Parameters:
|
|
|
358544
358662
|
const relativePath = toRelativePath(resolvedPath2, workspaceRoot);
|
|
358545
358663
|
return `Error editing file: Permission denied - ${relativePath} is outside allowed directories. Use a file path within the project workspace.`;
|
|
358546
358664
|
}
|
|
358547
|
-
if (!(0,
|
|
358665
|
+
if (!(0, import_fs13.existsSync)(resolvedPath2)) {
|
|
358548
358666
|
return `Error editing file: File not found - ${file_path}. Verify the path is correct and the file exists. Use 'search' to find files by name, or 'create' to make a new file.`;
|
|
358549
358667
|
}
|
|
358550
358668
|
if (options.fileTracker && !options.fileTracker.isFileSeen(resolvedPath2)) {
|
|
@@ -358574,7 +358692,7 @@ Example: <extract><targets>${displayPath}</targets></extract>`;
|
|
|
358574
358692
|
Example: <extract><targets>${displayPath}</targets></extract>`;
|
|
358575
358693
|
}
|
|
358576
358694
|
}
|
|
358577
|
-
const content = await
|
|
358695
|
+
const content = await import_fs12.promises.readFile(resolvedPath2, "utf-8");
|
|
358578
358696
|
let matchTarget = old_string;
|
|
358579
358697
|
let matchStrategy = "exact";
|
|
358580
358698
|
if (!content.includes(old_string)) {
|
|
@@ -358606,7 +358724,7 @@ Example: <extract><targets>${displayPath}</targets></extract>`;
|
|
|
358606
358724
|
if (newContent === content) {
|
|
358607
358725
|
return `Error editing file: No changes made - the replacement result is identical to the original. Verify that old_string and new_string are actually different. If fuzzy matching was used, the matched text may already equal new_string.`;
|
|
358608
358726
|
}
|
|
358609
|
-
await
|
|
358727
|
+
await import_fs12.promises.writeFile(resolvedPath2, newContent, "utf-8");
|
|
358610
358728
|
if (options.fileTracker) {
|
|
358611
358729
|
await options.fileTracker.trackFileAfterWrite(resolvedPath2);
|
|
358612
358730
|
options.fileTracker.recordTextEdit(resolvedPath2);
|
|
@@ -358677,13 +358795,13 @@ Important:
|
|
|
358677
358795
|
const relativePath = toRelativePath(resolvedPath2, workspaceRoot);
|
|
358678
358796
|
return `Error creating file: Permission denied - ${relativePath} is outside allowed directories. Use a file path within the project workspace.`;
|
|
358679
358797
|
}
|
|
358680
|
-
if ((0,
|
|
358798
|
+
if ((0, import_fs13.existsSync)(resolvedPath2) && !overwrite) {
|
|
358681
358799
|
return `Error creating file: File already exists - ${file_path}. Use overwrite: true to replace it.`;
|
|
358682
358800
|
}
|
|
358683
|
-
const existed = (0,
|
|
358801
|
+
const existed = (0, import_fs13.existsSync)(resolvedPath2);
|
|
358684
358802
|
const dir = (0, import_path16.dirname)(resolvedPath2);
|
|
358685
|
-
await
|
|
358686
|
-
await
|
|
358803
|
+
await import_fs12.promises.mkdir(dir, { recursive: true });
|
|
358804
|
+
await import_fs12.promises.writeFile(resolvedPath2, content, "utf-8");
|
|
358687
358805
|
if (options.fileTracker) await options.fileTracker.trackFileAfterWrite(resolvedPath2);
|
|
358688
358806
|
const action = existed && overwrite ? "overwrote" : "created";
|
|
358689
358807
|
const bytes = Buffer.byteLength(content, "utf-8");
|
|
@@ -359325,10 +359443,10 @@ async function listFilesByLevel(options) {
|
|
|
359325
359443
|
maxFiles = 100,
|
|
359326
359444
|
respectGitignore = true
|
|
359327
359445
|
} = options;
|
|
359328
|
-
if (!
|
|
359446
|
+
if (!import_fs14.default.existsSync(directory)) {
|
|
359329
359447
|
throw new Error(`Directory does not exist: ${directory}`);
|
|
359330
359448
|
}
|
|
359331
|
-
const gitDirExists =
|
|
359449
|
+
const gitDirExists = import_fs14.default.existsSync(import_path17.default.join(directory, ".git"));
|
|
359332
359450
|
if (gitDirExists && respectGitignore) {
|
|
359333
359451
|
try {
|
|
359334
359452
|
return await listFilesUsingGit(directory, maxFiles);
|
|
@@ -359359,7 +359477,7 @@ async function listFilesByLevelManually(directory, maxFiles, respectGitignore) {
|
|
|
359359
359477
|
while (queue.length > 0 && result.length < maxFiles) {
|
|
359360
359478
|
const { dir, level } = queue.shift();
|
|
359361
359479
|
try {
|
|
359362
|
-
const entries =
|
|
359480
|
+
const entries = import_fs14.default.readdirSync(dir, { withFileTypes: true });
|
|
359363
359481
|
const files = entries.filter((entry) => {
|
|
359364
359482
|
const fullPath = import_path17.default.join(dir, entry.name);
|
|
359365
359483
|
return getEntryTypeSync(entry, fullPath).isFile;
|
|
@@ -359390,11 +359508,11 @@ async function listFilesByLevelManually(directory, maxFiles, respectGitignore) {
|
|
|
359390
359508
|
}
|
|
359391
359509
|
function loadGitignorePatterns(directory) {
|
|
359392
359510
|
const gitignorePath = import_path17.default.join(directory, ".gitignore");
|
|
359393
|
-
if (!
|
|
359511
|
+
if (!import_fs14.default.existsSync(gitignorePath)) {
|
|
359394
359512
|
return [];
|
|
359395
359513
|
}
|
|
359396
359514
|
try {
|
|
359397
|
-
const content =
|
|
359515
|
+
const content = import_fs14.default.readFileSync(gitignorePath, "utf8");
|
|
359398
359516
|
return content.split("\n").map((line) => line.trim()).filter((line) => line && !line.startsWith("#"));
|
|
359399
359517
|
} catch (error2) {
|
|
359400
359518
|
console.error(`Warning: Could not read .gitignore: ${error2.message}`);
|
|
@@ -359412,11 +359530,11 @@ function shouldIgnore(filePath, ignorePatterns) {
|
|
|
359412
359530
|
}
|
|
359413
359531
|
return false;
|
|
359414
359532
|
}
|
|
359415
|
-
var
|
|
359533
|
+
var import_fs14, import_path17, import_util12, import_child_process10, execAsync3;
|
|
359416
359534
|
var init_file_lister = __esm({
|
|
359417
359535
|
"src/utils/file-lister.js"() {
|
|
359418
359536
|
"use strict";
|
|
359419
|
-
|
|
359537
|
+
import_fs14 = __toESM(__nccwpck_require__(79896), 1);
|
|
359420
359538
|
import_path17 = __toESM(__nccwpck_require__(16928), 1);
|
|
359421
359539
|
import_util12 = __nccwpck_require__(39023);
|
|
359422
359540
|
import_child_process10 = __nccwpck_require__(35317);
|
|
@@ -359435,11 +359553,11 @@ function initializeSimpleTelemetryFromOptions(options) {
|
|
|
359435
359553
|
});
|
|
359436
359554
|
return telemetry;
|
|
359437
359555
|
}
|
|
359438
|
-
var
|
|
359556
|
+
var import_fs15, import_path18, SimpleTelemetry, SimpleAppTracer;
|
|
359439
359557
|
var init_simpleTelemetry = __esm({
|
|
359440
359558
|
"src/agent/simpleTelemetry.js"() {
|
|
359441
359559
|
"use strict";
|
|
359442
|
-
|
|
359560
|
+
import_fs15 = __nccwpck_require__(79896);
|
|
359443
359561
|
import_path18 = __nccwpck_require__(16928);
|
|
359444
359562
|
SimpleTelemetry = class {
|
|
359445
359563
|
constructor(options = {}) {
|
|
@@ -359455,10 +359573,10 @@ var init_simpleTelemetry = __esm({
|
|
|
359455
359573
|
initializeFileExporter() {
|
|
359456
359574
|
try {
|
|
359457
359575
|
const dir = (0, import_path18.dirname)(this.filePath);
|
|
359458
|
-
if (!(0,
|
|
359459
|
-
(0,
|
|
359576
|
+
if (!(0, import_fs15.existsSync)(dir)) {
|
|
359577
|
+
(0, import_fs15.mkdirSync)(dir, { recursive: true });
|
|
359460
359578
|
}
|
|
359461
|
-
this.stream = (0,
|
|
359579
|
+
this.stream = (0, import_fs15.createWriteStream)(this.filePath, { flags: "a" });
|
|
359462
359580
|
this.stream.on("error", (error2) => {
|
|
359463
359581
|
console.error(`[SimpleTelemetry] Stream error: ${error2.message}`);
|
|
359464
359582
|
});
|
|
@@ -395235,7 +395353,7 @@ module.exports = /*#__PURE__*/JSON.parse('{"100":"Continue","101":"Switching Pro
|
|
|
395235
395353
|
/***/ ((module) => {
|
|
395236
395354
|
|
|
395237
395355
|
"use strict";
|
|
395238
|
-
module.exports = /*#__PURE__*/JSON.parse('{"name":"@probelabs/visor","version":"0.1.
|
|
395356
|
+
module.exports = /*#__PURE__*/JSON.parse('{"name":"@probelabs/visor","version":"0.1.154","main":"dist/index.js","bin":{"visor":"./dist/index.js"},"exports":{".":{"require":"./dist/index.js","import":"./dist/index.js"},"./sdk":{"types":"./dist/sdk/sdk.d.ts","import":"./dist/sdk/sdk.mjs","require":"./dist/sdk/sdk.js"},"./cli":{"require":"./dist/index.js"}},"files":["dist/","defaults/","action.yml","README.md","LICENSE"],"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"scripts":{"build:cli":"ncc build src/index.ts -o dist && cp -r defaults dist/ && cp -r output dist/ && cp -r docs dist/ && cp -r examples dist/ && cp -r src/debug-visualizer/ui dist/debug-visualizer/ && node scripts/inject-version.js && echo \'#!/usr/bin/env node\' | cat - dist/index.js > temp && mv temp dist/index.js && chmod +x dist/index.js","build:sdk":"tsup src/sdk.ts --dts --sourcemap --format esm,cjs --out-dir dist/sdk","build":"./scripts/build-oss.sh","build:ee":"npm run build:cli && npm run build:sdk","test":"jest && npm run test:yaml","test:unit":"jest","prepublishOnly":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:ee":"jest --testPathPatterns=\'tests/ee\' --testPathIgnorePatterns=\'/node_modules/\' --no-coverage","test:manual:bash":"RUN_MANUAL_TESTS=true jest tests/manual/bash-config-manual.test.ts","lint":"eslint src tests --ext .ts","lint:fix":"eslint src tests --ext .ts --fix","format":"prettier --write src tests","format:check":"prettier --check src tests","clean":"","clean:traces":"node scripts/clean-traces.js","prebuild":"npm run clean && node scripts/generate-config-schema.js","pretest":"npm run clean:traces && node scripts/generate-config-schema.js && npm run build:cli","pretest:unit":"npm run clean:traces && node scripts/generate-config-schema.js && npm run build:cli","test:with-build":"npm run build:cli && jest","test:yaml":"node dist/index.js test --progress compact","test:yaml:parallel":"node dist/index.js test --progress compact --max-parallel 4","prepare":"husky","pre-commit":"lint-staged","deploy:site":"cd site && npx wrangler pages deploy . --project-name=visor-site --commit-dirty=true","deploy:worker":"npx wrangler deploy","deploy":"npm run deploy:site && npm run deploy:worker","publish:ee":"./scripts/publish-ee.sh","release":"./scripts/release.sh","release:patch":"./scripts/release.sh patch","release:minor":"./scripts/release.sh minor","release:major":"./scripts/release.sh major","release:prerelease":"./scripts/release.sh prerelease","docs:validate":"node scripts/validate-readme-links.js","workshop:setup":"npm install -D reveal-md@6.1.2","workshop:serve":"cd workshop && reveal-md slides.md -w","workshop:export":"reveal-md workshop/slides.md --static workshop/build","workshop:pdf":"reveal-md workshop/slides.md --print workshop/Visor-Workshop.pdf --print-size letter","workshop:pdf:ci":"reveal-md workshop/slides.md --print workshop/Visor-Workshop.pdf --print-size letter --puppeteer-launch-args=\\"--no-sandbox --disable-dev-shm-usage\\"","workshop:pdf:a4":"reveal-md workshop/slides.md --print workshop/Visor-Workshop-A4.pdf --print-size A4","workshop:build":"npm run workshop:export && npm run workshop:pdf","simulate:issue":"TS_NODE_TRANSPILE_ONLY=1 ts-node scripts/simulate-gh-run.ts --event issues --action opened --debug","simulate:comment":"TS_NODE_TRANSPILE_ONLY=1 ts-node scripts/simulate-gh-run.ts --event issue_comment --action created --debug"},"keywords":["code-review","ai","github-action","cli","pr-review","visor"],"author":"Probe Labs","license":"MIT","description":"AI workflow engine for code review, assistants, and automation — orchestrate checks, MCP tools, and AI providers with YAML-driven pipelines","repository":{"type":"git","url":"git+https://github.com/probelabs/visor.git"},"bugs":{"url":"https://github.com/probelabs/visor/issues"},"homepage":"https://github.com/probelabs/visor#readme","dependencies":{"@actions/core":"^1.11.1","@apidevtools/swagger-parser":"^12.1.0","@modelcontextprotocol/sdk":"^1.25.3","@nyariv/sandboxjs":"github:probelabs/SandboxJS#f1c13b8eee98734a8ea024061eada4aa9a9ff2e9","@octokit/action":"^8.0.2","@octokit/auth-app":"^8.1.0","@octokit/core":"^7.0.3","@octokit/rest":"^22.0.0","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^1.30.1","@opentelemetry/exporter-trace-otlp-grpc":"^0.203.0","@opentelemetry/exporter-trace-otlp-http":"^0.203.0","@opentelemetry/instrumentation":"^0.203.0","@opentelemetry/resources":"^1.30.1","@opentelemetry/sdk-metrics":"^1.30.1","@opentelemetry/sdk-node":"^0.203.0","@opentelemetry/sdk-trace-base":"^1.30.1","@opentelemetry/semantic-conventions":"^1.30.1","@probelabs/probe":"^0.6.0-rc271","@types/commander":"^2.12.0","@types/uuid":"^10.0.0","acorn":"^8.16.0","acorn-walk":"^8.3.5","ajv":"^8.17.1","ajv-formats":"^3.0.1","better-sqlite3":"^11.0.0","blessed":"^0.1.81","cli-table3":"^0.6.5","commander":"^14.0.0","deepmerge":"^4.3.1","dotenv":"^17.2.3","ignore":"^7.0.5","js-yaml":"^4.1.0","jsonpath-plus":"^10.4.0","liquidjs":"^10.21.1","minimatch":"^10.2.2","node-cron":"^3.0.3","open":"^9.1.0","simple-git":"^3.28.0","uuid":"^11.1.0","ws":"^8.18.3"},"optionalDependencies":{"@anthropic/claude-code-sdk":"npm:null@*","@open-policy-agent/opa-wasm":"^1.10.0","knex":"^3.1.0","mysql2":"^3.11.0","pg":"^8.13.0","tedious":"^19.0.0"},"devDependencies":{"@eslint/js":"^9.34.0","@kie/act-js":"^2.6.2","@kie/mock-github":"^2.0.1","@swc/core":"^1.13.2","@swc/jest":"^0.2.37","@types/better-sqlite3":"^7.6.0","@types/blessed":"^0.1.27","@types/jest":"^30.0.0","@types/js-yaml":"^4.0.9","@types/node":"^24.3.0","@types/node-cron":"^3.0.11","@types/ws":"^8.18.1","@typescript-eslint/eslint-plugin":"^8.42.0","@typescript-eslint/parser":"^8.42.0","@vercel/ncc":"^0.38.4","eslint":"^9.34.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","husky":"^9.1.7","jest":"^30.1.3","lint-staged":"^16.1.6","prettier":"^3.6.2","reveal-md":"^6.1.2","ts-json-schema-generator":"^1.5.1","ts-node":"^10.9.2","tsup":"^8.5.0","typescript":"^5.9.2","wrangler":"^3.0.0"},"peerDependenciesMeta":{"@anthropic/claude-code-sdk":{"optional":true}},"directories":{"test":"tests"},"lint-staged":{"src/**/*.{ts,js}":["eslint --fix","prettier --write"],"tests/**/*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]}}');
|
|
395239
395357
|
|
|
395240
395358
|
/***/ })
|
|
395241
395359
|
|