@inf-monkeys-tech/monkeys 1.0.19 → 1.0.21

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 (32) hide show
  1. package/lib/contracts/agent.d.ts +513 -0
  2. package/lib/contracts/agent.d.ts.map +1 -1
  3. package/lib/contracts/agent.js +155 -1
  4. package/lib/contracts/agent.js.map +1 -1
  5. package/lib/contracts/tenant.d.ts +8 -0
  6. package/lib/contracts/tenant.d.ts.map +1 -1
  7. package/lib/contracts/tenant.js +1 -0
  8. package/lib/contracts/tenant.js.map +1 -1
  9. package/lib/esm/contracts/index.mjs +142 -2
  10. package/lib/esm/contracts/index.mjs.map +1 -1
  11. package/lib/esm/index.mjs +145 -2
  12. package/lib/esm/index.mjs.map +1 -1
  13. package/lib/esm/runtime/index.mjs +123 -2
  14. package/lib/esm/runtime/index.mjs.map +1 -1
  15. package/lib/esm/schemas/index.mjs +130 -2
  16. package/lib/esm/schemas/index.mjs.map +1 -1
  17. package/lib/json-schema/agent-session-command-result.schema.json +15 -0
  18. package/lib/json-schema/agent-session-command.schema.json +20 -0
  19. package/lib/json-schema/agent-session-event.schema.json +179 -0
  20. package/lib/json-schema/agent-session-run-event.schema.json +1501 -0
  21. package/lib/json-schema/agent-session-run.schema.json +72 -0
  22. package/lib/json-schema/agent-session-targeted-command.schema.json +302 -0
  23. package/lib/json-schema/agent-session-view-model.schema.json +179 -0
  24. package/lib/json-schema/index.json +3 -0
  25. package/lib/json-schema/tenant-product-config.schema.json +6 -0
  26. package/lib/json-schema/tenant-runtime-config.schema.json +6 -0
  27. package/lib/schemas/index.d.ts +504 -1
  28. package/lib/schemas/index.d.ts.map +1 -1
  29. package/lib/schemas/index.js +10 -3
  30. package/lib/schemas/index.js.map +1 -1
  31. package/package.json +1 -1
  32. package/test/fixtures/agent-session-runs.json +51 -0
@@ -6782,11 +6782,70 @@ var AgentSessionStatusSchema = z3.enum([
6782
6782
  "completed",
6783
6783
  "failed"
6784
6784
  ]);
