@inkeep/agents-sdk 0.21.1 → 0.22.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.cjs CHANGED
@@ -664,6 +664,31 @@ var Agent = class {
664
664
  };
665
665
  }
666
666
  }
667
+ const processedStatusUpdates = this.statusUpdateSettings ? {
668
+ ...this.statusUpdateSettings,
669
+ statusComponents: this.statusUpdateSettings.statusComponents?.map((comp) => {
670
+ if (comp && typeof comp.getType === "function") {
671
+ return {
672
+ type: comp.getType(),
673
+ description: comp.getDescription(),
674
+ detailsSchema: comp.getDetailsSchema()
675
+ };
676
+ }
677
+ if (comp && typeof comp === "object" && comp.detailsSchema && schemaConversion.isZodSchema(comp.detailsSchema)) {
678
+ const jsonSchema = schemaConversion.convertZodToJsonSchema(comp.detailsSchema);
679
+ return {
680
+ type: comp.type,
681
+ description: comp.description,
682
+ detailsSchema: {
683
+ type: "object",
684
+ properties: jsonSchema.properties || {},
685
+ required: jsonSchema.required || void 0
686
+ }
687
+ };
688
+ }
689
+ return comp;
690
+ })
691
+ } : void 0;
667
692
  return {
668
693
  id: this.agentId,
669
694
  name: this.agentName,
@@ -674,7 +699,7 @@ var Agent = class {
674
699
  ...Object.keys(functionToolsObject).length > 0 && { functionTools: functionToolsObject },
675
700
  ...Object.keys(functionsObject).length > 0 && { functions: functionsObject },
676
701
  models: this.models,
677
- statusUpdates: this.statusUpdateSettings,
702
+ statusUpdates: processedStatusUpdates,
678
703
  prompt: this.prompt,
679
704
  createdAt: (/* @__PURE__ */ new Date()).toISOString(),
680
705
  updatedAt: (/* @__PURE__ */ new Date()).toISOString()
@@ -2647,7 +2672,43 @@ var Project = class {
2647
2672
  };
2648
2673
  }
2649
2674
  };
