@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
package/lib/esm/index.mjs CHANGED
@@ -6819,11 +6819,70 @@ var AgentSessionStatusSchema = z3.enum([
6819
6819
  "completed",
6820
6820
  "failed"
6821
6821
  ]);
6822
+ var AgentSessionTerminalStatusSchema = z3.enum(["stopped", "completed", "failed"]);
6823
+ var AgentSessionRunSchema = z3.object({
6824
+ runId: ContractIdentifierSchema,
6825
+ sessionId: ContractIdentifierSchema,
6826
+ sourceMessageId: ContractIdentifierSchema,
6827
+ status: AgentSessionStatusSchema,
6828
+ startedAt: IsoDateTimeSchema,
6829
+ stoppingRequestedAt: IsoDateTimeSchema.optional(),
6830
+ stoppedAt: IsoDateTimeSchema.optional(),
6831
+ completedAt: IsoDateTimeSchema.optional(),
6832
+ failedAt: IsoDateTimeSchema.optional(),
6833
+ durationMs: z3.number().nonnegative().optional()
6834
+ }).strict().superRefine((value, context) => {
6835
+ const terminalTimestamps = [value.stoppedAt, value.completedAt, value.failedAt].filter(Boolean);
6836
+ if (terminalTimestamps.length > 1) {
6837
+ context.addIssue({
6838
+ code: "custom",
6839
+ path: ["status"],
6840
+ message: "A run may declare only one terminal timestamp."
6841
+ });
6842
+ }
6843
+ const expectedTimestamp = value.status === "stopped" ? value.stoppedAt : value.status === "completed" ? value.completedAt : value.status === "failed" ? value.failedAt : void 0;
6844
+ if (AgentSessionTerminalStatusSchema.safeParse(value.status).success && !expectedTimestamp) {
6845
+ context.addIssue({
6846
+ code: "custom",
6847
+ path: [value.status === "stopped" ? "stoppedAt" : value.status === "completed" ? "completedAt" : "failedAt"],
6848
+ message: `Run status ${value.status} requires its matching terminal timestamp.`
6849
+ });
6850
+ }
6851
+ if (!AgentSessionTerminalStatusSchema.safeParse(value.status).success && terminalTimestamps.length > 0) {
6852
+ context.addIssue({
6853
+ code: "custom",
6854
+ path: ["status"],
6855
+ message: "A non-terminal run must not declare a terminal timestamp."
6856
+ });
6857
+ }
6858
+ if ((value.status === "stopping" || value.status === "stopped") && !value.stoppingRequestedAt) {
6859
+ context.addIssue({
6860
+ code: "custom",
6861
+ path: ["stoppingRequestedAt"],
6862
+ message: `Run status ${value.status} requires stoppingRequestedAt.`
6863
+ });
6864
+ }
6865
+ if (!isAgentSessionTerminalStatus(value.status) && value.durationMs !== void 0) {
6866
+ context.addIssue({
6867
+ code: "custom",
6868
+ path: ["durationMs"],
6869
+ message: "Only a terminal run may declare durationMs."
6870
+ });
6871
+ }
6872
+ if (isAgentSessionTerminalStatus(value.status) && value.durationMs === void 0) {
6873
+ context.addIssue({
6874
+ code: "custom",
6875
+ path: ["durationMs"],
6876
+ message: `Terminal run status ${value.status} requires durationMs.`
6877
+ });
6878
+ }
6879
+ });
6822
6880
  var AgentSessionCommandTypeSchema = z3.enum(["stop", "resume", "retry", "approval"]);
6823
6881
  var AgentSessionCommandHeaderSchema = z3.object({
6824
6882
  contract: z3.literal("AgentSessionCommand"),
6825
6883
  commandId: ContractIdentifierSchema,
6826
6884
  sessionId: ContractIdentifierSchema,
6885
+ runId: ContractIdentifierSchema.optional(),
6827
6886
  idempotencyKey: ContractIdentifierSchema,
6828
6887
  expectedSequence: z3.number().int().min(-1),
6829
6888
  issuedAt: IsoDateTimeSchema
@@ -6848,8 +6907,14 @@ var AgentSessionCommandSchema = z3.discriminatedUnion("commandType", [
6848
6907
  reason: z3.string().trim().min(1).optional()
6849
6908
  })
6850
6909
  ]);
