@flowdesk/core 0.1.0
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/agent-profiles.d.ts +38 -0
- package/dist/agent-profiles.d.ts.map +1 -0
- package/dist/agent-profiles.js +138 -0
- package/dist/agent-profiles.js.map +1 -0
- package/dist/audit.d.ts +11 -0
- package/dist/audit.d.ts.map +1 -0
- package/dist/audit.js +65 -0
- package/dist/audit.js.map +1 -0
- package/dist/bootstrap-foundation.d.ts +83 -0
- package/dist/bootstrap-foundation.d.ts.map +1 -0
- package/dist/bootstrap-foundation.js +773 -0
- package/dist/bootstrap-foundation.js.map +1 -0
- package/dist/chat-routing.d.ts +15 -0
- package/dist/chat-routing.d.ts.map +1 -0
- package/dist/chat-routing.js +172 -0
- package/dist/chat-routing.js.map +1 -0
- package/dist/command-manifest.d.ts +39 -0
- package/dist/command-manifest.d.ts.map +1 -0
- package/dist/command-manifest.js +240 -0
- package/dist/command-manifest.js.map +1 -0
- package/dist/config-policy.d.ts +31 -0
- package/dist/config-policy.d.ts.map +1 -0
- package/dist/config-policy.js +341 -0
- package/dist/config-policy.js.map +1 -0
- package/dist/fake-runtime.d.ts +68 -0
- package/dist/fake-runtime.d.ts.map +1 -0
- package/dist/fake-runtime.js +285 -0
- package/dist/fake-runtime.js.map +1 -0
- package/dist/guard-boundary.d.ts +53 -0
- package/dist/guard-boundary.d.ts.map +1 -0
- package/dist/guard-boundary.js +220 -0
- package/dist/guard-boundary.js.map +1 -0
- package/dist/guarded-dry-run.d.ts +46 -0
- package/dist/guarded-dry-run.d.ts.map +1 -0
- package/dist/guarded-dry-run.js +111 -0
- package/dist/guarded-dry-run.js.map +1 -0
- package/dist/hook-harness.d.ts +8 -0
- package/dist/hook-harness.d.ts.map +1 -0
- package/dist/hook-harness.js +130 -0
- package/dist/hook-harness.js.map +1 -0
- package/dist/index.d.ts +41 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +51 -0
- package/dist/index.js.map +1 -0
- package/dist/lane-observability.d.ts +22 -0
- package/dist/lane-observability.d.ts.map +1 -0
- package/dist/lane-observability.js +138 -0
- package/dist/lane-observability.js.map +1 -0
- package/dist/plan.d.ts +37 -0
- package/dist/plan.d.ts.map +1 -0
- package/dist/plan.js +137 -0
- package/dist/plan.js.map +1 -0
- package/dist/production-enablement.d.ts +57 -0
- package/dist/production-enablement.d.ts.map +1 -0
- package/dist/production-enablement.js +259 -0
- package/dist/production-enablement.js.map +1 -0
- package/dist/provider-failures.d.ts +19 -0
- package/dist/provider-failures.d.ts.map +1 -0
- package/dist/provider-failures.js +116 -0
- package/dist/provider-failures.js.map +1 -0
- package/dist/provider-usage-collector.d.ts +60 -0
- package/dist/provider-usage-collector.d.ts.map +1 -0
- package/dist/provider-usage-collector.js +502 -0
- package/dist/provider-usage-collector.js.map +1 -0
- package/dist/redaction.d.ts +5 -0
- package/dist/redaction.d.ts.map +1 -0
- package/dist/redaction.js +11 -0
- package/dist/redaction.js.map +1 -0
- package/dist/release1-contracts.d.ts +1203 -0
- package/dist/release1-contracts.d.ts.map +1 -0
- package/dist/release1-contracts.js +256 -0
- package/dist/release1-contracts.js.map +1 -0
- package/dist/retry.d.ts +21 -0
- package/dist/retry.d.ts.map +1 -0
- package/dist/retry.js +107 -0
- package/dist/retry.js.map +1 -0
- package/dist/reviewer-lane-conformance.d.ts +35 -0
- package/dist/reviewer-lane-conformance.d.ts.map +1 -0
- package/dist/reviewer-lane-conformance.js +124 -0
- package/dist/reviewer-lane-conformance.js.map +1 -0
- package/dist/schema-artifacts.d.ts +19 -0
- package/dist/schema-artifacts.d.ts.map +1 -0
- package/dist/schema-artifacts.js +182 -0
- package/dist/schema-artifacts.js.map +1 -0
- package/dist/schema-registry.d.ts +32 -0
- package/dist/schema-registry.d.ts.map +1 -0
- package/dist/schema-registry.js +163 -0
- package/dist/schema-registry.js.map +1 -0
- package/dist/session-evidence.d.ts +71 -0
- package/dist/session-evidence.d.ts.map +1 -0
- package/dist/session-evidence.js +336 -0
- package/dist/session-evidence.js.map +1 -0
- package/dist/state-paths.d.ts +20 -0
- package/dist/state-paths.d.ts.map +1 -0
- package/dist/state-paths.js +72 -0
- package/dist/state-paths.js.map +1 -0
- package/dist/state-store.d.ts +75 -0
- package/dist/state-store.d.ts.map +1 -0
- package/dist/state-store.js +567 -0
- package/dist/state-store.js.map +1 -0
- package/dist/status.d.ts +37 -0
- package/dist/status.d.ts.map +1 -0
- package/dist/status.js +304 -0
- package/dist/status.js.map +1 -0
- package/dist/tool-contract-fixtures.d.ts +134 -0
- package/dist/tool-contract-fixtures.d.ts.map +1 -0
- package/dist/tool-contract-fixtures.js +389 -0
- package/dist/tool-contract-fixtures.js.map +1 -0
- package/dist/top-tier-reviewer-lane-probe.d.ts +10 -0
- package/dist/top-tier-reviewer-lane-probe.d.ts.map +1 -0
- package/dist/top-tier-reviewer-lane-probe.js +76 -0
- package/dist/top-tier-reviewer-lane-probe.js.map +1 -0
- package/dist/usage-health.d.ts +44 -0
- package/dist/usage-health.d.ts.map +1 -0
- package/dist/usage-health.js +105 -0
- package/dist/usage-health.js.map +1 -0
- package/dist/validators.d.ts +142 -0
- package/dist/validators.d.ts.map +1 -0
- package/dist/validators.js +1690 -0
- package/dist/validators.js.map +1 -0
- package/package.json +37 -0
|
@@ -0,0 +1,1203 @@
|
|
|
1
|
+
export type OpaqueId = string;
|
|
2
|
+
export type OpaqueRef = string;
|
|
3
|
+
export type IsoTimestamp = string;
|
|
4
|
+
export declare const FLOWDESK_SCHEMA_VERSION_PREFIX: "flowdesk.";
|
|
5
|
+
export declare const FLOWDESK_RELEASE_1: "release1";
|
|
6
|
+
export declare const FLOWDESK_WORKFLOW_STATE_ROOT: ".flowdesk/workflows";
|
|
7
|
+
export declare const FLOWDESK_SESSION_RECORD_ROOT: ".flowdesk/sessions";
|
|
8
|
+
export declare const FLOWDESK_CANONICAL_REVIEW_AGENT_ID: "reviewer";
|
|
9
|
+
export declare const FORBIDDEN_RAW_PAYLOAD_MARKERS: readonly ["payload", "raw_prompt", "raw_body", "raw_path", "raw_log", "prompt_body", "transcript", "credential", "secret", "token", "tool_args", "tool_result", "shell_output", "provider_payload", "provider_response", "runtime_echo", "stack_trace", "file_content", "file_path", "filesystem_path", "absolute_path", "repo_name", "organization_name", "branch_name", "issue_title", "pr_title", "prompt_hash"];
|
|
10
|
+
export declare const INPUT_MODES: readonly ["chat_routed", "portable_command", "alias_command", "test_fixture"];
|
|
11
|
+
export type InputMode = (typeof INPUT_MODES)[number];
|
|
12
|
+
export declare const PROVIDER_FAMILIES: readonly ["claude", "openai", "gemini", "opencode_go", "z_ai", "unknown", "all"];
|
|
13
|
+
export type ProviderFamily = (typeof PROVIDER_FAMILIES)[number];
|
|
14
|
+
export declare const TOOL_STATUSES: readonly ["ready", "blocked", "needs_clarification", "dry_run_complete", "fake_runtime_complete", "recovery_available", "degraded", "diagnostic_only", "error"];
|
|
15
|
+
export type ToolStatus = (typeof TOOL_STATUSES)[number];
|
|
16
|
+
export declare const SAFE_NEXT_ACTIONS: readonly ["/flowdesk-doctor", "/flowdesk-plan", "/flowdesk-explain-route", "/flowdesk-run", "/flowdesk-status", "/flowdesk-resume", "/flowdesk-retry", "/flowdesk-abort", "/flowdesk-usage", "/flowdesk-audit", "/flowdesk-export-debug", "continue_chat", "ask_clarification"];
|
|
17
|
+
export type SafeNextAction = (typeof SAFE_NEXT_ACTIONS)[number];
|
|
18
|
+
export declare const REDACTED_ERROR_CATEGORIES: readonly ["schema", "policy", "conformance", "usage", "provider_health", "provider_api", "model_availability", "state", "audit", "redaction", "runtime", "unknown"];
|
|
19
|
+
export type RedactedErrorCategory = (typeof REDACTED_ERROR_CATEGORIES)[number];
|
|
20
|
+
export declare const PROVIDER_FAILURE_CLASSES: readonly ["none", "auth_missing", "auth_expired", "provider_unavailable", "rate_limited", "model_unavailable", "transport_timeout", "provider_error", "opencode_provider_load_failure", "telemetry_ambiguous"];
|
|
21
|
+
export type ProviderFailureClass = (typeof PROVIDER_FAILURE_CLASSES)[number];
|
|
22
|
+
export declare const DISABLED_MODES: readonly ["chat_routed", "real_dispatch", "managed_fallback", "lane_launch", "hard_chat_blocking", "workflow_optimization", "specialist_workflow"];
|
|
23
|
+
export type DisabledModeV1 = (typeof DISABLED_MODES)[number];
|
|
24
|
+
export declare const DOCTOR_FAILURE_CATEGORIES: readonly ["dispatch_blocking", "chat_mode_disable", "degraded_mode_warning", "informational"];
|
|
25
|
+
export type DoctorFailureCategoryV1 = (typeof DOCTOR_FAILURE_CATEGORIES)[number];
|
|
26
|
+
export interface DoctorFailureCategoryOutcomeV1 {
|
|
27
|
+
category: DoctorFailureCategoryV1;
|
|
28
|
+
disabled_modes: DisabledModeV1[];
|
|
29
|
+
safe_next_actions: SafeNextAction[];
|
|
30
|
+
managed_dispatch_allowed: false;
|
|
31
|
+
privileged_automation_allowed: false;
|
|
32
|
+
dispatch_authorized: false;
|
|
33
|
+
fallback_authorized: false;
|
|
34
|
+
guard_bypassed: false;
|
|
35
|
+
}
|
|
36
|
+
export declare const WORKFLOW_STATES: readonly ["idle", "intake_received", "fast_chat", "clarify_pending", "plan_pending_approval", "guard_pending", "ready_to_run", "running", "verification_failed", "retry_pending", "blocked", "complete", "aborted"];
|
|
37
|
+
export type WorkflowStateV1 = (typeof WORKFLOW_STATES)[number];
|
|
38
|
+
export declare const USAGE_UNCERTAINTY_FLAGS: readonly ["unknown", "stale", "refused", "shared_limit_suspected", "fallback_derived", "model_generated", "telemetry_ambiguous"];
|
|
39
|
+
export type UsageUncertaintyFlagV1 = (typeof USAGE_UNCERTAINTY_FLAGS)[number];
|
|
40
|
+
export declare const DEBUG_SECTIONS: readonly ["doctor", "conformance", "workflow_state", "audit_refs", "usage_summary", "policy_summary", "redaction_summary"];
|
|
41
|
+
export type DebugSectionV1 = (typeof DEBUG_SECTIONS)[number];
|
|
42
|
+
export declare const RELEASE_1_RUN_MODES: readonly ["guarded-dry-run", "fake-runtime", "command-steering"];
|
|
43
|
+
export type Release1RunModeV1 = (typeof RELEASE_1_RUN_MODES)[number];
|
|
44
|
+
export declare const ATTEMPT_STATES: readonly ["created", "guard_pending", "ready", "running", "blocked", "verification_failed", "complete", "aborted"];
|
|
45
|
+
export type AttemptStateV1 = (typeof ATTEMPT_STATES)[number];
|
|
46
|
+
export declare const ARTIFACT_DISPOSITIONS: readonly ["none", "quarantined", "promoted", "discarded", "blocked"];
|
|
47
|
+
export type ArtifactDispositionV1 = (typeof ARTIFACT_DISPOSITIONS)[number];
|
|
48
|
+
export declare const RESUME_MODES: readonly ["resume", "retry", "abort_only", "status_only"];
|
|
49
|
+
export type ResumeModeV1 = (typeof RESUME_MODES)[number];
|
|
50
|
+
export declare const LOCK_RECOVERY_STATES: readonly ["active", "stale_recoverable", "conflicted", "corrupt"];
|
|
51
|
+
export type LockRecoveryV1 = (typeof LOCK_RECOVERY_STATES)[number];
|
|
52
|
+
export declare const PERSISTED_LANE_STATES: readonly ["queued", "launching", "running", "waiting", "completed", "blocked", "failed", "timed_out", "correlation_lost", "cancel_requested", "cancel_observed", "cancel_failed"];
|
|
53
|
+
export type PersistedLaneStateV1 = (typeof PERSISTED_LANE_STATES)[number];
|
|
54
|
+
export declare const LANE_STATES: readonly ["queued", "launching", "running", "waiting", "completed", "blocked", "failed", "timed_out", "correlation_lost", "cancel_requested", "cancel_observed", "cancel_failed", "hard_cancel_proven"];
|
|
55
|
+
export type LaneStateV1 = (typeof LANE_STATES)[number];
|
|
56
|
+
export declare const LANE_FAILURE_CLASSES: readonly ["launch_failed", "missing_tool", "schema_conversion_failed", "timeout", "correlation_lost", "abnormal_exit", "telemetry_unavailable", "cancellation_unproven", "redaction_blocked", "invocation_failed", "incomplete_result", "reference_kind_mismatch", "retry_limit_reached", "auth_missing", "auth_expired", "provider_unavailable", "rate_limited", "model_unavailable", "transport_timeout", "provider_error", "opencode_provider_load_failure"];
|
|
57
|
+
export type LaneFailureClassV1 = (typeof LANE_FAILURE_CLASSES)[number];
|
|
58
|
+
export declare const LANE_INVOCATION_REF_KINDS: readonly ["background_invocation", "continuation_session", "opencode_task", "unknown"];
|
|
59
|
+
export type LaneInvocationRefKindV1 = (typeof LANE_INVOCATION_REF_KINDS)[number];
|
|
60
|
+
export declare const LANE_VERDICT_STATUSES: readonly ["present", "missing", "incomplete", "not_required"];
|
|
61
|
+
export type LaneVerdictStatusV1 = (typeof LANE_VERDICT_STATUSES)[number];
|
|
62
|
+
export declare const HOOK_HARNESS_MODES: readonly ["enforce", "observe", "off"];
|
|
63
|
+
export type HookHarnessModeV1 = (typeof HOOK_HARNESS_MODES)[number];
|
|
64
|
+
export declare const HOOK_HARNESS_ATTEMPT_KINDS: readonly ["chat", "command", "tool", "shell"];
|
|
65
|
+
export type HookHarnessAttemptKindV1 = (typeof HOOK_HARNESS_ATTEMPT_KINDS)[number];
|
|
66
|
+
export declare const HOOK_HARNESS_CAPABILITIES: readonly ["safe_manual", "command_backed_flow", "managed_plan", "privileged_automation", "real_dispatch", "provider_call", "lane_launch", "managed_fallback", "hard_chat_control", "unknown"];
|
|
67
|
+
export type HookHarnessCapabilityV1 = (typeof HOOK_HARNESS_CAPABILITIES)[number];
|
|
68
|
+
export declare const HOOK_HARNESS_DECISIONS: readonly ["allow_safe_manual", "route_command", "deny", "observe", "off_fallback"];
|
|
69
|
+
export type HookHarnessDecisionV1 = (typeof HOOK_HARNESS_DECISIONS)[number];
|
|
70
|
+
export declare const NON_DISPATCH_PERMISSION_CLASSES: readonly ["bootstrap_profile_mutation", "config_scaffold", "state_write", "audit_write", "debug_export_write", "usage_snapshot_write", "fake_runtime_write"];
|
|
71
|
+
export type NonDispatchPermissionClassV1 = (typeof NON_DISPATCH_PERMISSION_CLASSES)[number];
|
|
72
|
+
export declare const BOOTSTRAP_PHASES: readonly ["preflight", "backup", "profile_mutation", "omo_cleanup", "plugin_registration", "command_generation", "config_scaffold", "doctor_handoff", "complete", "failed", "rolled_back"];
|
|
73
|
+
export type BootstrapPhaseV1 = (typeof BOOTSTRAP_PHASES)[number];
|
|
74
|
+
export declare const BOOTSTRAP_MUTATION_STATUSES: readonly ["planned", "skipped", "applied", "failed", "rolled_back", "partial"];
|
|
75
|
+
export type BootstrapMutationStatusV1 = (typeof BOOTSTRAP_MUTATION_STATUSES)[number];
|
|
76
|
+
export declare const BOOTSTRAP_FAILURE_CLASSES: readonly ["typed_confirmation_missing", "backup_failed", "profile_conflict", "unsafe_plugin_spec", "command_template_unsafe", "config_invalid", "doctor_failed", "rollback_failed", "redaction_blocked", "unknown"];
|
|
77
|
+
export type BootstrapFailureClassV1 = (typeof BOOTSTRAP_FAILURE_CLASSES)[number];
|
|
78
|
+
export declare const RELEASE_MODES: readonly ["release1", "managed_dispatch_beta", "operational_intelligence", "specialist_workflow"];
|
|
79
|
+
export type ReleaseModeV1 = (typeof RELEASE_MODES)[number];
|
|
80
|
+
export declare const CHAT_INTAKE_MODES: readonly ["steering", "observe_only", "off"];
|
|
81
|
+
export type ChatIntakeModeV1 = (typeof CHAT_INTAKE_MODES)[number];
|
|
82
|
+
export declare const POLICY_EFFECTS: readonly ["allow", "deny", "require_approval", "disable_mode"];
|
|
83
|
+
export type PolicyEffectV1 = (typeof POLICY_EFFECTS)[number];
|
|
84
|
+
export declare const POLICY_RULE_TARGETS: readonly ["release_mode", "tool", "permission_class", "provider_family", "agent_profile", "retention", "extension"];
|
|
85
|
+
export type PolicyRuleTargetV1 = (typeof POLICY_RULE_TARGETS)[number];
|
|
86
|
+
export declare const WORKFLOW_PRIMARY_CATEGORIES: readonly ["coding", "debugging", "refactor", "test", "documentation", "research", "planning", "review", "security", "data", "ops", "design", "specialist_reference"];
|
|
87
|
+
export type WorkflowPrimaryCategoryV1 = (typeof WORKFLOW_PRIMARY_CATEGORIES)[number];
|
|
88
|
+
export type CouplingScopeV1 = "single_file" | "few_files" | "module" | "cross_module" | "repo_wide" | "multi_repo" | "external_system";
|
|
89
|
+
export type HardnessV1 = "none" | "low" | "moderate" | "high" | "research_grade";
|
|
90
|
+
export type ArchitectureHardnessV1 = "none" | "low" | "moderate" | "high" | "system_boundary";
|
|
91
|
+
export type MigrationStateHardnessV1 = "none" | "low" | "moderate" | "high" | "irreversible";
|
|
92
|
+
export type DomainUncertaintyV1 = "none" | "low" | "moderate" | "high" | "expert_review_required";
|
|
93
|
+
export type VerificationHardnessV1 = "none" | "low" | "moderate" | "high" | "external_lab";
|
|
94
|
+
export type OperationalRiskV1 = "none" | "low" | "moderate" | "high" | "critical";
|
|
95
|
+
export type PolicyProfessionalBoundaryV1 = "ordinary" | "sensitive" | "restricted" | "specialist_reference_only" | "professional_human_required";
|
|
96
|
+
export interface WorkflowTaxonomyV1 {
|
|
97
|
+
primary_category: WorkflowPrimaryCategoryV1;
|
|
98
|
+
difficulty_drivers: string[];
|
|
99
|
+
coupling_scope: CouplingScopeV1;
|
|
100
|
+
algorithmic_hardness: HardnessV1;
|
|
101
|
+
architecture_hardness: ArchitectureHardnessV1;
|
|
102
|
+
migration_state_hardness: MigrationStateHardnessV1;
|
|
103
|
+
domain_uncertainty: DomainUncertaintyV1;
|
|
104
|
+
verification_hardness: VerificationHardnessV1;
|
|
105
|
+
operational_risk: OperationalRiskV1;
|
|
106
|
+
policy_professional_boundary: PolicyProfessionalBoundaryV1;
|
|
107
|
+
}
|
|
108
|
+
export interface FlowDeskToolRequestEnvelopeV1 {
|
|
109
|
+
schema_version: string;
|
|
110
|
+
request_id: OpaqueId;
|
|
111
|
+
input_mode: InputMode;
|
|
112
|
+
workflow_id?: OpaqueId;
|
|
113
|
+
session_ref?: OpaqueRef;
|
|
114
|
+
redacted_intake_ref?: OpaqueRef;
|
|
115
|
+
user_approval_ref?: OpaqueRef;
|
|
116
|
+
}
|
|
117
|
+
export interface FlowDeskRedactedErrorV1 {
|
|
118
|
+
code?: string;
|
|
119
|
+
category: RedactedErrorCategory;
|
|
120
|
+
safe_remediation: string;
|
|
121
|
+
}
|
|
122
|
+
export interface FlowDeskToolResponseEnvelopeV1 {
|
|
123
|
+
schema_version: string;
|
|
124
|
+
ok: boolean;
|
|
125
|
+
status: ToolStatus;
|
|
126
|
+
workflow_id?: OpaqueId;
|
|
127
|
+
safe_next_actions: SafeNextAction[];
|
|
128
|
+
user_message: string;
|
|
129
|
+
audit_ref?: OpaqueRef;
|
|
130
|
+
debug_ref?: OpaqueRef;
|
|
131
|
+
lane_refs?: OpaqueRef[];
|
|
132
|
+
error?: FlowDeskRedactedErrorV1;
|
|
133
|
+
}
|
|
134
|
+
export interface FlowDeskChatIntakeRequestV1 extends FlowDeskToolRequestEnvelopeV1 {
|
|
135
|
+
schema_version: "flowdesk.chat_intake.request.v1";
|
|
136
|
+
intake_summary: string;
|
|
137
|
+
source_surface: "chat.message" | "command.execute.before" | "manual_command" | "test_fixture";
|
|
138
|
+
}
|
|
139
|
+
export interface FlowDeskChatIntakeResponseV1 extends FlowDeskToolResponseEnvelopeV1 {
|
|
140
|
+
schema_version: "flowdesk.chat_intake.response.v1";
|
|
141
|
+
classification: "fast_chat" | "managed_plan" | "clarify" | "blocked";
|
|
142
|
+
redacted_intake_ref: OpaqueRef;
|
|
143
|
+
route_decision: "continue_chat" | "show_plan" | "ask_clarification" | "block" | "use_command_fallback";
|
|
144
|
+
}
|
|
145
|
+
export interface FlowDeskHookHarnessRequestV1 {
|
|
146
|
+
schema_version: "flowdesk.hook_harness.request.v1";
|
|
147
|
+
request_id: OpaqueId;
|
|
148
|
+
hook_harness_mode: HookHarnessModeV1;
|
|
149
|
+
attempt_kind: HookHarnessAttemptKindV1;
|
|
150
|
+
requested_capability: HookHarnessCapabilityV1;
|
|
151
|
+
redacted_attempt_ref: OpaqueRef;
|
|
152
|
+
attempt_summary: string;
|
|
153
|
+
chat_intake_mode?: ChatIntakeModeV1;
|
|
154
|
+
conformance_ref?: OpaqueRef;
|
|
155
|
+
}
|
|
156
|
+
export interface FlowDeskHookHarnessResponseV1 {
|
|
157
|
+
schema_version: "flowdesk.hook_harness.response.v1";
|
|
158
|
+
request_id: OpaqueId;
|
|
159
|
+
hook_harness_mode: HookHarnessModeV1;
|
|
160
|
+
ok: boolean;
|
|
161
|
+
decision: HookHarnessDecisionV1;
|
|
162
|
+
diagnostic_observations: string[];
|
|
163
|
+
safe_next_actions: SafeNextAction[];
|
|
164
|
+
user_message: string;
|
|
165
|
+
managed_automation_enabled: boolean;
|
|
166
|
+
privileged_automation_enabled: false;
|
|
167
|
+
dispatch_authorized: false;
|
|
168
|
+
guard_bypassed: false;
|
|
169
|
+
fallback_authorized: false;
|
|
170
|
+
hard_chat_authority: false;
|
|
171
|
+
mutation_applied: boolean;
|
|
172
|
+
denial_applied: boolean;
|
|
173
|
+
redacted_attempt_ref: OpaqueRef;
|
|
174
|
+
audit_ref?: OpaqueRef;
|
|
175
|
+
}
|
|
176
|
+
export interface FlowDeskDoctorRequestV1 extends FlowDeskToolRequestEnvelopeV1 {
|
|
177
|
+
schema_version: "flowdesk.doctor.request.v1";
|
|
178
|
+
check_scope: "install" | "runtime" | "policy" | "usage" | "provider_health" | "conformance" | "all";
|
|
179
|
+
profile: "production" | "development" | "test";
|
|
180
|
+
persist_report?: boolean;
|
|
181
|
+
}
|
|
182
|
+
export interface FlowDeskDoctorResponseV1 extends FlowDeskToolResponseEnvelopeV1 {
|
|
183
|
+
schema_version: "flowdesk.doctor.response.v1";
|
|
184
|
+
doctor_results: DoctorSectionResultV1[];
|
|
185
|
+
provider_health_summary: ProviderHealthSummaryV1;
|
|
186
|
+
compatibility_ref: OpaqueRef;
|
|
187
|
+
disabled_modes: DisabledModeV1[];
|
|
188
|
+
}
|
|
189
|
+
export interface FlowDeskPlanRequestV1 extends FlowDeskToolRequestEnvelopeV1 {
|
|
190
|
+
schema_version: "flowdesk.plan.request.v1";
|
|
191
|
+
goal_summary: string;
|
|
192
|
+
scope_summary: string;
|
|
193
|
+
risk_hint: string;
|
|
194
|
+
existing_plan_revision_id?: OpaqueId;
|
|
195
|
+
}
|
|
196
|
+
export interface FlowDeskPlanResponseV1 extends FlowDeskToolResponseEnvelopeV1 {
|
|
197
|
+
schema_version: "flowdesk.plan.response.v1";
|
|
198
|
+
plan_revision_id: OpaqueId;
|
|
199
|
+
delegated_authoring_summary: string;
|
|
200
|
+
required_approvals: OpaqueRef[];
|
|
201
|
+
guard_precheck: GuardPrecheckSummaryV1;
|
|
202
|
+
}
|
|
203
|
+
export interface FlowDeskRunRequestV1 extends FlowDeskToolRequestEnvelopeV1 {
|
|
204
|
+
schema_version: "flowdesk.run.request.v1";
|
|
205
|
+
run_mode: "guarded-dry-run" | "fake-runtime";
|
|
206
|
+
plan_revision_id: OpaqueId;
|
|
207
|
+
step_id?: OpaqueId;
|
|
208
|
+
}
|
|
209
|
+
export interface FlowDeskRunResponseV1 extends FlowDeskToolResponseEnvelopeV1 {
|
|
210
|
+
schema_version: "flowdesk.run.response.v1";
|
|
211
|
+
run_result_ref: OpaqueRef;
|
|
212
|
+
verification_summary_ref: OpaqueRef;
|
|
213
|
+
artifact_disposition: "none" | "quarantined" | "promoted" | "discarded";
|
|
214
|
+
}
|
|
215
|
+
export interface FlowDeskStatusRequestV1 extends FlowDeskToolRequestEnvelopeV1 {
|
|
216
|
+
schema_version: "flowdesk.status.request.v1";
|
|
217
|
+
detail_level?: "summary" | "diagnostic" | "debug_refs" | "lane_refs";
|
|
218
|
+
}
|
|
219
|
+
export interface FlowDeskStatusResponseV1 extends FlowDeskToolResponseEnvelopeV1 {
|
|
220
|
+
schema_version: "flowdesk.status.response.v1";
|
|
221
|
+
workflow_state: WorkflowStateV1;
|
|
222
|
+
current_step_id?: OpaqueId;
|
|
223
|
+
lane_summaries: FlowDeskStatusLaneSummaryV1[];
|
|
224
|
+
provider_health_summary: ProviderHealthSummaryV1;
|
|
225
|
+
blocker?: BlockerSummaryV1;
|
|
226
|
+
checkpoint_id?: OpaqueId;
|
|
227
|
+
}
|
|
228
|
+
export interface FlowDeskResumeRequestV1 extends FlowDeskToolRequestEnvelopeV1 {
|
|
229
|
+
schema_version: "flowdesk.resume.request.v1";
|
|
230
|
+
checkpoint_id: OpaqueId;
|
|
231
|
+
resume_mode: ResumeModeV1;
|
|
232
|
+
}
|
|
233
|
+
export interface FlowDeskResumeResponseV1 extends FlowDeskToolResponseEnvelopeV1 {
|
|
234
|
+
schema_version: "flowdesk.resume.response.v1";
|
|
235
|
+
resume_decision: "allowed" | "blocked" | "requires_fresh_checks" | "status_only";
|
|
236
|
+
required_fresh_checks: FreshCheckV1[];
|
|
237
|
+
next_checkpoint_id?: OpaqueId;
|
|
238
|
+
}
|
|
239
|
+
export interface FlowDeskRetryRequestV1 extends FlowDeskToolRequestEnvelopeV1 {
|
|
240
|
+
schema_version: "flowdesk.retry.request.v1";
|
|
241
|
+
attempt_id: OpaqueId;
|
|
242
|
+
retry_reason: string;
|
|
243
|
+
new_binding_hint?: string;
|
|
244
|
+
}
|
|
245
|
+
export interface FlowDeskRetryResponseV1 extends FlowDeskToolResponseEnvelopeV1 {
|
|
246
|
+
schema_version: "flowdesk.retry.response.v1";
|
|
247
|
+
new_attempt_id: OpaqueId;
|
|
248
|
+
required_guard_checks: GuardCheckV1[];
|
|
249
|
+
retry_state: "planned" | "blocked" | "diagnostic_only";
|
|
250
|
+
}
|
|
251
|
+
export interface FlowDeskAbortRequestV1 extends FlowDeskToolRequestEnvelopeV1 {
|
|
252
|
+
schema_version: "flowdesk.abort.request.v1";
|
|
253
|
+
workflow_id: OpaqueId;
|
|
254
|
+
attempt_id?: OpaqueId;
|
|
255
|
+
reason: string;
|
|
256
|
+
}
|
|
257
|
+
export interface FlowDeskAbortResponseV1 extends FlowDeskToolResponseEnvelopeV1 {
|
|
258
|
+
schema_version: "flowdesk.abort.response.v1";
|
|
259
|
+
cancellation_state: "cancel_requested" | "cancel_observed" | "cancel_failed";
|
|
260
|
+
remaining_safe_actions: SafeNextAction[];
|
|
261
|
+
}
|
|
262
|
+
export interface FlowDeskUsageRequestV1 extends FlowDeskToolRequestEnvelopeV1 {
|
|
263
|
+
schema_version: "flowdesk.usage.request.v1";
|
|
264
|
+
provider_family: ProviderFamily;
|
|
265
|
+
refresh: boolean;
|
|
266
|
+
}
|
|
267
|
+
export interface FlowDeskUsageResponseV1 extends FlowDeskToolResponseEnvelopeV1 {
|
|
268
|
+
schema_version: "flowdesk.usage.response.v1";
|
|
269
|
+
usage_snapshot_ref: OpaqueRef;
|
|
270
|
+
provider_health_snapshot_ref?: OpaqueRef;
|
|
271
|
+
freshness: "fresh" | "stale" | "unknown";
|
|
272
|
+
dispatchability: "dispatchable" | "diagnostic_only" | "non_dispatchable";
|
|
273
|
+
uncertainty_flags: UsageUncertaintyFlagV1[];
|
|
274
|
+
}
|
|
275
|
+
export interface FlowDeskExplainRouteRequestV1 extends FlowDeskToolRequestEnvelopeV1 {
|
|
276
|
+
schema_version: "flowdesk.explain_route.request.v1";
|
|
277
|
+
workflow_id: OpaqueId;
|
|
278
|
+
route_ref: OpaqueRef;
|
|
279
|
+
}
|
|
280
|
+
export interface FlowDeskExplainRouteResponseV1 extends FlowDeskToolResponseEnvelopeV1 {
|
|
281
|
+
schema_version: "flowdesk.explain_route.response.v1";
|
|
282
|
+
route_summary: string;
|
|
283
|
+
guard_rationale_ref?: OpaqueRef;
|
|
284
|
+
}
|
|
285
|
+
export interface FlowDeskAuditRequestV1 extends FlowDeskToolRequestEnvelopeV1 {
|
|
286
|
+
schema_version: "flowdesk.audit.request.v1";
|
|
287
|
+
workflow_id: OpaqueId;
|
|
288
|
+
audit_query: "latest" | "workflow_summary" | "guard_decisions" | "verification_refs" | "debug_refs";
|
|
289
|
+
}
|
|
290
|
+
export interface FlowDeskAuditResponseV1 extends FlowDeskToolResponseEnvelopeV1 {
|
|
291
|
+
schema_version: "flowdesk.audit.response.v1";
|
|
292
|
+
audit_refs: OpaqueRef[];
|
|
293
|
+
summary_labels: string[];
|
|
294
|
+
redaction_version: string;
|
|
295
|
+
}
|
|
296
|
+
export interface FlowDeskExportDebugRequestV1 extends FlowDeskToolRequestEnvelopeV1 {
|
|
297
|
+
schema_version: "flowdesk.export_debug.request.v1";
|
|
298
|
+
include_sections: DebugSectionV1[];
|
|
299
|
+
retention_hint: "delete_after_export" | "keep_until_default_expiry" | "keep_until_policy_expiry";
|
|
300
|
+
}
|
|
301
|
+
export interface FlowDeskExportDebugResponseV1 extends FlowDeskToolResponseEnvelopeV1 {
|
|
302
|
+
schema_version: "flowdesk.export_debug.response.v1";
|
|
303
|
+
export_manifest_ref: OpaqueRef;
|
|
304
|
+
included_sections: DebugSectionSummaryV1[];
|
|
305
|
+
delete_after: IsoTimestamp;
|
|
306
|
+
}
|
|
307
|
+
export interface ProviderHealthSummaryV1 {
|
|
308
|
+
provider_family: ProviderFamily;
|
|
309
|
+
model_family?: string;
|
|
310
|
+
availability_state: "healthy" | "degraded" | "unavailable" | "unknown";
|
|
311
|
+
failure_class: ProviderFailureClass;
|
|
312
|
+
dispatchability: "dispatchable" | "diagnostic_only" | "non_dispatchable";
|
|
313
|
+
safe_remediation: string;
|
|
314
|
+
snapshot_ref?: OpaqueRef;
|
|
315
|
+
}
|
|
316
|
+
export interface DoctorSectionResultV1 {
|
|
317
|
+
schema_version: "flowdesk.doctor_section_result.v1";
|
|
318
|
+
run_id: OpaqueId;
|
|
319
|
+
section: "migration_cleanup" | "opencode_plugin_compatibility" | "provider_usage_readiness" | "policy_project_safety";
|
|
320
|
+
category: DoctorFailureCategoryV1;
|
|
321
|
+
summary: string;
|
|
322
|
+
safe_next_actions: SafeNextAction[];
|
|
323
|
+
refs: OpaqueRef[];
|
|
324
|
+
redaction_version: string;
|
|
325
|
+
}
|
|
326
|
+
export interface LaneSummaryV1 {
|
|
327
|
+
lane_id: OpaqueId;
|
|
328
|
+
task_ref: OpaqueRef;
|
|
329
|
+
lane_class: "planning_draft" | "planning_refine" | "planning_review" | "research" | "documentation" | "verification" | "diagnostics" | "other";
|
|
330
|
+
state: LaneStateV1;
|
|
331
|
+
failure_class?: LaneFailureClassV1;
|
|
332
|
+
safe_next_action: SafeNextAction;
|
|
333
|
+
refs: OpaqueRef[];
|
|
334
|
+
invocation_ref_kind?: LaneInvocationRefKindV1;
|
|
335
|
+
retry_count?: number;
|
|
336
|
+
verdict_status?: LaneVerdictStatusV1;
|
|
337
|
+
}
|
|
338
|
+
export interface FlowDeskStatusLaneSummaryV1 extends LaneSummaryV1 {
|
|
339
|
+
workflow_id: OpaqueId;
|
|
340
|
+
plan_revision_id: OpaqueId;
|
|
341
|
+
attempt_id?: OpaqueId;
|
|
342
|
+
created_at: IsoTimestamp;
|
|
343
|
+
started_at?: IsoTimestamp;
|
|
344
|
+
updated_at: IsoTimestamp;
|
|
345
|
+
completed_at?: IsoTimestamp;
|
|
346
|
+
event_refs: OpaqueRef[];
|
|
347
|
+
audit_refs: OpaqueRef[];
|
|
348
|
+
observability_ref?: OpaqueRef;
|
|
349
|
+
log_ref?: OpaqueRef;
|
|
350
|
+
debug_ref?: OpaqueRef;
|
|
351
|
+
}
|
|
352
|
+
export declare const LANE_OBSERVABILITY_LEVELS: readonly ["status_summary", "openable_refs", "native_child_trace", "event_stream"];
|
|
353
|
+
export type LaneObservabilityLevelV1 = (typeof LANE_OBSERVABILITY_LEVELS)[number];
|
|
354
|
+
export declare const LANE_INSPECTION_STATES: readonly ["inspectable", "degraded", "blocked"];
|
|
355
|
+
export type LaneInspectionStateV1 = (typeof LANE_INSPECTION_STATES)[number];
|
|
356
|
+
export interface FlowDeskLaneObservabilityArtifactV1 {
|
|
357
|
+
schema_version: "flowdesk.lane_observability.v1";
|
|
358
|
+
observability_id: OpaqueId;
|
|
359
|
+
workflow_id: OpaqueId;
|
|
360
|
+
lane_id: OpaqueId;
|
|
361
|
+
status_summary_ref: OpaqueRef;
|
|
362
|
+
observability_level: LaneObservabilityLevelV1;
|
|
363
|
+
inspection_state: LaneInspectionStateV1;
|
|
364
|
+
lane_state: PersistedLaneStateV1;
|
|
365
|
+
requested_binding_ref?: OpaqueRef;
|
|
366
|
+
observed_binding_ref?: OpaqueRef;
|
|
367
|
+
parent_session_ref?: OpaqueRef;
|
|
368
|
+
child_session_ref?: OpaqueRef;
|
|
369
|
+
message_ref?: OpaqueRef;
|
|
370
|
+
output_ref?: OpaqueRef;
|
|
371
|
+
detail_ref?: OpaqueRef;
|
|
372
|
+
debug_ref?: OpaqueRef;
|
|
373
|
+
inspect_actions: SafeNextAction[];
|
|
374
|
+
redaction_status: "passed" | "partial" | "blocked";
|
|
375
|
+
created_at: IsoTimestamp;
|
|
376
|
+
updated_at: IsoTimestamp;
|
|
377
|
+
dispatch_authority_enabled: false;
|
|
378
|
+
provider_call_made: false;
|
|
379
|
+
runtime_execution: false;
|
|
380
|
+
hard_chat_authority_claimed: false;
|
|
381
|
+
}
|
|
382
|
+
export interface BlockerSummaryV1 {
|
|
383
|
+
category: RedactedErrorCategory;
|
|
384
|
+
summary: string;
|
|
385
|
+
safe_remediation: string;
|
|
386
|
+
refs: OpaqueRef[];
|
|
387
|
+
}
|
|
388
|
+
export interface GuardPrecheckSummaryV1 {
|
|
389
|
+
result: "eligible" | "blocked" | "requires_approval";
|
|
390
|
+
required_checks: GuardCheckV1[];
|
|
391
|
+
refs: OpaqueRef[];
|
|
392
|
+
}
|
|
393
|
+
export interface GuardCheckV1 {
|
|
394
|
+
check: "policy" | "usage" | "provider_health" | "runtime_compatibility" | "audit" | "redaction" | "approval" | "conformance";
|
|
395
|
+
result: "pass" | "fail" | "unknown";
|
|
396
|
+
ref?: OpaqueRef;
|
|
397
|
+
}
|
|
398
|
+
export interface FreshCheckV1 {
|
|
399
|
+
check: "usage" | "provider_health" | "policy" | "runtime_capability" | "checkpoint" | "audit";
|
|
400
|
+
required: boolean;
|
|
401
|
+
ref?: OpaqueRef;
|
|
402
|
+
}
|
|
403
|
+
export interface DebugSectionSummaryV1 {
|
|
404
|
+
schema_version: "flowdesk.debug_section_summary.v1";
|
|
405
|
+
export_id: OpaqueId;
|
|
406
|
+
section: DebugSectionV1;
|
|
407
|
+
ref: OpaqueRef;
|
|
408
|
+
redaction_status: "passed" | "partial" | "blocked";
|
|
409
|
+
warning_count: number;
|
|
410
|
+
excluded_categories: RedactedErrorCategory[];
|
|
411
|
+
}
|
|
412
|
+
export interface FlowDeskWorkflowPlanV1 {
|
|
413
|
+
schema_version: "flowdesk.workflow_plan.v1";
|
|
414
|
+
plan_revision_id: OpaqueId;
|
|
415
|
+
workflow_id: OpaqueId;
|
|
416
|
+
created_at: IsoTimestamp;
|
|
417
|
+
taxonomy: WorkflowTaxonomyV1;
|
|
418
|
+
steps: FlowDeskWorkflowStepV1[];
|
|
419
|
+
required_approvals: GuardCheckV1[];
|
|
420
|
+
verification_summary: string;
|
|
421
|
+
}
|
|
422
|
+
export interface FlowDeskWorkflowStepV1 {
|
|
423
|
+
step_id: OpaqueId;
|
|
424
|
+
title: string;
|
|
425
|
+
state: WorkflowStateV1;
|
|
426
|
+
lane_class?: LaneSummaryV1["lane_class"];
|
|
427
|
+
requires_guard: boolean;
|
|
428
|
+
required_fresh_checks: FreshCheckV1[];
|
|
429
|
+
}
|
|
430
|
+
export interface FlowDeskAttemptRecordV1 {
|
|
431
|
+
schema_version: "flowdesk.attempt_record.v1";
|
|
432
|
+
attempt_id: OpaqueId;
|
|
433
|
+
workflow_id: OpaqueId;
|
|
434
|
+
step_id?: OpaqueId;
|
|
435
|
+
created_at: IsoTimestamp;
|
|
436
|
+
updated_at: IsoTimestamp;
|
|
437
|
+
run_mode: Release1RunModeV1;
|
|
438
|
+
state_at_start: WorkflowStateV1;
|
|
439
|
+
state_at_end?: WorkflowStateV1;
|
|
440
|
+
attempt_state: AttemptStateV1;
|
|
441
|
+
guard_decision_ref?: OpaqueRef;
|
|
442
|
+
non_dispatch_permission_ref?: OpaqueRef;
|
|
443
|
+
command_shape_hash?: string;
|
|
444
|
+
usage_snapshot_ref?: OpaqueRef;
|
|
445
|
+
provider_health_snapshot_ref?: OpaqueRef;
|
|
446
|
+
runtime_capability_ref?: OpaqueRef;
|
|
447
|
+
pre_run_audit_ref: OpaqueRef;
|
|
448
|
+
runtime_echo_validation: "not_applicable" | "untrusted" | "trusted" | "failed";
|
|
449
|
+
verification_ref?: OpaqueRef;
|
|
450
|
+
artifact_disposition: ArtifactDispositionV1;
|
|
451
|
+
outcome_audit_ref?: OpaqueRef;
|
|
452
|
+
failure_category?: RedactedErrorCategory;
|
|
453
|
+
safe_next_actions: SafeNextAction[];
|
|
454
|
+
}
|
|
455
|
+
export interface FlowDeskWorkflowActiveV1 {
|
|
456
|
+
schema_version: "flowdesk.workflow_active.v1";
|
|
457
|
+
active_workflow_id?: OpaqueId;
|
|
458
|
+
active_attempt_id?: OpaqueId;
|
|
459
|
+
state: WorkflowStateV1;
|
|
460
|
+
updated_at: IsoTimestamp;
|
|
461
|
+
status_summary_ref?: OpaqueRef;
|
|
462
|
+
audit_refs: OpaqueRef[];
|
|
463
|
+
}
|
|
464
|
+
export interface FlowDeskWorkflowRecordV1 {
|
|
465
|
+
schema_version: "flowdesk.workflow_record.v1";
|
|
466
|
+
workflow_id: OpaqueId;
|
|
467
|
+
session_ref?: OpaqueRef;
|
|
468
|
+
created_at: IsoTimestamp;
|
|
469
|
+
updated_at: IsoTimestamp;
|
|
470
|
+
state: WorkflowStateV1;
|
|
471
|
+
latest_plan_revision_id?: OpaqueId;
|
|
472
|
+
current_step_id?: OpaqueId;
|
|
473
|
+
project_root_ref: OpaqueRef;
|
|
474
|
+
config_hash: string;
|
|
475
|
+
policy_pack_id: OpaqueId;
|
|
476
|
+
policy_pack_hash: string;
|
|
477
|
+
current_attempt_id?: OpaqueId;
|
|
478
|
+
latest_checkpoint_id?: OpaqueId;
|
|
479
|
+
attempt_refs: OpaqueRef[];
|
|
480
|
+
checkpoint_refs: OpaqueRef[];
|
|
481
|
+
lane_refs: OpaqueRef[];
|
|
482
|
+
latest_lane_summary_refs: OpaqueRef[];
|
|
483
|
+
audit_refs: OpaqueRef[];
|
|
484
|
+
status_summary_ref?: OpaqueRef;
|
|
485
|
+
artifact_disposition: ArtifactDispositionV1;
|
|
486
|
+
blocker_summary?: BlockerSummaryV1;
|
|
487
|
+
safe_next_actions: SafeNextAction[];
|
|
488
|
+
}
|
|
489
|
+
export interface FlowDeskCheckpointRecordV1 {
|
|
490
|
+
schema_version: "flowdesk.checkpoint_record.v1";
|
|
491
|
+
checkpoint_id: OpaqueId;
|
|
492
|
+
workflow_id: OpaqueId;
|
|
493
|
+
attempt_id?: OpaqueId;
|
|
494
|
+
current_step_id?: OpaqueId;
|
|
495
|
+
created_at: IsoTimestamp;
|
|
496
|
+
expires_at: IsoTimestamp;
|
|
497
|
+
resume_mode: ResumeModeV1;
|
|
498
|
+
required_fresh_checks: FreshCheckV1[];
|
|
499
|
+
audit_refs: OpaqueRef[];
|
|
500
|
+
artifact_refs: OpaqueRef[];
|
|
501
|
+
reason: "planned_pause" | "retryable_failure" | "verification_failed" | "blocked" | "abort_requested" | "status_snapshot";
|
|
502
|
+
safe_next_actions: SafeNextAction[];
|
|
503
|
+
}
|
|
504
|
+
export interface FlowDeskActiveAttemptLockV1 {
|
|
505
|
+
schema_version: "flowdesk.active_attempt_lock.v1";
|
|
506
|
+
workflow_id: OpaqueId;
|
|
507
|
+
attempt_id: OpaqueId;
|
|
508
|
+
owner_ref: OpaqueRef;
|
|
509
|
+
acquired_at: IsoTimestamp;
|
|
510
|
+
expires_at: IsoTimestamp;
|
|
511
|
+
heartbeat_at?: IsoTimestamp;
|
|
512
|
+
recovery_state: LockRecoveryV1;
|
|
513
|
+
audit_ref: OpaqueRef;
|
|
514
|
+
}
|
|
515
|
+
export interface FlowDeskLaneRecordV1 {
|
|
516
|
+
schema_version: "flowdesk.lane_record.v1";
|
|
517
|
+
lane_id: OpaqueId;
|
|
518
|
+
workflow_id: OpaqueId;
|
|
519
|
+
plan_revision_id?: OpaqueId;
|
|
520
|
+
attempt_id?: OpaqueId;
|
|
521
|
+
task_ref: OpaqueRef;
|
|
522
|
+
lane_class: LaneSummaryV1["lane_class"];
|
|
523
|
+
state: PersistedLaneStateV1;
|
|
524
|
+
created_at: IsoTimestamp;
|
|
525
|
+
started_at?: IsoTimestamp;
|
|
526
|
+
updated_at: IsoTimestamp;
|
|
527
|
+
completed_at?: IsoTimestamp;
|
|
528
|
+
failure_class?: LaneFailureClassV1;
|
|
529
|
+
invocation_ref_kind?: LaneInvocationRefKindV1;
|
|
530
|
+
retry_count?: number;
|
|
531
|
+
verdict_status?: LaneVerdictStatusV1;
|
|
532
|
+
safe_next_action: SafeNextAction;
|
|
533
|
+
refs: OpaqueRef[];
|
|
534
|
+
event_refs: OpaqueRef[];
|
|
535
|
+
audit_refs: OpaqueRef[];
|
|
536
|
+
observability_ref?: OpaqueRef;
|
|
537
|
+
debug_ref?: OpaqueRef;
|
|
538
|
+
}
|
|
539
|
+
export interface FlowDeskAuditRecordV1 {
|
|
540
|
+
schema_version: "flowdesk.audit_record.v1";
|
|
541
|
+
audit_ref: OpaqueRef;
|
|
542
|
+
event_id?: OpaqueId;
|
|
543
|
+
workflow_id?: OpaqueId;
|
|
544
|
+
attempt_id?: OpaqueId;
|
|
545
|
+
step_id?: OpaqueId;
|
|
546
|
+
checkpoint_id?: OpaqueId;
|
|
547
|
+
event_type: string;
|
|
548
|
+
created_at: IsoTimestamp;
|
|
549
|
+
actor_class?: "user" | "flowdesk" | "opencode" | "provider" | "system" | "unknown";
|
|
550
|
+
summary_label: string;
|
|
551
|
+
policy_ref?: OpaqueRef;
|
|
552
|
+
decision_ref?: OpaqueRef;
|
|
553
|
+
evidence_refs: OpaqueRef[];
|
|
554
|
+
artifact_refs: OpaqueRef[];
|
|
555
|
+
redaction_version: string;
|
|
556
|
+
}
|
|
557
|
+
export interface FlowDeskDebugExportManifestV1 {
|
|
558
|
+
schema_version: "flowdesk.debug_export_manifest.v1";
|
|
559
|
+
export_id: OpaqueId;
|
|
560
|
+
manifest_ref: OpaqueRef;
|
|
561
|
+
workflow_id?: OpaqueId;
|
|
562
|
+
session_ref?: OpaqueRef;
|
|
563
|
+
created_at: IsoTimestamp;
|
|
564
|
+
delete_after: IsoTimestamp;
|
|
565
|
+
included_sections: DebugSectionSummaryV1[];
|
|
566
|
+
redaction_version: string;
|
|
567
|
+
source_refs: OpaqueRef[];
|
|
568
|
+
file_count: number;
|
|
569
|
+
byte_count: number;
|
|
570
|
+
warnings: string[];
|
|
571
|
+
deletion_state: "pending" | "deleted" | "partial" | "retained_by_policy";
|
|
572
|
+
deletion_proof_ref?: OpaqueRef;
|
|
573
|
+
partial_deletion_warning?: string;
|
|
574
|
+
audit_refs: OpaqueRef[];
|
|
575
|
+
}
|
|
576
|
+
export interface GuardRequestV1 {
|
|
577
|
+
schema_version: "flowdesk.guard_request.v1";
|
|
578
|
+
guard_request_id: OpaqueId;
|
|
579
|
+
workflow_id: OpaqueId;
|
|
580
|
+
step_id?: OpaqueId;
|
|
581
|
+
attempt_id?: OpaqueId;
|
|
582
|
+
requested_operation: "guarded-dry-run" | "fake-runtime" | "command-steering" | "real-opencode-dispatch" | "non-dispatch-permission";
|
|
583
|
+
taxonomy: WorkflowTaxonomyV1;
|
|
584
|
+
usage_snapshot_ref?: OpaqueRef;
|
|
585
|
+
provider_health_snapshot_ref?: OpaqueRef;
|
|
586
|
+
runtime_capability_ref?: OpaqueRef;
|
|
587
|
+
pre_run_audit_ref?: OpaqueRef;
|
|
588
|
+
non_dispatch_permission_class?: NonDispatchPermissionClassV1;
|
|
589
|
+
}
|
|
590
|
+
export interface GuardResponseV1 {
|
|
591
|
+
schema_version: "flowdesk.guard_response.v1";
|
|
592
|
+
guard_decision_id: OpaqueId;
|
|
593
|
+
guard_request_id: OpaqueId;
|
|
594
|
+
decision: "approved" | "denied" | "requires_approval" | "requires_fresh_checks";
|
|
595
|
+
required_checks: GuardCheckV1[];
|
|
596
|
+
decision_ref: OpaqueRef;
|
|
597
|
+
audit_ref: OpaqueRef;
|
|
598
|
+
}
|
|
599
|
+
export interface GuardApprovedDispatchV1 {
|
|
600
|
+
schema_version: "flowdesk.guard_approved_dispatch.v1";
|
|
601
|
+
guard_decision_id: OpaqueId;
|
|
602
|
+
workflow_id: OpaqueId;
|
|
603
|
+
step_id: OpaqueId;
|
|
604
|
+
attempt_id: OpaqueId;
|
|
605
|
+
provider_family: Exclude<ProviderFamily, "unknown" | "all">;
|
|
606
|
+
provider_qualified_model_id: string;
|
|
607
|
+
usage_snapshot_ref: OpaqueRef;
|
|
608
|
+
provider_health_snapshot_ref: OpaqueRef;
|
|
609
|
+
runtime_capability_ref: OpaqueRef;
|
|
610
|
+
pre_dispatch_audit_ref: OpaqueRef;
|
|
611
|
+
expires_at: IsoTimestamp;
|
|
612
|
+
}
|
|
613
|
+
export interface FlowDeskRetentionPolicyV1 {
|
|
614
|
+
session_records_max_days: number;
|
|
615
|
+
debug_staging_max_days: number;
|
|
616
|
+
conformance_summary_max_days: number;
|
|
617
|
+
allow_user_longer_retention: boolean;
|
|
618
|
+
deletion_behavior: "delete_after_expiry" | "keep_until_policy_expiry" | "manual_cleanup_only";
|
|
619
|
+
}
|
|
620
|
+
export interface FlowDeskUsagePolicyV1 {
|
|
621
|
+
usage_freshness_ttl_minutes: number;
|
|
622
|
+
unknown_usage_dispatchability: "non_dispatchable";
|
|
623
|
+
stale_usage_dispatchability: "non_dispatchable";
|
|
624
|
+
refused_usage_dispatchability: "non_dispatchable";
|
|
625
|
+
shared_limit_suspected_dispatchability: "non_dispatchable";
|
|
626
|
+
fallback_derived_dispatchability: "non_dispatchable";
|
|
627
|
+
allow_local_history_source: boolean;
|
|
628
|
+
allow_provider_console_scraping: false;
|
|
629
|
+
}
|
|
630
|
+
export interface FlowDeskProviderHealthPolicyV1 {
|
|
631
|
+
health_freshness_ttl_minutes: number;
|
|
632
|
+
unavailable_dispatchability: "non_dispatchable";
|
|
633
|
+
degraded_dispatchability: "diagnostic_only" | "non_dispatchable";
|
|
634
|
+
opencode_go_usage_without_official_quota: "unknown";
|
|
635
|
+
z_ai_usage_without_official_quota: "unknown";
|
|
636
|
+
allow_automatic_provider_fallback: false;
|
|
637
|
+
}
|
|
638
|
+
export interface FlowDeskHookPolicyV1 {
|
|
639
|
+
chat_intake_mode: ChatIntakeModeV1;
|
|
640
|
+
hook_harness_mode: HookHarnessModeV1;
|
|
641
|
+
blocking_chat_intake_enabled: false;
|
|
642
|
+
hard_no_reply_or_cancel_enabled: false;
|
|
643
|
+
}
|
|
644
|
+
export interface FlowDeskPolicyRuleV1 {
|
|
645
|
+
rule_id: OpaqueId;
|
|
646
|
+
effect: PolicyEffectV1;
|
|
647
|
+
target: PolicyRuleTargetV1;
|
|
648
|
+
summary_label: string;
|
|
649
|
+
refs: OpaqueRef[];
|
|
650
|
+
}
|
|
651
|
+
export interface FlowDeskProjectConfigV1 {
|
|
652
|
+
schema_version: "flowdesk.project_config.v1";
|
|
653
|
+
config_id: OpaqueId;
|
|
654
|
+
created_at: IsoTimestamp;
|
|
655
|
+
updated_at: IsoTimestamp;
|
|
656
|
+
release_mode: "release1";
|
|
657
|
+
project_root_ref: OpaqueRef;
|
|
658
|
+
config_hash: string;
|
|
659
|
+
policy_pack_refs: OpaqueRef[];
|
|
660
|
+
policy_pack_hashes: string[];
|
|
661
|
+
chat_intake_mode: ChatIntakeModeV1;
|
|
662
|
+
hook_harness_mode: HookHarnessModeV1;
|
|
663
|
+
retention: FlowDeskRetentionPolicyV1;
|
|
664
|
+
usage_policy: FlowDeskUsagePolicyV1;
|
|
665
|
+
provider_health_policy: FlowDeskProviderHealthPolicyV1;
|
|
666
|
+
disabled_modes: DisabledModeV1[];
|
|
667
|
+
extension_namespaces: string[];
|
|
668
|
+
audit_refs: OpaqueRef[];
|
|
669
|
+
}
|
|
670
|
+
export interface FlowDeskPolicyPackV1 {
|
|
671
|
+
schema_version: "flowdesk.policy_pack.v1";
|
|
672
|
+
policy_pack_id: OpaqueId;
|
|
673
|
+
policy_pack_hash: string;
|
|
674
|
+
name: string;
|
|
675
|
+
version: string;
|
|
676
|
+
source_ref: OpaqueRef;
|
|
677
|
+
applies_to_release_modes: ReleaseModeV1[];
|
|
678
|
+
priority: number;
|
|
679
|
+
rules: FlowDeskPolicyRuleV1[];
|
|
680
|
+
hard_ban_refs: OpaqueRef[];
|
|
681
|
+
retention_override?: FlowDeskRetentionPolicyV1;
|
|
682
|
+
usage_policy_override?: FlowDeskUsagePolicyV1;
|
|
683
|
+
provider_health_policy_override?: FlowDeskProviderHealthPolicyV1;
|
|
684
|
+
hook_policy_override?: FlowDeskHookPolicyV1;
|
|
685
|
+
allowed_extension_namespaces: string[];
|
|
686
|
+
redaction_baseline_ref: OpaqueRef;
|
|
687
|
+
}
|
|
688
|
+
export interface FlowDeskEffectivePolicyV1 {
|
|
689
|
+
schema_version: "flowdesk.effective_policy.v1";
|
|
690
|
+
effective_policy_id: OpaqueId;
|
|
691
|
+
config_hash: string;
|
|
692
|
+
policy_pack_hashes: string[];
|
|
693
|
+
computed_at: IsoTimestamp;
|
|
694
|
+
release_mode: "release1";
|
|
695
|
+
disabled_modes: DisabledModeV1[];
|
|
696
|
+
retention: FlowDeskRetentionPolicyV1;
|
|
697
|
+
usage_policy: FlowDeskUsagePolicyV1;
|
|
698
|
+
provider_health_policy: FlowDeskProviderHealthPolicyV1;
|
|
699
|
+
hook_policy: FlowDeskHookPolicyV1;
|
|
700
|
+
rules: FlowDeskPolicyRuleV1[];
|
|
701
|
+
audit_ref: OpaqueRef;
|
|
702
|
+
}
|
|
703
|
+
export interface FlowDeskNonDispatchPermissionV1 {
|
|
704
|
+
schema_version: "flowdesk.non_dispatch_permission.v1";
|
|
705
|
+
permission_id: OpaqueId;
|
|
706
|
+
permission_class: NonDispatchPermissionClassV1;
|
|
707
|
+
workflow_id?: OpaqueId;
|
|
708
|
+
scope_ref: OpaqueRef;
|
|
709
|
+
grant_source: "bootstrap" | "guard_rule" | "typed_confirmation" | "policy_pack";
|
|
710
|
+
created_at: IsoTimestamp;
|
|
711
|
+
expires_at: IsoTimestamp;
|
|
712
|
+
config_hash: string;
|
|
713
|
+
policy_pack_hash: string;
|
|
714
|
+
release_mode: ReleaseModeV1;
|
|
715
|
+
audit_ref?: OpaqueRef;
|
|
716
|
+
}
|
|
717
|
+
export interface FlowDeskBootstrapInstallPlanV1 {
|
|
718
|
+
schema_version: "flowdesk.bootstrap_install_plan.v1";
|
|
719
|
+
install_plan_id: OpaqueId;
|
|
720
|
+
created_at: IsoTimestamp;
|
|
721
|
+
target_profile_ref: OpaqueRef;
|
|
722
|
+
release_mode: "release1";
|
|
723
|
+
planned_phases: BootstrapPhaseV1[];
|
|
724
|
+
requires_typed_confirmation: boolean;
|
|
725
|
+
confirmation_ref?: OpaqueRef;
|
|
726
|
+
package_ref: OpaqueRef;
|
|
727
|
+
rollback_plan_ref: OpaqueRef;
|
|
728
|
+
safe_next_actions: SafeNextAction[];
|
|
729
|
+
}
|
|
730
|
+
export interface FlowDeskBootstrapBackupManifestV1 {
|
|
731
|
+
schema_version: "flowdesk.bootstrap_backup_manifest.v1";
|
|
732
|
+
backup_manifest_id: OpaqueId;
|
|
733
|
+
created_at: IsoTimestamp;
|
|
734
|
+
target_profile_ref: OpaqueRef;
|
|
735
|
+
backup_ref: OpaqueRef;
|
|
736
|
+
backup_hash: string;
|
|
737
|
+
source_config_ref: OpaqueRef;
|
|
738
|
+
credential_preservation_check: "passed" | "blocked" | "not_applicable";
|
|
739
|
+
restore_eligible: boolean;
|
|
740
|
+
audit_ref: OpaqueRef;
|
|
741
|
+
}
|
|
742
|
+
export interface FlowDeskProfileMutationSummaryV1 {
|
|
743
|
+
schema_version: "flowdesk.profile_mutation_summary.v1";
|
|
744
|
+
mutation_id: OpaqueId;
|
|
745
|
+
target_profile_ref: OpaqueRef;
|
|
746
|
+
status: BootstrapMutationStatusV1;
|
|
747
|
+
changed_entry_refs: OpaqueRef[];
|
|
748
|
+
skipped_entry_refs: OpaqueRef[];
|
|
749
|
+
provider_auth_preserved: "passed" | "blocked" | "unknown";
|
|
750
|
+
unrelated_profile_mutation: false;
|
|
751
|
+
backup_manifest_ref: OpaqueRef;
|
|
752
|
+
audit_ref: OpaqueRef;
|
|
753
|
+
}
|
|
754
|
+
export interface FlowDeskOmoCleanupSummaryV1 {
|
|
755
|
+
schema_version: "flowdesk.omo_cleanup_summary.v1";
|
|
756
|
+
cleanup_id: OpaqueId;
|
|
757
|
+
target_profile_ref: OpaqueRef;
|
|
758
|
+
status: BootstrapMutationStatusV1;
|
|
759
|
+
removed_ref_count: number;
|
|
760
|
+
retained_ref_count: number;
|
|
761
|
+
blocked_ref_count: number;
|
|
762
|
+
omitted_legacy_runtime_imports: boolean;
|
|
763
|
+
provider_auth_preserved: "passed" | "blocked" | "unknown";
|
|
764
|
+
backup_manifest_ref: OpaqueRef;
|
|
765
|
+
audit_ref: OpaqueRef;
|
|
766
|
+
}
|
|
767
|
+
export interface FlowDeskCommandGenerationSummaryV1 {
|
|
768
|
+
schema_version: "flowdesk.command_generation_summary.v1";
|
|
769
|
+
generation_id: OpaqueId;
|
|
770
|
+
target_profile_ref: OpaqueRef;
|
|
771
|
+
status: BootstrapMutationStatusV1;
|
|
772
|
+
command_refs: OpaqueRef[];
|
|
773
|
+
template_hash: string;
|
|
774
|
+
static_template_validation: "passed" | "blocked";
|
|
775
|
+
alias_conformance_ref?: OpaqueRef;
|
|
776
|
+
rollback_ref: OpaqueRef;
|
|
777
|
+
}
|
|
778
|
+
export interface FlowDeskConfigScaffoldSummaryV1 {
|
|
779
|
+
schema_version: "flowdesk.config_scaffold_summary.v1";
|
|
780
|
+
scaffold_id: OpaqueId;
|
|
781
|
+
status: BootstrapMutationStatusV1;
|
|
782
|
+
config_ref: OpaqueRef;
|
|
783
|
+
config_hash: string;
|
|
784
|
+
policy_pack_refs: OpaqueRef[];
|
|
785
|
+
policy_pack_hashes: string[];
|
|
786
|
+
audit_ref: OpaqueRef;
|
|
787
|
+
}
|
|
788
|
+
export interface FlowDeskBootstrapRollbackPlanV1 {
|
|
789
|
+
schema_version: "flowdesk.bootstrap_rollback_plan.v1";
|
|
790
|
+
rollback_plan_id: OpaqueId;
|
|
791
|
+
install_plan_id: OpaqueId;
|
|
792
|
+
target_profile_ref: OpaqueRef;
|
|
793
|
+
backup_manifest_ref: OpaqueRef;
|
|
794
|
+
reversible_phase_refs: OpaqueRef[];
|
|
795
|
+
non_reversible_summary_refs: OpaqueRef[];
|
|
796
|
+
restore_preconditions: FreshCheckV1[];
|
|
797
|
+
safe_next_actions: SafeNextAction[];
|
|
798
|
+
}
|
|
799
|
+
export interface FlowDeskBootstrapRollbackResultV1 {
|
|
800
|
+
schema_version: "flowdesk.bootstrap_rollback_result.v1";
|
|
801
|
+
rollback_result_id: OpaqueId;
|
|
802
|
+
rollback_plan_id: OpaqueId;
|
|
803
|
+
completed_at: IsoTimestamp;
|
|
804
|
+
status: "restored" | "partial" | "blocked" | "failed";
|
|
805
|
+
restored_ref_count: number;
|
|
806
|
+
skipped_ref_count: number;
|
|
807
|
+
warning_count: number;
|
|
808
|
+
audit_refs: OpaqueRef[];
|
|
809
|
+
safe_next_actions: SafeNextAction[];
|
|
810
|
+
}
|
|
811
|
+
export interface FlowDeskBootstrapReportV1 {
|
|
812
|
+
schema_version: "flowdesk.bootstrap_report.v1";
|
|
813
|
+
report_id: OpaqueId;
|
|
814
|
+
install_plan_id: OpaqueId;
|
|
815
|
+
target_profile_ref: OpaqueRef;
|
|
816
|
+
started_at: IsoTimestamp;
|
|
817
|
+
completed_at?: IsoTimestamp;
|
|
818
|
+
final_phase: BootstrapPhaseV1;
|
|
819
|
+
status: "complete" | "failed" | "rolled_back" | "partial";
|
|
820
|
+
failure_class?: BootstrapFailureClassV1;
|
|
821
|
+
backup_manifest_ref?: OpaqueRef;
|
|
822
|
+
profile_mutation_ref?: OpaqueRef;
|
|
823
|
+
omo_cleanup_ref?: OpaqueRef;
|
|
824
|
+
command_generation_ref?: OpaqueRef;
|
|
825
|
+
config_scaffold_ref?: OpaqueRef;
|
|
826
|
+
rollback_plan_ref?: OpaqueRef;
|
|
827
|
+
rollback_result_ref?: OpaqueRef;
|
|
828
|
+
doctor_handoff_ref?: OpaqueRef;
|
|
829
|
+
doctor_report_ref?: OpaqueRef;
|
|
830
|
+
disabled_modes: DisabledModeV1[];
|
|
831
|
+
safe_next_actions: SafeNextAction[];
|
|
832
|
+
audit_refs: OpaqueRef[];
|
|
833
|
+
}
|
|
834
|
+
export interface FlowDeskDoctorHandoffV1 {
|
|
835
|
+
schema_version: "flowdesk.doctor_handoff.v1";
|
|
836
|
+
handoff_id: OpaqueId;
|
|
837
|
+
created_at: IsoTimestamp;
|
|
838
|
+
install_plan_ref: OpaqueRef;
|
|
839
|
+
bootstrap_report_ref: OpaqueRef;
|
|
840
|
+
config_ref?: OpaqueRef;
|
|
841
|
+
compatibility_ref?: OpaqueRef;
|
|
842
|
+
doctor_request_ref: OpaqueRef;
|
|
843
|
+
safe_next_actions: SafeNextAction[];
|
|
844
|
+
}
|
|
845
|
+
export interface FlowDeskUsageSnapshotV1 {
|
|
846
|
+
schema_version: "flowdesk.usage_snapshot.v1";
|
|
847
|
+
snapshot_id: OpaqueId;
|
|
848
|
+
provider_family: ProviderFamily;
|
|
849
|
+
model_family: string;
|
|
850
|
+
freshness: "fresh" | "stale" | "unknown";
|
|
851
|
+
freshness_ttl: number;
|
|
852
|
+
reset_time: string;
|
|
853
|
+
reset_bucket: string;
|
|
854
|
+
dispatchability: "dispatchable" | "diagnostic_only" | "non_dispatchable";
|
|
855
|
+
uncertainty_flags: UsageUncertaintyFlagV1[];
|
|
856
|
+
source_ref: OpaqueRef;
|
|
857
|
+
}
|
|
858
|
+
export interface FlowDeskProviderHealthSnapshotV1 {
|
|
859
|
+
schema_version: "flowdesk.provider_health_snapshot.v1";
|
|
860
|
+
snapshot_id: OpaqueId;
|
|
861
|
+
provider_family: ProviderFamily;
|
|
862
|
+
model_family?: string;
|
|
863
|
+
observed_at: IsoTimestamp;
|
|
864
|
+
freshness: "fresh" | "stale" | "unknown";
|
|
865
|
+
freshness_ttl: number;
|
|
866
|
+
source_surface: "opencode_config" | "plugin_event" | "doctor_probe" | "usage_collector" | "provider_smoke_test" | "manual_report" | "unknown";
|
|
867
|
+
availability_state: "healthy" | "degraded" | "unavailable" | "unknown";
|
|
868
|
+
failure_class: ProviderFailureClass;
|
|
869
|
+
retry_after_bucket?: string;
|
|
870
|
+
runtime_config_ref?: OpaqueRef;
|
|
871
|
+
telemetry_ref?: OpaqueRef;
|
|
872
|
+
dispatchability: "dispatchable" | "diagnostic_only" | "non_dispatchable";
|
|
873
|
+
source_ref: OpaqueRef;
|
|
874
|
+
safe_remediation: string;
|
|
875
|
+
}
|
|
876
|
+
export interface FlowDeskRuntimeCapabilityMetadataV1 {
|
|
877
|
+
schema_version: "flowdesk.runtime_capability_metadata.v1";
|
|
878
|
+
capability_ref: OpaqueRef;
|
|
879
|
+
checked_at: IsoTimestamp;
|
|
880
|
+
dispatch_mode: "none" | "fake-runtime" | "guarded-dry-run" | "command-steering" | "real-opencode-dispatch";
|
|
881
|
+
runtime_echo_mode: "none" | "trusted" | "untrusted" | "request_surface_only";
|
|
882
|
+
event_telemetry_mode: "none" | "partial" | "sufficient";
|
|
883
|
+
disabled_modes: DisabledModeV1[];
|
|
884
|
+
}
|
|
885
|
+
export interface FlowDeskConformanceRuntimeMetadataV1 {
|
|
886
|
+
schema_version: "flowdesk.conformance_runtime_metadata.v1";
|
|
887
|
+
opencode_version: string;
|
|
888
|
+
opencode_commit?: string;
|
|
889
|
+
checked_at: IsoTimestamp;
|
|
890
|
+
plugin_package: "@flowdesk/opencode-plugin";
|
|
891
|
+
plugin_version_or_commit: string;
|
|
892
|
+
chat_intake_mode: "blocking" | "steering" | "observe_only" | "off";
|
|
893
|
+
command_alias_mode: "portable_only" | "colon_alias_supported";
|
|
894
|
+
dispatch_mode: "none" | "fake-runtime" | "guarded-dry-run" | "command-steering" | "real-opencode-dispatch";
|
|
895
|
+
runtime_echo_mode: "none" | "trusted" | "untrusted" | "request_surface_only";
|
|
896
|
+
event_telemetry_mode: "none" | "partial" | "sufficient";
|
|
897
|
+
provider_health_mode: "none" | "diagnostic_only" | "dispatch_gate_ready";
|
|
898
|
+
fallback_reselection_mode: "disabled" | "diagnostic_only" | "guarded_real_dispatch_ready";
|
|
899
|
+
diagnostics_surface_mode: "none" | "status_only" | "doctor_usage_status" | "doctor_usage_status_debug";
|
|
900
|
+
lane_observability_mode: "none" | "command_summary" | "openable_refs";
|
|
901
|
+
hook_harness_mode: HookHarnessModeV1;
|
|
902
|
+
tui_mode: "ux_only" | "unsupported";
|
|
903
|
+
mode_fields: string[];
|
|
904
|
+
evidence_refs: OpaqueRef[];
|
|
905
|
+
disabled_modes: DisabledModeV1[];
|
|
906
|
+
}
|
|
907
|
+
export interface FlowDeskConformanceEvidenceRecordV1 {
|
|
908
|
+
schema_version: "flowdesk.conformance_evidence_record.v1";
|
|
909
|
+
evidence_ref: OpaqueRef;
|
|
910
|
+
run_id: OpaqueId;
|
|
911
|
+
checked_at: IsoTimestamp;
|
|
912
|
+
evidence_area: string;
|
|
913
|
+
result: "pass" | "fail" | "partial" | "skipped";
|
|
914
|
+
summary_label: string;
|
|
915
|
+
redaction_version: string;
|
|
916
|
+
source_refs: OpaqueRef[];
|
|
917
|
+
}
|
|
918
|
+
export interface FlowDeskManagedDispatchBetaPolicyV1 {
|
|
919
|
+
release_mode: "managed_dispatch_beta";
|
|
920
|
+
policy_mode: "managed_dispatch_beta";
|
|
921
|
+
config_hash: string;
|
|
922
|
+
policy_pack_hashes: string[];
|
|
923
|
+
fallback_reselection_mode: "disabled";
|
|
924
|
+
hard_chat_authority: "disabled";
|
|
925
|
+
require_quarantine_on_ambiguity: true;
|
|
926
|
+
audit_ref: OpaqueRef;
|
|
927
|
+
}
|
|
928
|
+
export interface FlowDeskManagedDispatchBetaUsageAuthorityEvidenceV1 {
|
|
929
|
+
schema_version: "flowdesk.managed_dispatch_beta.usage_authority_evidence.v1";
|
|
930
|
+
authority_ref: OpaqueRef;
|
|
931
|
+
usage_snapshot_ref: OpaqueRef;
|
|
932
|
+
provider_family: Exclude<ProviderFamily, "unknown" | "all">;
|
|
933
|
+
provider_qualified_model_id: string;
|
|
934
|
+
model_family: string;
|
|
935
|
+
source_kind: "provider_native" | "dex_conductor" | "openusage";
|
|
936
|
+
source_version_ref: OpaqueRef;
|
|
937
|
+
auth_profile_ref: OpaqueRef;
|
|
938
|
+
auth_evidence_ref: OpaqueRef;
|
|
939
|
+
credential_scope_ref: OpaqueRef;
|
|
940
|
+
account_boundary_ref: OpaqueRef;
|
|
941
|
+
quota_evidence_ref: OpaqueRef;
|
|
942
|
+
usage_acquired: true;
|
|
943
|
+
reset_time: IsoTimestamp;
|
|
944
|
+
reset_bucket: string;
|
|
945
|
+
source_ref: OpaqueRef;
|
|
946
|
+
conformance_ref: OpaqueRef;
|
|
947
|
+
redacted_evidence_refs: OpaqueRef[];
|
|
948
|
+
trusted: true;
|
|
949
|
+
observed_at: IsoTimestamp;
|
|
950
|
+
expires_at: IsoTimestamp;
|
|
951
|
+
}
|
|
952
|
+
export interface FlowDeskManagedDispatchBetaBindingEvidenceV1 {
|
|
953
|
+
schema_version: "flowdesk.managed_dispatch_beta.binding_evidence.v1";
|
|
954
|
+
binding_ref: OpaqueRef;
|
|
955
|
+
workflow_id: OpaqueId;
|
|
956
|
+
step_id: OpaqueId;
|
|
957
|
+
attempt_id: OpaqueId;
|
|
958
|
+
provider_family: Exclude<ProviderFamily, "unknown" | "all">;
|
|
959
|
+
provider_qualified_model_id: string;
|
|
960
|
+
source: "guard_approved_dispatch";
|
|
961
|
+
trusted: true;
|
|
962
|
+
created_at: IsoTimestamp;
|
|
963
|
+
expires_at: IsoTimestamp;
|
|
964
|
+
}
|
|
965
|
+
export interface FlowDeskManagedDispatchBetaRuntimeEchoEvidenceV1 {
|
|
966
|
+
schema_version: "flowdesk.managed_dispatch_beta.runtime_echo_evidence.v1";
|
|
967
|
+
runtime_echo_ref: OpaqueRef;
|
|
968
|
+
workflow_id: OpaqueId;
|
|
969
|
+
step_id: OpaqueId;
|
|
970
|
+
attempt_id: OpaqueId;
|
|
971
|
+
provider_family: Exclude<ProviderFamily, "unknown" | "all">;
|
|
972
|
+
provider_qualified_model_id: string;
|
|
973
|
+
runtime_capability_ref: OpaqueRef;
|
|
974
|
+
conformance_ref: OpaqueRef;
|
|
975
|
+
runtime_echo_mode: "trusted";
|
|
976
|
+
trusted: true;
|
|
977
|
+
observed_at: IsoTimestamp;
|
|
978
|
+
expires_at: IsoTimestamp;
|
|
979
|
+
}
|
|
980
|
+
export interface FlowDeskManagedDispatchBetaTelemetryCorrelationV1 {
|
|
981
|
+
schema_version: "flowdesk.managed_dispatch_beta.telemetry_correlation.v1";
|
|
982
|
+
telemetry_ref: OpaqueRef;
|
|
983
|
+
workflow_id: OpaqueId;
|
|
984
|
+
step_id: OpaqueId;
|
|
985
|
+
attempt_id: OpaqueId;
|
|
986
|
+
event_telemetry_mode: "sufficient";
|
|
987
|
+
correlation_count: number;
|
|
988
|
+
ambiguous: false;
|
|
989
|
+
source_refs: OpaqueRef[];
|
|
990
|
+
}
|
|
991
|
+
export interface FlowDeskAuditEventV1 {
|
|
992
|
+
schema_version: "flowdesk.audit_event.v1";
|
|
993
|
+
event_id: OpaqueId;
|
|
994
|
+
event_type: string;
|
|
995
|
+
workflow_id?: OpaqueId;
|
|
996
|
+
attempt_id?: OpaqueId;
|
|
997
|
+
step_id?: OpaqueId;
|
|
998
|
+
created_at: IsoTimestamp;
|
|
999
|
+
actor_class: "user" | "flowdesk" | "opencode" | "provider" | "system" | "unknown";
|
|
1000
|
+
policy_ref?: OpaqueRef;
|
|
1001
|
+
decision_ref?: OpaqueRef;
|
|
1002
|
+
redaction_version: string;
|
|
1003
|
+
summary_label: string;
|
|
1004
|
+
artifact_refs: OpaqueRef[];
|
|
1005
|
+
}
|
|
1006
|
+
export interface FlowDeskDoctorReportV1 {
|
|
1007
|
+
schema_version: "flowdesk.doctor_report.v1";
|
|
1008
|
+
run_id: OpaqueId;
|
|
1009
|
+
checked_at: IsoTimestamp;
|
|
1010
|
+
profile: "production" | "development" | "test";
|
|
1011
|
+
category_results: DoctorSectionResultV1[];
|
|
1012
|
+
disabled_modes: DisabledModeV1[];
|
|
1013
|
+
compatibility_ref: OpaqueRef;
|
|
1014
|
+
safe_next_actions: SafeNextAction[];
|
|
1015
|
+
}
|
|
1016
|
+
export interface FlowDeskPlanSummaryArtifactV1 {
|
|
1017
|
+
schema_version: "flowdesk.plan_summary.v1";
|
|
1018
|
+
plan_revision_id: OpaqueId;
|
|
1019
|
+
workflow_id: OpaqueId;
|
|
1020
|
+
created_at: IsoTimestamp;
|
|
1021
|
+
goal_summary: string;
|
|
1022
|
+
scope_summary: string;
|
|
1023
|
+
risk_tier: "low" | "medium" | "high" | "blocked";
|
|
1024
|
+
required_approvals: GuardCheckV1[];
|
|
1025
|
+
step_summary_refs: OpaqueRef[];
|
|
1026
|
+
verification_summary: string;
|
|
1027
|
+
}
|
|
1028
|
+
export interface FlowDeskLaneSummaryArtifactV1 extends FlowDeskStatusLaneSummaryV1 {
|
|
1029
|
+
schema_version: "flowdesk.lane_summary.v1";
|
|
1030
|
+
}
|
|
1031
|
+
export interface FlowDeskVerificationSummaryArtifactV1 {
|
|
1032
|
+
schema_version: "flowdesk.verification_summary.v1";
|
|
1033
|
+
verification_id: OpaqueId;
|
|
1034
|
+
workflow_id: OpaqueId;
|
|
1035
|
+
attempt_id?: OpaqueId;
|
|
1036
|
+
result: "passed" | "failed" | "blocked" | "not_run";
|
|
1037
|
+
check_labels: string[];
|
|
1038
|
+
artifact_refs: OpaqueRef[];
|
|
1039
|
+
failure_category?: RedactedErrorCategory;
|
|
1040
|
+
safe_next_actions: SafeNextAction[];
|
|
1041
|
+
}
|
|
1042
|
+
export interface FlowDeskStatusSummaryArtifactV1 {
|
|
1043
|
+
schema_version: "flowdesk.status_summary.v1";
|
|
1044
|
+
workflow_id: OpaqueId;
|
|
1045
|
+
state: WorkflowStateV1;
|
|
1046
|
+
current_step_id?: OpaqueId;
|
|
1047
|
+
blocker_summary?: BlockerSummaryV1;
|
|
1048
|
+
lane_summary_refs: OpaqueRef[];
|
|
1049
|
+
usage_summary_ref?: OpaqueRef;
|
|
1050
|
+
provider_health_summary_ref?: OpaqueRef;
|
|
1051
|
+
checkpoint_id?: OpaqueId;
|
|
1052
|
+
safe_next_actions: SafeNextAction[];
|
|
1053
|
+
audit_refs: OpaqueRef[];
|
|
1054
|
+
debug_ref?: OpaqueRef;
|
|
1055
|
+
}
|
|
1056
|
+
export interface FlowDeskAuditRefSummaryV1 {
|
|
1057
|
+
schema_version: "flowdesk.audit_ref_summary.v1";
|
|
1058
|
+
audit_ref: OpaqueRef;
|
|
1059
|
+
workflow_id?: OpaqueId;
|
|
1060
|
+
attempt_id?: OpaqueId;
|
|
1061
|
+
event_type: string;
|
|
1062
|
+
summary_label: string;
|
|
1063
|
+
created_at: IsoTimestamp;
|
|
1064
|
+
redaction_version: string;
|
|
1065
|
+
}
|
|
1066
|
+
export declare const FLOWDESK_TOP_TIER_REVIEW_PERSPECTIVES: readonly ["policy_security", "architecture", "verification_implementation"];
|
|
1067
|
+
export type FlowDeskTopTierReviewPerspective = (typeof FLOWDESK_TOP_TIER_REVIEW_PERSPECTIVES)[number];
|
|
1068
|
+
export declare const FLOWDESK_TOP_TIER_BINDING_AVAILABILITY_STATES: readonly ["registered_available", "registered_unavailable", "registered_blocked"];
|
|
1069
|
+
export type FlowDeskTopTierBindingAvailability = (typeof FLOWDESK_TOP_TIER_BINDING_AVAILABILITY_STATES)[number];
|
|
1070
|
+
export declare const FLOWDESK_TOP_TIER_LANE_INCLUSION_STATES: readonly ["included", "excluded", "blocked"];
|
|
1071
|
+
export type FlowDeskTopTierLaneInclusionState = (typeof FLOWDESK_TOP_TIER_LANE_INCLUSION_STATES)[number];
|
|
1072
|
+
export declare const FLOWDESK_TOP_TIER_REVIEW_INVENTORY_DECISIONS: readonly ["ready", "blocked", "policy_change_required"];
|
|
1073
|
+
export type FlowDeskTopTierReviewInventoryDecision = (typeof FLOWDESK_TOP_TIER_REVIEW_INVENTORY_DECISIONS)[number];
|
|
1074
|
+
export interface FlowDeskTopTierReviewerBindingV1 {
|
|
1075
|
+
schema_version: "flowdesk.top_tier_reviewer_binding.v1";
|
|
1076
|
+
binding_id: OpaqueId;
|
|
1077
|
+
reviewer_profile_id: typeof FLOWDESK_CANONICAL_REVIEW_AGENT_ID;
|
|
1078
|
+
binding_label: string;
|
|
1079
|
+
provider_family: Exclude<ProviderFamily, "unknown" | "all">;
|
|
1080
|
+
provider_qualified_model_id: string;
|
|
1081
|
+
model_family: string;
|
|
1082
|
+
highest_tier_eligible: true;
|
|
1083
|
+
registry_entry_ref: OpaqueRef;
|
|
1084
|
+
policy_pack_eligibility_ref: OpaqueRef;
|
|
1085
|
+
availability: FlowDeskTopTierBindingAvailability;
|
|
1086
|
+
dispatch_authority_enabled: false;
|
|
1087
|
+
observed_at: IsoTimestamp;
|
|
1088
|
+
expires_at: IsoTimestamp;
|
|
1089
|
+
}
|
|
1090
|
+
export interface FlowDeskTopTierReviewerLanePlanV1 {
|
|
1091
|
+
schema_version: "flowdesk.top_tier_reviewer_lane_plan.v1";
|
|
1092
|
+
lane_plan_id: OpaqueId;
|
|
1093
|
+
binding_ref: OpaqueRef;
|
|
1094
|
+
perspective: FlowDeskTopTierReviewPerspective;
|
|
1095
|
+
inclusion_state: FlowDeskTopTierLaneInclusionState;
|
|
1096
|
+
reason_label: string;
|
|
1097
|
+
safe_next_actions: SafeNextAction[];
|
|
1098
|
+
dispatch_authority_enabled: false;
|
|
1099
|
+
}
|
|
1100
|
+
export interface FlowDeskTopTierReviewBindingInventoryV1 {
|
|
1101
|
+
schema_version: "flowdesk.top_tier_review_binding_inventory.v1";
|
|
1102
|
+
inventory_id: OpaqueId;
|
|
1103
|
+
workflow_id: OpaqueId;
|
|
1104
|
+
plan_revision_id: OpaqueId;
|
|
1105
|
+
created_at: IsoTimestamp;
|
|
1106
|
+
redaction_version: string;
|
|
1107
|
+
registered_binding_refs: OpaqueRef[];
|
|
1108
|
+
available_binding_refs: OpaqueRef[];
|
|
1109
|
+
unavailable_binding_refs: OpaqueRef[];
|
|
1110
|
+
blocked_binding_refs: OpaqueRef[];
|
|
1111
|
+
lane_plan_refs: OpaqueRef[];
|
|
1112
|
+
max_concurrent_lane_count: number;
|
|
1113
|
+
budget_cap_label: string;
|
|
1114
|
+
quota_reserve_label: string;
|
|
1115
|
+
timeout_label: string;
|
|
1116
|
+
retry_budget_label: string;
|
|
1117
|
+
inventory_decision: FlowDeskTopTierReviewInventoryDecision;
|
|
1118
|
+
safe_next_actions: SafeNextAction[];
|
|
1119
|
+
dispatch_authority_enabled: false;
|
|
1120
|
+
}
|
|
1121
|
+
export declare const FLOWDESK_TOP_TIER_REVIEW_VERDICT_LABELS: readonly ["pass", "changes_required", "blocked", "inconclusive"];
|
|
1122
|
+
export type FlowDeskTopTierReviewVerdictLabel = (typeof FLOWDESK_TOP_TIER_REVIEW_VERDICT_LABELS)[number];
|
|
1123
|
+
export declare const FLOWDESK_TOP_TIER_REVIEW_FINDING_SEVERITIES: readonly ["info", "low", "medium", "high", "critical"];
|
|
1124
|
+
export type FlowDeskTopTierReviewFindingSeverity = (typeof FLOWDESK_TOP_TIER_REVIEW_FINDING_SEVERITIES)[number];
|
|
1125
|
+
export declare const FLOWDESK_TOP_TIER_REVIEW_UNCERTAINTY_LEVELS: readonly ["low", "medium", "high", "unknown"];
|
|
1126
|
+
export type FlowDeskTopTierReviewUncertaintyLevel = (typeof FLOWDESK_TOP_TIER_REVIEW_UNCERTAINTY_LEVELS)[number];
|
|
1127
|
+
export interface FlowDeskTopTierReviewFindingV1 {
|
|
1128
|
+
finding_id: OpaqueId;
|
|
1129
|
+
severity: FlowDeskTopTierReviewFindingSeverity;
|
|
1130
|
+
category: RedactedErrorCategory;
|
|
1131
|
+
summary_label: string;
|
|
1132
|
+
evidence_refs: OpaqueRef[];
|
|
1133
|
+
required_fix_label: string;
|
|
1134
|
+
}
|
|
1135
|
+
export interface FlowDeskTopTierReviewVerdictV1 {
|
|
1136
|
+
schema_version: "flowdesk.top_tier_review_verdict.v1";
|
|
1137
|
+
verdict_id: OpaqueId;
|
|
1138
|
+
workflow_id: OpaqueId;
|
|
1139
|
+
lane_plan_ref: OpaqueRef;
|
|
1140
|
+
binding_ref: OpaqueRef;
|
|
1141
|
+
perspective: FlowDeskTopTierReviewPerspective;
|
|
1142
|
+
source: string;
|
|
1143
|
+
created_at: IsoTimestamp;
|
|
1144
|
+
redaction_version: string;
|
|
1145
|
+
findings: FlowDeskTopTierReviewFindingV1[];
|
|
1146
|
+
evidence_refs: OpaqueRef[];
|
|
1147
|
+
uncertainty: FlowDeskTopTierReviewUncertaintyLevel;
|
|
1148
|
+
required_fixes: string[];
|
|
1149
|
+
verdict_label: FlowDeskTopTierReviewVerdictLabel;
|
|
1150
|
+
safe_next_actions: SafeNextAction[];
|
|
1151
|
+
dispatch_authority_enabled: false;
|
|
1152
|
+
}
|
|
1153
|
+
export declare const FLOWDESK_PLANNED_MODE_FIELD_LABELS: readonly ["top_tier_multi_perspective_review_mode"];
|
|
1154
|
+
export type FlowDeskPlannedModeFieldLabel = (typeof FLOWDESK_PLANNED_MODE_FIELD_LABELS)[number];
|
|
1155
|
+
export declare const FLOWDESK_PLANNED_MODE_FIELD_STATES: readonly ["disabled", "planned", "conformance_ready", "release_gate_ready"];
|
|
1156
|
+
export type FlowDeskPlannedModeFieldState = (typeof FLOWDESK_PLANNED_MODE_FIELD_STATES)[number];
|
|
1157
|
+
export declare const FLOWDESK_FORBIDDEN_MODE_FIELD_STATES: readonly ["enabled", "active", "dispatch_ready", "approved", "authorized"];
|
|
1158
|
+
export interface FlowDeskPlannedModeFieldV1 {
|
|
1159
|
+
label: FlowDeskPlannedModeFieldLabel;
|
|
1160
|
+
state: FlowDeskPlannedModeFieldState;
|
|
1161
|
+
dispatch_authority_enabled: false;
|
|
1162
|
+
}
|
|
1163
|
+
export declare function flowDeskPlannedModeFieldToString(entry: FlowDeskPlannedModeFieldV1): string;
|
|
1164
|
+
export declare function createFlowDeskPlannedTopTierMultiPerspectiveReviewModeFieldV1(state?: FlowDeskPlannedModeFieldState): FlowDeskPlannedModeFieldV1;
|
|
1165
|
+
export declare const FLOWDESK_PLANNED_TOP_TIER_MULTI_PERSPECTIVE_REVIEW_MODE_FIELD_REF: string;
|
|
1166
|
+
export declare const FLOWDESK_TOP_TIER_REVIEWER_LANE_PROBE_CHANNELS: readonly ["subtask_true_command_lane", "injected_sdk_client"];
|
|
1167
|
+
export type FlowDeskTopTierReviewerLaneProbeChannel = (typeof FLOWDESK_TOP_TIER_REVIEWER_LANE_PROBE_CHANNELS)[number];
|
|
1168
|
+
export declare const FLOWDESK_TOP_TIER_REVIEWER_LANE_PROBE_OUTCOMES: readonly ["probe_pass", "probe_fail_closed", "probe_invalid"];
|
|
1169
|
+
export type FlowDeskTopTierReviewerLaneProbeOutcome = (typeof FLOWDESK_TOP_TIER_REVIEWER_LANE_PROBE_OUTCOMES)[number];
|
|
1170
|
+
export interface FlowDeskTopTierReviewerLaneProbeRequestV1 {
|
|
1171
|
+
schema_version: "flowdesk.top_tier_reviewer_lane_probe.request.v1";
|
|
1172
|
+
probe_id: OpaqueId;
|
|
1173
|
+
binding_ref: OpaqueRef;
|
|
1174
|
+
lane_plan_ref: OpaqueRef;
|
|
1175
|
+
channel: FlowDeskTopTierReviewerLaneProbeChannel;
|
|
1176
|
+
agent_id: typeof FLOWDESK_CANONICAL_REVIEW_AGENT_ID;
|
|
1177
|
+
provider_qualified_model_id: string;
|
|
1178
|
+
perspective: FlowDeskTopTierReviewPerspective;
|
|
1179
|
+
auth_evidence_ref: OpaqueRef;
|
|
1180
|
+
usage_evidence_ref: OpaqueRef;
|
|
1181
|
+
quota_evidence_ref: OpaqueRef;
|
|
1182
|
+
provider_health_ref: OpaqueRef;
|
|
1183
|
+
runtime_echo_ref: OpaqueRef;
|
|
1184
|
+
telemetry_ref: OpaqueRef;
|
|
1185
|
+
policy_pack_eligibility_ref: OpaqueRef;
|
|
1186
|
+
redaction_version: string;
|
|
1187
|
+
fake_runtime: true;
|
|
1188
|
+
dispatch_authority_enabled: false;
|
|
1189
|
+
}
|
|
1190
|
+
export interface FlowDeskTopTierReviewerLaneProbeResultV1 {
|
|
1191
|
+
schema_version: "flowdesk.top_tier_reviewer_lane_probe.result.v1";
|
|
1192
|
+
probe_id: OpaqueId;
|
|
1193
|
+
channel: FlowDeskTopTierReviewerLaneProbeChannel;
|
|
1194
|
+
outcome: FlowDeskTopTierReviewerLaneProbeOutcome;
|
|
1195
|
+
failure_label?: string;
|
|
1196
|
+
observed_at: IsoTimestamp;
|
|
1197
|
+
evidence_refs: OpaqueRef[];
|
|
1198
|
+
safe_next_actions: SafeNextAction[];
|
|
1199
|
+
dispatch_authority_enabled: false;
|
|
1200
|
+
provider_call_made: false;
|
|
1201
|
+
lane_launch_made: false;
|
|
1202
|
+
}
|
|
1203
|
+
//# sourceMappingURL=release1-contracts.d.ts.map
|