6785
+ var AgentSessionTerminalStatusSchema = z3.enum(["stopped", "completed", "failed"]);
6786
+ var AgentSessionRunSchema = z3.object({
6787
+ runId: ContractIdentifierSchema,
6788
+ sessionId: ContractIdentifierSchema,
6789
+ sourceMessageId: ContractIdentifierSchema,
6790
+ status: AgentSessionStatusSchema,
6791
+ startedAt: IsoDateTimeSchema,
6792
+ stoppingRequestedAt: IsoDateTimeSchema.optional(),
6793
+ stoppedAt: IsoDateTimeSchema.optional(),
6794
+ completedAt: IsoDateTimeSchema.optional(),
6795
+ failedAt: IsoDateTimeSchema.optional(),
6796
+ durationMs: z3.number().nonnegative().optional()
6797
+ }).strict().superRefine((value, context) => {
6798
+ const terminalTimestamps = [value.stoppedAt, value.completedAt, value.failedAt].filter(Boolean);
6799
+ if (terminalTimestamps.length > 1) {
6800
+ context.addIssue({
6801
+ code: "custom",
6802
+ path: ["status"],
6803
+ message: "A run may declare only one terminal timestamp."
6804
+ });
6805
+ }
6806
+ const expectedTimestamp = value.status === "stopped" ? value.stoppedAt : value.status === "completed" ? value.completedAt : value.status === "failed" ? value.failedAt : void 0;
6807
+ if (AgentSessionTerminalStatusSchema.safeParse(value.status).success && !expectedTimestamp) {
6808
+ context.addIssue({
6809
+ code: "custom",
6810
+ path: [value.status === "stopped" ? "stoppedAt" : value.status === "completed" ? "completedAt" : "failedAt"],
6811
+ message: `Run status ${value.status} requires its matching terminal timestamp.`
6812
+ });
6813
+ }
6814
+ if (!AgentSessionTerminalStatusSchema.safeParse(value.status).success && terminalTimestamps.length > 0) {
6815
+ context.addIssue({
6816
+ code: "custom",
6817
+ path: ["status"],
6818
+ message: "A non-terminal run must not declare a terminal timestamp."
6819
+ });
6820
+ }
6821
+ if ((value.status === "stopping" || value.status === "stopped") && !value.stoppingRequestedAt) {
6822
+ context.addIssue({
6823
+ code: "custom",
6824
+ path: ["stoppingRequestedAt"],
6825
+ message: `Run status ${value.status} requires stoppingRequestedAt.`
6826
+ });
6827
+ }
6828
+ if (!isAgentSessionTerminalStatus(value.status) && value.durationMs !== void 0) {
6829
+ context.addIssue({
6830
+ code: "custom",
6831
+ path: ["durationMs"],
6832
+ message: "Only a terminal run may declare durationMs."
6833
+ });
6834
+ }
6835
+ if (isAgentSessionTerminalStatus(value.status) && value.durationMs === void 0) {
6836
+ context.addIssue({
6837
+ code: "custom",
6838
+ path: ["durationMs"],
6839
+ message: `Terminal run status ${value.status} requires durationMs.`
6840
+ });
6841
+ }
6842
+ });
6785
6843
  var AgentSessionCommandTypeSchema = z3.enum(["stop", "resume", "retry", "approval"]);
6786
6844
  var AgentSessionCommandHeaderSchema = z3.object({
6787
6845
  contract: z3.literal("AgentSessionCommand"),
6788
6846
  commandId: ContractIdentifierSchema,
6789
6847
  sessionId: ContractIdentifierSchema,
6848
+ runId: ContractIdentifierSchema.optional(),
6790
6849
  idempotencyKey: ContractIdentifierSchema,
6791
6850
  expectedSequence: z3.number().int().min(-1),
6792
6851
  issuedAt: IsoDateTimeSchema
@@ -6811,8 +6870,14 @@ var AgentSessionCommandSchema = z3.discriminatedUnion("commandType", [
6811
6870
  reason: z3.string().trim().min(1).optional()
6812
6871
  })
6813
6872
  ]);
