@probelabs/probe 0.6.0-rc275 → 0.6.0-rc277

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.
@@ -197,6 +197,8 @@ export class ProbeAgent {
197
197
  this.tracer = options.tracer || null;
198
198
  this.outline = !!options.outline;
199
199
  this.searchDelegate = options.searchDelegate !== undefined ? !!options.searchDelegate : true;
200
+ this.searchDelegateProvider = options.searchDelegateProvider || null;
201
+ this.searchDelegateModel = options.searchDelegateModel || null;
200
202
  this.maxResponseTokens = options.maxResponseTokens || (() => {
201
203
  const val = parseInt(process.env.MAX_RESPONSE_TOKENS || '0', 10);
202
204
  if (isNaN(val) || val < 0 || val > 200000) {
@@ -788,6 +790,8 @@ export class ProbeAgent {
788
790
  architectureFileName: this.architectureFileName,
789
791
  provider: this.clientApiProvider,
790
792
  model: this.clientApiModel,
793
+ searchDelegateProvider: this.searchDelegateProvider,
794
+ searchDelegateModel: this.searchDelegateModel,
791
795
  delegationManager: this.delegationManager, // Per-instance delegation limits
792
796
  outputBuffer: this._outputBuffer,
793
797
  concurrencyLimiter: this.concurrencyLimiter, // Global AI concurrency limiter
@@ -9268,8 +9268,8 @@ var init_vercel = __esm({
9268
9268
  parentSessionId: sessionId,
9269
9269
  path: options.allowedFolders?.[0] || options.cwd || ".",
9270
9270
  allowedFolders: options.allowedFolders,
9271
- provider: options.provider || null,
9272
- model: options.model || null,
9271
+ provider: options.searchDelegateProvider || process.env.PROBE_SEARCH_DELEGATE_PROVIDER || options.provider || null,
9272
+ model: options.searchDelegateModel || process.env.PROBE_SEARCH_DELEGATE_MODEL || options.model || null,
9273
9273
  tracer: options.tracer || null,
9274
9274
  enableBash: false,
9275
9275
  bashConfig: null,
@@ -31298,6 +31298,14 @@ var init_TaskManager = __esm({
31298
31298
  * @returns {Task[]} Created tasks
31299
31299
  */
31300
31300
  createTasks(tasksData) {
31301
+ const hasDependencies = tasksData.some((t) => t.dependencies && t.dependencies.length > 0);
31302
+ if (hasDependencies) {
31303
+ for (let i = 0; i < tasksData.length; i++) {
31304
+ if (!tasksData[i].id) {
31305
+ throw new Error(`Task at index ${i} is missing required "id" field. When using dependencies, every task in the batch must have an "id" so other tasks can reference it.`);
31306
+ }
31307
+ }
31308
+ }
31301
31309
  const idMap = /* @__PURE__ */ new Map();
31302
31310
  const batchAutoIds = /* @__PURE__ */ new Set();
31303
31311
  let nextCounter = this.taskCounter;
@@ -31316,7 +31324,8 @@ var init_TaskManager = __esm({
31316
31324
  resolved.dependencies = resolved.dependencies.map((depId) => {
31317
31325
  if (idMap.has(depId)) return idMap.get(depId);
31318
31326
  if (this.tasks.has(depId) || batchAutoIds.has(depId)) return depId;
31319
- throw new Error(`Dependency "${depId}" does not exist. Available tasks: ${this._getAvailableTaskIds()}${idMap.size > 0 ? `, batch IDs: ${Array.from(idMap.keys()).join(", ")}` : ""}`);
31327
+ const batchIds = idMap.size > 0 ? Array.from(idMap.keys()).join(", ") : "(none provided)";
31328
+ throw new Error(`Dependency "${depId}" does not exist. Each task in the batch must have an "id" field, and dependencies must reference those IDs. Current batch IDs: ${batchIds}. Existing tasks: ${this._getAvailableTaskIds()}`);
31320
31329
  });
31321
31330
  }
31322
31331
  if (resolved.after) {
@@ -31929,12 +31938,12 @@ var init_taskTool = __esm({
31929
31938
  "use strict";
31930
31939
  init_zod();
31931
31940
  taskItemSchema = external_exports.object({
31932
- id: external_exports.string().optional(),
31941
+ id: external_exports.string().describe('Unique task identifier. Use short descriptive slugs (e.g. "auth", "setup-db"). Dependencies reference these IDs.'),
31933
31942
  title: external_exports.string().optional(),
31934
31943
  description: external_exports.string().optional(),
31935
31944
  status: external_exports.enum(["pending", "in_progress", "completed", "cancelled"]).optional(),
31936
31945
  priority: external_exports.enum(["low", "medium", "high", "critical"]).optional(),
31937
- dependencies: external_exports.array(external_exports.string()).optional(),
31946
+ dependencies: external_exports.array(external_exports.string()).optional().describe("Array of task IDs (from this batch or previously created) that must complete before this task can start."),
31938
31947
  after: external_exports.string().optional()
31939
31948
  });
31940
31949
  taskSchema = external_exports.object({
@@ -81866,6 +81875,8 @@ var init_ProbeAgent = __esm({
81866
81875
  this.tracer = options.tracer || null;
81867
81876
  this.outline = !!options.outline;
81868
81877
  this.searchDelegate = options.searchDelegate !== void 0 ? !!options.searchDelegate : true;
81878
+ this.searchDelegateProvider = options.searchDelegateProvider || null;
81879
+ this.searchDelegateModel = options.searchDelegateModel || null;
81869
81880
  this.maxResponseTokens = options.maxResponseTokens || (() => {
81870
81881
  const val = parseInt(process.env.MAX_RESPONSE_TOKENS || "0", 10);
81871
81882
  if (isNaN(val) || val < 0 || val > 2e5) {
@@ -82302,6 +82313,8 @@ var init_ProbeAgent = __esm({
82302
82313
  architectureFileName: this.architectureFileName,
82303
82314
  provider: this.clientApiProvider,
82304
82315
  model: this.clientApiModel,
82316
+ searchDelegateProvider: this.searchDelegateProvider,
82317
+ searchDelegateModel: this.searchDelegateModel,
82305
82318
  delegationManager: this.delegationManager,
82306
82319
  // Per-instance delegation limits
82307
82320
  outputBuffer: this._outputBuffer,
@@ -86149,6 +86162,10 @@ function parseArgs() {
86149
86162
  config.provider = args[++i];
86150
86163
  } else if (arg === "--model" && i + 1 < args.length) {
86151
86164
  config.model = args[++i];
86165
+ } else if (arg === "--search-delegate-provider" && i + 1 < args.length) {
86166
+ config.searchDelegateProvider = args[++i];
86167
+ } else if (arg === "--search-delegate-model" && i + 1 < args.length) {
86168
+ config.searchDelegateModel = args[++i];
86152
86169
  } else if (arg === "--max-iterations" && i + 1 < args.length) {
86153
86170
  config.maxIterations = parseInt(args[++i], 10);
86154
86171
  } else if (arg === "--max-response-tokens" && i + 1 < args.length) {
@@ -86727,7 +86744,9 @@ async function main() {
86727
86744
  enableBash: config.enableBash,
86728
86745
  bashConfig,
86729
86746
  enableTasks: config.enableTasks,
86730
- thinkingEffort: config.thinkingEffort
86747
+ thinkingEffort: config.thinkingEffort,
86748
+ searchDelegateProvider: config.searchDelegateProvider,
86749
+ searchDelegateModel: config.searchDelegateModel
86731
86750
  };
86732
86751
  const agent = new ProbeAgent(agentConfig2);
86733
86752
  await agent.initialize();
@@ -138,6 +138,16 @@ export class TaskManager {
138
138
  * @returns {Task[]} Created tasks
139
139
  */
140
140
  createTasks(tasksData) {
141
+ // Validate that all batch items have an id when dependencies are used
142
+ const hasDependencies = tasksData.some(t => t.dependencies && t.dependencies.length > 0);
143
+ if (hasDependencies) {
144
+ for (let i = 0; i < tasksData.length; i++) {
145
+ if (!tasksData[i].id) {
146
+ throw new Error(`Task at index ${i} is missing required "id" field. When using dependencies, every task in the batch must have an "id" so other tasks can reference it.`);
147
+ }
148
+ }
149
+ }
150
+
141
151
  // Build a mapping of user-provided IDs to future auto-generated IDs
142
152
  const idMap = new Map();
143
153
  const batchAutoIds = new Set();
@@ -161,7 +171,8 @@ export class TaskManager {
161
171
  if (idMap.has(depId)) return idMap.get(depId);
162
172
  // Check if it's already an existing task ID or a batch auto-generated ID
163
173
  if (this.tasks.has(depId) || batchAutoIds.has(depId)) return depId;
164
- throw new Error(`Dependency "${depId}" does not exist. Available tasks: ${this._getAvailableTaskIds()}${idMap.size > 0 ? `, batch IDs: ${Array.from(idMap.keys()).join(', ')}` : ''}`);
174
+ const batchIds = idMap.size > 0 ? Array.from(idMap.keys()).join(', ') : '(none provided)';
175
+ throw new Error(`Dependency "${depId}" does not exist. Each task in the batch must have an "id" field, and dependencies must reference those IDs. Current batch IDs: ${batchIds}. Existing tasks: ${this._getAvailableTaskIds()}`);
165
176
  });
166
177
  }
167
178
 
@@ -9,12 +9,12 @@ import { z } from 'zod';
9
9
  * Schema for a single task item in batch operations
10
10
  */
11
11
  export const taskItemSchema = z.object({
12
- id: z.string().optional(),
12
+ id: z.string().describe('Unique task identifier. Use short descriptive slugs (e.g. "auth", "setup-db"). Dependencies reference these IDs.'),
13
13
  title: z.string().optional(),
14
14
  description: z.string().optional(),
15
15
  status: z.enum(['pending', 'in_progress', 'completed', 'cancelled']).optional(),
16
16
  priority: z.enum(['low', 'medium', 'high', 'critical']).optional(),
17
- dependencies: z.array(z.string()).optional(),
17
+ dependencies: z.array(z.string()).optional().describe('Array of task IDs (from this batch or previously created) that must complete before this task can start.'),
18
18
  after: z.string().optional()
19
19
  });
20
20
 
@@ -268,8 +268,8 @@ export const searchTool = (options = {}) => {
268
268
  parentSessionId: sessionId,
269
269
  path: options.allowedFolders?.[0] || options.cwd || '.',
270
270
  allowedFolders: options.allowedFolders,
271
- provider: options.provider || null,
272
- model: options.model || null,
271
+ provider: options.searchDelegateProvider || process.env.PROBE_SEARCH_DELEGATE_PROVIDER || options.provider || null,
272
+ model: options.searchDelegateModel || process.env.PROBE_SEARCH_DELEGATE_MODEL || options.model || null,
273
273
  tracer: options.tracer || null,
274
274
  enableBash: false,
275
275
  bashConfig: null,
@@ -17538,7 +17538,7 @@ var require_package2 = __commonJS({
17538
17538
  module2.exports = {
17539
17539
  name: "@aws-sdk/client-bedrock-runtime",
17540
17540
  description: "AWS SDK for JavaScript Bedrock Runtime Client for Node.js, Browser and React Native",
17541
- version: "3.1002.0",
17541
+ version: "3.1003.0",
17542
17542
  scripts: {
17543
17543
  build: "concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs",
17544
17544
  "build:cjs": "node ../../scripts/compilation/inline client-bedrock-runtime",
@@ -17550,6 +17550,10 @@ var require_package2 = __commonJS({
17550
17550
  "extract:docs": "api-extractor run --local",
17551
17551
  "generate:client": "node ../../scripts/generate-clients/single-service --solo bedrock-runtime",
17552
17552
  test: "yarn g:vitest run --passWithNoTests",
17553
+ "test:browser": "yarn g:vitest run -c vitest.config.browser.e2e.mts",
17554
+ "test:browser:watch": "yarn g:vitest watch -c vitest.config.browser.e2e.mts",
17555
+ "test:e2e": "yarn g:vitest run -c vitest.config.e2e.mts",
17556
+ "test:e2e:watch": "yarn g:vitest watch -c vitest.config.e2e.mts",
17553
17557
  "test:index": "tsc --noEmit ./test/index-types.ts && node ./test/index-objects.spec.mjs",
17554
17558
  "test:integration": "yarn g:vitest run --passWithNoTests -c vitest.config.integ.mts",
17555
17559
  "test:integration:watch": "yarn g:vitest run --passWithNoTests -c vitest.config.integ.mts",
@@ -17562,54 +17566,54 @@ var require_package2 = __commonJS({
17562
17566
  dependencies: {
17563
17567
  "@aws-crypto/sha256-browser": "5.2.0",
17564
17568
  "@aws-crypto/sha256-js": "5.2.0",
17565
- "@aws-sdk/core": "^3.973.17",
17566
- "@aws-sdk/credential-provider-node": "^3.972.16",
17567
- "@aws-sdk/eventstream-handler-node": "^3.972.9",
17568
- "@aws-sdk/middleware-eventstream": "^3.972.6",
17569
- "@aws-sdk/middleware-host-header": "^3.972.6",
17570
- "@aws-sdk/middleware-logger": "^3.972.6",
17571
- "@aws-sdk/middleware-recursion-detection": "^3.972.6",
17572
- "@aws-sdk/middleware-user-agent": "^3.972.17",
17573
- "@aws-sdk/middleware-websocket": "^3.972.11",
17574
- "@aws-sdk/region-config-resolver": "^3.972.6",
17575
- "@aws-sdk/token-providers": "3.1002.0",
17576
- "@aws-sdk/types": "^3.973.4",
17577
- "@aws-sdk/util-endpoints": "^3.996.3",
17578
- "@aws-sdk/util-user-agent-browser": "^3.972.6",
17579
- "@aws-sdk/util-user-agent-node": "^3.973.2",
17580
- "@smithy/config-resolver": "^4.4.9",
17581
- "@smithy/core": "^3.23.7",
17582
- "@smithy/eventstream-serde-browser": "^4.2.10",
17583
- "@smithy/eventstream-serde-config-resolver": "^4.3.10",
17584
- "@smithy/eventstream-serde-node": "^4.2.10",
17585
- "@smithy/fetch-http-handler": "^5.3.12",
17586
- "@smithy/hash-node": "^4.2.10",
17587
- "@smithy/invalid-dependency": "^4.2.10",
17588
- "@smithy/middleware-content-length": "^4.2.10",
17589
- "@smithy/middleware-endpoint": "^4.4.21",
17590
- "@smithy/middleware-retry": "^4.4.38",
17591
- "@smithy/middleware-serde": "^4.2.11",
17592
- "@smithy/middleware-stack": "^4.2.10",
17593
- "@smithy/node-config-provider": "^4.3.10",
17594
- "@smithy/node-http-handler": "^4.4.13",
17595
- "@smithy/protocol-http": "^5.3.10",
17596
- "@smithy/smithy-client": "^4.12.1",
17569
+ "@aws-sdk/core": "^3.973.18",
17570
+ "@aws-sdk/credential-provider-node": "^3.972.17",
17571
+ "@aws-sdk/eventstream-handler-node": "^3.972.10",
17572
+ "@aws-sdk/middleware-eventstream": "^3.972.7",
17573
+ "@aws-sdk/middleware-host-header": "^3.972.7",
17574
+ "@aws-sdk/middleware-logger": "^3.972.7",
17575
+ "@aws-sdk/middleware-recursion-detection": "^3.972.7",
17576
+ "@aws-sdk/middleware-user-agent": "^3.972.18",
17577
+ "@aws-sdk/middleware-websocket": "^3.972.12",
17578
+ "@aws-sdk/region-config-resolver": "^3.972.7",
17579
+ "@aws-sdk/token-providers": "3.1003.0",
17580
+ "@aws-sdk/types": "^3.973.5",
17581
+ "@aws-sdk/util-endpoints": "^3.996.4",
17582
+ "@aws-sdk/util-user-agent-browser": "^3.972.7",
17583
+ "@aws-sdk/util-user-agent-node": "^3.973.3",
17584
+ "@smithy/config-resolver": "^4.4.10",
17585
+ "@smithy/core": "^3.23.8",
17586
+ "@smithy/eventstream-serde-browser": "^4.2.11",
17587
+ "@smithy/eventstream-serde-config-resolver": "^4.3.11",
17588
+ "@smithy/eventstream-serde-node": "^4.2.11",
17589
+ "@smithy/fetch-http-handler": "^5.3.13",
17590
+ "@smithy/hash-node": "^4.2.11",
17591
+ "@smithy/invalid-dependency": "^4.2.11",
17592
+ "@smithy/middleware-content-length": "^4.2.11",
17593
+ "@smithy/middleware-endpoint": "^4.4.22",
17594
+ "@smithy/middleware-retry": "^4.4.39",
17595
+ "@smithy/middleware-serde": "^4.2.12",
17596
+ "@smithy/middleware-stack": "^4.2.11",
17597
+ "@smithy/node-config-provider": "^4.3.11",
17598
+ "@smithy/node-http-handler": "^4.4.14",
17599
+ "@smithy/protocol-http": "^5.3.11",
17600
+ "@smithy/smithy-client": "^4.12.2",
17597
17601
  "@smithy/types": "^4.13.0",
17598
- "@smithy/url-parser": "^4.2.10",
17599
- "@smithy/util-base64": "^4.3.1",
17600
- "@smithy/util-body-length-browser": "^4.2.1",
17601
- "@smithy/util-body-length-node": "^4.2.2",
17602
- "@smithy/util-defaults-mode-browser": "^4.3.37",
17603
- "@smithy/util-defaults-mode-node": "^4.2.40",
17604
- "@smithy/util-endpoints": "^3.3.1",
17605
- "@smithy/util-middleware": "^4.2.10",
17606
- "@smithy/util-retry": "^4.2.10",
17607
- "@smithy/util-stream": "^4.5.16",
17608
- "@smithy/util-utf8": "^4.2.1",
17602
+ "@smithy/url-parser": "^4.2.11",
17603
+ "@smithy/util-base64": "^4.3.2",
17604
+ "@smithy/util-body-length-browser": "^4.2.2",
17605
+ "@smithy/util-body-length-node": "^4.2.3",
17606
+ "@smithy/util-defaults-mode-browser": "^4.3.38",
17607
+ "@smithy/util-defaults-mode-node": "^4.2.41",
17608
+ "@smithy/util-endpoints": "^3.3.2",
17609
+ "@smithy/util-middleware": "^4.2.11",
17610
+ "@smithy/util-retry": "^4.2.11",
17611
+ "@smithy/util-stream": "^4.5.17",
17612
+ "@smithy/util-utf8": "^4.2.2",
17609
17613
  tslib: "^2.6.2"
17610
17614
  },
17611
17615
  devDependencies: {
17612
- "@smithy/snapshot-testing": "^1.0.8",
17616
+ "@smithy/snapshot-testing": "^1.0.9",
17613
17617
  "@tsconfig/node20": "20.1.8",
17614
17618
  "@types/node": "^20.14.8",
17615
17619
  concurrently: "7.0.0",
@@ -17622,7 +17626,7 @@ var require_package2 = __commonJS({
17622
17626
  node: ">=20.0.0"
17623
17627
  },
17624
17628
  typesVersions: {
17625
- "<4.0": {
17629
+ "<4.5": {
17626
17630
  "dist-types/*": [
17627
17631
  "dist-types/ts3.4/*"
17628
17632
  ]
@@ -18325,7 +18329,7 @@ var init_package = __esm({
18325
18329
  "node_modules/@aws-sdk/nested-clients/package.json"() {
18326
18330
  package_default = {
18327
18331
  name: "@aws-sdk/nested-clients",
18328
- version: "3.996.5",
18332
+ version: "3.996.6",
18329
18333
  description: "Nested clients for AWS SDK packages.",
18330
18334
  main: "./dist-cjs/index.js",
18331
18335
  module: "./dist-es/index.js",
@@ -18354,41 +18358,41 @@ var init_package = __esm({
18354
18358
  dependencies: {
18355
18359
  "@aws-crypto/sha256-browser": "5.2.0",
18356
18360
  "@aws-crypto/sha256-js": "5.2.0",
18357
- "@aws-sdk/core": "^3.973.17",
18358
- "@aws-sdk/middleware-host-header": "^3.972.6",
18359
- "@aws-sdk/middleware-logger": "^3.972.6",
18360
- "@aws-sdk/middleware-recursion-detection": "^3.972.6",
18361
- "@aws-sdk/middleware-user-agent": "^3.972.17",
18362
- "@aws-sdk/region-config-resolver": "^3.972.6",
18363
- "@aws-sdk/types": "^3.973.4",
18364
- "@aws-sdk/util-endpoints": "^3.996.3",
18365
- "@aws-sdk/util-user-agent-browser": "^3.972.6",
18366
- "@aws-sdk/util-user-agent-node": "^3.973.2",
18367
- "@smithy/config-resolver": "^4.4.9",
18368
- "@smithy/core": "^3.23.7",
18369
- "@smithy/fetch-http-handler": "^5.3.12",
18370
- "@smithy/hash-node": "^4.2.10",
18371
- "@smithy/invalid-dependency": "^4.2.10",
18372
- "@smithy/middleware-content-length": "^4.2.10",
18373
- "@smithy/middleware-endpoint": "^4.4.21",
18374
- "@smithy/middleware-retry": "^4.4.38",
18375
- "@smithy/middleware-serde": "^4.2.11",
18376
- "@smithy/middleware-stack": "^4.2.10",
18377
- "@smithy/node-config-provider": "^4.3.10",
18378
- "@smithy/node-http-handler": "^4.4.13",
18379
- "@smithy/protocol-http": "^5.3.10",
18380
- "@smithy/smithy-client": "^4.12.1",
18361
+ "@aws-sdk/core": "^3.973.18",
18362
+ "@aws-sdk/middleware-host-header": "^3.972.7",
18363
+ "@aws-sdk/middleware-logger": "^3.972.7",
18364
+ "@aws-sdk/middleware-recursion-detection": "^3.972.7",
18365
+ "@aws-sdk/middleware-user-agent": "^3.972.18",
18366
+ "@aws-sdk/region-config-resolver": "^3.972.7",
18367
+ "@aws-sdk/types": "^3.973.5",
18368
+ "@aws-sdk/util-endpoints": "^3.996.4",
18369
+ "@aws-sdk/util-user-agent-browser": "^3.972.7",
18370
+ "@aws-sdk/util-user-agent-node": "^3.973.3",
18371
+ "@smithy/config-resolver": "^4.4.10",
18372
+ "@smithy/core": "^3.23.8",
18373
+ "@smithy/fetch-http-handler": "^5.3.13",
18374
+ "@smithy/hash-node": "^4.2.11",
18375
+ "@smithy/invalid-dependency": "^4.2.11",
18376
+ "@smithy/middleware-content-length": "^4.2.11",
18377
+ "@smithy/middleware-endpoint": "^4.4.22",
18378
+ "@smithy/middleware-retry": "^4.4.39",
18379
+ "@smithy/middleware-serde": "^4.2.12",
18380
+ "@smithy/middleware-stack": "^4.2.11",
18381
+ "@smithy/node-config-provider": "^4.3.11",
18382
+ "@smithy/node-http-handler": "^4.4.14",
18383
+ "@smithy/protocol-http": "^5.3.11",
18384
+ "@smithy/smithy-client": "^4.12.2",
18381
18385
  "@smithy/types": "^4.13.0",
18382
- "@smithy/url-parser": "^4.2.10",
18383
- "@smithy/util-base64": "^4.3.1",
18384
- "@smithy/util-body-length-browser": "^4.2.1",
18385
- "@smithy/util-body-length-node": "^4.2.2",
18386
- "@smithy/util-defaults-mode-browser": "^4.3.37",
18387
- "@smithy/util-defaults-mode-node": "^4.2.40",
18388
- "@smithy/util-endpoints": "^3.3.1",
18389
- "@smithy/util-middleware": "^4.2.10",
18390
- "@smithy/util-retry": "^4.2.10",
18391
- "@smithy/util-utf8": "^4.2.1",
18386
+ "@smithy/url-parser": "^4.2.11",
18387
+ "@smithy/util-base64": "^4.3.2",
18388
+ "@smithy/util-body-length-browser": "^4.2.2",
18389
+ "@smithy/util-body-length-node": "^4.2.3",
18390
+ "@smithy/util-defaults-mode-browser": "^4.3.38",
18391
+ "@smithy/util-defaults-mode-node": "^4.2.41",
18392
+ "@smithy/util-endpoints": "^3.3.2",
18393
+ "@smithy/util-middleware": "^4.2.11",
18394
+ "@smithy/util-retry": "^4.2.11",
18395
+ "@smithy/util-utf8": "^4.2.2",
18392
18396
  tslib: "^2.6.2"
18393
18397
  },
18394
18398
  devDependencies: {
@@ -18398,7 +18402,7 @@ var init_package = __esm({
18398
18402
  typescript: "~5.8.3"
18399
18403
  },
18400
18404
  typesVersions: {
18401
- "<4.0": {
18405
+ "<4.5": {
18402
18406
  "dist-types/*": [
18403
18407
  "dist-types/ts3.4/*"
18404
18408
  ]
@@ -18418,8 +18422,10 @@ var init_package = __esm({
18418
18422
  "dist-*/**"
18419
18423
  ],
18420
18424
  browser: {
18425
+ "./dist-es/submodules/cognito-identity/runtimeConfig": "./dist-es/submodules/cognito-identity/runtimeConfig.browser",
18421
18426
  "./dist-es/submodules/signin/runtimeConfig": "./dist-es/submodules/signin/runtimeConfig.browser",
18422
18427
  "./dist-es/submodules/sso-oidc/runtimeConfig": "./dist-es/submodules/sso-oidc/runtimeConfig.browser",
18428
+ "./dist-es/submodules/sso/runtimeConfig": "./dist-es/submodules/sso/runtimeConfig.browser",
18423
18429
  "./dist-es/submodules/sts/runtimeConfig": "./dist-es/submodules/sts/runtimeConfig.browser"
18424
18430
  },
18425
18431
  "react-native": {},
@@ -36642,8 +36648,8 @@ var init_vercel = __esm({
36642
36648
  parentSessionId: sessionId,
36643
36649
  path: options.allowedFolders?.[0] || options.cwd || ".",
36644
36650
  allowedFolders: options.allowedFolders,
36645
- provider: options.provider || null,
36646
- model: options.model || null,
36651
+ provider: options.searchDelegateProvider || process.env.PROBE_SEARCH_DELEGATE_PROVIDER || options.provider || null,
36652
+ model: options.searchDelegateModel || process.env.PROBE_SEARCH_DELEGATE_MODEL || options.model || null,
36647
36653
  tracer: options.tracer || null,
36648
36654
  enableBash: false,
36649
36655
  bashConfig: null,
@@ -58238,6 +58244,14 @@ var init_TaskManager = __esm({
58238
58244
  * @returns {Task[]} Created tasks
58239
58245
  */
58240
58246
  createTasks(tasksData) {
58247
+ const hasDependencies = tasksData.some((t5) => t5.dependencies && t5.dependencies.length > 0);
58248
+ if (hasDependencies) {
58249
+ for (let i5 = 0; i5 < tasksData.length; i5++) {
58250
+ if (!tasksData[i5].id) {
58251
+ throw new Error(`Task at index ${i5} is missing required "id" field. When using dependencies, every task in the batch must have an "id" so other tasks can reference it.`);
58252
+ }
58253
+ }
58254
+ }
58241
58255
  const idMap = /* @__PURE__ */ new Map();
58242
58256
  const batchAutoIds = /* @__PURE__ */ new Set();
58243
58257
  let nextCounter = this.taskCounter;
@@ -58256,7 +58270,8 @@ var init_TaskManager = __esm({
58256
58270
  resolved.dependencies = resolved.dependencies.map((depId) => {
58257
58271
  if (idMap.has(depId)) return idMap.get(depId);
58258
58272
  if (this.tasks.has(depId) || batchAutoIds.has(depId)) return depId;
58259
- throw new Error(`Dependency "${depId}" does not exist. Available tasks: ${this._getAvailableTaskIds()}${idMap.size > 0 ? `, batch IDs: ${Array.from(idMap.keys()).join(", ")}` : ""}`);
58273
+ const batchIds = idMap.size > 0 ? Array.from(idMap.keys()).join(", ") : "(none provided)";
58274
+ throw new Error(`Dependency "${depId}" does not exist. Each task in the batch must have an "id" field, and dependencies must reference those IDs. Current batch IDs: ${batchIds}. Existing tasks: ${this._getAvailableTaskIds()}`);
58260
58275
  });
58261
58276
  }
58262
58277
  if (resolved.after) {
@@ -58869,12 +58884,12 @@ var init_taskTool = __esm({
58869
58884
  "use strict";
58870
58885
  init_zod();
58871
58886
  taskItemSchema = external_exports.object({
58872
- id: external_exports.string().optional(),
58887
+ id: external_exports.string().describe('Unique task identifier. Use short descriptive slugs (e.g. "auth", "setup-db"). Dependencies reference these IDs.'),
58873
58888
  title: external_exports.string().optional(),
58874
58889
  description: external_exports.string().optional(),
58875
58890
  status: external_exports.enum(["pending", "in_progress", "completed", "cancelled"]).optional(),
58876
58891
  priority: external_exports.enum(["low", "medium", "high", "critical"]).optional(),
58877
- dependencies: external_exports.array(external_exports.string()).optional(),
58892
+ dependencies: external_exports.array(external_exports.string()).optional().describe("Array of task IDs (from this batch or previously created) that must complete before this task can start."),
58878
58893
  after: external_exports.string().optional()
58879
58894
  });
58880
58895
  taskSchema = external_exports.object({
@@ -108806,6 +108821,8 @@ var init_ProbeAgent = __esm({
108806
108821
  this.tracer = options.tracer || null;
108807
108822
  this.outline = !!options.outline;
108808
108823
  this.searchDelegate = options.searchDelegate !== void 0 ? !!options.searchDelegate : true;
108824
+ this.searchDelegateProvider = options.searchDelegateProvider || null;
108825
+ this.searchDelegateModel = options.searchDelegateModel || null;
108809
108826
  this.maxResponseTokens = options.maxResponseTokens || (() => {
108810
108827
  const val = parseInt(process.env.MAX_RESPONSE_TOKENS || "0", 10);
108811
108828
  if (isNaN(val) || val < 0 || val > 2e5) {
@@ -109242,6 +109259,8 @@ var init_ProbeAgent = __esm({
109242
109259
  architectureFileName: this.architectureFileName,
109243
109260
  provider: this.clientApiProvider,
109244
109261
  model: this.clientApiModel,
109262
+ searchDelegateProvider: this.searchDelegateProvider,
109263
+ searchDelegateModel: this.searchDelegateModel,
109245
109264
  delegationManager: this.delegationManager,
109246
109265
  // Per-instance delegation limits
109247
109266
  outputBuffer: this._outputBuffer,
package/cjs/index.cjs CHANGED
@@ -19395,7 +19395,7 @@ var require_package2 = __commonJS({
19395
19395
  module2.exports = {
19396
19396
  name: "@aws-sdk/client-bedrock-runtime",
19397
19397
  description: "AWS SDK for JavaScript Bedrock Runtime Client for Node.js, Browser and React Native",
19398
- version: "3.1002.0",
19398
+ version: "3.1003.0",
19399
19399
  scripts: {
19400
19400
  build: "concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs",
19401
19401
  "build:cjs": "node ../../scripts/compilation/inline client-bedrock-runtime",
@@ -19407,6 +19407,10 @@ var require_package2 = __commonJS({
19407
19407
  "extract:docs": "api-extractor run --local",
19408
19408
  "generate:client": "node ../../scripts/generate-clients/single-service --solo bedrock-runtime",
19409
19409
  test: "yarn g:vitest run --passWithNoTests",
19410
+ "test:browser": "yarn g:vitest run -c vitest.config.browser.e2e.mts",
19411
+ "test:browser:watch": "yarn g:vitest watch -c vitest.config.browser.e2e.mts",
19412
+ "test:e2e": "yarn g:vitest run -c vitest.config.e2e.mts",
19413
+ "test:e2e:watch": "yarn g:vitest watch -c vitest.config.e2e.mts",
19410
19414
  "test:index": "tsc --noEmit ./test/index-types.ts && node ./test/index-objects.spec.mjs",
19411
19415
  "test:integration": "yarn g:vitest run --passWithNoTests -c vitest.config.integ.mts",
19412
19416
  "test:integration:watch": "yarn g:vitest run --passWithNoTests -c vitest.config.integ.mts",
@@ -19419,54 +19423,54 @@ var require_package2 = __commonJS({
19419
19423
  dependencies: {
19420
19424
  "@aws-crypto/sha256-browser": "5.2.0",
19421
19425
  "@aws-crypto/sha256-js": "5.2.0",
19422
- "@aws-sdk/core": "^3.973.17",
19423
- "@aws-sdk/credential-provider-node": "^3.972.16",
19424
- "@aws-sdk/eventstream-handler-node": "^3.972.9",
19425
- "@aws-sdk/middleware-eventstream": "^3.972.6",
19426
- "@aws-sdk/middleware-host-header": "^3.972.6",
19427
- "@aws-sdk/middleware-logger": "^3.972.6",
19428
- "@aws-sdk/middleware-recursion-detection": "^3.972.6",
19429
- "@aws-sdk/middleware-user-agent": "^3.972.17",
19430
- "@aws-sdk/middleware-websocket": "^3.972.11",
19431
- "@aws-sdk/region-config-resolver": "^3.972.6",
19432
- "@aws-sdk/token-providers": "3.1002.0",
19433
- "@aws-sdk/types": "^3.973.4",
19434
- "@aws-sdk/util-endpoints": "^3.996.3",
19435
- "@aws-sdk/util-user-agent-browser": "^3.972.6",
19436
- "@aws-sdk/util-user-agent-node": "^3.973.2",
19437
- "@smithy/config-resolver": "^4.4.9",
19438
- "@smithy/core": "^3.23.7",
19439
- "@smithy/eventstream-serde-browser": "^4.2.10",
19440
- "@smithy/eventstream-serde-config-resolver": "^4.3.10",
19441
- "@smithy/eventstream-serde-node": "^4.2.10",
19442
- "@smithy/fetch-http-handler": "^5.3.12",
19443
- "@smithy/hash-node": "^4.2.10",
19444
- "@smithy/invalid-dependency": "^4.2.10",
19445
- "@smithy/middleware-content-length": "^4.2.10",
19446
- "@smithy/middleware-endpoint": "^4.4.21",
19447
- "@smithy/middleware-retry": "^4.4.38",
19448
- "@smithy/middleware-serde": "^4.2.11",
19449
- "@smithy/middleware-stack": "^4.2.10",
19450
- "@smithy/node-config-provider": "^4.3.10",
19451
- "@smithy/node-http-handler": "^4.4.13",
19452
- "@smithy/protocol-http": "^5.3.10",
19453
- "@smithy/smithy-client": "^4.12.1",
19426
+ "@aws-sdk/core": "^3.973.18",
19427
+ "@aws-sdk/credential-provider-node": "^3.972.17",
19428
+ "@aws-sdk/eventstream-handler-node": "^3.972.10",
19429
+ "@aws-sdk/middleware-eventstream": "^3.972.7",
19430
+ "@aws-sdk/middleware-host-header": "^3.972.7",
19431
+ "@aws-sdk/middleware-logger": "^3.972.7",
19432
+ "@aws-sdk/middleware-recursion-detection": "^3.972.7",
19433
+ "@aws-sdk/middleware-user-agent": "^3.972.18",
19434
+ "@aws-sdk/middleware-websocket": "^3.972.12",
19435
+ "@aws-sdk/region-config-resolver": "^3.972.7",
19436
+ "@aws-sdk/token-providers": "3.1003.0",
19437
+ "@aws-sdk/types": "^3.973.5",
19438
+ "@aws-sdk/util-endpoints": "^3.996.4",
19439
+ "@aws-sdk/util-user-agent-browser": "^3.972.7",
19440
+ "@aws-sdk/util-user-agent-node": "^3.973.3",
19441
+ "@smithy/config-resolver": "^4.4.10",
19442
+ "@smithy/core": "^3.23.8",
19443
+ "@smithy/eventstream-serde-browser": "^4.2.11",
19444
+ "@smithy/eventstream-serde-config-resolver": "^4.3.11",
19445
+ "@smithy/eventstream-serde-node": "^4.2.11",
19446
+ "@smithy/fetch-http-handler": "^5.3.13",
19447
+ "@smithy/hash-node": "^4.2.11",
19448
+ "@smithy/invalid-dependency": "^4.2.11",
19449
+ "@smithy/middleware-content-length": "^4.2.11",
19450
+ "@smithy/middleware-endpoint": "^4.4.22",
19451
+ "@smithy/middleware-retry": "^4.4.39",
19452
+ "@smithy/middleware-serde": "^4.2.12",
19453
+ "@smithy/middleware-stack": "^4.2.11",
19454
+ "@smithy/node-config-provider": "^4.3.11",
19455
+ "@smithy/node-http-handler": "^4.4.14",
19456
+ "@smithy/protocol-http": "^5.3.11",
19457
+ "@smithy/smithy-client": "^4.12.2",
19454
19458
  "@smithy/types": "^4.13.0",
19455
- "@smithy/url-parser": "^4.2.10",
19456
- "@smithy/util-base64": "^4.3.1",
19457
- "@smithy/util-body-length-browser": "^4.2.1",
19458
- "@smithy/util-body-length-node": "^4.2.2",
19459
- "@smithy/util-defaults-mode-browser": "^4.3.37",
19460
- "@smithy/util-defaults-mode-node": "^4.2.40",
19461
- "@smithy/util-endpoints": "^3.3.1",
19462
- "@smithy/util-middleware": "^4.2.10",
19463
- "@smithy/util-retry": "^4.2.10",
19464
- "@smithy/util-stream": "^4.5.16",
19465
- "@smithy/util-utf8": "^4.2.1",
19459
+ "@smithy/url-parser": "^4.2.11",
19460
+ "@smithy/util-base64": "^4.3.2",
19461
+ "@smithy/util-body-length-browser": "^4.2.2",
19462
+ "@smithy/util-body-length-node": "^4.2.3",
19463
+ "@smithy/util-defaults-mode-browser": "^4.3.38",
19464
+ "@smithy/util-defaults-mode-node": "^4.2.41",
19465
+ "@smithy/util-endpoints": "^3.3.2",
19466
+ "@smithy/util-middleware": "^4.2.11",
19467
+ "@smithy/util-retry": "^4.2.11",
19468
+ "@smithy/util-stream": "^4.5.17",
19469
+ "@smithy/util-utf8": "^4.2.2",
19466
19470
  tslib: "^2.6.2"
19467
19471
  },
19468
19472
  devDependencies: {
19469
- "@smithy/snapshot-testing": "^1.0.8",
19473
+ "@smithy/snapshot-testing": "^1.0.9",
19470
19474
  "@tsconfig/node20": "20.1.8",
19471
19475
  "@types/node": "^20.14.8",
19472
19476
  concurrently: "7.0.0",
@@ -19479,7 +19483,7 @@ var require_package2 = __commonJS({
19479
19483
  node: ">=20.0.0"
19480
19484
  },
19481
19485
  typesVersions: {
19482
- "<4.0": {
19486
+ "<4.5": {
19483
19487
  "dist-types/*": [
19484
19488
  "dist-types/ts3.4/*"
19485
19489
  ]
@@ -20182,7 +20186,7 @@ var init_package = __esm({
20182
20186
  "node_modules/@aws-sdk/nested-clients/package.json"() {
20183
20187
  package_default = {
20184
20188
  name: "@aws-sdk/nested-clients",
20185
- version: "3.996.5",
20189
+ version: "3.996.6",
20186
20190
  description: "Nested clients for AWS SDK packages.",
20187
20191
  main: "./dist-cjs/index.js",
20188
20192
  module: "./dist-es/index.js",
@@ -20211,41 +20215,41 @@ var init_package = __esm({
20211
20215
  dependencies: {
20212
20216
  "@aws-crypto/sha256-browser": "5.2.0",
20213
20217
  "@aws-crypto/sha256-js": "5.2.0",
20214
- "@aws-sdk/core": "^3.973.17",
20215
- "@aws-sdk/middleware-host-header": "^3.972.6",
20216
- "@aws-sdk/middleware-logger": "^3.972.6",
20217
- "@aws-sdk/middleware-recursion-detection": "^3.972.6",
20218
- "@aws-sdk/middleware-user-agent": "^3.972.17",
20219
- "@aws-sdk/region-config-resolver": "^3.972.6",
20220
- "@aws-sdk/types": "^3.973.4",
20221
- "@aws-sdk/util-endpoints": "^3.996.3",
20222
- "@aws-sdk/util-user-agent-browser": "^3.972.6",
20223
- "@aws-sdk/util-user-agent-node": "^3.973.2",
20224
- "@smithy/config-resolver": "^4.4.9",
20225
- "@smithy/core": "^3.23.7",
20226
- "@smithy/fetch-http-handler": "^5.3.12",
20227
- "@smithy/hash-node": "^4.2.10",
20228
- "@smithy/invalid-dependency": "^4.2.10",
20229
- "@smithy/middleware-content-length": "^4.2.10",
20230
- "@smithy/middleware-endpoint": "^4.4.21",
20231
- "@smithy/middleware-retry": "^4.4.38",
20232
- "@smithy/middleware-serde": "^4.2.11",
20233
- "@smithy/middleware-stack": "^4.2.10",
20234
- "@smithy/node-config-provider": "^4.3.10",
20235
- "@smithy/node-http-handler": "^4.4.13",
20236
- "@smithy/protocol-http": "^5.3.10",
20237
- "@smithy/smithy-client": "^4.12.1",
20218
+ "@aws-sdk/core": "^3.973.18",
20219
+ "@aws-sdk/middleware-host-header": "^3.972.7",
20220
+ "@aws-sdk/middleware-logger": "^3.972.7",
20221
+ "@aws-sdk/middleware-recursion-detection": "^3.972.7",
20222
+ "@aws-sdk/middleware-user-agent": "^3.972.18",
20223
+ "@aws-sdk/region-config-resolver": "^3.972.7",
20224
+ "@aws-sdk/types": "^3.973.5",
20225
+ "@aws-sdk/util-endpoints": "^3.996.4",
20226
+ "@aws-sdk/util-user-agent-browser": "^3.972.7",
20227
+ "@aws-sdk/util-user-agent-node": "^3.973.3",
20228
+ "@smithy/config-resolver": "^4.4.10",
20229
+ "@smithy/core": "^3.23.8",
20230
+ "@smithy/fetch-http-handler": "^5.3.13",
20231
+ "@smithy/hash-node": "^4.2.11",
20232
+ "@smithy/invalid-dependency": "^4.2.11",
20233
+ "@smithy/middleware-content-length": "^4.2.11",
20234
+ "@smithy/middleware-endpoint": "^4.4.22",
20235
+ "@smithy/middleware-retry": "^4.4.39",
20236
+ "@smithy/middleware-serde": "^4.2.12",
20237
+ "@smithy/middleware-stack": "^4.2.11",
20238
+ "@smithy/node-config-provider": "^4.3.11",
20239
+ "@smithy/node-http-handler": "^4.4.14",
20240
+ "@smithy/protocol-http": "^5.3.11",
20241
+ "@smithy/smithy-client": "^4.12.2",
20238
20242
  "@smithy/types": "^4.13.0",
20239
- "@smithy/url-parser": "^4.2.10",
20240
- "@smithy/util-base64": "^4.3.1",
20241
- "@smithy/util-body-length-browser": "^4.2.1",
20242
- "@smithy/util-body-length-node": "^4.2.2",
20243
- "@smithy/util-defaults-mode-browser": "^4.3.37",
20244
- "@smithy/util-defaults-mode-node": "^4.2.40",
20245
- "@smithy/util-endpoints": "^3.3.1",
20246
- "@smithy/util-middleware": "^4.2.10",
20247
- "@smithy/util-retry": "^4.2.10",
20248
- "@smithy/util-utf8": "^4.2.1",
20243
+ "@smithy/url-parser": "^4.2.11",
20244
+ "@smithy/util-base64": "^4.3.2",
20245
+ "@smithy/util-body-length-browser": "^4.2.2",
20246
+ "@smithy/util-body-length-node": "^4.2.3",
20247
+ "@smithy/util-defaults-mode-browser": "^4.3.38",
20248
+ "@smithy/util-defaults-mode-node": "^4.2.41",
20249
+ "@smithy/util-endpoints": "^3.3.2",
20250
+ "@smithy/util-middleware": "^4.2.11",
20251
+ "@smithy/util-retry": "^4.2.11",
20252
+ "@smithy/util-utf8": "^4.2.2",
20249
20253
  tslib: "^2.6.2"
20250
20254
  },
20251
20255
  devDependencies: {
@@ -20255,7 +20259,7 @@ var init_package = __esm({
20255
20259
  typescript: "~5.8.3"
20256
20260
  },
20257
20261
  typesVersions: {
20258
- "<4.0": {
20262
+ "<4.5": {
20259
20263
  "dist-types/*": [
20260
20264
  "dist-types/ts3.4/*"
20261
20265
  ]
@@ -20275,8 +20279,10 @@ var init_package = __esm({
20275
20279
  "dist-*/**"
20276
20280
  ],
20277
20281
  browser: {
20282
+ "./dist-es/submodules/cognito-identity/runtimeConfig": "./dist-es/submodules/cognito-identity/runtimeConfig.browser",
20278
20283
  "./dist-es/submodules/signin/runtimeConfig": "./dist-es/submodules/signin/runtimeConfig.browser",
20279
20284
  "./dist-es/submodules/sso-oidc/runtimeConfig": "./dist-es/submodules/sso-oidc/runtimeConfig.browser",
20285
+ "./dist-es/submodules/sso/runtimeConfig": "./dist-es/submodules/sso/runtimeConfig.browser",
20280
20286
  "./dist-es/submodules/sts/runtimeConfig": "./dist-es/submodules/sts/runtimeConfig.browser"
20281
20287
  },
20282
20288
  "react-native": {},
@@ -31374,6 +31380,14 @@ var init_TaskManager = __esm({
31374
31380
  * @returns {Task[]} Created tasks
31375
31381
  */
31376
31382
  createTasks(tasksData) {
31383
+ const hasDependencies = tasksData.some((t5) => t5.dependencies && t5.dependencies.length > 0);
31384
+ if (hasDependencies) {
31385
+ for (let i5 = 0; i5 < tasksData.length; i5++) {
31386
+ if (!tasksData[i5].id) {
31387
+ throw new Error(`Task at index ${i5} is missing required "id" field. When using dependencies, every task in the batch must have an "id" so other tasks can reference it.`);
31388
+ }
31389
+ }
31390
+ }
31377
31391
  const idMap = /* @__PURE__ */ new Map();
31378
31392
  const batchAutoIds = /* @__PURE__ */ new Set();
31379
31393
  let nextCounter = this.taskCounter;
@@ -31392,7 +31406,8 @@ var init_TaskManager = __esm({
31392
31406
  resolved.dependencies = resolved.dependencies.map((depId) => {
31393
31407
  if (idMap.has(depId)) return idMap.get(depId);
31394
31408
  if (this.tasks.has(depId) || batchAutoIds.has(depId)) return depId;
31395
- throw new Error(`Dependency "${depId}" does not exist. Available tasks: ${this._getAvailableTaskIds()}${idMap.size > 0 ? `, batch IDs: ${Array.from(idMap.keys()).join(", ")}` : ""}`);
31409
+ const batchIds = idMap.size > 0 ? Array.from(idMap.keys()).join(", ") : "(none provided)";
31410
+ throw new Error(`Dependency "${depId}" does not exist. Each task in the batch must have an "id" field, and dependencies must reference those IDs. Current batch IDs: ${batchIds}. Existing tasks: ${this._getAvailableTaskIds()}`);
31396
31411
  });
31397
31412
  }
31398
31413
  if (resolved.after) {
@@ -36111,12 +36126,12 @@ var init_taskTool = __esm({
36111
36126
  "use strict";
36112
36127
  init_zod();
36113
36128
  taskItemSchema = external_exports.object({
36114
- id: external_exports.string().optional(),
36129
+ id: external_exports.string().describe('Unique task identifier. Use short descriptive slugs (e.g. "auth", "setup-db"). Dependencies reference these IDs.'),
36115
36130
  title: external_exports.string().optional(),
36116
36131
  description: external_exports.string().optional(),
36117
36132
  status: external_exports.enum(["pending", "in_progress", "completed", "cancelled"]).optional(),
36118
36133
  priority: external_exports.enum(["low", "medium", "high", "critical"]).optional(),
36119
- dependencies: external_exports.array(external_exports.string()).optional(),
36134
+ dependencies: external_exports.array(external_exports.string()).optional().describe("Array of task IDs (from this batch or previously created) that must complete before this task can start."),
36120
36135
  after: external_exports.string().optional()
36121
36136
  });
36122
36137
  taskSchema = external_exports.object({
@@ -106057,6 +106072,8 @@ var init_ProbeAgent = __esm({
106057
106072
  this.tracer = options.tracer || null;
106058
106073
  this.outline = !!options.outline;
106059
106074
  this.searchDelegate = options.searchDelegate !== void 0 ? !!options.searchDelegate : true;
106075
+ this.searchDelegateProvider = options.searchDelegateProvider || null;
106076
+ this.searchDelegateModel = options.searchDelegateModel || null;
106060
106077
  this.maxResponseTokens = options.maxResponseTokens || (() => {
106061
106078
  const val = parseInt(process.env.MAX_RESPONSE_TOKENS || "0", 10);
106062
106079
  if (isNaN(val) || val < 0 || val > 2e5) {
@@ -106493,6 +106510,8 @@ var init_ProbeAgent = __esm({
106493
106510
  architectureFileName: this.architectureFileName,
106494
106511
  provider: this.clientApiProvider,
106495
106512
  model: this.clientApiModel,
106513
+ searchDelegateProvider: this.searchDelegateProvider,
106514
+ searchDelegateModel: this.searchDelegateModel,
106496
106515
  delegationManager: this.delegationManager,
106497
106516
  // Per-instance delegation limits
106498
106517
  outputBuffer: this._outputBuffer,
@@ -110707,8 +110726,8 @@ var init_vercel = __esm({
110707
110726
  parentSessionId: sessionId,
110708
110727
  path: options.allowedFolders?.[0] || options.cwd || ".",
110709
110728
  allowedFolders: options.allowedFolders,
110710
- provider: options.provider || null,
110711
- model: options.model || null,
110729
+ provider: options.searchDelegateProvider || process.env.PROBE_SEARCH_DELEGATE_PROVIDER || options.provider || null,
110730
+ model: options.searchDelegateModel || process.env.PROBE_SEARCH_DELEGATE_MODEL || options.model || null,
110712
110731
  tracer: options.tracer || null,
110713
110732
  enableBash: false,
110714
110733
  bashConfig: null,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@probelabs/probe",
3
- "version": "0.6.0-rc275",
3
+ "version": "0.6.0-rc277",
4
4
  "description": "Node.js wrapper for the probe code search tool",
5
5
  "main": "src/index.js",
6
6
  "module": "src/index.js",
@@ -197,6 +197,8 @@ export class ProbeAgent {
197
197
  this.tracer = options.tracer || null;
198
198
  this.outline = !!options.outline;
199
199
  this.searchDelegate = options.searchDelegate !== undefined ? !!options.searchDelegate : true;
200
+ this.searchDelegateProvider = options.searchDelegateProvider || null;
201
+ this.searchDelegateModel = options.searchDelegateModel || null;
200
202
  this.maxResponseTokens = options.maxResponseTokens || (() => {
201
203
  const val = parseInt(process.env.MAX_RESPONSE_TOKENS || '0', 10);
202
204
  if (isNaN(val) || val < 0 || val > 200000) {
@@ -788,6 +790,8 @@ export class ProbeAgent {
788
790
  architectureFileName: this.architectureFileName,
789
791
  provider: this.clientApiProvider,
790
792
  model: this.clientApiModel,
793
+ searchDelegateProvider: this.searchDelegateProvider,
794
+ searchDelegateModel: this.searchDelegateModel,
791
795
  delegationManager: this.delegationManager, // Per-instance delegation limits
792
796
  outputBuffer: this._outputBuffer,
793
797
  concurrencyLimiter: this.concurrencyLimiter, // Global AI concurrency limiter
@@ -194,6 +194,10 @@ function parseArgs() {
194
194
  config.provider = args[++i];
195
195
  } else if (arg === '--model' && i + 1 < args.length) {
196
196
  config.model = args[++i];
197
+ } else if (arg === '--search-delegate-provider' && i + 1 < args.length) {
198
+ config.searchDelegateProvider = args[++i];
199
+ } else if (arg === '--search-delegate-model' && i + 1 < args.length) {
200
+ config.searchDelegateModel = args[++i];
197
201
  } else if (arg === '--max-iterations' && i + 1 < args.length) {
198
202
  config.maxIterations = parseInt(args[++i], 10);
199
203
  } else if (arg === '--max-response-tokens' && i + 1 < args.length) {
@@ -872,7 +876,9 @@ async function main() {
872
876
  enableBash: config.enableBash,
873
877
  bashConfig: bashConfig,
874
878
  enableTasks: config.enableTasks,
875
- thinkingEffort: config.thinkingEffort
879
+ thinkingEffort: config.thinkingEffort,
880
+ searchDelegateProvider: config.searchDelegateProvider,
881
+ searchDelegateModel: config.searchDelegateModel
876
882
  };
877
883
 
878
884
  const agent = new ProbeAgent(agentConfig);
@@ -138,6 +138,16 @@ export class TaskManager {
138
138
  * @returns {Task[]} Created tasks
139
139
  */
140
140
  createTasks(tasksData) {
141
+ // Validate that all batch items have an id when dependencies are used
142
+ const hasDependencies = tasksData.some(t => t.dependencies && t.dependencies.length > 0);
143
+ if (hasDependencies) {
144
+ for (let i = 0; i < tasksData.length; i++) {
145
+ if (!tasksData[i].id) {
146
+ throw new Error(`Task at index ${i} is missing required "id" field. When using dependencies, every task in the batch must have an "id" so other tasks can reference it.`);
147
+ }
148
+ }
149
+ }
150
+
141
151
  // Build a mapping of user-provided IDs to future auto-generated IDs
142
152
  const idMap = new Map();
143
153
  const batchAutoIds = new Set();
@@ -161,7 +171,8 @@ export class TaskManager {
161
171
  if (idMap.has(depId)) return idMap.get(depId);
162
172
  // Check if it's already an existing task ID or a batch auto-generated ID
163
173
  if (this.tasks.has(depId) || batchAutoIds.has(depId)) return depId;
164
- throw new Error(`Dependency "${depId}" does not exist. Available tasks: ${this._getAvailableTaskIds()}${idMap.size > 0 ? `, batch IDs: ${Array.from(idMap.keys()).join(', ')}` : ''}`);
174
+ const batchIds = idMap.size > 0 ? Array.from(idMap.keys()).join(', ') : '(none provided)';
175
+ throw new Error(`Dependency "${depId}" does not exist. Each task in the batch must have an "id" field, and dependencies must reference those IDs. Current batch IDs: ${batchIds}. Existing tasks: ${this._getAvailableTaskIds()}`);
165
176
  });
166
177
  }
167
178
 
@@ -9,12 +9,12 @@ import { z } from 'zod';
9
9
  * Schema for a single task item in batch operations
10
10
  */
11
11
  export const taskItemSchema = z.object({
12
- id: z.string().optional(),
12
+ id: z.string().describe('Unique task identifier. Use short descriptive slugs (e.g. "auth", "setup-db"). Dependencies reference these IDs.'),
13
13
  title: z.string().optional(),
14
14
  description: z.string().optional(),
15
15
  status: z.enum(['pending', 'in_progress', 'completed', 'cancelled']).optional(),
16
16
  priority: z.enum(['low', 'medium', 'high', 'critical']).optional(),
17
- dependencies: z.array(z.string()).optional(),
17
+ dependencies: z.array(z.string()).optional().describe('Array of task IDs (from this batch or previously created) that must complete before this task can start.'),
18
18
  after: z.string().optional()
19
19
  });
20
20
 
@@ -268,8 +268,8 @@ export const searchTool = (options = {}) => {
268
268
  parentSessionId: sessionId,
269
269
  path: options.allowedFolders?.[0] || options.cwd || '.',
270
270
  allowedFolders: options.allowedFolders,
271
- provider: options.provider || null,
272
- model: options.model || null,
271
+ provider: options.searchDelegateProvider || process.env.PROBE_SEARCH_DELEGATE_PROVIDER || options.provider || null,
272
+ model: options.searchDelegateModel || process.env.PROBE_SEARCH_DELEGATE_MODEL || options.model || null,
273
273
  tracer: options.tracer || null,
274
274
  enableBash: false,
275
275
  bashConfig: null,