@vm0/runner 3.11.2 → 3.11.3

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.
Files changed (2) hide show
  1. package/index.js +521 -406
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -2285,6 +2285,20 @@ var VsockClient = class {
2285
2285
  }
2286
2286
  this.cachedExits.clear();
2287
2287
  }
2288
+ /**
2289
+ * Send raw bytes directly to the socket (for testing only)
2290
+ *
2291
+ * This allows tests to send malformed messages to verify the agent's
2292
+ * protocol error handling (e.g., oversized messages).
2293
+ *
2294
+ * @internal This method is only for testing purposes
2295
+ */
2296
+ sendRawForTesting(data) {
2297
+ if (!this.connected || !this.socket) {
2298
+ throw new Error("Not connected - call waitForGuestConnection() first");
2299
+ }
2300
+ this.socket.write(data);
2301
+ }
2288
2302
  };
2289
2303
 
2290
2304
  // ../../packages/core/src/contracts/base.ts
@@ -7705,58 +7719,159 @@ var credentialsByNameContract = c10.router({
7705
7719
  }
7706
7720
  });
7707
7721
 
7708
- // ../../packages/core/src/contracts/model-providers.ts
7722
+ // ../../packages/core/src/contracts/secrets.ts
7709
7723
  import { z as z18 } from "zod";
7710
7724
  var c11 = initContract();
