@the-open-engine/zeroshot 5.4.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/CHANGELOG.md +539 -0
- package/LICENSE +21 -0
- package/README.md +508 -0
- package/cli/commands/inspect-render.js +135 -0
- package/cli/commands/inspect.js +294 -0
- package/cli/commands/providers.js +149 -0
- package/cli/index.js +5431 -0
- package/cli/lib/first-run.js +211 -0
- package/cli/lib/update-checker.js +281 -0
- package/cli/message-formatter-utils.js +75 -0
- package/cli/message-formatters-normal.js +275 -0
- package/cli/message-formatters-watch.js +185 -0
- package/cluster-templates/base-templates/debug-workflow.json +422 -0
- package/cluster-templates/base-templates/full-workflow.json +727 -0
- package/cluster-templates/base-templates/heavy-validation.json +272 -0
- package/cluster-templates/base-templates/quick-validation.json +285 -0
- package/cluster-templates/base-templates/single-worker.json +71 -0
- package/cluster-templates/base-templates/worker-validator.json +230 -0
- package/cluster-templates/conductor-bootstrap.json +130 -0
- package/docker/zeroshot-cluster/Dockerfile +153 -0
- package/docker/zeroshot-cluster/pre-baked-deps.json +28 -0
- package/lib/agent-cli-provider/adapters/claude-parser.d.ts +3 -0
- package/lib/agent-cli-provider/adapters/claude-parser.d.ts.map +1 -0
- package/lib/agent-cli-provider/adapters/claude-parser.js +122 -0
- package/lib/agent-cli-provider/adapters/claude-parser.js.map +1 -0
- package/lib/agent-cli-provider/adapters/claude-recovery.d.ts +15 -0
- package/lib/agent-cli-provider/adapters/claude-recovery.d.ts.map +1 -0
- package/lib/agent-cli-provider/adapters/claude-recovery.js +165 -0
- package/lib/agent-cli-provider/adapters/claude-recovery.js.map +1 -0
- package/lib/agent-cli-provider/adapters/claude.d.ts +3 -0
- package/lib/agent-cli-provider/adapters/claude.d.ts.map +1 -0
- package/lib/agent-cli-provider/adapters/claude.js +181 -0
- package/lib/agent-cli-provider/adapters/claude.js.map +1 -0
- package/lib/agent-cli-provider/adapters/codex-parser.d.ts +3 -0
- package/lib/agent-cli-provider/adapters/codex-parser.d.ts.map +1 -0
- package/lib/agent-cli-provider/adapters/codex-parser.js +192 -0
- package/lib/agent-cli-provider/adapters/codex-parser.js.map +1 -0
- package/lib/agent-cli-provider/adapters/codex.d.ts +3 -0
- package/lib/agent-cli-provider/adapters/codex.d.ts.map +1 -0
- package/lib/agent-cli-provider/adapters/codex.js +151 -0
- package/lib/agent-cli-provider/adapters/codex.js.map +1 -0
- package/lib/agent-cli-provider/adapters/common.d.ts +28 -0
- package/lib/agent-cli-provider/adapters/common.d.ts.map +1 -0
- package/lib/agent-cli-provider/adapters/common.js +71 -0
- package/lib/agent-cli-provider/adapters/common.js.map +1 -0
- package/lib/agent-cli-provider/adapters/gemini.d.ts +3 -0
- package/lib/agent-cli-provider/adapters/gemini.d.ts.map +1 -0
- package/lib/agent-cli-provider/adapters/gemini.js +176 -0
- package/lib/agent-cli-provider/adapters/gemini.js.map +1 -0
- package/lib/agent-cli-provider/adapters/index.d.ts +9 -0
- package/lib/agent-cli-provider/adapters/index.d.ts.map +1 -0
- package/lib/agent-cli-provider/adapters/index.js +95 -0
- package/lib/agent-cli-provider/adapters/index.js.map +1 -0
- package/lib/agent-cli-provider/adapters/opencode.d.ts +3 -0
- package/lib/agent-cli-provider/adapters/opencode.d.ts.map +1 -0
- package/lib/agent-cli-provider/adapters/opencode.js +228 -0
- package/lib/agent-cli-provider/adapters/opencode.js.map +1 -0
- package/lib/agent-cli-provider/contract-actions.d.ts +5 -0
- package/lib/agent-cli-provider/contract-actions.d.ts.map +1 -0
- package/lib/agent-cli-provider/contract-actions.js +140 -0
- package/lib/agent-cli-provider/contract-actions.js.map +1 -0
- package/lib/agent-cli-provider/contract-env.d.ts +11 -0
- package/lib/agent-cli-provider/contract-env.d.ts.map +1 -0
- package/lib/agent-cli-provider/contract-env.js +113 -0
- package/lib/agent-cli-provider/contract-env.js.map +1 -0
- package/lib/agent-cli-provider/contract-envelope.d.ts +49 -0
- package/lib/agent-cli-provider/contract-envelope.d.ts.map +1 -0
- package/lib/agent-cli-provider/contract-envelope.js +52 -0
- package/lib/agent-cli-provider/contract-envelope.js.map +1 -0
- package/lib/agent-cli-provider/contract-errors.d.ts +22 -0
- package/lib/agent-cli-provider/contract-errors.d.ts.map +1 -0
- package/lib/agent-cli-provider/contract-errors.js +71 -0
- package/lib/agent-cli-provider/contract-errors.js.map +1 -0
- package/lib/agent-cli-provider/contract-fallback.d.ts +7 -0
- package/lib/agent-cli-provider/contract-fallback.d.ts.map +1 -0
- package/lib/agent-cli-provider/contract-fallback.js +102 -0
- package/lib/agent-cli-provider/contract-fallback.js.map +1 -0
- package/lib/agent-cli-provider/contract-invoke.d.ts +5 -0
- package/lib/agent-cli-provider/contract-invoke.d.ts.map +1 -0
- package/lib/agent-cli-provider/contract-invoke.js +89 -0
- package/lib/agent-cli-provider/contract-invoke.js.map +1 -0
- package/lib/agent-cli-provider/contract-options.d.ts +3 -0
- package/lib/agent-cli-provider/contract-options.d.ts.map +1 -0
- package/lib/agent-cli-provider/contract-options.js +140 -0
- package/lib/agent-cli-provider/contract-options.js.map +1 -0
- package/lib/agent-cli-provider/contract-parse.d.ts +15 -0
- package/lib/agent-cli-provider/contract-parse.d.ts.map +1 -0
- package/lib/agent-cli-provider/contract-parse.js +81 -0
- package/lib/agent-cli-provider/contract-parse.js.map +1 -0
- package/lib/agent-cli-provider/contract-support.d.ts +18 -0
- package/lib/agent-cli-provider/contract-support.d.ts.map +1 -0
- package/lib/agent-cli-provider/contract-support.js +154 -0
- package/lib/agent-cli-provider/contract-support.js.map +1 -0
- package/lib/agent-cli-provider/contract.d.ts +13 -0
- package/lib/agent-cli-provider/contract.d.ts.map +1 -0
- package/lib/agent-cli-provider/contract.js +30 -0
- package/lib/agent-cli-provider/contract.js.map +1 -0
- package/lib/agent-cli-provider/env-safety.d.ts +11 -0
- package/lib/agent-cli-provider/env-safety.d.ts.map +1 -0
- package/lib/agent-cli-provider/env-safety.js +83 -0
- package/lib/agent-cli-provider/env-safety.js.map +1 -0
- package/lib/agent-cli-provider/errors.d.ts +5 -0
- package/lib/agent-cli-provider/errors.d.ts.map +1 -0
- package/lib/agent-cli-provider/errors.js +115 -0
- package/lib/agent-cli-provider/errors.js.map +1 -0
- package/lib/agent-cli-provider/executable.d.ts +3 -0
- package/lib/agent-cli-provider/executable.d.ts.map +1 -0
- package/lib/agent-cli-provider/executable.js +24 -0
- package/lib/agent-cli-provider/executable.js.map +1 -0
- package/lib/agent-cli-provider/index.d.ts +8 -0
- package/lib/agent-cli-provider/index.d.ts.map +1 -0
- package/lib/agent-cli-provider/index.js +31 -0
- package/lib/agent-cli-provider/index.js.map +1 -0
- package/lib/agent-cli-provider/invoke-evidence.d.ts +4 -0
- package/lib/agent-cli-provider/invoke-evidence.d.ts.map +1 -0
- package/lib/agent-cli-provider/invoke-evidence.js +17 -0
- package/lib/agent-cli-provider/invoke-evidence.js.map +1 -0
- package/lib/agent-cli-provider/json.d.ts +16 -0
- package/lib/agent-cli-provider/json.d.ts.map +1 -0
- package/lib/agent-cli-provider/json.js +110 -0
- package/lib/agent-cli-provider/json.js.map +1 -0
- package/lib/agent-cli-provider/log-prefix.d.ts +2 -0
- package/lib/agent-cli-provider/log-prefix.d.ts.map +1 -0
- package/lib/agent-cli-provider/log-prefix.js +22 -0
- package/lib/agent-cli-provider/log-prefix.js.map +1 -0
- package/lib/agent-cli-provider/process-runner.d.ts +17 -0
- package/lib/agent-cli-provider/process-runner.d.ts.map +1 -0
- package/lib/agent-cli-provider/process-runner.js +89 -0
- package/lib/agent-cli-provider/process-runner.js.map +1 -0
- package/lib/agent-cli-provider/redaction.d.ts +9 -0
- package/lib/agent-cli-provider/redaction.d.ts.map +1 -0
- package/lib/agent-cli-provider/redaction.js +227 -0
- package/lib/agent-cli-provider/redaction.js.map +1 -0
- package/lib/agent-cli-provider/schema.d.ts +5 -0
- package/lib/agent-cli-provider/schema.d.ts.map +1 -0
- package/lib/agent-cli-provider/schema.js +136 -0
- package/lib/agent-cli-provider/schema.js.map +1 -0
- package/lib/agent-cli-provider/single-agent-runtime.d.ts +15 -0
- package/lib/agent-cli-provider/single-agent-runtime.d.ts.map +1 -0
- package/lib/agent-cli-provider/single-agent-runtime.js +228 -0
- package/lib/agent-cli-provider/single-agent-runtime.js.map +1 -0
- package/lib/agent-cli-provider/types.d.ts +194 -0
- package/lib/agent-cli-provider/types.d.ts.map +1 -0
- package/lib/agent-cli-provider/types.js +12 -0
- package/lib/agent-cli-provider/types.js.map +1 -0
- package/lib/completion.js +174 -0
- package/lib/detached-startup.js +220 -0
- package/lib/docker-config.js +220 -0
- package/lib/git-remote-utils.js +165 -0
- package/lib/id-detector.js +55 -0
- package/lib/provider-defaults.js +62 -0
- package/lib/provider-detection.js +59 -0
- package/lib/provider-names.js +57 -0
- package/lib/repo-settings.js +69 -0
- package/lib/settings/claude-auth.js +78 -0
- package/lib/settings.js +542 -0
- package/lib/start-cluster.js +321 -0
- package/lib/stream-json-parser.js +67 -0
- package/package.json +162 -0
- package/scripts/fix-node-pty-permissions.js +75 -0
- package/scripts/record-demo.sh +279 -0
- package/scripts/setup-merge-queue.sh +170 -0
- package/scripts/test-install.sh +40 -0
- package/scripts/validate-templates.js +107 -0
- package/src/agent/agent-config.js +266 -0
- package/src/agent/agent-context-builder.js +189 -0
- package/src/agent/agent-context-sections.js +338 -0
- package/src/agent/agent-context-sources.js +147 -0
- package/src/agent/agent-hook-executor.js +721 -0
- package/src/agent/agent-input-injector.js +141 -0
- package/src/agent/agent-lifecycle.js +982 -0
- package/src/agent/agent-quality-gate-schema.js +93 -0
- package/src/agent/agent-quality-gates-context.js +51 -0
- package/src/agent/agent-stuck-detector.js +256 -0
- package/src/agent/agent-task-executor.js +2028 -0
- package/src/agent/agent-trigger-evaluator.js +67 -0
- package/src/agent/context-metrics.js +160 -0
- package/src/agent/context-pack-builder.js +367 -0
- package/src/agent/context-replay-policy.js +51 -0
- package/src/agent/guidance-queue.js +77 -0
- package/src/agent/output-extraction.js +367 -0
- package/src/agent/output-reformatter.js +175 -0
- package/src/agent/pr-verification.js +653 -0
- package/src/agent/rate-limit-backoff.js +82 -0
- package/src/agent/schema-utils.js +146 -0
- package/src/agent/validation-platform.js +35 -0
- package/src/agent-cli-provider/adapters/claude-parser.ts +133 -0
- package/src/agent-cli-provider/adapters/claude-recovery.ts +203 -0
- package/src/agent-cli-provider/adapters/claude.ts +247 -0
- package/src/agent-cli-provider/adapters/codex-parser.ts +211 -0
- package/src/agent-cli-provider/adapters/codex.ts +217 -0
- package/src/agent-cli-provider/adapters/common.ts +124 -0
- package/src/agent-cli-provider/adapters/gemini.ts +243 -0
- package/src/agent-cli-provider/adapters/index.ts +126 -0
- package/src/agent-cli-provider/adapters/opencode.ts +286 -0
- package/src/agent-cli-provider/contract-actions.ts +150 -0
- package/src/agent-cli-provider/contract-env.ts +111 -0
- package/src/agent-cli-provider/contract-envelope.ts +110 -0
- package/src/agent-cli-provider/contract-errors.ts +66 -0
- package/src/agent-cli-provider/contract-fallback.ts +121 -0
- package/src/agent-cli-provider/contract-invoke.ts +104 -0
- package/src/agent-cli-provider/contract-options.ts +173 -0
- package/src/agent-cli-provider/contract-parse.ts +94 -0
- package/src/agent-cli-provider/contract-support.ts +167 -0
- package/src/agent-cli-provider/contract.ts +56 -0
- package/src/agent-cli-provider/env-safety.ts +82 -0
- package/src/agent-cli-provider/errors.ts +122 -0
- package/src/agent-cli-provider/executable.ts +24 -0
- package/src/agent-cli-provider/index.ts +83 -0
- package/src/agent-cli-provider/invoke-evidence.ts +18 -0
- package/src/agent-cli-provider/json.ts +114 -0
- package/src/agent-cli-provider/log-prefix.ts +20 -0
- package/src/agent-cli-provider/process-runner.ts +145 -0
- package/src/agent-cli-provider/redaction.ts +282 -0
- package/src/agent-cli-provider/schema.ts +115 -0
- package/src/agent-cli-provider/single-agent-runtime.ts +311 -0
- package/src/agent-cli-provider/types.ts +237 -0
- package/src/agent-wrapper.js +615 -0
- package/src/agents/git-pusher-template.js +705 -0
- package/src/attach/attach-client.js +438 -0
- package/src/attach/attach-server.js +543 -0
- package/src/attach/index.js +37 -0
- package/src/attach/protocol.js +220 -0
- package/src/attach/ring-buffer.js +121 -0
- package/src/attach/send-input.js +88 -0
- package/src/attach/socket-discovery.js +267 -0
- package/src/claude-task-runner.js +661 -0
- package/src/config-router.js +89 -0
- package/src/config-validator.js +2202 -0
- package/src/copy-worker.js +43 -0
- package/src/guidance-topics.js +10 -0
- package/src/input-helpers.js +65 -0
- package/src/isolation-manager.js +1734 -0
- package/src/issue-providers/README.md +305 -0
- package/src/issue-providers/azure-devops-provider.js +307 -0
- package/src/issue-providers/base-provider.js +232 -0
- package/src/issue-providers/github-provider.js +210 -0
- package/src/issue-providers/gitlab-provider.js +262 -0
- package/src/issue-providers/index.js +196 -0
- package/src/issue-providers/jira-provider.js +260 -0
- package/src/ledger.js +692 -0
- package/src/lib/gc.js +232 -0
- package/src/lib/safe-exec.js +88 -0
- package/src/logic-engine.js +201 -0
- package/src/message-buffer.js +81 -0
- package/src/message-bus-bridge.js +144 -0
- package/src/message-bus.js +256 -0
- package/src/name-generator.js +232 -0
- package/src/orchestrator.js +3924 -0
- package/src/preflight.js +712 -0
- package/src/process-metrics.js +608 -0
- package/src/providers/anthropic/index.js +3 -0
- package/src/providers/base-provider.js +355 -0
- package/src/providers/capabilities.js +60 -0
- package/src/providers/google/index.js +3 -0
- package/src/providers/index.js +293 -0
- package/src/providers/openai/index.js +3 -0
- package/src/providers/opencode/index.js +3 -0
- package/src/quality-gates.js +143 -0
- package/src/schemas/sub-cluster.js +208 -0
- package/src/state-snapshot.js +398 -0
- package/src/state-snapshotter.js +142 -0
- package/src/status-footer.js +1026 -0
- package/src/sub-cluster-wrapper.js +693 -0
- package/src/task-runner.js +30 -0
- package/src/template-resolver.js +425 -0
- package/src/template-validation/index.js +338 -0
- package/src/template-validation/simulate-consensus-gates.js +324 -0
- package/src/template-validation/simulate-random-topology.js +541 -0
- package/src/template-validation/simulate-two-stage-validation.js +270 -0
- package/src/worktree-claude-config.js +135 -0
- package/src/worktree-tooling-env.js +150 -0
- package/task-lib/attachable-watcher.js +381 -0
- package/task-lib/commands/clean.js +50 -0
- package/task-lib/commands/episodes.js +105 -0
- package/task-lib/commands/get-log-path.js +23 -0
- package/task-lib/commands/kill.js +32 -0
- package/task-lib/commands/list.js +105 -0
- package/task-lib/commands/logs.js +439 -0
- package/task-lib/commands/resume.js +42 -0
- package/task-lib/commands/run.js +57 -0
- package/task-lib/commands/schedule.js +105 -0
- package/task-lib/commands/scheduler-cmd.js +96 -0
- package/task-lib/commands/schedules.js +148 -0
- package/task-lib/commands/status.js +44 -0
- package/task-lib/commands/unschedule.js +16 -0
- package/task-lib/completion.js +9 -0
- package/task-lib/config.js +11 -0
- package/task-lib/name-generator.js +230 -0
- package/task-lib/package.json +3 -0
- package/task-lib/provider-helper-runtime.js +29 -0
- package/task-lib/runner.js +190 -0
- package/task-lib/scheduler.js +252 -0
- package/task-lib/store.js +529 -0
- package/task-lib/watcher.js +305 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"single-agent-runtime.js","sourceRoot":"","sources":["../../src/agent-cli-provider/single-agent-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
export type ProviderId = 'claude' | 'codex' | 'gemini' | 'opencode';
|
|
2
|
+
export type ProviderAlias = 'anthropic' | 'openai' | 'google';
|
|
3
|
+
export type KnownProviderName = ProviderId | ProviderAlias;
|
|
4
|
+
export type ModelLevel = 'level1' | 'level2' | 'level3';
|
|
5
|
+
export type ReasoningEffort = 'low' | 'medium' | 'high' | 'xhigh';
|
|
6
|
+
export type OutputFormat = 'text' | 'json' | 'stream-json';
|
|
7
|
+
export interface AgentCliProviderHelperMetadata {
|
|
8
|
+
readonly packageName: '@the-open-engine/zeroshot';
|
|
9
|
+
readonly buildOutputDir: 'lib/agent-cli-provider';
|
|
10
|
+
readonly contractVersion: 1;
|
|
11
|
+
readonly adapterVersion: string;
|
|
12
|
+
}
|
|
13
|
+
export interface ModelCatalogEntry {
|
|
14
|
+
readonly rank: number;
|
|
15
|
+
}
|
|
16
|
+
export interface LevelModelSpec {
|
|
17
|
+
readonly rank: number;
|
|
18
|
+
readonly model: string | null;
|
|
19
|
+
readonly reasoningEffort?: ReasoningEffort;
|
|
20
|
+
}
|
|
21
|
+
export interface ModelSpec {
|
|
22
|
+
readonly level?: ModelLevel;
|
|
23
|
+
readonly model?: string | null;
|
|
24
|
+
readonly reasoningEffort?: ReasoningEffort;
|
|
25
|
+
}
|
|
26
|
+
export interface ResolvedModelSpec {
|
|
27
|
+
readonly level: ModelLevel;
|
|
28
|
+
readonly model: string | null;
|
|
29
|
+
readonly reasoningEffort: ReasoningEffort | undefined;
|
|
30
|
+
}
|
|
31
|
+
export type LevelOverrides = Readonly<Partial<Record<ModelLevel, ModelSpec>>>;
|
|
32
|
+
export interface BaseCliFeatures {
|
|
33
|
+
readonly provider?: ProviderId;
|
|
34
|
+
readonly unknown?: boolean;
|
|
35
|
+
}
|
|
36
|
+
export interface ClaudeCliFeatures extends BaseCliFeatures {
|
|
37
|
+
readonly provider: 'claude';
|
|
38
|
+
readonly supportsOutputFormat: boolean;
|
|
39
|
+
readonly supportsStreamJson: boolean;
|
|
40
|
+
readonly supportsJsonSchema: boolean;
|
|
41
|
+
readonly supportsAutoApprove: boolean;
|
|
42
|
+
readonly supportsIncludePartials: boolean;
|
|
43
|
+
readonly supportsVerbose: boolean;
|
|
44
|
+
readonly supportsModel: boolean;
|
|
45
|
+
}
|
|
46
|
+
export interface CodexCliFeatures extends BaseCliFeatures {
|
|
47
|
+
readonly provider: 'codex';
|
|
48
|
+
readonly supportsJson: boolean;
|
|
49
|
+
readonly supportsOutputSchema: boolean;
|
|
50
|
+
readonly supportsAutoApprove: boolean;
|
|
51
|
+
readonly supportsCwd: boolean;
|
|
52
|
+
readonly supportsConfigOverride: boolean;
|
|
53
|
+
readonly supportsModel: boolean;
|
|
54
|
+
readonly supportsSkipGitRepoCheck: boolean;
|
|
55
|
+
}
|
|
56
|
+
export interface GeminiCliFeatures extends BaseCliFeatures {
|
|
57
|
+
readonly provider: 'gemini';
|
|
58
|
+
readonly supportsStreamJson: boolean;
|
|
59
|
+
readonly supportsAutoApprove: boolean;
|
|
60
|
+
readonly supportsCwd: boolean;
|
|
61
|
+
readonly supportsModel: boolean;
|
|
62
|
+
}
|
|
63
|
+
export interface OpencodeCliFeatures extends BaseCliFeatures {
|
|
64
|
+
readonly provider: 'opencode';
|
|
65
|
+
readonly supportsJson: boolean;
|
|
66
|
+
readonly supportsModel: boolean;
|
|
67
|
+
readonly supportsVariant: boolean;
|
|
68
|
+
readonly supportsCwd: boolean;
|
|
69
|
+
readonly supportsAutoApprove: false;
|
|
70
|
+
}
|
|
71
|
+
export type ProviderCliFeatures = ClaudeCliFeatures | CodexCliFeatures | GeminiCliFeatures | OpencodeCliFeatures;
|
|
72
|
+
export interface CliFeatureOverrides {
|
|
73
|
+
readonly supportsOutputFormat?: boolean;
|
|
74
|
+
readonly supportsStreamJson?: boolean;
|
|
75
|
+
readonly supportsJsonSchema?: boolean;
|
|
76
|
+
readonly supportsAutoApprove?: boolean;
|
|
77
|
+
readonly supportsIncludePartials?: boolean;
|
|
78
|
+
readonly supportsVerbose?: boolean;
|
|
79
|
+
readonly supportsModel?: boolean;
|
|
80
|
+
readonly supportsJson?: boolean;
|
|
81
|
+
readonly supportsOutputSchema?: boolean;
|
|
82
|
+
readonly supportsCwd?: boolean;
|
|
83
|
+
readonly supportsConfigOverride?: boolean;
|
|
84
|
+
readonly supportsSkipGitRepoCheck?: boolean;
|
|
85
|
+
readonly supportsVariant?: boolean;
|
|
86
|
+
readonly unknown?: boolean;
|
|
87
|
+
}
|
|
88
|
+
export interface CleanupMetadata {
|
|
89
|
+
readonly kind: 'temp-file';
|
|
90
|
+
readonly provider: ProviderId;
|
|
91
|
+
readonly path: string;
|
|
92
|
+
readonly reason: 'output-schema';
|
|
93
|
+
}
|
|
94
|
+
export interface WarningMetadata {
|
|
95
|
+
readonly provider: ProviderId;
|
|
96
|
+
readonly code: string;
|
|
97
|
+
readonly message: string;
|
|
98
|
+
}
|
|
99
|
+
export interface RedactionMetadata {
|
|
100
|
+
readonly kind: 'env' | 'secret-key' | 'secret-value';
|
|
101
|
+
readonly key: string;
|
|
102
|
+
readonly source?: string;
|
|
103
|
+
}
|
|
104
|
+
export interface CommandSpec {
|
|
105
|
+
readonly binary: string;
|
|
106
|
+
readonly args: readonly string[];
|
|
107
|
+
readonly env: Readonly<Record<string, string>>;
|
|
108
|
+
readonly cwd?: string;
|
|
109
|
+
readonly cleanup?: readonly string[];
|
|
110
|
+
readonly cleanupMetadata: readonly CleanupMetadata[];
|
|
111
|
+
readonly warnings: readonly WarningMetadata[];
|
|
112
|
+
readonly redactions: readonly RedactionMetadata[];
|
|
113
|
+
}
|
|
114
|
+
export interface BuildProviderCommandOptions {
|
|
115
|
+
readonly modelSpec?: ModelSpec;
|
|
116
|
+
readonly outputFormat?: OutputFormat;
|
|
117
|
+
readonly jsonSchema?: unknown;
|
|
118
|
+
readonly cwd?: string;
|
|
119
|
+
readonly autoApprove?: boolean;
|
|
120
|
+
readonly resumeSessionId?: string;
|
|
121
|
+
readonly continueSession?: boolean;
|
|
122
|
+
readonly cliFeatures?: CliFeatureOverrides;
|
|
123
|
+
readonly authEnv?: Readonly<Record<string, string>>;
|
|
124
|
+
readonly strictSchema?: boolean;
|
|
125
|
+
}
|
|
126
|
+
export interface TextEvent {
|
|
127
|
+
readonly type: 'text';
|
|
128
|
+
readonly text: string;
|
|
129
|
+
}
|
|
130
|
+
export interface ThinkingEvent {
|
|
131
|
+
readonly type: 'thinking';
|
|
132
|
+
readonly text: string;
|
|
133
|
+
}
|
|
134
|
+
export interface ToolCallEvent {
|
|
135
|
+
readonly type: 'tool_call';
|
|
136
|
+
readonly toolName: string | null | undefined;
|
|
137
|
+
readonly toolId: string | null | undefined;
|
|
138
|
+
readonly input: unknown;
|
|
139
|
+
}
|
|
140
|
+
export interface ToolResultEvent {
|
|
141
|
+
readonly type: 'tool_result';
|
|
142
|
+
readonly toolId: string | null | undefined;
|
|
143
|
+
readonly content: unknown;
|
|
144
|
+
readonly isError: unknown;
|
|
145
|
+
}
|
|
146
|
+
export interface ResultEvent {
|
|
147
|
+
readonly type: 'result';
|
|
148
|
+
readonly success: boolean;
|
|
149
|
+
readonly result?: unknown;
|
|
150
|
+
readonly error?: unknown;
|
|
151
|
+
readonly cost?: unknown;
|
|
152
|
+
readonly duration?: unknown;
|
|
153
|
+
readonly inputTokens?: number;
|
|
154
|
+
readonly outputTokens?: number;
|
|
155
|
+
readonly cacheReadInputTokens?: number;
|
|
156
|
+
readonly cacheCreationInputTokens?: number;
|
|
157
|
+
readonly modelUsage?: unknown;
|
|
158
|
+
}
|
|
159
|
+
export type OutputEvent = TextEvent | ThinkingEvent | ToolCallEvent | ToolResultEvent | ResultEvent;
|
|
160
|
+
export type ProviderParseResult = OutputEvent | readonly OutputEvent[] | null;
|
|
161
|
+
export interface ProviderParserState {
|
|
162
|
+
provider: ProviderId;
|
|
163
|
+
lastToolId: string | null | undefined;
|
|
164
|
+
}
|
|
165
|
+
export type ErrorClassificationKind = 'status-retryable' | 'status-permanent' | 'code-retryable' | 'permanent-pattern' | 'retryable-pattern' | 'unknown-retryable';
|
|
166
|
+
export interface ErrorClassification {
|
|
167
|
+
readonly retryable: boolean;
|
|
168
|
+
readonly kind: ErrorClassificationKind;
|
|
169
|
+
readonly matchedPattern?: string;
|
|
170
|
+
}
|
|
171
|
+
export interface ProviderAdapter {
|
|
172
|
+
readonly id: ProviderId;
|
|
173
|
+
readonly displayName: string;
|
|
174
|
+
readonly binary: string;
|
|
175
|
+
readonly adapterVersion: string;
|
|
176
|
+
readonly credentialEnvKeys: readonly string[];
|
|
177
|
+
readonly modelCatalog: Readonly<Record<string, ModelCatalogEntry>>;
|
|
178
|
+
readonly levelMapping: Readonly<Record<ModelLevel, LevelModelSpec>>;
|
|
179
|
+
readonly defaultLevel: ModelLevel;
|
|
180
|
+
readonly defaultMaxLevel: ModelLevel;
|
|
181
|
+
readonly defaultMinLevel: ModelLevel;
|
|
182
|
+
detectCliFeatures(helpText?: string | null): ProviderCliFeatures;
|
|
183
|
+
buildCommand(context: string, options?: BuildProviderCommandOptions): CommandSpec;
|
|
184
|
+
parseEvent(line: string, state: ProviderParserState): ProviderParseResult;
|
|
185
|
+
createParserState(): ProviderParserState;
|
|
186
|
+
resolveModelSpec(level: ModelLevel, overrides?: LevelOverrides): ResolvedModelSpec;
|
|
187
|
+
validateModelId(modelId: string | null | undefined): string | null | undefined;
|
|
188
|
+
classifyError(error: unknown): ErrorClassification;
|
|
189
|
+
}
|
|
190
|
+
export declare class InvalidProviderModelError extends Error {
|
|
191
|
+
readonly permanent = true;
|
|
192
|
+
constructor(message: string);
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agent-cli-provider/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InvalidProviderModelError = void 0;
|
|
4
|
+
class InvalidProviderModelError extends Error {
|
|
5
|
+
permanent = true;
|
|
6
|
+
constructor(message) {
|
|
7
|
+
super(message);
|
|
8
|
+
this.name = 'InvalidProviderModelError';
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.InvalidProviderModelError = InvalidProviderModelError;
|
|
12
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/agent-cli-provider/types.ts"],"names":[],"mappings":";;;AAqOA,MAAa,yBAA0B,SAAQ,KAAK;IACzC,SAAS,GAAG,IAAI,CAAC;IAE1B,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAPD,8DAOC"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
const omelette = require('omelette');
|
|
2
|
+
const fs = require('fs');
|
|
3
|
+
const path = require('path');
|
|
4
|
+
|
|
5
|
+
function setupCompletion() {
|
|
6
|
+
const complete = omelette('zeroshot');
|
|
7
|
+
|
|
8
|
+
complete.on('start', ({ reply }) => {
|
|
9
|
+
reply(['--issue', '--text', '--config']);
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
complete.on('list', ({ reply }) => {
|
|
13
|
+
reply([]);
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
complete.on('status', ({ reply }) => {
|
|
17
|
+
// Complete with cluster IDs
|
|
18
|
+
try {
|
|
19
|
+
const clustersDir = path.join(process.env.HOME, '.zeroshot', 'clusters');
|
|
20
|
+
if (fs.existsSync(clustersDir)) {
|
|
21
|
+
const clusterIds = fs
|
|
22
|
+
.readdirSync(clustersDir)
|
|
23
|
+
.filter((f) => f.endsWith('.json'))
|
|
24
|
+
.map((f) => f.replace('.json', ''));
|
|
25
|
+
reply(clusterIds);
|
|
26
|
+
} else {
|
|
27
|
+
reply([]);
|
|
28
|
+
}
|
|
29
|
+
} catch {
|
|
30
|
+
reply([]);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
complete.on('logs', ({ reply }) => {
|
|
35
|
+
// Complete with cluster IDs or flags
|
|
36
|
+
try {
|
|
37
|
+
const clustersDir = path.join(process.env.HOME, '.zeroshot', 'clusters');
|
|
38
|
+
const completions = ['--follow', '-f', '--limit', '-n'];
|
|
39
|
+
|
|
40
|
+
if (fs.existsSync(clustersDir)) {
|
|
41
|
+
const clusterIds = fs
|
|
42
|
+
.readdirSync(clustersDir)
|
|
43
|
+
.filter((f) => f.endsWith('.json'))
|
|
44
|
+
.map((f) => f.replace('.json', ''));
|
|
45
|
+
reply([...clusterIds, ...completions]);
|
|
46
|
+
} else {
|
|
47
|
+
reply(completions);
|
|
48
|
+
}
|
|
49
|
+
} catch {
|
|
50
|
+
reply(['--follow', '-f', '--limit', '-n']);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
complete.on('stop', ({ reply }) => {
|
|
55
|
+
// Complete with active cluster IDs
|
|
56
|
+
try {
|
|
57
|
+
const clustersDir = path.join(process.env.HOME, '.zeroshot', 'clusters');
|
|
58
|
+
if (fs.existsSync(clustersDir)) {
|
|
59
|
+
const clusterIds = fs
|
|
60
|
+
.readdirSync(clustersDir)
|
|
61
|
+
.filter((f) => f.endsWith('.json'))
|
|
62
|
+
.map((f) => f.replace('.json', ''));
|
|
63
|
+
reply(clusterIds);
|
|
64
|
+
} else {
|
|
65
|
+
reply([]);
|
|
66
|
+
}
|
|
67
|
+
} catch {
|
|
68
|
+
reply([]);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
complete.on('kill', ({ reply }) => {
|
|
73
|
+
// Complete with active cluster IDs
|
|
74
|
+
try {
|
|
75
|
+
const clustersDir = path.join(process.env.HOME, '.zeroshot', 'clusters');
|
|
76
|
+
if (fs.existsSync(clustersDir)) {
|
|
77
|
+
const clusterIds = fs
|
|
78
|
+
.readdirSync(clustersDir)
|
|
79
|
+
.filter((f) => f.endsWith('.json'))
|
|
80
|
+
.map((f) => f.replace('.json', ''));
|
|
81
|
+
reply(clusterIds);
|
|
82
|
+
} else {
|
|
83
|
+
reply([]);
|
|
84
|
+
}
|
|
85
|
+
} catch {
|
|
86
|
+
reply([]);
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
complete.on('export', ({ reply }) => {
|
|
91
|
+
// Complete with cluster IDs
|
|
92
|
+
try {
|
|
93
|
+
const clustersDir = path.join(process.env.HOME, '.zeroshot', 'clusters');
|
|
94
|
+
if (fs.existsSync(clustersDir)) {
|
|
95
|
+
const clusterIds = fs
|
|
96
|
+
.readdirSync(clustersDir)
|
|
97
|
+
.filter((f) => f.endsWith('.json'))
|
|
98
|
+
.map((f) => f.replace('.json', ''));
|
|
99
|
+
reply(clusterIds);
|
|
100
|
+
} else {
|
|
101
|
+
reply([]);
|
|
102
|
+
}
|
|
103
|
+
} catch {
|
|
104
|
+
reply([]);
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
complete.on('finish', ({ reply }) => {
|
|
109
|
+
// Complete with cluster IDs and flags
|
|
110
|
+
try {
|
|
111
|
+
const clustersDir = path.join(process.env.HOME, '.zeroshot', 'clusters');
|
|
112
|
+
const completions = ['--merge', '--pr', '--push'];
|
|
113
|
+
|
|
114
|
+
if (fs.existsSync(clustersDir)) {
|
|
115
|
+
const clusterIds = fs
|
|
116
|
+
.readdirSync(clustersDir)
|
|
117
|
+
.filter((f) => f.endsWith('.json'))
|
|
118
|
+
.map((f) => f.replace('.json', ''));
|
|
119
|
+
reply([...clusterIds, ...completions]);
|
|
120
|
+
} else {
|
|
121
|
+
reply(completions);
|
|
122
|
+
}
|
|
123
|
+
} catch {
|
|
124
|
+
reply(['--merge', '--pr', '--push']);
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
complete.on('resume', ({ reply }) => {
|
|
129
|
+
// Complete with cluster IDs
|
|
130
|
+
try {
|
|
131
|
+
const clustersDir = path.join(process.env.HOME, '.zeroshot', 'clusters');
|
|
132
|
+
if (fs.existsSync(clustersDir)) {
|
|
133
|
+
const clusterIds = fs
|
|
134
|
+
.readdirSync(clustersDir)
|
|
135
|
+
.filter((f) => f.endsWith('.json'))
|
|
136
|
+
.map((f) => f.replace('.json', ''));
|
|
137
|
+
reply(clusterIds);
|
|
138
|
+
} else {
|
|
139
|
+
reply([]);
|
|
140
|
+
}
|
|
141
|
+
} catch {
|
|
142
|
+
reply([]);
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
complete.on('ui', ({ reply }) => {
|
|
147
|
+
reply(['--port']);
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
complete.on('watch', ({ reply }) => {
|
|
151
|
+
reply(['--filter', '--refresh-rate', 'running', 'stopped', 'all']);
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
// Default completion - show commands
|
|
155
|
+
complete.on('', ({ reply }) => {
|
|
156
|
+
reply([
|
|
157
|
+
'start',
|
|
158
|
+
'list',
|
|
159
|
+
'status',
|
|
160
|
+
'logs',
|
|
161
|
+
'stop',
|
|
162
|
+
'kill',
|
|
163
|
+
'finish',
|
|
164
|
+
'resume',
|
|
165
|
+
'export',
|
|
166
|
+
'ui',
|
|
167
|
+
'watch',
|
|
168
|
+
]);
|
|
169
|
+
});
|
|
170
|
+
|
|
171
|
+
complete.init();
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
module.exports = { setupCompletion };
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
const fs = require('fs');
|
|
2
|
+
const os = require('os');
|
|
3
|
+
const path = require('path');
|
|
4
|
+
const lockfile = require('proper-lockfile');
|
|
5
|
+
|
|
6
|
+
const DEFAULT_WAIT_TIMEOUT_SECONDS = 180;
|
|
7
|
+
const DEFAULT_WAIT_POLL_MS = 1000;
|
|
8
|
+
const CLUSTERS_LOCK_STALE_MS = 5000;
|
|
9
|
+
|
|
10
|
+
function getStorageDir(storageDir) {
|
|
11
|
+
return storageDir || path.join(os.homedir(), '.zeroshot');
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
function getClustersFilePath(storageDir) {
|
|
15
|
+
return path.join(getStorageDir(storageDir), 'clusters.json');
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function resolveWaitTimeoutMs(waitTimeoutSeconds) {
|
|
19
|
+
const parsed = Number(waitTimeoutSeconds);
|
|
20
|
+
if (!Number.isFinite(parsed) || parsed <= 0) {
|
|
21
|
+
return DEFAULT_WAIT_TIMEOUT_SECONDS * 1000;
|
|
22
|
+
}
|
|
23
|
+
return Math.floor(parsed * 1000);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function isProcessAlive(pid) {
|
|
27
|
+
if (!pid || !Number.isInteger(pid) || pid <= 0) {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
try {
|
|
31
|
+
process.kill(pid, 0);
|
|
32
|
+
return true;
|
|
33
|
+
} catch (error) {
|
|
34
|
+
return error && error.code === 'EPERM';
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function isClusterRegistered(clusterId, storageDir) {
|
|
39
|
+
const clustersFile = getClustersFilePath(storageDir);
|
|
40
|
+
if (!fs.existsSync(clustersFile)) {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
let parsed;
|
|
45
|
+
try {
|
|
46
|
+
const raw = fs.readFileSync(clustersFile, 'utf8');
|
|
47
|
+
parsed = JSON.parse(raw);
|
|
48
|
+
} catch {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return parsed !== null && typeof parsed === 'object' && Boolean(parsed[clusterId]);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function ensureStorageDir(storageDir) {
|
|
56
|
+
const resolvedStorageDir = getStorageDir(storageDir);
|
|
57
|
+
fs.mkdirSync(resolvedStorageDir, { recursive: true });
|
|
58
|
+
return resolvedStorageDir;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function ensureClustersFile(storageDir) {
|
|
62
|
+
const resolvedStorageDir = ensureStorageDir(storageDir);
|
|
63
|
+
const clustersFile = getClustersFilePath(resolvedStorageDir);
|
|
64
|
+
try {
|
|
65
|
+
fs.writeFileSync(clustersFile, '{}', { flag: 'wx', mode: 0o600 });
|
|
66
|
+
} catch (error) {
|
|
67
|
+
if (!error || error.code !== 'EEXIST') {
|
|
68
|
+
throw error;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return clustersFile;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
function readClustersFile(clustersFile) {
|
|
75
|
+
try {
|
|
76
|
+
return JSON.parse(fs.readFileSync(clustersFile, 'utf8'));
|
|
77
|
+
} catch {
|
|
78
|
+
return {};
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
async function updateClustersFile(storageDir, updater) {
|
|
83
|
+
const clustersFile = ensureClustersFile(storageDir);
|
|
84
|
+
const lockfilePath = path.join(path.dirname(clustersFile), 'clusters.json.lock');
|
|
85
|
+
let release;
|
|
86
|
+
|
|
87
|
+
try {
|
|
88
|
+
release = await lockfile.lock(clustersFile, {
|
|
89
|
+
lockfilePath,
|
|
90
|
+
stale: CLUSTERS_LOCK_STALE_MS,
|
|
91
|
+
retries: {
|
|
92
|
+
retries: 20,
|
|
93
|
+
minTimeout: 100,
|
|
94
|
+
maxTimeout: 250,
|
|
95
|
+
randomize: true,
|
|
96
|
+
},
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
const clusters = readClustersFile(clustersFile);
|
|
100
|
+
const updated = updater(clusters) || clusters;
|
|
101
|
+
fs.writeFileSync(clustersFile, JSON.stringify(updated, null, 2));
|
|
102
|
+
return updated;
|
|
103
|
+
} finally {
|
|
104
|
+
if (release) {
|
|
105
|
+
await release();
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
async function registerDetachedSetupCluster({
|
|
111
|
+
clusterId,
|
|
112
|
+
pid,
|
|
113
|
+
storageDir,
|
|
114
|
+
logPath,
|
|
115
|
+
worktree,
|
|
116
|
+
runOptions = {},
|
|
117
|
+
cwd,
|
|
118
|
+
}) {
|
|
119
|
+
await updateClustersFile(storageDir, (clusters) => {
|
|
120
|
+
clusters[clusterId] = {
|
|
121
|
+
id: clusterId,
|
|
122
|
+
state: 'setup',
|
|
123
|
+
createdAt: Date.now(),
|
|
124
|
+
pid: Number.isInteger(pid) ? pid : null,
|
|
125
|
+
setupLogPath: logPath || null,
|
|
126
|
+
setupStartedAt: Date.now(),
|
|
127
|
+
setupStage: 'starting',
|
|
128
|
+
autoPr: Boolean(runOptions.pr || runOptions.ship),
|
|
129
|
+
prOptions: runOptions.prBase
|
|
130
|
+
? {
|
|
131
|
+
prBase: runOptions.prBase,
|
|
132
|
+
mergeQueue: runOptions.mergeQueue || false,
|
|
133
|
+
closeIssue: runOptions.closeIssue || null,
|
|
134
|
+
cwd: cwd || null,
|
|
135
|
+
}
|
|
136
|
+
: null,
|
|
137
|
+
worktree: worktree || null,
|
|
138
|
+
config: null,
|
|
139
|
+
issue: null,
|
|
140
|
+
isolation: null,
|
|
141
|
+
agentStates: [],
|
|
142
|
+
failureInfo: null,
|
|
143
|
+
provisional: true,
|
|
144
|
+
};
|
|
145
|
+
return clusters;
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
async function markDetachedSetupFailed({ clusterId, storageDir, error, logPath }) {
|
|
150
|
+
await updateClustersFile(storageDir, (clusters) => {
|
|
151
|
+
const existing = clusters[clusterId] || { id: clusterId, createdAt: Date.now() };
|
|
152
|
+
clusters[clusterId] = {
|
|
153
|
+
...existing,
|
|
154
|
+
state: 'failed',
|
|
155
|
+
pid: null,
|
|
156
|
+
setupLogPath: existing.setupLogPath || logPath || null,
|
|
157
|
+
setupFinishedAt: Date.now(),
|
|
158
|
+
failureInfo: {
|
|
159
|
+
type: 'setup',
|
|
160
|
+
error: error instanceof Error ? error.message : String(error),
|
|
161
|
+
timestamp: Date.now(),
|
|
162
|
+
},
|
|
163
|
+
provisional: true,
|
|
164
|
+
};
|
|
165
|
+
return clusters;
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
function sleep(ms) {
|
|
170
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
function formatLogHint(logPath) {
|
|
174
|
+
return logPath ? ` Check log: ${logPath}` : '';
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
async function waitForClusterRegistration({
|
|
178
|
+
clusterId,
|
|
179
|
+
timeoutMs,
|
|
180
|
+
pollMs = DEFAULT_WAIT_POLL_MS,
|
|
181
|
+
storageDir,
|
|
182
|
+
daemonPid,
|
|
183
|
+
logPath,
|
|
184
|
+
}) {
|
|
185
|
+
const effectiveTimeoutMs =
|
|
186
|
+
Number.isFinite(timeoutMs) && timeoutMs > 0 ? timeoutMs : DEFAULT_WAIT_TIMEOUT_SECONDS * 1000;
|
|
187
|
+
const startedAt = Date.now();
|
|
188
|
+
const deadline = startedAt + effectiveTimeoutMs;
|
|
189
|
+
const logHint = formatLogHint(logPath);
|
|
190
|
+
|
|
191
|
+
while (Date.now() < deadline) {
|
|
192
|
+
if (isClusterRegistered(clusterId, storageDir)) {
|
|
193
|
+
return { ready: true, elapsedMs: Date.now() - startedAt };
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
if (daemonPid && !isProcessAlive(daemonPid)) {
|
|
197
|
+
throw new Error(
|
|
198
|
+
`Detached daemon exited before cluster "${clusterId}" registered in storage.${logHint}`
|
|
199
|
+
);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
await sleep(pollMs);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
const timeoutSeconds = Math.ceil(effectiveTimeoutMs / 1000);
|
|
206
|
+
throw new Error(
|
|
207
|
+
`Timed out after ${timeoutSeconds}s waiting for cluster "${clusterId}" to appear in status/list.${logHint}`
|
|
208
|
+
);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
module.exports = {
|
|
212
|
+
DEFAULT_WAIT_TIMEOUT_SECONDS,
|
|
213
|
+
getClustersFilePath,
|
|
214
|
+
isClusterRegistered,
|
|
215
|
+
isProcessAlive,
|
|
216
|
+
markDetachedSetupFailed,
|
|
217
|
+
registerDetachedSetupCluster,
|
|
218
|
+
resolveWaitTimeoutMs,
|
|
219
|
+
waitForClusterRegistration,
|
|
220
|
+
};
|