@gitgov/core 1.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -31
- package/dist/src/index.d.ts +5493 -21
- package/dist/src/index.js +8090 -22
- package/dist/src/index.js.map +1 -1
- package/package.json +17 -5
- package/dist/scripts/compile-json-to-types.d.ts +0 -11
- package/dist/scripts/compile-json-to-types.d.ts.map +0 -1
- package/dist/scripts/compile-json-to-types.js +0 -129
- package/dist/scripts/compile-json-to-types.js.map +0 -1
- package/dist/scripts/diagnose-duplicates.d.ts +0 -7
- package/dist/scripts/diagnose-duplicates.d.ts.map +0 -1
- package/dist/scripts/diagnose-duplicates.js +0 -72
- package/dist/scripts/diagnose-duplicates.js.map +0 -1
- package/dist/scripts/generate-indexes.d.ts +0 -22
- package/dist/scripts/generate-indexes.d.ts.map +0 -1
- package/dist/scripts/generate-indexes.js +0 -168
- package/dist/scripts/generate-indexes.js.map +0 -1
- package/dist/scripts/sync-schemas.d.ts +0 -10
- package/dist/scripts/sync-schemas.d.ts.map +0 -1
- package/dist/scripts/sync-schemas.js +0 -84
- package/dist/scripts/sync-schemas.js.map +0 -1
- package/dist/scripts/sync-workflow-configs.d.ts +0 -11
- package/dist/scripts/sync-workflow-configs.d.ts.map +0 -1
- package/dist/scripts/sync-workflow-configs.js +0 -61
- package/dist/scripts/sync-workflow-configs.js.map +0 -1
- package/dist/scripts/update-diagram.d.ts +0 -7
- package/dist/scripts/update-diagram.d.ts.map +0 -1
- package/dist/scripts/update-diagram.js +0 -47
- package/dist/scripts/update-diagram.js.map +0 -1
- package/dist/scripts/validate-schemas.d.ts +0 -18
- package/dist/scripts/validate-schemas.d.ts.map +0 -1
- package/dist/scripts/validate-schemas.js +0 -313
- package/dist/scripts/validate-schemas.js.map +0 -1
- package/dist/src/adapters/backlog_adapter/backlog_adapter.integration.test.d.ts +0 -2
- package/dist/src/adapters/backlog_adapter/backlog_adapter.integration.test.d.ts.map +0 -1
- package/dist/src/adapters/backlog_adapter/backlog_adapter.integration.test.js +0 -507
- package/dist/src/adapters/backlog_adapter/backlog_adapter.integration.test.js.map +0 -1
- package/dist/src/adapters/backlog_adapter/backlog_adapter.test.d.ts +0 -2
- package/dist/src/adapters/backlog_adapter/backlog_adapter.test.d.ts.map +0 -1
- package/dist/src/adapters/backlog_adapter/backlog_adapter.test.js +0 -1282
- package/dist/src/adapters/backlog_adapter/backlog_adapter.test.js.map +0 -1
- package/dist/src/adapters/backlog_adapter/backlog_adapter_e2e.test.d.ts +0 -10
- package/dist/src/adapters/backlog_adapter/backlog_adapter_e2e.test.d.ts.map +0 -1
- package/dist/src/adapters/backlog_adapter/backlog_adapter_e2e.test.js +0 -144
- package/dist/src/adapters/backlog_adapter/backlog_adapter_e2e.test.js.map +0 -1
- package/dist/src/adapters/backlog_adapter/index.d.ts +0 -213
- package/dist/src/adapters/backlog_adapter/index.d.ts.map +0 -1
- package/dist/src/adapters/backlog_adapter/index.js +0 -924
- package/dist/src/adapters/backlog_adapter/index.js.map +0 -1
- package/dist/src/adapters/changelog_adapter/changelog_adapter.test.d.ts +0 -2
- package/dist/src/adapters/changelog_adapter/changelog_adapter.test.d.ts.map +0 -1
- package/dist/src/adapters/changelog_adapter/changelog_adapter.test.js +0 -505
- package/dist/src/adapters/changelog_adapter/changelog_adapter.test.js.map +0 -1
- package/dist/src/adapters/changelog_adapter/index.d.ts +0 -101
- package/dist/src/adapters/changelog_adapter/index.d.ts.map +0 -1
- package/dist/src/adapters/changelog_adapter/index.js +0 -197
- package/dist/src/adapters/changelog_adapter/index.js.map +0 -1
- package/dist/src/adapters/execution_adapter/execution_adapter.test.d.ts +0 -2
- package/dist/src/adapters/execution_adapter/execution_adapter.test.d.ts.map +0 -1
- package/dist/src/adapters/execution_adapter/execution_adapter.test.js +0 -266
- package/dist/src/adapters/execution_adapter/execution_adapter.test.js.map +0 -1
- package/dist/src/adapters/execution_adapter/index.d.ts +0 -90
- package/dist/src/adapters/execution_adapter/index.d.ts.map +0 -1
- package/dist/src/adapters/execution_adapter/index.js +0 -150
- package/dist/src/adapters/execution_adapter/index.js.map +0 -1
- package/dist/src/adapters/feedback_adapter/feedback_adapter.test.d.ts +0 -2
- package/dist/src/adapters/feedback_adapter/feedback_adapter.test.d.ts.map +0 -1
- package/dist/src/adapters/feedback_adapter/feedback_adapter.test.js +0 -256
- package/dist/src/adapters/feedback_adapter/feedback_adapter.test.js.map +0 -1
- package/dist/src/adapters/feedback_adapter/index.d.ts +0 -95
- package/dist/src/adapters/feedback_adapter/index.d.ts.map +0 -1
- package/dist/src/adapters/feedback_adapter/index.js +0 -192
- package/dist/src/adapters/feedback_adapter/index.js.map +0 -1
- package/dist/src/adapters/identity_adapter/identity_adapter.test.d.ts +0 -2
- package/dist/src/adapters/identity_adapter/identity_adapter.test.d.ts.map +0 -1
- package/dist/src/adapters/identity_adapter/identity_adapter.test.js +0 -624
- package/dist/src/adapters/identity_adapter/identity_adapter.test.js.map +0 -1
- package/dist/src/adapters/identity_adapter/index.d.ts +0 -82
- package/dist/src/adapters/identity_adapter/index.d.ts.map +0 -1
- package/dist/src/adapters/identity_adapter/index.js +0 -336
- package/dist/src/adapters/identity_adapter/index.js.map +0 -1
- package/dist/src/adapters/index.d.ts +0 -10
- package/dist/src/adapters/index.d.ts.map +0 -1
- package/dist/src/adapters/index.js +0 -10
- package/dist/src/adapters/index.js.map +0 -1
- package/dist/src/adapters/indexer_adapter/index.d.ts +0 -214
- package/dist/src/adapters/indexer_adapter/index.d.ts.map +0 -1
- package/dist/src/adapters/indexer_adapter/index.js +0 -643
- package/dist/src/adapters/indexer_adapter/index.js.map +0 -1
- package/dist/src/adapters/indexer_adapter/indexer_adapter.test.d.ts +0 -2
- package/dist/src/adapters/indexer_adapter/indexer_adapter.test.d.ts.map +0 -1
- package/dist/src/adapters/indexer_adapter/indexer_adapter.test.js +0 -409
- package/dist/src/adapters/indexer_adapter/indexer_adapter.test.js.map +0 -1
- package/dist/src/adapters/metrics_adapter/index.d.ts +0 -189
- package/dist/src/adapters/metrics_adapter/index.d.ts.map +0 -1
- package/dist/src/adapters/metrics_adapter/index.js +0 -592
- package/dist/src/adapters/metrics_adapter/index.js.map +0 -1
- package/dist/src/adapters/metrics_adapter/metrics_adapter.test.d.ts +0 -2
- package/dist/src/adapters/metrics_adapter/metrics_adapter.test.d.ts.map +0 -1
- package/dist/src/adapters/metrics_adapter/metrics_adapter.test.js +0 -558
- package/dist/src/adapters/metrics_adapter/metrics_adapter.test.js.map +0 -1
- package/dist/src/adapters/project_adapter/index.d.ts +0 -164
- package/dist/src/adapters/project_adapter/index.d.ts.map +0 -1
- package/dist/src/adapters/project_adapter/index.js +0 -445
- package/dist/src/adapters/project_adapter/index.js.map +0 -1
- package/dist/src/adapters/project_adapter/project_adapter.test.d.ts +0 -2
- package/dist/src/adapters/project_adapter/project_adapter.test.d.ts.map +0 -1
- package/dist/src/adapters/project_adapter/project_adapter.test.js +0 -627
- package/dist/src/adapters/project_adapter/project_adapter.test.js.map +0 -1
- package/dist/src/adapters/workflow_methodology_adapter/index.d.ts +0 -75
- package/dist/src/adapters/workflow_methodology_adapter/index.d.ts.map +0 -1
- package/dist/src/adapters/workflow_methodology_adapter/index.js +0 -205
- package/dist/src/adapters/workflow_methodology_adapter/index.js.map +0 -1
- package/dist/src/adapters/workflow_methodology_adapter/workflow_methodology_adapter.test.d.ts +0 -2
- package/dist/src/adapters/workflow_methodology_adapter/workflow_methodology_adapter.test.d.ts.map +0 -1
- package/dist/src/adapters/workflow_methodology_adapter/workflow_methodology_adapter.test.js +0 -463
- package/dist/src/adapters/workflow_methodology_adapter/workflow_methodology_adapter.test.js.map +0 -1
- package/dist/src/adapters/workflow_methodology_adapter/workflow_methodology_adapter_integration.test.d.ts +0 -2
- package/dist/src/adapters/workflow_methodology_adapter/workflow_methodology_adapter_integration.test.d.ts.map +0 -1
- package/dist/src/adapters/workflow_methodology_adapter/workflow_methodology_adapter_integration.test.js +0 -287
- package/dist/src/adapters/workflow_methodology_adapter/workflow_methodology_adapter_integration.test.js.map +0 -1
- package/dist/src/adapters/workflow_methodology_adapter/workflow_methodology_adapter_scrum_integration.test.d.ts +0 -2
- package/dist/src/adapters/workflow_methodology_adapter/workflow_methodology_adapter_scrum_integration.test.d.ts.map +0 -1
- package/dist/src/adapters/workflow_methodology_adapter/workflow_methodology_adapter_scrum_integration.test.js +0 -278
- package/dist/src/adapters/workflow_methodology_adapter/workflow_methodology_adapter_scrum_integration.test.js.map +0 -1
- package/dist/src/adapters/workflow_methodology_adapter/workflow_methodology_default.json +0 -188
- package/dist/src/adapters/workflow_methodology_adapter/workflow_methodology_scrum.json +0 -284
- package/dist/src/config_manager/config_manager.test.d.ts +0 -2
- package/dist/src/config_manager/config_manager.test.d.ts.map +0 -1
- package/dist/src/config_manager/config_manager.test.js +0 -321
- package/dist/src/config_manager/config_manager.test.js.map +0 -1
- package/dist/src/config_manager/index.d.ts +0 -107
- package/dist/src/config_manager/index.d.ts.map +0 -1
- package/dist/src/config_manager/index.js +0 -192
- package/dist/src/config_manager/index.js.map +0 -1
- package/dist/src/crypto/checksum.d.ts +0 -6
- package/dist/src/crypto/checksum.d.ts.map +0 -1
- package/dist/src/crypto/checksum.js +0 -38
- package/dist/src/crypto/checksum.js.map +0 -1
- package/dist/src/crypto/checksum.test.d.ts +0 -2
- package/dist/src/crypto/checksum.test.d.ts.map +0 -1
- package/dist/src/crypto/checksum.test.js +0 -167
- package/dist/src/crypto/checksum.test.js.map +0 -1
- package/dist/src/crypto/index.d.ts +0 -3
- package/dist/src/crypto/index.d.ts.map +0 -1
- package/dist/src/crypto/index.js +0 -3
- package/dist/src/crypto/index.js.map +0 -1
- package/dist/src/crypto/signatures.d.ts +0 -24
- package/dist/src/crypto/signatures.d.ts.map +0 -1
- package/dist/src/crypto/signatures.js +0 -67
- package/dist/src/crypto/signatures.js.map +0 -1
- package/dist/src/crypto/signatures.test.d.ts +0 -2
- package/dist/src/crypto/signatures.test.d.ts.map +0 -1
- package/dist/src/crypto/signatures.test.js +0 -378
- package/dist/src/crypto/signatures.test.js.map +0 -1
- package/dist/src/diagram_generator/diagram_generator.d.ts +0 -76
- package/dist/src/diagram_generator/diagram_generator.d.ts.map +0 -1
- package/dist/src/diagram_generator/diagram_generator.js +0 -233
- package/dist/src/diagram_generator/diagram_generator.js.map +0 -1
- package/dist/src/diagram_generator/graph_validator.d.ts +0 -19
- package/dist/src/diagram_generator/graph_validator.d.ts.map +0 -1
- package/dist/src/diagram_generator/graph_validator.js +0 -98
- package/dist/src/diagram_generator/graph_validator.js.map +0 -1
- package/dist/src/diagram_generator/index.d.ts +0 -4
- package/dist/src/diagram_generator/index.d.ts.map +0 -1
- package/dist/src/diagram_generator/index.js +0 -4
- package/dist/src/diagram_generator/index.js.map +0 -1
- package/dist/src/diagram_generator/mermaid_renderer.d.ts +0 -82
- package/dist/src/diagram_generator/mermaid_renderer.d.ts.map +0 -1
- package/dist/src/diagram_generator/mermaid_renderer.js +0 -306
- package/dist/src/diagram_generator/mermaid_renderer.js.map +0 -1
- package/dist/src/diagram_generator/relationship_analyzer.d.ts +0 -116
- package/dist/src/diagram_generator/relationship_analyzer.d.ts.map +0 -1
- package/dist/src/diagram_generator/relationship_analyzer.js +0 -381
- package/dist/src/diagram_generator/relationship_analyzer.js.map +0 -1
- package/dist/src/event_bus/event_bus.d.ts +0 -110
- package/dist/src/event_bus/event_bus.d.ts.map +0 -1
- package/dist/src/event_bus/event_bus.js +0 -161
- package/dist/src/event_bus/event_bus.js.map +0 -1
- package/dist/src/event_bus/event_bus.test.d.ts +0 -2
- package/dist/src/event_bus/event_bus.test.d.ts.map +0 -1
- package/dist/src/event_bus/event_bus.test.js +0 -332
- package/dist/src/event_bus/event_bus.test.js.map +0 -1
- package/dist/src/event_bus/event_bus_integration.test.d.ts +0 -2
- package/dist/src/event_bus/event_bus_integration.test.d.ts.map +0 -1
- package/dist/src/event_bus/event_bus_integration.test.js +0 -474
- package/dist/src/event_bus/event_bus_integration.test.js.map +0 -1
- package/dist/src/event_bus/index.d.ts +0 -3
- package/dist/src/event_bus/index.d.ts.map +0 -1
- package/dist/src/event_bus/index.js +0 -3
- package/dist/src/event_bus/index.js.map +0 -1
- package/dist/src/event_bus/types.d.ts +0 -203
- package/dist/src/event_bus/types.d.ts.map +0 -1
- package/dist/src/event_bus/types.js +0 -5
- package/dist/src/event_bus/types.js.map +0 -1
- package/dist/src/factories/actor_factory.d.ts +0 -6
- package/dist/src/factories/actor_factory.d.ts.map +0 -1
- package/dist/src/factories/actor_factory.js +0 -25
- package/dist/src/factories/actor_factory.js.map +0 -1
- package/dist/src/factories/actor_factory.test.d.ts +0 -2
- package/dist/src/factories/actor_factory.test.d.ts.map +0 -1
- package/dist/src/factories/actor_factory.test.js +0 -169
- package/dist/src/factories/actor_factory.test.js.map +0 -1
- package/dist/src/factories/agent_factory.d.ts +0 -6
- package/dist/src/factories/agent_factory.d.ts.map +0 -1
- package/dist/src/factories/agent_factory.js +0 -25
- package/dist/src/factories/agent_factory.js.map +0 -1
- package/dist/src/factories/agent_factory.test.d.ts +0 -2
- package/dist/src/factories/agent_factory.test.d.ts.map +0 -1
- package/dist/src/factories/agent_factory.test.js +0 -199
- package/dist/src/factories/agent_factory.test.js.map +0 -1
- package/dist/src/factories/changelog_factory.d.ts +0 -9
- package/dist/src/factories/changelog_factory.d.ts.map +0 -1
- package/dist/src/factories/changelog_factory.js +0 -46
- package/dist/src/factories/changelog_factory.js.map +0 -1
- package/dist/src/factories/changelog_factory.test.d.ts +0 -2
- package/dist/src/factories/changelog_factory.test.d.ts.map +0 -1
- package/dist/src/factories/changelog_factory.test.js +0 -368
- package/dist/src/factories/changelog_factory.test.js.map +0 -1
- package/dist/src/factories/cycle_factory.d.ts +0 -6
- package/dist/src/factories/cycle_factory.d.ts.map +0 -1
- package/dist/src/factories/cycle_factory.js +0 -28
- package/dist/src/factories/cycle_factory.js.map +0 -1
- package/dist/src/factories/cycle_factory.test.d.ts +0 -2
- package/dist/src/factories/cycle_factory.test.d.ts.map +0 -1
- package/dist/src/factories/cycle_factory.test.js +0 -175
- package/dist/src/factories/cycle_factory.test.js.map +0 -1
- package/dist/src/factories/execution_factory.d.ts +0 -9
- package/dist/src/factories/execution_factory.d.ts.map +0 -1
- package/dist/src/factories/execution_factory.js +0 -29
- package/dist/src/factories/execution_factory.js.map +0 -1
- package/dist/src/factories/execution_factory.test.d.ts +0 -2
- package/dist/src/factories/execution_factory.test.d.ts.map +0 -1
- package/dist/src/factories/execution_factory.test.js +0 -207
- package/dist/src/factories/execution_factory.test.js.map +0 -1
- package/dist/src/factories/feedback_factory.d.ts +0 -9
- package/dist/src/factories/feedback_factory.d.ts.map +0 -1
- package/dist/src/factories/feedback_factory.js +0 -30
- package/dist/src/factories/feedback_factory.js.map +0 -1
- package/dist/src/factories/feedback_factory.test.d.ts +0 -2
- package/dist/src/factories/feedback_factory.test.d.ts.map +0 -1
- package/dist/src/factories/feedback_factory.test.js +0 -256
- package/dist/src/factories/feedback_factory.test.js.map +0 -1
- package/dist/src/factories/index.d.ts +0 -9
- package/dist/src/factories/index.d.ts.map +0 -1
- package/dist/src/factories/index.js +0 -9
- package/dist/src/factories/index.js.map +0 -1
- package/dist/src/factories/task_factory.d.ts +0 -6
- package/dist/src/factories/task_factory.d.ts.map +0 -1
- package/dist/src/factories/task_factory.js +0 -30
- package/dist/src/factories/task_factory.js.map +0 -1
- package/dist/src/factories/task_factory.test.d.ts +0 -2
- package/dist/src/factories/task_factory.test.d.ts.map +0 -1
- package/dist/src/factories/task_factory.test.js +0 -197
- package/dist/src/factories/task_factory.test.js.map +0 -1
- package/dist/src/factories/workflow_methodology_factory.d.ts +0 -11
- package/dist/src/factories/workflow_methodology_factory.d.ts.map +0 -1
- package/dist/src/factories/workflow_methodology_factory.js +0 -173
- package/dist/src/factories/workflow_methodology_factory.js.map +0 -1
- package/dist/src/factories/workflow_methodology_factory.test.d.ts +0 -2
- package/dist/src/factories/workflow_methodology_factory.test.d.ts.map +0 -1
- package/dist/src/factories/workflow_methodology_factory.test.js +0 -244
- package/dist/src/factories/workflow_methodology_factory.test.js.map +0 -1
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/integration/cycles_tasks_integration.test.d.ts +0 -2
- package/dist/src/integration/cycles_tasks_integration.test.d.ts.map +0 -1
- package/dist/src/integration/cycles_tasks_integration.test.js +0 -258
- package/dist/src/integration/cycles_tasks_integration.test.js.map +0 -1
- package/dist/src/integration/schema_integration.test.d.ts +0 -8
- package/dist/src/integration/schema_integration.test.d.ts.map +0 -1
- package/dist/src/integration/schema_integration.test.js +0 -279
- package/dist/src/integration/schema_integration.test.js.map +0 -1
- package/dist/src/logger/index.d.ts +0 -2
- package/dist/src/logger/index.d.ts.map +0 -1
- package/dist/src/logger/index.js +0 -2
- package/dist/src/logger/index.js.map +0 -1
- package/dist/src/logger/logger.d.ts +0 -10
- package/dist/src/logger/logger.d.ts.map +0 -1
- package/dist/src/logger/logger.js +0 -48
- package/dist/src/logger/logger.js.map +0 -1
- package/dist/src/schemas/errors.d.ts +0 -28
- package/dist/src/schemas/errors.d.ts.map +0 -1
- package/dist/src/schemas/errors.js +0 -31
- package/dist/src/schemas/errors.js.map +0 -1
- package/dist/src/schemas/generated/actor_record_schema.json +0 -91
- package/dist/src/schemas/generated/agent_record_schema.json +0 -142
- package/dist/src/schemas/generated/changelog_record_schema.json +0 -227
- package/dist/src/schemas/generated/cycle_record_schema.json +0 -80
- package/dist/src/schemas/generated/embedded_metadata_schema.json +0 -318
- package/dist/src/schemas/generated/execution_record_schema.json +0 -89
- package/dist/src/schemas/generated/feedback_record_schema.json +0 -83
- package/dist/src/schemas/generated/index.d.ts +0 -2221
- package/dist/src/schemas/generated/index.d.ts.map +0 -1
- package/dist/src/schemas/generated/index.js +0 -48
- package/dist/src/schemas/generated/index.js.map +0 -1
- package/dist/src/schemas/generated/task_record_schema.json +0 -103
- package/dist/src/schemas/generated/workflow_methodology_record_schema.json +0 -393
- package/dist/src/schemas/index.d.ts +0 -4
- package/dist/src/schemas/index.d.ts.map +0 -1
- package/dist/src/schemas/index.js +0 -4
- package/dist/src/schemas/index.js.map +0 -1
- package/dist/src/schemas/schema_cache.d.ts +0 -39
- package/dist/src/schemas/schema_cache.d.ts.map +0 -1
- package/dist/src/schemas/schema_cache.js +0 -109
- package/dist/src/schemas/schema_cache.js.map +0 -1
- package/dist/src/schemas/schema_cache.test.d.ts +0 -2
- package/dist/src/schemas/schema_cache.test.d.ts.map +0 -1
- package/dist/src/schemas/schema_cache.test.js +0 -163
- package/dist/src/schemas/schema_cache.test.js.map +0 -1
- package/dist/src/store/index.d.ts +0 -2
- package/dist/src/store/index.d.ts.map +0 -1
- package/dist/src/store/index.js +0 -2
- package/dist/src/store/index.js.map +0 -1
- package/dist/src/store/record_store.d.ts +0 -30
- package/dist/src/store/record_store.d.ts.map +0 -1
- package/dist/src/store/record_store.js +0 -83
- package/dist/src/store/record_store.js.map +0 -1
- package/dist/src/store/record_store.test.d.ts +0 -2
- package/dist/src/store/record_store.test.d.ts.map +0 -1
- package/dist/src/store/record_store.test.js +0 -646
- package/dist/src/store/record_store.test.js.map +0 -1
- package/dist/src/types/common.types.d.ts +0 -43
- package/dist/src/types/common.types.d.ts.map +0 -1
- package/dist/src/types/common.types.js +0 -13
- package/dist/src/types/common.types.js.map +0 -1
- package/dist/src/types/embedded.types.d.ts +0 -17
- package/dist/src/types/embedded.types.d.ts.map +0 -1
- package/dist/src/types/embedded.types.js +0 -2
- package/dist/src/types/embedded.types.js.map +0 -1
- package/dist/src/types/generated/actor_record.d.ts +0 -45
- package/dist/src/types/generated/actor_record.d.ts.map +0 -1
- package/dist/src/types/generated/actor_record.js +0 -7
- package/dist/src/types/generated/actor_record.js.map +0 -1
- package/dist/src/types/generated/agent_record.d.ts +0 -40
- package/dist/src/types/generated/agent_record.d.ts.map +0 -1
- package/dist/src/types/generated/agent_record.js +0 -7
- package/dist/src/types/generated/agent_record.js.map +0 -1
- package/dist/src/types/generated/changelog_record.d.ts +0 -100
- package/dist/src/types/generated/changelog_record.d.ts.map +0 -1
- package/dist/src/types/generated/changelog_record.js +0 -7
- package/dist/src/types/generated/changelog_record.js.map +0 -1
- package/dist/src/types/generated/cycle_record.d.ts +0 -36
- package/dist/src/types/generated/cycle_record.d.ts.map +0 -1
- package/dist/src/types/generated/cycle_record.js +0 -7
- package/dist/src/types/generated/cycle_record.js.map +0 -1
- package/dist/src/types/generated/embedded_metadata.d.ts +0 -94
- package/dist/src/types/generated/embedded_metadata.d.ts.map +0 -1
- package/dist/src/types/generated/embedded_metadata.js +0 -7
- package/dist/src/types/generated/embedded_metadata.js.map +0 -1
- package/dist/src/types/generated/execution_record.d.ts +0 -39
- package/dist/src/types/generated/execution_record.d.ts.map +0 -1
- package/dist/src/types/generated/execution_record.js +0 -7
- package/dist/src/types/generated/execution_record.js.map +0 -1
- package/dist/src/types/generated/feedback_record.d.ts +0 -43
- package/dist/src/types/generated/feedback_record.d.ts.map +0 -1
- package/dist/src/types/generated/feedback_record.js +0 -7
- package/dist/src/types/generated/feedback_record.js.map +0 -1
- package/dist/src/types/generated/index.d.ts +0 -15
- package/dist/src/types/generated/index.d.ts.map +0 -1
- package/dist/src/types/generated/index.js +0 -15
- package/dist/src/types/generated/index.js.map +0 -1
- package/dist/src/types/generated/task_record.d.ts +0 -47
- package/dist/src/types/generated/task_record.d.ts.map +0 -1
- package/dist/src/types/generated/task_record.js +0 -7
- package/dist/src/types/generated/task_record.js.map +0 -1
- package/dist/src/types/generated/workflow_methodology_record.d.ts +0 -211
- package/dist/src/types/generated/workflow_methodology_record.d.ts.map +0 -1
- package/dist/src/types/generated/workflow_methodology_record.js +0 -7
- package/dist/src/types/generated/workflow_methodology_record.js.map +0 -1
- package/dist/src/types/index.d.ts +0 -4
- package/dist/src/types/index.d.ts.map +0 -1
- package/dist/src/types/index.js +0 -4
- package/dist/src/types/index.js.map +0 -1
- package/dist/src/utils/id_generator.d.ts +0 -44
- package/dist/src/utils/id_generator.d.ts.map +0 -1
- package/dist/src/utils/id_generator.js +0 -107
- package/dist/src/utils/id_generator.js.map +0 -1
- package/dist/src/utils/id_generator.test.d.ts +0 -2
- package/dist/src/utils/id_generator.test.d.ts.map +0 -1
- package/dist/src/utils/id_generator.test.js +0 -100
- package/dist/src/utils/id_generator.test.js.map +0 -1
- package/dist/src/utils/index.d.ts +0 -2
- package/dist/src/utils/index.d.ts.map +0 -1
- package/dist/src/utils/index.js +0 -3
- package/dist/src/utils/index.js.map +0 -1
- package/dist/src/validation/actor_validator.d.ts +0 -21
- package/dist/src/validation/actor_validator.d.ts.map +0 -1
- package/dist/src/validation/actor_validator.js +0 -48
- package/dist/src/validation/actor_validator.js.map +0 -1
- package/dist/src/validation/actor_validator.test.d.ts +0 -2
- package/dist/src/validation/actor_validator.test.d.ts.map +0 -1
- package/dist/src/validation/actor_validator.test.js +0 -83
- package/dist/src/validation/actor_validator.test.js.map +0 -1
- package/dist/src/validation/agent_validator.d.ts +0 -30
- package/dist/src/validation/agent_validator.d.ts.map +0 -1
- package/dist/src/validation/agent_validator.js +0 -66
- package/dist/src/validation/agent_validator.js.map +0 -1
- package/dist/src/validation/agent_validator.test.d.ts +0 -2
- package/dist/src/validation/agent_validator.test.d.ts.map +0 -1
- package/dist/src/validation/agent_validator.test.js +0 -73
- package/dist/src/validation/agent_validator.test.js.map +0 -1
- package/dist/src/validation/changelog_validator.d.ts +0 -23
- package/dist/src/validation/changelog_validator.d.ts.map +0 -1
- package/dist/src/validation/changelog_validator.js +0 -58
- package/dist/src/validation/changelog_validator.js.map +0 -1
- package/dist/src/validation/changelog_validator.test.d.ts +0 -2
- package/dist/src/validation/changelog_validator.test.d.ts.map +0 -1
- package/dist/src/validation/changelog_validator.test.js +0 -401
- package/dist/src/validation/changelog_validator.test.js.map +0 -1
- package/dist/src/validation/common.d.ts +0 -10
- package/dist/src/validation/common.d.ts.map +0 -1
- package/dist/src/validation/common.js +0 -12
- package/dist/src/validation/common.js.map +0 -1
- package/dist/src/validation/cycle_validator.d.ts +0 -24
- package/dist/src/validation/cycle_validator.d.ts.map +0 -1
- package/dist/src/validation/cycle_validator.js +0 -51
- package/dist/src/validation/cycle_validator.js.map +0 -1
- package/dist/src/validation/cycle_validator.test.d.ts +0 -2
- package/dist/src/validation/cycle_validator.test.d.ts.map +0 -1
- package/dist/src/validation/cycle_validator.test.js +0 -182
- package/dist/src/validation/cycle_validator.test.js.map +0 -1
- package/dist/src/validation/embedded_metadata_validator.d.ts +0 -26
- package/dist/src/validation/embedded_metadata_validator.d.ts.map +0 -1
- package/dist/src/validation/embedded_metadata_validator.js +0 -122
- package/dist/src/validation/embedded_metadata_validator.js.map +0 -1
- package/dist/src/validation/embedded_metadata_validator.test.d.ts +0 -2
- package/dist/src/validation/embedded_metadata_validator.test.d.ts.map +0 -1
- package/dist/src/validation/embedded_metadata_validator.test.js +0 -316
- package/dist/src/validation/embedded_metadata_validator.test.js.map +0 -1
- package/dist/src/validation/errors.d.ts +0 -67
- package/dist/src/validation/errors.d.ts.map +0 -1
- package/dist/src/validation/errors.js +0 -83
- package/dist/src/validation/errors.js.map +0 -1
- package/dist/src/validation/execution_validator.d.ts +0 -23
- package/dist/src/validation/execution_validator.d.ts.map +0 -1
- package/dist/src/validation/execution_validator.js +0 -58
- package/dist/src/validation/execution_validator.js.map +0 -1
- package/dist/src/validation/execution_validator.test.d.ts +0 -2
- package/dist/src/validation/execution_validator.test.d.ts.map +0 -1
- package/dist/src/validation/execution_validator.test.js +0 -167
- package/dist/src/validation/execution_validator.test.js.map +0 -1
- package/dist/src/validation/feedback_validator.d.ts +0 -23
- package/dist/src/validation/feedback_validator.d.ts.map +0 -1
- package/dist/src/validation/feedback_validator.js +0 -58
- package/dist/src/validation/feedback_validator.js.map +0 -1
- package/dist/src/validation/feedback_validator.test.d.ts +0 -2
- package/dist/src/validation/feedback_validator.test.d.ts.map +0 -1
- package/dist/src/validation/feedback_validator.test.js +0 -131
- package/dist/src/validation/feedback_validator.test.js.map +0 -1
- package/dist/src/validation/index.d.ts +0 -11
- package/dist/src/validation/index.d.ts.map +0 -1
- package/dist/src/validation/index.js +0 -10
- package/dist/src/validation/index.js.map +0 -1
- package/dist/src/validation/task_validator.d.ts +0 -24
- package/dist/src/validation/task_validator.d.ts.map +0 -1
- package/dist/src/validation/task_validator.js +0 -50
- package/dist/src/validation/task_validator.js.map +0 -1
- package/dist/src/validation/task_validator.test.d.ts +0 -2
- package/dist/src/validation/task_validator.test.d.ts.map +0 -1
- package/dist/src/validation/task_validator.test.js +0 -185
- package/dist/src/validation/task_validator.test.js.map +0 -1
- package/dist/src/validation/workflow_methodology_validator.d.ts +0 -32
- package/dist/src/validation/workflow_methodology_validator.d.ts.map +0 -1
- package/dist/src/validation/workflow_methodology_validator.js +0 -91
- package/dist/src/validation/workflow_methodology_validator.js.map +0 -1
- package/dist/src/validation/workflow_methodology_validator.test.d.ts +0 -2
- package/dist/src/validation/workflow_methodology_validator.test.d.ts.map +0 -1
- package/dist/src/validation/workflow_methodology_validator.test.js +0 -229
- package/dist/src/validation/workflow_methodology_validator.test.js.map +0 -1
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import { generateActorId, generateTaskId, generateCycleId, generateExecutionId, generateChangelogId, generateFeedbackId, parseTimestampedId, parseActorId, isValidTimestampedId } from './id_generator';
|
|
2
|
-
describe('ID Generators', () => {
|
|
3
|
-
describe('generateActorId', () => {
|
|
4
|
-
it('[EARS-1] should create a valid human ID', () => {
|
|
5
|
-
expect(generateActorId('human', 'Camilo Velandia')).toBe('human:camilo-velandia');
|
|
6
|
-
});
|
|
7
|
-
it('[EARS-1] should create a valid agent ID', () => {
|
|
8
|
-
expect(generateActorId('agent', 'Cursor Assistant')).toBe('agent:cursor-assistant');
|
|
9
|
-
});
|
|
10
|
-
});
|
|
11
|
-
describe('generateTaskId', () => {
|
|
12
|
-
it('[EARS-2] should create a valid task ID', () => {
|
|
13
|
-
expect(generateTaskId('Implement Auth Flow', 12345)).toBe('12345-task-implement-auth-flow');
|
|
14
|
-
});
|
|
15
|
-
});
|
|
16
|
-
describe('generateCycleId', () => {
|
|
17
|
-
it('[EARS-3] should create a valid cycle ID', () => {
|
|
18
|
-
expect(generateCycleId('Q4 Sprint 1', 54321)).toBe('54321-cycle-q4-sprint-1');
|
|
19
|
-
});
|
|
20
|
-
});
|
|
21
|
-
describe('generateExecutionId', () => {
|
|
22
|
-
it('[EARS-4] should create a valid execution ID', () => {
|
|
23
|
-
expect(generateExecutionId('Commit changes', 99999)).toBe('99999-exec-commit-changes');
|
|
24
|
-
});
|
|
25
|
-
});
|
|
26
|
-
describe('generateChangelogId', () => {
|
|
27
|
-
it('[EARS-5] should create a valid changelog ID for task entity', () => {
|
|
28
|
-
const entityId = '12345-task-implement-auth-flow';
|
|
29
|
-
expect(generateChangelogId('task', entityId, 88888)).toBe('88888-changelog-task-implement-auth-flow');
|
|
30
|
-
});
|
|
31
|
-
it('[EARS-5] should create a valid changelog ID for system entity', () => {
|
|
32
|
-
expect(generateChangelogId('system', 'payment-gateway', 88888)).toBe('88888-changelog-system-payment-gateway');
|
|
33
|
-
});
|
|
34
|
-
it('[EARS-5] should create a valid changelog ID for configuration entity', () => {
|
|
35
|
-
expect(generateChangelogId('configuration', 'database-config', 88888)).toBe('88888-changelog-configuration-database-config');
|
|
36
|
-
});
|
|
37
|
-
it('[EARS-5] should create a valid changelog ID for cycle entity', () => {
|
|
38
|
-
const entityId = '54321-cycle-sprint-1';
|
|
39
|
-
expect(generateChangelogId('cycle', entityId, 88888)).toBe('88888-changelog-cycle-sprint-1');
|
|
40
|
-
});
|
|
41
|
-
it('[EARS-5] should create a valid changelog ID for agent entity', () => {
|
|
42
|
-
expect(generateChangelogId('agent', 'cursor-assistant', 88888)).toBe('88888-changelog-agent-cursor-assistant');
|
|
43
|
-
});
|
|
44
|
-
});
|
|
45
|
-
describe('generateFeedbackId', () => {
|
|
46
|
-
it('[EARS-6] should create a valid feedback ID', () => {
|
|
47
|
-
expect(generateFeedbackId('Code Review Comments', 77777)).toBe('77777-feedback-code-review-comments');
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
|
-
describe('parseTimestampedId', () => {
|
|
51
|
-
it('[EARS-7] should parse a valid task ID', () => {
|
|
52
|
-
const parsed = parseTimestampedId('12345-task-implement-auth');
|
|
53
|
-
expect(parsed).toEqual({
|
|
54
|
-
timestamp: 12345,
|
|
55
|
-
prefix: 'task',
|
|
56
|
-
slug: 'implement-auth',
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
it('[EARS-7] should return null for invalid formats', () => {
|
|
60
|
-
expect(parseTimestampedId('invalid-id')).toBeNull();
|
|
61
|
-
expect(parseTimestampedId('123-task')).toBeNull();
|
|
62
|
-
});
|
|
63
|
-
});
|
|
64
|
-
describe('parseActorId', () => {
|
|
65
|
-
it('[EARS-8] should parse a valid human ID', () => {
|
|
66
|
-
const parsed = parseActorId('human:camilo-velandia');
|
|
67
|
-
expect(parsed).toEqual({
|
|
68
|
-
type: 'human',
|
|
69
|
-
slug: 'camilo-velandia',
|
|
70
|
-
});
|
|
71
|
-
});
|
|
72
|
-
it('[EARS-8] should parse a valid agent ID with scope', () => {
|
|
73
|
-
const parsed = parseActorId('agent:camilo:cursor:planner');
|
|
74
|
-
expect(parsed).toEqual({
|
|
75
|
-
type: 'agent',
|
|
76
|
-
slug: 'camilo:cursor:planner',
|
|
77
|
-
});
|
|
78
|
-
});
|
|
79
|
-
it('[EARS-8] should return null for invalid actor IDs', () => {
|
|
80
|
-
expect(parseActorId('invalid-id')).toBeNull();
|
|
81
|
-
expect(parseActorId('badtype:name')).toBeNull();
|
|
82
|
-
});
|
|
83
|
-
});
|
|
84
|
-
describe('isValidTimestampedId', () => {
|
|
85
|
-
it('[EARS-9] should return true for valid IDs', () => {
|
|
86
|
-
expect(isValidTimestampedId('12345-task-valid-slug')).toBe(true);
|
|
87
|
-
expect(isValidTimestampedId('54321-cycle-another-slug')).toBe(true);
|
|
88
|
-
expect(isValidTimestampedId('67890-exec-execution-slug')).toBe(true);
|
|
89
|
-
expect(isValidTimestampedId('11111-changelog-changelog-slug')).toBe(true);
|
|
90
|
-
expect(isValidTimestampedId('22222-feedback-feedback-slug')).toBe(true);
|
|
91
|
-
});
|
|
92
|
-
it('[EARS-10] should return false for invalid IDs', () => {
|
|
93
|
-
expect(isValidTimestampedId('123-badprefix-slug')).toBe(false);
|
|
94
|
-
expect(isValidTimestampedId('notatimestamp-task-slug')).toBe(false);
|
|
95
|
-
expect(isValidTimestampedId('12345-task-')).toBe(false);
|
|
96
|
-
expect(isValidTimestampedId('12345-task')).toBe(false);
|
|
97
|
-
});
|
|
98
|
-
});
|
|
99
|
-
});
|
|
100
|
-
//# sourceMappingURL=id_generator.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"id_generator.test.js","sourceRoot":"","sources":["../../../src/utils/id_generator.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":""}
|
package/dist/src/utils/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";AAAA,2DAA2D"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import type { ValidateFunction } from "ajv";
|
|
2
|
-
import type { ActorRecord } from "../types";
|
|
3
|
-
import type { GitGovRecord } from "../types";
|
|
4
|
-
import type { ValidationResult } from './errors';
|
|
5
|
-
export declare function validateActorRecordSchema(data: unknown): [boolean, ValidateFunction["errors"]];
|
|
6
|
-
export declare function isActorRecord(data: unknown): data is ActorRecord;
|
|
7
|
-
/**
|
|
8
|
-
* Validates an ActorRecord and returns detailed validation result.
|
|
9
|
-
* Use this in factories and adapters for comprehensive error reporting.
|
|
10
|
-
*/
|
|
11
|
-
export declare function validateActorRecordDetailed(data: unknown): ValidationResult;
|
|
12
|
-
/**
|
|
13
|
-
* Performs a complete validation of an ActorRecord, including schema,
|
|
14
|
-
* checksum, and signature checks.
|
|
15
|
-
* @param record The full GitGovRecord containing the actor payload.
|
|
16
|
-
* @param getActorPublicKey A function to retrieve the public key for a given actor ID.
|
|
17
|
-
*/
|
|
18
|
-
export declare function validateFullActorRecord(record: GitGovRecord & {
|
|
19
|
-
payload: ActorRecord;
|
|
20
|
-
}, getActorPublicKey: (keyId: string) => Promise<string | null>): Promise<void>;
|
|
21
|
-
//# sourceMappingURL=actor_validator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"actor_validator.d.ts","sourceRoot":"","sources":["../../../src/validation/actor_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAQjD,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,OAAO,GACZ,CAAC,OAAO,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAIvC;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,WAAW,CAGhE;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,OAAO,GAAG,gBAAgB,CAa3E;AAGD;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,YAAY,GAAG;IAAE,OAAO,EAAE,WAAW,CAAA;CAAE,EAC/C,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAC3D,OAAO,CAAC,IAAI,CAAC,CAWf"}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { SchemaValidationError } from "./common";
|
|
2
|
-
import { SchemaValidationCache } from "../schemas/schema_cache";
|
|
3
|
-
import { Schemas } from "../schemas";
|
|
4
|
-
import { validateFullEmbeddedMetadataRecord } from './embedded_metadata_validator';
|
|
5
|
-
// --- Schema Validation ---
|
|
6
|
-
const actorSchema = Schemas.ActorRecord;
|
|
7
|
-
export function validateActorRecordSchema(data) {
|
|
8
|
-
const validateSchema = SchemaValidationCache.getValidatorFromSchema(actorSchema);
|
|
9
|
-
const isValid = validateSchema(data);
|
|
10
|
-
return [isValid, validateSchema.errors];
|
|
11
|
-
}
|
|
12
|
-
export function isActorRecord(data) {
|
|
13
|
-
const validateSchema = SchemaValidationCache.getValidatorFromSchema(actorSchema);
|
|
14
|
-
return validateSchema(data);
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Validates an ActorRecord and returns detailed validation result.
|
|
18
|
-
* Use this in factories and adapters for comprehensive error reporting.
|
|
19
|
-
*/
|
|
20
|
-
export function validateActorRecordDetailed(data) {
|
|
21
|
-
const [isValid, ajvErrors] = validateActorRecordSchema(data);
|
|
22
|
-
const formattedErrors = ajvErrors ? ajvErrors.map(error => ({
|
|
23
|
-
field: error.instancePath || error.schemaPath || 'root',
|
|
24
|
-
message: error.message || 'Validation failed',
|
|
25
|
-
value: error.data
|
|
26
|
-
})) : [];
|
|
27
|
-
return {
|
|
28
|
-
isValid,
|
|
29
|
-
errors: formattedErrors
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
// --- Full Validation Orchestrator ---
|
|
33
|
-
/**
|
|
34
|
-
* Performs a complete validation of an ActorRecord, including schema,
|
|
35
|
-
* checksum, and signature checks.
|
|
36
|
-
* @param record The full GitGovRecord containing the actor payload.
|
|
37
|
-
* @param getActorPublicKey A function to retrieve the public key for a given actor ID.
|
|
38
|
-
*/
|
|
39
|
-
export async function validateFullActorRecord(record, getActorPublicKey) {
|
|
40
|
-
// 1. Schema Validation
|
|
41
|
-
const [isValidSchema, errors] = validateActorRecordSchema(record.payload);
|
|
42
|
-
if (!isValidSchema) {
|
|
43
|
-
throw new SchemaValidationError(`ActorRecord payload failed schema validation: ${JSON.stringify(errors)}`);
|
|
44
|
-
}
|
|
45
|
-
// 2. Embedded Metadata Validation (header + wrapper)
|
|
46
|
-
await validateFullEmbeddedMetadataRecord(record, getActorPublicKey);
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=actor_validator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"actor_validator.js","sourceRoot":"","sources":["../../../src/validation/actor_validator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,kCAAkC,EAAE,MAAM,+BAA+B,CAAC;AAEnF,4BAA4B;AAC5B,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;AAExC,MAAM,UAAU,yBAAyB,CACvC,IAAa;IAEb,MAAM,cAAc,GAAG,qBAAqB,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;IACjF,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAY,CAAC;IAChD,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAa;IACzC,MAAM,cAAc,GAAG,qBAAqB,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;IACjF,OAAO,cAAc,CAAC,IAAI,CAAY,CAAC;AACzC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CAAC,IAAa;IACvD,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAE7D,MAAM,eAAe,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1D,KAAK,EAAE,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,UAAU,IAAI,MAAM;QACvD,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,mBAAmB;QAC7C,KAAK,EAAE,KAAK,CAAC,IAAI;KAClB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAET,OAAO;QACL,OAAO;QACP,MAAM,EAAE,eAAe;KACxB,CAAC;AACJ,CAAC;AAED,uCAAuC;AACvC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAA+C,EAC/C,iBAA4D;IAE5D,uBAAuB;IACvB,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG,yBAAyB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1E,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,qBAAqB,CAC7B,iDAAiD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAC1E,CAAC;IACJ,CAAC;IAED,qDAAqD;IACrD,MAAM,kCAAkC,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;AACtE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"actor_validator.test.d.ts","sourceRoot":"","sources":["../../../src/validation/actor_validator.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { validateFullActorRecord, isActorRecord, validateActorRecordDetailed } from './actor_validator';
|
|
2
|
-
import { SchemaValidationError } from './common';
|
|
3
|
-
import { validateFullEmbeddedMetadataRecord } from './embedded_metadata_validator';
|
|
4
|
-
// Mock the embedded metadata validator
|
|
5
|
-
jest.mock('./embedded_metadata_validator');
|
|
6
|
-
const mockedValidateEmbeddedMetadata = validateFullEmbeddedMetadataRecord;
|
|
7
|
-
describe('ActorValidator Module', () => {
|
|
8
|
-
const validActorPayload = {
|
|
9
|
-
id: 'human:test', type: 'human', displayName: 'Test',
|
|
10
|
-
publicKey: 'key', roles: ['author'], status: 'active'
|
|
11
|
-
};
|
|
12
|
-
// Create an invalid payload by removing a required property
|
|
13
|
-
const { id, ...invalidPayloadWithoutId } = validActorPayload;
|
|
14
|
-
const getActorPublicKey = jest.fn(async (keyId) => {
|
|
15
|
-
if (keyId === 'human:test')
|
|
16
|
-
return 'key';
|
|
17
|
-
return null;
|
|
18
|
-
});
|
|
19
|
-
beforeEach(() => {
|
|
20
|
-
jest.clearAllMocks();
|
|
21
|
-
// Happy path default for embedded metadata validation
|
|
22
|
-
mockedValidateEmbeddedMetadata.mockResolvedValue(undefined);
|
|
23
|
-
});
|
|
24
|
-
describe('validateFullActorRecord', () => {
|
|
25
|
-
const baseRecord = {
|
|
26
|
-
header: {
|
|
27
|
-
version: '1.0', type: 'actor', payloadChecksum: 'valid_checksum',
|
|
28
|
-
signatures: [{ keyId: 'human:test', role: 'author', signature: 'sig', timestamp: 123, timestamp_iso: '' }]
|
|
29
|
-
},
|
|
30
|
-
payload: validActorPayload
|
|
31
|
-
};
|
|
32
|
-
it('[EARS-4] should complete without errors for a fully valid record', async () => {
|
|
33
|
-
await expect(validateFullActorRecord(baseRecord, getActorPublicKey)).resolves.not.toThrow();
|
|
34
|
-
});
|
|
35
|
-
it('[EARS-1] should throw SchemaValidationError if the payload is invalid', async () => {
|
|
36
|
-
const invalidRecord = { ...baseRecord, payload: { ...validActorPayload, id: 'invalid-id-format' } };
|
|
37
|
-
await expect(validateFullActorRecord(invalidRecord, getActorPublicKey)).rejects.toThrow(SchemaValidationError);
|
|
38
|
-
});
|
|
39
|
-
it('[EARS-2] should throw error if embedded metadata validation fails', async () => {
|
|
40
|
-
const embeddedError = new Error('Embedded metadata validation failed');
|
|
41
|
-
mockedValidateEmbeddedMetadata.mockRejectedValue(embeddedError);
|
|
42
|
-
await expect(validateFullActorRecord(baseRecord, getActorPublicKey)).rejects.toThrow('Embedded metadata validation failed');
|
|
43
|
-
});
|
|
44
|
-
it('[EARS-3] should call validateFullEmbeddedMetadataRecord with correct parameters', async () => {
|
|
45
|
-
await validateFullActorRecord(baseRecord, getActorPublicKey);
|
|
46
|
-
expect(mockedValidateEmbeddedMetadata).toHaveBeenCalledWith(baseRecord, getActorPublicKey);
|
|
47
|
-
});
|
|
48
|
-
});
|
|
49
|
-
describe('isActorRecord', () => {
|
|
50
|
-
it('[EARS-5 & EARS-6] should correctly identify valid and invalid records', () => {
|
|
51
|
-
expect(isActorRecord(validActorPayload)).toBe(true);
|
|
52
|
-
expect(isActorRecord(invalidPayloadWithoutId)).toBe(false);
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
describe('validateActorRecordDetailed', () => {
|
|
56
|
-
it('[EARS-7] should return success for valid ActorRecord', () => {
|
|
57
|
-
const result = validateActorRecordDetailed(validActorPayload);
|
|
58
|
-
expect(result.isValid).toBe(true);
|
|
59
|
-
expect(result.errors).toEqual([]);
|
|
60
|
-
});
|
|
61
|
-
it('[EARS-8] should return detailed errors for invalid ActorRecord', () => {
|
|
62
|
-
const result = validateActorRecordDetailed(invalidPayloadWithoutId);
|
|
63
|
-
expect(result.isValid).toBe(false);
|
|
64
|
-
expect(result.errors.length).toBeGreaterThan(0);
|
|
65
|
-
expect(result.errors[0]).toHaveProperty('field');
|
|
66
|
-
expect(result.errors[0]).toHaveProperty('message');
|
|
67
|
-
expect(result.errors[0]).toHaveProperty('value');
|
|
68
|
-
});
|
|
69
|
-
it('[EARS-9] should provide specific error details for each invalid field', () => {
|
|
70
|
-
const invalidActor = {
|
|
71
|
-
id: 'invalid-format', // Wrong ID pattern
|
|
72
|
-
type: 'robot', // Invalid type
|
|
73
|
-
displayName: '', // Empty string
|
|
74
|
-
publicKey: '', // Empty string
|
|
75
|
-
roles: [] // Empty array
|
|
76
|
-
};
|
|
77
|
-
const result = validateActorRecordDetailed(invalidActor);
|
|
78
|
-
expect(result.isValid).toBe(false);
|
|
79
|
-
expect(result.errors.length).toBeGreaterThan(1); // Multiple errors
|
|
80
|
-
});
|
|
81
|
-
});
|
|
82
|
-
});
|
|
83
|
-
//# sourceMappingURL=actor_validator.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"actor_validator.test.js","sourceRoot":"","sources":["../../../src/validation/actor_validator.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import type { ValidateFunction } from "ajv";
|
|
2
|
-
import type { AgentRecord } from "../types";
|
|
3
|
-
import type { GitGovRecord } from "../types";
|
|
4
|
-
import type { ValidationResult } from './errors';
|
|
5
|
-
import type { ActorRecord } from "../types";
|
|
6
|
-
export declare function validateAgentRecordSchema(data: unknown): [boolean, ValidateFunction["errors"]];
|
|
7
|
-
export declare function isAgentRecord(data: unknown): data is AgentRecord;
|
|
8
|
-
/**
|
|
9
|
-
* Validates an AgentRecord and returns detailed validation result.
|
|
10
|
-
* Use this in factories and adapters for comprehensive error reporting.
|
|
11
|
-
*/
|
|
12
|
-
export declare function validateAgentRecordDetailed(data: unknown): ValidationResult;
|
|
13
|
-
/**
|
|
14
|
-
* Performs a complete validation of an AgentRecord, including schema,
|
|
15
|
-
* checksum, and signature checks.
|
|
16
|
-
* @param record The full GitGovRecord containing the agent payload.
|
|
17
|
-
* @param getActorPublicKey A function to retrieve the public key for a given actor ID.
|
|
18
|
-
*/
|
|
19
|
-
export declare function validateFullAgentRecord(record: GitGovRecord & {
|
|
20
|
-
payload: AgentRecord;
|
|
21
|
-
}, getActorPublicKey: (keyId: string) => Promise<string | null>): Promise<void>;
|
|
22
|
-
/**
|
|
23
|
-
* Validates that an AgentRecord has a valid relationship with its corresponding ActorRecord,
|
|
24
|
-
* including succession chain resolution for key rotation scenarios.
|
|
25
|
-
*
|
|
26
|
-
* @param agentRecord The AgentRecord to validate
|
|
27
|
-
* @param getEffectiveActor Function to get the effective ActorRecord (with succession resolution)
|
|
28
|
-
*/
|
|
29
|
-
export declare function validateAgentActorRelationship(agentRecord: AgentRecord, getEffectiveActor: (agentId: string) => Promise<ActorRecord | null>): Promise<void>;
|
|
30
|
-
//# sourceMappingURL=agent_validator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent_validator.d.ts","sourceRoot":"","sources":["../../../src/validation/agent_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAGjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,OAAO,GACZ,CAAC,OAAO,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAIvC;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,WAAW,CAGhE;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,OAAO,GAAG,gBAAgB,CAa3E;AAGD;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,YAAY,GAAG;IAAE,OAAO,EAAE,WAAW,CAAA;CAAE,EAC/C,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAC3D,OAAO,CAAC,IAAI,CAAC,CAWf;AAED;;;;;;GAMG;AACH,wBAAsB,8BAA8B,CAClD,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,GAClE,OAAO,CAAC,IAAI,CAAC,CAoBf"}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { SchemaValidationError } from "./common";
|
|
2
|
-
import { validateFullEmbeddedMetadataRecord } from './embedded_metadata_validator';
|
|
3
|
-
import { SchemaValidationCache } from "../schemas/schema_cache";
|
|
4
|
-
import { Schemas } from '../schemas';
|
|
5
|
-
// --- Schema Validation ---
|
|
6
|
-
export function validateAgentRecordSchema(data) {
|
|
7
|
-
const validateSchema = SchemaValidationCache.getValidatorFromSchema(Schemas.AgentRecord);
|
|
8
|
-
const isValid = validateSchema(data);
|
|
9
|
-
return [isValid, validateSchema.errors];
|
|
10
|
-
}
|
|
11
|
-
export function isAgentRecord(data) {
|
|
12
|
-
const validateSchema = SchemaValidationCache.getValidatorFromSchema(Schemas.AgentRecord);
|
|
13
|
-
return validateSchema(data);
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Validates an AgentRecord and returns detailed validation result.
|
|
17
|
-
* Use this in factories and adapters for comprehensive error reporting.
|
|
18
|
-
*/
|
|
19
|
-
export function validateAgentRecordDetailed(data) {
|
|
20
|
-
const [isValid, ajvErrors] = validateAgentRecordSchema(data);
|
|
21
|
-
const formattedErrors = ajvErrors ? ajvErrors.map(error => ({
|
|
22
|
-
field: error.instancePath || error.schemaPath || 'root',
|
|
23
|
-
message: error.message || 'Validation failed',
|
|
24
|
-
value: error.data
|
|
25
|
-
})) : [];
|
|
26
|
-
return {
|
|
27
|
-
isValid,
|
|
28
|
-
errors: formattedErrors
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
// --- Full Validation Orchestrator ---
|
|
32
|
-
/**
|
|
33
|
-
* Performs a complete validation of an AgentRecord, including schema,
|
|
34
|
-
* checksum, and signature checks.
|
|
35
|
-
* @param record The full GitGovRecord containing the agent payload.
|
|
36
|
-
* @param getActorPublicKey A function to retrieve the public key for a given actor ID.
|
|
37
|
-
*/
|
|
38
|
-
export async function validateFullAgentRecord(record, getActorPublicKey) {
|
|
39
|
-
// 1. Schema Validation
|
|
40
|
-
const [isValidSchema, errors] = validateAgentRecordSchema(record.payload);
|
|
41
|
-
if (!isValidSchema) {
|
|
42
|
-
throw new SchemaValidationError(`AgentRecord payload failed schema validation: ${JSON.stringify(errors)}`);
|
|
43
|
-
}
|
|
44
|
-
// 2. Embedded Metadata Validation (header + wrapper)
|
|
45
|
-
await validateFullEmbeddedMetadataRecord(record, getActorPublicKey);
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Validates that an AgentRecord has a valid relationship with its corresponding ActorRecord,
|
|
49
|
-
* including succession chain resolution for key rotation scenarios.
|
|
50
|
-
*
|
|
51
|
-
* @param agentRecord The AgentRecord to validate
|
|
52
|
-
* @param getEffectiveActor Function to get the effective ActorRecord (with succession resolution)
|
|
53
|
-
*/
|
|
54
|
-
export async function validateAgentActorRelationship(agentRecord, getEffectiveActor) {
|
|
55
|
-
const effectiveActor = await getEffectiveActor(agentRecord.id);
|
|
56
|
-
if (!effectiveActor) {
|
|
57
|
-
throw new SchemaValidationError(`No active ActorRecord found for AgentRecord ${agentRecord.id}. AgentRecord requires corresponding ActorRecord.`);
|
|
58
|
-
}
|
|
59
|
-
if (effectiveActor.type !== 'agent') {
|
|
60
|
-
throw new SchemaValidationError(`ActorRecord ${effectiveActor.id} must be of type 'agent' to support AgentRecord ${agentRecord.id}.`);
|
|
61
|
-
}
|
|
62
|
-
if (effectiveActor.status !== 'active') {
|
|
63
|
-
throw new SchemaValidationError(`ActorRecord succession chain for ${agentRecord.id} does not resolve to an active actor. Current effective actor: ${effectiveActor.id} (status: ${effectiveActor.status}).`);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
//# sourceMappingURL=agent_validator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent_validator.js","sourceRoot":"","sources":["../../../src/validation/agent_validator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,kCAAkC,EAAE,MAAM,+BAA+B,CAAC;AAEnF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAGrC,4BAA4B;AAC5B,MAAM,UAAU,yBAAyB,CACvC,IAAa;IAEb,MAAM,cAAc,GAAG,qBAAqB,CAAC,sBAAsB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACzF,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAY,CAAC;IAChD,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAa;IACzC,MAAM,cAAc,GAAG,qBAAqB,CAAC,sBAAsB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACzF,OAAO,cAAc,CAAC,IAAI,CAAY,CAAC;AACzC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CAAC,IAAa;IACvD,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAE7D,MAAM,eAAe,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1D,KAAK,EAAE,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,UAAU,IAAI,MAAM;QACvD,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,mBAAmB;QAC7C,KAAK,EAAE,KAAK,CAAC,IAAI;KAClB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAET,OAAO;QACL,OAAO;QACP,MAAM,EAAE,eAAe;KACxB,CAAC;AACJ,CAAC;AAED,uCAAuC;AACvC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAA+C,EAC/C,iBAA4D;IAE5D,uBAAuB;IACvB,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG,yBAAyB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1E,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,qBAAqB,CAC7B,iDAAiD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAC1E,CAAC;IACJ,CAAC;IAED,qDAAqD;IACrD,MAAM,kCAAkC,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;AACtE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,WAAwB,EACxB,iBAAmE;IAEnE,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAE/D,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,qBAAqB,CAC7B,+CAA+C,WAAW,CAAC,EAAE,mDAAmD,CACjH,CAAC;IACJ,CAAC;IAED,IAAI,cAAc,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACpC,MAAM,IAAI,qBAAqB,CAC7B,eAAe,cAAc,CAAC,EAAE,mDAAmD,WAAW,CAAC,EAAE,GAAG,CACrG,CAAC;IACJ,CAAC;IAED,IAAI,cAAc,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,IAAI,qBAAqB,CAC7B,oCAAoC,WAAW,CAAC,EAAE,kEAAkE,cAAc,CAAC,EAAE,aAAa,cAAc,CAAC,MAAM,IAAI,CAC5K,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent_validator.test.d.ts","sourceRoot":"","sources":["../../../src/validation/agent_validator.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { validateFullAgentRecord, isAgentRecord } from './agent_validator';
|
|
2
|
-
import { SchemaValidationError } from './common';
|
|
3
|
-
import { validateFullEmbeddedMetadataRecord } from './embedded_metadata_validator';
|
|
4
|
-
// Mock the embedded metadata validator
|
|
5
|
-
jest.mock('./embedded_metadata_validator');
|
|
6
|
-
const mockedValidateEmbeddedMetadata = validateFullEmbeddedMetadataRecord;
|
|
7
|
-
describe('AgentValidator Module', () => {
|
|
8
|
-
const validAgentPayload = {
|
|
9
|
-
id: 'agent:test-agent',
|
|
10
|
-
guild: 'design',
|
|
11
|
-
status: 'active',
|
|
12
|
-
engine: { type: 'local', runtime: 'typescript', entrypoint: 'test.ts', function: 'run' },
|
|
13
|
-
triggers: [{ type: 'manual' }],
|
|
14
|
-
knowledge_dependencies: [],
|
|
15
|
-
prompt_engine_requirements: {}
|
|
16
|
-
};
|
|
17
|
-
// Create an invalid payload by removing a required property
|
|
18
|
-
const { id, ...invalidPayloadWithoutId } = validAgentPayload;
|
|
19
|
-
const getActorPublicKey = jest.fn(async (keyId) => {
|
|
20
|
-
if (keyId === 'agent:test-agent')
|
|
21
|
-
return 'key';
|
|
22
|
-
return null;
|
|
23
|
-
});
|
|
24
|
-
beforeEach(() => {
|
|
25
|
-
jest.clearAllMocks();
|
|
26
|
-
// Happy path default for embedded metadata validation
|
|
27
|
-
mockedValidateEmbeddedMetadata.mockResolvedValue(undefined);
|
|
28
|
-
});
|
|
29
|
-
describe('validateFullAgentRecord', () => {
|
|
30
|
-
const baseRecord = {
|
|
31
|
-
header: {
|
|
32
|
-
version: '1.0', type: 'agent', payloadChecksum: 'valid_checksum',
|
|
33
|
-
signatures: [{ keyId: 'agent:test-agent', role: 'author', signature: 'sig', timestamp: 123, timestamp_iso: '' }]
|
|
34
|
-
},
|
|
35
|
-
payload: validAgentPayload
|
|
36
|
-
};
|
|
37
|
-
it('[EARS-4] should complete without errors for a fully valid record', async () => {
|
|
38
|
-
await expect(validateFullAgentRecord(baseRecord, getActorPublicKey)).resolves.not.toThrow();
|
|
39
|
-
});
|
|
40
|
-
it('[EARS-1] should throw SchemaValidationError if the payload is invalid', async () => {
|
|
41
|
-
const invalidRecord = { ...baseRecord, payload: { ...validAgentPayload, id: 'invalid-id-format' } };
|
|
42
|
-
await expect(validateFullAgentRecord(invalidRecord, getActorPublicKey)).rejects.toThrow(SchemaValidationError);
|
|
43
|
-
});
|
|
44
|
-
it('[EARS-2] should throw error if embedded metadata validation fails', async () => {
|
|
45
|
-
const embeddedError = new Error('Embedded metadata validation failed');
|
|
46
|
-
mockedValidateEmbeddedMetadata.mockRejectedValue(embeddedError);
|
|
47
|
-
await expect(validateFullAgentRecord(baseRecord, getActorPublicKey)).rejects.toThrow('Embedded metadata validation failed');
|
|
48
|
-
});
|
|
49
|
-
it('[EARS-3] should call validateFullEmbeddedMetadataRecord with correct parameters', async () => {
|
|
50
|
-
await validateFullAgentRecord(baseRecord, getActorPublicKey);
|
|
51
|
-
expect(mockedValidateEmbeddedMetadata).toHaveBeenCalledWith(baseRecord, getActorPublicKey);
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
describe('isAgentRecord', () => {
|
|
55
|
-
it('[EARS-5 & EARS-6] should correctly identify valid and invalid records', () => {
|
|
56
|
-
expect(isAgentRecord(validAgentPayload)).toBe(true);
|
|
57
|
-
expect(isAgentRecord(invalidPayloadWithoutId)).toBe(false);
|
|
58
|
-
});
|
|
59
|
-
it('[EARS-7] should validate agent ID pattern', () => {
|
|
60
|
-
const invalidIdAgent = { ...validAgentPayload, id: 'human:test' }; // Wrong pattern
|
|
61
|
-
expect(isAgentRecord(invalidIdAgent)).toBe(false);
|
|
62
|
-
});
|
|
63
|
-
it('[EARS-8] should validate guild enum values', () => {
|
|
64
|
-
const invalidGuildAgent = { ...validAgentPayload, guild: 'invalid-guild' };
|
|
65
|
-
expect(isAgentRecord(invalidGuildAgent)).toBe(false);
|
|
66
|
-
});
|
|
67
|
-
it('[EARS-9] should validate engine structure', () => {
|
|
68
|
-
const invalidEngineAgent = { ...validAgentPayload, engine: { type: 'invalid' } };
|
|
69
|
-
expect(isAgentRecord(invalidEngineAgent)).toBe(false);
|
|
70
|
-
});
|
|
71
|
-
});
|
|
72
|
-
});
|
|
73
|
-
//# sourceMappingURL=agent_validator.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent_validator.test.js","sourceRoot":"","sources":["../../../src/validation/agent_validator.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import type { ValidateFunction } from "ajv";
|
|
2
|
-
import type { ChangelogRecord } from '../types';
|
|
3
|
-
import type { GitGovRecord } from '../types';
|
|
4
|
-
import type { ValidationResult } from './errors';
|
|
5
|
-
/**
|
|
6
|
-
* Schema-based validation for ChangelogRecord payload
|
|
7
|
-
*/
|
|
8
|
-
export declare function validateChangelogRecordSchema(data: unknown): [boolean, ValidateFunction["errors"]];
|
|
9
|
-
/**
|
|
10
|
-
* Type guard to check if data is a valid ChangelogRecord
|
|
11
|
-
*/
|
|
12
|
-
export declare function isChangelogRecord(data: unknown): data is ChangelogRecord;
|
|
13
|
-
/**
|
|
14
|
-
* Detailed validation with field-level error reporting
|
|
15
|
-
*/
|
|
16
|
-
export declare function validateChangelogRecordDetailed(data: unknown): ValidationResult;
|
|
17
|
-
/**
|
|
18
|
-
* Full validation including checksum and signature verification
|
|
19
|
-
*/
|
|
20
|
-
export declare function validateFullChangelogRecord(record: GitGovRecord & {
|
|
21
|
-
payload: ChangelogRecord;
|
|
22
|
-
}, getPublicKey: (keyId: string) => Promise<string>): Promise<void>;
|
|
23
|
-
//# sourceMappingURL=changelog_validator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"changelog_validator.d.ts","sourceRoot":"","sources":["../../../src/validation/changelog_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAe,MAAM,KAAK,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAMjD;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,OAAO,GACZ,CAAC,OAAO,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAKvC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,eAAe,CAGxE;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,OAAO,GAAG,gBAAgB,CAoB/E;AAED;;GAEG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,YAAY,GAAG;IAAE,OAAO,EAAE,eAAe,CAAA;CAAE,EACnD,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAC/C,OAAO,CAAC,IAAI,CAAC,CAcf"}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { SchemaValidationCache } from '../schemas/schema_cache';
|
|
2
|
-
import { DetailedValidationError } from './common';
|
|
3
|
-
import { validateFullEmbeddedMetadataRecord } from './embedded_metadata_validator';
|
|
4
|
-
import { Schemas } from '../schemas';
|
|
5
|
-
/**
|
|
6
|
-
* Schema-based validation for ChangelogRecord payload
|
|
7
|
-
*/
|
|
8
|
-
export function validateChangelogRecordSchema(data) {
|
|
9
|
-
const validator = SchemaValidationCache.getValidatorFromSchema(Schemas.ChangelogRecord);
|
|
10
|
-
const isValid = validator(data);
|
|
11
|
-
return [isValid, validator.errors];
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Type guard to check if data is a valid ChangelogRecord
|
|
15
|
-
*/
|
|
16
|
-
export function isChangelogRecord(data) {
|
|
17
|
-
const [isValid] = validateChangelogRecordSchema(data);
|
|
18
|
-
return isValid;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Detailed validation with field-level error reporting
|
|
22
|
-
*/
|
|
23
|
-
export function validateChangelogRecordDetailed(data) {
|
|
24
|
-
const [isValid, errors] = validateChangelogRecordSchema(data);
|
|
25
|
-
if (!isValid && errors) {
|
|
26
|
-
const formattedErrors = errors.map((error) => ({
|
|
27
|
-
field: error.instancePath?.replace('/', '') || error.params?.['missingProperty'] || 'root',
|
|
28
|
-
message: error.message || 'Unknown validation error',
|
|
29
|
-
value: error.data
|
|
30
|
-
}));
|
|
31
|
-
return {
|
|
32
|
-
isValid: false,
|
|
33
|
-
errors: formattedErrors
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
return {
|
|
37
|
-
isValid: true,
|
|
38
|
-
errors: []
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Full validation including checksum and signature verification
|
|
43
|
-
*/
|
|
44
|
-
export async function validateFullChangelogRecord(record, getPublicKey) {
|
|
45
|
-
// 1. Validate payload schema
|
|
46
|
-
const [isValid, errors] = validateChangelogRecordSchema(record.payload);
|
|
47
|
-
if (!isValid) {
|
|
48
|
-
const formattedErrors = (errors || []).map((error) => ({
|
|
49
|
-
field: error.instancePath?.replace('/', '') || error.params?.['missingProperty'] || 'root',
|
|
50
|
-
message: error.message || 'Unknown validation error',
|
|
51
|
-
value: error.data
|
|
52
|
-
}));
|
|
53
|
-
throw new DetailedValidationError('ChangelogRecord', formattedErrors);
|
|
54
|
-
}
|
|
55
|
-
// 2. Embedded Metadata Validation (header + wrapper)
|
|
56
|
-
await validateFullEmbeddedMetadataRecord(record, getPublicKey);
|
|
57
|
-
}
|
|
58
|
-
//# sourceMappingURL=changelog_validator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"changelog_validator.js","sourceRoot":"","sources":["../../../src/validation/changelog_validator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,kCAAkC,EAAE,MAAM,+BAA+B,CAAC;AACnF,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC;;GAEG;AACH,MAAM,UAAU,6BAA6B,CAC3C,IAAa;IAEb,MAAM,SAAS,GAAG,qBAAqB,CAAC,sBAAsB,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACxF,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAEhC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAa;IAC7C,MAAM,CAAC,OAAO,CAAC,GAAG,6BAA6B,CAAC,IAAI,CAAC,CAAC;IACtD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,+BAA+B,CAAC,IAAa;IAC3D,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,6BAA6B,CAAC,IAAI,CAAC,CAAC;IAE9D,IAAI,CAAC,OAAO,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAkB,EAAE,EAAE,CAAC,CAAC;YAC1D,KAAK,EAAE,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,iBAAiB,CAAC,IAAI,MAAM;YAC1F,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,0BAA0B;YACpD,KAAK,EAAE,KAAK,CAAC,IAAI;SAClB,CAAC,CAAC,CAAC;QAEJ,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,eAAe;SACxB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,EAAE;KACX,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,MAAmD,EACnD,YAAgD;IAEhD,6BAA6B;IAC7B,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,6BAA6B,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACxE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,eAAe,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAkB,EAAE,EAAE,CAAC,CAAC;YAClE,KAAK,EAAE,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,iBAAiB,CAAC,IAAI,MAAM;YAC1F,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,0BAA0B;YACpD,KAAK,EAAE,KAAK,CAAC,IAAI;SAClB,CAAC,CAAC,CAAC;QACJ,MAAM,IAAI,uBAAuB,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;IACxE,CAAC;IAED,qDAAqD;IACrD,MAAM,kCAAkC,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AACjE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"changelog_validator.test.d.ts","sourceRoot":"","sources":["../../../src/validation/changelog_validator.test.ts"],"names":[],"mappings":""}
|