2650
- var logger9 = agentsCore.getLogger("tool");
2675
+ var logger9 = agentsCore.getLogger("statusComponent");
2676
+ var StatusComponent = class {
2677
+ constructor(config) {
2678
+ __publicField(this, "config");
2679
+ let processedDetailsSchema;
2680
+ if (config.detailsSchema && schemaConversion.isZodSchema(config.detailsSchema)) {
2681
+ const jsonSchema = schemaConversion.convertZodToJsonSchema(config.detailsSchema);
2682
+ processedDetailsSchema = {
2683
+ type: "object",
2684
+ properties: jsonSchema.properties || {},
2685
+ required: jsonSchema.required || void 0
2686
+ };
2687
+ } else {
2688
+ processedDetailsSchema = config.detailsSchema;
2689
+ }
2690
+ this.config = {
2691
+ ...config,
2692
+ detailsSchema: processedDetailsSchema
2693
+ };
2694
+ logger9.info(
2695
+ {
2696
+ statusComponentType: config.type
2697
+ },
2698
+ "StatusComponent constructor initialized"
2699
+ );
2700
+ }
2701
+ getType() {
2702
+ return this.config.type;
2703
+ }
2704
+ getDescription() {
2705
+ return this.config.description;
2706
+ }
2707
+ getDetailsSchema() {
2708
+ return this.config.detailsSchema;
2709
+ }
2710
+ };
2711
+ var logger10 = agentsCore.getLogger("tool");
2651
2712
  var Tool = class {
2652
2713
  constructor(config) {
2653
2714
  __publicField(this, "config");
@@ -2659,7 +2720,7 @@ var Tool = class {
2659
2720
  this.baseURL = process.env.INKEEP_API_URL || "http://localhost:3002";
2660
2721
  this.tenantId = "default";
2661
2722
  this.projectId = "default";
2662
- logger9.info(
2723
+ logger10.info(
2663
2724
  {
2664
2725
  Id: this.getId(),
2665
2726
  Name: config.name
@@ -2701,7 +2762,7 @@ var Tool = class {
2701
2762
  if (!options?.skipDatabaseRegistration) {
2702
2763
  await this.upsertTool();
2703
2764
  }
2704
- logger9.info(
2765
+ logger10.info(
2705
2766
  {
2706
2767
  toolId: this.getId()
2707
2768
  },
@@ -2709,7 +2770,7 @@ var Tool = class {
2709
2770
  );
2710
2771
  this.initialized = true;
2711
2772
  } catch (error) {
2712
- logger9.error(
2773
+ logger10.error(
2713
2774
  {
2714
2775
  toolId: this.getId(),
2715
2776
  error: error instanceof Error ? error.message : "Unknown error"
@@ -2741,7 +2802,7 @@ var Tool = class {
2741
2802
  const toolDataForCreate = {
2742
2803
  ...toolDataForUpdate
2743
2804
  };
2744
- logger9.info({ toolDataForCreate }, "toolDataForCreate");
2805
+ logger10.info({ toolDataForCreate }, "toolDataForCreate");
2745
2806
  const updateResponse = await fetch(
2746
2807
  `${this.baseURL}/tenants/${this.tenantId}/projects/${this.projectId}/tools/${this.getId()}`,
2747
2808
  {
@@ -2752,9 +2813,9 @@ var Tool = class {
2752
2813
  body: JSON.stringify(toolDataForUpdate)
2753
2814
  }
2754
2815
  );
2755
- logger9.info({ updateResponse }, "tool updateResponse");
2816
+ logger10.info({ updateResponse }, "tool updateResponse");
2756
2817
  if (updateResponse.ok) {
2757
- logger9.info(
2818
+ logger10.info(
2758
2819
  {
2759
2820
  toolId: this.getId()
2760
2821
  },
@@ -2763,7 +2824,7 @@ var Tool = class {
2763
2824
  return;
2764
2825
  }
2765
2826
  if (updateResponse.status === 404) {
2766
- logger9.info(
2827
+ logger10.info(
2767
2828
  {
2768
2829
  toolId: this.getId()
2769
2830
  },
@@ -2782,7 +2843,7 @@ var Tool = class {
2782
2843
  if (!createResponse.ok) {
2783
2844
  throw new Error(`Failed to create tool: ${createResponse.status}`);
2784
2845
  }
2785
- logger9.info(
2846
+ logger10.info(
2786
2847
  {
2787
2848
  toolId: this.getId()
2788
2849
  },
@@ -2823,7 +2884,7 @@ function normalizeAgentCanUseType(value, fallbackName) {
2823
2884
  }
2824
2885
 
2825
2886
  // src/subAgent.ts
2826
- var logger10 = agentsCore.getLogger("agent");
2887
+ var logger11 = agentsCore.getLogger("agent");
2827
2888
  function resolveGetter2(value) {
2828
2889
  if (typeof value === "function") {
2829
2890
  return value();
@@ -2842,7 +2903,7 @@ var SubAgent = class {
2842
2903
  this.baseURL = process.env.INKEEP_API_URL || "http://localhost:3002";
2843
2904
  this.tenantId = "default";
2844
2905
  this.projectId = "default";
2845
- logger10.info(
2906
+ logger11.info(
2846
2907
  {
2847
2908
  tenantId: this.tenantId,
2848
2909
  subAgentId: this.config.id,
@@ -2992,7 +3053,7 @@ var SubAgent = class {
2992
3053
  await this.saveToolsAndRelations();
2993
3054
  await this.saveDataComponents();
2994
3055
  await this.saveArtifactComponents();
2995
- logger10.info(
3056
+ logger11.info(
2996
3057
  {
2997
3058
  subAgentId: this.getId()
2998
3059
  },
@@ -3000,7 +3061,7 @@ var SubAgent = class {
3000
3061
  );
3001
3062
  this.initialized = true;
3002
3063
  } catch (error) {
3003
- logger10.error(
3064
+ logger11.error(
3004
3065
  {
3005
3066
  subAgentId: this.getId(),
3006
3067
  error: error instanceof Error ? error.message : "Unknown error"
@@ -3032,7 +3093,7 @@ var SubAgent = class {
3032
3093
  }
3033
3094
  );
3034
3095
  if (updateResponse.ok) {
3035
- logger10.info(
3096
+ logger11.info(
3036
3097
  {
3037
3098
  subAgentId: this.getId()
3038
3099
  },
@@ -3041,7 +3102,7 @@ var SubAgent = class {
3041
3102
  return;
3042
3103
  }
3043
3104
  if (updateResponse.status === 404) {
3044
- logger10.info(
3105
+ logger11.info(
3045
3106
  {
3046
3107
  subAgentId: this.getId()
3047
3108
  },
@@ -3060,7 +3121,7 @@ var SubAgent = class {
3060
3121
  `Failed to create agent: ${createResponse.status} ${createResponse.statusText} - ${errorText2}`
3061
3122
  );
3062
3123
  }
3063
- logger10.info(
3124
+ logger11.info(
3064
3125
  {
3065
3126
  subAgentId: this.getId()
3066
3127
  },
@@ -3083,7 +3144,7 @@ var SubAgent = class {
3083
3144
  const normalizedTool = normalizeAgentCanUseType(toolConfig, `tool-${i}`);
3084
3145
  await this.createTool(normalizedTool.toolId, toolConfig);
3085
3146
  } catch (error) {
3086
- logger10.error(
3147
+ logger11.error(
3087
3148
  {
3088
3149
  toolId: isAgentMcpConfig(toolConfig) ? toolConfig.server.getId() : toolConfig.getId?.(),
3089
3150
  error: error instanceof Error ? error.message : "Unknown error"
@@ -3097,7 +3158,7 @@ var SubAgent = class {
3097
3158
  }
3098
3159
  }
3099
3160
  async saveDataComponents() {
3100
- logger10.info({ dataComponents: this.config.dataComponents }, "dataComponents and config");
3161
+ logger11.info({ dataComponents: this.config.dataComponents }, "dataComponents and config");
3101
3162
  const components = resolveGetter2(this.config.dataComponents);
3102
3163
  if (components) {
3103
3164
  for (const dataComponent2 of components) {
@@ -3112,7 +3173,7 @@ var SubAgent = class {
3112
3173
  }
3113
3174
  }
3114
3175
  async saveArtifactComponents() {
3115
- logger10.info(
3176
+ logger11.info(
3116
3177
  { artifactComponents: this.config.artifactComponents },
3117
3178
  "artifactComponents and config"
3118
3179
  );
@@ -3167,7 +3228,7 @@ var SubAgent = class {
3167
3228
  return acc;
3168
3229
  }, []);
3169
3230
  this.config.dataComponents = () => uniqueComponents;
3170
- logger10.info(
3231
+ logger11.info(
3171
3232
  {
3172
3233
  subAgentId: this.getId(),
3173
3234
  dbComponentCount: dbDataComponents.length,
@@ -3177,7 +3238,7 @@ var SubAgent = class {
3177
3238
  "Loaded and merged data components"
3178
3239
  );
3179
3240
  } catch (error) {
3180
- logger10.error(
3241
+ logger11.error(
3181
3242
  {
3182
3243
  subAgentId: this.getId(),
3183
3244
  error: error instanceof Error ? error.message : "Unknown error"
@@ -3224,7 +3285,7 @@ var SubAgent = class {
3224
3285
  return acc;
3225
3286
  }, []);
3226
3287
  this.config.artifactComponents = () => uniqueComponents;
3227
- logger10.info(
3288
+ logger11.info(
3228
3289
  {
3229
3290
  subAgentId: this.getId(),
3230
3291
  dbComponentCount: dbArtifactComponents.length,
@@ -3234,7 +3295,7 @@ var SubAgent = class {
3234
3295
  "Loaded and merged artifact components"
3235
3296
  );
3236
3297
  } catch (error) {
3237
- logger10.error(
3298
+ logger11.error(
3238
3299
  {
3239
3300
  subAgentId: this.getId(),
3240
3301
  error: error instanceof Error ? error.message : "Unknown error"
@@ -3248,7 +3309,7 @@ var SubAgent = class {
3248
3309
  const functionData = functionTool2.serializeFunction();
3249
3310
  const toolData = functionTool2.serializeTool();
3250
3311
  const functionUrl = `${this.baseURL}/tenants/${this.tenantId}/crud/projects/${this.projectId}/functions`;
3251
- logger10.info(
3312
+ logger11.info(
3252
3313
  {
3253
3314
  agentId: this.getId(),
3254
3315
  toolId,
@@ -3268,7 +3329,7 @@ var SubAgent = class {
3268
3329
  dependencies: functionData.dependencies
3269
3330
  })
3270
3331
  });
3271
- logger10.info(
3332
+ logger11.info(
3272
3333
  {
3273
3334
  agentId: this.getId(),
3274
3335
  toolId,
@@ -3279,7 +3340,7 @@ var SubAgent = class {
3279
3340
  );
3280
3341
  if (!functionResponse.ok) {
3281
3342
  const errorText = await functionResponse.text();
3282
- logger10.error(
3343
+ logger11.error(
3283
3344
  {
3284
3345
  agentId: this.getId(),
3285
3346
  toolId,
@@ -3292,7 +3353,7 @@ var SubAgent = class {
3292
3353
  throw new Error(`Failed to create function: ${functionResponse.status} ${errorText}`);
3293
3354
  }
3294
3355
  const toolUrl = `${this.baseURL}/tenants/${this.tenantId}/crud/projects/${this.projectId}/tools`;
3295
- logger10.info(
3356
+ logger11.info(
3296
3357
  {
3297
3358
  agentId: this.getId(),
3298
3359
  toolId,
@@ -3316,7 +3377,7 @@ var SubAgent = class {
3316
3377
  }
3317
3378
  })
3318
3379
  });
3319
- logger10.info(
3380
+ logger11.info(
3320
3381
  {
3321
3382
  agentId: this.getId(),
3322
3383
  toolId,
@@ -3327,7 +3388,7 @@ var SubAgent = class {
3327
3388
  );
3328
3389
  if (!toolResponse.ok) {
3329
3390
  const errorText = await toolResponse.text();
3330
- logger10.error(
3391
+ logger11.error(
3331
3392
  {
3332
3393
  agentId: this.getId(),
3333
3394
  toolId,
@@ -3340,7 +3401,7 @@ var SubAgent = class {
3340
3401
  throw new Error(`Failed to create tool: ${toolResponse.status} ${errorText}`);
3341
3402
  }
3342
3403
  await this.createAgentToolRelation(toolData.id);
3343
- logger10.info(
3404
+ logger11.info(
3344
3405
  {
3345
3406
  agentId: this.getId(),
3346
3407
  functionId: functionData.id,
@@ -3349,7 +3410,7 @@ var SubAgent = class {
3349
3410
  "Function and tool created successfully"
3350
3411
  );
3351
3412
  } catch (error) {
3352
- logger10.error(
3413
+ logger11.error(
3353
3414
  {
3354
3415
  agentId: this.getId(),
3355
3416
  toolId,
@@ -3368,7 +3429,7 @@ var SubAgent = class {
3368
3429
  return;
3369
3430
  }
3370
3431
  if (toolConfig.type === "function") {
3371
- logger10.info(
3432
+ logger11.info(
3372
3433
  {
3373
3434
  subAgentId: this.getId(),
3374
3435
  toolId
@@ -3400,7 +3461,7 @@ var SubAgent = class {
3400
3461
  await tool.init();
3401
3462
  }
3402
3463
  await this.createAgentToolRelation(tool.getId(), selectedTools, headers);
3403
- logger10.info(
3464
+ logger11.info(
3404
3465
  {
3405
3466
  subAgentId: this.getId(),
3406
3467
  toolId: tool.getId()
@@ -3408,7 +3469,7 @@ var SubAgent = class {
3408
3469
  "Tool created and linked to agent"
3409
3470
  );
3410
3471
  } catch (error) {
3411
- logger10.error(
3472
+ logger11.error(
3412
3473
  {
3413
3474
  subAgentId: this.getId(),
3414
3475
  toolId,
@@ -3430,7 +3491,7 @@ var SubAgent = class {
3430
3491
  dc.setContext(this.tenantId, this.projectId);
3431
3492
  await dc.init();
3432
3493
  await this.createAgentDataComponentRelation(dc.getId());
3433
- logger10.info(
3494
+ logger11.info(
3434
3495
  {
3435
3496
  subAgentId: this.getId(),
3436
3497
  dataComponentId: dc.getId()
@@ -3438,7 +3499,7 @@ var SubAgent = class {
3438
3499
  "DataComponent created and linked to agent"
3439
3500
  );
3440
3501
  } catch (error) {
3441
- logger10.error(
3502
+ logger11.error(
3442
3503
  {
3443
3504
  subAgentId: this.getId(),
3444
3505
  dataComponentName: dataComponent2.name,
@@ -3460,7 +3521,7 @@ var SubAgent = class {
3460
3521
  ac.setContext(this.tenantId, this.projectId);
3461
3522
  await ac.init();
3462
3523
  await this.createAgentArtifactComponentRelation(ac.getId());
3463
- logger10.info(
3524
+ logger11.info(
3464
3525
  {
3465
3526
  subAgentId: this.getId(),
3466
3527
  artifactComponentId: ac.getId()
@@ -3468,7 +3529,7 @@ var SubAgent = class {
3468
3529
  "ArtifactComponent created and linked to agent"
3469
3530
  );
3470
3531
  } catch (error) {
3471
- logger10.error(
3532
+ logger11.error(
3472
3533
  {
3473
3534
  subAgentId: this.getId(),
3474
3535
  artifactComponentName: artifactComponent2.name,
@@ -3500,7 +3561,7 @@ var SubAgent = class {
3500
3561
  `Failed to create agent-dataComponent relation: ${relationResponse.status} ${relationResponse.statusText}`
3501
3562
  );
3502
3563
  }
3503
- logger10.info(
3564
+ logger11.info(
3504
3565
  {
3505
3566
  subAgentId: this.getId(),
3506
3567
  dataComponentId
@@ -3529,7 +3590,7 @@ var SubAgent = class {
3529
3590
  `Failed to create agent-artifactComponent relation: ${relationResponse.status} ${relationResponse.statusText}`
3530
3591
  );
3531
3592
  }
3532
- logger10.info(
3593
+ logger11.info(
3533
3594
  {
3534
3595
  subAgentId: this.getId(),
3535
3596
  artifactComponentId
@@ -3627,6 +3688,9 @@ function dataComponent(config) {
3627
3688
  };
3628
3689
  return new DataComponent(configWithId);
3629
3690
  }
3691
+ function statusComponent(config) {
3692
+ return new StatusComponent(config);
3693
+ }
3630
3694
  function agentMcp(config) {
3631
3695
  return {
3632
3696
  server: config.server,
@@ -3699,7 +3763,7 @@ function createEnvironmentSettings(environments) {
3699
3763
  function registerEnvironmentSettings(config) {
3700
3764
  return config;
3701
3765
  }
3702
- var logger11 = agentsCore.getLogger("external-agent-builder");
3766
+ var logger12 = agentsCore.getLogger("external-agent-builder");
3703
3767
  var ExternalAgent = class {
3704
3768
  constructor(config) {
3705
3769
  __publicField(this, "config");
@@ -3710,7 +3774,7 @@ var ExternalAgent = class {
3710
3774
  this.config = { ...config, type: "external" };
3711
3775
  this.tenantId = "default";
3712
3776
  this.baseURL = process.env.INKEEP_API_URL || "http://localhost:3002";
3713
- logger11.debug(
3777
+ logger12.debug(
3714
3778
  {
3715
3779
  externalAgentName: this.config.name,
3716
3780
  baseUrl: this.config.baseUrl,
@@ -3726,7 +3790,7 @@ var ExternalAgent = class {
3726
3790
  if (this.initialized) return;
3727
3791
  try {
3728
3792
  await this.upsertExternalAgent();
3729
- logger11.info(
3793
+ logger12.info(
3730
3794
  {
3731
3795
  externalSubAgentId: this.getId()
3732
3796
  },
@@ -3734,7 +3798,7 @@ var ExternalAgent = class {
3734
3798
  );
3735
3799
  this.initialized = true;
3736
3800
  } catch (error) {
3737
- logger11.error(
3801
+ logger12.error(
3738
3802
  {
3739
3803
  externalSubAgentId: this.getId(),
3740
3804
  error: error instanceof Error ? error.message : "Unknown error"
@@ -3776,7 +3840,7 @@ var ExternalAgent = class {
3776
3840
  }
3777
3841
  );
3778
3842
  if (updateResponse.ok) {
3779
- logger11.info(
3843
+ logger12.info(
3780
3844
  {
3781
3845
  externalSubAgentId: this.getId()
3782
3846
  },
@@ -3785,7 +3849,7 @@ var ExternalAgent = class {
3785
3849
  return;
3786
3850
  }
3787
3851
  if (updateResponse.status === 404) {
3788
- logger11.info(
3852
+ logger12.info(
3789
3853
  {
3790
3854
  externalSubAgentId: this.getId()
3791
3855
  },
@@ -3807,7 +3871,7 @@ var ExternalAgent = class {
3807
3871
  `Failed to create external agent: ${createResponse.status} ${createResponse.statusText} - ${errorText2}`
3808
3872
  );
3809
3873
  }
3810
- logger11.info(
3874
+ logger12.info(
3811
3875
  {
3812
3876
  externalSubAgentId: this.getId()
3813
3877
  },
@@ -3882,7 +3946,7 @@ var MaxTurnsExceededError = class extends AgentError {
3882
3946
  };
3883
3947
 
3884
3948
  // src/runner.ts
3885
- var logger12 = agentsCore.getLogger("runner");
3949
+ var logger13 = agentsCore.getLogger("runner");
3886
3950
  var Runner = class _Runner {
3887
3951
  /**
3888
3952
  * Run an agent until completion, handling transfers and tool calls
@@ -3894,7 +3958,7 @@ var Runner = class _Runner {
3894
3958
  let turnCount = 0;
3895
3959
  const messageHistory = _Runner.normalizeToMessageHistory(messages);
3896
3960
  const allToolCalls = [];
3897
- logger12.info(
3961
+ logger13.info(
3898
3962
  {
3899
3963
  agentId: agent2.getId(),
3900
3964
  defaultSubAgent: agent2.getDefaultSubAgent()?.getName(),
@@ -3904,7 +3968,7 @@ var Runner = class _Runner {
3904
3968
  "Starting agent run"
3905
3969
  );
3906
3970
  while (turnCount < maxTurns) {
3907
- logger12.debug(
3971
+ logger13.debug(
3908
3972
  {
3909
3973
  agentId: agent2.getId(),
3910
3974
  turnCount,
@@ -3914,7 +3978,7 @@ var Runner = class _Runner {
3914
3978
  );
3915
3979
  const response = await agent2.generate(messageHistory, options);
3916
3980
  turnCount++;
3917
- logger12.info(
3981
+ logger13.info(
3918
3982
  {
3919
3983
  agentId: agent2.getId(),
3920
3984
  turnCount,
@@ -3934,7 +3998,7 @@ var Runner = class _Runner {
3934
3998
  }
3935
3999
  };
3936
4000
  }
3937
- logger12.error(
4001
+ logger13.error(
3938
4002
  {
3939
4003
  agentId: agent2.getId(),
3940
4004
  maxTurns,
@@ -3948,7 +4012,7 @@ var Runner = class _Runner {
3948
4012
  * Stream an agent's response
3949
4013
  */
3950
4014
  static async stream(agent2, messages, options) {
3951
- logger12.info(
4015
+ logger13.info(
3952
4016
  {
3953
4017
  agentId: agent2.getId(),
3954
4018
  defaultSubAgent: agent2.getDefaultSubAgent()?.getName()
@@ -3964,7 +4028,7 @@ var Runner = class _Runner {
3964
4028
  if (agent2.length === 0) {
3965
4029
  throw new Error("No agent provided for race");
3966
4030
  }
3967
- logger12.info(
4031
+ logger13.info(
3968
4032
  {
3969
4033
  agentCount: agent2.length,
3970
4034
  agentIds: agent2.map((g) => g.getId())
@@ -3976,7 +4040,7 @@ var Runner = class _Runner {
3976
4040
  const result2 = await _Runner.run(agent3, messages, options);
3977
4041
  return { ...result2, raceIndex: index };
3978
4042
  } catch (error) {
3979
- logger12.error(
4043
+ logger13.error(
3980
4044
  {
3981
4045
  agentId: agent3.getId(),
3982
4046
  error: error instanceof Error ? error.message : "Unknown error"
@@ -3987,7 +4051,7 @@ var Runner = class _Runner {
3987
4051
  }
3988
4052
  });
3989
4053
  const result = await Promise.race(promises);
3990
- logger12.info(
4054
+ logger13.info(
3991
4055
  {
3992
4056
  winningAgentId: result.agentId || "unknown",
3993
4057
  raceIndex: result.raceIndex
@@ -4079,6 +4143,7 @@ exports.ExternalAgent = ExternalAgent;
4079
4143
  exports.FunctionTool = FunctionTool;
4080
4144
  exports.Project = Project;
4081
4145
  exports.Runner = Runner;
4146
+ exports.StatusComponent = StatusComponent;
4082
4147
  exports.SubAgent = SubAgent;
4083
4148
  exports.Tool = Tool;
4084
4149
  exports.agent = agent;
@@ -4101,6 +4166,7 @@ exports.project = project;
4101
4166
  exports.raceAgents = raceAgents;
4102
4167
  exports.registerEnvironmentSettings = registerEnvironmentSettings;
4103
4168
  exports.run = run;
4169
+ exports.statusComponent = statusComponent;
4104
4170
  exports.stream = stream;
4105
4171
  exports.subAgent = subAgent;
4106
4172
  exports.transfer = transfer;
package/dist/index.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { ArtifactComponentInsert, MCPToolConfig as MCPToolConfig$1, DataComponentApiInsert, ArtifactComponentApiInsert, CredentialReferenceApiInsert, DataComponentInsert, CredentialReferenceSelect, FunctionToolConfig, SubAgentApiInsert, AgentConversationHistoryConfig, AgentStopWhen, ModelSettings, StatusUpdateSettings, FullAgentDefinition, ToolInsert, McpTransportConfig, StopWhen, SandboxConfig, FullProjectDefinition } from '@inkeep/agents-core';
1
+ import { ArtifactComponentInsert, MCPToolConfig as MCPToolConfig$1, DataComponentApiInsert, ArtifactComponentApiInsert, CredentialReferenceApiInsert, DataComponentInsert, CredentialReferenceSelect, FunctionToolConfig, SubAgentApiInsert, AgentConversationHistoryConfig, AgentStopWhen, ModelSettings, StatusUpdateSettings, FullAgentDefinition, ToolInsert, McpTransportConfig, StopWhen, SandboxConfig, FullProjectDefinition, StatusComponent as StatusComponent$1 } from '@inkeep/agents-core';
2
2
  export { ANTHROPIC_MODELS, FunctionToolConfig, GOOGLE_MODELS, ModelSettings, OPENAI_MODELS, SandboxConfig } from '@inkeep/agents-core';
3
3
  import { z } from 'zod';
4
4
 
@@ -136,6 +136,11 @@ interface ArtifactComponentConfig extends ComponentConfig {
136
136
  interface DataComponentConfig extends ComponentConfig {
137
137
  props: Record<string, unknown> | z.ZodObject<any>;
138
138
  }
139
+ interface StatusComponentConfig {
140
+ type: string;
141
+ description?: string;
142
+ detailsSchema?: Record<string, unknown> | z.ZodObject<any>;
143
+ }
139
144
  type AgentMcpConfig = {
140
145
  server: Tool;
141
146
  selectedTools?: string[];
@@ -924,6 +929,23 @@ declare class Project implements ProjectInterface {
924
929
  private toFullProjectDefinition;
925
930
  }
926
931
 
932
+ type StatusComponentConfigWithZod = Omit<StatusComponent$1, 'detailsSchema'> & {
933
+ detailsSchema?: Record<string, unknown> | z.ZodObject<any>;
934
+ };
935
+ interface StatusComponentInterface {
936
+ config: StatusComponent$1;
937
+ getType(): string;
938
+ getDescription(): string | undefined;
939
+ getDetailsSchema(): StatusComponent$1['detailsSchema'];
940
+ }
941
+ declare class StatusComponent implements StatusComponentInterface {
942
+ config: StatusComponent$1;
943
+ constructor(config: StatusComponentConfigWithZod);
944
+ getType(): string;
945
+ getDescription(): string | undefined;
946
+ getDetailsSchema(): StatusComponent$1['detailsSchema'];
947
+ }
948
+
927
949
  /**
928
950
  * Helper function to create agent - OpenAI style
929
951
  */
@@ -1111,6 +1133,31 @@ declare function artifactComponent(config: ArtifactComponentConfig): ArtifactCom
1111
1133
  * ```
1112
1134
  */
1113
1135
  declare function dataComponent(config: DataComponentConfig): DataComponent;
1136
+ /**
1137
+ * Creates a status component for structured status updates.
1138
+ *
1139
+ * Status components define the structure of status updates
1140
+ * that agents can generate during long-running operations.
1141
+ *
1142
+ * @param config - Status component configuration
1143
+ * @returns A StatusComponent instance
1144
+ *
1145
+ * @example
1146
+ * ```typescript
1147
+ * import { z } from 'zod';
1148
+ *
1149
+ * const toolCallStatus = statusComponent({
1150
+ * type: 'tool_call_summary',
1151
+ * description: 'Summary of a tool execution',
1152
+ * detailsSchema: z.object({
1153
+ * tool_name: z.string(),
1154
+ * summary: z.string(),
1155
+ * status: z.enum(['success', 'error', 'in_progress'])
1156
+ * })
1157
+ * });
1158
+ * ```
1159
+ */
1160
+ declare function statusComponent(config: StatusComponentConfig): StatusComponent;
1114
1161
  declare function agentMcp(config: AgentMcpConfig): AgentMcpConfig;
1115
1162
  /**
1116
1163
  * Creates a function tool that executes user-defined code in a sandboxed environment.
@@ -1278,4 +1325,4 @@ declare const run: typeof Runner.run;
1278
1325
  declare const stream: typeof Runner.stream;
1279
1326
  declare const raceAgents: typeof Runner.raceAgents;
1280
1327
 
1281
- export { type AgentConfig, AgentError, type AgentInterface, type AgentResponse, type AgentTool, type AllSubAgentInterface, ArtifactComponent, type ArtifactComponentInterface, type ArtifactComponentWithZodProps, type AssistantMessage, type BuilderAgentConfig, type BuilderRelationConfig, type BuilderToolConfig, type CredentialReference, DataComponent, type DataComponentInterface, type DataComponentWithZodProps, ExternalAgent, type ExternalAgentInterface, type ExtractCredentialIds, type FetchDefinitionConfig, FunctionTool, type GenerateOptions, type MCPToolConfig, MaxTurnsExceededError, type Message, type MessageInput, Project, type RequestSchemaConfig, type RequestSchemaDefinition, type RunResult, Runner, type ServerConfig, type StreamEvent, type StreamResponse, SubAgent, type SubAgentCanUseType, type SubAgentConfig, type SubAgentInterface, type SystemMessage, Tool, type ToolCall, type ToolConfig, ToolExecutionError, type ToolMessage, type ToolResult, type TransferConfig, TransferError, type UnionCredentialIds, type UserMessage, agent, agentMcp, artifactComponent, createEnvironmentSettings, createFullProjectViaAPI, credential, credentialRef, dataComponent, deleteFullProjectViaAPI, externalAgent, externalAgents, functionTool, getFullProjectViaAPI, isCredentialReference, mcpServer, mcpTool, project, raceAgents, registerEnvironmentSettings, run, stream, subAgent, transfer, updateFullProjectViaAPI };
1328
+ export { type AgentConfig, AgentError, type AgentInterface, type AgentResponse, type AgentTool, type AllSubAgentInterface, ArtifactComponent, type ArtifactComponentInterface, type ArtifactComponentWithZodProps, type AssistantMessage, type BuilderAgentConfig, type BuilderRelationConfig, type BuilderToolConfig, type CredentialReference, DataComponent, type DataComponentInterface, type DataComponentWithZodProps, ExternalAgent, type ExternalAgentInterface, type ExtractCredentialIds, type FetchDefinitionConfig, FunctionTool, type GenerateOptions, type MCPToolConfig, MaxTurnsExceededError, type Message, type MessageInput, Project, type RequestSchemaConfig, type RequestSchemaDefinition, type RunResult, Runner, type ServerConfig, StatusComponent, type StatusComponentInterface, type StreamEvent, type StreamResponse, SubAgent, type SubAgentCanUseType, type SubAgentConfig, type SubAgentInterface, type SystemMessage, Tool, type ToolCall, type ToolConfig, ToolExecutionError, type ToolMessage, type ToolResult, type TransferConfig, TransferError, type UnionCredentialIds, type UserMessage, agent, agentMcp, artifactComponent, createEnvironmentSettings, createFullProjectViaAPI, credential, credentialRef, dataComponent, deleteFullProjectViaAPI, externalAgent, externalAgents, functionTool, getFullProjectViaAPI, isCredentialReference, mcpServer, mcpTool, project, raceAgents, registerEnvironmentSettings, run, statusComponent, stream, subAgent, transfer, updateFullProjectViaAPI };
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { ArtifactComponentInsert, MCPToolConfig as MCPToolConfig$1, DataComponentApiInsert, ArtifactComponentApiInsert, CredentialReferenceApiInsert, DataComponentInsert, CredentialReferenceSelect, FunctionToolConfig, SubAgentApiInsert, AgentConversationHistoryConfig, AgentStopWhen, ModelSettings, StatusUpdateSettings, FullAgentDefinition, ToolInsert, McpTransportConfig, StopWhen, SandboxConfig, FullProjectDefinition } from '@inkeep/agents-core';
1
+ import { ArtifactComponentInsert, MCPToolConfig as MCPToolConfig$1, DataComponentApiInsert, ArtifactComponentApiInsert, CredentialReferenceApiInsert, DataComponentInsert, CredentialReferenceSelect, FunctionToolConfig, SubAgentApiInsert, AgentConversationHistoryConfig, AgentStopWhen, ModelSettings, StatusUpdateSettings, FullAgentDefinition, ToolInsert, McpTransportConfig, StopWhen, SandboxConfig, FullProjectDefinition, StatusComponent as StatusComponent$1 } from '@inkeep/agents-core';
2
2
  export { ANTHROPIC_MODELS, FunctionToolConfig, GOOGLE_MODELS, ModelSettings, OPENAI_MODELS, SandboxConfig } from '@inkeep/agents-core';
3
3
  import { z } from 'zod';
4
4
 
@@ -136,6 +136,11 @@ interface ArtifactComponentConfig extends ComponentConfig {
136
136
  interface DataComponentConfig extends ComponentConfig {
137
137
  props: Record<string, unknown> | z.ZodObject<any>;
138
138
  }
139
+ interface StatusComponentConfig {
140
+ type: string;
141
+ description?: string;
142
+ detailsSchema?: Record<string, unknown> | z.ZodObject<any>;
143
+ }
139
144
  type AgentMcpConfig = {
140
145
  server: Tool;
141
146
  selectedTools?: string[];
@@ -924,6 +929,23 @@ declare class Project implements ProjectInterface {
924
929
  private toFullProjectDefinition;
925
930
  }
926
931
 
932
+ type StatusComponentConfigWithZod = Omit<StatusComponent$1, 'detailsSchema'> & {
933
+ detailsSchema?: Record<string, unknown> | z.ZodObject<any>;
934
+ };
935
+ interface StatusComponentInterface {
936
+ config: StatusComponent$1;
937
+ getType(): string;
938
+ getDescription(): string | undefined;
939
+ getDetailsSchema(): StatusComponent$1['detailsSchema'];
940
+ }
941
+ declare class StatusComponent implements StatusComponentInterface {
942
+ config: StatusComponent$1;
943
+ constructor(config: StatusComponentConfigWithZod);
944
+ getType(): string;
945
+ getDescription(): string | undefined;
946
+ getDetailsSchema(): StatusComponent$1['detailsSchema'];
947
+ }
948
+
927
949
  /**
928
950
  * Helper function to create agent - OpenAI style
929
951
  */
@@ -1111,6 +1133,31 @@ declare function artifactComponent(config: ArtifactComponentConfig): ArtifactCom
1111
1133
  * ```
1112
1134
  */
1113
1135
  declare function dataComponent(config: DataComponentConfig): DataComponent;
1136
+ /**
1137
+ * Creates a status component for structured status updates.
1138
+ *
1139
+ * Status components define the structure of status updates
1140
+ * that agents can generate during long-running operations.
1141
+ *
1142
+ * @param config - Status component configuration
1143
+ * @returns A StatusComponent instance
1144
+ *
1145
+ * @example
1146
+ * ```typescript
1147
+ * import { z } from 'zod';
1148
+ *
1149
+ * const toolCallStatus = statusComponent({
1150
+ * type: 'tool_call_summary',
1151
+ * description: 'Summary of a tool execution',
1152
+ * detailsSchema: z.object({
1153
+ * tool_name: z.string(),
1154
+ * summary: z.string(),
1155
+ * status: z.enum(['success', 'error', 'in_progress'])
1156
+ * })
1157
+ * });
1158
+ * ```
1159
+ */
1160
+ declare function statusComponent(config: StatusComponentConfig): StatusComponent;
1114
1161
  declare function agentMcp(config: AgentMcpConfig): AgentMcpConfig;
1115
1162
  /**
1116
1163
  * Creates a function tool that executes user-defined code in a sandboxed environment.
@@ -1278,4 +1325,4 @@ declare const run: typeof Runner.run;
1278
1325
  declare const stream: typeof Runner.stream;
1279
1326
  declare const raceAgents: typeof Runner.raceAgents;
1280
1327
 
1281
- export { type AgentConfig, AgentError, type AgentInterface, type AgentResponse, type AgentTool, type AllSubAgentInterface, ArtifactComponent, type ArtifactComponentInterface, type ArtifactComponentWithZodProps, type AssistantMessage, type BuilderAgentConfig, type BuilderRelationConfig, type BuilderToolConfig, type CredentialReference, DataComponent, type DataComponentInterface, type DataComponentWithZodProps, ExternalAgent, type ExternalAgentInterface, type ExtractCredentialIds, type FetchDefinitionConfig, FunctionTool, type GenerateOptions, type MCPToolConfig, MaxTurnsExceededError, type Message, type MessageInput, Project, type RequestSchemaConfig, type RequestSchemaDefinition, type RunResult, Runner, type ServerConfig, type StreamEvent, type StreamResponse, SubAgent, type SubAgentCanUseType, type SubAgentConfig, type SubAgentInterface, type SystemMessage, Tool, type ToolCall, type ToolConfig, ToolExecutionError, type ToolMessage, type ToolResult, type TransferConfig, TransferError, type UnionCredentialIds, type UserMessage, agent, agentMcp, artifactComponent, createEnvironmentSettings, createFullProjectViaAPI, credential, credentialRef, dataComponent, deleteFullProjectViaAPI, externalAgent, externalAgents, functionTool, getFullProjectViaAPI, isCredentialReference, mcpServer, mcpTool, project, raceAgents, registerEnvironmentSettings, run, stream, subAgent, transfer, updateFullProjectViaAPI };
1328
+ export { type AgentConfig, AgentError, type AgentInterface, type AgentResponse, type AgentTool, type AllSubAgentInterface, ArtifactComponent, type ArtifactComponentInterface, type ArtifactComponentWithZodProps, type AssistantMessage, type BuilderAgentConfig, type BuilderRelationConfig, type BuilderToolConfig, type CredentialReference, DataComponent, type DataComponentInterface, type DataComponentWithZodProps, ExternalAgent, type ExternalAgentInterface, type ExtractCredentialIds, type FetchDefinitionConfig, FunctionTool, type GenerateOptions, type MCPToolConfig, MaxTurnsExceededError, type Message, type MessageInput, Project, type RequestSchemaConfig, type RequestSchemaDefinition, type RunResult, Runner, type ServerConfig, StatusComponent, type StatusComponentInterface, type StreamEvent, type StreamResponse, SubAgent, type SubAgentCanUseType, type SubAgentConfig, type SubAgentInterface, type SystemMessage, Tool, type ToolCall, type ToolConfig, ToolExecutionError, type ToolMessage, type ToolResult, type TransferConfig, TransferError, type UnionCredentialIds, type UserMessage, agent, agentMcp, artifactComponent, createEnvironmentSettings, createFullProjectViaAPI, credential, credentialRef, dataComponent, deleteFullProjectViaAPI, externalAgent, externalAgents, functionTool, getFullProjectViaAPI, isCredentialReference, mcpServer, mcpTool, project, raceAgents, registerEnvironmentSettings, run, statusComponent, stream, subAgent, transfer, updateFullProjectViaAPI };
package/dist/index.js CHANGED
@@ -637,6 +637,31 @@ var Agent = class {
637
637
  };
638
638
  }
639
639
  }
640
+ const processedStatusUpdates = this.statusUpdateSettings ? {
641
+ ...this.statusUpdateSettings,
642
+ statusComponents: this.statusUpdateSettings.statusComponents?.map((comp) => {
643
+ if (comp && typeof comp.getType === "function") {
644
+ return {
645
+ type: comp.getType(),
646
+ description: comp.getDescription(),
647
+ detailsSchema: comp.getDetailsSchema()
648
+ };
649
+ }
650
+ if (comp && typeof comp === "object" && comp.detailsSchema && isZodSchema(comp.detailsSchema)) {
651
+ const jsonSchema = convertZodToJsonSchema(comp.detailsSchema);
652
+ return {
653
+ type: comp.type,
654
+ description: comp.description,
655
+ detailsSchema: {
656
+ type: "object",
657
+ properties: jsonSchema.properties || {},
658
+ required: jsonSchema.required || void 0
659
+ }
660
+ };
661
+ }
662
+ return comp;
663
+ })
664
+ } : void 0;
640
665
  return {
641
666
  id: this.agentId,
642
667
  name: this.agentName,
@@ -647,7 +672,7 @@ var Agent = class {
647
672
  ...Object.keys(functionToolsObject).length > 0 && { functionTools: functionToolsObject },
648
673
  ...Object.keys(functionsObject).length > 0 && { functions: functionsObject },
649
674
  models: this.models,
650
- statusUpdates: this.statusUpdateSettings,
675
+ statusUpdates: processedStatusUpdates,
651
676
  prompt: this.prompt,
652
677
  createdAt: (/* @__PURE__ */ new Date()).toISOString(),
653
678
  updatedAt: (/* @__PURE__ */ new Date()).toISOString()
@@ -2620,7 +2645,43 @@ var Project = class {
2620
2645
  };
2621
2646
  }
2622
2647
  };
2623
- var logger9 = getLogger("tool");
2648
+ var logger9 = getLogger("statusComponent");
2649
+ var StatusComponent = class {
2650
+ constructor(config) {
2651
+ __publicField(this, "config");
2652
+ let processedDetailsSchema;
2653
+ if (config.detailsSchema && isZodSchema(config.detailsSchema)) {
2654
+ const jsonSchema = convertZodToJsonSchema(config.detailsSchema);
2655
+ processedDetailsSchema = {
2656
+ type: "object",
2657
+ properties: jsonSchema.properties || {},
2658
+ required: jsonSchema.required || void 0
2659
+ };
2660
+ } else {
2661
+ processedDetailsSchema = config.detailsSchema;
2662
+ }
2663
+ this.config = {
2664
+ ...config,
2665
+ detailsSchema: processedDetailsSchema
2666
+ };
2667
+ logger9.info(
2668
+ {
2669
+ statusComponentType: config.type
2670
+ },
2671
+ "StatusComponent constructor initialized"
2672
+ );
2673
+ }
2674
+ getType() {
2675
+ return this.config.type;
2676
+ }
2677
+ getDescription() {
2678
+ return this.config.description;
2679
+ }
2680
+ getDetailsSchema() {
2681
+ return this.config.detailsSchema;
2682
+ }
2683
+ };
2684
+ var logger10 = getLogger("tool");
2624
2685
  var Tool = class {
2625
2686
  constructor(config) {
2626
2687
  __publicField(this, "config");
@@ -2632,7 +2693,7 @@ var Tool = class {
2632
2693
  this.baseURL = process.env.INKEEP_API_URL || "http://localhost:3002";
2633
2694
  this.tenantId = "default";
2634
2695
  this.projectId = "default";
2635
- logger9.info(
2696
+ logger10.info(
2636
2697
  {
2637
2698
  Id: this.getId(),
2638
2699
  Name: config.name
@@ -2674,7 +2735,7 @@ var Tool = class {
2674
2735
  if (!options?.skipDatabaseRegistration) {
2675
2736
  await this.upsertTool();
2676
2737
  }
2677
- logger9.info(
2738
+ logger10.info(
2678
2739
  {
2679
2740
  toolId: this.getId()
2680
2741
  },
@@ -2682,7 +2743,7 @@ var Tool = class {
2682
2743
  );
2683
2744
  this.initialized = true;
2684
2745
  } catch (error) {
2685
- logger9.error(
2746
+ logger10.error(
2686
2747
  {
2687
2748
  toolId: this.getId(),
2688
2749
  error: error instanceof Error ? error.message : "Unknown error"
@@ -2714,7 +2775,7 @@ var Tool = class {
2714
2775
  const toolDataForCreate = {
2715
2776
  ...toolDataForUpdate
2716
2777
  };
2717
- logger9.info({ toolDataForCreate }, "toolDataForCreate");
2778
+ logger10.info({ toolDataForCreate }, "toolDataForCreate");
2718
2779
  const updateResponse = await fetch(
2719
2780
  `${this.baseURL}/tenants/${this.tenantId}/projects/${this.projectId}/tools/${this.getId()}`,
2720
2781
  {
@@ -2725,9 +2786,9 @@ var Tool = class {
2725
2786
  body: JSON.stringify(toolDataForUpdate)
2726
2787
  }
2727
2788
  );
2728
- logger9.info({ updateResponse }, "tool updateResponse");
2789
+ logger10.info({ updateResponse }, "tool updateResponse");
2729
2790
  if (updateResponse.ok) {
2730
- logger9.info(
2791
+ logger10.info(
2731
2792
  {
2732
2793
  toolId: this.getId()
2733
2794
  },
@@ -2736,7 +2797,7 @@ var Tool = class {
2736
2797
  return;
2737
2798
  }
2738
2799
  if (updateResponse.status === 404) {
2739
- logger9.info(
2800
+ logger10.info(
2740
2801
  {
2741
2802
  toolId: this.getId()
2742
2803
  },
@@ -2755,7 +2816,7 @@ var Tool = class {
2755
2816
  if (!createResponse.ok) {
2756
2817
  throw new Error(`Failed to create tool: ${createResponse.status}`);
2757
2818
  }
2758
- logger9.info(
2819
+ logger10.info(
2759
2820
  {
2760
2821
  toolId: this.getId()
2761
2822
  },
@@ -2796,7 +2857,7 @@ function normalizeAgentCanUseType(value, fallbackName) {
2796
2857
  }
2797
2858
 
2798
2859
  // src/subAgent.ts
2799
- var logger10 = getLogger("agent");
2860
+ var logger11 = getLogger("agent");
2800
2861
  function resolveGetter2(value) {
2801
2862
  if (typeof value === "function") {
2802
2863
  return value();
@@ -2815,7 +2876,7 @@ var SubAgent = class {
2815
2876
  this.baseURL = process.env.INKEEP_API_URL || "http://localhost:3002";
2816
2877
  this.tenantId = "default";
2817
2878
  this.projectId = "default";
2818
- logger10.info(
2879
+ logger11.info(
2819
2880
  {
2820
2881
  tenantId: this.tenantId,
2821
2882
  subAgentId: this.config.id,
@@ -2965,7 +3026,7 @@ var SubAgent = class {
2965
3026
  await this.saveToolsAndRelations();
2966
3027
  await this.saveDataComponents();
2967
3028
  await this.saveArtifactComponents();
2968
- logger10.info(
3029
+ logger11.info(
2969
3030
  {
2970
3031
  subAgentId: this.getId()
2971
3032
  },
@@ -2973,7 +3034,7 @@ var SubAgent = class {
2973
3034
  );
2974
3035
  this.initialized = true;
2975
3036
  } catch (error) {
2976
- logger10.error(
3037
+ logger11.error(
2977
3038
  {
2978
3039
  subAgentId: this.getId(),
2979
3040
  error: error instanceof Error ? error.message : "Unknown error"
@@ -3005,7 +3066,7 @@ var SubAgent = class {
3005
3066
  }
3006
3067
  );
3007
3068
  if (updateResponse.ok) {
3008
- logger10.info(
3069
+ logger11.info(
3009
3070
  {
3010
3071
  subAgentId: this.getId()
3011
3072
  },
@@ -3014,7 +3075,7 @@ var SubAgent = class {
3014
3075
  return;
3015
3076
  }
3016
3077
  if (updateResponse.status === 404) {
3017
- logger10.info(
3078
+ logger11.info(
3018
3079
  {
3019
3080
  subAgentId: this.getId()
3020
3081
  },
@@ -3033,7 +3094,7 @@ var SubAgent = class {
3033
3094
  `Failed to create agent: ${createResponse.status} ${createResponse.statusText} - ${errorText2}`
3034
3095
  );
3035
3096
  }
3036
- logger10.info(
3097
+ logger11.info(
3037
3098
  {
3038
3099
  subAgentId: this.getId()
3039
3100
  },
@@ -3056,7 +3117,7 @@ var SubAgent = class {
3056
3117
  const normalizedTool = normalizeAgentCanUseType(toolConfig, `tool-${i}`);
3057
3118
  await this.createTool(normalizedTool.toolId, toolConfig);
3058
3119
  } catch (error) {
3059
- logger10.error(
3120
+ logger11.error(
3060
3121
  {
3061
3122
  toolId: isAgentMcpConfig(toolConfig) ? toolConfig.server.getId() : toolConfig.getId?.(),
3062
3123
  error: error instanceof Error ? error.message : "Unknown error"
@@ -3070,7 +3131,7 @@ var SubAgent = class {
3070
3131
  }
3071
3132
  }
3072
3133
  async saveDataComponents() {
3073
- logger10.info({ dataComponents: this.config.dataComponents }, "dataComponents and config");
3134
+ logger11.info({ dataComponents: this.config.dataComponents }, "dataComponents and config");
3074
3135
  const components = resolveGetter2(this.config.dataComponents);
3075
3136
  if (components) {
3076
3137
  for (const dataComponent2 of components) {
@@ -3085,7 +3146,7 @@ var SubAgent = class {
3085
3146
  }
3086
3147
  }
3087
3148
  async saveArtifactComponents() {
3088
- logger10.info(
3149
+ logger11.info(
3089
3150
  { artifactComponents: this.config.artifactComponents },
3090
3151
  "artifactComponents and config"
3091
3152
  );
@@ -3140,7 +3201,7 @@ var SubAgent = class {
3140
3201
  return acc;
3141
3202
  }, []);
3142
3203
  this.config.dataComponents = () => uniqueComponents;
3143
- logger10.info(
3204
+ logger11.info(
3144
3205
  {
3145
3206
  subAgentId: this.getId(),
3146
3207
  dbComponentCount: dbDataComponents.length,
@@ -3150,7 +3211,7 @@ var SubAgent = class {
3150
3211
  "Loaded and merged data components"
3151
3212
  );
3152
3213
  } catch (error) {
3153
- logger10.error(
3214
+ logger11.error(
3154
3215
  {
3155
3216
  subAgentId: this.getId(),
3156
3217
  error: error instanceof Error ? error.message : "Unknown error"
@@ -3197,7 +3258,7 @@ var SubAgent = class {
3197
3258
  return acc;
3198
3259
  }, []);
3199
3260
  this.config.artifactComponents = () => uniqueComponents;
3200
- logger10.info(
3261
+ logger11.info(
3201
3262
  {
3202
3263
  subAgentId: this.getId(),
3203
3264
  dbComponentCount: dbArtifactComponents.length,
@@ -3207,7 +3268,7 @@ var SubAgent = class {
3207
3268
  "Loaded and merged artifact components"
3208
3269
  );
3209
3270
  } catch (error) {
3210
- logger10.error(
3271
+ logger11.error(
3211
3272
  {
3212
3273
  subAgentId: this.getId(),
3213
3274
  error: error instanceof Error ? error.message : "Unknown error"
@@ -3221,7 +3282,7 @@ var SubAgent = class {
3221
3282
  const functionData = functionTool2.serializeFunction();
3222
3283
  const toolData = functionTool2.serializeTool();
3223
3284
  const functionUrl = `${this.baseURL}/tenants/${this.tenantId}/crud/projects/${this.projectId}/functions`;
3224
- logger10.info(
3285
+ logger11.info(
3225
3286
  {
3226
3287
  agentId: this.getId(),
3227
3288
  toolId,
@@ -3241,7 +3302,7 @@ var SubAgent = class {
3241
3302
  dependencies: functionData.dependencies
3242
3303
  })
3243
3304
  });
3244
- logger10.info(
3305
+ logger11.info(
3245
3306
  {
3246
3307
  agentId: this.getId(),
3247
3308
  toolId,
@@ -3252,7 +3313,7 @@ var SubAgent = class {
3252
3313
  );
3253
3314
  if (!functionResponse.ok) {
3254
3315
  const errorText = await functionResponse.text();
3255
- logger10.error(
3316
+ logger11.error(
3256
3317
  {
3257
3318
  agentId: this.getId(),
3258
3319
  toolId,
@@ -3265,7 +3326,7 @@ var SubAgent = class {
3265
3326
  throw new Error(`Failed to create function: ${functionResponse.status} ${errorText}`);
3266
3327
  }
3267
3328
  const toolUrl = `${this.baseURL}/tenants/${this.tenantId}/crud/projects/${this.projectId}/tools`;
3268
- logger10.info(
3329
+ logger11.info(
3269
3330
  {
3270
3331
  agentId: this.getId(),
3271
3332
  toolId,
@@ -3289,7 +3350,7 @@ var SubAgent = class {
3289
3350
  }
3290
3351
  })
3291
3352
  });
3292
- logger10.info(
3353
+ logger11.info(
3293
3354
  {
3294
3355
  agentId: this.getId(),
3295
3356
  toolId,
@@ -3300,7 +3361,7 @@ var SubAgent = class {
3300
3361
  );
3301
3362
  if (!toolResponse.ok) {
3302
3363
  const errorText = await toolResponse.text();
3303
- logger10.error(
3364
+ logger11.error(
3304
3365
  {
3305
3366
  agentId: this.getId(),
3306
3367
  toolId,
@@ -3313,7 +3374,7 @@ var SubAgent = class {
3313
3374
  throw new Error(`Failed to create tool: ${toolResponse.status} ${errorText}`);
3314
3375
  }
3315
3376
  await this.createAgentToolRelation(toolData.id);
3316
- logger10.info(
3377
+ logger11.info(
3317
3378
  {
3318
3379
  agentId: this.getId(),
3319
3380
  functionId: functionData.id,
@@ -3322,7 +3383,7 @@ var SubAgent = class {
3322
3383
  "Function and tool created successfully"
3323
3384
  );
3324
3385
  } catch (error) {
3325
- logger10.error(
3386
+ logger11.error(
3326
3387
  {
3327
3388
  agentId: this.getId(),
3328
3389
  toolId,
@@ -3341,7 +3402,7 @@ var SubAgent = class {
3341
3402
  return;
3342
3403
  }
3343
3404
  if (toolConfig.type === "function") {
3344
- logger10.info(
3405
+ logger11.info(
3345
3406
  {
3346
3407
  subAgentId: this.getId(),
3347
3408
  toolId
@@ -3373,7 +3434,7 @@ var SubAgent = class {
3373
3434
  await tool.init();
3374
3435
  }
3375
3436
  await this.createAgentToolRelation(tool.getId(), selectedTools, headers);
3376
- logger10.info(
3437
+ logger11.info(
3377
3438
  {
3378
3439
  subAgentId: this.getId(),
3379
3440
  toolId: tool.getId()
@@ -3381,7 +3442,7 @@ var SubAgent = class {
3381
3442
  "Tool created and linked to agent"
3382
3443
  );
3383
3444
  } catch (error) {
3384
- logger10.error(
3445
+ logger11.error(
3385
3446
  {
3386
3447
  subAgentId: this.getId(),
3387
3448
  toolId,
@@ -3403,7 +3464,7 @@ var SubAgent = class {
3403
3464
  dc.setContext(this.tenantId, this.projectId);
3404
3465
  await dc.init();
3405
3466
  await this.createAgentDataComponentRelation(dc.getId());
3406
- logger10.info(
3467
+ logger11.info(
3407
3468
  {
3408
3469
  subAgentId: this.getId(),
3409
3470
  dataComponentId: dc.getId()
@@ -3411,7 +3472,7 @@ var SubAgent = class {
3411
3472
  "DataComponent created and linked to agent"
3412
3473
  );
3413
3474
  } catch (error) {
3414
- logger10.error(
3475
+ logger11.error(
3415
3476
  {
3416
3477
  subAgentId: this.getId(),
3417
3478
  dataComponentName: dataComponent2.name,
@@ -3433,7 +3494,7 @@ var SubAgent = class {
3433
3494
  ac.setContext(this.tenantId, this.projectId);
3434
3495
  await ac.init();
3435
3496
  await this.createAgentArtifactComponentRelation(ac.getId());
3436
- logger10.info(
3497
+ logger11.info(
3437
3498
  {
3438
3499
  subAgentId: this.getId(),
3439
3500
  artifactComponentId: ac.getId()
@@ -3441,7 +3502,7 @@ var SubAgent = class {
3441
3502
  "ArtifactComponent created and linked to agent"
3442
3503
  );
3443
3504
  } catch (error) {
3444
- logger10.error(
3505
+ logger11.error(
3445
3506
  {
3446
3507
  subAgentId: this.getId(),
3447
3508
  artifactComponentName: artifactComponent2.name,
@@ -3473,7 +3534,7 @@ var SubAgent = class {
3473
3534
  `Failed to create agent-dataComponent relation: ${relationResponse.status} ${relationResponse.statusText}`
3474
3535
  );
3475
3536
  }
3476
- logger10.info(
3537
+ logger11.info(
3477
3538
  {
3478
3539
  subAgentId: this.getId(),
3479
3540
  dataComponentId
@@ -3502,7 +3563,7 @@ var SubAgent = class {
3502
3563
  `Failed to create agent-artifactComponent relation: ${relationResponse.status} ${relationResponse.statusText}`
3503
3564
  );
3504
3565
  }
3505
- logger10.info(
3566
+ logger11.info(
3506
3567
  {
3507
3568
  subAgentId: this.getId(),
3508
3569
  artifactComponentId
@@ -3600,6 +3661,9 @@ function dataComponent(config) {
3600
3661
  };
3601
3662
  return new DataComponent(configWithId);
3602
3663
  }
3664
+ function statusComponent(config) {
3665
+ return new StatusComponent(config);
3666
+ }
3603
3667
  function agentMcp(config) {
3604
3668
  return {
3605
3669
  server: config.server,
@@ -3672,7 +3736,7 @@ function createEnvironmentSettings(environments) {
3672
3736
  function registerEnvironmentSettings(config) {
3673
3737
  return config;
3674
3738
  }
3675
- var logger11 = getLogger("external-agent-builder");
3739
+ var logger12 = getLogger("external-agent-builder");
3676
3740
  var ExternalAgent = class {
3677
3741
  constructor(config) {
3678
3742
  __publicField(this, "config");
@@ -3683,7 +3747,7 @@ var ExternalAgent = class {
3683
3747
  this.config = { ...config, type: "external" };
3684
3748
  this.tenantId = "default";
3685
3749
  this.baseURL = process.env.INKEEP_API_URL || "http://localhost:3002";
3686
- logger11.debug(
3750
+ logger12.debug(
3687
3751
  {
3688
3752
  externalAgentName: this.config.name,
3689
3753
  baseUrl: this.config.baseUrl,
@@ -3699,7 +3763,7 @@ var ExternalAgent = class {
3699
3763
  if (this.initialized) return;
3700
3764
  try {
3701
3765
  await this.upsertExternalAgent();
3702
- logger11.info(
3766
+ logger12.info(
3703
3767
  {
3704
3768
  externalSubAgentId: this.getId()
3705
3769
  },
@@ -3707,7 +3771,7 @@ var ExternalAgent = class {
3707
3771
  );
3708
3772
  this.initialized = true;
3709
3773
  } catch (error) {
3710
- logger11.error(
3774
+ logger12.error(
3711
3775
  {
3712
3776
  externalSubAgentId: this.getId(),
3713
3777
  error: error instanceof Error ? error.message : "Unknown error"
@@ -3749,7 +3813,7 @@ var ExternalAgent = class {
3749
3813
  }
3750
3814
  );
3751
3815
  if (updateResponse.ok) {
3752
- logger11.info(
3816
+ logger12.info(
3753
3817
  {
3754
3818
  externalSubAgentId: this.getId()
3755
3819
  },
@@ -3758,7 +3822,7 @@ var ExternalAgent = class {
3758
3822
  return;
3759
3823
  }
3760
3824
  if (updateResponse.status === 404) {
3761
- logger11.info(
3825
+ logger12.info(
3762
3826
  {
3763
3827
  externalSubAgentId: this.getId()
3764
3828
  },
@@ -3780,7 +3844,7 @@ var ExternalAgent = class {
3780
3844
  `Failed to create external agent: ${createResponse.status} ${createResponse.statusText} - ${errorText2}`
3781
3845
  );
3782
3846
  }
3783
- logger11.info(
3847
+ logger12.info(
3784
3848
  {
3785
3849
  externalSubAgentId: this.getId()
3786
3850
  },
@@ -3855,7 +3919,7 @@ var MaxTurnsExceededError = class extends AgentError {
3855
3919
  };
3856
3920
 
3857
3921
  // src/runner.ts
3858
- var logger12 = getLogger("runner");
3922
+ var logger13 = getLogger("runner");
3859
3923
  var Runner = class _Runner {
3860
3924
  /**
3861
3925
  * Run an agent until completion, handling transfers and tool calls
@@ -3867,7 +3931,7 @@ var Runner = class _Runner {
3867
3931
  let turnCount = 0;
3868
3932
  const messageHistory = _Runner.normalizeToMessageHistory(messages);
3869
3933
  const allToolCalls = [];
3870
- logger12.info(
3934
+ logger13.info(
3871
3935
  {
3872
3936
  agentId: agent2.getId(),
3873
3937
  defaultSubAgent: agent2.getDefaultSubAgent()?.getName(),
@@ -3877,7 +3941,7 @@ var Runner = class _Runner {
3877
3941
  "Starting agent run"
3878
3942
  );
3879
3943
  while (turnCount < maxTurns) {
3880
- logger12.debug(
3944
+ logger13.debug(
3881
3945
  {
3882
3946
  agentId: agent2.getId(),
3883
3947
  turnCount,
@@ -3887,7 +3951,7 @@ var Runner = class _Runner {
3887
3951
  );
3888
3952
  const response = await agent2.generate(messageHistory, options);
3889
3953
  turnCount++;
3890
- logger12.info(
3954
+ logger13.info(
3891
3955
  {
3892
3956
  agentId: agent2.getId(),
3893
3957
  turnCount,
@@ -3907,7 +3971,7 @@ var Runner = class _Runner {
3907
3971
  }
3908
3972
  };
3909
3973
  }
3910
- logger12.error(
3974
+ logger13.error(
3911
3975
  {
3912
3976
  agentId: agent2.getId(),
3913
3977
  maxTurns,
@@ -3921,7 +3985,7 @@ var Runner = class _Runner {
3921
3985
  * Stream an agent's response
3922
3986
  */
3923
3987
  static async stream(agent2, messages, options) {
3924
- logger12.info(
3988
+ logger13.info(
3925
3989
  {
3926
3990
  agentId: agent2.getId(),
3927
3991
  defaultSubAgent: agent2.getDefaultSubAgent()?.getName()
@@ -3937,7 +4001,7 @@ var Runner = class _Runner {
3937
4001
  if (agent2.length === 0) {
3938
4002
  throw new Error("No agent provided for race");
3939
4003
  }
3940
- logger12.info(
4004
+ logger13.info(
3941
4005
  {
3942
4006
  agentCount: agent2.length,
3943
4007
  agentIds: agent2.map((g) => g.getId())
@@ -3949,7 +4013,7 @@ var Runner = class _Runner {
3949
4013
  const result2 = await _Runner.run(agent3, messages, options);
3950
4014
  return { ...result2, raceIndex: index };
3951
4015
  } catch (error) {
3952
- logger12.error(
4016
+ logger13.error(
3953
4017
  {
3954
4018
  agentId: agent3.getId(),
3955
4019
  error: error instanceof Error ? error.message : "Unknown error"
@@ -3960,7 +4024,7 @@ var Runner = class _Runner {
3960
4024
  }
3961
4025
  });
3962
4026
  const result = await Promise.race(promises);
3963
- logger12.info(
4027
+ logger13.info(
3964
4028
  {
3965
4029
  winningAgentId: result.agentId || "unknown",
3966
4030
  raceIndex: result.raceIndex
@@ -4034,4 +4098,4 @@ var run = Runner.run.bind(Runner);
4034
4098
  var stream = Runner.stream.bind(Runner);
4035
4099
  var raceAgents = Runner.raceAgents.bind(Runner);
4036
4100
 
4037
- export { ArtifactComponent, DataComponent, ExternalAgent, FunctionTool, Project, Runner, SubAgent, Tool, agent, agentMcp, artifactComponent, createEnvironmentSettings, createFullProjectViaAPI, credential, credentialRef, dataComponent, deleteFullProjectViaAPI, externalAgent, externalAgents, functionTool, getFullProjectViaAPI, isCredentialReference, mcpServer, mcpTool, project, raceAgents, registerEnvironmentSettings, run, stream, subAgent, transfer, updateFullProjectViaAPI };
4101
+ export { ArtifactComponent, DataComponent, ExternalAgent, FunctionTool, Project, Runner, StatusComponent, SubAgent, Tool, agent, agentMcp, artifactComponent, createEnvironmentSettings, createFullProjectViaAPI, credential, credentialRef, dataComponent, deleteFullProjectViaAPI, externalAgent, externalAgents, functionTool, getFullProjectViaAPI, isCredentialReference, mcpServer, mcpTool, project, raceAgents, registerEnvironmentSettings, run, statusComponent, stream, subAgent, transfer, updateFullProjectViaAPI };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inkeep/agents-sdk",
3
- "version": "0.21.1",
3
+ "version": "0.22.0",
4
4
  "description": "Agents SDK for building and managing agents in the Inkeep Agent Framework",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -12,7 +12,7 @@
12
12
  "nanoid": "^5.1.5",
13
13
  "typescript": "^5.3.3",
14
14
  "zod": "^4.1.11",
15
- "@inkeep/agents-core": "^0.21.1"
15
+ "@inkeep/agents-core": "^0.22.0"
16
16
  },
17
17
  "devDependencies": {
18
18
  "@types/js-yaml": "^4.0.9",