7711
- var modelProviderTypeSchema = z18.enum([
7725
+ var secretNameSchema = z18.string().min(1, "Secret name is required").max(255, "Secret name must be at most 255 characters").regex(
7726
+ /^[A-Z][A-Z0-9_]*$/,
7727
+ "Secret name must contain only uppercase letters, numbers, and underscores, and must start with a letter (e.g., MY_API_KEY)"
7728
+ );
7729
+ var secretTypeSchema = z18.enum(["user", "model-provider"]);
7730
+ var secretResponseSchema = z18.object({
7731
+ id: z18.string().uuid(),
7732
+ name: z18.string(),
7733
+ description: z18.string().nullable(),
7734
+ type: secretTypeSchema,
7735
+ createdAt: z18.string(),
7736
+ updatedAt: z18.string()
7737
+ });
7738
+ var secretListResponseSchema = z18.object({
7739
+ secrets: z18.array(secretResponseSchema)
7740
+ });
7741
+ var setSecretRequestSchema = z18.object({
7742
+ name: secretNameSchema,
7743
+ value: z18.string().min(1, "Secret value is required"),
7744
+ description: z18.string().max(1e3).optional()
7745
+ });
7746
+ var secretsMainContract = c11.router({
7747
+ /**
7748
+ * GET /api/secrets
7749
+ * List all secrets for the current user's scope (metadata only)
7750
+ */
7751
+ list: {
7752
+ method: "GET",
7753
+ path: "/api/secrets",
7754
+ headers: authHeadersSchema,
7755
+ responses: {
7756
+ 200: secretListResponseSchema,
7757
+ 401: apiErrorSchema,
7758
+ 500: apiErrorSchema
7759
+ },
7760
+ summary: "List all secrets (metadata only)"
7761
+ },
7762
+ /**
7763
+ * PUT /api/secrets
7764
+ * Create or update a secret
7765
+ */
7766
+ set: {
7767
+ method: "PUT",
7768
+ path: "/api/secrets",
7769
+ headers: authHeadersSchema,
7770
+ body: setSecretRequestSchema,
7771
+ responses: {
7772
+ 200: secretResponseSchema,
7773
+ 201: secretResponseSchema,
7774
+ 400: apiErrorSchema,
7775
+ 401: apiErrorSchema,
7776
+ 500: apiErrorSchema
7777
+ },
7778
+ summary: "Create or update a secret"
7779
+ }
7780
+ });
7781
+ var secretsByNameContract = c11.router({
7782
+ /**
7783
+ * GET /api/secrets/:name
7784
+ * Get a secret by name (metadata only)
7785
+ */
7786
+ get: {
7787
+ method: "GET",
7788
+ path: "/api/secrets/:name",
7789
+ headers: authHeadersSchema,
7790
+ pathParams: z18.object({
7791
+ name: secretNameSchema
7792
+ }),
7793
+ responses: {
7794
+ 200: secretResponseSchema,
7795
+ 401: apiErrorSchema,
7796
+ 404: apiErrorSchema,
7797
+ 500: apiErrorSchema
7798
+ },
7799
+ summary: "Get secret metadata by name"
7800
+ },
7801
+ /**
7802
+ * DELETE /api/secrets/:name
7803
+ * Delete a secret by name
7804
+ */
7805
+ delete: {
7806
+ method: "DELETE",
7807
+ path: "/api/secrets/:name",
7808
+ headers: authHeadersSchema,
7809
+ pathParams: z18.object({
7810
+ name: secretNameSchema
7811
+ }),
7812
+ responses: {
7813
+ 204: c11.noBody(),
7814
+ 401: apiErrorSchema,
7815
+ 404: apiErrorSchema,
7816
+ 500: apiErrorSchema
7817
+ },
7818
+ summary: "Delete a secret"
7819
+ }
7820
+ });
7821
+
7822
+ // ../../packages/core/src/contracts/model-providers.ts
7823
+ import { z as z19 } from "zod";
7824
+ var c12 = initContract();
7825
+ var modelProviderTypeSchema = z19.enum([
7712
7826
  "claude-code-oauth-token",
7713
7827
  "anthropic-api-key",
7714
7828
  "openrouter-api-key",
7715
7829
  "moonshot-api-key",
7716
7830
  "minimax-api-key",
7717
7831
  "deepseek-api-key",
7832
+ "zai-api-key",
7718
7833
  "aws-bedrock"
7719
7834
  ]);
7720
- var modelProviderFrameworkSchema = z18.enum(["claude-code", "codex"]);
7721
- var modelProviderResponseSchema = z18.object({
7722
- id: z18.string().uuid(),
7835
+ var modelProviderFrameworkSchema = z19.enum(["claude-code", "codex"]);
7836
+ var modelProviderResponseSchema = z19.object({
7837
+ id: z19.string().uuid(),
7723
7838
  type: modelProviderTypeSchema,
7724
7839
  framework: modelProviderFrameworkSchema,
7725
- credentialName: z18.string().nullable(),
7840
+ credentialName: z19.string().nullable(),
7726
7841
  // Legacy single-credential (deprecated for multi-auth)
7727
- authMethod: z18.string().nullable(),
7842
+ authMethod: z19.string().nullable(),
7728
7843
  // For multi-auth providers
7729
- credentialNames: z18.array(z18.string()).nullable(),
7844
+ credentialNames: z19.array(z19.string()).nullable(),
7730
7845
  // For multi-auth providers
7731
- isDefault: z18.boolean(),
7732
- selectedModel: z18.string().nullable(),
7733
- createdAt: z18.string(),
7734
- updatedAt: z18.string()
7846
+ isDefault: z19.boolean(),
7847
+ selectedModel: z19.string().nullable(),
7848
+ createdAt: z19.string(),
7849
+ updatedAt: z19.string()
7735
7850
  });
7736
- var modelProviderListResponseSchema = z18.object({
7737
- modelProviders: z18.array(modelProviderResponseSchema)
7851
+ var modelProviderListResponseSchema = z19.object({
7852
+ modelProviders: z19.array(modelProviderResponseSchema)
7738
7853
  });
7739
- var upsertModelProviderRequestSchema = z18.object({
7854
+ var upsertModelProviderRequestSchema = z19.object({
7740
7855
  type: modelProviderTypeSchema,
7741
- credential: z18.string().min(1).optional(),
7856
+ credential: z19.string().min(1).optional(),
7742
7857
  // Legacy single credential
7743
- authMethod: z18.string().optional(),
7858
+ authMethod: z19.string().optional(),
7744
7859
  // For multi-auth providers
7745
- credentials: z18.record(z18.string(), z18.string()).optional(),
7860
+ credentials: z19.record(z19.string(), z19.string()).optional(),
7746
7861
  // For multi-auth providers
7747
- convert: z18.boolean().optional(),
7748
- selectedModel: z18.string().optional()
7862
+ convert: z19.boolean().optional(),
7863
+ selectedModel: z19.string().optional()
7749
7864
  });
7750
- var upsertModelProviderResponseSchema = z18.object({
7865
+ var upsertModelProviderResponseSchema = z19.object({
7751
7866
  provider: modelProviderResponseSchema,
7752
- created: z18.boolean()
7867
+ created: z19.boolean()
7753
7868
  });
7754
- var checkCredentialResponseSchema = z18.object({
7755
- exists: z18.boolean(),
7756
- credentialName: z18.string(),
7757
- currentType: z18.enum(["user", "model-provider"]).optional()
7869
+ var checkCredentialResponseSchema = z19.object({
7870
+ exists: z19.boolean(),
7871
+ credentialName: z19.string(),
7872
+ currentType: z19.enum(["user", "model-provider"]).optional()
7758
7873
  });
7759
- var modelProvidersMainContract = c11.router({
7874
+ var modelProvidersMainContract = c12.router({
7760
7875
  list: {
7761
7876
  method: "GET",
7762
7877
  path: "/api/model-providers",
@@ -7784,12 +7899,12 @@ var modelProvidersMainContract = c11.router({
7784
7899
  summary: "Create or update a model provider"
7785
7900
  }
7786
7901
  });
7787
- var modelProvidersCheckContract = c11.router({
7902
+ var modelProvidersCheckContract = c12.router({
7788
7903
  check: {
7789
7904
  method: "GET",
7790
7905
  path: "/api/model-providers/check/:type",
7791
7906
  headers: authHeadersSchema,
7792
- pathParams: z18.object({
7907
+ pathParams: z19.object({
7793
7908
  type: modelProviderTypeSchema
7794
7909
  }),
7795
7910
  responses: {
@@ -7800,16 +7915,16 @@ var modelProvidersCheckContract = c11.router({
7800
7915
  summary: "Check if credential exists for a model provider type"
7801
7916
  }
7802
7917
  });
7803
- var modelProvidersByTypeContract = c11.router({
7918
+ var modelProvidersByTypeContract = c12.router({
7804
7919
  delete: {
7805
7920
  method: "DELETE",
7806
7921
  path: "/api/model-providers/:type",
7807
7922
  headers: authHeadersSchema,
7808
- pathParams: z18.object({
7923
+ pathParams: z19.object({
7809
7924
  type: modelProviderTypeSchema
7810
7925
  }),
7811
7926
  responses: {
7812
- 204: c11.noBody(),
7927
+ 204: c12.noBody(),
7813
7928
  401: apiErrorSchema,
7814
7929
  404: apiErrorSchema,
7815
7930
  500: apiErrorSchema
@@ -7817,15 +7932,15 @@ var modelProvidersByTypeContract = c11.router({
7817
7932
  summary: "Delete a model provider"
7818
7933
  }
7819
7934
  });
7820
- var modelProvidersConvertContract = c11.router({
7935
+ var modelProvidersConvertContract = c12.router({
7821
7936
  convert: {
7822
7937
  method: "POST",
7823
7938
  path: "/api/model-providers/:type/convert",
7824
7939
  headers: authHeadersSchema,
7825
- pathParams: z18.object({
7940
+ pathParams: z19.object({
7826
7941
  type: modelProviderTypeSchema
7827
7942
  }),
7828
- body: z18.undefined(),
7943
+ body: z19.undefined(),
7829
7944
  responses: {
7830
7945
  200: modelProviderResponseSchema,
7831
7946
  400: apiErrorSchema,
@@ -7836,15 +7951,15 @@ var modelProvidersConvertContract = c11.router({
7836
7951
  summary: "Convert existing user credential to model provider"
7837
7952
  }
7838
7953
  });
7839
- var modelProvidersSetDefaultContract = c11.router({
7954
+ var modelProvidersSetDefaultContract = c12.router({
7840
7955
  setDefault: {
7841
7956
  method: "POST",
7842
7957
  path: "/api/model-providers/:type/set-default",
7843
7958
  headers: authHeadersSchema,
7844
- pathParams: z18.object({
7959
+ pathParams: z19.object({
7845
7960
  type: modelProviderTypeSchema
7846
7961
  }),
7847
- body: z18.undefined(),
7962
+ body: z19.undefined(),
7848
7963
  responses: {
7849
7964
  200: modelProviderResponseSchema,
7850
7965
  401: apiErrorSchema,
@@ -7854,15 +7969,15 @@ var modelProvidersSetDefaultContract = c11.router({
7854
7969
  summary: "Set a model provider as default for its framework"
7855
7970
  }
7856
7971
  });
7857
- var updateModelRequestSchema = z18.object({
7858
- selectedModel: z18.string().optional()
7972
+ var updateModelRequestSchema = z19.object({
7973
+ selectedModel: z19.string().optional()
7859
7974
  });
7860
- var modelProvidersUpdateModelContract = c11.router({
7975
+ var modelProvidersUpdateModelContract = c12.router({
7861
7976
  updateModel: {
7862
7977
  method: "PATCH",
7863
7978
  path: "/api/model-providers/:type/model",
7864
7979
  headers: authHeadersSchema,
7865
- pathParams: z18.object({
7980
+ pathParams: z19.object({
7866
7981
  type: modelProviderTypeSchema
7867
7982
  }),
7868
7983
  body: updateModelRequestSchema,
@@ -7877,42 +7992,42 @@ var modelProvidersUpdateModelContract = c11.router({
7877
7992
  });
7878
7993
 
7879
7994
  // ../../packages/core/src/contracts/sessions.ts
7880
- import { z as z19 } from "zod";
7881
- var c12 = initContract();
7882
- var sessionResponseSchema = z19.object({
7883
- id: z19.string(),
7884
- agentComposeId: z19.string(),
7885
- agentComposeVersionId: z19.string().nullable(),
7886
- conversationId: z19.string().nullable(),
7887
- artifactName: z19.string().nullable(),
7888
- vars: z19.record(z19.string(), z19.string()).nullable(),
7889
- secretNames: z19.array(z19.string()).nullable(),
7890
- volumeVersions: z19.record(z19.string(), z19.string()).nullable(),
7891
- createdAt: z19.string(),
7892
- updatedAt: z19.string()
7995
+ import { z as z20 } from "zod";
7996
+ var c13 = initContract();
7997
+ var sessionResponseSchema = z20.object({
7998
+ id: z20.string(),
7999
+ agentComposeId: z20.string(),
8000
+ agentComposeVersionId: z20.string().nullable(),
8001
+ conversationId: z20.string().nullable(),
8002
+ artifactName: z20.string().nullable(),
8003
+ vars: z20.record(z20.string(), z20.string()).nullable(),
8004
+ secretNames: z20.array(z20.string()).nullable(),
8005
+ volumeVersions: z20.record(z20.string(), z20.string()).nullable(),
8006
+ createdAt: z20.string(),
8007
+ updatedAt: z20.string()
7893
8008
  });
7894
- var agentComposeSnapshotSchema = z19.object({
7895
- agentComposeVersionId: z19.string(),
7896
- vars: z19.record(z19.string(), z19.string()).optional(),
7897
- secretNames: z19.array(z19.string()).optional()
8009
+ var agentComposeSnapshotSchema = z20.object({
8010
+ agentComposeVersionId: z20.string(),
8011
+ vars: z20.record(z20.string(), z20.string()).optional(),
8012
+ secretNames: z20.array(z20.string()).optional()
7898
8013
  });
7899
- var artifactSnapshotSchema2 = z19.object({
7900
- artifactName: z19.string(),
7901
- artifactVersion: z19.string()
8014
+ var artifactSnapshotSchema2 = z20.object({
8015
+ artifactName: z20.string(),
8016
+ artifactVersion: z20.string()
7902
8017
  });
7903
- var volumeVersionsSnapshotSchema2 = z19.object({
7904
- versions: z19.record(z19.string(), z19.string())
8018
+ var volumeVersionsSnapshotSchema2 = z20.object({
8019
+ versions: z20.record(z20.string(), z20.string())
7905
8020
  });
7906
- var checkpointResponseSchema = z19.object({
7907
- id: z19.string(),
7908
- runId: z19.string(),
7909
- conversationId: z19.string(),
8021
+ var checkpointResponseSchema = z20.object({
8022
+ id: z20.string(),
8023
+ runId: z20.string(),
8024
+ conversationId: z20.string(),
7910
8025
  agentComposeSnapshot: agentComposeSnapshotSchema,
7911
8026
  artifactSnapshot: artifactSnapshotSchema2.nullable(),
7912
8027
  volumeVersionsSnapshot: volumeVersionsSnapshotSchema2.nullable(),
7913
- createdAt: z19.string()
8028
+ createdAt: z20.string()
7914
8029
  });
7915
- var sessionsByIdContract = c12.router({
8030
+ var sessionsByIdContract = c13.router({
7916
8031
  /**
7917
8032
  * GET /api/agent/sessions/:id
7918
8033
  * Get session by ID
@@ -7921,8 +8036,8 @@ var sessionsByIdContract = c12.router({
7921
8036
  method: "GET",
7922
8037
  path: "/api/agent/sessions/:id",
7923
8038
  headers: authHeadersSchema,
7924
- pathParams: z19.object({
7925
- id: z19.string().min(1, "Session ID is required")
8039
+ pathParams: z20.object({
8040
+ id: z20.string().min(1, "Session ID is required")
7926
8041
  }),
7927
8042
  responses: {
7928
8043
  200: sessionResponseSchema,
@@ -7933,7 +8048,7 @@ var sessionsByIdContract = c12.router({
7933
8048
  summary: "Get session by ID"
7934
8049
  }
7935
8050
  });
7936
- var checkpointsByIdContract = c12.router({
8051
+ var checkpointsByIdContract = c13.router({
7937
8052
  /**
7938
8053
  * GET /api/agent/checkpoints/:id
7939
8054
  * Get checkpoint by ID
@@ -7942,8 +8057,8 @@ var checkpointsByIdContract = c12.router({
7942
8057
  method: "GET",
7943
8058
  path: "/api/agent/checkpoints/:id",
7944
8059
  headers: authHeadersSchema,
7945
- pathParams: z19.object({
7946
- id: z19.string().min(1, "Checkpoint ID is required")
8060
+ pathParams: z20.object({
8061
+ id: z20.string().min(1, "Checkpoint ID is required")
7947
8062
  }),
7948
8063
  responses: {
7949
8064
  200: checkpointResponseSchema,
@@ -7956,93 +8071,93 @@ var checkpointsByIdContract = c12.router({
7956
8071
  });
7957
8072
 
7958
8073
  // ../../packages/core/src/contracts/schedules.ts
7959
- import { z as z20 } from "zod";
7960
- var c13 = initContract();
7961
- var scheduleTriggerSchema = z20.object({
7962
- cron: z20.string().optional(),
7963
- at: z20.string().optional(),
7964
- timezone: z20.string().default("UTC")
8074
+ import { z as z21 } from "zod";
8075
+ var c14 = initContract();
8076
+ var scheduleTriggerSchema = z21.object({
8077
+ cron: z21.string().optional(),
8078
+ at: z21.string().optional(),
8079
+ timezone: z21.string().default("UTC")
7965
8080
  }).refine((data) => data.cron && !data.at || !data.cron && data.at, {
7966
8081
  message: "Exactly one of 'cron' or 'at' must be specified"
7967
8082
  });
7968
- var scheduleRunConfigSchema = z20.object({
7969
- agent: z20.string().min(1, "Agent reference required"),
7970
- prompt: z20.string().min(1, "Prompt required"),
7971
- vars: z20.record(z20.string(), z20.string()).optional(),
7972
- secrets: z20.record(z20.string(), z20.string()).optional(),
7973
- artifactName: z20.string().optional(),
7974
- artifactVersion: z20.string().optional(),
7975
- volumeVersions: z20.record(z20.string(), z20.string()).optional()
8083
+ var scheduleRunConfigSchema = z21.object({
8084
+ agent: z21.string().min(1, "Agent reference required"),
8085
+ prompt: z21.string().min(1, "Prompt required"),
8086
+ vars: z21.record(z21.string(), z21.string()).optional(),
8087
+ secrets: z21.record(z21.string(), z21.string()).optional(),
8088
+ artifactName: z21.string().optional(),
8089
+ artifactVersion: z21.string().optional(),
8090
+ volumeVersions: z21.record(z21.string(), z21.string()).optional()
7976
8091
  });
7977
- var scheduleDefinitionSchema = z20.object({
8092
+ var scheduleDefinitionSchema = z21.object({
7978
8093
  on: scheduleTriggerSchema,
7979
8094
  run: scheduleRunConfigSchema
7980
8095
  });
7981
- var scheduleYamlSchema = z20.object({
7982
- version: z20.literal("1.0"),
7983
- schedules: z20.record(z20.string(), scheduleDefinitionSchema)
7984
- });
7985
- var deployScheduleRequestSchema = z20.object({
7986
- name: z20.string().min(1).max(64, "Schedule name max 64 chars"),
7987
- cronExpression: z20.string().optional(),
7988
- atTime: z20.string().optional(),
7989
- timezone: z20.string().default("UTC"),
7990
- prompt: z20.string().min(1, "Prompt required"),
7991
- vars: z20.record(z20.string(), z20.string()).optional(),
7992
- secrets: z20.record(z20.string(), z20.string()).optional(),
7993
- artifactName: z20.string().optional(),
7994
- artifactVersion: z20.string().optional(),
7995
- volumeVersions: z20.record(z20.string(), z20.string()).optional(),
8096
+ var scheduleYamlSchema = z21.object({
8097
+ version: z21.literal("1.0"),
8098
+ schedules: z21.record(z21.string(), scheduleDefinitionSchema)
8099
+ });
8100
+ var deployScheduleRequestSchema = z21.object({
8101
+ name: z21.string().min(1).max(64, "Schedule name max 64 chars"),
8102
+ cronExpression: z21.string().optional(),
8103
+ atTime: z21.string().optional(),
8104
+ timezone: z21.string().default("UTC"),
8105
+ prompt: z21.string().min(1, "Prompt required"),
8106
+ vars: z21.record(z21.string(), z21.string()).optional(),
8107
+ secrets: z21.record(z21.string(), z21.string()).optional(),
8108
+ artifactName: z21.string().optional(),
8109
+ artifactVersion: z21.string().optional(),
8110
+ volumeVersions: z21.record(z21.string(), z21.string()).optional(),
7996
8111
  // Resolved agent compose ID (CLI resolves scope/name:version → composeId)
7997
- composeId: z20.string().uuid("Invalid compose ID")
8112
+ composeId: z21.string().uuid("Invalid compose ID")
7998
8113
  }).refine(
7999
8114
  (data) => data.cronExpression && !data.atTime || !data.cronExpression && data.atTime,
8000
8115
  {
8001
8116
  message: "Exactly one of 'cronExpression' or 'atTime' must be specified"
8002
8117
  }
8003
8118
  );
8004
- var scheduleResponseSchema = z20.object({
8005
- id: z20.string().uuid(),
8006
- composeId: z20.string().uuid(),
8007
- composeName: z20.string(),
8008
- scopeSlug: z20.string(),
8009
- name: z20.string(),
8010
- cronExpression: z20.string().nullable(),
8011
- atTime: z20.string().nullable(),
8012
- timezone: z20.string(),
8013
- prompt: z20.string(),
8014
- vars: z20.record(z20.string(), z20.string()).nullable(),
8119
+ var scheduleResponseSchema = z21.object({
8120
+ id: z21.string().uuid(),
8121
+ composeId: z21.string().uuid(),
8122
+ composeName: z21.string(),
8123
+ scopeSlug: z21.string(),
8124
+ name: z21.string(),
8125
+ cronExpression: z21.string().nullable(),
8126
+ atTime: z21.string().nullable(),
8127
+ timezone: z21.string(),
8128
+ prompt: z21.string(),
8129
+ vars: z21.record(z21.string(), z21.string()).nullable(),
8015
8130
  // Secret names only (values are never returned)
8016
- secretNames: z20.array(z20.string()).nullable(),
8017
- artifactName: z20.string().nullable(),
8018
- artifactVersion: z20.string().nullable(),
8019
- volumeVersions: z20.record(z20.string(), z20.string()).nullable(),
8020
- enabled: z20.boolean(),
8021
- nextRunAt: z20.string().nullable(),
8022
- lastRunAt: z20.string().nullable(),
8023
- retryStartedAt: z20.string().nullable(),
8024
- createdAt: z20.string(),
8025
- updatedAt: z20.string()
8026
- });
8027
- var runSummarySchema = z20.object({
8028
- id: z20.string().uuid(),
8029
- status: z20.enum(["pending", "running", "completed", "failed", "timeout"]),
8030
- createdAt: z20.string(),
8031
- completedAt: z20.string().nullable(),
8032
- error: z20.string().nullable()
8033
- });
8034
- var scheduleRunsResponseSchema = z20.object({
8035
- runs: z20.array(runSummarySchema)
8036
- });
8037
- var scheduleListResponseSchema = z20.object({
8038
- schedules: z20.array(scheduleResponseSchema)
8039
- });
8040
- var deployScheduleResponseSchema = z20.object({
8131
+ secretNames: z21.array(z21.string()).nullable(),
8132
+ artifactName: z21.string().nullable(),
8133
+ artifactVersion: z21.string().nullable(),
8134
+ volumeVersions: z21.record(z21.string(), z21.string()).nullable(),
8135
+ enabled: z21.boolean(),
8136
+ nextRunAt: z21.string().nullable(),
8137
+ lastRunAt: z21.string().nullable(),
8138
+ retryStartedAt: z21.string().nullable(),
8139
+ createdAt: z21.string(),
8140
+ updatedAt: z21.string()
8141
+ });
8142
+ var runSummarySchema = z21.object({
8143
+ id: z21.string().uuid(),
8144
+ status: z21.enum(["pending", "running", "completed", "failed", "timeout"]),
8145
+ createdAt: z21.string(),
8146
+ completedAt: z21.string().nullable(),
8147
+ error: z21.string().nullable()
8148
+ });
8149
+ var scheduleRunsResponseSchema = z21.object({
8150
+ runs: z21.array(runSummarySchema)
8151
+ });
8152
+ var scheduleListResponseSchema = z21.object({
8153
+ schedules: z21.array(scheduleResponseSchema)
8154
+ });
8155
+ var deployScheduleResponseSchema = z21.object({
8041
8156
  schedule: scheduleResponseSchema,
8042
- created: z20.boolean()
8157
+ created: z21.boolean()
8043
8158
  // true if created, false if updated
8044
8159
  });
8045
- var schedulesMainContract = c13.router({
8160
+ var schedulesMainContract = c14.router({
8046
8161
  /**
8047
8162
  * POST /api/agent/schedules
8048
8163
  * Deploy (create or update) a schedule
@@ -8080,7 +8195,7 @@ var schedulesMainContract = c13.router({
8080
8195
  summary: "List all schedules"
8081
8196
  }
8082
8197
  });
8083
- var schedulesByNameContract = c13.router({
8198
+ var schedulesByNameContract = c14.router({
8084
8199
  /**
8085
8200
  * GET /api/agent/schedules/:name
8086
8201
  * Get schedule by name
@@ -8089,11 +8204,11 @@ var schedulesByNameContract = c13.router({
8089
8204
  method: "GET",
8090
8205
  path: "/api/agent/schedules/:name",
8091
8206
  headers: authHeadersSchema,
8092
- pathParams: z20.object({
8093
- name: z20.string().min(1, "Schedule name required")
8207
+ pathParams: z21.object({
8208
+ name: z21.string().min(1, "Schedule name required")
8094
8209
  }),
8095
- query: z20.object({
8096
- composeId: z20.string().uuid("Compose ID required")
8210
+ query: z21.object({
8211
+ composeId: z21.string().uuid("Compose ID required")
8097
8212
  }),
8098
8213
  responses: {
8099
8214
  200: scheduleResponseSchema,
@@ -8110,21 +8225,21 @@ var schedulesByNameContract = c13.router({
8110
8225
  method: "DELETE",
8111
8226
  path: "/api/agent/schedules/:name",
8112
8227
  headers: authHeadersSchema,
8113
- pathParams: z20.object({
8114
- name: z20.string().min(1, "Schedule name required")
8228
+ pathParams: z21.object({
8229
+ name: z21.string().min(1, "Schedule name required")
8115
8230
  }),
8116
- query: z20.object({
8117
- composeId: z20.string().uuid("Compose ID required")
8231
+ query: z21.object({
8232
+ composeId: z21.string().uuid("Compose ID required")
8118
8233
  }),
8119
8234
  responses: {
8120
- 204: c13.noBody(),
8235
+ 204: c14.noBody(),
8121
8236
  401: apiErrorSchema,
8122
8237
  404: apiErrorSchema
8123
8238
  },
8124
8239
  summary: "Delete schedule"
8125
8240
  }
8126
8241
  });
8127
- var schedulesEnableContract = c13.router({
8242
+ var schedulesEnableContract = c14.router({
8128
8243
  /**
8129
8244
  * POST /api/agent/schedules/:name/enable
8130
8245
  * Enable a disabled schedule
@@ -8133,11 +8248,11 @@ var schedulesEnableContract = c13.router({
8133
8248
  method: "POST",
8134
8249
  path: "/api/agent/schedules/:name/enable",
8135
8250
  headers: authHeadersSchema,
8136
- pathParams: z20.object({
8137
- name: z20.string().min(1, "Schedule name required")
8251
+ pathParams: z21.object({
8252
+ name: z21.string().min(1, "Schedule name required")
8138
8253
  }),
8139
- body: z20.object({
8140
- composeId: z20.string().uuid("Compose ID required")
8254
+ body: z21.object({
8255
+ composeId: z21.string().uuid("Compose ID required")
8141
8256
  }),
8142
8257
  responses: {
8143
8258
  200: scheduleResponseSchema,
@@ -8154,11 +8269,11 @@ var schedulesEnableContract = c13.router({
8154
8269
  method: "POST",
8155
8270
  path: "/api/agent/schedules/:name/disable",
8156
8271
  headers: authHeadersSchema,
8157
- pathParams: z20.object({
8158
- name: z20.string().min(1, "Schedule name required")
8272
+ pathParams: z21.object({
8273
+ name: z21.string().min(1, "Schedule name required")
8159
8274
  }),
8160
- body: z20.object({
8161
- composeId: z20.string().uuid("Compose ID required")
8275
+ body: z21.object({
8276
+ composeId: z21.string().uuid("Compose ID required")
8162
8277
  }),
8163
8278
  responses: {
8164
8279
  200: scheduleResponseSchema,
@@ -8168,7 +8283,7 @@ var schedulesEnableContract = c13.router({
8168
8283
  summary: "Disable schedule"
8169
8284
  }
8170
8285
  });
8171
- var scheduleRunsContract = c13.router({
8286
+ var scheduleRunsContract = c14.router({
8172
8287
  /**
8173
8288
  * GET /api/agent/schedules/:name/runs
8174
8289
  * List recent runs for a schedule
@@ -8177,12 +8292,12 @@ var scheduleRunsContract = c13.router({
8177
8292
  method: "GET",
8178
8293
  path: "/api/agent/schedules/:name/runs",
8179
8294
  headers: authHeadersSchema,
8180
- pathParams: z20.object({
8181
- name: z20.string().min(1, "Schedule name required")
8295
+ pathParams: z21.object({
8296
+ name: z21.string().min(1, "Schedule name required")
8182
8297
  }),
8183
- query: z20.object({
8184
- composeId: z20.string().uuid("Compose ID required"),
8185
- limit: z20.coerce.number().min(0).max(100).default(5)
8298
+ query: z21.object({
8299
+ composeId: z21.string().uuid("Compose ID required"),
8300
+ limit: z21.coerce.number().min(0).max(100).default(5)
8186
8301
  }),
8187
8302
  responses: {
8188
8303
  200: scheduleRunsResponseSchema,
@@ -8194,18 +8309,18 @@ var scheduleRunsContract = c13.router({
8194
8309
  });
8195
8310
 
8196
8311
  // ../../packages/core/src/contracts/realtime.ts
8197
- import { z as z21 } from "zod";
8198
- var c14 = initContract();
8199
- var ablyTokenRequestSchema = z21.object({
8200
- keyName: z21.string(),
8201
- ttl: z21.number().optional(),
8202
- timestamp: z21.number(),
8203
- capability: z21.string(),
8204
- clientId: z21.string().optional(),
8205
- nonce: z21.string(),
8206
- mac: z21.string()
8312
+ import { z as z22 } from "zod";
8313
+ var c15 = initContract();
8314
+ var ablyTokenRequestSchema = z22.object({
8315
+ keyName: z22.string(),
8316
+ ttl: z22.number().optional(),
8317
+ timestamp: z22.number(),
8318
+ capability: z22.string(),
8319
+ clientId: z22.string().optional(),
8320
+ nonce: z22.string(),
8321
+ mac: z22.string()
8207
8322
  });
8208
- var realtimeTokenContract = c14.router({
8323
+ var realtimeTokenContract = c15.router({
8209
8324
  /**
8210
8325
  * POST /api/realtime/token
8211
8326
  * Get an Ably token to subscribe to a run's events channel
@@ -8214,8 +8329,8 @@ var realtimeTokenContract = c14.router({
8214
8329
  method: "POST",
8215
8330
  path: "/api/realtime/token",
8216
8331
  headers: authHeadersSchema,
8217
- body: z21.object({
8218
- runId: z21.string().uuid("runId must be a valid UUID")
8332
+ body: z22.object({
8333
+ runId: z22.string().uuid("runId must be a valid UUID")
8219
8334
  }),
8220
8335
  responses: {
8221
8336
  200: ablyTokenRequestSchema,
@@ -8227,7 +8342,7 @@ var realtimeTokenContract = c14.router({
8227
8342
  summary: "Get Ably token for run event subscription"
8228
8343
  }
8229
8344
  });
8230
- var runnerRealtimeTokenContract = c14.router({
8345
+ var runnerRealtimeTokenContract = c15.router({
8231
8346
  /**
8232
8347
  * POST /api/runners/realtime/token
8233
8348
  * Get an Ably token to subscribe to a runner group's job notification channel
@@ -8236,7 +8351,7 @@ var runnerRealtimeTokenContract = c14.router({
8236
8351
  method: "POST",
8237
8352
  path: "/api/runners/realtime/token",
8238
8353
  headers: authHeadersSchema,
8239
- body: z21.object({
8354
+ body: z22.object({
8240
8355
  group: runnerGroupSchema
8241
8356
  }),
8242
8357
  responses: {
@@ -8250,11 +8365,11 @@ var runnerRealtimeTokenContract = c14.router({
8250
8365
  });
8251
8366
 
8252
8367
  // ../../packages/core/src/contracts/platform.ts
8253
- import { z as z23 } from "zod";
8368
+ import { z as z24 } from "zod";
8254
8369
 
8255
8370
  // ../../packages/core/src/contracts/public/common.ts
8256
- import { z as z22 } from "zod";
8257
- var publicApiErrorTypeSchema = z22.enum([
8371
+ import { z as z23 } from "zod";
8372
+ var publicApiErrorTypeSchema = z23.enum([
8258
8373
  "api_error",
8259
8374
  // Internal server error (5xx)
8260
8375
  "invalid_request_error",
@@ -8268,40 +8383,40 @@ var publicApiErrorTypeSchema = z22.enum([
8268
8383
  "rate_limit_error"
8269
8384
  // Rate limit exceeded (429)
8270
8385
  ]);
8271
- var publicApiErrorSchema = z22.object({
8272
- error: z22.object({
8386
+ var publicApiErrorSchema = z23.object({
8387
+ error: z23.object({
8273
8388
  type: publicApiErrorTypeSchema,
8274
- code: z22.string(),
8275
- message: z22.string(),
8276
- param: z22.string().optional(),
8277
- docUrl: z22.string().url().optional()
8389
+ code: z23.string(),
8390
+ message: z23.string(),
8391
+ param: z23.string().optional(),
8392
+ docUrl: z23.string().url().optional()
8278
8393
  })
8279
8394
  });
8280
- var paginationSchema = z22.object({
8281
- hasMore: z22.boolean(),
8282
- nextCursor: z22.string().nullable()
8395
+ var paginationSchema = z23.object({
8396
+ hasMore: z23.boolean(),
8397
+ nextCursor: z23.string().nullable()
8283
8398
  });
8284
8399
  function createPaginatedResponseSchema(dataSchema) {
8285
- return z22.object({
8286
- data: z22.array(dataSchema),
8400
+ return z23.object({
8401
+ data: z23.array(dataSchema),
8287
8402
  pagination: paginationSchema
8288
8403
  });
8289
8404
  }
8290
- var listQuerySchema = z22.object({
8291
- cursor: z22.string().optional(),
8292
- limit: z22.coerce.number().min(1).max(100).default(20)
8405
+ var listQuerySchema = z23.object({
8406
+ cursor: z23.string().optional(),
8407
+ limit: z23.coerce.number().min(1).max(100).default(20)
8293
8408
  });
8294
- var requestIdSchema = z22.string().uuid();
8295
- var timestampSchema = z22.string().datetime();
8409
+ var requestIdSchema = z23.string().uuid();
8410
+ var timestampSchema = z23.string().datetime();
8296
8411
 
8297
8412
  // ../../packages/core/src/contracts/platform.ts
8298
- var c15 = initContract();
8299
- var platformPaginationSchema = z23.object({
8300
- hasMore: z23.boolean(),
8301
- nextCursor: z23.string().nullable(),
8302
- totalPages: z23.number()
8413
+ var c16 = initContract();
8414
+ var platformPaginationSchema = z24.object({
8415
+ hasMore: z24.boolean(),
8416
+ nextCursor: z24.string().nullable(),
8417
+ totalPages: z24.number()
8303
8418
  });
8304
- var platformLogStatusSchema = z23.enum([
8419
+ var platformLogStatusSchema = z24.enum([
8305
8420
  "pending",
8306
8421
  "running",
8307
8422
  "completed",
@@ -8309,41 +8424,41 @@ var platformLogStatusSchema = z23.enum([
8309
8424
  "timeout",
8310
8425
  "cancelled"
8311
8426
  ]);
8312
- var platformLogEntrySchema = z23.object({
8313
- id: z23.string().uuid(),
8314
- sessionId: z23.string().nullable(),
8315
- agentName: z23.string(),
8316
- framework: z23.string().nullable(),
8427
+ var platformLogEntrySchema = z24.object({
8428
+ id: z24.string().uuid(),
8429
+ sessionId: z24.string().nullable(),
8430
+ agentName: z24.string(),
8431
+ framework: z24.string().nullable(),
8317
8432
  status: platformLogStatusSchema,
8318
- createdAt: z23.string()
8433
+ createdAt: z24.string()
8319
8434
  });
8320
- var platformLogsListResponseSchema = z23.object({
8321
- data: z23.array(platformLogEntrySchema),
8435
+ var platformLogsListResponseSchema = z24.object({
8436
+ data: z24.array(platformLogEntrySchema),
8322
8437
  pagination: platformPaginationSchema
8323
8438
  });
8324
- var artifactSchema = z23.object({
8325
- name: z23.string().nullable(),
8326
- version: z23.string().nullable()
8439
+ var artifactSchema = z24.object({
8440
+ name: z24.string().nullable(),
8441
+ version: z24.string().nullable()
8327
8442
  });
8328
- var platformLogDetailSchema = z23.object({
8329
- id: z23.string().uuid(),
8330
- sessionId: z23.string().nullable(),
8331
- agentName: z23.string(),
8332
- framework: z23.string().nullable(),
8443
+ var platformLogDetailSchema = z24.object({
8444
+ id: z24.string().uuid(),
8445
+ sessionId: z24.string().nullable(),
8446
+ agentName: z24.string(),
8447
+ framework: z24.string().nullable(),
8333
8448
  status: platformLogStatusSchema,
8334
- prompt: z23.string(),
8335
- error: z23.string().nullable(),
8336
- createdAt: z23.string(),
8337
- startedAt: z23.string().nullable(),
8338
- completedAt: z23.string().nullable(),
8449
+ prompt: z24.string(),
8450
+ error: z24.string().nullable(),
8451
+ createdAt: z24.string(),
8452
+ startedAt: z24.string().nullable(),
8453
+ completedAt: z24.string().nullable(),
8339
8454
  artifact: artifactSchema
8340
8455
  });
8341
- var platformLogsListContract = c15.router({
8456
+ var platformLogsListContract = c16.router({
8342
8457
  list: {
8343
8458
  method: "GET",
8344
8459
  path: "/api/platform/logs",
8345
8460
  query: listQuerySchema.extend({
8346
- search: z23.string().optional()
8461
+ search: z24.string().optional()
8347
8462
  }),
8348
8463
  responses: {
8349
8464
  200: platformLogsListResponseSchema,
@@ -8352,12 +8467,12 @@ var platformLogsListContract = c15.router({
8352
8467
  summary: "List agent run logs with pagination"
8353
8468
  }
8354
8469
  });
8355
- var platformLogsByIdContract = c15.router({
8470
+ var platformLogsByIdContract = c16.router({
8356
8471
  getById: {
8357
8472
  method: "GET",
8358
8473
  path: "/api/platform/logs/:id",
8359
- pathParams: z23.object({
8360
- id: z23.string().uuid("Invalid log ID")
8474
+ pathParams: z24.object({
8475
+ id: z24.string().uuid("Invalid log ID")
8361
8476
  }),
8362
8477
  responses: {
8363
8478
  200: platformLogDetailSchema,
@@ -8367,17 +8482,17 @@ var platformLogsByIdContract = c15.router({
8367
8482
  summary: "Get agent run log details by ID"
8368
8483
  }
8369
8484
  });
8370
- var artifactDownloadResponseSchema = z23.object({
8371
- url: z23.string().url(),
8372
- expiresAt: z23.string()
8485
+ var artifactDownloadResponseSchema = z24.object({
8486
+ url: z24.string().url(),
8487
+ expiresAt: z24.string()
8373
8488
  });
8374
- var platformArtifactDownloadContract = c15.router({
8489
+ var platformArtifactDownloadContract = c16.router({
8375
8490
  getDownloadUrl: {
8376
8491
  method: "GET",
8377
8492
  path: "/api/platform/artifacts/download",
8378
- query: z23.object({
8379
- name: z23.string().min(1, "Artifact name is required"),
8380
- version: z23.string().optional()
8493
+ query: z24.object({
8494
+ name: z24.string().min(1, "Artifact name is required"),
8495
+ version: z24.string().optional()
8381
8496
  }),
8382
8497
  responses: {
8383
8498
  200: artifactDownloadResponseSchema,
@@ -8389,29 +8504,29 @@ var platformArtifactDownloadContract = c15.router({
8389
8504
  });
8390
8505
 
8391
8506
  // ../../packages/core/src/contracts/llm.ts
8392
- import { z as z24 } from "zod";
8393
- var c16 = initContract();
8394
- var messageRoleSchema = z24.enum(["user", "assistant", "system"]);
8395
- var chatMessageSchema = z24.object({
8507
+ import { z as z25 } from "zod";
8508
+ var c17 = initContract();
8509
+ var messageRoleSchema = z25.enum(["user", "assistant", "system"]);
8510
+ var chatMessageSchema = z25.object({
8396
8511
  role: messageRoleSchema,
8397
- content: z24.string()
8512
+ content: z25.string()
8398
8513
  });
8399
- var tokenUsageSchema = z24.object({
8400
- promptTokens: z24.number(),
8401
- completionTokens: z24.number(),
8402
- totalTokens: z24.number()
8514
+ var tokenUsageSchema = z25.object({
8515
+ promptTokens: z25.number(),
8516
+ completionTokens: z25.number(),
8517
+ totalTokens: z25.number()
8403
8518
  });
8404
- var llmChatRequestSchema = z24.object({
8405
- model: z24.string().min(1).optional(),
8406
- messages: z24.array(chatMessageSchema).min(1, "At least one message is required"),
8407
- stream: z24.boolean().optional().default(false)
8519
+ var llmChatRequestSchema = z25.object({
8520
+ model: z25.string().min(1).optional(),
8521
+ messages: z25.array(chatMessageSchema).min(1, "At least one message is required"),
8522
+ stream: z25.boolean().optional().default(false)
8408
8523
  });
8409
- var llmChatResponseSchema = z24.object({
8410
- content: z24.string(),
8411
- model: z24.string(),
8524
+ var llmChatResponseSchema = z25.object({
8525
+ content: z25.string(),
8526
+ model: z25.string(),
8412
8527
  usage: tokenUsageSchema
8413
8528
  });
8414
- var llmChatContract = c16.router({
8529
+ var llmChatContract = c17.router({
8415
8530
  chat: {
8416
8531
  method: "POST",
8417
8532
  path: "/api/llm/chat",
@@ -8427,28 +8542,28 @@ var llmChatContract = c16.router({
8427
8542
  });
8428
8543
 
8429
8544
  // ../../packages/core/src/contracts/public/agents.ts
8430
- import { z as z25 } from "zod";
8431
- var c17 = initContract();
8432
- var publicAgentSchema = z25.object({
8433
- id: z25.string(),
8434
- name: z25.string(),
8435
- currentVersionId: z25.string().nullable(),
8545
+ import { z as z26 } from "zod";
8546
+ var c18 = initContract();
8547
+ var publicAgentSchema = z26.object({
8548
+ id: z26.string(),
8549
+ name: z26.string(),
8550
+ currentVersionId: z26.string().nullable(),
8436
8551
  createdAt: timestampSchema,
8437
8552
  updatedAt: timestampSchema
8438
8553
  });
8439
- var agentVersionSchema = z25.object({
8440
- id: z25.string(),
8441
- agentId: z25.string(),
8442
- versionNumber: z25.number(),
8554
+ var agentVersionSchema = z26.object({
8555
+ id: z26.string(),
8556
+ agentId: z26.string(),
8557
+ versionNumber: z26.number(),
8443
8558
  createdAt: timestampSchema
8444
8559
  });
8445
8560
  var publicAgentDetailSchema = publicAgentSchema;
8446
8561
  var paginatedAgentsSchema = createPaginatedResponseSchema(publicAgentSchema);
8447
8562
  var paginatedAgentVersionsSchema = createPaginatedResponseSchema(agentVersionSchema);
8448
8563
  var agentListQuerySchema = listQuerySchema.extend({
8449
- name: z25.string().optional()
8564
+ name: z26.string().optional()
8450
8565
  });
8451
- var publicAgentsListContract = c17.router({
8566
+ var publicAgentsListContract = c18.router({
8452
8567
  list: {
8453
8568
  method: "GET",
8454
8569
  path: "/v1/agents",
@@ -8463,13 +8578,13 @@ var publicAgentsListContract = c17.router({
8463
8578
  description: "List all agents in the current scope with pagination. Use the `name` query parameter to filter by agent name."
8464
8579
  }
8465
8580
  });
8466
- var publicAgentByIdContract = c17.router({
8581
+ var publicAgentByIdContract = c18.router({
8467
8582
  get: {
8468
8583
  method: "GET",
8469
8584
  path: "/v1/agents/:id",
8470
8585
  headers: authHeadersSchema,
8471
- pathParams: z25.object({
8472
- id: z25.string().min(1, "Agent ID is required")
8586
+ pathParams: z26.object({
8587
+ id: z26.string().min(1, "Agent ID is required")
8473
8588
  }),
8474
8589
  responses: {
8475
8590
  200: publicAgentDetailSchema,
@@ -8481,13 +8596,13 @@ var publicAgentByIdContract = c17.router({
8481
8596
  description: "Get agent details by ID"
8482
8597
  }
8483
8598
  });
8484
- var publicAgentVersionsContract = c17.router({
8599
+ var publicAgentVersionsContract = c18.router({
8485
8600
  list: {
8486
8601
  method: "GET",
8487
8602
  path: "/v1/agents/:id/versions",
8488
8603
  headers: authHeadersSchema,
8489
- pathParams: z25.object({
8490
- id: z25.string().min(1, "Agent ID is required")
8604
+ pathParams: z26.object({
8605
+ id: z26.string().min(1, "Agent ID is required")
8491
8606
  }),
8492
8607
  query: listQuerySchema,
8493
8608
  responses: {
@@ -8502,9 +8617,9 @@ var publicAgentVersionsContract = c17.router({
8502
8617
  });
8503
8618
 
8504
8619
  // ../../packages/core/src/contracts/public/runs.ts
8505
- import { z as z26 } from "zod";
8506
- var c18 = initContract();
8507
- var publicRunStatusSchema = z26.enum([
8620
+ import { z as z27 } from "zod";
8621
+ var c19 = initContract();
8622
+ var publicRunStatusSchema = z27.enum([
8508
8623
  "pending",
8509
8624
  "running",
8510
8625
  "completed",
@@ -8512,54 +8627,54 @@ var publicRunStatusSchema = z26.enum([
8512
8627
  "timeout",
8513
8628
  "cancelled"
8514
8629
  ]);
8515
- var publicRunSchema = z26.object({
8516
- id: z26.string(),
8517
- agentId: z26.string(),
8518
- agentName: z26.string(),
8630
+ var publicRunSchema = z27.object({
8631
+ id: z27.string(),
8632
+ agentId: z27.string(),
8633
+ agentName: z27.string(),
8519
8634
  status: publicRunStatusSchema,
8520
- prompt: z26.string(),
8635
+ prompt: z27.string(),
8521
8636
  createdAt: timestampSchema,
8522
8637
  startedAt: timestampSchema.nullable(),
8523
8638
  completedAt: timestampSchema.nullable()
8524
8639
  });
8525
8640
  var publicRunDetailSchema = publicRunSchema.extend({
8526
- error: z26.string().nullable(),
8527
- executionTimeMs: z26.number().nullable(),
8528
- checkpointId: z26.string().nullable(),
8529
- sessionId: z26.string().nullable(),
8530
- artifactName: z26.string().nullable(),
8531
- artifactVersion: z26.string().nullable(),
8532
- volumes: z26.record(z26.string(), z26.string()).optional()
8641
+ error: z27.string().nullable(),
8642
+ executionTimeMs: z27.number().nullable(),
8643
+ checkpointId: z27.string().nullable(),
8644
+ sessionId: z27.string().nullable(),
8645
+ artifactName: z27.string().nullable(),
8646
+ artifactVersion: z27.string().nullable(),
8647
+ volumes: z27.record(z27.string(), z27.string()).optional()
8533
8648
  });
8534
8649
  var paginatedRunsSchema = createPaginatedResponseSchema(publicRunSchema);
8535
- var createRunRequestSchema = z26.object({
8650
+ var createRunRequestSchema = z27.object({
8536
8651
  // Agent identification (one of: agent, agentId, sessionId, checkpointId)
8537
- agent: z26.string().optional(),
8652
+ agent: z27.string().optional(),
8538
8653
  // Agent name
8539
- agentId: z26.string().optional(),
8654
+ agentId: z27.string().optional(),
8540
8655
  // Agent ID
8541
- agentVersion: z26.string().optional(),
8656
+ agentVersion: z27.string().optional(),
8542
8657
  // Version specifier (e.g., "latest", "v1", specific ID)
8543
8658
  // Continue session
8544
- sessionId: z26.string().optional(),
8659
+ sessionId: z27.string().optional(),
8545
8660
  // Resume from checkpoint
8546
- checkpointId: z26.string().optional(),
8661
+ checkpointId: z27.string().optional(),
8547
8662
  // Required
8548
- prompt: z26.string().min(1, "Prompt is required"),
8663
+ prompt: z27.string().min(1, "Prompt is required"),
8549
8664
  // Optional configuration
8550
- variables: z26.record(z26.string(), z26.string()).optional(),
8551
- secrets: z26.record(z26.string(), z26.string()).optional(),
8552
- artifactName: z26.string().optional(),
8665
+ variables: z27.record(z27.string(), z27.string()).optional(),
8666
+ secrets: z27.record(z27.string(), z27.string()).optional(),
8667
+ artifactName: z27.string().optional(),
8553
8668
  // Artifact name to mount
8554
- artifactVersion: z26.string().optional(),
8669
+ artifactVersion: z27.string().optional(),
8555
8670
  // Artifact version (defaults to latest)
8556
- volumes: z26.record(z26.string(), z26.string()).optional()
8671
+ volumes: z27.record(z27.string(), z27.string()).optional()
8557
8672
  // volume_name -> version
8558
8673
  });
8559
8674
  var runListQuerySchema = listQuerySchema.extend({
8560
8675
  status: publicRunStatusSchema.optional()
8561
8676
  });
8562
- var publicRunsListContract = c18.router({
8677
+ var publicRunsListContract = c19.router({
8563
8678
  list: {
8564
8679
  method: "GET",
8565
8680
  path: "/v1/runs",
@@ -8591,13 +8706,13 @@ var publicRunsListContract = c18.router({
8591
8706
  description: "Create and execute a new agent run. Returns 202 Accepted as runs execute asynchronously."
8592
8707
  }
8593
8708
  });
8594
- var publicRunByIdContract = c18.router({
8709
+ var publicRunByIdContract = c19.router({
8595
8710
  get: {
8596
8711
  method: "GET",
8597
8712
  path: "/v1/runs/:id",
8598
8713
  headers: authHeadersSchema,
8599
- pathParams: z26.object({
8600
- id: z26.string().min(1, "Run ID is required")
8714
+ pathParams: z27.object({
8715
+ id: z27.string().min(1, "Run ID is required")
8601
8716
  }),
8602
8717
  responses: {
8603
8718
  200: publicRunDetailSchema,
@@ -8609,15 +8724,15 @@ var publicRunByIdContract = c18.router({
8609
8724
  description: "Get run details by ID"
8610
8725
  }
8611
8726
  });
8612
- var publicRunCancelContract = c18.router({
8727
+ var publicRunCancelContract = c19.router({
8613
8728
  cancel: {
8614
8729
  method: "POST",
8615
8730
  path: "/v1/runs/:id/cancel",
8616
8731
  headers: authHeadersSchema,
8617
- pathParams: z26.object({
8618
- id: z26.string().min(1, "Run ID is required")
8732
+ pathParams: z27.object({
8733
+ id: z27.string().min(1, "Run ID is required")
8619
8734
  }),
8620
- body: z26.undefined(),
8735
+ body: z27.undefined(),
8621
8736
  responses: {
8622
8737
  200: publicRunDetailSchema,
8623
8738
  400: publicApiErrorSchema,
@@ -8630,27 +8745,27 @@ var publicRunCancelContract = c18.router({
8630
8745
  description: "Cancel a pending or running execution"
8631
8746
  }
8632
8747
  });
8633
- var logEntrySchema = z26.object({
8748
+ var logEntrySchema = z27.object({
8634
8749
  timestamp: timestampSchema,
8635
- type: z26.enum(["agent", "system", "network"]),
8636
- level: z26.enum(["debug", "info", "warn", "error"]),
8637
- message: z26.string(),
8638
- metadata: z26.record(z26.string(), z26.unknown()).optional()
8750
+ type: z27.enum(["agent", "system", "network"]),
8751
+ level: z27.enum(["debug", "info", "warn", "error"]),
8752
+ message: z27.string(),
8753
+ metadata: z27.record(z27.string(), z27.unknown()).optional()
8639
8754
  });
8640
8755
  var paginatedLogsSchema = createPaginatedResponseSchema(logEntrySchema);
8641
8756
  var logsQuerySchema = listQuerySchema.extend({
8642
- type: z26.enum(["agent", "system", "network", "all"]).default("all"),
8757
+ type: z27.enum(["agent", "system", "network", "all"]).default("all"),
8643
8758
  since: timestampSchema.optional(),
8644
8759
  until: timestampSchema.optional(),
8645
- order: z26.enum(["asc", "desc"]).default("asc")
8760
+ order: z27.enum(["asc", "desc"]).default("asc")
8646
8761
  });
8647
- var publicRunLogsContract = c18.router({
8762
+ var publicRunLogsContract = c19.router({
8648
8763
  getLogs: {
8649
8764
  method: "GET",
8650
8765
  path: "/v1/runs/:id/logs",
8651
8766
  headers: authHeadersSchema,
8652
- pathParams: z26.object({
8653
- id: z26.string().min(1, "Run ID is required")
8767
+ pathParams: z27.object({
8768
+ id: z27.string().min(1, "Run ID is required")
8654
8769
  }),
8655
8770
  query: logsQuerySchema,
8656
8771
  responses: {
@@ -8663,30 +8778,30 @@ var publicRunLogsContract = c18.router({
8663
8778
  description: "Get unified logs for a run. Combines agent, system, and network logs."
8664
8779
  }
8665
8780
  });
8666
- var metricPointSchema = z26.object({
8781
+ var metricPointSchema = z27.object({
8667
8782
  timestamp: timestampSchema,
8668
- cpuPercent: z26.number(),
8669
- memoryUsedMb: z26.number(),
8670
- memoryTotalMb: z26.number(),
8671
- diskUsedMb: z26.number(),
8672
- diskTotalMb: z26.number()
8673
- });
8674
- var metricsSummarySchema = z26.object({
8675
- avgCpuPercent: z26.number(),
8676
- maxMemoryUsedMb: z26.number(),
8677
- totalDurationMs: z26.number().nullable()
8678
- });
8679
- var metricsResponseSchema2 = z26.object({
8680
- data: z26.array(metricPointSchema),
8783
+ cpuPercent: z27.number(),
8784
+ memoryUsedMb: z27.number(),
8785
+ memoryTotalMb: z27.number(),
8786
+ diskUsedMb: z27.number(),
8787
+ diskTotalMb: z27.number()
8788
+ });
8789
+ var metricsSummarySchema = z27.object({
8790
+ avgCpuPercent: z27.number(),
8791
+ maxMemoryUsedMb: z27.number(),
8792
+ totalDurationMs: z27.number().nullable()
8793
+ });
8794
+ var metricsResponseSchema2 = z27.object({
8795
+ data: z27.array(metricPointSchema),
8681
8796
  summary: metricsSummarySchema
8682
8797
  });
8683
- var publicRunMetricsContract = c18.router({
8798
+ var publicRunMetricsContract = c19.router({
8684
8799
  getMetrics: {
8685
8800
  method: "GET",
8686
8801
  path: "/v1/runs/:id/metrics",
8687
8802
  headers: authHeadersSchema,
8688
- pathParams: z26.object({
8689
- id: z26.string().min(1, "Run ID is required")
8803
+ pathParams: z27.object({
8804
+ id: z27.string().min(1, "Run ID is required")
8690
8805
  }),
8691
8806
  responses: {
8692
8807
  200: metricsResponseSchema2,
@@ -8698,7 +8813,7 @@ var publicRunMetricsContract = c18.router({
8698
8813
  description: "Get CPU, memory, and disk metrics for a run"
8699
8814
  }
8700
8815
  });
8701
- var sseEventTypeSchema = z26.enum([
8816
+ var sseEventTypeSchema = z27.enum([
8702
8817
  "status",
8703
8818
  // Run status change
8704
8819
  "output",
@@ -8710,26 +8825,26 @@ var sseEventTypeSchema = z26.enum([
8710
8825
  "heartbeat"
8711
8826
  // Keep-alive
8712
8827
  ]);
8713
- var sseEventSchema = z26.object({
8828
+ var sseEventSchema = z27.object({
8714
8829
  event: sseEventTypeSchema,
8715
- data: z26.unknown(),
8716
- id: z26.string().optional()
8830
+ data: z27.unknown(),
8831
+ id: z27.string().optional()
8717
8832
  // For Last-Event-ID reconnection
8718
8833
  });
8719
- var publicRunEventsContract = c18.router({
8834
+ var publicRunEventsContract = c19.router({
8720
8835
  streamEvents: {
8721
8836
  method: "GET",
8722
8837
  path: "/v1/runs/:id/events",
8723
8838
  headers: authHeadersSchema,
8724
- pathParams: z26.object({
8725
- id: z26.string().min(1, "Run ID is required")
8839
+ pathParams: z27.object({
8840
+ id: z27.string().min(1, "Run ID is required")
8726
8841
  }),
8727
- query: z26.object({
8728
- lastEventId: z26.string().optional()
8842
+ query: z27.object({
8843
+ lastEventId: z27.string().optional()
8729
8844
  // For reconnection
8730
8845
  }),
8731
8846
  responses: {
8732
- 200: z26.any(),
8847
+ 200: z27.any(),
8733
8848
  // SSE stream - actual content is text/event-stream
8734
8849
  401: publicApiErrorSchema,
8735
8850
  404: publicApiErrorSchema,
@@ -8741,28 +8856,28 @@ var publicRunEventsContract = c18.router({
8741
8856
  });
8742
8857
 
8743
8858
  // ../../packages/core/src/contracts/public/artifacts.ts
8744
- import { z as z27 } from "zod";
8745
- var c19 = initContract();
8746
- var publicArtifactSchema = z27.object({
8747
- id: z27.string(),
8748
- name: z27.string(),
8749
- currentVersionId: z27.string().nullable(),
8750
- size: z27.number(),
8859
+ import { z as z28 } from "zod";
8860
+ var c20 = initContract();
8861
+ var publicArtifactSchema = z28.object({
8862
+ id: z28.string(),
8863
+ name: z28.string(),
8864
+ currentVersionId: z28.string().nullable(),
8865
+ size: z28.number(),
8751
8866
  // Total size in bytes
8752
- fileCount: z27.number(),
8867
+ fileCount: z28.number(),
8753
8868
  createdAt: timestampSchema,
8754
8869
  updatedAt: timestampSchema
8755
8870
  });
8756
- var artifactVersionSchema = z27.object({
8757
- id: z27.string(),
8871
+ var artifactVersionSchema = z28.object({
8872
+ id: z28.string(),
8758
8873
  // SHA-256 content hash
8759
- artifactId: z27.string(),
8760
- size: z27.number(),
8874
+ artifactId: z28.string(),
8875
+ size: z28.number(),
8761
8876
  // Size in bytes
8762
- fileCount: z27.number(),
8763
- message: z27.string().nullable(),
8877
+ fileCount: z28.number(),
8878
+ message: z28.string().nullable(),
8764
8879
  // Optional commit message
8765
- createdBy: z27.string(),
8880
+ createdBy: z28.string(),
8766
8881
  createdAt: timestampSchema
8767
8882
  });
8768
8883
  var publicArtifactDetailSchema = publicArtifactSchema.extend({
@@ -8772,7 +8887,7 @@ var paginatedArtifactsSchema = createPaginatedResponseSchema(publicArtifactSchem
8772
8887
  var paginatedArtifactVersionsSchema = createPaginatedResponseSchema(
8773
8888
  artifactVersionSchema
8774
8889
  );
8775
- var publicArtifactsListContract = c19.router({
8890
+ var publicArtifactsListContract = c20.router({
8776
8891
  list: {
8777
8892
  method: "GET",
8778
8893
  path: "/v1/artifacts",
@@ -8787,13 +8902,13 @@ var publicArtifactsListContract = c19.router({
8787
8902
  description: "List all artifacts in the current scope with pagination"
8788
8903
  }
8789
8904
  });
8790
- var publicArtifactByIdContract = c19.router({
8905
+ var publicArtifactByIdContract = c20.router({
8791
8906
  get: {
8792
8907
  method: "GET",
8793
8908
  path: "/v1/artifacts/:id",
8794
8909
  headers: authHeadersSchema,
8795
- pathParams: z27.object({
8796
- id: z27.string().min(1, "Artifact ID is required")
8910
+ pathParams: z28.object({
8911
+ id: z28.string().min(1, "Artifact ID is required")
8797
8912
  }),
8798
8913
  responses: {
8799
8914
  200: publicArtifactDetailSchema,
@@ -8805,13 +8920,13 @@ var publicArtifactByIdContract = c19.router({
8805
8920
  description: "Get artifact details by ID"
8806
8921
  }
8807
8922
  });
8808
- var publicArtifactVersionsContract = c19.router({
8923
+ var publicArtifactVersionsContract = c20.router({
8809
8924
  list: {
8810
8925
  method: "GET",
8811
8926
  path: "/v1/artifacts/:id/versions",
8812
8927
  headers: authHeadersSchema,
8813
- pathParams: z27.object({
8814
- id: z27.string().min(1, "Artifact ID is required")
8928
+ pathParams: z28.object({
8929
+ id: z28.string().min(1, "Artifact ID is required")
8815
8930
  }),
8816
8931
  query: listQuerySchema,
8817
8932
  responses: {
@@ -8824,20 +8939,20 @@ var publicArtifactVersionsContract = c19.router({
8824
8939
  description: "List all versions of an artifact with pagination"
8825
8940
  }
8826
8941
  });
8827
- var publicArtifactDownloadContract = c19.router({
8942
+ var publicArtifactDownloadContract = c20.router({
8828
8943
  download: {
8829
8944
  method: "GET",
8830
8945
  path: "/v1/artifacts/:id/download",
8831
8946
  headers: authHeadersSchema,
8832
- pathParams: z27.object({
8833
- id: z27.string().min(1, "Artifact ID is required")
8947
+ pathParams: z28.object({
8948
+ id: z28.string().min(1, "Artifact ID is required")
8834
8949
  }),
8835
- query: z27.object({
8836
- versionId: z27.string().optional()
8950
+ query: z28.object({
8951
+ versionId: z28.string().optional()
8837
8952
  // Defaults to current version
8838
8953
  }),
8839
8954
  responses: {
8840
- 302: z27.undefined(),
8955
+ 302: z28.undefined(),
8841
8956
  // Redirect to presigned URL
8842
8957
  401: publicApiErrorSchema,
8843
8958
  404: publicApiErrorSchema,
@@ -8849,28 +8964,28 @@ var publicArtifactDownloadContract = c19.router({
8849
8964
  });
8850
8965
 
8851
8966
  // ../../packages/core/src/contracts/public/volumes.ts
8852
- import { z as z28 } from "zod";
8853
- var c20 = initContract();
8854
- var publicVolumeSchema = z28.object({
8855
- id: z28.string(),
8856
- name: z28.string(),
8857
- currentVersionId: z28.string().nullable(),
8858
- size: z28.number(),
8967
+ import { z as z29 } from "zod";
8968
+ var c21 = initContract();
8969
+ var publicVolumeSchema = z29.object({
8970
+ id: z29.string(),
8971
+ name: z29.string(),
8972
+ currentVersionId: z29.string().nullable(),
8973
+ size: z29.number(),
8859
8974
  // Total size in bytes
8860
- fileCount: z28.number(),
8975
+ fileCount: z29.number(),
8861
8976
  createdAt: timestampSchema,
8862
8977
  updatedAt: timestampSchema
8863
8978
  });
8864
- var volumeVersionSchema = z28.object({
8865
- id: z28.string(),
8979
+ var volumeVersionSchema = z29.object({
8980
+ id: z29.string(),
8866
8981
  // SHA-256 content hash
8867
- volumeId: z28.string(),
8868
- size: z28.number(),
8982
+ volumeId: z29.string(),
8983
+ size: z29.number(),
8869
8984
  // Size in bytes
8870
- fileCount: z28.number(),
8871
- message: z28.string().nullable(),
8985
+ fileCount: z29.number(),
8986
+ message: z29.string().nullable(),
8872
8987
  // Optional commit message
8873
- createdBy: z28.string(),
8988
+ createdBy: z29.string(),
8874
8989
  createdAt: timestampSchema
8875
8990
  });
8876
8991
  var publicVolumeDetailSchema = publicVolumeSchema.extend({
@@ -8878,7 +8993,7 @@ var publicVolumeDetailSchema = publicVolumeSchema.extend({
8878
8993
  });
8879
8994
  var paginatedVolumesSchema = createPaginatedResponseSchema(publicVolumeSchema);
8880
8995
  var paginatedVolumeVersionsSchema = createPaginatedResponseSchema(volumeVersionSchema);
8881
- var publicVolumesListContract = c20.router({
8996
+ var publicVolumesListContract = c21.router({
8882
8997
  list: {
8883
8998
  method: "GET",
8884
8999
  path: "/v1/volumes",
@@ -8893,13 +9008,13 @@ var publicVolumesListContract = c20.router({
8893
9008
  description: "List all volumes in the current scope with pagination"
8894
9009
  }
8895
9010
  });
8896
- var publicVolumeByIdContract = c20.router({
9011
+ var publicVolumeByIdContract = c21.router({
8897
9012
  get: {
8898
9013
  method: "GET",
8899
9014
  path: "/v1/volumes/:id",
8900
9015
  headers: authHeadersSchema,
8901
- pathParams: z28.object({
8902
- id: z28.string().min(1, "Volume ID is required")
9016
+ pathParams: z29.object({
9017
+ id: z29.string().min(1, "Volume ID is required")
8903
9018
  }),
8904
9019
  responses: {
8905
9020
  200: publicVolumeDetailSchema,
@@ -8911,13 +9026,13 @@ var publicVolumeByIdContract = c20.router({
8911
9026
  description: "Get volume details by ID"
8912
9027
  }
8913
9028
  });
8914
- var publicVolumeVersionsContract = c20.router({
9029
+ var publicVolumeVersionsContract = c21.router({
8915
9030
  list: {
8916
9031
  method: "GET",
8917
9032
  path: "/v1/volumes/:id/versions",
8918
9033
  headers: authHeadersSchema,
8919
- pathParams: z28.object({
8920
- id: z28.string().min(1, "Volume ID is required")
9034
+ pathParams: z29.object({
9035
+ id: z29.string().min(1, "Volume ID is required")
8921
9036
  }),
8922
9037
  query: listQuerySchema,
8923
9038
  responses: {
@@ -8930,20 +9045,20 @@ var publicVolumeVersionsContract = c20.router({
8930
9045
  description: "List all versions of a volume with pagination"
8931
9046
  }
8932
9047
  });
8933
- var publicVolumeDownloadContract = c20.router({
9048
+ var publicVolumeDownloadContract = c21.router({
8934
9049
  download: {
8935
9050
  method: "GET",
8936
9051
  path: "/v1/volumes/:id/download",
8937
9052
  headers: authHeadersSchema,
8938
- pathParams: z28.object({
8939
- id: z28.string().min(1, "Volume ID is required")
9053
+ pathParams: z29.object({
9054
+ id: z29.string().min(1, "Volume ID is required")
8940
9055
  }),
8941
- query: z28.object({
8942
- versionId: z28.string().optional()
9056
+ query: z29.object({
9057
+ versionId: z29.string().optional()
8943
9058
  // Defaults to current version
8944
9059
  }),
8945
9060
  responses: {
8946
- 302: z28.undefined(),
9061
+ 302: z29.undefined(),
8947
9062
  // Redirect to presigned URL
8948
9063
  401: publicApiErrorSchema,
8949
9064
  404: publicApiErrorSchema,
@@ -11240,7 +11355,7 @@ var benchmarkCommand = new Command4("benchmark").description(
11240
11355
  });
11241
11356
 
11242
11357
  // src/index.ts
11243
- var version = true ? "3.11.2" : "0.1.0";
11358
+ var version = true ? "3.11.3" : "0.1.0";
11244
11359
  program.name("vm0-runner").version(version).description("Self-hosted runner for VM0 agents");
11245
11360
  program.addCommand(startCommand);
11246
11361
  program.addCommand(doctorCommand);