@getforgeai/protocol 0.1.0-beta.3 → 0.1.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/constants/effort-level.d.ts +13 -0
- package/dist/constants/effort-level.js +17 -0
- package/dist/events/socket-events.d.ts +30 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -0
- package/dist/validation/cli-api.schema.d.ts +9 -0
- package/dist/validation/cli-api.schema.js +2 -0
- package/dist/validation/index.d.ts +2 -0
- package/dist/validation/index.js +1 -0
- package/dist/validation/model-config.schema.d.ts +59 -0
- package/dist/validation/model-config.schema.js +35 -0
- package/dist/validation/workflow-dispatch.schema.d.ts +9 -0
- package/dist/validation/workflow-dispatch.schema.js +3 -0
- package/package.json +1 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generic reasoning-effort scale shared by all agent engines.
|
|
3
|
+
* Each engine maps it onto its native knob at spawn time (CLI side):
|
|
4
|
+
* - Claude Code: --effort low|medium|high|max
|
|
5
|
+
* - Codex: model_reasoning_effort (max -> xhigh)
|
|
6
|
+
* - OpenCode/Kilo: --variant, clamped per model vendor
|
|
7
|
+
* "Thinking" is deliberately not a separate toggle: on modern models the
|
|
8
|
+
* effort level IS the reasoning control.
|
|
9
|
+
*/
|
|
10
|
+
export declare const EFFORT_LEVELS: readonly ["low", "medium", "high", "max"];
|
|
11
|
+
export type EffortLevel = (typeof EFFORT_LEVELS)[number];
|
|
12
|
+
export declare const EFFORT_LEVEL_LABELS: Record<EffortLevel, string>;
|
|
13
|
+
//# sourceMappingURL=effort-level.d.ts.map
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generic reasoning-effort scale shared by all agent engines.
|
|
3
|
+
* Each engine maps it onto its native knob at spawn time (CLI side):
|
|
4
|
+
* - Claude Code: --effort low|medium|high|max
|
|
5
|
+
* - Codex: model_reasoning_effort (max -> xhigh)
|
|
6
|
+
* - OpenCode/Kilo: --variant, clamped per model vendor
|
|
7
|
+
* "Thinking" is deliberately not a separate toggle: on modern models the
|
|
8
|
+
* effort level IS the reasoning control.
|
|
9
|
+
*/
|
|
10
|
+
export const EFFORT_LEVELS = ["low", "medium", "high", "max"];
|
|
11
|
+
export const EFFORT_LEVEL_LABELS = {
|
|
12
|
+
low: "Low",
|
|
13
|
+
medium: "Medium",
|
|
14
|
+
high: "High",
|
|
15
|
+
max: "Max",
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=effort-level.js.map
|
|
@@ -47,6 +47,8 @@ export type TaskUpdatePayload = SocketEventEnvelope & {
|
|
|
47
47
|
cliDeviceId?: string | null;
|
|
48
48
|
taskGroupId?: string | null;
|
|
49
49
|
taskGroupName?: string | null;
|
|
50
|
+
/** Task.metadata Json — carries dispatchBlocked ("MODEL_MISMATCH") among app data */
|
|
51
|
+
metadata?: Record<string, unknown> | null;
|
|
50
52
|
startedAt?: string | null;
|
|
51
53
|
taskBranch?: string | null;
|
|
52
54
|
prUrl?: string | null;
|
|
@@ -72,6 +74,14 @@ export type TaskDispatchPayload = SocketEventEnvelope & {
|
|
|
72
74
|
taskSlug?: string;
|
|
73
75
|
projectSlug?: string;
|
|
74
76
|
repoUrl?: string;
|
|
77
|
+
/**
|
|
78
|
+
* Resolved model/effort for the target device's engine
|
|
79
|
+
* (column -> project -> org demand chain; see ResolvedModelConfigSchema).
|
|
80
|
+
*/
|
|
81
|
+
modelConfig?: {
|
|
82
|
+
model?: string;
|
|
83
|
+
effort?: string;
|
|
84
|
+
};
|
|
75
85
|
};
|
|
76
86
|
export type CliHeartbeatPayload = SocketEventEnvelope & {
|
|
77
87
|
cliId: string;
|
|
@@ -333,6 +343,11 @@ export type WorkflowStepDispatchPayload = SocketEventEnvelope & {
|
|
|
333
343
|
projectSlug: string;
|
|
334
344
|
conversationHistory?: string;
|
|
335
345
|
hasSnapshot?: boolean;
|
|
346
|
+
/** Resolved model/effort for the target device (project -> org demand). */
|
|
347
|
+
modelConfig?: {
|
|
348
|
+
model?: string;
|
|
349
|
+
effort?: string;
|
|
350
|
+
};
|
|
336
351
|
};
|
|
337
352
|
export type WorkflowAgentIdlePayload = SocketEventEnvelope & {
|
|
338
353
|
workflowId: string;
|
|
@@ -380,6 +395,11 @@ export type TaskResumePayload = SocketEventEnvelope & {
|
|
|
380
395
|
projectSlug?: string;
|
|
381
396
|
taskBranch?: string;
|
|
382
397
|
repoUrl?: string;
|
|
398
|
+
/** Resolved model/effort for the target device (column -> project -> org). */
|
|
399
|
+
modelConfig?: {
|
|
400
|
+
model?: string;
|
|
401
|
+
effort?: string;
|
|
402
|
+
};
|
|
383
403
|
};
|
|
384
404
|
export type ProjectKanbanConfigPayload = SocketEventEnvelope & {
|
|
385
405
|
columns: {
|
|
@@ -399,6 +419,16 @@ export type CliConfigUpdatedPayload = {
|
|
|
399
419
|
* subsequent agent spawns.
|
|
400
420
|
*/
|
|
401
421
|
agentType?: string;
|
|
422
|
+
/**
|
|
423
|
+
* Server-owned available-models list per engine, present when the cockpit
|
|
424
|
+
* edited it. The CLI persists it as its declared model list.
|
|
425
|
+
*/
|
|
426
|
+
availableModels?: Record<string, string[]>;
|
|
427
|
+
/**
|
|
428
|
+
* When true, the org locked the device's model list: the server ignores
|
|
429
|
+
* CLI-sent lists and `forge config set models` must refuse locally.
|
|
430
|
+
*/
|
|
431
|
+
modelsLocked?: boolean;
|
|
402
432
|
};
|
|
403
433
|
export type SocketErrorPayload = {
|
|
404
434
|
message: string;
|
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,8 @@ export type { KanbanColumnConfig } from "./constants/task-status.js";
|
|
|
3
3
|
export { AGENT_STATUS } from "./constants/agent-status.js";
|
|
4
4
|
export { AGENT_TYPE, AGENT_TYPE_LABELS, DEFAULT_AGENT_TYPE, isAgentType, } from "./constants/agent-type.js";
|
|
5
5
|
export type { AgentType } from "./constants/agent-type.js";
|
|
6
|
+
export { EFFORT_LEVELS, EFFORT_LEVEL_LABELS, } from "./constants/effort-level.js";
|
|
7
|
+
export type { EffortLevel } from "./constants/effort-level.js";
|
|
6
8
|
export { CLI_STATUS } from "./constants/cli-status.js";
|
|
7
9
|
export { WORKFLOW_TYPE } from "./constants/workflow-type.js";
|
|
8
10
|
export type { WorkflowType } from "./constants/workflow-type.js";
|
package/dist/index.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
export { KANBAN_SUB_STATUS, DEFAULT_KANBAN_COLUMNS, KANBAN_COLUMN_COLORS, DEFAULT_MAX_REQUEUE, } from "./constants/task-status.js";
|
|
3
3
|
export { AGENT_STATUS } from "./constants/agent-status.js";
|
|
4
4
|
export { AGENT_TYPE, AGENT_TYPE_LABELS, DEFAULT_AGENT_TYPE, isAgentType, } from "./constants/agent-type.js";
|
|
5
|
+
export { EFFORT_LEVELS, EFFORT_LEVEL_LABELS, } from "./constants/effort-level.js";
|
|
5
6
|
export { CLI_STATUS } from "./constants/cli-status.js";
|
|
6
7
|
export { WORKFLOW_TYPE } from "./constants/workflow-type.js";
|
|
7
8
|
export { WORKFLOW_SCOPE } from "./constants/workflow-scope.js";
|
|
@@ -89,6 +89,15 @@ export declare const TaskResumePayloadSchema: z.ZodObject<{
|
|
|
89
89
|
projectSlug: z.ZodOptional<z.ZodString>;
|
|
90
90
|
taskBranch: z.ZodOptional<z.ZodString>;
|
|
91
91
|
repoUrl: z.ZodOptional<z.ZodString>;
|
|
92
|
+
modelConfig: z.ZodOptional<z.ZodObject<{
|
|
93
|
+
model: z.ZodOptional<z.ZodString>;
|
|
94
|
+
effort: z.ZodOptional<z.ZodEnum<{
|
|
95
|
+
low: "low";
|
|
96
|
+
medium: "medium";
|
|
97
|
+
high: "high";
|
|
98
|
+
max: "max";
|
|
99
|
+
}>>;
|
|
100
|
+
}, z.core.$strip>>;
|
|
92
101
|
}, z.core.$strip>;
|
|
93
102
|
export type TaskResumePayload = z.infer<typeof TaskResumePayloadSchema>;
|
|
94
103
|
//# sourceMappingURL=cli-api.schema.d.ts.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import { ResolvedModelConfigSchema } from "./model-config.schema.js";
|
|
2
3
|
// --- Heartbeat ---
|
|
3
4
|
export const HeartbeatRequestSchema = z.object({
|
|
4
5
|
cliId: z.string(),
|
|
@@ -69,5 +70,6 @@ export const TaskResumePayloadSchema = z.object({
|
|
|
69
70
|
projectSlug: z.string().optional(),
|
|
70
71
|
taskBranch: z.string().optional(),
|
|
71
72
|
repoUrl: z.string().optional(),
|
|
73
|
+
modelConfig: ResolvedModelConfigSchema.optional(),
|
|
72
74
|
});
|
|
73
75
|
//# sourceMappingURL=cli-api.schema.js.map
|
|
@@ -16,4 +16,6 @@ export { CreateReleaseSchema, UpdateReleaseStatusSchema, ReleaseMergeProgressSch
|
|
|
16
16
|
export type { CreateRelease, UpdateReleaseStatus, ReleaseMergeProgress, ReleaseReady, ReleaseFinalized, } from "./release.schema.js";
|
|
17
17
|
export { ForgeGetTaskInputSchema, ForgeGetTaskOutputSchema, ForgeUpdateStatusInputSchema, ForgeUpdateStatusOutputSchema, ForgeAskHumanInputSchema, ForgeAskHumanOutputSchema, ForgeRequeueInputSchema, TaskRequeueResponseSchema, TaskAskHumanPayloadSchema, AgentStatusPayloadSchema, AgentStreamPayloadSchema, AgentToolActivityPayloadSchema, ForgeCompleteStepDeliverableSchema, ForgeCompleteStepInputSchema, ForgeCompleteStepPayloadSchema, ForgeCreateTaskGroupInputSchema, ForgeCreateTaskGroupPayloadSchema, ForgeAddGroupDependencyInputSchema, ForgeAddGroupDependencyPayloadSchema, ForgeCreateTaskInputSchema, ForgeCreateTaskPayloadSchema, ForgeAddTaskDependencyInputSchema, ForgeAddTaskDependencyPayloadSchema, ForgeUpdateTaskInputSchema, ForgeUpdateTaskPayloadSchema, ForgeDeleteTaskInputSchema, ForgeDeleteTaskPayloadSchema, ForgeUpdateTaskGroupInputSchema, ForgeUpdateTaskGroupPayloadSchema, ForgeDeleteTaskGroupInputSchema, ForgeDeleteTaskGroupPayloadSchema, ForgeRemoveTaskDependencyInputSchema, ForgeRemoveTaskDependencyPayloadSchema, ForgeRemoveGroupDependencyInputSchema, ForgeRemoveGroupDependencyPayloadSchema, } from "./mcp-tools.schema.js";
|
|
18
18
|
export type { ForgeGetTaskInput, ForgeGetTaskOutput, ForgeUpdateStatusInput, ForgeUpdateStatusOutput, ForgeAskHumanInput, ForgeAskHumanOutput, ForgeRequeueInput, TaskRequeueResponse, TaskAskHumanPayload, AgentStatusPayloadValidated, AgentStreamPayloadValidated, AgentToolActivityPayloadValidated, ForgeCompleteStepDeliverable, ForgeCompleteStepInput, ForgeCompleteStepPayload, ForgeCreateTaskGroupInput, ForgeCreateTaskGroupPayload, ForgeAddGroupDependencyInput, ForgeAddGroupDependencyPayload, ForgeCreateTaskInput, ForgeCreateTaskPayload, ForgeAddTaskDependencyInput, ForgeAddTaskDependencyPayload, ForgeUpdateTaskInput, ForgeUpdateTaskPayload, ForgeDeleteTaskInput, ForgeDeleteTaskPayload, ForgeUpdateTaskGroupInput, ForgeUpdateTaskGroupPayload, ForgeDeleteTaskGroupInput, ForgeDeleteTaskGroupPayload, ForgeRemoveTaskDependencyInput, ForgeRemoveTaskDependencyPayload, ForgeRemoveGroupDependencyInput, ForgeRemoveGroupDependencyPayload, } from "./mcp-tools.schema.js";
|
|
19
|
+
export { EffortLevelSchema, ModelConfigSchema, AvailableModelsSchema, ResolvedModelConfigSchema, } from "./model-config.schema.js";
|
|
20
|
+
export type { ModelConfig, AvailableModels, ResolvedModelConfig, } from "./model-config.schema.js";
|
|
19
21
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/validation/index.js
CHANGED
|
@@ -16,4 +16,5 @@ export { WorkflowStreamPayloadSchema, WorkflowStreamEndPayloadSchema, WorkflowMe
|
|
|
16
16
|
export { CreateReleaseSchema, UpdateReleaseStatusSchema, ReleaseMergeProgressSchema, ReleaseReadySchema, ReleaseFinalizedSchema, } from "./release.schema.js";
|
|
17
17
|
// MCP tool schemas (Story 6.1 + 6.4b + 6.5)
|
|
18
18
|
export { ForgeGetTaskInputSchema, ForgeGetTaskOutputSchema, ForgeUpdateStatusInputSchema, ForgeUpdateStatusOutputSchema, ForgeAskHumanInputSchema, ForgeAskHumanOutputSchema, ForgeRequeueInputSchema, TaskRequeueResponseSchema, TaskAskHumanPayloadSchema, AgentStatusPayloadSchema, AgentStreamPayloadSchema, AgentToolActivityPayloadSchema, ForgeCompleteStepDeliverableSchema, ForgeCompleteStepInputSchema, ForgeCompleteStepPayloadSchema, ForgeCreateTaskGroupInputSchema, ForgeCreateTaskGroupPayloadSchema, ForgeAddGroupDependencyInputSchema, ForgeAddGroupDependencyPayloadSchema, ForgeCreateTaskInputSchema, ForgeCreateTaskPayloadSchema, ForgeAddTaskDependencyInputSchema, ForgeAddTaskDependencyPayloadSchema, ForgeUpdateTaskInputSchema, ForgeUpdateTaskPayloadSchema, ForgeDeleteTaskInputSchema, ForgeDeleteTaskPayloadSchema, ForgeUpdateTaskGroupInputSchema, ForgeUpdateTaskGroupPayloadSchema, ForgeDeleteTaskGroupInputSchema, ForgeDeleteTaskGroupPayloadSchema, ForgeRemoveTaskDependencyInputSchema, ForgeRemoveTaskDependencyPayloadSchema, ForgeRemoveGroupDependencyInputSchema, ForgeRemoveGroupDependencyPayloadSchema, } from "./mcp-tools.schema.js";
|
|
19
|
+
export { EffortLevelSchema, ModelConfigSchema, AvailableModelsSchema, ResolvedModelConfigSchema, } from "./model-config.schema.js";
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const EffortLevelSchema: z.ZodEnum<{
|
|
3
|
+
low: "low";
|
|
4
|
+
medium: "medium";
|
|
5
|
+
high: "high";
|
|
6
|
+
max: "max";
|
|
7
|
+
}>;
|
|
8
|
+
/**
|
|
9
|
+
* Demand-side settings stored on Organization.modelConfig and
|
|
10
|
+
* Project.modelConfig: the model wanted per engine (ids are engine-specific)
|
|
11
|
+
* plus a default effort. All fields optional — absent means "inherit"
|
|
12
|
+
* (project -> org -> device default).
|
|
13
|
+
*/
|
|
14
|
+
export declare const ModelConfigSchema: z.ZodObject<{
|
|
15
|
+
models: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
16
|
+
CLAUDE_CODE: "CLAUDE_CODE";
|
|
17
|
+
CODEX: "CODEX";
|
|
18
|
+
OPENCODE: "OPENCODE";
|
|
19
|
+
KILO: "KILO";
|
|
20
|
+
}> & z.core.$partial, z.ZodString>>;
|
|
21
|
+
effort: z.ZodOptional<z.ZodEnum<{
|
|
22
|
+
low: "low";
|
|
23
|
+
medium: "medium";
|
|
24
|
+
high: "high";
|
|
25
|
+
max: "max";
|
|
26
|
+
}>>;
|
|
27
|
+
}, z.core.$strip>;
|
|
28
|
+
export type ModelConfig = z.infer<typeof ModelConfigSchema>;
|
|
29
|
+
/**
|
|
30
|
+
* Supply-side declaration stored on CliDevice.availableModels: the models the
|
|
31
|
+
* device owner has made usable per engine. First entry = the device's default
|
|
32
|
+
* for that engine. Editable from the CLI unless the org locked it
|
|
33
|
+
* (CliDevice.modelsLocked), in which case the cockpit owns the list.
|
|
34
|
+
*/
|
|
35
|
+
export declare const AvailableModelsSchema: z.ZodRecord<z.ZodEnum<{
|
|
36
|
+
CLAUDE_CODE: "CLAUDE_CODE";
|
|
37
|
+
CODEX: "CODEX";
|
|
38
|
+
OPENCODE: "OPENCODE";
|
|
39
|
+
KILO: "KILO";
|
|
40
|
+
}> & z.core.$partial, z.ZodArray<z.ZodString>>;
|
|
41
|
+
export type AvailableModels = z.infer<typeof AvailableModelsSchema>;
|
|
42
|
+
/**
|
|
43
|
+
* The RESOLVED config riding dispatch payloads (task:dispatch,
|
|
44
|
+
* workflow:step:dispatch): a single model string for the target device's
|
|
45
|
+
* engine, plus the effort. Resolution chain (cloud side):
|
|
46
|
+
* column -> project -> org; a device not declaring the demanded model is
|
|
47
|
+
* ineligible for the task.
|
|
48
|
+
*/
|
|
49
|
+
export declare const ResolvedModelConfigSchema: z.ZodObject<{
|
|
50
|
+
model: z.ZodOptional<z.ZodString>;
|
|
51
|
+
effort: z.ZodOptional<z.ZodEnum<{
|
|
52
|
+
low: "low";
|
|
53
|
+
medium: "medium";
|
|
54
|
+
high: "high";
|
|
55
|
+
max: "max";
|
|
56
|
+
}>>;
|
|
57
|
+
}, z.core.$strip>;
|
|
58
|
+
export type ResolvedModelConfig = z.infer<typeof ResolvedModelConfigSchema>;
|
|
59
|
+
//# sourceMappingURL=model-config.schema.d.ts.map
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { AGENT_TYPE } from "../constants/agent-type.js";
|
|
3
|
+
import { EFFORT_LEVELS } from "../constants/effort-level.js";
|
|
4
|
+
export const EffortLevelSchema = z.enum(EFFORT_LEVELS);
|
|
5
|
+
/**
|
|
6
|
+
* Demand-side settings stored on Organization.modelConfig and
|
|
7
|
+
* Project.modelConfig: the model wanted per engine (ids are engine-specific)
|
|
8
|
+
* plus a default effort. All fields optional — absent means "inherit"
|
|
9
|
+
* (project -> org -> device default).
|
|
10
|
+
*/
|
|
11
|
+
export const ModelConfigSchema = z.object({
|
|
12
|
+
models: z
|
|
13
|
+
.partialRecord(z.enum(AGENT_TYPE), z.string().trim().min(1).max(120))
|
|
14
|
+
.optional(),
|
|
15
|
+
effort: EffortLevelSchema.optional(),
|
|
16
|
+
});
|
|
17
|
+
/**
|
|
18
|
+
* Supply-side declaration stored on CliDevice.availableModels: the models the
|
|
19
|
+
* device owner has made usable per engine. First entry = the device's default
|
|
20
|
+
* for that engine. Editable from the CLI unless the org locked it
|
|
21
|
+
* (CliDevice.modelsLocked), in which case the cockpit owns the list.
|
|
22
|
+
*/
|
|
23
|
+
export const AvailableModelsSchema = z.partialRecord(z.enum(AGENT_TYPE), z.array(z.string().trim().min(1).max(120)).max(20));
|
|
24
|
+
/**
|
|
25
|
+
* The RESOLVED config riding dispatch payloads (task:dispatch,
|
|
26
|
+
* workflow:step:dispatch): a single model string for the target device's
|
|
27
|
+
* engine, plus the effort. Resolution chain (cloud side):
|
|
28
|
+
* column -> project -> org; a device not declaring the demanded model is
|
|
29
|
+
* ineligible for the task.
|
|
30
|
+
*/
|
|
31
|
+
export const ResolvedModelConfigSchema = z.object({
|
|
32
|
+
model: z.string().trim().min(1).max(120).optional(),
|
|
33
|
+
effort: EffortLevelSchema.optional(),
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=model-config.schema.js.map
|
|
@@ -16,6 +16,15 @@ export declare const WorkflowStepDispatchPayloadSchema: z.ZodObject<{
|
|
|
16
16
|
conversationHistory: z.ZodOptional<z.ZodString>;
|
|
17
17
|
skillSlug: z.ZodOptional<z.ZodString>;
|
|
18
18
|
hasSnapshot: z.ZodOptional<z.ZodBoolean>;
|
|
19
|
+
modelConfig: z.ZodOptional<z.ZodObject<{
|
|
20
|
+
model: z.ZodOptional<z.ZodString>;
|
|
21
|
+
effort: z.ZodOptional<z.ZodEnum<{
|
|
22
|
+
low: "low";
|
|
23
|
+
medium: "medium";
|
|
24
|
+
high: "high";
|
|
25
|
+
max: "max";
|
|
26
|
+
}>>;
|
|
27
|
+
}, z.core.$strip>>;
|
|
19
28
|
timestamp: z.ZodString;
|
|
20
29
|
}, z.core.$strip>;
|
|
21
30
|
export type WorkflowStepDispatchPayload = z.infer<typeof WorkflowStepDispatchPayloadSchema>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import { ResolvedModelConfigSchema } from "./model-config.schema.js";
|
|
2
3
|
// --- workflow:step:dispatch payload validation (Story 6b.7) ---
|
|
3
4
|
export const WorkflowStepDispatchPayloadSchema = z.object({
|
|
4
5
|
orgId: z.string(),
|
|
@@ -17,6 +18,8 @@ export const WorkflowStepDispatchPayloadSchema = z.object({
|
|
|
17
18
|
conversationHistory: z.string().optional(),
|
|
18
19
|
skillSlug: z.string().optional(),
|
|
19
20
|
hasSnapshot: z.boolean().optional(),
|
|
21
|
+
/** Resolved model/effort for the target device (column -> project -> org). */
|
|
22
|
+
modelConfig: ResolvedModelConfigSchema.optional(),
|
|
20
23
|
timestamp: z.string(),
|
|
21
24
|
});
|
|
22
25
|
//# sourceMappingURL=workflow-dispatch.schema.js.map
|
package/package.json
CHANGED