@dougbots/avenor-core 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -63,6 +63,8 @@ interface RunInfo {
63
63
  eventLogPath: string;
64
64
  runtimeId?: string;
65
65
  sessionId?: string;
66
+ brokerUrl?: string;
67
+ parentToken?: string;
66
68
  }
67
69
  interface SupervisorOptions {
68
70
  binaryPath?: string;
@@ -105,10 +107,14 @@ declare function spawnTool(args: {
105
107
  serverUrl?: string;
106
108
  sessionId?: string;
107
109
  supervisorId?: string;
110
+ parent_run_id?: string;
108
111
  }): Promise<{
109
112
  run_id: string;
110
113
  label: string;
111
114
  supervisor_id: string;
115
+ runtime_id?: string;
116
+ broker_url?: string;
117
+ parent_token?: string;
112
118
  }>;
113
119
  //#endregion
114
120
  //#region src/tools/status.d.ts
@@ -116,6 +122,7 @@ interface StatusResult {
116
122
  run_id: string;
117
123
  label: string;
118
124
  status: string;
125
+ runtime_id?: string;
119
126
  phase?: string;
120
127
  phase_label?: string;
121
128
  pending_permission?: {
package/dist/index.js CHANGED
@@ -399,7 +399,9 @@ var Supervisor = class Supervisor {
399
399
  sentinelPath: result.sentinel_file ?? sentinelPath,
400
400
  eventLogPath: result.on_event ?? eventLogPath,
401
401
  runtimeId: result.runtime_id,
402
- sessionId: result.session_id
402
+ sessionId: result.session_id,
403
+ brokerUrl: result.broker_url,
404
+ parentToken: result.parent_token
403
405
  };
404
406
  this.runs.set(runInfo.label, runInfo);
405
407
  this.runs.set(runId, runInfo);
@@ -481,30 +483,35 @@ async function spawnTool(args) {
481
483
  const { client, isSingleton, supervisorId } = await getSupervisorClient(args.supervisorId);
482
484
  const { sentinelPath, eventLogPath } = ensureRunPaths(runId);
483
485
  try {
486
+ const result = await client.spawn({
487
+ agent: args.agent,
488
+ prompt: args.prompt,
489
+ prompt_file: args.promptFile,
490
+ label,
491
+ dir: args.dir,
492
+ timeout: args.timeout !== void 0 ? validateTimeout(args.timeout) : void 0,
493
+ model: args.model,
494
+ backend: args.backend,
495
+ server_url: args.serverUrl,
496
+ session_id: args.sessionId,
497
+ sentinel_file: sentinelPath,
498
+ on_event: eventLogPath,
499
+ parent_run_id: args.parent_run_id
500
+ });
484
501
  return {
485
- run_id: (await client.spawn({
486
- agent: args.agent,
487
- prompt: args.prompt,
488
- prompt_file: args.promptFile,
489
- label,
490
- dir: args.dir,
491
- timeout: args.timeout !== void 0 ? validateTimeout(args.timeout) : void 0,
492
- model: args.model,
493
- backend: args.backend,
494
- server_url: args.serverUrl,
495
- session_id: args.sessionId,
496
- sentinel_file: sentinelPath,
497
- on_event: eventLogPath
498
- })).runtime_id ?? runId,
502
+ run_id: result.runtime_id ?? runId,
499
503
  label,
500
- supervisor_id: supervisorId
504
+ supervisor_id: supervisorId,
505
+ runtime_id: result.runtime_id,
506
+ broker_url: result.broker_url,
507
+ parent_token: result.parent_token
501
508
  };
502
509
  } finally {
503
510
  if (!isSingleton) client.close();
504
511
  }
505
512
  }
506
513
  const sup = await Supervisor.get();
507
- await sup.spawn({
514
+ const runInfo = await sup.spawn({
508
515
  agent: args.agent,
509
516
  prompt: args.prompt,
510
517
  prompt_file: args.promptFile,
@@ -514,12 +521,16 @@ async function spawnTool(args) {
514
521
  model: args.model,
515
522
  backend: args.backend,
516
523
  server_url: args.serverUrl,
517
- session_id: args.sessionId
524
+ session_id: args.sessionId,
525
+ parent_run_id: args.parent_run_id
518
526
  });
519
527
  return {
520
528
  run_id: runId,
521
529
  label,
522
- supervisor_id: sup.supervisorId
530
+ supervisor_id: sup.supervisorId,
531
+ runtime_id: runInfo.runtimeId,
532
+ broker_url: runInfo.brokerUrl,
533
+ parent_token: runInfo.parentToken
523
534
  };
524
535
  }
525
536
  //#endregion
@@ -556,21 +567,22 @@ async function sentinelExists(filePath) {
556
567
  return false;
557
568
  }
558
569
  }
570
+ function sentinelStatusToResult(sentinelStatus) {
571
+ switch (sentinelStatus) {
572
+ case "DONE": return "done";
573
+ case "FAILED": return "failed";
574
+ case "TIMEOUT": return "timeout";
575
+ case "KILLED": return "killed";
576
+ case "BLOCKED": return "failed";
577
+ default: return "running";
578
+ }
579
+ }
559
580
  function translateStatus(rawPhase, sentinelData) {
560
581
  const sentinelStatus = sentinelData?._status;
561
582
  switch (rawPhase) {
562
- case "idle":
583
+ case "idle": return sentinelStatus ? sentinelStatusToResult(sentinelStatus) : "running";
563
584
  case "running": return "running";
564
- case "ended":
565
- if (sentinelStatus) switch (sentinelStatus) {
566
- case "DONE": return "done";
567
- case "FAILED": return "failed";
568
- case "TIMEOUT": return "timeout";
569
- case "KILLED": return "killed";
570
- case "BLOCKED": return "failed";
571
- default: return "running";
572
- }
573
- return "running";
585
+ case "ended": return sentinelStatus ? sentinelStatusToResult(sentinelStatus) : "running";
574
586
  case "DONE": return "done";
575
587
  case "FAILED": return "failed";
576
588
  case "TIMEOUT": return "timeout";
@@ -587,6 +599,7 @@ async function buildRunStatus(client, runInfo, liveStatus) {
587
599
  run_id: runInfo.label,
588
600
  label: runInfo.label,
589
601
  status: translated,
602
+ runtime_id: liveStatus?.runtime_id ?? runInfo.runtimeId,
590
603
  phase: liveStatus?.phase,
591
604
  phase_label: liveStatus?.phase_label,
592
605
  session_id: sentinel?.SESSION ?? liveStatus?.session_id ?? void 0,
@@ -623,6 +636,7 @@ async function statusTool(args) {
623
636
  run_id: args.runId,
624
637
  label: args.runId,
625
638
  status: translateStatus(liveStatus?.phase ?? liveStatus?.status ?? "running", sentinel),
639
+ runtime_id: liveStatus?.runtime_id,
626
640
  phase: liveStatus?.phase,
627
641
  phase_label: liveStatus?.phase_label,
628
642
  session_id: sentinel?.SESSION ?? liveStatus?.session_id ?? void 0,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dougbots/avenor-core",
3
- "version": "0.2.1",
3
+ "version": "0.3.0",
4
4
  "type": "module",
5
5
  "repository": {
6
6
  "type": "git",