@adhdev/daemon-core 0.9.82-rc.22 → 0.9.82-rc.220
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/boot/daemon-lifecycle.d.ts +1 -0
- package/dist/boot/process-hardening.d.ts +50 -0
- package/dist/chat/source-machine.d.ts +166 -0
- package/dist/chat/source-resolver.d.ts +104 -0
- package/dist/chat/subscription-updates.d.ts +1 -0
- package/dist/cli-adapter-types.d.ts +23 -2
- package/dist/cli-adapters/cli-script-runner.d.ts +117 -0
- package/dist/cli-adapters/cli-state-engine.d.ts +178 -0
- package/dist/cli-adapters/provider-cli-adapter.d.ts +106 -63
- package/dist/cli-adapters/provider-cli-parse.d.ts +4 -0
- package/dist/cli-adapters/provider-cli-shared.d.ts +29 -0
- package/dist/cli-adapters/raw-terminal-io.d.ts +37 -0
- package/dist/cli-adapters/terminal-backends/ghostty-vt-backend.d.ts +3 -3
- package/dist/cli-adapters/terminal-backends/types.d.ts +1 -2
- package/dist/cli-adapters/terminal-screen.d.ts +2 -11
- package/dist/commands/cli-manager.d.ts +2 -1
- package/dist/commands/handler.d.ts +110 -0
- package/dist/commands/mesh-coordinator.d.ts +85 -1
- package/dist/commands/router.d.ts +32 -1
- package/dist/config/chat-history.d.ts +9 -0
- package/dist/config/config.d.ts +5 -0
- package/dist/config/mesh-config.d.ts +72 -1
- package/dist/git/git-commands.d.ts +9 -1
- package/dist/git/git-diff.d.ts +6 -0
- package/dist/git/git-types.d.ts +2 -0
- package/dist/index.d.ts +46 -11
- package/dist/index.js +36322 -15614
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +36182 -15568
- package/dist/index.mjs.map +1 -1
- package/dist/installer.d.ts +1 -4
- package/dist/ipc/local-ipc-server.d.ts +91 -0
- package/dist/launch.d.ts +1 -1
- package/dist/logging/async-batch-writer.d.ts +10 -0
- package/dist/mesh/contracts.d.ts +164 -0
- package/dist/mesh/coordinator-prompt.d.ts +36 -0
- package/dist/mesh/coordinator-registry.d.ts +59 -0
- package/dist/mesh/mesh-active-work.d.ts +90 -0
- package/dist/mesh/mesh-delivery-policy.d.ts +131 -0
- package/dist/mesh/mesh-events-coordinator.d.ts +151 -0
- package/dist/mesh/mesh-events-pending.d.ts +33 -0
- package/dist/mesh/mesh-events-stale.d.ts +40 -0
- package/dist/mesh/mesh-events-utils.d.ts +14 -0
- package/dist/mesh/mesh-events.d.ts +5 -40
- package/dist/mesh/mesh-fast-forward.d.ts +41 -0
- package/dist/mesh/mesh-host-ownership.d.ts +9 -0
- package/dist/mesh/mesh-ledger-reconciliation.d.ts +23 -3
- package/dist/mesh/mesh-ledger.d.ts +77 -1
- package/dist/mesh/mesh-missions.d.ts +58 -0
- package/dist/mesh/mesh-refine-status.d.ts +26 -0
- package/dist/mesh/mesh-review-inbox.d.ts +90 -0
- package/dist/mesh/mesh-runtime-store.d.ts +324 -0
- package/dist/mesh/mesh-task-stats.d.ts +49 -0
- package/dist/mesh/mesh-work-queue.d.ts +137 -6
- package/dist/mesh/preview-freshness.d.ts +18 -0
- package/dist/mesh/refine-config.d.ts +215 -0
- package/dist/mesh/worktree-bootstrap-config.d.ts +135 -0
- package/dist/providers/acp-provider-instance.d.ts +2 -0
- package/dist/providers/approval-utils.d.ts +13 -0
- package/dist/providers/cli-provider-instance.d.ts +39 -3
- package/dist/providers/contracts.d.ts +130 -6
- package/dist/providers/external-sources.d.ts +71 -0
- package/dist/providers/native-history/antigravity-cli-transcript.d.ts +100 -0
- package/dist/providers/native-history/claude-cli-transcript.d.ts +70 -0
- package/dist/providers/native-history/codex-cli-transcript.d.ts +73 -0
- package/dist/providers/native-history/dispatcher.d.ts +27 -0
- package/dist/providers/native-history/hermes-cli-transcript.d.ts +30 -0
- package/dist/providers/native-history/index.d.ts +13 -0
- package/dist/providers/provider-instance-manager.d.ts +12 -0
- package/dist/providers/provider-instance.d.ts +13 -1
- package/dist/providers/provider-loader.d.ts +26 -4
- package/dist/providers/provider-trust.d.ts +31 -0
- package/dist/providers/read-chat-contract.d.ts +29 -0
- package/dist/providers/sdk/v1/builders/acp/detect-status.d.ts +68 -0
- package/dist/providers/sdk/v1/builders/cli/detect-status.d.ts +85 -0
- package/dist/providers/sdk/v1/builders/cli/parse-approval-squash.d.ts +59 -0
- package/dist/providers/sdk/v1/builders/cli/parse-approval.d.ts +65 -0
- package/dist/providers/sdk/v1/builders/cli/parse-session.d.ts +91 -0
- package/dist/providers/sdk/v1/builders/cli/visible-region.d.ts +42 -0
- package/dist/providers/sdk/v1/fixture-tooling/format.d.ts +126 -0
- package/dist/providers/sdk/v1/fixture-tooling/index.d.ts +8 -0
- package/dist/providers/sdk/v1/fixture-tooling/replay.d.ts +38 -0
- package/dist/providers/sdk/v1/index.d.ts +30 -0
- package/dist/providers/sdk/v1/sandbox/README-design.d.ts +193 -0
- package/dist/providers/sdk/v1/sandbox/require-whitelist.d.ts +74 -0
- package/dist/providers/sdk/v1/sandbox/script-runner.d.ts +98 -0
- package/dist/providers/sdk/v1/types/cli/index.d.ts +277 -0
- package/dist/providers/sdk/v1/types/common/index.d.ts +203 -0
- package/dist/providers/sdk/v1/validators/index.d.ts +5 -0
- package/dist/providers/sdk/v1/validators/manifest.d.ts +40 -0
- package/dist/providers/sdk/v1/validators/taint.d.ts +52 -0
- package/dist/providers/spec/adapter.d.ts +52 -0
- package/dist/providers/spec/cli-adapter.d.ts +102 -0
- package/dist/providers/spec/driver.d.ts +287 -0
- package/dist/providers/spec/evaluator.d.ts +70 -0
- package/dist/providers/spec/fsm-driver.d.ts +110 -0
- package/dist/providers/spec/fsm-evaluator.d.ts +72 -0
- package/dist/providers/spec/fsm-loader.d.ts +14 -0
- package/dist/providers/spec/fsm-types.d.ts +91 -0
- package/dist/providers/spec/loader.d.ts +15 -0
- package/dist/providers/spec/native-history-executor.d.ts +41 -0
- package/dist/providers/spec/route.d.ts +4 -0
- package/dist/providers/spec/schema.gen.d.ts +2039 -0
- package/dist/providers/spec/types.d.ts +311 -0
- package/dist/providers/transcript-v2.d.ts +176 -0
- package/dist/providers/types/interactive-prompt.d.ts +48 -0
- package/dist/repo-mesh-types.d.ts +126 -1
- package/dist/sessions/registry.d.ts +3 -0
- package/dist/shared-types-extra.d.ts +2 -4
- package/dist/shared-types.d.ts +42 -1
- package/dist/status/normalize.d.ts +1 -1
- package/dist/status/normalize.js +1 -0
- package/dist/status/normalize.js.map +1 -1
- package/dist/status/normalize.mjs +1 -0
- package/dist/status/normalize.mjs.map +1 -1
- package/dist/status/reporter.d.ts +2 -0
- package/dist/status/snapshot.d.ts +1 -0
- package/dist/types.d.ts +5 -0
- package/package.json +6 -3
- package/src/agent-stream/poller.ts +2 -3
- package/src/boot/daemon-lifecycle.ts +22 -10
- package/src/boot/process-hardening.ts +89 -0
- package/src/chat/source-machine.ts +534 -0
- package/src/chat/source-resolver.ts +0 -0
- package/src/chat/subscription-updates.ts +20 -1
- package/src/cli-adapter-types.d.ts +1 -0
- package/src/cli-adapter-types.ts +22 -2
- package/src/cli-adapters/cli-script-runner.ts +421 -0
- package/src/cli-adapters/cli-state-engine.ts +1162 -0
- package/src/cli-adapters/provider-cli-adapter.d.ts +1 -1
- package/src/cli-adapters/provider-cli-adapter.ts +673 -1139
- package/src/cli-adapters/provider-cli-parse.d.ts +1 -0
- package/src/cli-adapters/provider-cli-parse.ts +13 -0
- package/src/cli-adapters/provider-cli-runtime.ts +3 -1
- package/src/cli-adapters/provider-cli-shared.d.ts +2 -0
- package/src/cli-adapters/provider-cli-shared.ts +59 -11
- package/src/cli-adapters/raw-terminal-io.ts +252 -0
- package/src/cli-adapters/terminal-backends/ghostty-vt-backend.ts +35 -29
- package/src/cli-adapters/terminal-backends/types.ts +1 -3
- package/src/cli-adapters/terminal-screen.ts +11 -81
- package/src/commands/chat-commands.ts +1787 -60
- package/src/commands/cli-manager.ts +283 -14
- package/src/commands/handler.ts +809 -2
- package/src/commands/mesh-coordinator.ts +332 -122
- package/src/commands/router.ts +4369 -558
- package/src/config/chat-history.ts +95 -24
- package/src/config/config.ts +12 -0
- package/src/config/mesh-config.ts +303 -3
- package/src/config/recent-activity.ts +8 -2
- package/src/daemon/dev-auto-implement.ts +3 -2
- package/src/daemon/dev-cli-debug.ts +10 -1
- package/src/detection/ide-detector.ts +26 -16
- package/src/git/git-commands.ts +42 -12
- package/src/git/git-diff.ts +53 -0
- package/src/git/git-status.ts +35 -6
- package/src/git/git-types.ts +2 -0
- package/src/git/git-worktree.ts +8 -1
- package/src/index.ts +126 -10
- package/src/installer.d.ts +1 -1
- package/src/installer.ts +8 -6
- package/src/ipc/local-ipc-server.ts +278 -0
- package/src/launch.d.ts +1 -1
- package/src/launch.ts +37 -28
- package/src/logging/async-batch-writer.ts +55 -0
- package/src/logging/logger.ts +2 -1
- package/src/mesh/contracts.ts +329 -0
- package/src/mesh/coordinator-prompt.ts +218 -31
- package/src/mesh/coordinator-registry.ts +121 -0
- package/src/mesh/mesh-active-work.ts +437 -0
- package/src/mesh/mesh-delivery-policy.ts +315 -0
- package/src/mesh/mesh-events-coordinator.ts +1447 -0
- package/src/mesh/mesh-events-pending.ts +371 -0
- package/src/mesh/mesh-events-stale.ts +283 -0
- package/src/mesh/mesh-events-utils.ts +166 -0
- package/src/mesh/mesh-events.ts +24 -908
- package/src/mesh/mesh-fast-forward.ts +438 -0
- package/src/mesh/mesh-host-ownership.ts +73 -0
- package/src/mesh/mesh-ledger-reconciliation.ts +12 -5
- package/src/mesh/mesh-ledger.ts +587 -102
- package/src/mesh/mesh-missions.ts +151 -0
- package/src/mesh/mesh-refine-status.ts +144 -0
- package/src/mesh/mesh-review-inbox.ts +307 -0
- package/src/mesh/mesh-runtime-store.ts +1305 -0
- package/src/mesh/mesh-task-stats.ts +154 -0
- package/src/mesh/mesh-work-queue.ts +490 -166
- package/src/mesh/preview-freshness.ts +118 -0
- package/src/mesh/refine-config.ts +403 -0
- package/src/mesh/worktree-bootstrap-config.ts +326 -0
- package/src/providers/acp-provider-instance.ts +15 -1
- package/src/providers/approval-utils.d.ts +4 -0
- package/src/providers/approval-utils.ts +47 -5
- package/src/providers/chat-message-normalization.ts +4 -11
- package/src/providers/cli-provider-instance.ts +834 -64
- package/src/providers/contracts.d.ts +55 -0
- package/src/providers/contracts.ts +141 -6
- package/src/providers/external-sources.ts +218 -0
- package/src/providers/ide-provider-instance.ts +19 -5
- package/src/providers/native-history/antigravity-cli-transcript.ts +643 -0
- package/src/providers/native-history/claude-cli-transcript.ts +396 -0
- package/src/providers/native-history/codex-cli-transcript.ts +479 -0
- package/src/providers/native-history/dispatcher.ts +340 -0
- package/src/providers/native-history/hermes-cli-transcript.ts +230 -0
- package/src/providers/native-history/index.ts +30 -0
- package/src/providers/provider-instance-manager.ts +30 -0
- package/src/providers/provider-instance.ts +10 -1
- package/src/providers/provider-loader.ts +592 -50
- package/src/providers/provider-schema.ts +87 -14
- package/src/providers/provider-trust.ts +114 -0
- package/src/providers/read-chat-contract.ts +76 -16
- package/src/providers/sdk/README.md +49 -0
- package/src/providers/sdk/v1/builders/acp/detect-status.ts +144 -0
- package/src/providers/sdk/v1/builders/cli/detect-status.ts +262 -0
- package/src/providers/sdk/v1/builders/cli/parse-approval-squash.ts +158 -0
- package/src/providers/sdk/v1/builders/cli/parse-approval.ts +250 -0
- package/src/providers/sdk/v1/builders/cli/parse-session.ts +276 -0
- package/src/providers/sdk/v1/builders/cli/visible-region.ts +143 -0
- package/src/providers/sdk/v1/fixture-tooling/format.ts +130 -0
- package/src/providers/sdk/v1/fixture-tooling/index.ts +22 -0
- package/src/providers/sdk/v1/fixture-tooling/replay.ts +352 -0
- package/src/providers/sdk/v1/index.ts +152 -0
- package/src/providers/sdk/v1/sandbox/README-design.ts +195 -0
- package/src/providers/sdk/v1/sandbox/require-whitelist.ts +472 -0
- package/src/providers/sdk/v1/sandbox/script-runner.ts +150 -0
- package/src/providers/sdk/v1/schemas/cli/provider.schema.json +504 -0
- package/src/providers/sdk/v1/schemas/primitives/acp-session-protocol-v1.json +131 -0
- package/src/providers/sdk/v1/schemas/primitives/native-history-codex-rollout-v1.json +66 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-approval-squash-v1.json +91 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-assistant-block-v1.json +91 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-cue-ordering-v1.json +47 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-dispatch-order-v1.json +32 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-footer-chrome-v1.json +42 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-index-finder-v1.json +27 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-modal-v1.json +125 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-prompt-marker-v1.json +45 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-session-id-extraction-v1.json +46 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-settled-prompt-v1.json +71 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-spinner-v1.json +83 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-transcript-pty-v1.json +83 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-visible-region-v1.json +57 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-welcome-screen-v1.json +35 -0
- package/src/providers/sdk/v1/types/cli/index.ts +365 -0
- package/src/providers/sdk/v1/types/common/index.ts +229 -0
- package/src/providers/sdk/v1/validators/index.ts +19 -0
- package/src/providers/sdk/v1/validators/manifest.ts +110 -0
- package/src/providers/sdk/v1/validators/taint.ts +309 -0
- package/src/providers/spec/adapter.ts +138 -0
- package/src/providers/spec/cli-adapter.ts +674 -0
- package/src/providers/spec/driver.ts +1082 -0
- package/src/providers/spec/evaluator.ts +604 -0
- package/src/providers/spec/fsm-driver.ts +663 -0
- package/src/providers/spec/fsm-evaluator.ts +255 -0
- package/src/providers/spec/fsm-loader.ts +102 -0
- package/src/providers/spec/fsm-types.ts +184 -0
- package/src/providers/spec/loader.ts +325 -0
- package/src/providers/spec/native-history-executor.ts +939 -0
- package/src/providers/spec/route.ts +51 -0
- package/src/providers/spec/schema.gen.ts +693 -0
- package/src/providers/spec/schema.json +342 -0
- package/src/providers/spec/types.ts +365 -0
- package/src/providers/transcript-v2.ts +567 -0
- package/src/providers/types/interactive-prompt.ts +425 -0
- package/src/providers/version-archive.ts +38 -20
- package/src/repo-mesh-types.ts +138 -1
- package/src/sessions/registry.ts +3 -0
- package/src/shared-types-extra.ts +2 -4
- package/src/shared-types.ts +45 -1
- package/src/status/builders.ts +24 -6
- package/src/status/normalize.ts +2 -0
- package/src/status/reporter.ts +15 -0
- package/src/status/snapshot.ts +84 -25
- package/src/system/host-memory.ts +29 -12
- package/src/types.ts +5 -0
- package/dist/cli-adapters/terminal-backends/xterm-backend.d.ts +0 -17
- package/dist/mesh/mesh-sync.d.ts +0 -53
- package/src/cli-adapters/terminal-backends/ghostty-vt-backend.d.ts +0 -16
- package/src/cli-adapters/terminal-backends/xterm-backend.ts +0 -97
- package/src/mesh/mesh-sync.ts +0 -111
|
@@ -0,0 +1,365 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type mirror of adhdev:cli/spec@1 (v1) and adhdev:cli/spec@3 (v3).
|
|
3
|
+
* Keep in sync with schema.gen.ts.
|
|
4
|
+
*
|
|
5
|
+
* v1 uses layout.sections[] and debounce{}.
|
|
6
|
+
* v3 uses sections{} (object) and timing{}, with composable conditions.
|
|
7
|
+
*
|
|
8
|
+
* The loader auto-migrates v1 → v3. Callers receive a CliSpec (v3) after
|
|
9
|
+
* loadSpec; the v1 raw shape is only used during migration.
|
|
10
|
+
*/
|
|
11
|
+
'use strict';
|
|
12
|
+
|
|
13
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
14
|
+
// Shared / unchanged types
|
|
15
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
16
|
+
|
|
17
|
+
export type Size = number | string;
|
|
18
|
+
|
|
19
|
+
export interface SectionPattern {
|
|
20
|
+
section?: string;
|
|
21
|
+
pattern: string;
|
|
22
|
+
flags?: string;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export type ControlAction =
|
|
26
|
+
| { type: 'send_keys'; keys: string }
|
|
27
|
+
| {
|
|
28
|
+
type: 'open_picker';
|
|
29
|
+
trigger_keys: string;
|
|
30
|
+
wait_for: SectionRegex;
|
|
31
|
+
extract_choices: SectionPattern;
|
|
32
|
+
submit_key: string;
|
|
33
|
+
}
|
|
34
|
+
| {
|
|
35
|
+
type: 'attach_image';
|
|
36
|
+
method: 'tempfile_then_keys';
|
|
37
|
+
keys_template: string;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
export interface Control {
|
|
41
|
+
id: string;
|
|
42
|
+
label: string;
|
|
43
|
+
visible_when_state?: string[];
|
|
44
|
+
action: ControlAction;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export interface NotificationRule {
|
|
48
|
+
id: string;
|
|
49
|
+
when_state: string;
|
|
50
|
+
title: string;
|
|
51
|
+
body?: string;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export interface DelegateTrigger {
|
|
55
|
+
id: string;
|
|
56
|
+
when_state: string;
|
|
57
|
+
after_duration_ms?: number;
|
|
58
|
+
task_template: string;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Native history config — three modes, picked by which fields are present:
|
|
63
|
+
*
|
|
64
|
+
* 1. `reader`: built-in reader id (claude-cli / codex-cli / antigravity-cli / hermes-cli).
|
|
65
|
+
*
|
|
66
|
+
* 2. `source`: declarative source descriptor.
|
|
67
|
+
*
|
|
68
|
+
* 3. `override_path`: relative path to a provider-supplied reader module.
|
|
69
|
+
*/
|
|
70
|
+
export interface NativeHistoryConfig {
|
|
71
|
+
reader?: 'claude-cli' | 'codex-cli' | 'antigravity-cli' | 'hermes-cli';
|
|
72
|
+
source?: NativeHistorySource;
|
|
73
|
+
override_path?: string;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export type NativeHistorySource =
|
|
77
|
+
| NativeHistoryJsonlSource
|
|
78
|
+
| NativeHistorySqliteSource;
|
|
79
|
+
|
|
80
|
+
export interface NativeHistoryJsonlSource {
|
|
81
|
+
kind: 'jsonl';
|
|
82
|
+
path: string;
|
|
83
|
+
file_pattern?: string;
|
|
84
|
+
recent_window_ms?: number;
|
|
85
|
+
session_id_from?: 'filename_uuid' | 'first_record';
|
|
86
|
+
session_id_path?: string;
|
|
87
|
+
message_filter?: { where: string };
|
|
88
|
+
message_map: NativeHistoryMessageMap;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export interface NativeHistorySqliteSource {
|
|
92
|
+
kind: 'sqlite';
|
|
93
|
+
path: string;
|
|
94
|
+
session_query: string;
|
|
95
|
+
message_query: string;
|
|
96
|
+
message_map: NativeHistoryMessageMap;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export interface NativeHistoryMessageMap {
|
|
100
|
+
role: string;
|
|
101
|
+
content: string;
|
|
102
|
+
content_strip?: string[];
|
|
103
|
+
content_unwrap?: string[];
|
|
104
|
+
timestamp_ms?: string;
|
|
105
|
+
kind?: string;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
109
|
+
// v1 types (legacy — used internally during migration)
|
|
110
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
111
|
+
|
|
112
|
+
export interface Section {
|
|
113
|
+
id: string;
|
|
114
|
+
from_top?: Size;
|
|
115
|
+
from_bottom?: Size;
|
|
116
|
+
until?: { section: string };
|
|
117
|
+
anchor_regex?: string;
|
|
118
|
+
anchor_flags?: string;
|
|
119
|
+
anchor_last?: boolean;
|
|
120
|
+
anchor_context?: {
|
|
121
|
+
prev?: string;
|
|
122
|
+
prev_flags?: string;
|
|
123
|
+
next?: string;
|
|
124
|
+
next_flags?: string;
|
|
125
|
+
};
|
|
126
|
+
lines?: number;
|
|
127
|
+
until_regex?: string;
|
|
128
|
+
until_regex_flags?: string;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/** v1 condition — flat SectionRegex object. Also used in control_bar.wait_for. */
|
|
132
|
+
export interface SectionRegex {
|
|
133
|
+
section?: string;
|
|
134
|
+
regex?: string;
|
|
135
|
+
flags?: string;
|
|
136
|
+
cursor_row_min?: number;
|
|
137
|
+
cursor_row_max?: number;
|
|
138
|
+
cursor_col_min?: number;
|
|
139
|
+
cursor_col_max?: number;
|
|
140
|
+
/** v1 delta detection (cursor_above_lines + changed). */
|
|
141
|
+
cursor_above_lines?: number;
|
|
142
|
+
/** Required when cursor_above_lines is set. */
|
|
143
|
+
changed?: true;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
export interface ModalButtonsRule {
|
|
147
|
+
section?: string;
|
|
148
|
+
pattern?: string;
|
|
149
|
+
flags?: string;
|
|
150
|
+
patterns?: Array<{ pattern: string; flags?: string }>;
|
|
151
|
+
key_for_index: string;
|
|
152
|
+
min_count?: number;
|
|
153
|
+
continuation_lines?: boolean;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
157
|
+
// v3 types (current)
|
|
158
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* v3 section definition — keyed by id in `sections{}` object.
|
|
162
|
+
* `until` is EITHER a section-id string (no `^` prefix) OR a regex string (starts with `^`).
|
|
163
|
+
*/
|
|
164
|
+
export interface SectionDef {
|
|
165
|
+
// positional
|
|
166
|
+
from_top?: Size;
|
|
167
|
+
from_bottom?: Size;
|
|
168
|
+
until?: string; // section id OR regex (starts with ^)
|
|
169
|
+
// anchor-based
|
|
170
|
+
anchor?: string; // regex (replaces anchor_regex)
|
|
171
|
+
anchor_flags?: string;
|
|
172
|
+
anchor_last?: boolean;
|
|
173
|
+
anchor_context?: {
|
|
174
|
+
prev?: string;
|
|
175
|
+
next?: string;
|
|
176
|
+
prev_flags?: string;
|
|
177
|
+
next_flags?: string;
|
|
178
|
+
};
|
|
179
|
+
lines?: number;
|
|
180
|
+
until_regex?: string; // kept for anchor-based extension
|
|
181
|
+
until_regex_flags?: string;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/** v3 regex condition against a section (or full screen). */
|
|
185
|
+
export interface RegexCondition {
|
|
186
|
+
section?: string;
|
|
187
|
+
matches: string; // regex string
|
|
188
|
+
flags?: string;
|
|
189
|
+
cursor_row_min?: number;
|
|
190
|
+
cursor_row_max?: number;
|
|
191
|
+
cursor_col_min?: number;
|
|
192
|
+
cursor_col_max?: number;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/** v3 delta condition: N lines above cursor changed vs prevLines.
|
|
196
|
+
* changed:false + stable_ms: region must be stable for at least N ms. */
|
|
197
|
+
export interface ChangedCondition {
|
|
198
|
+
cursor_above: number;
|
|
199
|
+
changed: boolean;
|
|
200
|
+
/** Only for changed:false — region must have been stable for this many ms. */
|
|
201
|
+
stable_ms?: number;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
/** v3 AND composite. */
|
|
205
|
+
export interface AllCondition {
|
|
206
|
+
all: Condition[];
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
/** v3 OR composite. */
|
|
210
|
+
export interface AnyCondition {
|
|
211
|
+
any: Condition[];
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
export type Condition = RegexCondition | ChangedCondition | AllCondition | AnyCondition;
|
|
215
|
+
|
|
216
|
+
/** v3 extract_title config. */
|
|
217
|
+
export interface ExtractTitle {
|
|
218
|
+
section?: string;
|
|
219
|
+
regex?: string;
|
|
220
|
+
flags?: string;
|
|
221
|
+
first_line?: true;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
/** v3 extract_buttons config. */
|
|
225
|
+
export interface ExtractButtons {
|
|
226
|
+
section?: string;
|
|
227
|
+
pattern: string;
|
|
228
|
+
flags?: string;
|
|
229
|
+
key_for_index: string;
|
|
230
|
+
min_count?: number;
|
|
231
|
+
continuation_lines?: boolean;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
/** v3 state. */
|
|
235
|
+
export interface SpecStateV3 {
|
|
236
|
+
id: string;
|
|
237
|
+
label: string;
|
|
238
|
+
when: AllCondition | AnyCondition;
|
|
239
|
+
extract?: {
|
|
240
|
+
title?: ExtractTitle;
|
|
241
|
+
buttons?: ExtractButtons;
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
246
|
+
// CliSpec — v3 (the canonical runtime type after loading)
|
|
247
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
248
|
+
|
|
249
|
+
export interface CliSpec {
|
|
250
|
+
$schema: 'adhdev:cli/spec@3';
|
|
251
|
+
id: string;
|
|
252
|
+
name: string;
|
|
253
|
+
binary: string;
|
|
254
|
+
spawn_args?: string[];
|
|
255
|
+
env?: Record<string, string>;
|
|
256
|
+
cli_version_range?: string;
|
|
257
|
+
send_message: {
|
|
258
|
+
submit_key: string;
|
|
259
|
+
delay_ms_before_submit?: number;
|
|
260
|
+
delay_ms_per_char?: number;
|
|
261
|
+
};
|
|
262
|
+
sections: Record<string, SectionDef>;
|
|
263
|
+
states: SpecStateV3[];
|
|
264
|
+
default_state: string;
|
|
265
|
+
control_bar?: Control[];
|
|
266
|
+
notifications?: NotificationRule[];
|
|
267
|
+
delegate?: DelegateTrigger[];
|
|
268
|
+
native_history?: NativeHistoryConfig;
|
|
269
|
+
requiresFinalAssistantBeforeIdle?: boolean;
|
|
270
|
+
/**
|
|
271
|
+
* Per-spec timing knobs. Replaces v1 `debounce`.
|
|
272
|
+
* Also accessible via the legacy `debounce` alias in the driver for
|
|
273
|
+
* backward compat with older callers.
|
|
274
|
+
*/
|
|
275
|
+
timing?: {
|
|
276
|
+
busy_hold_ms?: number;
|
|
277
|
+
idle_hold_ms?: number;
|
|
278
|
+
startup_grace_ms?: number;
|
|
279
|
+
/** Suppress idle downshift while the screen is actively changing.
|
|
280
|
+
* When set, any PTY frame that changes the screen resets a timer;
|
|
281
|
+
* idle transitions (busy_hold expiry and completion_idle_after) are
|
|
282
|
+
* blocked until the screen has been stable for this many ms. */
|
|
283
|
+
screen_active_hold_ms?: number;
|
|
284
|
+
completion_marker?: {
|
|
285
|
+
section?: string;
|
|
286
|
+
matches: string;
|
|
287
|
+
flags?: string;
|
|
288
|
+
hold_ms: number;
|
|
289
|
+
force_after_ms?: number;
|
|
290
|
+
};
|
|
291
|
+
};
|
|
292
|
+
/**
|
|
293
|
+
* Legacy alias: v1 callers (tests, tooling) may read `debounce`.
|
|
294
|
+
* The loader populates both `timing` and `debounce` pointing at the
|
|
295
|
+
* same object so callers that use either field see consistent values.
|
|
296
|
+
* @deprecated Use `timing` instead.
|
|
297
|
+
*/
|
|
298
|
+
debounce?: {
|
|
299
|
+
busy_hold_ms?: number;
|
|
300
|
+
idle_hold_ms?: number;
|
|
301
|
+
startup_grace_ms?: number;
|
|
302
|
+
screen_active_hold_ms?: number;
|
|
303
|
+
/**
|
|
304
|
+
* Legacy field name for completion_marker. Populated by the loader
|
|
305
|
+
* from `timing.completion_marker` for backward compat.
|
|
306
|
+
*/
|
|
307
|
+
completion_idle_after?: {
|
|
308
|
+
section?: string;
|
|
309
|
+
regex: string;
|
|
310
|
+
flags?: string;
|
|
311
|
+
hold_ms: number;
|
|
312
|
+
force_after_ms?: number;
|
|
313
|
+
};
|
|
314
|
+
};
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
318
|
+
// v1 CliSpec raw shape (for migration only — not exported as the primary type)
|
|
319
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
320
|
+
|
|
321
|
+
/** Raw v1 spec shape as loaded from JSON. Used only in migrateV1toV3. */
|
|
322
|
+
export interface RawCliSpecV1 {
|
|
323
|
+
$schema: 'adhdev:cli/spec@1';
|
|
324
|
+
id: string;
|
|
325
|
+
name: string;
|
|
326
|
+
binary: string;
|
|
327
|
+
spawn_args?: string[];
|
|
328
|
+
env?: Record<string, string>;
|
|
329
|
+
cli_version_range?: string;
|
|
330
|
+
send_message: {
|
|
331
|
+
submit_key: string;
|
|
332
|
+
delay_ms_before_submit?: number;
|
|
333
|
+
delay_ms_per_char?: number;
|
|
334
|
+
};
|
|
335
|
+
layout: { sections: Section[] };
|
|
336
|
+
states: Array<{
|
|
337
|
+
id: string;
|
|
338
|
+
label: string;
|
|
339
|
+
when: SectionRegex;
|
|
340
|
+
extract_title?: SectionRegex;
|
|
341
|
+
modal_buttons?: ModalButtonsRule;
|
|
342
|
+
}>;
|
|
343
|
+
default_state: string;
|
|
344
|
+
control_bar?: Control[];
|
|
345
|
+
notifications?: NotificationRule[];
|
|
346
|
+
delegate?: DelegateTrigger[];
|
|
347
|
+
native_history?: NativeHistoryConfig;
|
|
348
|
+
requiresFinalAssistantBeforeIdle?: boolean;
|
|
349
|
+
debounce?: {
|
|
350
|
+
busy_hold_ms?: number;
|
|
351
|
+
idle_hold_ms?: number;
|
|
352
|
+
startup_grace_ms?: number;
|
|
353
|
+
completion_idle_after?: {
|
|
354
|
+
section?: string;
|
|
355
|
+
regex: string;
|
|
356
|
+
flags?: string;
|
|
357
|
+
hold_ms: number;
|
|
358
|
+
force_after_ms?: number;
|
|
359
|
+
};
|
|
360
|
+
};
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
// Keep SpecState as alias for backward compat with cli-adapter.ts and other code
|
|
364
|
+
// that imports SpecState from types.ts. In v3 we use SpecStateV3.
|
|
365
|
+
export type SpecState = SpecStateV3;
|