6910
+ var AgentSessionTargetedCommandSchema = AgentSessionCommandSchema.and(
6911
+ z3.object({ runId: ContractIdentifierSchema })
6912
+ );
6851
6913
  var AgentSessionCommandErrorCodeSchema = z3.enum([
6852
6914
  "SESSION_NOT_FOUND",
6915
+ "RUN_NOT_FOUND",
6916
+ "RUN_ALREADY_FINISHED",
6917
+ "STOP_TIMEOUT",
6853
6918
  "COMMAND_NOT_SUPPORTED",
6854
6919
  "CAPABILITY_UNAVAILABLE",
6855
6920
  "SEQUENCE_CONFLICT",
@@ -6864,11 +6929,13 @@ var AgentSessionCommandResultSchema = z3.object({
6864
6929
  contract: z3.literal("AgentSessionCommandResult"),
6865
6930
  commandId: ContractIdentifierSchema,
6866
6931
  sessionId: ContractIdentifierSchema,
6932
+ runId: ContractIdentifierSchema.optional(),
6867
6933
  idempotencyKey: ContractIdentifierSchema,
6868
6934
  outcome: z3.enum(["accepted", "duplicate", "rejected", "failed"]),
6869
6935
  sessionStatus: AgentSessionStatusSchema,
6870
6936
  acceptedSequence: z3.number().int().nonnegative().optional(),
6871
6937
  resultEventIds: z3.array(ContractIdentifierSchema).default([]),
6938
+ termination: z3.enum(["requested", "confirmed"]).optional(),
6872
6939
  error: z3.object({
6873
6940
  code: AgentSessionCommandErrorCodeSchema,
6874
6941
  message: z3.string(),
@@ -6884,6 +6951,20 @@ var AgentSessionCommandResultSchema = z3.object({
6884
6951
  message: requiresError ? "Rejected and failed command results require an error." : "Accepted and duplicate command results must not contain an error."
6885
6952
  });
6886
6953
  }
6954
+ if (value.termination === "requested" && value.sessionStatus !== "stopping") {
6955
+ context.addIssue({
6956
+ code: "custom",
6957
+ path: ["termination"],
6958
+ message: "A requested termination must leave the run in stopping status."
6959
+ });
6960
+ }
6961
+ if (value.termination === "confirmed" && !isAgentSessionTerminalStatus(value.sessionStatus)) {
6962
+ context.addIssue({
6963
+ code: "custom",
6964
+ path: ["termination"],
6965
+ message: "A confirmed termination requires a terminal run status."
6966
+ });
6967
+ }
6887
6968
  });
6888
6969
  var AGENT_SESSION_COMMAND_TRANSITIONS = {
6889
6970
  stop: { queued: "stopping", running: "stopping", waiting_approval: "stopping" },
@@ -6894,10 +6975,28 @@ var AGENT_SESSION_COMMAND_TRANSITIONS = {
6894
6975
  function resolveAgentSessionCommandTransition(status, commandType) {
6895
6976
  return AGENT_SESSION_COMMAND_TRANSITIONS[commandType][status];
6896
6977
  }
6978
+ function isAgentSessionTerminalStatus(status) {
6979
+ return AgentSessionTerminalStatusSchema.safeParse(status).success;
6980
+ }
6981
+ function canApplyAgentSessionRunStatus(current, next) {
6982
+ if (current === next) return true;
6983
+ const transitions = {
6984
+ queued: ["running", "stopping", "failed"],
6985
+ running: ["waiting_approval", "stopping", "completed", "failed"],
6986
+ waiting_approval: ["running", "stopping", "failed"],
6987
+ stopping: ["stopped", "completed", "failed"],
6988
+ stopped: [],
6989
+ completed: [],
6990
+ failed: []
6991
+ };
6992
+ return transitions[current].includes(next);
6993
+ }
6897
6994
  var AgentSessionEventHeaderSchema = z3.object({
6898
6995
  contract: z3.literal("AgentSessionEvent"),
6899
6996
  eventId: ContractIdentifierSchema,
6900
6997
  sessionId: ContractIdentifierSchema,
6998
+ runId: ContractIdentifierSchema.optional(),
6999
+ sourceMessageId: ContractIdentifierSchema.optional(),
6901
7000
  sequence: z3.number().int().nonnegative(),
6902
7001
  idempotencyKey: ContractIdentifierSchema,
6903
7002
  occurredAt: IsoDateTimeSchema
@@ -6957,7 +7056,13 @@ var AgentSessionEventSchema = z3.discriminatedUnion("eventType", [
6957
7056
  }),
6958
7057
  sessionEvent("status", {
6959
7058
  status: AgentSessionStatusSchema,
6960
- detail: z3.string().optional()
7059
+ detail: z3.string().optional(),
7060
+ startedAt: IsoDateTimeSchema.optional(),
7061
+ stoppingRequestedAt: IsoDateTimeSchema.optional(),
7062
+ stoppedAt: IsoDateTimeSchema.optional(),
7063
+ completedAt: IsoDateTimeSchema.optional(),
7064
+ failedAt: IsoDateTimeSchema.optional(),
7065
+ durationMs: z3.number().nonnegative().optional()
6961
7066
  }),
6962
7067
  sessionEvent("artifact", {
6963
7068
  artifactId: ContractIdentifierSchema,
@@ -7013,6 +7118,34 @@ var AgentSessionEventSchema = z3.discriminatedUnion("eventType", [
7013
7118
  output: z3.string().optional()
7014
7119
  })
7015
7120
  ]);
7121
+ var AgentSessionRunEventSchema = AgentSessionEventSchema.superRefine((value, context) => {
7122
+ if (!value.runId) {
7123
+ context.addIssue({ code: "custom", path: ["runId"], message: "Run events require runId." });
7124
+ }
7125
+ if (!value.sourceMessageId) {
7126
+ context.addIssue({
7127
+ code: "custom",
7128
+ path: ["sourceMessageId"],
7129
+ message: "Run events require sourceMessageId."
7130
+ });
7131
+ }
7132
+ if (value.eventType !== "status") return;
7133
+ 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;
7134
+ if (requiredTimeField && !value.payload[requiredTimeField]) {
7135
+ context.addIssue({
7136
+ code: "custom",
7137
+ path: ["payload", requiredTimeField],
7138
+ message: `Run status ${value.payload.status} requires ${requiredTimeField}.`
7139
+ });
7140
+ }
7141
+ if (isAgentSessionTerminalStatus(value.payload.status) && value.payload.durationMs === void 0) {
7142
+ context.addIssue({
7143
+ code: "custom",
7144
+ path: ["payload", "durationMs"],
7145
+ message: `Terminal run status ${value.payload.status} requires durationMs.`
7146
+ });
7147
+ }
7148
+ });
7016
7149
  var AgentSessionViewModelSchema = z3.object({
7017
7150
  contract: z3.literal("AgentSessionViewModel"),
7018
7151
  sessionId: ContractIdentifierSchema,
@@ -10461,7 +10594,8 @@ var TenantHeadbarModuleLeafSchema = z12.object({
10461
10594
  disabled: z12.boolean().optional(),
10462
10595
  icon: z12.string().optional(),
10463
10596
  showQuickSwitcher: z12.boolean().optional(),
10464
- showSidebar: z12.boolean().optional()
10597
+ showSidebar: z12.boolean().optional(),
10598
+ showContentFrame: z12.boolean().optional()
10465
10599
  }).strict();
10466
10600
  var TenantHeadbarModuleItemSchema = TenantHeadbarModuleLeafSchema.extend({
10467
10601
  children: z12.array(TenantHeadbarModuleLeafSchema).optional()
@@ -11731,8 +11865,11 @@ var WorkflowCompletionReceiptSchema = z15.object({
11731
11865
  // src/schemas/index.ts
11732
11866
  var canonicalContractSchemas = {
11733
11867
  "agent-session-command": AgentSessionCommandSchema,
11868
+ "agent-session-targeted-command": AgentSessionTargetedCommandSchema,
11734
11869
  "agent-session-command-result": AgentSessionCommandResultSchema,
11735
11870
  "agent-session-event": AgentSessionEventSchema,
11871
+ "agent-session-run-event": AgentSessionRunEventSchema,
11872
+ "agent-session-run": AgentSessionRunSchema,
11736
11873
  "agent-session-view-model": AgentSessionViewModelSchema,
11737
11874
  "agent-runtime-event": AgentRuntimeEventSchema,
11738
11875
  "application-run": ApplicationRunSchema,
@@ -13039,8 +13176,12 @@ export {
13039
13176
  AgentSessionCommandSchema,
13040
13177
  AgentSessionCommandTypeSchema,
13041
13178
  AgentSessionEventSchema,
13179
+ AgentSessionRunEventSchema,
13180
+ AgentSessionRunSchema,
13042
13181
  AgentSessionSnapshotSchema,
13043
13182
  AgentSessionStatusSchema,
13183
+ AgentSessionTargetedCommandSchema,
13184
+ AgentSessionTerminalStatusSchema,
13044
13185
  AgentSessionViewModelSchema,
13045
13186
  ApplicationHandoffEndpointSchema,
13046
13187
  ApplicationHandoffSchema,
@@ -13185,6 +13326,7 @@ export {
13185
13326
  assertThemeTokensDocumentStructure,
13186
13327
  buildApplicationHandoffUrl,
13187
13328
  buildChangeImpactGraph,
13329
+ canApplyAgentSessionRunStatus,
13188
13330
  canonicalContractSchemas,
13189
13331
  compileCapabilityRegistry,
13190
13332
  compileConductorWorkflowDefinition,
@@ -13209,6 +13351,7 @@ export {
13209
13351
  getAgentModeCapabilities,
13210
13352
  getAgentSessionRuntimeCapabilities,
13211
13353
  isAgentResourceModeCompatible,
13354
+ isAgentSessionTerminalStatus,
13212
13355
  mergeThemeTokenDocuments,
13213
13356
  normalizeAgentExecutionMode,
13214
13357
  normalizeAgentMode,