@inf-monkeys-tech/monkeys 1.0.20 → 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.
- package/lib/contracts/agent.d.ts +513 -0
- package/lib/contracts/agent.d.ts.map +1 -1
- package/lib/contracts/agent.js +155 -1
- package/lib/contracts/agent.js.map +1 -1
- package/lib/esm/contracts/index.mjs +140 -1
- package/lib/esm/contracts/index.mjs.map +1 -1
- package/lib/esm/index.mjs +143 -1
- package/lib/esm/index.mjs.map +1 -1
- package/lib/esm/runtime/index.mjs +121 -1
- package/lib/esm/runtime/index.mjs.map +1 -1
- package/lib/esm/schemas/index.mjs +128 -1
- package/lib/esm/schemas/index.mjs.map +1 -1
- package/lib/json-schema/agent-session-command-result.schema.json +15 -0
- package/lib/json-schema/agent-session-command.schema.json +20 -0
- package/lib/json-schema/agent-session-event.schema.json +179 -0
- package/lib/json-schema/agent-session-run-event.schema.json +1501 -0
- package/lib/json-schema/agent-session-run.schema.json +72 -0
- package/lib/json-schema/agent-session-targeted-command.schema.json +302 -0
- package/lib/json-schema/agent-session-view-model.schema.json +179 -0
- package/lib/json-schema/index.json +3 -0
- package/lib/schemas/index.d.ts +500 -1
- package/lib/schemas/index.d.ts.map +1 -1
- package/lib/schemas/index.js +10 -3
- package/lib/schemas/index.js.map +1 -1
- package/package.json +1 -1
- 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,
|
|
@@ -11732,8 +11865,11 @@ var WorkflowCompletionReceiptSchema = z15.object({
|
|
|
11732
11865
|
// src/schemas/index.ts
|
|
11733
11866
|
var canonicalContractSchemas = {
|
|
11734
11867
|
"agent-session-command": AgentSessionCommandSchema,
|
|
11868
|
+
"agent-session-targeted-command": AgentSessionTargetedCommandSchema,
|
|
11735
11869
|
"agent-session-command-result": AgentSessionCommandResultSchema,
|
|
11736
11870
|
"agent-session-event": AgentSessionEventSchema,
|
|
11871
|
+
"agent-session-run-event": AgentSessionRunEventSchema,
|
|
11872
|
+
"agent-session-run": AgentSessionRunSchema,
|
|
11737
11873
|
"agent-session-view-model": AgentSessionViewModelSchema,
|
|
11738
11874
|
"agent-runtime-event": AgentRuntimeEventSchema,
|
|
11739
11875
|
"application-run": ApplicationRunSchema,
|
|
@@ -13040,8 +13176,12 @@ export {
|
|
|
13040
13176
|
AgentSessionCommandSchema,
|
|
13041
13177
|
AgentSessionCommandTypeSchema,
|
|
13042
13178
|
AgentSessionEventSchema,
|
|
13179
|
+
AgentSessionRunEventSchema,
|
|
13180
|
+
AgentSessionRunSchema,
|
|
13043
13181
|
AgentSessionSnapshotSchema,
|
|
13044
13182
|
AgentSessionStatusSchema,
|
|
13183
|
+
AgentSessionTargetedCommandSchema,
|
|
13184
|
+
AgentSessionTerminalStatusSchema,
|
|
13045
13185
|
AgentSessionViewModelSchema,
|
|
13046
13186
|
ApplicationHandoffEndpointSchema,
|
|
13047
13187
|
ApplicationHandoffSchema,
|
|
@@ -13186,6 +13326,7 @@ export {
|
|
|
13186
13326
|
assertThemeTokensDocumentStructure,
|
|
13187
13327
|
buildApplicationHandoffUrl,
|
|
13188
13328
|
buildChangeImpactGraph,
|
|
13329
|
+
canApplyAgentSessionRunStatus,
|
|
13189
13330
|
canonicalContractSchemas,
|
|
13190
13331
|
compileCapabilityRegistry,
|
|
13191
13332
|
compileConductorWorkflowDefinition,
|
|
@@ -13210,6 +13351,7 @@ export {
|
|
|
13210
13351
|
getAgentModeCapabilities,
|
|
13211
13352
|
getAgentSessionRuntimeCapabilities,
|
|
13212
13353
|
isAgentResourceModeCompatible,
|
|
13354
|
+
isAgentSessionTerminalStatus,
|
|
13213
13355
|
mergeThemeTokenDocuments,
|
|
13214
13356
|
normalizeAgentExecutionMode,
|
|
13215
13357
|
normalizeAgentMode,
|