@a5c-ai/babysitter-sdk 5.0.1-staging.71bb37a4 → 5.0.1-staging.75c8fb21
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/README.md +68 -0
- package/dist/breakpoints/evaluator.d.ts.map +1 -1
- package/dist/breakpoints/evaluator.js +31 -3
- package/dist/breakpoints/index.d.ts +2 -5
- package/dist/breakpoints/index.d.ts.map +1 -1
- package/dist/breakpoints/index.js +4 -20
- package/dist/breakpoints/proven-verification.d.ts +51 -0
- package/dist/breakpoints/proven-verification.d.ts.map +1 -0
- package/dist/breakpoints/proven-verification.js +120 -0
- package/dist/cli/commands/breakpointRules.d.ts.map +1 -1
- package/dist/cli/commands/breakpointRules.js +30 -27
- package/dist/cli/commands/compressOutput.d.ts.map +1 -1
- package/dist/cli/commands/compressOutput.js +9 -345
- package/dist/cli/commands/compressOutputHelpers.d.ts +15 -0
- package/dist/cli/commands/compressOutputHelpers.d.ts.map +1 -0
- package/dist/cli/commands/compressOutputHelpers.js +367 -0
- package/dist/cli/commands/costStats.d.ts.map +1 -1
- package/dist/cli/commands/costStats.js +35 -27
- package/dist/cli/commands/harness/install.d.ts +9 -0
- package/dist/cli/commands/harness/install.d.ts.map +1 -1
- package/dist/cli/commands/harness/install.js +20 -31
- package/dist/cli/commands/health/checks.d.ts +10 -0
- package/dist/cli/commands/health/checks.d.ts.map +1 -0
- package/dist/cli/commands/health/checks.js +268 -0
- package/dist/cli/commands/health/environment.d.ts.map +1 -1
- package/dist/cli/commands/health/environment.js +11 -1
- package/dist/cli/commands/health.d.ts +0 -15
- package/dist/cli/commands/health.d.ts.map +1 -1
- package/dist/cli/commands/health.js +5 -300
- package/dist/cli/commands/hooks/run.d.ts.map +1 -1
- package/dist/cli/commands/hooks/run.js +3 -2
- package/dist/cli/commands/instructions.d.ts +1 -1
- package/dist/cli/commands/instructions.d.ts.map +1 -1
- package/dist/cli/commands/instructions.js +72 -6
- package/dist/cli/commands/mcpServe.d.ts +2 -9
- package/dist/cli/commands/mcpServe.d.ts.map +1 -1
- package/dist/cli/commands/mcpServe.js +5 -29
- package/dist/cli/commands/runIterate.d.ts.map +1 -1
- package/dist/cli/commands/runIterate.js +7 -214
- package/dist/cli/commands/runIterateHelpers.d.ts +29 -0
- package/dist/cli/commands/runIterateHelpers.d.ts.map +1 -0
- package/dist/cli/commands/runIterateHelpers.js +134 -0
- package/dist/cli/commands/session/associate.d.ts.map +1 -1
- package/dist/cli/commands/session/associate.js +4 -36
- package/dist/cli/commands/session/iterationMessage.d.ts.map +1 -1
- package/dist/cli/commands/session/iterationMessage.js +9 -54
- package/dist/cli/commands/session/resume.d.ts.map +1 -1
- package/dist/cli/commands/session/resume.js +6 -16
- package/dist/cli/commands/skill/discoveryLocal.d.ts +1 -1
- package/dist/cli/commands/skill/discoveryLocal.d.ts.map +1 -1
- package/dist/cli/commands/skill.d.ts +1 -1
- package/dist/cli/commands/skill.d.ts.map +1 -1
- package/dist/cli/commands/skill.js +13 -12
- package/dist/cli/commands/tokensStats.d.ts.map +1 -1
- package/dist/cli/commands/tokensStats.js +40 -157
- package/dist/cli/commands/tokensStatsFormatting.d.ts +9 -0
- package/dist/cli/commands/tokensStatsFormatting.d.ts.map +1 -0
- package/dist/cli/commands/tokensStatsFormatting.js +137 -0
- package/dist/cli/main/argFlagParsers.d.ts +9 -0
- package/dist/cli/main/argFlagParsers.d.ts.map +1 -0
- package/dist/cli/main/argFlagParsers.js +346 -0
- package/dist/cli/main/argFlags.d.ts +1 -3
- package/dist/cli/main/argFlags.d.ts.map +1 -1
- package/dist/cli/main/argFlags.js +3 -343
- package/dist/cli/main/args.d.ts.map +1 -1
- package/dist/cli/main/args.js +4 -27
- package/dist/cli/main/dispatchRunSession.js +0 -10
- package/dist/cli/main/program.js +1 -1
- package/dist/cli/main/runCreate.js +2 -2
- package/dist/cli/main/runSupport.d.ts +9 -1
- package/dist/cli/main/runSupport.d.ts.map +1 -1
- package/dist/cli/main/runSupport.js +71 -1
- package/dist/cli/main/usage.d.ts.map +1 -1
- package/dist/cli/main/usage.js +43 -42
- package/dist/config/configValidation.d.ts +22 -0
- package/dist/config/configValidation.d.ts.map +1 -0
- package/dist/config/configValidation.js +140 -0
- package/dist/config/defaults.d.ts +3 -126
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +10 -258
- package/dist/config/index.d.ts +3 -2
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +15 -2
- package/dist/config/runs.d.ts +22 -0
- package/dist/config/runs.d.ts.map +1 -0
- package/dist/config/runs.js +192 -0
- package/dist/cost/index.d.ts +0 -1
- package/dist/cost/index.d.ts.map +1 -1
- package/dist/cost/index.js +2 -3
- package/dist/cost/pricing.d.ts +19 -0
- package/dist/cost/pricing.d.ts.map +1 -0
- package/dist/cost/pricing.js +135 -0
- package/dist/cost/types.d.ts +2 -79
- package/dist/cost/types.d.ts.map +1 -1
- package/dist/cost/types.js +8 -220
- package/dist/harness/BaseAdapter.d.ts +93 -0
- package/dist/harness/BaseAdapter.d.ts.map +1 -0
- package/dist/harness/BaseAdapter.js +236 -0
- package/dist/harness/adapters/claude-code.d.ts +24 -0
- package/dist/harness/adapters/claude-code.d.ts.map +1 -0
- package/dist/harness/adapters/claude-code.js +63 -0
- package/dist/harness/adapters/codex.d.ts +12 -0
- package/dist/harness/adapters/codex.d.ts.map +1 -0
- package/dist/harness/adapters/codex.js +37 -0
- package/dist/harness/adapters/cursor.d.ts +13 -0
- package/dist/harness/adapters/cursor.d.ts.map +1 -0
- package/dist/harness/adapters/cursor.js +85 -0
- package/dist/harness/adapters/gemini-cli.d.ts +12 -0
- package/dist/harness/adapters/gemini-cli.d.ts.map +1 -0
- package/dist/harness/adapters/gemini-cli.js +34 -0
- package/dist/harness/adapters/github-copilot.d.ts +13 -0
- package/dist/harness/adapters/github-copilot.d.ts.map +1 -0
- package/dist/harness/adapters/github-copilot.js +59 -0
- package/dist/harness/adapters/index.d.ts +12 -0
- package/dist/harness/adapters/index.d.ts.map +1 -0
- package/dist/harness/adapters/index.js +26 -0
- package/dist/harness/adapters/oh-my-pi.d.ts +12 -0
- package/dist/harness/adapters/oh-my-pi.d.ts.map +1 -0
- package/dist/harness/adapters/oh-my-pi.js +41 -0
- package/dist/harness/adapters/openclaw.d.ts +12 -0
- package/dist/harness/adapters/openclaw.d.ts.map +1 -0
- package/dist/harness/adapters/openclaw.js +49 -0
- package/dist/harness/adapters/opencode.d.ts +12 -0
- package/dist/harness/adapters/opencode.d.ts.map +1 -0
- package/dist/harness/adapters/opencode.js +51 -0
- package/dist/harness/adapters/pi.d.ts +12 -0
- package/dist/harness/adapters/pi.d.ts.map +1 -0
- package/dist/harness/adapters/pi.js +41 -0
- package/dist/harness/amuxFallbackMetadata.d.ts +3 -0
- package/dist/harness/amuxFallbackMetadata.d.ts.map +1 -0
- package/dist/harness/amuxFallbackMetadata.js +193 -0
- package/dist/harness/amuxMetadata.d.ts +51 -0
- package/dist/harness/amuxMetadata.d.ts.map +1 -0
- package/dist/harness/amuxMetadata.js +176 -0
- package/dist/harness/customAdapter.js +1 -1
- package/dist/harness/derivePromptContext.d.ts +75 -0
- package/dist/harness/derivePromptContext.d.ts.map +1 -0
- package/dist/harness/derivePromptContext.js +120 -0
- package/dist/harness/discovery.d.ts +21 -1
- package/dist/harness/discovery.d.ts.map +1 -1
- package/dist/harness/discovery.js +70 -0
- package/dist/harness/hooks/babysitterHooks.d.ts +23 -0
- package/dist/harness/hooks/babysitterHooks.d.ts.map +1 -0
- package/dist/harness/hooks/babysitterHooks.js +162 -0
- package/dist/harness/hooks/promptContexts.d.ts +19 -0
- package/dist/harness/hooks/promptContexts.d.ts.map +1 -0
- package/dist/harness/hooks/promptContexts.js +183 -0
- package/dist/harness/hooks/runState.d.ts.map +1 -1
- package/dist/harness/hooks/runState.js +13 -28
- package/dist/harness/hooks/sessionBinding.d.ts +28 -0
- package/dist/harness/hooks/sessionBinding.d.ts.map +1 -0
- package/dist/harness/hooks/sessionBinding.js +145 -0
- package/dist/harness/{claudeCode/stopHookState.d.ts → hooks/stopHookContinuation.d.ts} +8 -2
- package/dist/harness/hooks/stopHookContinuation.d.ts.map +1 -0
- package/dist/harness/{claudeCode/stopHookState.js → hooks/stopHookContinuation.js} +22 -21
- package/dist/harness/hooks/stopHookHandler.d.ts +35 -0
- package/dist/harness/hooks/stopHookHandler.d.ts.map +1 -0
- package/dist/harness/hooks/stopHookHandler.js +371 -0
- package/dist/harness/hooks/utils.d.ts +29 -0
- package/dist/harness/hooks/utils.d.ts.map +1 -1
- package/dist/harness/hooks/utils.js +90 -0
- package/dist/harness/index.d.ts +12 -9
- package/dist/harness/index.d.ts.map +1 -1
- package/dist/harness/index.js +20 -14
- package/dist/harness/install.d.ts +75 -0
- package/dist/harness/install.d.ts.map +1 -0
- package/dist/harness/install.js +199 -0
- package/dist/harness/installSupport.d.ts.map +1 -1
- package/dist/harness/installSupport.js +19 -0
- package/dist/harness/internal/promptContext.js +1 -1
- package/dist/harness/registry.d.ts +11 -2
- package/dist/harness/registry.d.ts.map +1 -1
- package/dist/harness/registry.js +110 -53
- package/dist/harness/types.d.ts +19 -2
- package/dist/harness/types.d.ts.map +1 -1
- package/dist/harness/unified/adapter.d.ts +5 -5
- package/dist/harness/unified/adapter.d.ts.map +1 -1
- package/dist/harness/unified/adapter.js +57 -26
- package/dist/harness/unified/capabilities.d.ts +5 -5
- package/dist/harness/unified/capabilities.js +7 -7
- package/dist/harness/unified/discovery.d.ts +1 -1
- package/dist/harness/unified/discovery.js +2 -2
- package/dist/harness/unified/promptContext.d.ts +1 -1
- package/dist/harness/unified/promptContext.js +2 -2
- package/dist/harness/unified/subprocess.d.ts +5 -5
- package/dist/harness/unified/subprocess.d.ts.map +1 -1
- package/dist/harness/unified/subprocess.js +10 -7
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/mcp/index.d.ts +0 -4
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +4 -9
- package/dist/mcp/tools/discovery.d.ts.map +1 -1
- package/dist/mcp/tools/discovery.js +3 -2
- package/dist/mcp/tools/sessions.d.ts.map +1 -1
- package/dist/mcp/tools/sessions.js +2 -8
- package/dist/mcp/transport/index.d.ts +0 -4
- package/dist/mcp/transport/index.d.ts.map +1 -1
- package/dist/mcp/transport/index.js +1 -8
- package/dist/mcp/util/resolve-run-dir.d.ts +1 -1
- package/dist/mcp/util/resolve-run-dir.d.ts.map +1 -1
- package/dist/mcp/util/resolve-run-dir.js +3 -39
- package/dist/plugins/marketplace.d.ts +1 -47
- package/dist/plugins/marketplace.d.ts.map +1 -1
- package/dist/plugins/marketplace.js +6 -186
- package/dist/plugins/marketplaceHelpers.d.ts +15 -0
- package/dist/plugins/marketplaceHelpers.d.ts.map +1 -0
- package/dist/plugins/marketplaceHelpers.js +114 -0
- package/dist/processLibrary/active.d.ts +2 -83
- package/dist/processLibrary/active.d.ts.map +1 -1
- package/dist/processLibrary/active.js +65 -167
- package/dist/processLibrary/activeTypes.d.ts +82 -0
- package/dist/processLibrary/activeTypes.d.ts.map +1 -0
- package/dist/processLibrary/activeTypes.js +6 -0
- package/dist/prompts/compose.js +1 -1
- package/dist/prompts/context.d.ts +1 -9
- package/dist/prompts/context.d.ts.map +1 -1
- package/dist/prompts/context.js +12 -20
- package/dist/prompts/parts/criticalRules.js +1 -1
- package/dist/prompts/parts/runCreation.d.ts.map +1 -1
- package/dist/prompts/parts/runCreation.js +2 -12
- package/dist/prompts/templates/commands/doctor.md +5 -5
- package/dist/prompts/templates/critical-rules.md +2 -2
- package/dist/prompts/templates/effects.md +1 -1
- package/dist/prompts/templates/iteration.md +1 -1
- package/dist/prompts/templates/process-guidelines.md +1 -1
- package/dist/prompts/templates/quick-reference.md +1 -1
- package/dist/prompts/templates/results-posting.md +2 -2
- package/dist/prompts/templates/run-creation.md +2 -2
- package/dist/prompts/templates/run-overlap-detection.md +6 -4
- package/dist/prompts/templates/task-examples.md +7 -7
- package/dist/prompts/templates/task-kinds.md +7 -3
- package/dist/prompts/types.d.ts +1 -1
- package/dist/runtime/commitEffectResult.d.ts.map +1 -1
- package/dist/runtime/commitEffectResult.js +5 -2
- package/dist/runtime/createRun.d.ts.map +1 -1
- package/dist/runtime/createRun.js +28 -14
- package/dist/runtime/errorTemplates.d.ts +101 -0
- package/dist/runtime/errorTemplates.d.ts.map +1 -0
- package/dist/runtime/errorTemplates.js +173 -0
- package/dist/runtime/exceptions.d.ts +3 -152
- package/dist/runtime/exceptions.d.ts.map +1 -1
- package/dist/runtime/exceptions.js +22 -220
- package/dist/runtime/index.d.ts +2 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +8 -1
- package/dist/runtime/intrinsics/subprocess.d.ts +5 -0
- package/dist/runtime/intrinsics/subprocess.d.ts.map +1 -0
- package/dist/runtime/intrinsics/subprocess.js +56 -0
- package/dist/runtime/intrinsics/task.d.ts +4 -3
- package/dist/runtime/intrinsics/task.d.ts.map +1 -1
- package/dist/runtime/intrinsics/task.js +31 -260
- package/dist/runtime/intrinsics/taskHelpers.d.ts +20 -0
- package/dist/runtime/intrinsics/taskHelpers.d.ts.map +1 -0
- package/dist/runtime/intrinsics/taskHelpers.js +148 -0
- package/dist/runtime/orchestrateHelpers.d.ts +16 -0
- package/dist/runtime/orchestrateHelpers.d.ts.map +1 -0
- package/dist/runtime/orchestrateHelpers.js +103 -0
- package/dist/runtime/orchestrateIteration.d.ts +2 -7
- package/dist/runtime/orchestrateIteration.d.ts.map +1 -1
- package/dist/runtime/orchestrateIteration.js +46 -267
- package/dist/runtime/policy/engine.d.ts +4 -0
- package/dist/runtime/policy/engine.d.ts.map +1 -0
- package/dist/runtime/policy/engine.js +97 -0
- package/dist/runtime/policy/index.d.ts +3 -1
- package/dist/runtime/policy/index.d.ts.map +1 -1
- package/dist/runtime/policy/index.js +9 -1
- package/dist/runtime/policy/logging.d.ts +6 -0
- package/dist/runtime/policy/logging.d.ts.map +1 -0
- package/dist/runtime/policy/logging.js +43 -0
- package/dist/runtime/policy/types.d.ts +4 -0
- package/dist/runtime/policy/types.d.ts.map +1 -1
- package/dist/runtime/processContext.d.ts +3 -0
- package/dist/runtime/processContext.d.ts.map +1 -1
- package/dist/runtime/processContext.js +3 -0
- package/dist/runtime/replay/createReplayEngine.d.ts +1 -0
- package/dist/runtime/replay/createReplayEngine.d.ts.map +1 -1
- package/dist/runtime/replay/createReplayEngine.js +26 -0
- package/dist/runtime/runLifecycleState.d.ts +7 -0
- package/dist/runtime/runLifecycleState.d.ts.map +1 -0
- package/dist/runtime/runLifecycleState.js +54 -0
- package/dist/runtime/types.d.ts +33 -1
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/session/cleanup.d.ts.map +1 -1
- package/dist/session/cleanup.js +26 -21
- package/dist/session/discovery.d.ts +4 -1
- package/dist/session/discovery.d.ts.map +1 -1
- package/dist/session/discovery.js +13 -18
- package/dist/session/types.d.ts +1 -1
- package/dist/session/types.d.ts.map +1 -1
- package/dist/session/whoami.js +2 -2
- package/dist/storage/createRunDir.d.ts.map +1 -1
- package/dist/storage/createRunDir.js +1 -0
- package/dist/storage/types.d.ts +14 -0
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/tasks/kinds/index.d.ts +1 -1
- package/dist/tasks/kinds/index.d.ts.map +1 -1
- package/dist/tasks/kinds/index.js +58 -237
- package/dist/tasks/kinds/resolvers.d.ts +21 -0
- package/dist/tasks/kinds/resolvers.d.ts.map +1 -0
- package/dist/tasks/kinds/resolvers.js +124 -0
- package/dist/tasks/types.d.ts +18 -3
- package/dist/tasks/types.d.ts.map +1 -1
- package/dist/utils/ancestorWalk.d.ts +14 -0
- package/dist/utils/ancestorWalk.d.ts.map +1 -0
- package/dist/utils/ancestorWalk.js +203 -0
- package/dist/utils/sessionMarker.d.ts +3 -7
- package/dist/utils/sessionMarker.d.ts.map +1 -1
- package/dist/utils/sessionMarker.js +32 -216
- package/package.json +28 -5
- package/dist/breakpoints/approvalChains.d.ts +0 -66
- package/dist/breakpoints/approvalChains.d.ts.map +0 -1
- package/dist/breakpoints/approvalChains.js +0 -109
- package/dist/breakpoints/delegation.d.ts +0 -40
- package/dist/breakpoints/delegation.d.ts.map +0 -1
- package/dist/breakpoints/delegation.js +0 -197
- package/dist/breakpoints/delegationTypes.d.ts +0 -44
- package/dist/breakpoints/delegationTypes.d.ts.map +0 -1
- package/dist/breakpoints/delegationTypes.js +0 -8
- package/dist/breakpoints/postures.d.ts +0 -26
- package/dist/breakpoints/postures.d.ts.map +0 -1
- package/dist/breakpoints/postures.js +0 -98
- package/dist/cli/commandRegistry.d.ts +0 -27
- package/dist/cli/commandRegistry.d.ts.map +0 -1
- package/dist/cli/commandRegistry.js +0 -121
- package/dist/compression/compaction.d.ts +0 -80
- package/dist/compression/compaction.d.ts.map +0 -1
- package/dist/compression/compaction.js +0 -308
- package/dist/cost/effectCost.d.ts +0 -21
- package/dist/cost/effectCost.d.ts.map +0 -1
- package/dist/cost/effectCost.js +0 -26
- package/dist/harness/claudeCode/adapter.d.ts +0 -5
- package/dist/harness/claudeCode/adapter.d.ts.map +0 -1
- package/dist/harness/claudeCode/adapter.js +0 -101
- package/dist/harness/claudeCode/discovery.d.ts +0 -3
- package/dist/harness/claudeCode/discovery.d.ts.map +0 -1
- package/dist/harness/claudeCode/discovery.js +0 -11
- package/dist/harness/claudeCode/index.d.ts +0 -3
- package/dist/harness/claudeCode/index.d.ts.map +0 -1
- package/dist/harness/claudeCode/index.js +0 -9
- package/dist/harness/claudeCode/lifecycle.d.ts +0 -5
- package/dist/harness/claudeCode/lifecycle.d.ts.map +0 -1
- package/dist/harness/claudeCode/lifecycle.js +0 -204
- package/dist/harness/claudeCode/promptContext.d.ts +0 -3
- package/dist/harness/claudeCode/promptContext.d.ts.map +0 -1
- package/dist/harness/claudeCode/promptContext.js +0 -23
- package/dist/harness/claudeCode/sessionStart.d.ts +0 -3
- package/dist/harness/claudeCode/sessionStart.d.ts.map +0 -1
- package/dist/harness/claudeCode/sessionStart.js +0 -179
- package/dist/harness/claudeCode/shared.d.ts +0 -43
- package/dist/harness/claudeCode/shared.d.ts.map +0 -1
- package/dist/harness/claudeCode/shared.js +0 -268
- package/dist/harness/claudeCode/stopHook.d.ts +0 -3
- package/dist/harness/claudeCode/stopHook.d.ts.map +0 -1
- package/dist/harness/claudeCode/stopHook.js +0 -303
- package/dist/harness/claudeCode/stopHookState.d.ts.map +0 -1
- package/dist/harness/codex/adapter.d.ts +0 -3
- package/dist/harness/codex/adapter.d.ts.map +0 -1
- package/dist/harness/codex/adapter.js +0 -73
- package/dist/harness/codex/discovery.d.ts +0 -3
- package/dist/harness/codex/discovery.d.ts.map +0 -1
- package/dist/harness/codex/discovery.js +0 -11
- package/dist/harness/codex/hooks.d.ts +0 -4
- package/dist/harness/codex/hooks.d.ts.map +0 -1
- package/dist/harness/codex/hooks.js +0 -85
- package/dist/harness/codex/index.d.ts +0 -2
- package/dist/harness/codex/index.d.ts.map +0 -1
- package/dist/harness/codex/index.js +0 -5
- package/dist/harness/codex/install.d.ts +0 -4
- package/dist/harness/codex/install.d.ts.map +0 -1
- package/dist/harness/codex/install.js +0 -103
- package/dist/harness/codex/promptContext.d.ts +0 -3
- package/dist/harness/codex/promptContext.d.ts.map +0 -1
- package/dist/harness/codex/promptContext.js +0 -22
- package/dist/harness/codex/shared.d.ts +0 -15
- package/dist/harness/codex/shared.d.ts.map +0 -1
- package/dist/harness/codex/shared.js +0 -149
- package/dist/harness/cursor/adapter.d.ts +0 -3
- package/dist/harness/cursor/adapter.d.ts.map +0 -1
- package/dist/harness/cursor/adapter.js +0 -233
- package/dist/harness/cursor/discovery.d.ts +0 -3
- package/dist/harness/cursor/discovery.d.ts.map +0 -1
- package/dist/harness/cursor/discovery.js +0 -11
- package/dist/harness/cursor/hooks.d.ts +0 -8
- package/dist/harness/cursor/hooks.d.ts.map +0 -1
- package/dist/harness/cursor/hooks.js +0 -362
- package/dist/harness/cursor/index.d.ts +0 -2
- package/dist/harness/cursor/index.d.ts.map +0 -1
- package/dist/harness/cursor/index.js +0 -5
- package/dist/harness/cursor/promptContext.d.ts +0 -3
- package/dist/harness/cursor/promptContext.d.ts.map +0 -1
- package/dist/harness/cursor/promptContext.js +0 -22
- package/dist/harness/geminiCli/adapter.d.ts +0 -3
- package/dist/harness/geminiCli/adapter.d.ts.map +0 -1
- package/dist/harness/geminiCli/adapter.js +0 -190
- package/dist/harness/geminiCli/discovery.d.ts +0 -3
- package/dist/harness/geminiCli/discovery.d.ts.map +0 -1
- package/dist/harness/geminiCli/discovery.js +0 -11
- package/dist/harness/geminiCli/hooks.d.ts +0 -9
- package/dist/harness/geminiCli/hooks.d.ts.map +0 -1
- package/dist/harness/geminiCli/hooks.js +0 -401
- package/dist/harness/geminiCli/index.d.ts +0 -2
- package/dist/harness/geminiCli/index.d.ts.map +0 -1
- package/dist/harness/geminiCli/index.js +0 -5
- package/dist/harness/geminiCli/promptContext.d.ts +0 -3
- package/dist/harness/geminiCli/promptContext.d.ts.map +0 -1
- package/dist/harness/geminiCli/promptContext.js +0 -22
- package/dist/harness/githubCopilot/adapter.d.ts +0 -4
- package/dist/harness/githubCopilot/adapter.d.ts.map +0 -1
- package/dist/harness/githubCopilot/adapter.js +0 -215
- package/dist/harness/githubCopilot/discovery.d.ts +0 -3
- package/dist/harness/githubCopilot/discovery.d.ts.map +0 -1
- package/dist/harness/githubCopilot/discovery.js +0 -11
- package/dist/harness/githubCopilot/hooks.d.ts +0 -12
- package/dist/harness/githubCopilot/hooks.d.ts.map +0 -1
- package/dist/harness/githubCopilot/hooks.js +0 -305
- package/dist/harness/githubCopilot/index.d.ts +0 -3
- package/dist/harness/githubCopilot/index.d.ts.map +0 -1
- package/dist/harness/githubCopilot/index.js +0 -7
- package/dist/harness/githubCopilot/promptContext.d.ts +0 -3
- package/dist/harness/githubCopilot/promptContext.d.ts.map +0 -1
- package/dist/harness/githubCopilot/promptContext.js +0 -22
- package/dist/harness/ohMyPi/adapter.d.ts +0 -3
- package/dist/harness/ohMyPi/adapter.d.ts.map +0 -1
- package/dist/harness/ohMyPi/adapter.js +0 -190
- package/dist/harness/ohMyPi/discovery.d.ts +0 -3
- package/dist/harness/ohMyPi/discovery.d.ts.map +0 -1
- package/dist/harness/ohMyPi/discovery.js +0 -11
- package/dist/harness/ohMyPi/index.d.ts +0 -2
- package/dist/harness/ohMyPi/index.d.ts.map +0 -1
- package/dist/harness/ohMyPi/index.js +0 -5
- package/dist/harness/ohMyPi/promptContext.d.ts +0 -3
- package/dist/harness/ohMyPi/promptContext.d.ts.map +0 -1
- package/dist/harness/ohMyPi/promptContext.js +0 -22
- package/dist/harness/openclaw/adapter.d.ts +0 -3
- package/dist/harness/openclaw/adapter.d.ts.map +0 -1
- package/dist/harness/openclaw/adapter.js +0 -288
- package/dist/harness/openclaw/discovery.d.ts +0 -3
- package/dist/harness/openclaw/discovery.d.ts.map +0 -1
- package/dist/harness/openclaw/discovery.js +0 -11
- package/dist/harness/openclaw/index.d.ts +0 -2
- package/dist/harness/openclaw/index.d.ts.map +0 -1
- package/dist/harness/openclaw/index.js +0 -5
- package/dist/harness/openclaw/promptContext.d.ts +0 -3
- package/dist/harness/openclaw/promptContext.d.ts.map +0 -1
- package/dist/harness/openclaw/promptContext.js +0 -22
- package/dist/harness/opencode/adapter.d.ts +0 -3
- package/dist/harness/opencode/adapter.d.ts.map +0 -1
- package/dist/harness/opencode/adapter.js +0 -235
- package/dist/harness/opencode/discovery.d.ts +0 -3
- package/dist/harness/opencode/discovery.d.ts.map +0 -1
- package/dist/harness/opencode/discovery.js +0 -11
- package/dist/harness/opencode/hooks.d.ts +0 -11
- package/dist/harness/opencode/hooks.d.ts.map +0 -1
- package/dist/harness/opencode/hooks.js +0 -264
- package/dist/harness/opencode/index.d.ts +0 -2
- package/dist/harness/opencode/index.d.ts.map +0 -1
- package/dist/harness/opencode/index.js +0 -5
- package/dist/harness/opencode/promptContext.d.ts +0 -3
- package/dist/harness/opencode/promptContext.d.ts.map +0 -1
- package/dist/harness/opencode/promptContext.js +0 -22
- package/dist/harness/pi/adapter.d.ts +0 -4
- package/dist/harness/pi/adapter.d.ts.map +0 -1
- package/dist/harness/pi/adapter.js +0 -198
- package/dist/harness/pi/discovery.d.ts +0 -3
- package/dist/harness/pi/discovery.d.ts.map +0 -1
- package/dist/harness/pi/discovery.js +0 -11
- package/dist/harness/pi/index.d.ts +0 -2
- package/dist/harness/pi/index.d.ts.map +0 -1
- package/dist/harness/pi/index.js +0 -6
- package/dist/harness/pi/promptContext.d.ts +0 -3
- package/dist/harness/pi/promptContext.d.ts.map +0 -1
- package/dist/harness/pi/promptContext.js +0 -22
- package/dist/mcp/channels/allowlist.d.ts +0 -19
- package/dist/mcp/channels/allowlist.d.ts.map +0 -1
- package/dist/mcp/channels/allowlist.js +0 -140
- package/dist/mcp/channels/channelManager.d.ts +0 -64
- package/dist/mcp/channels/channelManager.d.ts.map +0 -1
- package/dist/mcp/channels/channelManager.js +0 -137
- package/dist/mcp/channels/inboundQueue.d.ts +0 -47
- package/dist/mcp/channels/inboundQueue.d.ts.map +0 -1
- package/dist/mcp/channels/inboundQueue.js +0 -96
- package/dist/mcp/channels/index.d.ts +0 -11
- package/dist/mcp/channels/index.d.ts.map +0 -1
- package/dist/mcp/channels/index.js +0 -33
- package/dist/mcp/channels/outbound.d.ts +0 -33
- package/dist/mcp/channels/outbound.d.ts.map +0 -1
- package/dist/mcp/channels/outbound.js +0 -94
- package/dist/mcp/channels/permissionRelay.d.ts +0 -62
- package/dist/mcp/channels/permissionRelay.d.ts.map +0 -1
- package/dist/mcp/channels/permissionRelay.js +0 -159
- package/dist/mcp/channels/types.d.ts +0 -135
- package/dist/mcp/channels/types.d.ts.map +0 -1
- package/dist/mcp/channels/types.js +0 -16
- package/dist/mcp/client/config.d.ts +0 -26
- package/dist/mcp/client/config.d.ts.map +0 -1
- package/dist/mcp/client/config.js +0 -140
- package/dist/mcp/client/executor.d.ts +0 -28
- package/dist/mcp/client/executor.d.ts.map +0 -1
- package/dist/mcp/client/executor.js +0 -58
- package/dist/mcp/client/index.d.ts +0 -10
- package/dist/mcp/client/index.d.ts.map +0 -1
- package/dist/mcp/client/index.js +0 -25
- package/dist/mcp/client/manager.d.ts +0 -72
- package/dist/mcp/client/manager.d.ts.map +0 -1
- package/dist/mcp/client/manager.js +0 -212
- package/dist/mcp/client/toolRegistry.d.ts +0 -48
- package/dist/mcp/client/toolRegistry.d.ts.map +0 -1
- package/dist/mcp/client/toolRegistry.js +0 -116
- package/dist/mcp/client/types.d.ts +0 -94
- package/dist/mcp/client/types.d.ts.map +0 -1
- package/dist/mcp/client/types.js +0 -13
- package/dist/mcp/transport/session.d.ts +0 -16
- package/dist/mcp/transport/session.d.ts.map +0 -1
- package/dist/mcp/transport/session.js +0 -76
- package/dist/mcp/transport/types.d.ts +0 -17
- package/dist/mcp/transport/types.d.ts.map +0 -1
- package/dist/mcp/transport/types.js +0 -5
- package/dist/mcp/transport/websocket.d.ts +0 -39
- package/dist/mcp/transport/websocket.d.ts.map +0 -1
- package/dist/mcp/transport/websocket.js +0 -269
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Individual health check implementations.
|
|
4
|
+
* Extracted from health.ts for max-lines compliance.
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.checkSdkVersion = checkSdkVersion;
|
|
41
|
+
exports.checkNodeVersion = checkNodeVersion;
|
|
42
|
+
exports.checkA5cDirectory = checkA5cDirectory;
|
|
43
|
+
exports.checkPackageDependency = checkPackageDependency;
|
|
44
|
+
const node_fs_1 = require("node:fs");
|
|
45
|
+
const path = __importStar(require("node:path"));
|
|
46
|
+
const config_1 = require("../../../config");
|
|
47
|
+
// ============================================================================
|
|
48
|
+
// Version Utilities
|
|
49
|
+
// ============================================================================
|
|
50
|
+
async function readCliVersion() {
|
|
51
|
+
const candidatePaths = [
|
|
52
|
+
path.join(__dirname, "..", "..", "..", "package.json"),
|
|
53
|
+
path.join(__dirname, "..", "..", "..", "..", "package.json"),
|
|
54
|
+
];
|
|
55
|
+
for (const packagePath of candidatePaths) {
|
|
56
|
+
try {
|
|
57
|
+
const raw = await node_fs_1.promises.readFile(packagePath, "utf8");
|
|
58
|
+
const parsed = JSON.parse(raw);
|
|
59
|
+
return parsed.version ?? "unknown";
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
// try the next candidate
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return "unknown";
|
|
66
|
+
}
|
|
67
|
+
function parseVersion(version) {
|
|
68
|
+
const match = version.match(/^v?(\d+)\.(\d+)\.(\d+)/);
|
|
69
|
+
if (!match)
|
|
70
|
+
return null;
|
|
71
|
+
return {
|
|
72
|
+
major: parseInt(match[1], 10),
|
|
73
|
+
minor: parseInt(match[2], 10),
|
|
74
|
+
patch: parseInt(match[3], 10),
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
// ============================================================================
|
|
78
|
+
// Individual Health Checks
|
|
79
|
+
// ============================================================================
|
|
80
|
+
async function checkSdkVersion() {
|
|
81
|
+
const version = await readCliVersion();
|
|
82
|
+
if (version === "unknown") {
|
|
83
|
+
return {
|
|
84
|
+
name: "sdk-version",
|
|
85
|
+
description: "SDK CLI version is accessible",
|
|
86
|
+
status: "fail",
|
|
87
|
+
message: "Unable to read SDK version from package.json",
|
|
88
|
+
nextSteps: [
|
|
89
|
+
"Ensure @a5c-ai/babysitter-sdk is properly installed",
|
|
90
|
+
"Run: npm install @a5c-ai/babysitter-sdk",
|
|
91
|
+
],
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
return {
|
|
95
|
+
name: "sdk-version",
|
|
96
|
+
description: "SDK CLI version is accessible",
|
|
97
|
+
status: "pass",
|
|
98
|
+
message: `SDK version ${version}`,
|
|
99
|
+
details: { version },
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
function checkNodeVersion() {
|
|
103
|
+
const nodeVersion = process.version;
|
|
104
|
+
const parsed = parseVersion(nodeVersion);
|
|
105
|
+
if (!parsed) {
|
|
106
|
+
return {
|
|
107
|
+
name: "node-version",
|
|
108
|
+
description: "Node.js version is compatible (>=18)",
|
|
109
|
+
status: "warn",
|
|
110
|
+
message: `Unable to parse Node.js version: ${nodeVersion}`,
|
|
111
|
+
nextSteps: ["Verify Node.js is properly installed"],
|
|
112
|
+
details: { version: nodeVersion },
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
const minMajor = 18;
|
|
116
|
+
if (parsed.major < minMajor) {
|
|
117
|
+
return {
|
|
118
|
+
name: "node-version",
|
|
119
|
+
description: "Node.js version is compatible (>=18)",
|
|
120
|
+
status: "fail",
|
|
121
|
+
message: `Node.js ${nodeVersion} is below minimum required version (v${minMajor}.0.0)`,
|
|
122
|
+
nextSteps: [
|
|
123
|
+
`Upgrade Node.js to version ${minMajor} or higher`,
|
|
124
|
+
"Visit https://nodejs.org to download the latest LTS version",
|
|
125
|
+
"Consider using nvm or fnm for version management",
|
|
126
|
+
],
|
|
127
|
+
details: { version: nodeVersion, required: `>=${minMajor}.0.0` },
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
return {
|
|
131
|
+
name: "node-version",
|
|
132
|
+
description: "Node.js version is compatible (>=18)",
|
|
133
|
+
status: "pass",
|
|
134
|
+
message: `Node.js ${nodeVersion}`,
|
|
135
|
+
details: { version: nodeVersion, major: parsed.major },
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
async function checkA5cDirectory(cwd) {
|
|
139
|
+
const a5cDir = path.join(cwd, ".a5c");
|
|
140
|
+
const runsDir = (0, config_1.resolveRunsDir)({ cwd });
|
|
141
|
+
try {
|
|
142
|
+
const stats = await node_fs_1.promises.stat(a5cDir);
|
|
143
|
+
if (!stats.isDirectory()) {
|
|
144
|
+
return {
|
|
145
|
+
name: "a5c-directory",
|
|
146
|
+
description: ".a5c directory exists and is writable",
|
|
147
|
+
status: "fail",
|
|
148
|
+
message: `.a5c exists but is not a directory at ${a5cDir}`,
|
|
149
|
+
nextSteps: [
|
|
150
|
+
"Remove the .a5c file and let the SDK create the directory",
|
|
151
|
+
"Or run: rm .a5c && mkdir -p .a5c",
|
|
152
|
+
],
|
|
153
|
+
details: { path: a5cDir, isDirectory: false },
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
const testFile = path.join(a5cDir, ".health-check-test");
|
|
157
|
+
try {
|
|
158
|
+
await node_fs_1.promises.writeFile(testFile, "test", "utf8");
|
|
159
|
+
await node_fs_1.promises.unlink(testFile);
|
|
160
|
+
}
|
|
161
|
+
catch (_writeError) {
|
|
162
|
+
return {
|
|
163
|
+
name: "a5c-directory",
|
|
164
|
+
description: ".a5c directory exists and is writable",
|
|
165
|
+
status: "fail",
|
|
166
|
+
message: `.a5c directory exists but is not writable at ${a5cDir}`,
|
|
167
|
+
nextSteps: [
|
|
168
|
+
"Check file permissions on the .a5c directory",
|
|
169
|
+
"Run: chmod 755 .a5c",
|
|
170
|
+
],
|
|
171
|
+
details: { path: a5cDir, writable: false },
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
let runsExists = false;
|
|
175
|
+
try {
|
|
176
|
+
const runsStats = await node_fs_1.promises.stat(runsDir);
|
|
177
|
+
runsExists = runsStats.isDirectory();
|
|
178
|
+
}
|
|
179
|
+
catch {
|
|
180
|
+
// runs dir doesn't exist yet, that's okay
|
|
181
|
+
}
|
|
182
|
+
return {
|
|
183
|
+
name: "a5c-directory",
|
|
184
|
+
description: ".a5c directory exists and is writable",
|
|
185
|
+
status: "pass",
|
|
186
|
+
message: `.a5c directory is ready at ${a5cDir}`,
|
|
187
|
+
details: { path: a5cDir, runsDir, runsExists, writable: true },
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
catch (error) {
|
|
191
|
+
const err = error;
|
|
192
|
+
if (err.code === "ENOENT") {
|
|
193
|
+
return {
|
|
194
|
+
name: "a5c-directory",
|
|
195
|
+
description: ".a5c directory exists and is writable",
|
|
196
|
+
status: "warn",
|
|
197
|
+
message: `.a5c directory does not exist at ${a5cDir}`,
|
|
198
|
+
nextSteps: [
|
|
199
|
+
"The directory will be created automatically when running babysitter commands",
|
|
200
|
+
"Or create it manually: mkdir -p .a5c",
|
|
201
|
+
],
|
|
202
|
+
details: { path: a5cDir, exists: false },
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
return {
|
|
206
|
+
name: "a5c-directory",
|
|
207
|
+
description: ".a5c directory exists and is writable",
|
|
208
|
+
status: "fail",
|
|
209
|
+
message: `Error accessing .a5c directory: ${err.message}`,
|
|
210
|
+
nextSteps: ["Check file system permissions and disk space"],
|
|
211
|
+
details: { path: a5cDir, error: err.message },
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
async function checkPackageDependency(cwd) {
|
|
216
|
+
const packagePath = path.join(cwd, "package.json");
|
|
217
|
+
try {
|
|
218
|
+
const raw = await node_fs_1.promises.readFile(packagePath, "utf8");
|
|
219
|
+
const pkg = JSON.parse(raw);
|
|
220
|
+
const depVersion = pkg.dependencies?.["@a5c-ai/babysitter-sdk"];
|
|
221
|
+
const devDepVersion = pkg.devDependencies?.["@a5c-ai/babysitter-sdk"];
|
|
222
|
+
const version = depVersion || devDepVersion;
|
|
223
|
+
const location = depVersion ? "dependencies" : devDepVersion ? "devDependencies" : null;
|
|
224
|
+
if (version) {
|
|
225
|
+
return {
|
|
226
|
+
name: "package-dependency",
|
|
227
|
+
description: "Project has babysitter-sdk dependency",
|
|
228
|
+
status: "pass",
|
|
229
|
+
message: `@a5c-ai/babysitter-sdk@${version} found in ${location}`,
|
|
230
|
+
details: { version, location, packagePath },
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
return {
|
|
234
|
+
name: "package-dependency",
|
|
235
|
+
description: "Project has babysitter-sdk dependency",
|
|
236
|
+
status: "warn",
|
|
237
|
+
message: "@a5c-ai/babysitter-sdk not found in package.json",
|
|
238
|
+
nextSteps: [
|
|
239
|
+
"Add the dependency: npm install @a5c-ai/babysitter-sdk",
|
|
240
|
+
"Or if this is not a babysitter project, this warning can be ignored",
|
|
241
|
+
],
|
|
242
|
+
details: { packagePath, found: false },
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
catch (error) {
|
|
246
|
+
const err = error;
|
|
247
|
+
if (err.code === "ENOENT") {
|
|
248
|
+
return {
|
|
249
|
+
name: "package-dependency",
|
|
250
|
+
description: "Project has babysitter-sdk dependency",
|
|
251
|
+
status: "warn",
|
|
252
|
+
message: "No package.json found in current directory",
|
|
253
|
+
nextSteps: [
|
|
254
|
+
"If this is a Node.js project, run: npm init -y",
|
|
255
|
+
"If not in a project directory, this warning can be ignored",
|
|
256
|
+
],
|
|
257
|
+
details: { packagePath, exists: false },
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
return {
|
|
261
|
+
name: "package-dependency",
|
|
262
|
+
description: "Project has babysitter-sdk dependency",
|
|
263
|
+
status: "warn",
|
|
264
|
+
message: `Error reading package.json: ${err.message}`,
|
|
265
|
+
details: { packagePath, error: err.message },
|
|
266
|
+
};
|
|
267
|
+
}
|
|
268
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/health/environment.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/health/environment.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,wBAAgB,yBAAyB,IAAI,WAAW,CAiGvD"}
|
|
@@ -2,16 +2,26 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.checkEnvironmentVariables = checkEnvironmentVariables;
|
|
4
4
|
const defaults_1 = require("../../../config/defaults");
|
|
5
|
+
const config_1 = require("../../../config");
|
|
5
6
|
function checkEnvironmentVariables() {
|
|
6
7
|
const envChecks = [];
|
|
7
8
|
const runsDir = process.env[defaults_1.CONFIG_ENV_VARS.RUNS_DIR];
|
|
9
|
+
const runsScope = (0, config_1.getRunsScope)();
|
|
8
10
|
envChecks.push({
|
|
9
11
|
name: "BABYSITTER_RUNS_DIR",
|
|
10
12
|
key: defaults_1.CONFIG_ENV_VARS.RUNS_DIR,
|
|
11
13
|
value: runsDir,
|
|
12
14
|
required: false,
|
|
13
15
|
valid: true,
|
|
14
|
-
note: runsDir ? `Custom runs directory: ${runsDir}` : `Using default: ${
|
|
16
|
+
note: runsDir ? `Custom runs directory: ${runsDir}` : `Using ${runsScope} scope default: ${(0, config_1.resolveRunsDir)()}`,
|
|
17
|
+
});
|
|
18
|
+
envChecks.push({
|
|
19
|
+
name: "BABYSITTER_RUNS_SCOPE",
|
|
20
|
+
key: defaults_1.CONFIG_ENV_VARS.RUNS_SCOPE,
|
|
21
|
+
value: process.env[defaults_1.CONFIG_ENV_VARS.RUNS_SCOPE],
|
|
22
|
+
required: false,
|
|
23
|
+
valid: true,
|
|
24
|
+
note: `Runs scope: ${runsScope}`,
|
|
15
25
|
});
|
|
16
26
|
const maxIterations = process.env[defaults_1.CONFIG_ENV_VARS.MAX_ITERATIONS];
|
|
17
27
|
let maxIterValid = true;
|
|
@@ -62,21 +62,6 @@ export interface HealthCheckResult {
|
|
|
62
62
|
}
|
|
63
63
|
/**
|
|
64
64
|
* Runs all health checks and returns aggregated results
|
|
65
|
-
*
|
|
66
|
-
* @param options - Health check options
|
|
67
|
-
* @returns Complete health check result
|
|
68
|
-
*
|
|
69
|
-
* @example
|
|
70
|
-
* ```ts
|
|
71
|
-
* // Run health checks with default options
|
|
72
|
-
* const result = await runHealthCheck({});
|
|
73
|
-
*
|
|
74
|
-
* // Run with verbose output
|
|
75
|
-
* const result = await runHealthCheck({ verbose: true });
|
|
76
|
-
*
|
|
77
|
-
* // Get JSON output
|
|
78
|
-
* const result = await runHealthCheck({ json: true });
|
|
79
|
-
* ```
|
|
80
65
|
*/
|
|
81
66
|
export declare function runHealthCheck(options: HealthCheckOptions): Promise<HealthCheckResult>;
|
|
82
67
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/health.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/health.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAeH;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,MAAM,EAAE,WAAW,CAAC;IACpB,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,oDAAoD;IACpD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,6CAA6C;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mDAAmD;IACnD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,4BAA4B;IAC5B,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;IAC7C,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,qBAAqB;IACrB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,oDAAoD;IACpD,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAMD;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAkD5F;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBtF"}
|
|
@@ -9,322 +9,27 @@
|
|
|
9
9
|
* - Package.json has babysitter-sdk dependency if in project context
|
|
10
10
|
* - Environment variables are set correctly
|
|
11
11
|
*/
|
|
12
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
13
|
-
if (k2 === undefined) k2 = k;
|
|
14
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
15
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
16
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
17
|
-
}
|
|
18
|
-
Object.defineProperty(o, k2, desc);
|
|
19
|
-
}) : (function(o, m, k, k2) {
|
|
20
|
-
if (k2 === undefined) k2 = k;
|
|
21
|
-
o[k2] = m[k];
|
|
22
|
-
}));
|
|
23
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
24
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
25
|
-
}) : function(o, v) {
|
|
26
|
-
o["default"] = v;
|
|
27
|
-
});
|
|
28
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
29
|
-
var ownKeys = function(o) {
|
|
30
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
31
|
-
var ar = [];
|
|
32
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
33
|
-
return ar;
|
|
34
|
-
};
|
|
35
|
-
return ownKeys(o);
|
|
36
|
-
};
|
|
37
|
-
return function (mod) {
|
|
38
|
-
if (mod && mod.__esModule) return mod;
|
|
39
|
-
var result = {};
|
|
40
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
41
|
-
__setModuleDefault(result, mod);
|
|
42
|
-
return result;
|
|
43
|
-
};
|
|
44
|
-
})();
|
|
45
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
46
13
|
exports.runHealthCheck = runHealthCheck;
|
|
47
14
|
exports.handleHealthCommand = handleHealthCommand;
|
|
48
|
-
const node_fs_1 = require("node:fs");
|
|
49
|
-
const path = __importStar(require("node:path"));
|
|
50
15
|
const output_1 = require("./health/output");
|
|
51
16
|
const environment_1 = require("./health/environment");
|
|
52
|
-
|
|
53
|
-
// Version Utilities
|
|
54
|
-
// ============================================================================
|
|
55
|
-
/**
|
|
56
|
-
* Reads the CLI version from package.json
|
|
57
|
-
*/
|
|
58
|
-
async function readCliVersion() {
|
|
59
|
-
const candidatePaths = [
|
|
60
|
-
path.join(__dirname, "..", "..", "..", "package.json"),
|
|
61
|
-
path.join(__dirname, "..", "..", "..", "..", "package.json"),
|
|
62
|
-
];
|
|
63
|
-
for (const packagePath of candidatePaths) {
|
|
64
|
-
try {
|
|
65
|
-
const raw = await node_fs_1.promises.readFile(packagePath, "utf8");
|
|
66
|
-
const parsed = JSON.parse(raw);
|
|
67
|
-
return parsed.version ?? "unknown";
|
|
68
|
-
}
|
|
69
|
-
catch {
|
|
70
|
-
// try the next candidate
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
return "unknown";
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Parses a semver version string into components
|
|
77
|
-
*/
|
|
78
|
-
function parseVersion(version) {
|
|
79
|
-
const match = version.match(/^v?(\d+)\.(\d+)\.(\d+)/);
|
|
80
|
-
if (!match)
|
|
81
|
-
return null;
|
|
82
|
-
return {
|
|
83
|
-
major: parseInt(match[1], 10),
|
|
84
|
-
minor: parseInt(match[2], 10),
|
|
85
|
-
patch: parseInt(match[3], 10),
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
// ============================================================================
|
|
89
|
-
// Individual Health Checks
|
|
90
|
-
// ============================================================================
|
|
91
|
-
/**
|
|
92
|
-
* Check: SDK CLI Version
|
|
93
|
-
* Verifies the SDK CLI is installed and version is accessible
|
|
94
|
-
*/
|
|
95
|
-
async function checkSdkVersion() {
|
|
96
|
-
const version = await readCliVersion();
|
|
97
|
-
if (version === "unknown") {
|
|
98
|
-
return {
|
|
99
|
-
name: "sdk-version",
|
|
100
|
-
description: "SDK CLI version is accessible",
|
|
101
|
-
status: "fail",
|
|
102
|
-
message: "Unable to read SDK version from package.json",
|
|
103
|
-
nextSteps: [
|
|
104
|
-
"Ensure @a5c-ai/babysitter-sdk is properly installed",
|
|
105
|
-
"Run: npm install @a5c-ai/babysitter-sdk",
|
|
106
|
-
],
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
return {
|
|
110
|
-
name: "sdk-version",
|
|
111
|
-
description: "SDK CLI version is accessible",
|
|
112
|
-
status: "pass",
|
|
113
|
-
message: `SDK version ${version}`,
|
|
114
|
-
details: { version },
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Check: Node.js Version
|
|
119
|
-
* Verifies Node.js version is compatible (>=18)
|
|
120
|
-
*/
|
|
121
|
-
function checkNodeVersion() {
|
|
122
|
-
const nodeVersion = process.version;
|
|
123
|
-
const parsed = parseVersion(nodeVersion);
|
|
124
|
-
if (!parsed) {
|
|
125
|
-
return {
|
|
126
|
-
name: "node-version",
|
|
127
|
-
description: "Node.js version is compatible (>=18)",
|
|
128
|
-
status: "warn",
|
|
129
|
-
message: `Unable to parse Node.js version: ${nodeVersion}`,
|
|
130
|
-
nextSteps: ["Verify Node.js is properly installed"],
|
|
131
|
-
details: { version: nodeVersion },
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
const minMajor = 18;
|
|
135
|
-
if (parsed.major < minMajor) {
|
|
136
|
-
return {
|
|
137
|
-
name: "node-version",
|
|
138
|
-
description: "Node.js version is compatible (>=18)",
|
|
139
|
-
status: "fail",
|
|
140
|
-
message: `Node.js ${nodeVersion} is below minimum required version (v${minMajor}.0.0)`,
|
|
141
|
-
nextSteps: [
|
|
142
|
-
`Upgrade Node.js to version ${minMajor} or higher`,
|
|
143
|
-
"Visit https://nodejs.org to download the latest LTS version",
|
|
144
|
-
"Consider using nvm or fnm for version management",
|
|
145
|
-
],
|
|
146
|
-
details: { version: nodeVersion, required: `>=${minMajor}.0.0` },
|
|
147
|
-
};
|
|
148
|
-
}
|
|
149
|
-
return {
|
|
150
|
-
name: "node-version",
|
|
151
|
-
description: "Node.js version is compatible (>=18)",
|
|
152
|
-
status: "pass",
|
|
153
|
-
message: `Node.js ${nodeVersion}`,
|
|
154
|
-
details: { version: nodeVersion, major: parsed.major },
|
|
155
|
-
};
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* Check: .a5c Directory
|
|
159
|
-
* Verifies the .a5c directory exists and is writable
|
|
160
|
-
*/
|
|
161
|
-
async function checkA5cDirectory(cwd) {
|
|
162
|
-
const a5cDir = path.join(cwd, ".a5c");
|
|
163
|
-
const runsDir = path.join(a5cDir, "runs");
|
|
164
|
-
try {
|
|
165
|
-
const stats = await node_fs_1.promises.stat(a5cDir);
|
|
166
|
-
if (!stats.isDirectory()) {
|
|
167
|
-
return {
|
|
168
|
-
name: "a5c-directory",
|
|
169
|
-
description: ".a5c directory exists and is writable",
|
|
170
|
-
status: "fail",
|
|
171
|
-
message: `.a5c exists but is not a directory at ${a5cDir}`,
|
|
172
|
-
nextSteps: [
|
|
173
|
-
"Remove the .a5c file and let the SDK create the directory",
|
|
174
|
-
"Or run: rm .a5c && mkdir -p .a5c/runs",
|
|
175
|
-
],
|
|
176
|
-
details: { path: a5cDir, isDirectory: false },
|
|
177
|
-
};
|
|
178
|
-
}
|
|
179
|
-
// Check if writable by attempting to write a test file
|
|
180
|
-
const testFile = path.join(a5cDir, ".health-check-test");
|
|
181
|
-
try {
|
|
182
|
-
await node_fs_1.promises.writeFile(testFile, "test", "utf8");
|
|
183
|
-
await node_fs_1.promises.unlink(testFile);
|
|
184
|
-
}
|
|
185
|
-
catch (writeError) {
|
|
186
|
-
return {
|
|
187
|
-
name: "a5c-directory",
|
|
188
|
-
description: ".a5c directory exists and is writable",
|
|
189
|
-
status: "fail",
|
|
190
|
-
message: `.a5c directory exists but is not writable at ${a5cDir}`,
|
|
191
|
-
nextSteps: [
|
|
192
|
-
"Check file permissions on the .a5c directory",
|
|
193
|
-
"Run: chmod 755 .a5c",
|
|
194
|
-
],
|
|
195
|
-
details: { path: a5cDir, writable: false },
|
|
196
|
-
};
|
|
197
|
-
}
|
|
198
|
-
// Check if runs subdirectory exists
|
|
199
|
-
let runsExists = false;
|
|
200
|
-
try {
|
|
201
|
-
const runsStats = await node_fs_1.promises.stat(runsDir);
|
|
202
|
-
runsExists = runsStats.isDirectory();
|
|
203
|
-
}
|
|
204
|
-
catch {
|
|
205
|
-
// runs dir doesn't exist yet, that's okay
|
|
206
|
-
}
|
|
207
|
-
return {
|
|
208
|
-
name: "a5c-directory",
|
|
209
|
-
description: ".a5c directory exists and is writable",
|
|
210
|
-
status: "pass",
|
|
211
|
-
message: `.a5c directory is ready at ${a5cDir}`,
|
|
212
|
-
details: { path: a5cDir, runsDir, runsExists, writable: true },
|
|
213
|
-
};
|
|
214
|
-
}
|
|
215
|
-
catch (error) {
|
|
216
|
-
const err = error;
|
|
217
|
-
if (err.code === "ENOENT") {
|
|
218
|
-
return {
|
|
219
|
-
name: "a5c-directory",
|
|
220
|
-
description: ".a5c directory exists and is writable",
|
|
221
|
-
status: "warn",
|
|
222
|
-
message: `.a5c directory does not exist at ${a5cDir}`,
|
|
223
|
-
nextSteps: [
|
|
224
|
-
"The directory will be created automatically when running babysitter commands",
|
|
225
|
-
"Or create it manually: mkdir -p .a5c/runs",
|
|
226
|
-
],
|
|
227
|
-
details: { path: a5cDir, exists: false },
|
|
228
|
-
};
|
|
229
|
-
}
|
|
230
|
-
return {
|
|
231
|
-
name: "a5c-directory",
|
|
232
|
-
description: ".a5c directory exists and is writable",
|
|
233
|
-
status: "fail",
|
|
234
|
-
message: `Error accessing .a5c directory: ${err.message}`,
|
|
235
|
-
nextSteps: ["Check file system permissions and disk space"],
|
|
236
|
-
details: { path: a5cDir, error: err.message },
|
|
237
|
-
};
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
/**
|
|
241
|
-
* Check: Package.json Dependency
|
|
242
|
-
* Verifies babysitter-sdk is listed as a dependency in the project
|
|
243
|
-
*/
|
|
244
|
-
async function checkPackageDependency(cwd) {
|
|
245
|
-
const packagePath = path.join(cwd, "package.json");
|
|
246
|
-
try {
|
|
247
|
-
const raw = await node_fs_1.promises.readFile(packagePath, "utf8");
|
|
248
|
-
const pkg = JSON.parse(raw);
|
|
249
|
-
const depVersion = pkg.dependencies?.["@a5c-ai/babysitter-sdk"];
|
|
250
|
-
const devDepVersion = pkg.devDependencies?.["@a5c-ai/babysitter-sdk"];
|
|
251
|
-
const version = depVersion || devDepVersion;
|
|
252
|
-
const location = depVersion ? "dependencies" : devDepVersion ? "devDependencies" : null;
|
|
253
|
-
if (version) {
|
|
254
|
-
return {
|
|
255
|
-
name: "package-dependency",
|
|
256
|
-
description: "Project has babysitter-sdk dependency",
|
|
257
|
-
status: "pass",
|
|
258
|
-
message: `@a5c-ai/babysitter-sdk@${version} found in ${location}`,
|
|
259
|
-
details: { version, location, packagePath },
|
|
260
|
-
};
|
|
261
|
-
}
|
|
262
|
-
return {
|
|
263
|
-
name: "package-dependency",
|
|
264
|
-
description: "Project has babysitter-sdk dependency",
|
|
265
|
-
status: "warn",
|
|
266
|
-
message: "@a5c-ai/babysitter-sdk not found in package.json",
|
|
267
|
-
nextSteps: [
|
|
268
|
-
"Add the dependency: npm install @a5c-ai/babysitter-sdk",
|
|
269
|
-
"Or if this is not a babysitter project, this warning can be ignored",
|
|
270
|
-
],
|
|
271
|
-
details: { packagePath, found: false },
|
|
272
|
-
};
|
|
273
|
-
}
|
|
274
|
-
catch (error) {
|
|
275
|
-
const err = error;
|
|
276
|
-
if (err.code === "ENOENT") {
|
|
277
|
-
return {
|
|
278
|
-
name: "package-dependency",
|
|
279
|
-
description: "Project has babysitter-sdk dependency",
|
|
280
|
-
status: "warn",
|
|
281
|
-
message: "No package.json found in current directory",
|
|
282
|
-
nextSteps: [
|
|
283
|
-
"If this is a Node.js project, run: npm init -y",
|
|
284
|
-
"If not in a project directory, this warning can be ignored",
|
|
285
|
-
],
|
|
286
|
-
details: { packagePath, exists: false },
|
|
287
|
-
};
|
|
288
|
-
}
|
|
289
|
-
return {
|
|
290
|
-
name: "package-dependency",
|
|
291
|
-
description: "Project has babysitter-sdk dependency",
|
|
292
|
-
status: "warn",
|
|
293
|
-
message: `Error reading package.json: ${err.message}`,
|
|
294
|
-
details: { packagePath, error: err.message },
|
|
295
|
-
};
|
|
296
|
-
}
|
|
297
|
-
}
|
|
17
|
+
const checks_1 = require("./health/checks");
|
|
298
18
|
// ============================================================================
|
|
299
19
|
// Main Health Check Runner
|
|
300
20
|
// ============================================================================
|
|
301
21
|
/**
|
|
302
22
|
* Runs all health checks and returns aggregated results
|
|
303
|
-
*
|
|
304
|
-
* @param options - Health check options
|
|
305
|
-
* @returns Complete health check result
|
|
306
|
-
*
|
|
307
|
-
* @example
|
|
308
|
-
* ```ts
|
|
309
|
-
* // Run health checks with default options
|
|
310
|
-
* const result = await runHealthCheck({});
|
|
311
|
-
*
|
|
312
|
-
* // Run with verbose output
|
|
313
|
-
* const result = await runHealthCheck({ verbose: true });
|
|
314
|
-
*
|
|
315
|
-
* // Get JSON output
|
|
316
|
-
* const result = await runHealthCheck({ json: true });
|
|
317
|
-
* ```
|
|
318
23
|
*/
|
|
319
24
|
async function runHealthCheck(options) {
|
|
320
25
|
const cwd = options.cwd ?? process.cwd();
|
|
321
26
|
const timestamp = new Date().toISOString();
|
|
322
27
|
// Run all checks
|
|
323
28
|
const checks = await Promise.all([
|
|
324
|
-
checkSdkVersion(),
|
|
325
|
-
checkNodeVersion(),
|
|
326
|
-
checkA5cDirectory(cwd),
|
|
327
|
-
checkPackageDependency(cwd),
|
|
29
|
+
(0, checks_1.checkSdkVersion)(),
|
|
30
|
+
(0, checks_1.checkNodeVersion)(),
|
|
31
|
+
(0, checks_1.checkA5cDirectory)(cwd),
|
|
32
|
+
(0, checks_1.checkPackageDependency)(cwd),
|
|
328
33
|
(0, environment_1.checkEnvironmentVariables)(),
|
|
329
34
|
]);
|
|
330
35
|
// Calculate summary
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/hooks/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAWH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,wGAAwG;IACxG,OAAO,EAAE,MAAM,CAAC;IAChB,8IAA8I;IAC9I,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAmJD,wBAAsB,aAAa,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/hooks/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAWH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,wGAAwG;IACxG,OAAO,EAAE,MAAM,CAAC;IAChB,8IAA8I;IAC9I,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAmJD,wBAAsB,aAAa,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CA2F7E"}
|