@cleocode/core 2026.4.6 → 2026.4.7
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/package.json +7 -7
- package/dist/cant/approval.d.ts +0 -110
- package/dist/cant/approval.d.ts.map +0 -1
- package/dist/cant/context-builder.d.ts +0 -79
- package/dist/cant/context-builder.d.ts.map +0 -1
- package/dist/cant/discretion.d.ts +0 -95
- package/dist/cant/discretion.d.ts.map +0 -1
- package/dist/cant/index.d.ts +0 -25
- package/dist/cant/index.d.ts.map +0 -1
- package/dist/cant/parallel-runner.d.ts +0 -38
- package/dist/cant/parallel-runner.d.ts.map +0 -1
- package/dist/cant/types.d.ts +0 -127
- package/dist/cant/types.d.ts.map +0 -1
- package/dist/cant/workflow-executor.d.ts +0 -105
- package/dist/cant/workflow-executor.d.ts.map +0 -1
- package/src/__tests__/audit-prune.test.d.ts.map +0 -1
- package/src/__tests__/audit-prune.test.js +0 -162
- package/src/__tests__/audit-prune.test.js.map +0 -1
- package/src/__tests__/caamp-skill-install.test.d.ts.map +0 -1
- package/src/__tests__/caamp-skill-install.test.js +0 -147
- package/src/__tests__/caamp-skill-install.test.js.map +0 -1
- package/src/__tests__/cli-parity.test.d.ts.map +0 -1
- package/src/__tests__/cli-parity.test.js +0 -209
- package/src/__tests__/cli-parity.test.js.map +0 -1
- package/src/__tests__/config.test.d.ts.map +0 -1
- package/src/__tests__/config.test.js +0 -144
- package/src/__tests__/config.test.js.map +0 -1
- package/src/__tests__/core-parity.test.d.ts.map +0 -1
- package/src/__tests__/core-parity.test.js +0 -645
- package/src/__tests__/core-parity.test.js.map +0 -1
- package/src/__tests__/error-catalog.test.d.ts.map +0 -1
- package/src/__tests__/error-catalog.test.js +0 -127
- package/src/__tests__/error-catalog.test.js.map +0 -1
- package/src/__tests__/golden-parity.test.d.ts.map +0 -1
- package/src/__tests__/golden-parity.test.js +0 -212
- package/src/__tests__/golden-parity.test.js.map +0 -1
- package/src/__tests__/hooks.test.d.ts.map +0 -1
- package/src/__tests__/hooks.test.js +0 -201
- package/src/__tests__/hooks.test.js.map +0 -1
- package/src/__tests__/human-output.test.d.ts.map +0 -1
- package/src/__tests__/human-output.test.js +0 -158
- package/src/__tests__/human-output.test.js.map +0 -1
- package/src/__tests__/index-api-compat.test.d.ts.map +0 -1
- package/src/__tests__/index-api-compat.test.js +0 -16
- package/src/__tests__/index-api-compat.test.js.map +0 -1
- package/src/__tests__/init-e2e.test.d.ts.map +0 -1
- package/src/__tests__/init-e2e.test.js +0 -221
- package/src/__tests__/init-e2e.test.js.map +0 -1
- package/src/__tests__/injection-chain.test.d.ts.map +0 -1
- package/src/__tests__/injection-chain.test.js +0 -234
- package/src/__tests__/injection-chain.test.js.map +0 -1
- package/src/__tests__/injection-mvi-tiers.test.d.ts.map +0 -1
- package/src/__tests__/injection-mvi-tiers.test.js +0 -116
- package/src/__tests__/injection-mvi-tiers.test.js.map +0 -1
- package/src/__tests__/injection-shared.test.d.ts.map +0 -1
- package/src/__tests__/injection-shared.test.js +0 -194
- package/src/__tests__/injection-shared.test.js.map +0 -1
- package/src/__tests__/lafs-conformance.test.d.ts.map +0 -1
- package/src/__tests__/lafs-conformance.test.js +0 -786
- package/src/__tests__/lafs-conformance.test.js.map +0 -1
- package/src/__tests__/logger.test.d.ts.map +0 -1
- package/src/__tests__/logger.test.js +0 -75
- package/src/__tests__/logger.test.js.map +0 -1
- package/src/__tests__/paths.test.d.ts.map +0 -1
- package/src/__tests__/paths.test.js +0 -327
- package/src/__tests__/paths.test.js.map +0 -1
- package/src/__tests__/project-info.test.d.ts.map +0 -1
- package/src/__tests__/project-info.test.js +0 -156
- package/src/__tests__/project-info.test.js.map +0 -1
- package/src/__tests__/rcsd-pipeline-e2e.test.d.ts.map +0 -1
- package/src/__tests__/rcsd-pipeline-e2e.test.js +0 -263
- package/src/__tests__/rcsd-pipeline-e2e.test.js.map +0 -1
- package/src/__tests__/remote.test.d.ts.map +0 -1
- package/src/__tests__/remote.test.js +0 -149
- package/src/__tests__/remote.test.js.map +0 -1
- package/src/__tests__/scaffold.test.d.ts.map +0 -1
- package/src/__tests__/scaffold.test.js +0 -474
- package/src/__tests__/scaffold.test.js.map +0 -1
- package/src/__tests__/schema-management.test.d.ts.map +0 -1
- package/src/__tests__/schema-management.test.js +0 -287
- package/src/__tests__/schema-management.test.js.map +0 -1
- package/src/__tests__/schema.test.d.ts.map +0 -1
- package/src/__tests__/schema.test.js +0 -51
- package/src/__tests__/schema.test.js.map +0 -1
- package/src/__tests__/sharing.test.d.ts.map +0 -1
- package/src/__tests__/sharing.test.js +0 -160
- package/src/__tests__/sharing.test.js.map +0 -1
- package/src/__tests__/snapshot.test.d.ts.map +0 -1
- package/src/__tests__/snapshot.test.js +0 -72
- package/src/__tests__/snapshot.test.js.map +0 -1
- package/src/__tests__/upgrade.test.d.ts.map +0 -1
- package/src/__tests__/upgrade.test.js +0 -321
- package/src/__tests__/upgrade.test.js.map +0 -1
- package/src/adapters/__tests__/discovery.test.d.ts.map +0 -1
- package/src/adapters/__tests__/discovery.test.js +0 -56
- package/src/adapters/__tests__/discovery.test.js.map +0 -1
- package/src/adapters/__tests__/manager.test.d.ts.map +0 -1
- package/src/adapters/__tests__/manager.test.js +0 -260
- package/src/adapters/__tests__/manager.test.js.map +0 -1
- package/src/agents/__tests__/agent-registry.test.d.ts.map +0 -1
- package/src/agents/__tests__/agent-registry.test.js +0 -262
- package/src/agents/__tests__/agent-registry.test.js.map +0 -1
- package/src/agents/__tests__/capacity.test.d.ts.map +0 -1
- package/src/agents/__tests__/capacity.test.js +0 -173
- package/src/agents/__tests__/capacity.test.js.map +0 -1
- package/src/agents/__tests__/execution-learning.test.d.ts.map +0 -1
- package/src/agents/__tests__/execution-learning.test.js +0 -533
- package/src/agents/__tests__/execution-learning.test.js.map +0 -1
- package/src/agents/__tests__/health-monitor.test.d.ts.map +0 -1
- package/src/agents/__tests__/health-monitor.test.js +0 -259
- package/src/agents/__tests__/health-monitor.test.js.map +0 -1
- package/src/agents/__tests__/registry.test.d.ts.map +0 -1
- package/src/agents/__tests__/registry.test.js +0 -373
- package/src/agents/__tests__/registry.test.js.map +0 -1
- package/src/agents/__tests__/retry.test.d.ts.map +0 -1
- package/src/agents/__tests__/retry.test.js +0 -225
- package/src/agents/__tests__/retry.test.js.map +0 -1
- package/src/cant/__tests__/cant-agent-parse.test.d.ts.map +0 -1
- package/src/cant/__tests__/cant-agent-parse.test.js +0 -77
- package/src/cant/__tests__/cant-agent-parse.test.js.map +0 -1
- package/src/cant/__tests__/cant-agent-parse.test.ts +0 -94
- package/src/cant/approval.ts +0 -218
- package/src/cant/context-builder.ts +0 -135
- package/src/cant/discretion.ts +0 -149
- package/src/cant/index.ts +0 -58
- package/src/cant/parallel-runner.ts +0 -205
- package/src/cant/types.ts +0 -158
- package/src/cant/workflow-executor.ts +0 -618
- package/src/compliance/__tests__/sync.test.d.ts.map +0 -1
- package/src/compliance/__tests__/sync.test.js +0 -119
- package/src/compliance/__tests__/sync.test.js.map +0 -1
- package/src/conduit/__tests__/local-credential-flow.test.d.ts.map +0 -1
- package/src/conduit/__tests__/local-credential-flow.test.js +0 -185
- package/src/conduit/__tests__/local-credential-flow.test.js.map +0 -1
- package/src/conduit/__tests__/local-transport.test.d.ts.map +0 -1
- package/src/conduit/__tests__/local-transport.test.js +0 -404
- package/src/conduit/__tests__/local-transport.test.js.map +0 -1
- package/src/conduit/__tests__/sse-transport.test.d.ts.map +0 -1
- package/src/conduit/__tests__/sse-transport.test.js +0 -291
- package/src/conduit/__tests__/sse-transport.test.js.map +0 -1
- package/src/hooks/__tests__/provider-hooks.test.d.ts.map +0 -1
- package/src/hooks/__tests__/provider-hooks.test.js +0 -33
- package/src/hooks/__tests__/provider-hooks.test.js.map +0 -1
- package/src/hooks/__tests__/registry.test.d.ts.map +0 -1
- package/src/hooks/__tests__/registry.test.js +0 -37
- package/src/hooks/__tests__/registry.test.js.map +0 -1
- package/src/hooks/handlers/__tests__/error-hooks.test.d.ts.map +0 -1
- package/src/hooks/handlers/__tests__/error-hooks.test.js +0 -90
- package/src/hooks/handlers/__tests__/error-hooks.test.js.map +0 -1
- package/src/hooks/handlers/__tests__/file-hooks.test.d.ts.map +0 -1
- package/src/hooks/handlers/__tests__/file-hooks.test.js +0 -128
- package/src/hooks/handlers/__tests__/file-hooks.test.js.map +0 -1
- package/src/hooks/handlers/__tests__/hook-automation-e2e.test.d.ts.map +0 -1
- package/src/hooks/handlers/__tests__/hook-automation-e2e.test.js +0 -503
- package/src/hooks/handlers/__tests__/hook-automation-e2e.test.js.map +0 -1
- package/src/hooks/handlers/__tests__/session-hooks.test.d.ts.map +0 -1
- package/src/hooks/handlers/__tests__/session-hooks.test.js +0 -54
- package/src/hooks/handlers/__tests__/session-hooks.test.js.map +0 -1
- package/src/hooks/handlers/__tests__/task-hooks.test.d.ts.map +0 -1
- package/src/hooks/handlers/__tests__/task-hooks.test.js +0 -77
- package/src/hooks/handlers/__tests__/task-hooks.test.js.map +0 -1
- package/src/intelligence/__tests__/adaptive-validation.test.d.ts.map +0 -1
- package/src/intelligence/__tests__/adaptive-validation.test.js +0 -517
- package/src/intelligence/__tests__/adaptive-validation.test.js.map +0 -1
- package/src/intelligence/__tests__/impact.test.d.ts.map +0 -1
- package/src/intelligence/__tests__/impact.test.js +0 -515
- package/src/intelligence/__tests__/impact.test.js.map +0 -1
- package/src/intelligence/__tests__/patterns.test.d.ts.map +0 -1
- package/src/intelligence/__tests__/patterns.test.js +0 -370
- package/src/intelligence/__tests__/patterns.test.js.map +0 -1
- package/src/intelligence/__tests__/prediction.test.d.ts.map +0 -1
- package/src/intelligence/__tests__/prediction.test.js +0 -314
- package/src/intelligence/__tests__/prediction.test.js.map +0 -1
- package/src/lib/__tests__/retry.test.d.ts.map +0 -1
- package/src/lib/__tests__/retry.test.js +0 -225
- package/src/lib/__tests__/retry.test.js.map +0 -1
- package/src/lifecycle/__tests__/chain-store.test.d.ts.map +0 -1
- package/src/lifecycle/__tests__/chain-store.test.js +0 -243
- package/src/lifecycle/__tests__/chain-store.test.js.map +0 -1
- package/src/lifecycle/__tests__/consolidate-rcasd.test.d.ts.map +0 -1
- package/src/lifecycle/__tests__/consolidate-rcasd.test.js +0 -210
- package/src/lifecycle/__tests__/consolidate-rcasd.test.js.map +0 -1
- package/src/lifecycle/__tests__/default-chain.test.d.ts.map +0 -1
- package/src/lifecycle/__tests__/default-chain.test.js +0 -74
- package/src/lifecycle/__tests__/default-chain.test.js.map +0 -1
- package/src/lifecycle/__tests__/frontmatter.test.d.ts.map +0 -1
- package/src/lifecycle/__tests__/frontmatter.test.js +0 -229
- package/src/lifecycle/__tests__/frontmatter.test.js.map +0 -1
- package/src/lifecycle/__tests__/lifecycle.test.d.ts.map +0 -1
- package/src/lifecycle/__tests__/lifecycle.test.js +0 -126
- package/src/lifecycle/__tests__/lifecycle.test.js.map +0 -1
- package/src/lifecycle/__tests__/pipeline.integration.test.d.ts.map +0 -1
- package/src/lifecycle/__tests__/pipeline.integration.test.js +0 -977
- package/src/lifecycle/__tests__/pipeline.integration.test.js.map +0 -1
- package/src/lifecycle/__tests__/rcasd-paths.test.d.ts.map +0 -1
- package/src/lifecycle/__tests__/rcasd-paths.test.js +0 -206
- package/src/lifecycle/__tests__/rcasd-paths.test.js.map +0 -1
- package/src/lifecycle/__tests__/resume-schema-contract.test.d.ts.map +0 -1
- package/src/lifecycle/__tests__/resume-schema-contract.test.js +0 -246
- package/src/lifecycle/__tests__/resume-schema-contract.test.js.map +0 -1
- package/src/lifecycle/__tests__/stage-record-provenance.integration.test.d.ts.map +0 -1
- package/src/lifecycle/__tests__/stage-record-provenance.integration.test.js +0 -95
- package/src/lifecycle/__tests__/stage-record-provenance.integration.test.js.map +0 -1
- package/src/lifecycle/__tests__/tessera-engine.test.d.ts.map +0 -1
- package/src/lifecycle/__tests__/tessera-engine.test.js +0 -392
- package/src/lifecycle/__tests__/tessera-engine.test.js.map +0 -1
- package/src/memory/__tests__/auto-extract.test.d.ts.map +0 -1
- package/src/memory/__tests__/auto-extract.test.js +0 -197
- package/src/memory/__tests__/auto-extract.test.js.map +0 -1
- package/src/memory/__tests__/brain-automation.test.d.ts.map +0 -1
- package/src/memory/__tests__/brain-automation.test.js +0 -730
- package/src/memory/__tests__/brain-automation.test.js.map +0 -1
- package/src/memory/__tests__/brain-embedding.test.d.ts.map +0 -1
- package/src/memory/__tests__/brain-embedding.test.js +0 -92
- package/src/memory/__tests__/brain-embedding.test.js.map +0 -1
- package/src/memory/__tests__/brain-links.test.d.ts.map +0 -1
- package/src/memory/__tests__/brain-links.test.js +0 -221
- package/src/memory/__tests__/brain-links.test.js.map +0 -1
- package/src/memory/__tests__/brain-migration.test.d.ts.map +0 -1
- package/src/memory/__tests__/brain-migration.test.js +0 -180
- package/src/memory/__tests__/brain-migration.test.js.map +0 -1
- package/src/memory/__tests__/brain-retrieval.test.d.ts.map +0 -1
- package/src/memory/__tests__/brain-retrieval.test.js +0 -701
- package/src/memory/__tests__/brain-retrieval.test.js.map +0 -1
- package/src/memory/__tests__/brain-search.test.d.ts.map +0 -1
- package/src/memory/__tests__/brain-search.test.js +0 -180
- package/src/memory/__tests__/brain-search.test.js.map +0 -1
- package/src/memory/__tests__/claude-mem-migration.test.d.ts.map +0 -1
- package/src/memory/__tests__/claude-mem-migration.test.js +0 -424
- package/src/memory/__tests__/claude-mem-migration.test.js.map +0 -1
- package/src/memory/__tests__/decisions.test.d.ts.map +0 -1
- package/src/memory/__tests__/decisions.test.js +0 -253
- package/src/memory/__tests__/decisions.test.js.map +0 -1
- package/src/memory/__tests__/engine-compat.test.d.ts.map +0 -1
- package/src/memory/__tests__/engine-compat.test.js +0 -331
- package/src/memory/__tests__/engine-compat.test.js.map +0 -1
- package/src/memory/__tests__/memory-bridge.test.d.ts.map +0 -1
- package/src/memory/__tests__/memory-bridge.test.js +0 -231
- package/src/memory/__tests__/memory-bridge.test.js.map +0 -1
- package/src/memory/__tests__/pipeline-manifest-sqlite.test.d.ts.map +0 -1
- package/src/memory/__tests__/pipeline-manifest-sqlite.test.js +0 -516
- package/src/memory/__tests__/pipeline-manifest-sqlite.test.js.map +0 -1
- package/src/memory/__tests__/session-memory.test.d.ts.map +0 -1
- package/src/memory/__tests__/session-memory.test.js +0 -387
- package/src/memory/__tests__/session-memory.test.js.map +0 -1
- package/src/metrics/__tests__/model-provider-registry.test.d.ts.map +0 -1
- package/src/metrics/__tests__/model-provider-registry.test.js +0 -45
- package/src/metrics/__tests__/model-provider-registry.test.js.map +0 -1
- package/src/metrics/__tests__/provider-detection.test.d.ts.map +0 -1
- package/src/metrics/__tests__/provider-detection.test.js +0 -123
- package/src/metrics/__tests__/provider-detection.test.js.map +0 -1
- package/src/migration/__tests__/checksum.test.d.ts.map +0 -1
- package/src/migration/__tests__/checksum.test.js +0 -216
- package/src/migration/__tests__/checksum.test.js.map +0 -1
- package/src/migration/__tests__/logger.test.d.ts.map +0 -1
- package/src/migration/__tests__/logger.test.js +0 -256
- package/src/migration/__tests__/logger.test.js.map +0 -1
- package/src/migration/__tests__/migration-failure.integration.test.d.ts.map +0 -1
- package/src/migration/__tests__/migration-failure.integration.test.js +0 -515
- package/src/migration/__tests__/migration-failure.integration.test.js.map +0 -1
- package/src/migration/__tests__/migration.test.d.ts.map +0 -1
- package/src/migration/__tests__/migration.test.js +0 -82
- package/src/migration/__tests__/migration.test.js.map +0 -1
- package/src/migration/__tests__/state.test.d.ts.map +0 -1
- package/src/migration/__tests__/state.test.js +0 -330
- package/src/migration/__tests__/state.test.js.map +0 -1
- package/src/migration/__tests__/validate.test.d.ts.map +0 -1
- package/src/migration/__tests__/validate.test.js +0 -258
- package/src/migration/__tests__/validate.test.js.map +0 -1
- package/src/nexus/__tests__/deps.test.d.ts.map +0 -1
- package/src/nexus/__tests__/deps.test.js +0 -283
- package/src/nexus/__tests__/deps.test.js.map +0 -1
- package/src/nexus/__tests__/nexus-e2e.test.d.ts.map +0 -1
- package/src/nexus/__tests__/nexus-e2e.test.js +0 -1220
- package/src/nexus/__tests__/nexus-e2e.test.js.map +0 -1
- package/src/nexus/__tests__/permissions.test.d.ts.map +0 -1
- package/src/nexus/__tests__/permissions.test.js +0 -119
- package/src/nexus/__tests__/permissions.test.js.map +0 -1
- package/src/nexus/__tests__/query.test.d.ts.map +0 -1
- package/src/nexus/__tests__/query.test.js +0 -168
- package/src/nexus/__tests__/query.test.js.map +0 -1
- package/src/nexus/__tests__/reconcile.test.d.ts.map +0 -1
- package/src/nexus/__tests__/reconcile.test.js +0 -135
- package/src/nexus/__tests__/reconcile.test.js.map +0 -1
- package/src/nexus/__tests__/registry.test.d.ts.map +0 -1
- package/src/nexus/__tests__/registry.test.js +0 -229
- package/src/nexus/__tests__/registry.test.js.map +0 -1
- package/src/nexus/__tests__/transfer.test.d.ts.map +0 -1
- package/src/nexus/__tests__/transfer.test.js +0 -372
- package/src/nexus/__tests__/transfer.test.js.map +0 -1
- package/src/observability/__tests__/index.test.d.ts.map +0 -1
- package/src/observability/__tests__/index.test.js +0 -288
- package/src/observability/__tests__/index.test.js.map +0 -1
- package/src/observability/__tests__/log-filter.test.d.ts.map +0 -1
- package/src/observability/__tests__/log-filter.test.js +0 -151
- package/src/observability/__tests__/log-filter.test.js.map +0 -1
- package/src/observability/__tests__/log-parser.test.d.ts.map +0 -1
- package/src/observability/__tests__/log-parser.test.js +0 -170
- package/src/observability/__tests__/log-parser.test.js.map +0 -1
- package/src/observability/__tests__/log-reader.test.d.ts.map +0 -1
- package/src/observability/__tests__/log-reader.test.js +0 -150
- package/src/observability/__tests__/log-reader.test.js.map +0 -1
- package/src/orchestration/__tests__/autonomous-spec.test.d.ts.map +0 -1
- package/src/orchestration/__tests__/autonomous-spec.test.js +0 -419
- package/src/orchestration/__tests__/autonomous-spec.test.js.map +0 -1
- package/src/orchestration/__tests__/orchestration.test.d.ts.map +0 -1
- package/src/orchestration/__tests__/orchestration.test.js +0 -205
- package/src/orchestration/__tests__/orchestration.test.js.map +0 -1
- package/src/orchestration/__tests__/protocol-validators.test.d.ts.map +0 -1
- package/src/orchestration/__tests__/protocol-validators.test.js +0 -602
- package/src/orchestration/__tests__/protocol-validators.test.js.map +0 -1
- package/src/phases/__tests__/deps.test.d.ts.map +0 -1
- package/src/phases/__tests__/deps.test.js +0 -210
- package/src/phases/__tests__/deps.test.js.map +0 -1
- package/src/phases/__tests__/phases.test.d.ts.map +0 -1
- package/src/phases/__tests__/phases.test.js +0 -215
- package/src/phases/__tests__/phases.test.js.map +0 -1
- package/src/release/__tests__/artifacts.test.d.ts.map +0 -1
- package/src/release/__tests__/artifacts.test.js +0 -65
- package/src/release/__tests__/artifacts.test.js.map +0 -1
- package/src/release/__tests__/cancel-release.test.d.ts.map +0 -1
- package/src/release/__tests__/cancel-release.test.js +0 -154
- package/src/release/__tests__/cancel-release.test.js.map +0 -1
- package/src/release/__tests__/changelog-writer.test.d.ts.map +0 -1
- package/src/release/__tests__/changelog-writer.test.js +0 -132
- package/src/release/__tests__/changelog-writer.test.js.map +0 -1
- package/src/release/__tests__/push-policy.test.d.ts.map +0 -1
- package/src/release/__tests__/push-policy.test.js +0 -142
- package/src/release/__tests__/push-policy.test.js.map +0 -1
- package/src/release/__tests__/release.test.d.ts.map +0 -1
- package/src/release/__tests__/release.test.js +0 -25
- package/src/release/__tests__/release.test.js.map +0 -1
- package/src/sequence/__tests__/allocate.test.d.ts.map +0 -1
- package/src/sequence/__tests__/allocate.test.js +0 -113
- package/src/sequence/__tests__/allocate.test.js.map +0 -1
- package/src/sessions/__tests__/briefing-blocked.test.d.ts.map +0 -1
- package/src/sessions/__tests__/briefing-blocked.test.js +0 -117
- package/src/sessions/__tests__/briefing-blocked.test.js.map +0 -1
- package/src/sessions/__tests__/briefing.test.d.ts.map +0 -1
- package/src/sessions/__tests__/briefing.test.js +0 -336
- package/src/sessions/__tests__/briefing.test.js.map +0 -1
- package/src/sessions/__tests__/handoff-integration.test.d.ts.map +0 -1
- package/src/sessions/__tests__/handoff-integration.test.js +0 -264
- package/src/sessions/__tests__/handoff-integration.test.js.map +0 -1
- package/src/sessions/__tests__/handoff.test.d.ts.map +0 -1
- package/src/sessions/__tests__/handoff.test.js +0 -435
- package/src/sessions/__tests__/handoff.test.js.map +0 -1
- package/src/sessions/__tests__/index.test.d.ts.map +0 -1
- package/src/sessions/__tests__/index.test.js +0 -82
- package/src/sessions/__tests__/index.test.js.map +0 -1
- package/src/sessions/__tests__/session-cleanup.test.d.ts.map +0 -1
- package/src/sessions/__tests__/session-cleanup.test.js +0 -201
- package/src/sessions/__tests__/session-cleanup.test.js.map +0 -1
- package/src/sessions/__tests__/session-edge-cases.test.d.ts.map +0 -1
- package/src/sessions/__tests__/session-edge-cases.test.js +0 -251
- package/src/sessions/__tests__/session-edge-cases.test.js.map +0 -1
- package/src/sessions/__tests__/session-find.test.d.ts.map +0 -1
- package/src/sessions/__tests__/session-find.test.js +0 -210
- package/src/sessions/__tests__/session-find.test.js.map +0 -1
- package/src/sessions/__tests__/session-grade.integration.test.d.ts.map +0 -1
- package/src/sessions/__tests__/session-grade.integration.test.js +0 -287
- package/src/sessions/__tests__/session-grade.integration.test.js.map +0 -1
- package/src/sessions/__tests__/session-grade.test.d.ts.map +0 -1
- package/src/sessions/__tests__/session-grade.test.js +0 -630
- package/src/sessions/__tests__/session-grade.test.js.map +0 -1
- package/src/sessions/__tests__/session-memory-bridge.test.d.ts.map +0 -1
- package/src/sessions/__tests__/session-memory-bridge.test.js +0 -52
- package/src/sessions/__tests__/session-memory-bridge.test.js.map +0 -1
- package/src/sessions/__tests__/sessions.test.d.ts.map +0 -1
- package/src/sessions/__tests__/sessions.test.js +0 -113
- package/src/sessions/__tests__/sessions.test.js.map +0 -1
- package/src/skills/__tests__/discovery.test.d.ts.map +0 -1
- package/src/skills/__tests__/discovery.test.js +0 -171
- package/src/skills/__tests__/discovery.test.js.map +0 -1
- package/src/skills/__tests__/dispatch.test.d.ts.map +0 -1
- package/src/skills/__tests__/dispatch.test.js +0 -99
- package/src/skills/__tests__/dispatch.test.js.map +0 -1
- package/src/skills/__tests__/dynamic-skill-generator.test.d.ts.map +0 -1
- package/src/skills/__tests__/dynamic-skill-generator.test.js +0 -77
- package/src/skills/__tests__/dynamic-skill-generator.test.js.map +0 -1
- package/src/skills/__tests__/manifests.test.d.ts.map +0 -1
- package/src/skills/__tests__/manifests.test.js +0 -121
- package/src/skills/__tests__/manifests.test.js.map +0 -1
- package/src/skills/__tests__/precedence.test.d.ts.map +0 -1
- package/src/skills/__tests__/precedence.test.js +0 -325
- package/src/skills/__tests__/precedence.test.js.map +0 -1
- package/src/skills/__tests__/routing-table.test.d.ts.map +0 -1
- package/src/skills/__tests__/routing-table.test.js +0 -91
- package/src/skills/__tests__/routing-table.test.js.map +0 -1
- package/src/skills/__tests__/skill-paths.test.d.ts.map +0 -1
- package/src/skills/__tests__/skill-paths.test.js +0 -71
- package/src/skills/__tests__/skill-paths.test.js.map +0 -1
- package/src/skills/__tests__/test-utility.test.d.ts.map +0 -1
- package/src/skills/__tests__/test-utility.test.js +0 -59
- package/src/skills/__tests__/test-utility.test.js.map +0 -1
- package/src/skills/__tests__/token.test.d.ts.map +0 -1
- package/src/skills/__tests__/token.test.js +0 -135
- package/src/skills/__tests__/token.test.js.map +0 -1
- package/src/skills/__tests__/validation.test.d.ts.map +0 -1
- package/src/skills/__tests__/validation.test.js +0 -108
- package/src/skills/__tests__/validation.test.js.map +0 -1
- package/src/skills/__tests__/version.test.d.ts.map +0 -1
- package/src/skills/__tests__/version.test.js +0 -71
- package/src/skills/__tests__/version.test.js.map +0 -1
- package/src/skills/injection/__tests__/subagent.test.d.ts.map +0 -1
- package/src/skills/injection/__tests__/subagent.test.js +0 -122
- package/src/skills/injection/__tests__/subagent.test.js.map +0 -1
- package/src/skills/orchestrator/__tests__/spawn-tier.test.d.ts.map +0 -1
- package/src/skills/orchestrator/__tests__/spawn-tier.test.js +0 -228
- package/src/skills/orchestrator/__tests__/spawn-tier.test.js.map +0 -1
- package/src/spawn/__tests__/adapter-registry.test.d.ts.map +0 -1
- package/src/spawn/__tests__/adapter-registry.test.js +0 -76
- package/src/spawn/__tests__/adapter-registry.test.js.map +0 -1
- package/src/stats/__tests__/stats.test.d.ts.map +0 -1
- package/src/stats/__tests__/stats.test.js +0 -374
- package/src/stats/__tests__/stats.test.js.map +0 -1
- package/src/sticky/__tests__/purge.test.d.ts.map +0 -1
- package/src/sticky/__tests__/purge.test.js +0 -64
- package/src/sticky/__tests__/purge.test.js.map +0 -1
- package/src/store/__tests__/atomic.test.d.ts.map +0 -1
- package/src/store/__tests__/atomic.test.js +0 -81
- package/src/store/__tests__/atomic.test.js.map +0 -1
- package/src/store/__tests__/backup.test.d.ts.map +0 -1
- package/src/store/__tests__/backup.test.js +0 -131
- package/src/store/__tests__/backup.test.js.map +0 -1
- package/src/store/__tests__/brain-accessor-pageindex.test.d.ts.map +0 -1
- package/src/store/__tests__/brain-accessor-pageindex.test.js +0 -179
- package/src/store/__tests__/brain-accessor-pageindex.test.js.map +0 -1
- package/src/store/__tests__/brain-accessor.test.d.ts.map +0 -1
- package/src/store/__tests__/brain-accessor.test.js +0 -398
- package/src/store/__tests__/brain-accessor.test.js.map +0 -1
- package/src/store/__tests__/brain-pageindex.test.d.ts.map +0 -1
- package/src/store/__tests__/brain-pageindex.test.js +0 -137
- package/src/store/__tests__/brain-pageindex.test.js.map +0 -1
- package/src/store/__tests__/brain-schema.test.d.ts.map +0 -1
- package/src/store/__tests__/brain-schema.test.js +0 -137
- package/src/store/__tests__/brain-schema.test.js.map +0 -1
- package/src/store/__tests__/brain-vec.test.d.ts.map +0 -1
- package/src/store/__tests__/brain-vec.test.js +0 -100
- package/src/store/__tests__/brain-vec.test.js.map +0 -1
- package/src/store/__tests__/collision-detection.test.d.ts.map +0 -1
- package/src/store/__tests__/collision-detection.test.js +0 -165
- package/src/store/__tests__/collision-detection.test.js.map +0 -1
- package/src/store/__tests__/data-safety-central.test.d.ts.map +0 -1
- package/src/store/__tests__/data-safety-central.test.js +0 -408
- package/src/store/__tests__/data-safety-central.test.js.map +0 -1
- package/src/store/__tests__/db-helpers.test.d.ts.map +0 -1
- package/src/store/__tests__/db-helpers.test.js +0 -101
- package/src/store/__tests__/db-helpers.test.js.map +0 -1
- package/src/store/__tests__/e2e-safety-integration.test.d.ts.map +0 -1
- package/src/store/__tests__/e2e-safety-integration.test.js +0 -402
- package/src/store/__tests__/e2e-safety-integration.test.js.map +0 -1
- package/src/store/__tests__/git-checkpoint.test.d.ts.map +0 -1
- package/src/store/__tests__/git-checkpoint.test.js +0 -133
- package/src/store/__tests__/git-checkpoint.test.js.map +0 -1
- package/src/store/__tests__/idempotent-migration.test.d.ts.map +0 -1
- package/src/store/__tests__/idempotent-migration.test.js +0 -172
- package/src/store/__tests__/idempotent-migration.test.js.map +0 -1
- package/src/store/__tests__/import-logging.test.d.ts.map +0 -1
- package/src/store/__tests__/import-logging.test.js +0 -92
- package/src/store/__tests__/import-logging.test.js.map +0 -1
- package/src/store/__tests__/import-sort.test.d.ts.map +0 -1
- package/src/store/__tests__/import-sort.test.js +0 -109
- package/src/store/__tests__/import-sort.test.js.map +0 -1
- package/src/store/__tests__/json.test.d.ts.map +0 -1
- package/src/store/__tests__/json.test.js +0 -98
- package/src/store/__tests__/json.test.js.map +0 -1
- package/src/store/__tests__/lifecycle-schema-parity.test.d.ts.map +0 -1
- package/src/store/__tests__/lifecycle-schema-parity.test.js +0 -90
- package/src/store/__tests__/lifecycle-schema-parity.test.js.map +0 -1
- package/src/store/__tests__/migration-integration.test.d.ts.map +0 -1
- package/src/store/__tests__/migration-integration.test.js +0 -238
- package/src/store/__tests__/migration-integration.test.js.map +0 -1
- package/src/store/__tests__/migration-retry.test.d.ts.map +0 -1
- package/src/store/__tests__/migration-retry.test.js +0 -178
- package/src/store/__tests__/migration-retry.test.js.map +0 -1
- package/src/store/__tests__/migration-safety.test.d.ts.map +0 -1
- package/src/store/__tests__/migration-safety.test.js +0 -756
- package/src/store/__tests__/migration-safety.test.js.map +0 -1
- package/src/store/__tests__/migration-sqlite.test.d.ts.map +0 -1
- package/src/store/__tests__/migration-sqlite.test.js +0 -544
- package/src/store/__tests__/migration-sqlite.test.js.map +0 -1
- package/src/store/__tests__/performance-safety.test.d.ts.map +0 -1
- package/src/store/__tests__/performance-safety.test.js +0 -157
- package/src/store/__tests__/performance-safety.test.js.map +0 -1
- package/src/store/__tests__/project-detect.test.d.ts.map +0 -1
- package/src/store/__tests__/project-detect.test.js +0 -609
- package/src/store/__tests__/project-detect.test.js.map +0 -1
- package/src/store/__tests__/project-registry.test.d.ts.map +0 -1
- package/src/store/__tests__/project-registry.test.js +0 -28
- package/src/store/__tests__/project-registry.test.js.map +0 -1
- package/src/store/__tests__/provider.test.d.ts.map +0 -1
- package/src/store/__tests__/provider.test.js +0 -15
- package/src/store/__tests__/provider.test.js.map +0 -1
- package/src/store/__tests__/relations.test.d.ts.map +0 -1
- package/src/store/__tests__/relations.test.js +0 -318
- package/src/store/__tests__/relations.test.js.map +0 -1
- package/src/store/__tests__/safety-accessor.test.d.ts.map +0 -1
- package/src/store/__tests__/safety-accessor.test.js +0 -219
- package/src/store/__tests__/safety-accessor.test.js.map +0 -1
- package/src/store/__tests__/sequence-validation.test.d.ts.map +0 -1
- package/src/store/__tests__/sequence-validation.test.js +0 -94
- package/src/store/__tests__/sequence-validation.test.js.map +0 -1
- package/src/store/__tests__/session-store.test.d.ts.map +0 -1
- package/src/store/__tests__/session-store.test.js +0 -463
- package/src/store/__tests__/session-store.test.js.map +0 -1
- package/src/store/__tests__/sqlite-backup.test.d.ts.map +0 -1
- package/src/store/__tests__/sqlite-backup.test.js +0 -72
- package/src/store/__tests__/sqlite-backup.test.js.map +0 -1
- package/src/store/__tests__/sqlite.test.d.ts.map +0 -1
- package/src/store/__tests__/sqlite.test.js +0 -256
- package/src/store/__tests__/sqlite.test.js.map +0 -1
- package/src/store/__tests__/task-store.test.d.ts.map +0 -1
- package/src/store/__tests__/task-store.test.js +0 -514
- package/src/store/__tests__/task-store.test.js.map +0 -1
- package/src/store/__tests__/test-db-helper.d.ts.map +0 -1
- package/src/store/__tests__/test-db-helper.js +0 -110
- package/src/store/__tests__/test-db-helper.js.map +0 -1
- package/src/store/__tests__/write-verification.test.d.ts.map +0 -1
- package/src/store/__tests__/write-verification.test.js +0 -185
- package/src/store/__tests__/write-verification.test.js.map +0 -1
- package/src/system/__tests__/cleanup.test.d.ts.map +0 -1
- package/src/system/__tests__/cleanup.test.js +0 -87
- package/src/system/__tests__/cleanup.test.js.map +0 -1
- package/src/system/__tests__/health.test.d.ts.map +0 -1
- package/src/system/__tests__/health.test.js +0 -55
- package/src/system/__tests__/health.test.js.map +0 -1
- package/src/task-work/__tests__/start-deps.test.d.ts.map +0 -1
- package/src/task-work/__tests__/start-deps.test.js +0 -152
- package/src/task-work/__tests__/start-deps.test.js.map +0 -1
- package/src/tasks/__tests__/add.test.d.ts.map +0 -1
- package/src/tasks/__tests__/add.test.js +0 -226
- package/src/tasks/__tests__/add.test.js.map +0 -1
- package/src/tasks/__tests__/archive.test.d.ts.map +0 -1
- package/src/tasks/__tests__/archive.test.js +0 -196
- package/src/tasks/__tests__/archive.test.js.map +0 -1
- package/src/tasks/__tests__/assignee.test.d.ts.map +0 -1
- package/src/tasks/__tests__/assignee.test.js +0 -125
- package/src/tasks/__tests__/assignee.test.js.map +0 -1
- package/src/tasks/__tests__/atomicity.test.d.ts.map +0 -1
- package/src/tasks/__tests__/atomicity.test.js +0 -192
- package/src/tasks/__tests__/atomicity.test.js.map +0 -1
- package/src/tasks/__tests__/cancel-ops.test.d.ts.map +0 -1
- package/src/tasks/__tests__/cancel-ops.test.js +0 -115
- package/src/tasks/__tests__/cancel-ops.test.js.map +0 -1
- package/src/tasks/__tests__/complete-unblocks.test.d.ts.map +0 -1
- package/src/tasks/__tests__/complete-unblocks.test.js +0 -151
- package/src/tasks/__tests__/complete-unblocks.test.js.map +0 -1
- package/src/tasks/__tests__/complete.test.d.ts.map +0 -1
- package/src/tasks/__tests__/complete.test.js +0 -230
- package/src/tasks/__tests__/complete.test.js.map +0 -1
- package/src/tasks/__tests__/delete.test.d.ts.map +0 -1
- package/src/tasks/__tests__/delete.test.js +0 -183
- package/src/tasks/__tests__/delete.test.js.map +0 -1
- package/src/tasks/__tests__/dependency-check.test.d.ts.map +0 -1
- package/src/tasks/__tests__/dependency-check.test.js +0 -293
- package/src/tasks/__tests__/dependency-check.test.js.map +0 -1
- package/src/tasks/__tests__/deps-ready.test.d.ts.map +0 -1
- package/src/tasks/__tests__/deps-ready.test.js +0 -68
- package/src/tasks/__tests__/deps-ready.test.js.map +0 -1
- package/src/tasks/__tests__/epic-enforcement.test.d.ts.map +0 -1
- package/src/tasks/__tests__/epic-enforcement.test.js +0 -669
- package/src/tasks/__tests__/epic-enforcement.test.js.map +0 -1
- package/src/tasks/__tests__/find.test.d.ts.map +0 -1
- package/src/tasks/__tests__/find.test.js +0 -163
- package/src/tasks/__tests__/find.test.js.map +0 -1
- package/src/tasks/__tests__/graph-ops.test.d.ts.map +0 -1
- package/src/tasks/__tests__/graph-ops.test.js +0 -174
- package/src/tasks/__tests__/graph-ops.test.js.map +0 -1
- package/src/tasks/__tests__/hierarchy-policy.test.d.ts.map +0 -1
- package/src/tasks/__tests__/hierarchy-policy.test.js +0 -399
- package/src/tasks/__tests__/hierarchy-policy.test.js.map +0 -1
- package/src/tasks/__tests__/hierarchy.test.d.ts.map +0 -1
- package/src/tasks/__tests__/hierarchy.test.js +0 -302
- package/src/tasks/__tests__/hierarchy.test.js.map +0 -1
- package/src/tasks/__tests__/id-generator.test.d.ts.map +0 -1
- package/src/tasks/__tests__/id-generator.test.js +0 -59
- package/src/tasks/__tests__/id-generator.test.js.map +0 -1
- package/src/tasks/__tests__/labels.test.d.ts.map +0 -1
- package/src/tasks/__tests__/labels.test.js +0 -173
- package/src/tasks/__tests__/labels.test.js.map +0 -1
- package/src/tasks/__tests__/list.test.d.ts.map +0 -1
- package/src/tasks/__tests__/list.test.js +0 -272
- package/src/tasks/__tests__/list.test.js.map +0 -1
- package/src/tasks/__tests__/minimal-test.test.d.ts.map +0 -1
- package/src/tasks/__tests__/minimal-test.test.js +0 -25
- package/src/tasks/__tests__/minimal-test.test.js.map +0 -1
- package/src/tasks/__tests__/phase-tracking.test.d.ts.map +0 -1
- package/src/tasks/__tests__/phase-tracking.test.js +0 -209
- package/src/tasks/__tests__/phase-tracking.test.js.map +0 -1
- package/src/tasks/__tests__/pipeline-stage.test.d.ts.map +0 -1
- package/src/tasks/__tests__/pipeline-stage.test.js +0 -277
- package/src/tasks/__tests__/pipeline-stage.test.js.map +0 -1
- package/src/tasks/__tests__/plan-priority.test.d.ts.map +0 -1
- package/src/tasks/__tests__/plan-priority.test.js +0 -133
- package/src/tasks/__tests__/plan-priority.test.js.map +0 -1
- package/src/tasks/__tests__/priority-normalization.test.d.ts.map +0 -1
- package/src/tasks/__tests__/priority-normalization.test.js +0 -117
- package/src/tasks/__tests__/priority-normalization.test.js.map +0 -1
- package/src/tasks/__tests__/relates.test.d.ts.map +0 -1
- package/src/tasks/__tests__/relates.test.js +0 -84
- package/src/tasks/__tests__/relates.test.js.map +0 -1
- package/src/tasks/__tests__/show-deps.test.d.ts.map +0 -1
- package/src/tasks/__tests__/show-deps.test.js +0 -182
- package/src/tasks/__tests__/show-deps.test.js.map +0 -1
- package/src/tasks/__tests__/show.test.d.ts.map +0 -1
- package/src/tasks/__tests__/show.test.js +0 -126
- package/src/tasks/__tests__/show.test.js.map +0 -1
- package/src/tasks/__tests__/staleness.test.d.ts.map +0 -1
- package/src/tasks/__tests__/staleness.test.js +0 -154
- package/src/tasks/__tests__/staleness.test.js.map +0 -1
- package/src/tasks/__tests__/task-ops-depends.test.d.ts.map +0 -1
- package/src/tasks/__tests__/task-ops-depends.test.js +0 -118
- package/src/tasks/__tests__/task-ops-depends.test.js.map +0 -1
- package/src/tasks/__tests__/update.test.d.ts.map +0 -1
- package/src/tasks/__tests__/update.test.js +0 -320
- package/src/tasks/__tests__/update.test.js.map +0 -1
- package/src/validation/__tests__/chain-validation.test.d.ts.map +0 -1
- package/src/validation/__tests__/chain-validation.test.js +0 -204
- package/src/validation/__tests__/chain-validation.test.js.map +0 -1
- package/src/validation/__tests__/compliance.test.d.ts.map +0 -1
- package/src/validation/__tests__/compliance.test.js +0 -83
- package/src/validation/__tests__/compliance.test.js.map +0 -1
- package/src/validation/__tests__/docs-sync.test.d.ts.map +0 -1
- package/src/validation/__tests__/docs-sync.test.js +0 -243
- package/src/validation/__tests__/docs-sync.test.js.map +0 -1
- package/src/validation/__tests__/doctor-gitignore.test.d.ts.map +0 -1
- package/src/validation/__tests__/doctor-gitignore.test.js +0 -154
- package/src/validation/__tests__/doctor-gitignore.test.js.map +0 -1
- package/src/validation/__tests__/doctor-injection.test.d.ts.map +0 -1
- package/src/validation/__tests__/doctor-injection.test.js +0 -230
- package/src/validation/__tests__/doctor-injection.test.js.map +0 -1
- package/src/validation/__tests__/doctor.test.d.ts.map +0 -1
- package/src/validation/__tests__/doctor.test.js +0 -202
- package/src/validation/__tests__/doctor.test.js.map +0 -1
- package/src/validation/__tests__/engine.test.d.ts.map +0 -1
- package/src/validation/__tests__/engine.test.js +0 -346
- package/src/validation/__tests__/engine.test.js.map +0 -1
- package/src/validation/__tests__/manifest.test.d.ts.map +0 -1
- package/src/validation/__tests__/manifest.test.js +0 -244
- package/src/validation/__tests__/manifest.test.js.map +0 -1
- package/src/validation/__tests__/protocol-common.test.d.ts.map +0 -1
- package/src/validation/__tests__/protocol-common.test.js +0 -112
- package/src/validation/__tests__/protocol-common.test.js.map +0 -1
- package/src/validation/__tests__/verification.test.d.ts.map +0 -1
- package/src/validation/__tests__/verification.test.js +0 -277
- package/src/validation/__tests__/verification.test.js.map +0 -1
|
@@ -1,291 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SseTransport test scenarios.
|
|
3
|
-
*
|
|
4
|
-
* Tests for the Server-Sent Events transport implementation.
|
|
5
|
-
* SseTransport extends HTTP polling with real-time push via SSE,
|
|
6
|
-
* falling back to HTTP polling when SSE is unavailable.
|
|
7
|
-
*
|
|
8
|
-
* @see packages/contracts/src/transport.ts — Transport interface
|
|
9
|
-
* @see packages/contracts/src/conduit.ts — ConduitState types
|
|
10
|
-
* @task T216
|
|
11
|
-
*/
|
|
12
|
-
import { describe, expect, it, vi } from 'vitest';
|
|
13
|
-
import { SseTransport } from '../sse-transport.js';
|
|
14
|
-
// ============================================================================
|
|
15
|
-
// Test helpers
|
|
16
|
-
// ============================================================================
|
|
17
|
-
/** Mock SSE event source that simulates server-sent events. */
|
|
18
|
-
function createMockEventSource() {
|
|
19
|
-
const handlers = {};
|
|
20
|
-
return {
|
|
21
|
-
addEventListener: vi.fn((type, handler) => {
|
|
22
|
-
handlers[type] = handlers[type] || [];
|
|
23
|
-
handlers[type].push(handler);
|
|
24
|
-
}),
|
|
25
|
-
removeEventListener: vi.fn(),
|
|
26
|
-
close: vi.fn(),
|
|
27
|
-
readyState: 0, // CONNECTING
|
|
28
|
-
/** Simulate receiving an SSE event. */
|
|
29
|
-
_emit(type, data) {
|
|
30
|
-
for (const h of handlers[type] || []) {
|
|
31
|
-
h(new MessageEvent(type, { data }));
|
|
32
|
-
}
|
|
33
|
-
},
|
|
34
|
-
/** Simulate connection open. */
|
|
35
|
-
_open() {
|
|
36
|
-
this.readyState = 1; // OPEN
|
|
37
|
-
for (const h of handlers['open'] || []) {
|
|
38
|
-
h(new MessageEvent('open', { data: '' }));
|
|
39
|
-
}
|
|
40
|
-
},
|
|
41
|
-
/** Simulate connection error. */
|
|
42
|
-
_error() {
|
|
43
|
-
this.readyState = 2; // CLOSED
|
|
44
|
-
for (const h of handlers['error'] || []) {
|
|
45
|
-
h(new MessageEvent('error', { data: '' }));
|
|
46
|
-
}
|
|
47
|
-
},
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
/** Standard test config for SseTransport. */
|
|
51
|
-
const TEST_CONFIG = {
|
|
52
|
-
agentId: 'test-agent',
|
|
53
|
-
apiKey: 'sk_live_test123',
|
|
54
|
-
apiBaseUrl: 'https://api.signaldock.io',
|
|
55
|
-
sseEndpoint: 'https://api.signaldock.io/sse',
|
|
56
|
-
};
|
|
57
|
-
// ============================================================================
|
|
58
|
-
// Connection lifecycle
|
|
59
|
-
// ============================================================================
|
|
60
|
-
describe('SseTransport', () => {
|
|
61
|
-
describe('connect', () => {
|
|
62
|
-
it.todo('should establish SSE connection to sseEndpoint');
|
|
63
|
-
// Expected behavior:
|
|
64
|
-
// - Creates EventSource to config.sseEndpoint with auth headers
|
|
65
|
-
// - Sets transport name to 'sse'
|
|
66
|
-
// - Transitions state: disconnected → connecting → connected
|
|
67
|
-
// - Resolves when EventSource 'open' event fires
|
|
68
|
-
it.todo('should fall back to HTTP polling when SSE endpoint is unreachable');
|
|
69
|
-
// Expected behavior:
|
|
70
|
-
// - Attempts SSE connection
|
|
71
|
-
// - On connection error, transitions to HTTP polling mode
|
|
72
|
-
// - State: disconnected → connecting → connected (via HTTP fallback)
|
|
73
|
-
// - Logs warning: "SSE unavailable, falling back to HTTP polling"
|
|
74
|
-
// - poll() still works via HTTP
|
|
75
|
-
it.todo('should include auth headers in SSE connection');
|
|
76
|
-
// Expected behavior:
|
|
77
|
-
// - EventSource URL includes ?token=<apiKey> (SSE doesn't support custom headers)
|
|
78
|
-
// - Or uses a pre-flight auth endpoint to get a session token
|
|
79
|
-
// - X-Agent-Id is conveyed via query param or pre-flight
|
|
80
|
-
it.todo('should reject connect when no sseEndpoint or apiBaseUrl is configured');
|
|
81
|
-
// Expected behavior:
|
|
82
|
-
// - Throws Error with message indicating missing config
|
|
83
|
-
// - State remains 'disconnected'
|
|
84
|
-
it('rejects connect when no sseEndpoint or apiBaseUrl provided', async () => {
|
|
85
|
-
const transport = new SseTransport();
|
|
86
|
-
await expect(transport.connect({ agentId: 'test', apiKey: 'key', apiBaseUrl: '' })).rejects.toThrow('requires');
|
|
87
|
-
});
|
|
88
|
-
it.todo('should reject connect when already connected');
|
|
89
|
-
// Expected behavior:
|
|
90
|
-
// - Second connect() call throws or is no-op
|
|
91
|
-
// - Does not create duplicate EventSource instances
|
|
92
|
-
it('has name "sse"', () => {
|
|
93
|
-
const transport = new SseTransport();
|
|
94
|
-
expect(transport.name).toBe('sse');
|
|
95
|
-
});
|
|
96
|
-
});
|
|
97
|
-
// ============================================================================
|
|
98
|
-
// Disconnect
|
|
99
|
-
// ============================================================================
|
|
100
|
-
describe('disconnect', () => {
|
|
101
|
-
it.todo('should close SSE connection and clear state');
|
|
102
|
-
// Expected behavior:
|
|
103
|
-
// - Calls EventSource.close()
|
|
104
|
-
// - Clears internal state
|
|
105
|
-
// - State: connected → disconnected
|
|
106
|
-
// - Subsequent push/poll calls throw "not connected"
|
|
107
|
-
it.todo('should be idempotent when already disconnected');
|
|
108
|
-
// Expected behavior:
|
|
109
|
-
// - No error when calling disconnect() on already disconnected transport
|
|
110
|
-
// - State remains 'disconnected'
|
|
111
|
-
it('is safe to call disconnect when not connected', async () => {
|
|
112
|
-
const transport = new SseTransport();
|
|
113
|
-
await transport.disconnect(); // Should not throw
|
|
114
|
-
await transport.disconnect(); // Still should not throw
|
|
115
|
-
});
|
|
116
|
-
it.todo('should cancel any pending poll timers');
|
|
117
|
-
// Expected behavior:
|
|
118
|
-
// - If HTTP fallback polling is active, clears interval
|
|
119
|
-
// - No orphaned timers after disconnect
|
|
120
|
-
});
|
|
121
|
-
// ============================================================================
|
|
122
|
-
// Reconnect
|
|
123
|
-
// ============================================================================
|
|
124
|
-
describe('reconnect', () => {
|
|
125
|
-
it.todo('should automatically reconnect on SSE connection drop');
|
|
126
|
-
// Expected behavior:
|
|
127
|
-
// - When EventSource fires 'error' and readyState becomes CLOSED
|
|
128
|
-
// - State: connected → reconnecting
|
|
129
|
-
// - Exponential backoff: 1s, 2s, 4s, 8s, max 30s
|
|
130
|
-
// - On successful reconnect: state → connected
|
|
131
|
-
// - Messages received during reconnect are not lost (server-side cursor)
|
|
132
|
-
it.todo('should fall back to HTTP polling after N failed SSE reconnects');
|
|
133
|
-
// Expected behavior:
|
|
134
|
-
// - After 3 failed SSE reconnect attempts
|
|
135
|
-
// - Permanently switches to HTTP polling mode for this session
|
|
136
|
-
// - State: reconnecting → connected (via HTTP)
|
|
137
|
-
// - Logs: "SSE reconnect failed 3 times, switching to HTTP polling"
|
|
138
|
-
it.todo('should preserve message cursor across reconnect');
|
|
139
|
-
// Expected behavior:
|
|
140
|
-
// - Tracks last received message ID or timestamp
|
|
141
|
-
// - Reconnect URL includes ?lastEventId=<cursor>
|
|
142
|
-
// - Server replays missed messages from cursor
|
|
143
|
-
// - No duplicate messages delivered to consumer
|
|
144
|
-
it.todo('should emit state change events during reconnect cycle');
|
|
145
|
-
// Expected behavior:
|
|
146
|
-
// - onStateChange fires: connected → reconnecting → connected
|
|
147
|
-
// - Or: connected → reconnecting → error (if max retries exceeded)
|
|
148
|
-
});
|
|
149
|
-
// ============================================================================
|
|
150
|
-
// Message receive (SSE mode)
|
|
151
|
-
// ============================================================================
|
|
152
|
-
describe('message receive via SSE', () => {
|
|
153
|
-
it.todo('should deliver incoming SSE messages via poll() return');
|
|
154
|
-
// Expected behavior:
|
|
155
|
-
// - SSE 'message' events are buffered internally
|
|
156
|
-
// - poll() returns buffered messages and clears buffer
|
|
157
|
-
// - Messages conform to ConduitMessage interface
|
|
158
|
-
it.todo('should parse SSE data field as JSON ConduitMessage');
|
|
159
|
-
// Expected behavior:
|
|
160
|
-
// - SSE data: {"id":"msg-1","from":"agent-a","content":"hello","timestamp":"..."}
|
|
161
|
-
// - Parsed into ConduitMessage with all fields populated
|
|
162
|
-
it.todo('should handle malformed SSE data gracefully');
|
|
163
|
-
// Expected behavior:
|
|
164
|
-
// - Invalid JSON in SSE data field does not crash transport
|
|
165
|
-
// - Malformed messages are logged and skipped
|
|
166
|
-
// - poll() returns only valid messages
|
|
167
|
-
it.todo('should filter self-sent messages');
|
|
168
|
-
// Expected behavior:
|
|
169
|
-
// - Messages where from === config.agentId are excluded from poll()
|
|
170
|
-
// - Prevents echo of own messages
|
|
171
|
-
it.todo('should support SSE event types for different message categories');
|
|
172
|
-
// Expected behavior:
|
|
173
|
-
// - 'message' event: standard agent messages
|
|
174
|
-
// - 'heartbeat' event: keep-alive (ignored in poll output)
|
|
175
|
-
// - 'system' event: system notifications (e.g., agent online/offline)
|
|
176
|
-
});
|
|
177
|
-
// ============================================================================
|
|
178
|
-
// Send with SSE down (fallback to HTTP)
|
|
179
|
-
// ============================================================================
|
|
180
|
-
describe('send (push)', () => {
|
|
181
|
-
it.todo('should send messages via HTTP POST regardless of SSE state');
|
|
182
|
-
// Expected behavior:
|
|
183
|
-
// - push() always uses HTTP POST (SSE is receive-only)
|
|
184
|
-
// - POST /conversations/{conversationId}/messages or /agents/{to}/messages
|
|
185
|
-
// - Returns { messageId } from response
|
|
186
|
-
// - Works whether SSE is connected, reconnecting, or fallen back to HTTP
|
|
187
|
-
it.todo('should send messages when SSE is connected');
|
|
188
|
-
// Expected behavior:
|
|
189
|
-
// - SSE connection is active for receiving
|
|
190
|
-
// - push() uses HTTP POST for sending (SSE is unidirectional)
|
|
191
|
-
// - Both channels work simultaneously
|
|
192
|
-
it.todo('should send messages when SSE is down and in HTTP fallback mode');
|
|
193
|
-
// Expected behavior:
|
|
194
|
-
// - SSE connection has failed, transport is in HTTP polling mode
|
|
195
|
-
// - push() still works via HTTP POST
|
|
196
|
-
// - No difference in send behavior between SSE and HTTP modes
|
|
197
|
-
it.todo('should retry failed sends with exponential backoff');
|
|
198
|
-
// Expected behavior:
|
|
199
|
-
// - On HTTP 5xx or network error, retry up to 3 times
|
|
200
|
-
// - Backoff: 500ms, 1s, 2s
|
|
201
|
-
// - On 4xx (client error), fail immediately (no retry)
|
|
202
|
-
// - Returns error after max retries
|
|
203
|
-
it.todo('should throw when not connected');
|
|
204
|
-
// Expected behavior:
|
|
205
|
-
// - push() before connect() throws "Transport not connected"
|
|
206
|
-
// - push() after disconnect() throws "Transport not connected"
|
|
207
|
-
it('throws when push is called before connect', async () => {
|
|
208
|
-
const transport = new SseTransport();
|
|
209
|
-
await expect(transport.push('to', 'msg')).rejects.toThrow('not connected');
|
|
210
|
-
});
|
|
211
|
-
it('throws when poll is called before connect', async () => {
|
|
212
|
-
const transport = new SseTransport();
|
|
213
|
-
await expect(transport.poll()).rejects.toThrow('not connected');
|
|
214
|
-
});
|
|
215
|
-
it('throws when ack is called before connect', async () => {
|
|
216
|
-
const transport = new SseTransport();
|
|
217
|
-
await expect(transport.ack(['id'])).rejects.toThrow('not connected');
|
|
218
|
-
});
|
|
219
|
-
});
|
|
220
|
-
// ============================================================================
|
|
221
|
-
// Poll (hybrid mode)
|
|
222
|
-
// ============================================================================
|
|
223
|
-
describe('poll', () => {
|
|
224
|
-
it.todo('should return SSE-buffered messages when SSE is active');
|
|
225
|
-
// Expected behavior:
|
|
226
|
-
// - In SSE mode, poll() drains the internal message buffer
|
|
227
|
-
// - Does NOT make an HTTP request (messages arrive via SSE push)
|
|
228
|
-
// - Returns empty array if no new messages since last poll
|
|
229
|
-
it.todo('should fall back to HTTP polling when SSE is down');
|
|
230
|
-
// Expected behavior:
|
|
231
|
-
// - In HTTP fallback mode, poll() makes GET /messages/peek
|
|
232
|
-
// - Behaves identically to HttpTransport.poll()
|
|
233
|
-
// - Respects limit and since options
|
|
234
|
-
it.todo('should respect since parameter for cursor-based retrieval');
|
|
235
|
-
// Expected behavior:
|
|
236
|
-
// - poll({ since: '2026-03-30T20:00:00Z' }) returns only newer messages
|
|
237
|
-
// - In SSE mode: filters buffer by timestamp
|
|
238
|
-
// - In HTTP mode: passes as query param
|
|
239
|
-
});
|
|
240
|
-
// ============================================================================
|
|
241
|
-
// Acknowledge
|
|
242
|
-
// ============================================================================
|
|
243
|
-
describe('ack', () => {
|
|
244
|
-
it.todo('should acknowledge messages via HTTP POST');
|
|
245
|
-
// Expected behavior:
|
|
246
|
-
// - ack(['msg-1', 'msg-2']) sends POST /messages/ack
|
|
247
|
-
// - Works in both SSE and HTTP modes (always HTTP for ack)
|
|
248
|
-
// - Acknowledged messages are not returned by subsequent poll()
|
|
249
|
-
});
|
|
250
|
-
// ============================================================================
|
|
251
|
-
// Heartbeat
|
|
252
|
-
// ============================================================================
|
|
253
|
-
describe('heartbeat', () => {
|
|
254
|
-
it.todo('should send heartbeat via HTTP POST');
|
|
255
|
-
// Expected behavior:
|
|
256
|
-
// - POST /agents/{agentId}/heartbeat
|
|
257
|
-
// - Works in both SSE and HTTP modes
|
|
258
|
-
// - Does not depend on SSE connection state
|
|
259
|
-
it.todo('should detect SSE connection health from heartbeat response');
|
|
260
|
-
// Expected behavior:
|
|
261
|
-
// - Heartbeat response may include SSE connection status
|
|
262
|
-
// - If server reports SSE session expired, trigger reconnect
|
|
263
|
-
});
|
|
264
|
-
// ============================================================================
|
|
265
|
-
// Edge cases
|
|
266
|
-
// ============================================================================
|
|
267
|
-
describe('edge cases', () => {
|
|
268
|
-
it.todo('should handle rapid connect/disconnect cycles');
|
|
269
|
-
// Expected behavior:
|
|
270
|
-
// - connect() → disconnect() → connect() in quick succession
|
|
271
|
-
// - No resource leaks (EventSource properly closed)
|
|
272
|
-
// - Final state is consistent
|
|
273
|
-
it.todo('should handle server-initiated SSE close');
|
|
274
|
-
// Expected behavior:
|
|
275
|
-
// - Server sends SSE close/shutdown event
|
|
276
|
-
// - Transport transitions to reconnecting or HTTP fallback
|
|
277
|
-
// - No unhandled errors
|
|
278
|
-
it.todo('should handle network going offline then online');
|
|
279
|
-
// Expected behavior:
|
|
280
|
-
// - SSE connection drops (network offline)
|
|
281
|
-
// - Reconnect attempts fail (network offline)
|
|
282
|
-
// - When network returns, reconnect succeeds
|
|
283
|
-
// - Messages buffered server-side are delivered
|
|
284
|
-
it.todo('should not leak EventSource instances on repeated reconnects');
|
|
285
|
-
// Expected behavior:
|
|
286
|
-
// - Each reconnect properly closes the previous EventSource
|
|
287
|
-
// - No accumulation of open connections
|
|
288
|
-
// - Memory usage stays constant
|
|
289
|
-
});
|
|
290
|
-
});
|
|
291
|
-
//# sourceMappingURL=sse-transport.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sse-transport.test.js","sourceRoot":"","sources":["sse-transport.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"provider-hooks.test.d.ts","sourceRoot":"","sources":["provider-hooks.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
2
|
-
const { getProvidersByHookEventMock, getCommonHookEventsMock } = vi.hoisted(() => ({
|
|
3
|
-
getProvidersByHookEventMock: vi.fn(),
|
|
4
|
-
getCommonHookEventsMock: vi.fn(),
|
|
5
|
-
}));
|
|
6
|
-
vi.mock('@cleocode/caamp', () => ({
|
|
7
|
-
getProvidersByHookEvent: getProvidersByHookEventMock,
|
|
8
|
-
getCommonHookEvents: getCommonHookEventsMock,
|
|
9
|
-
}));
|
|
10
|
-
import { getHookCapableProviders, getSharedHookEvents } from '../provider-hooks.js';
|
|
11
|
-
describe('provider hook capability helpers', () => {
|
|
12
|
-
beforeEach(() => {
|
|
13
|
-
vi.clearAllMocks();
|
|
14
|
-
});
|
|
15
|
-
it('returns no providers for CLEO-local coordination events', () => {
|
|
16
|
-
const providers = getHookCapableProviders('onWorkAvailable');
|
|
17
|
-
expect(providers).toEqual([]);
|
|
18
|
-
expect(getProvidersByHookEventMock).not.toHaveBeenCalled();
|
|
19
|
-
});
|
|
20
|
-
it('delegates provider-backed hook events to CAAMP', () => {
|
|
21
|
-
getProvidersByHookEventMock.mockReturnValue([{ id: 'claude-code' }, { id: 'opencode' }]);
|
|
22
|
-
const providers = getHookCapableProviders('PreToolUse');
|
|
23
|
-
expect(getProvidersByHookEventMock).toHaveBeenCalledWith('PreToolUse');
|
|
24
|
-
expect(providers).toEqual(['claude-code', 'opencode']);
|
|
25
|
-
});
|
|
26
|
-
it('returns common provider hook events from CAAMP', () => {
|
|
27
|
-
getCommonHookEventsMock.mockReturnValue(['SessionStart', 'PostToolUse']);
|
|
28
|
-
const events = getSharedHookEvents(['claude-code', 'opencode']);
|
|
29
|
-
expect(getCommonHookEventsMock).toHaveBeenCalledWith(['claude-code', 'opencode']);
|
|
30
|
-
expect(events).toEqual(['SessionStart', 'PostToolUse']);
|
|
31
|
-
});
|
|
32
|
-
});
|
|
33
|
-
//# sourceMappingURL=provider-hooks.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"provider-hooks.test.js","sourceRoot":"","sources":["provider-hooks.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9D,MAAM,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACjF,2BAA2B,EAAE,EAAE,CAAC,EAAE,EAAE;IACpC,uBAAuB,EAAE,EAAE,CAAC,EAAE,EAAE;CACjC,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC;IAChC,uBAAuB,EAAE,2BAA2B;IACpD,mBAAmB,EAAE,uBAAuB;CAC7C,CAAC,CAAC,CAAC;AAEJ,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEpF,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,SAAS,GAAG,uBAAuB,CAAC,iBAAiB,CAAC,CAAC;QAE7D,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9B,MAAM,CAAC,2BAA2B,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,2BAA2B,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;QAEzF,MAAM,SAAS,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAC;QAExD,MAAM,CAAC,2BAA2B,CAAC,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;QACvE,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,uBAAuB,CAAC,eAAe,CAAC,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC;QAEzE,MAAM,MAAM,GAAG,mBAAmB,CAAC,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC;QAEhE,MAAM,CAAC,uBAAuB,CAAC,CAAC,oBAAoB,CAAC,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC;QAClF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registry.test.d.ts","sourceRoot":"","sources":["registry.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
2
|
-
import { HookRegistry } from '../registry.js';
|
|
3
|
-
describe('HookRegistry internal coordination events', () => {
|
|
4
|
-
let registry;
|
|
5
|
-
beforeEach(() => {
|
|
6
|
-
registry = new HookRegistry();
|
|
7
|
-
});
|
|
8
|
-
it('enables autonomous coordination events by default', () => {
|
|
9
|
-
expect(registry.isEnabled('onWorkAvailable')).toBe(true);
|
|
10
|
-
expect(registry.isEnabled('onAgentSpawn')).toBe(true);
|
|
11
|
-
expect(registry.isEnabled('onAgentComplete')).toBe(true);
|
|
12
|
-
expect(registry.isEnabled('onCascadeStart')).toBe(true);
|
|
13
|
-
expect(registry.isEnabled('onPatrol')).toBe(true);
|
|
14
|
-
});
|
|
15
|
-
it('dispatches internal coordination events to registered handlers', async () => {
|
|
16
|
-
const handler = vi.fn();
|
|
17
|
-
registry.register({
|
|
18
|
-
id: 'work-available-handler',
|
|
19
|
-
event: 'onWorkAvailable',
|
|
20
|
-
priority: 10,
|
|
21
|
-
handler,
|
|
22
|
-
});
|
|
23
|
-
await registry.dispatch('onWorkAvailable', '/tmp/project', {
|
|
24
|
-
timestamp: '2026-03-06T05:00:00.000Z',
|
|
25
|
-
epicId: 'T5519',
|
|
26
|
-
taskIds: ['T5520', 'T5522'],
|
|
27
|
-
reason: 'dependency-cleared',
|
|
28
|
-
});
|
|
29
|
-
expect(handler).toHaveBeenCalledTimes(1);
|
|
30
|
-
expect(handler).toHaveBeenCalledWith('/tmp/project', expect.objectContaining({
|
|
31
|
-
epicId: 'T5519',
|
|
32
|
-
taskIds: ['T5520', 'T5522'],
|
|
33
|
-
reason: 'dependency-cleared',
|
|
34
|
-
}));
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
//# sourceMappingURL=registry.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registry.test.js","sourceRoot":"","sources":["registry.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,QAAQ,CAAC,2CAA2C,EAAE,GAAG,EAAE;IACzD,IAAI,QAAsB,CAAC;IAE3B,UAAU,CAAC,GAAG,EAAE;QACd,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAExB,QAAQ,CAAC,QAAQ,CAAC;YAChB,EAAE,EAAE,wBAAwB;YAC5B,KAAK,EAAE,iBAAiB;YACxB,QAAQ,EAAE,EAAE;YACZ,OAAO;SACR,CAAC,CAAC;QAEH,MAAM,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,EAAE,cAAc,EAAE;YACzD,SAAS,EAAE,0BAA0B;YACrC,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;YAC3B,MAAM,EAAE,oBAAoB;SAC7B,CAAC,CAAC;QAEH,MAAM,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAClC,cAAc,EACd,MAAM,CAAC,gBAAgB,CAAC;YACtB,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;YAC3B,MAAM,EAAE,oBAAoB;SAC7B,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error-hooks.test.d.ts","sourceRoot":"","sources":["error-hooks.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
2
|
-
const observeBrainMock = vi.fn();
|
|
3
|
-
vi.mock('../../../memory/brain-retrieval.js', () => ({
|
|
4
|
-
observeBrain: observeBrainMock,
|
|
5
|
-
}));
|
|
6
|
-
import { handleError } from '../error-hooks.js';
|
|
7
|
-
describe('error hook handlers', () => {
|
|
8
|
-
beforeEach(() => {
|
|
9
|
-
observeBrainMock.mockReset();
|
|
10
|
-
});
|
|
11
|
-
it('calls observeBrain with error details', async () => {
|
|
12
|
-
observeBrainMock.mockResolvedValue(undefined);
|
|
13
|
-
await handleError('/tmp/project', {
|
|
14
|
-
timestamp: '2026-03-04T00:00:00.000Z',
|
|
15
|
-
errorCode: 42,
|
|
16
|
-
message: 'Validation failed',
|
|
17
|
-
domain: 'tasks',
|
|
18
|
-
operation: 'add',
|
|
19
|
-
gateway: 'mutate',
|
|
20
|
-
});
|
|
21
|
-
expect(observeBrainMock).toHaveBeenCalledTimes(1);
|
|
22
|
-
expect(observeBrainMock).toHaveBeenCalledWith('/tmp/project', expect.objectContaining({
|
|
23
|
-
text: expect.stringContaining('Error in tasks.add'),
|
|
24
|
-
title: 'Error: tasks.add',
|
|
25
|
-
type: 'discovery',
|
|
26
|
-
sourceType: 'agent',
|
|
27
|
-
}));
|
|
28
|
-
// Verify error details are in the text
|
|
29
|
-
const callText = observeBrainMock.mock.calls[0][1].text;
|
|
30
|
-
expect(callText).toContain('Validation failed');
|
|
31
|
-
expect(callText).toContain('Code: 42');
|
|
32
|
-
expect(callText).toContain('Gateway: mutate');
|
|
33
|
-
});
|
|
34
|
-
it('swallows brain schema missing error', async () => {
|
|
35
|
-
observeBrainMock.mockRejectedValue(new Error('SQLITE_ERROR: no such table: brain_observations'));
|
|
36
|
-
await expect(handleError('/tmp/project', {
|
|
37
|
-
timestamp: '2026-03-04T00:00:00.000Z',
|
|
38
|
-
errorCode: 1,
|
|
39
|
-
message: 'Something broke',
|
|
40
|
-
domain: 'tasks',
|
|
41
|
-
operation: 'show',
|
|
42
|
-
})).resolves.toBeUndefined();
|
|
43
|
-
});
|
|
44
|
-
it('skips observation when _fromHook flag is set', async () => {
|
|
45
|
-
await handleError('/tmp/project', {
|
|
46
|
-
timestamp: '2026-03-04T00:00:00.000Z',
|
|
47
|
-
errorCode: 1,
|
|
48
|
-
message: 'Hook-triggered error',
|
|
49
|
-
domain: 'memory',
|
|
50
|
-
operation: 'observe',
|
|
51
|
-
metadata: { _fromHook: true },
|
|
52
|
-
});
|
|
53
|
-
expect(observeBrainMock).not.toHaveBeenCalled();
|
|
54
|
-
});
|
|
55
|
-
it('includes domain/operation in observation text', async () => {
|
|
56
|
-
observeBrainMock.mockResolvedValue(undefined);
|
|
57
|
-
await handleError('/tmp/project', {
|
|
58
|
-
timestamp: '2026-03-04T00:00:00.000Z',
|
|
59
|
-
errorCode: 'E_NOT_FOUND',
|
|
60
|
-
message: 'Task not found',
|
|
61
|
-
domain: 'tasks',
|
|
62
|
-
operation: 'show',
|
|
63
|
-
});
|
|
64
|
-
const callText = observeBrainMock.mock.calls[0][1].text;
|
|
65
|
-
expect(callText).toContain('tasks.show');
|
|
66
|
-
expect(callText).toContain('E_NOT_FOUND');
|
|
67
|
-
});
|
|
68
|
-
it('uses "unknown" when domain/operation are absent', async () => {
|
|
69
|
-
observeBrainMock.mockResolvedValue(undefined);
|
|
70
|
-
await handleError('/tmp/project', {
|
|
71
|
-
timestamp: '2026-03-04T00:00:00.000Z',
|
|
72
|
-
errorCode: 1,
|
|
73
|
-
message: 'Something broke',
|
|
74
|
-
});
|
|
75
|
-
expect(observeBrainMock).toHaveBeenCalledWith('/tmp/project', expect.objectContaining({
|
|
76
|
-
title: 'Error: unknown',
|
|
77
|
-
}));
|
|
78
|
-
});
|
|
79
|
-
it('suppresses non-schema errors to prevent re-entrant hook firing', async () => {
|
|
80
|
-
observeBrainMock.mockRejectedValue(new Error('database is locked'));
|
|
81
|
-
await expect(handleError('/tmp/project', {
|
|
82
|
-
timestamp: '2026-03-04T00:00:00.000Z',
|
|
83
|
-
errorCode: 1,
|
|
84
|
-
message: 'Something broke',
|
|
85
|
-
domain: 'tasks',
|
|
86
|
-
operation: 'add',
|
|
87
|
-
})).resolves.toBeUndefined();
|
|
88
|
-
});
|
|
89
|
-
});
|
|
90
|
-
//# sourceMappingURL=error-hooks.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error-hooks.test.js","sourceRoot":"","sources":["error-hooks.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-hooks.test.d.ts","sourceRoot":"","sources":["file-hooks.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
2
|
-
const observeBrainMock = vi.fn();
|
|
3
|
-
vi.mock('../../../memory/brain-retrieval.js', () => ({
|
|
4
|
-
observeBrain: observeBrainMock,
|
|
5
|
-
}));
|
|
6
|
-
import { handleFileChange } from '../file-hooks.js';
|
|
7
|
-
describe('file hook handlers', () => {
|
|
8
|
-
beforeEach(() => {
|
|
9
|
-
observeBrainMock.mockReset();
|
|
10
|
-
vi.restoreAllMocks();
|
|
11
|
-
// Enable file capture for tests
|
|
12
|
-
process.env['CLEO_BRAIN_CAPTURE_FILES'] = 'true';
|
|
13
|
-
});
|
|
14
|
-
afterEach(() => {
|
|
15
|
-
delete process.env['CLEO_BRAIN_CAPTURE_FILES'];
|
|
16
|
-
});
|
|
17
|
-
it('calls observeBrain with file path and change type', async () => {
|
|
18
|
-
observeBrainMock.mockResolvedValue(undefined);
|
|
19
|
-
await handleFileChange('/tmp/project', {
|
|
20
|
-
timestamp: '2026-03-04T00:00:00.000Z',
|
|
21
|
-
filePath: 'src/core/tasks.ts',
|
|
22
|
-
changeType: 'write',
|
|
23
|
-
sizeBytes: 1024,
|
|
24
|
-
});
|
|
25
|
-
expect(observeBrainMock).toHaveBeenCalledTimes(1);
|
|
26
|
-
expect(observeBrainMock).toHaveBeenCalledWith('/tmp/project', expect.objectContaining({
|
|
27
|
-
text: expect.stringContaining('File write: src/core/tasks.ts'),
|
|
28
|
-
title: expect.stringContaining('File changed: src/core/tasks.ts'),
|
|
29
|
-
type: 'change',
|
|
30
|
-
sourceType: 'agent',
|
|
31
|
-
}));
|
|
32
|
-
const callText = observeBrainMock.mock.calls[0][1].text;
|
|
33
|
-
expect(callText).toContain('1024 bytes');
|
|
34
|
-
});
|
|
35
|
-
it('deduplicates rapid writes to same file within 5s', async () => {
|
|
36
|
-
observeBrainMock.mockResolvedValue(undefined);
|
|
37
|
-
// Use a unique file path for this test to avoid cross-test dedup
|
|
38
|
-
const uniquePath = `src/dedup-test-${Date.now()}.ts`;
|
|
39
|
-
await handleFileChange('/tmp/project', {
|
|
40
|
-
timestamp: '2026-03-04T00:00:00.000Z',
|
|
41
|
-
filePath: uniquePath,
|
|
42
|
-
changeType: 'write',
|
|
43
|
-
});
|
|
44
|
-
// Second call within 5s should be deduped
|
|
45
|
-
await handleFileChange('/tmp/project', {
|
|
46
|
-
timestamp: '2026-03-04T00:00:01.000Z',
|
|
47
|
-
filePath: uniquePath,
|
|
48
|
-
changeType: 'write',
|
|
49
|
-
});
|
|
50
|
-
expect(observeBrainMock).toHaveBeenCalledTimes(1);
|
|
51
|
-
});
|
|
52
|
-
it('allows writes to different files within 5s', async () => {
|
|
53
|
-
observeBrainMock.mockResolvedValue(undefined);
|
|
54
|
-
const fileA = `src/file-a-${Date.now()}.ts`;
|
|
55
|
-
const fileB = `src/file-b-${Date.now()}.ts`;
|
|
56
|
-
await handleFileChange('/tmp/project', {
|
|
57
|
-
timestamp: '2026-03-04T00:00:00.000Z',
|
|
58
|
-
filePath: fileA,
|
|
59
|
-
changeType: 'write',
|
|
60
|
-
});
|
|
61
|
-
await handleFileChange('/tmp/project', {
|
|
62
|
-
timestamp: '2026-03-04T00:00:01.000Z',
|
|
63
|
-
filePath: fileB,
|
|
64
|
-
changeType: 'create',
|
|
65
|
-
});
|
|
66
|
-
expect(observeBrainMock).toHaveBeenCalledTimes(2);
|
|
67
|
-
});
|
|
68
|
-
it('converts absolute path to relative', async () => {
|
|
69
|
-
observeBrainMock.mockResolvedValue(undefined);
|
|
70
|
-
const absPath = `/tmp/project/src/abs-test-${Date.now()}.ts`;
|
|
71
|
-
await handleFileChange('/tmp/project', {
|
|
72
|
-
timestamp: '2026-03-04T00:00:00.000Z',
|
|
73
|
-
filePath: absPath,
|
|
74
|
-
changeType: 'write',
|
|
75
|
-
});
|
|
76
|
-
expect(observeBrainMock).toHaveBeenCalledWith('/tmp/project', expect.objectContaining({
|
|
77
|
-
text: expect.stringMatching(/File write: src\/abs-test-\d+\.ts/),
|
|
78
|
-
title: expect.stringMatching(/File changed: src\/abs-test-\d+\.ts/),
|
|
79
|
-
}));
|
|
80
|
-
});
|
|
81
|
-
it('swallows brain schema missing error', async () => {
|
|
82
|
-
observeBrainMock.mockRejectedValue(new Error('no such table: brain_observations'));
|
|
83
|
-
const uniquePath = `src/swallow-test-${Date.now()}.ts`;
|
|
84
|
-
await expect(handleFileChange('/tmp/project', {
|
|
85
|
-
timestamp: '2026-03-04T00:00:00.000Z',
|
|
86
|
-
filePath: uniquePath,
|
|
87
|
-
changeType: 'delete',
|
|
88
|
-
})).resolves.toBeUndefined();
|
|
89
|
-
});
|
|
90
|
-
it('rethrows non-schema errors', async () => {
|
|
91
|
-
observeBrainMock.mockRejectedValue(new Error('disk full'));
|
|
92
|
-
const uniquePath = `src/rethrow-test-${Date.now()}.ts`;
|
|
93
|
-
await expect(handleFileChange('/tmp/project', {
|
|
94
|
-
timestamp: '2026-03-04T00:00:00.000Z',
|
|
95
|
-
filePath: uniquePath,
|
|
96
|
-
changeType: 'write',
|
|
97
|
-
})).rejects.toThrow('disk full');
|
|
98
|
-
});
|
|
99
|
-
it('skips when CLEO_BRAIN_CAPTURE_FILES is not set', async () => {
|
|
100
|
-
delete process.env['CLEO_BRAIN_CAPTURE_FILES'];
|
|
101
|
-
observeBrainMock.mockResolvedValue(undefined);
|
|
102
|
-
await handleFileChange('/tmp/project', {
|
|
103
|
-
timestamp: '2026-03-04T00:00:00.000Z',
|
|
104
|
-
filePath: `src/gated-test-${Date.now()}.ts`,
|
|
105
|
-
changeType: 'write',
|
|
106
|
-
});
|
|
107
|
-
expect(observeBrainMock).not.toHaveBeenCalled();
|
|
108
|
-
});
|
|
109
|
-
it('skips .cleo/ internal files', async () => {
|
|
110
|
-
observeBrainMock.mockResolvedValue(undefined);
|
|
111
|
-
await handleFileChange('/tmp/project', {
|
|
112
|
-
timestamp: '2026-03-04T00:00:00.000Z',
|
|
113
|
-
filePath: '.cleo/sessions.json',
|
|
114
|
-
changeType: 'write',
|
|
115
|
-
});
|
|
116
|
-
expect(observeBrainMock).not.toHaveBeenCalled();
|
|
117
|
-
});
|
|
118
|
-
it('skips test temp directory files', async () => {
|
|
119
|
-
observeBrainMock.mockResolvedValue(undefined);
|
|
120
|
-
await handleFileChange('/tmp/project', {
|
|
121
|
-
timestamp: '2026-03-04T00:00:00.000Z',
|
|
122
|
-
filePath: '/tmp/cleo-test-abc123/.cleo/tasks.db',
|
|
123
|
-
changeType: 'write',
|
|
124
|
-
});
|
|
125
|
-
expect(observeBrainMock).not.toHaveBeenCalled();
|
|
126
|
-
});
|
|
127
|
-
});
|
|
128
|
-
//# sourceMappingURL=file-hooks.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-hooks.test.js","sourceRoot":"","sources":["file-hooks.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAEzE,MAAM,gBAAgB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAEjC,EAAE,CAAC,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE,CAAC,CAAC;IACnD,YAAY,EAAE,gBAAgB;CAC/B,CAAC,CAAC,CAAC;AAEJ,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,UAAU,CAAC,GAAG,EAAE;QACd,gBAAgB,CAAC,SAAS,EAAE,CAAC;QAC7B,EAAE,CAAC,eAAe,EAAE,CAAC;QACrB,gCAAgC;QAChC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,GAAG,MAAM,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,gBAAgB,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAE9C,MAAM,gBAAgB,CAAC,cAAc,EAAE;YACrC,SAAS,EAAE,0BAA0B;YACrC,QAAQ,EAAE,mBAAmB;YAC7B,UAAU,EAAE,OAAO;YACnB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,gBAAgB,CAAC,CAAC,oBAAoB,CAC3C,cAAc,EACd,MAAM,CAAC,gBAAgB,CAAC;YACtB,IAAI,EAAE,MAAM,CAAC,gBAAgB,CAAC,+BAA+B,CAAC;YAC9D,KAAK,EAAE,MAAM,CAAC,gBAAgB,CAAC,iCAAiC,CAAC;YACjE,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,OAAO;SACpB,CAAC,CACH,CAAC;QACF,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAc,CAAC;QAClE,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,gBAAgB,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAE9C,iEAAiE;QACjE,MAAM,UAAU,GAAG,kBAAkB,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC;QAErD,MAAM,gBAAgB,CAAC,cAAc,EAAE;YACrC,SAAS,EAAE,0BAA0B;YACrC,QAAQ,EAAE,UAAU;YACpB,UAAU,EAAE,OAAO;SACpB,CAAC,CAAC;QAEH,0CAA0C;QAC1C,MAAM,gBAAgB,CAAC,cAAc,EAAE;YACrC,SAAS,EAAE,0BAA0B;YACrC,QAAQ,EAAE,UAAU;YACpB,UAAU,EAAE,OAAO;SACpB,CAAC,CAAC;QAEH,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,gBAAgB,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAE9C,MAAM,KAAK,GAAG,cAAc,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC;QAC5C,MAAM,KAAK,GAAG,cAAc,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC;QAE5C,MAAM,gBAAgB,CAAC,cAAc,EAAE;YACrC,SAAS,EAAE,0BAA0B;YACrC,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,OAAO;SACpB,CAAC,CAAC;QAEH,MAAM,gBAAgB,CAAC,cAAc,EAAE;YACrC,SAAS,EAAE,0BAA0B;YACrC,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,QAAQ;SACrB,CAAC,CAAC;QAEH,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,gBAAgB,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAE9C,MAAM,OAAO,GAAG,6BAA6B,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC;QAE7D,MAAM,gBAAgB,CAAC,cAAc,EAAE;YACrC,SAAS,EAAE,0BAA0B;YACrC,QAAQ,EAAE,OAAO;YACjB,UAAU,EAAE,OAAO;SACpB,CAAC,CAAC;QAEH,MAAM,CAAC,gBAAgB,CAAC,CAAC,oBAAoB,CAC3C,cAAc,EACd,MAAM,CAAC,gBAAgB,CAAC;YACtB,IAAI,EAAE,MAAM,CAAC,cAAc,CAAC,mCAAmC,CAAC;YAChE,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC,qCAAqC,CAAC;SACpE,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;QAEnF,MAAM,UAAU,GAAG,oBAAoB,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC;QAEvD,MAAM,MAAM,CACV,gBAAgB,CAAC,cAAc,EAAE;YAC/B,SAAS,EAAE,0BAA0B;YACrC,QAAQ,EAAE,UAAU;YACpB,UAAU,EAAE,QAAQ;SACrB,CAAC,CACH,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC1C,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QAE3D,MAAM,UAAU,GAAG,oBAAoB,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC;QAEvD,MAAM,MAAM,CACV,gBAAgB,CAAC,cAAc,EAAE;YAC/B,SAAS,EAAE,0BAA0B;YACrC,QAAQ,EAAE,UAAU;YACpB,UAAU,EAAE,OAAO;SACpB,CAAC,CACH,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,OAAO,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QAC/C,gBAAgB,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAE9C,MAAM,gBAAgB,CAAC,cAAc,EAAE;YACrC,SAAS,EAAE,0BAA0B;YACrC,QAAQ,EAAE,kBAAkB,IAAI,CAAC,GAAG,EAAE,KAAK;YAC3C,UAAU,EAAE,OAAO;SACpB,CAAC,CAAC;QAEH,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC3C,gBAAgB,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAE9C,MAAM,gBAAgB,CAAC,cAAc,EAAE;YACrC,SAAS,EAAE,0BAA0B;YACrC,QAAQ,EAAE,qBAAqB;YAC/B,UAAU,EAAE,OAAO;SACpB,CAAC,CAAC;QAEH,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC/C,gBAAgB,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAE9C,MAAM,gBAAgB,CAAC,cAAc,EAAE;YACrC,SAAS,EAAE,0BAA0B;YACrC,QAAQ,EAAE,sCAAsC;YAChD,UAAU,EAAE,OAAO;SACpB,CAAC,CAAC;QAEH,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hook-automation-e2e.test.d.ts","sourceRoot":"","sources":["hook-automation-e2e.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
|