6873
+ var AgentSessionTargetedCommandSchema = AgentSessionCommandSchema.and(
6874
+ z3.object({ runId: ContractIdentifierSchema })
6875
+ );
6814
6876
  var AgentSessionCommandErrorCodeSchema = z3.enum([
6815
6877
  "SESSION_NOT_FOUND",
6878
+ "RUN_NOT_FOUND",
6879
+ "RUN_ALREADY_FINISHED",
6880
+ "STOP_TIMEOUT",
6816
6881
  "COMMAND_NOT_SUPPORTED",
6817
6882
  "CAPABILITY_UNAVAILABLE",
6818
6883
  "SEQUENCE_CONFLICT",
@@ -6827,11 +6892,13 @@ var AgentSessionCommandResultSchema = z3.object({
6827
6892
  contract: z3.literal("AgentSessionCommandResult"),
6828
6893
  commandId: ContractIdentifierSchema,
6829
6894
  sessionId: ContractIdentifierSchema,
6895
+ runId: ContractIdentifierSchema.optional(),
6830
6896
  idempotencyKey: ContractIdentifierSchema,
6831
6897
  outcome: z3.enum(["accepted", "duplicate", "rejected", "failed"]),
6832
6898
  sessionStatus: AgentSessionStatusSchema,
6833
6899
  acceptedSequence: z3.number().int().nonnegative().optional(),
6834
6900
  resultEventIds: z3.array(ContractIdentifierSchema).default([]),
6901
+ termination: z3.enum(["requested", "confirmed"]).optional(),
6835
6902
  error: z3.object({
6836
6903
  code: AgentSessionCommandErrorCodeSchema,
6837
6904
  message: z3.string(),
@@ -6847,6 +6914,20 @@ var AgentSessionCommandResultSchema = z3.object({
6847
6914
  message: requiresError ? "Rejected and failed command results require an error." : "Accepted and duplicate command results must not contain an error."
6848
6915
  });
6849
6916
  }
6917
+ if (value.termination === "requested" && value.sessionStatus !== "stopping") {
6918
+ context.addIssue({
6919
+ code: "custom",
6920
+ path: ["termination"],
6921
+ message: "A requested termination must leave the run in stopping status."
6922
+ });
6923
+ }
6924
+ if (value.termination === "confirmed" && !isAgentSessionTerminalStatus(value.sessionStatus)) {
6925
+ context.addIssue({
6926
+ code: "custom",
6927
+ path: ["termination"],
6928
+ message: "A confirmed termination requires a terminal run status."
6929
+ });
6930
+ }
6850
6931
  });
6851
6932
  var AGENT_SESSION_COMMAND_TRANSITIONS = {
6852
6933
  stop: { queued: "stopping", running: "stopping", waiting_approval: "stopping" },
@@ -6857,10 +6938,28 @@ var AGENT_SESSION_COMMAND_TRANSITIONS = {
6857
6938
  function resolveAgentSessionCommandTransition(status, commandType) {
6858
6939
  return AGENT_SESSION_COMMAND_TRANSITIONS[commandType][status];
6859
6940
  }
6941
+ function isAgentSessionTerminalStatus(status) {
6942
+ return AgentSessionTerminalStatusSchema.safeParse(status).success;
6943
+ }
6944
+ function canApplyAgentSessionRunStatus(current, next) {
6945
+ if (current === next) return true;
6946
+ const transitions = {
6947
+ queued: ["running", "stopping", "failed"],
6948
+ running: ["waiting_approval", "stopping", "completed", "failed"],
6949
+ waiting_approval: ["running", "stopping", "failed"],
6950
+ stopping: ["stopped", "completed", "failed"],
6951
+ stopped: [],
6952
+ completed: [],
6953
+ failed: []
6954
+ };
6955
+ return transitions[current].includes(next);
6956
+ }
6860
6957
  var AgentSessionEventHeaderSchema = z3.object({
6861
6958
  contract: z3.literal("AgentSessionEvent"),
6862
6959
  eventId: ContractIdentifierSchema,
6863
6960
  sessionId: ContractIdentifierSchema,
6961
+ runId: ContractIdentifierSchema.optional(),
6962
+ sourceMessageId: ContractIdentifierSchema.optional(),
6864
6963
  sequence: z3.number().int().nonnegative(),
6865
6964
  idempotencyKey: ContractIdentifierSchema,
6866
6965
  occurredAt: IsoDateTimeSchema
@@ -6920,7 +7019,13 @@ var AgentSessionEventSchema = z3.discriminatedUnion("eventType", [
6920
7019
  }),
6921
7020
  sessionEvent("status", {
6922
7021
  status: AgentSessionStatusSchema,
6923
- detail: z3.string().optional()
7022
+ detail: z3.string().optional(),
7023
+ startedAt: IsoDateTimeSchema.optional(),
7024
+ stoppingRequestedAt: IsoDateTimeSchema.optional(),
7025
+ stoppedAt: IsoDateTimeSchema.optional(),
7026
+ completedAt: IsoDateTimeSchema.optional(),
7027
+ failedAt: IsoDateTimeSchema.optional(),
7028
+ durationMs: z3.number().nonnegative().optional()
6924
7029
  }),
6925
7030
  sessionEvent("artifact", {
6926
7031
  artifactId: ContractIdentifierSchema,
@@ -6976,6 +7081,34 @@ var AgentSessionEventSchema = z3.discriminatedUnion("eventType", [
6976
7081
  output: z3.string().optional()
6977
7082
  })
6978
7083
  ]);
7084
+ var AgentSessionRunEventSchema = AgentSessionEventSchema.superRefine((value, context) => {
7085
+ if (!value.runId) {
7086
+ context.addIssue({ code: "custom", path: ["runId"], message: "Run events require runId." });
7087
+ }
7088
+ if (!value.sourceMessageId) {
7089
+ context.addIssue({
7090
+ code: "custom",
7091
+ path: ["sourceMessageId"],
7092
+ message: "Run events require sourceMessageId."
7093
+ });
7094
+ }
7095
+ if (value.eventType !== "status") return;
7096
+ const requiredTimeField = value.payload.status === "running" ? "startedAt" : value.payload.status === "stopping" ? "stoppingRequestedAt" : value.payload.status === "stopped" ? "stoppedAt" : value.payload.status === "completed" ? "completedAt" : value.payload.status === "failed" ? "failedAt" : void 0;
7097
+ if (requiredTimeField && !value.payload[requiredTimeField]) {
7098
+ context.addIssue({
7099
+ code: "custom",
7100
+ path: ["payload", requiredTimeField],
7101
+ message: `Run status ${value.payload.status} requires ${requiredTimeField}.`
7102
+ });
7103
+ }
7104
+ if (isAgentSessionTerminalStatus(value.payload.status) && value.payload.durationMs === void 0) {
7105
+ context.addIssue({
7106
+ code: "custom",
7107
+ path: ["payload", "durationMs"],
7108
+ message: `Terminal run status ${value.payload.status} requires durationMs.`
7109
+ });
7110
+ }
7111
+ });
6979
7112
  var AgentSessionViewModelSchema = z3.object({
6980
7113
  contract: z3.literal("AgentSessionViewModel"),
6981
7114
  sessionId: ContractIdentifierSchema,
@@ -10391,7 +10524,8 @@ var TenantHeadbarModuleLeafSchema = z12.object({
10391
10524
  disabled: z12.boolean().optional(),
10392
10525
  icon: z12.string().optional(),
10393
10526
  showQuickSwitcher: z12.boolean().optional(),
10394
- showSidebar: z12.boolean().optional()
10527
+ showSidebar: z12.boolean().optional(),
10528
+ showContentFrame: z12.boolean().optional()
10395
10529
  }).strict();
10396
10530
  var TenantHeadbarModuleItemSchema = TenantHeadbarModuleLeafSchema.extend({
10397
10531
  children: z12.array(TenantHeadbarModuleLeafSchema).optional()
@@ -11675,8 +11809,12 @@ export {
11675
11809
  AgentSessionCommandSchema,
11676
11810
  AgentSessionCommandTypeSchema,
11677
11811
  AgentSessionEventSchema,
11812
+ AgentSessionRunEventSchema,
11813
+ AgentSessionRunSchema,
11678
11814
  AgentSessionSnapshotSchema,
11679
11815
  AgentSessionStatusSchema,
11816
+ AgentSessionTargetedCommandSchema,
11817
+ AgentSessionTerminalStatusSchema,
11680
11818
  AgentSessionViewModelSchema,
11681
11819
  ApplicationHandoffEndpointSchema,
11682
11820
  ApplicationHandoffSchema,
@@ -11808,10 +11946,12 @@ export {
11808
11946
  WorkflowTriggerSchema,
11809
11947
  WorkflowValidationIssueSchema,
11810
11948
  agentModeHasCapability,
11949
+ canApplyAgentSessionRunStatus,
11811
11950
  findUnsupportedAgentSessionCapabilities,
11812
11951
  getAgentModeCapabilities,
11813
11952
  getAgentSessionRuntimeCapabilities,
11814
11953
  isAgentResourceModeCompatible,
11954
+ isAgentSessionTerminalStatus,
11815
11955
  normalizeAgentExecutionMode,
11816
11956
  normalizeAgentMode,
11817
11957
  resolveAgentSessionCommandTransition