@specforge/canary-cli 0.2.1 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/commands/init.types.d.ts +4 -4
- package/dist/cli/commands/init.types.d.ts.map +1 -1
- package/dist/cli/commands/init.types.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +2 -1
- package/dist/server.js.map +1 -1
- package/dist/types/index.d.ts +11 -12
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/node_modules/@specforge/api-types/README.md +38 -0
- package/node_modules/@specforge/api-types/dist/client/appsync-client.d.ts +21 -0
- package/node_modules/@specforge/api-types/dist/client/appsync-client.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/client/appsync-client.js +2 -0
- package/node_modules/@specforge/api-types/dist/client/appsync-client.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/client/index.d.ts +2 -0
- package/node_modules/@specforge/api-types/dist/client/index.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/client/index.js +2 -0
- package/node_modules/@specforge/api-types/dist/client/index.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/index.d.ts +5 -0
- package/node_modules/@specforge/api-types/dist/index.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/index.js +9 -0
- package/node_modules/@specforge/api-types/dist/index.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/mcp/error-guidance.d.ts +74 -0
- package/node_modules/@specforge/api-types/dist/mcp/error-guidance.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/mcp/error-guidance.js +21 -0
- package/node_modules/@specforge/api-types/dist/mcp/error-guidance.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/mcp/index.d.ts +4 -0
- package/node_modules/@specforge/api-types/dist/mcp/index.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/mcp/index.js +8 -0
- package/node_modules/@specforge/api-types/dist/mcp/index.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/mcp/lifecycle-envelope.d.ts +18 -0
- package/node_modules/@specforge/api-types/dist/mcp/lifecycle-envelope.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/mcp/lifecycle-envelope.js +2 -0
- package/node_modules/@specforge/api-types/dist/mcp/lifecycle-envelope.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/mcp/standard-envelope.d.ts +39 -0
- package/node_modules/@specforge/api-types/dist/mcp/standard-envelope.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/mcp/standard-envelope.js +2 -0
- package/node_modules/@specforge/api-types/dist/mcp/standard-envelope.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/billing-record.d.ts +18 -0
- package/node_modules/@specforge/api-types/dist/runtime/billing-record.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/billing-record.js +7 -0
- package/node_modules/@specforge/api-types/dist/runtime/billing-record.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/blueprint-record.d.ts +40 -0
- package/node_modules/@specforge/api-types/dist/runtime/blueprint-record.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/blueprint-record.js +19 -0
- package/node_modules/@specforge/api-types/dist/runtime/blueprint-record.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/dependency-tree.d.ts +96 -0
- package/node_modules/@specforge/api-types/dist/runtime/dependency-tree.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/dependency-tree.js +23 -0
- package/node_modules/@specforge/api-types/dist/runtime/dependency-tree.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/epic-record.d.ts +117 -0
- package/node_modules/@specforge/api-types/dist/runtime/epic-record.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/epic-record.js +13 -0
- package/node_modules/@specforge/api-types/dist/runtime/epic-record.js.map +1 -0
- package/node_modules/@specforge/{types/dist/api/feedback.d.ts → api-types/dist/runtime/feedback-record.d.ts} +6 -1
- package/node_modules/@specforge/api-types/dist/runtime/feedback-record.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/feedback-record.js +7 -0
- package/node_modules/@specforge/api-types/dist/runtime/feedback-record.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/fields.d.ts +31 -0
- package/node_modules/@specforge/api-types/dist/runtime/fields.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/fields.js +156 -0
- package/node_modules/@specforge/api-types/dist/runtime/fields.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/index.d.ts +18 -0
- package/node_modules/@specforge/api-types/dist/runtime/index.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/index.js +18 -0
- package/node_modules/@specforge/api-types/dist/runtime/index.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/pagination.d.ts +38 -0
- package/node_modules/@specforge/api-types/dist/runtime/pagination.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/pagination.js +54 -0
- package/node_modules/@specforge/api-types/dist/runtime/pagination.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/project-invitation.d.ts +14 -0
- package/node_modules/@specforge/api-types/dist/runtime/project-invitation.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/project-invitation.js +2 -0
- package/node_modules/@specforge/api-types/dist/runtime/project-invitation.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/project-member.d.ts +13 -0
- package/node_modules/@specforge/api-types/dist/runtime/project-member.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/project-member.js +2 -0
- package/node_modules/@specforge/api-types/dist/runtime/project-member.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/project-validation.d.ts +26 -0
- package/node_modules/@specforge/api-types/dist/runtime/project-validation.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/project-validation.js +5 -0
- package/node_modules/@specforge/api-types/dist/runtime/project-validation.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/project.d.ts +56 -0
- package/node_modules/@specforge/api-types/dist/runtime/project.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/project.js +10 -0
- package/node_modules/@specforge/api-types/dist/runtime/project.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/response.d.ts +22 -0
- package/node_modules/@specforge/api-types/dist/runtime/response.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/response.js +14 -0
- package/node_modules/@specforge/api-types/dist/runtime/response.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/specification-record.d.ts +90 -0
- package/node_modules/@specforge/api-types/dist/runtime/specification-record.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/specification-record.js +11 -0
- package/node_modules/@specforge/api-types/dist/runtime/specification-record.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/status.d.ts +26 -0
- package/node_modules/@specforge/api-types/dist/runtime/status.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/status.js +56 -0
- package/node_modules/@specforge/api-types/dist/runtime/status.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/summary.d.ts +58 -0
- package/node_modules/@specforge/api-types/dist/runtime/summary.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/summary.js +42 -0
- package/node_modules/@specforge/api-types/dist/runtime/summary.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/ticket-record.d.ts +212 -0
- package/node_modules/@specforge/api-types/dist/runtime/ticket-record.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/ticket-record.js +18 -0
- package/node_modules/@specforge/api-types/dist/runtime/ticket-record.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/user.d.ts +13 -0
- package/node_modules/@specforge/api-types/dist/runtime/user.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/runtime/user.js +9 -0
- package/node_modules/@specforge/api-types/dist/runtime/user.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-billing-store.d.ts +17 -0
- package/node_modules/@specforge/api-types/dist/stores/i-billing-store.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-billing-store.js +2 -0
- package/node_modules/@specforge/api-types/dist/stores/i-billing-store.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-blueprint-store.d.ts +59 -0
- package/node_modules/@specforge/api-types/dist/stores/i-blueprint-store.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-blueprint-store.js +2 -0
- package/node_modules/@specforge/api-types/dist/stores/i-blueprint-store.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-epic-store.d.ts +120 -0
- package/node_modules/@specforge/api-types/dist/stores/i-epic-store.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-epic-store.js +2 -0
- package/node_modules/@specforge/api-types/dist/stores/i-epic-store.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-feedback-store.d.ts +13 -0
- package/node_modules/@specforge/api-types/dist/stores/i-feedback-store.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-feedback-store.js +2 -0
- package/node_modules/@specforge/api-types/dist/stores/i-feedback-store.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-project-store.d.ts +50 -0
- package/node_modules/@specforge/api-types/dist/stores/i-project-store.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-project-store.js +2 -0
- package/node_modules/@specforge/api-types/dist/stores/i-project-store.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-sharing-store.d.ts +37 -0
- package/node_modules/@specforge/api-types/dist/stores/i-sharing-store.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-sharing-store.js +2 -0
- package/node_modules/@specforge/api-types/dist/stores/i-sharing-store.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-spec-store.d.ts +159 -0
- package/node_modules/@specforge/api-types/dist/stores/i-spec-store.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-spec-store.js +2 -0
- package/node_modules/@specforge/api-types/dist/stores/i-spec-store.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-ticket-dependency-store.d.ts +87 -0
- package/node_modules/@specforge/api-types/dist/stores/i-ticket-dependency-store.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-ticket-dependency-store.js +2 -0
- package/node_modules/@specforge/api-types/dist/stores/i-ticket-dependency-store.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-ticket-store.d.ts +347 -0
- package/node_modules/@specforge/api-types/dist/stores/i-ticket-store.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-ticket-store.js +2 -0
- package/node_modules/@specforge/api-types/dist/stores/i-ticket-store.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-user-store.d.ts +5 -0
- package/node_modules/@specforge/api-types/dist/stores/i-user-store.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/i-user-store.js +2 -0
- package/node_modules/@specforge/api-types/dist/stores/i-user-store.js.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/index.d.ts +11 -0
- package/node_modules/@specforge/api-types/dist/stores/index.d.ts.map +1 -0
- package/node_modules/@specforge/api-types/dist/stores/index.js +11 -0
- package/node_modules/@specforge/api-types/dist/stores/index.js.map +1 -0
- package/node_modules/@specforge/api-types/package.json +43 -0
- package/node_modules/@specforge/report-types/README.md +11 -0
- package/node_modules/@specforge/report-types/dist/index.d.ts +2 -0
- package/node_modules/@specforge/report-types/dist/index.d.ts.map +1 -0
- package/node_modules/@specforge/report-types/dist/index.js +2 -0
- package/node_modules/@specforge/report-types/dist/index.js.map +1 -0
- package/node_modules/@specforge/{types/dist/api/responses.d.ts → report-types/dist/reports.d.ts} +18 -20
- package/node_modules/@specforge/report-types/dist/reports.d.ts.map +1 -0
- package/node_modules/@specforge/report-types/dist/reports.js +15 -0
- package/node_modules/@specforge/report-types/dist/reports.js.map +1 -0
- package/node_modules/@specforge/report-types/package.json +40 -0
- package/node_modules/@specforge/session-types/package.json +1 -1
- package/node_modules/@specforge/spec-types/README.md +28 -0
- package/node_modules/@specforge/spec-types/dist/index.d.ts +4 -0
- package/node_modules/@specforge/spec-types/dist/index.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/index.js +6 -0
- package/node_modules/@specforge/spec-types/dist/index.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/json-schema/v1.1/openspec.schema.json +1129 -0
- package/node_modules/@specforge/spec-types/dist/openspec-schema.d.ts +4 -0
- package/node_modules/@specforge/spec-types/dist/openspec-schema.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/openspec-schema.js +77 -0
- package/node_modules/@specforge/spec-types/dist/openspec-schema.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/auxiliary.d.ts +14 -0
- package/node_modules/@specforge/spec-types/dist/runtime/auxiliary.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/auxiliary.js +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/auxiliary.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/blueprint.d.ts +7 -0
- package/node_modules/@specforge/spec-types/dist/runtime/blueprint.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/blueprint.js +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/blueprint.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/epic.d.ts +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/epic.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/epic.js +2 -0
- package/node_modules/@specforge/{types/dist/schema → spec-types/dist/runtime}/epic.js.map +1 -1
- package/node_modules/@specforge/{types/dist/schema → spec-types/dist/runtime}/index.d.ts +5 -5
- package/node_modules/@specforge/spec-types/dist/runtime/index.d.ts.map +1 -0
- package/node_modules/@specforge/{types/dist/schema → spec-types/dist/runtime}/index.js +5 -5
- package/node_modules/@specforge/spec-types/dist/runtime/index.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/api-contract.d.ts +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/api-contract.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/api-contract.js +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/api-contract.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/goal.d.ts +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/goal.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/goal.js +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/goal.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/guardrail.d.ts +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/guardrail.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/guardrail.js +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/guardrail.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/index.d.ts +10 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/index.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/index.js +10 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/index.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/nfr.d.ts +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/nfr.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/nfr.js +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/nfr.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/requirement.d.ts +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/requirement.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/requirement.js +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/requirement.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/scope.d.ts +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/scope.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/scope.js +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/scope.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/shared-pattern.d.ts +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/shared-pattern.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/shared-pattern.js +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/shared-pattern.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/structure-item.d.ts +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/structure-item.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/structure-item.js +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/structure-item.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/tech-stack.d.ts +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/tech-stack.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/tech-stack.js +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/planning/tech-stack.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/specification.d.ts +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/specification.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/specification.js +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/specification.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/ticket.d.ts +2 -0
- package/node_modules/@specforge/spec-types/dist/runtime/ticket.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/runtime/ticket.js +2 -0
- package/node_modules/@specforge/{types/dist/schema → spec-types/dist/runtime}/ticket.js.map +1 -1
- package/node_modules/@specforge/spec-types/dist/schema/auxiliary.d.ts +266 -0
- package/node_modules/@specforge/spec-types/dist/schema/auxiliary.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/auxiliary.js +143 -0
- package/node_modules/@specforge/spec-types/dist/schema/auxiliary.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/blueprint.d.ts +47 -0
- package/node_modules/@specforge/spec-types/dist/schema/blueprint.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/blueprint.js +33 -0
- package/node_modules/@specforge/spec-types/dist/schema/blueprint.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/entity-field-schemas.d.ts +33 -0
- package/node_modules/@specforge/spec-types/dist/schema/entity-field-schemas.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/entity-field-schemas.js +181 -0
- package/node_modules/@specforge/spec-types/dist/schema/entity-field-schemas.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/epic.d.ts +955 -0
- package/node_modules/@specforge/spec-types/dist/schema/epic.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/epic.js +33 -0
- package/node_modules/@specforge/spec-types/dist/schema/epic.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/index.d.ts +12 -0
- package/node_modules/@specforge/spec-types/dist/schema/index.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/index.js +25 -0
- package/node_modules/@specforge/spec-types/dist/schema/index.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/node-verb-steps.d.ts +174 -0
- package/node_modules/@specforge/spec-types/dist/schema/node-verb-steps.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/node-verb-steps.js +317 -0
- package/node_modules/@specforge/spec-types/dist/schema/node-verb-steps.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/patterns.d.ts +274 -0
- package/node_modules/@specforge/spec-types/dist/schema/patterns.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/patterns.js +106 -0
- package/node_modules/@specforge/spec-types/dist/schema/patterns.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/api-contract.d.ts +44 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/api-contract.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/api-contract.js +13 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/api-contract.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/epic-category.d.ts +21 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/epic-category.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/epic-category.js +14 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/epic-category.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/goal.d.ts +27 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/goal.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/goal.js +13 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/goal.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/guardrail.d.ts +29 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/guardrail.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/guardrail.js +14 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/guardrail.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/index.d.ts +12 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/index.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/index.js +12 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/index.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/nfr.d.ts +27 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/nfr.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/nfr.js +15 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/nfr.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/planning-type.d.ts +11 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/planning-type.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/planning-type.js +10 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/planning-type.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/requirement.d.ts +63 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/requirement.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/requirement.js +16 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/requirement.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/scope.d.ts +19 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/scope.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/scope.js +8 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/scope.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/shared-pattern.d.ts +51 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/shared-pattern.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/shared-pattern.js +16 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/shared-pattern.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/structure-item.d.ts +19 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/structure-item.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/structure-item.js +8 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/structure-item.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/tech-stack.d.ts +27 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/tech-stack.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/tech-stack.js +14 -0
- package/node_modules/@specforge/spec-types/dist/schema/planning/tech-stack.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/specification.d.ts +1839 -0
- package/node_modules/@specforge/spec-types/dist/schema/specification.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/specification.js +44 -0
- package/node_modules/@specforge/spec-types/dist/schema/specification.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/step-link-coverage.d.ts +58 -0
- package/node_modules/@specforge/spec-types/dist/schema/step-link-coverage.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/step-link-coverage.js +73 -0
- package/node_modules/@specforge/spec-types/dist/schema/step-link-coverage.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/step-link-ids.d.ts +71 -0
- package/node_modules/@specforge/spec-types/dist/schema/step-link-ids.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/step-link-ids.js +96 -0
- package/node_modules/@specforge/spec-types/dist/schema/step-link-ids.js.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/ticket.d.ts +444 -0
- package/node_modules/@specforge/spec-types/dist/schema/ticket.d.ts.map +1 -0
- package/node_modules/@specforge/spec-types/dist/schema/ticket.js +49 -0
- package/node_modules/@specforge/spec-types/dist/schema/ticket.js.map +1 -0
- package/node_modules/@specforge/spec-types/package.json +41 -0
- package/package.json +12 -7
- package/node_modules/@specforge/types/dist/api/bulk.d.ts +0 -133
- package/node_modules/@specforge/types/dist/api/bulk.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/api/bulk.js +0 -7
- package/node_modules/@specforge/types/dist/api/bulk.js.map +0 -1
- package/node_modules/@specforge/types/dist/api/feedback.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/api/feedback.js +0 -5
- package/node_modules/@specforge/types/dist/api/feedback.js.map +0 -1
- package/node_modules/@specforge/types/dist/api/index.d.ts +0 -6
- package/node_modules/@specforge/types/dist/api/index.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/api/index.js +0 -6
- package/node_modules/@specforge/types/dist/api/index.js.map +0 -1
- package/node_modules/@specforge/types/dist/api/lists.d.ts +0 -55
- package/node_modules/@specforge/types/dist/api/lists.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/api/lists.js +0 -8
- package/node_modules/@specforge/types/dist/api/lists.js.map +0 -1
- package/node_modules/@specforge/types/dist/api/lookups.d.ts +0 -92
- package/node_modules/@specforge/types/dist/api/lookups.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/api/lookups.js +0 -2
- package/node_modules/@specforge/types/dist/api/lookups.js.map +0 -1
- package/node_modules/@specforge/types/dist/api/responses.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/api/responses.js +0 -9
- package/node_modules/@specforge/types/dist/api/responses.js.map +0 -1
- package/node_modules/@specforge/types/dist/index.d.ts +0 -4
- package/node_modules/@specforge/types/dist/index.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/index.js +0 -4
- package/node_modules/@specforge/types/dist/index.js.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/index.d.ts +0 -2
- package/node_modules/@specforge/types/dist/mcp/index.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/index.js +0 -2
- package/node_modules/@specforge/types/dist/mcp/index.js.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/action-planning-session.d.ts +0 -44
- package/node_modules/@specforge/types/dist/mcp/tools/action-planning-session.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/action-planning-session.js +0 -5
- package/node_modules/@specforge/types/dist/mcp/tools/action-planning-session.js.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/action-review-session.d.ts +0 -68
- package/node_modules/@specforge/types/dist/mcp/tools/action-review-session.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/action-review-session.js +0 -7
- package/node_modules/@specforge/types/dist/mcp/tools/action-review-session.js.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/action-work-session.d.ts +0 -133
- package/node_modules/@specforge/types/dist/mcp/tools/action-work-session.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/action-work-session.js +0 -8
- package/node_modules/@specforge/types/dist/mcp/tools/action-work-session.js.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/complete-planning-session.d.ts +0 -21
- package/node_modules/@specforge/types/dist/mcp/tools/complete-planning-session.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/complete-planning-session.js +0 -5
- package/node_modules/@specforge/types/dist/mcp/tools/complete-planning-session.js.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/complete-review-session.d.ts +0 -21
- package/node_modules/@specforge/types/dist/mcp/tools/complete-review-session.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/complete-review-session.js +0 -8
- package/node_modules/@specforge/types/dist/mcp/tools/complete-review-session.js.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/complete-work-session.d.ts +0 -42
- package/node_modules/@specforge/types/dist/mcp/tools/complete-work-session.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/complete-work-session.js +0 -8
- package/node_modules/@specforge/types/dist/mcp/tools/complete-work-session.js.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/create-specification.d.ts +0 -21
- package/node_modules/@specforge/types/dist/mcp/tools/create-specification.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/create-specification.js +0 -5
- package/node_modules/@specforge/types/dist/mcp/tools/create-specification.js.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/feedback.d.ts +0 -59
- package/node_modules/@specforge/types/dist/mcp/tools/feedback.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/feedback.js +0 -5
- package/node_modules/@specforge/types/dist/mcp/tools/feedback.js.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/get-blocked-tickets.d.ts +0 -33
- package/node_modules/@specforge/types/dist/mcp/tools/get-blocked-tickets.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/get-blocked-tickets.js +0 -7
- package/node_modules/@specforge/types/dist/mcp/tools/get-blocked-tickets.js.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/get-critical-path.d.ts +0 -15
- package/node_modules/@specforge/types/dist/mcp/tools/get-critical-path.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/get-critical-path.js +0 -5
- package/node_modules/@specforge/types/dist/mcp/tools/get-critical-path.js.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/get-dependency-tree.d.ts +0 -15
- package/node_modules/@specforge/types/dist/mcp/tools/get-dependency-tree.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/get-dependency-tree.js +0 -5
- package/node_modules/@specforge/types/dist/mcp/tools/get-dependency-tree.js.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/get-next-actionable-tickets.d.ts +0 -28
- package/node_modules/@specforge/types/dist/mcp/tools/get-next-actionable-tickets.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/get-next-actionable-tickets.js +0 -7
- package/node_modules/@specforge/types/dist/mcp/tools/get-next-actionable-tickets.js.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/get-report.d.ts +0 -44
- package/node_modules/@specforge/types/dist/mcp/tools/get-report.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/get-report.js +0 -8
- package/node_modules/@specforge/types/dist/mcp/tools/get-report.js.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/get.d.ts +0 -23
- package/node_modules/@specforge/types/dist/mcp/tools/get.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/get.js +0 -7
- package/node_modules/@specforge/types/dist/mcp/tools/get.js.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/index.d.ts +0 -23
- package/node_modules/@specforge/types/dist/mcp/tools/index.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/index.js +0 -23
- package/node_modules/@specforge/types/dist/mcp/tools/index.js.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/link-pull-request.d.ts +0 -27
- package/node_modules/@specforge/types/dist/mcp/tools/link-pull-request.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/link-pull-request.js +0 -5
- package/node_modules/@specforge/types/dist/mcp/tools/link-pull-request.js.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/list.d.ts +0 -23
- package/node_modules/@specforge/types/dist/mcp/tools/list.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/list.js +0 -7
- package/node_modules/@specforge/types/dist/mcp/tools/list.js.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/reopen-specification.d.ts +0 -14
- package/node_modules/@specforge/types/dist/mcp/tools/reopen-specification.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/reopen-specification.js +0 -7
- package/node_modules/@specforge/types/dist/mcp/tools/reopen-specification.js.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/reset-work-session.d.ts +0 -35
- package/node_modules/@specforge/types/dist/mcp/tools/reset-work-session.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/reset-work-session.js +0 -5
- package/node_modules/@specforge/types/dist/mcp/tools/reset-work-session.js.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/search.d.ts +0 -47
- package/node_modules/@specforge/types/dist/mcp/tools/search.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/search.js +0 -7
- package/node_modules/@specforge/types/dist/mcp/tools/search.js.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/start-planning-session.d.ts +0 -20
- package/node_modules/@specforge/types/dist/mcp/tools/start-planning-session.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/start-planning-session.js +0 -5
- package/node_modules/@specforge/types/dist/mcp/tools/start-planning-session.js.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/start-review-session.d.ts +0 -17
- package/node_modules/@specforge/types/dist/mcp/tools/start-review-session.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/start-review-session.js +0 -8
- package/node_modules/@specforge/types/dist/mcp/tools/start-review-session.js.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/start-work-session.d.ts +0 -16
- package/node_modules/@specforge/types/dist/mcp/tools/start-work-session.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/mcp/tools/start-work-session.js +0 -7
- package/node_modules/@specforge/types/dist/mcp/tools/start-work-session.js.map +0 -1
- package/node_modules/@specforge/types/dist/runtime/epic.d.ts +0 -105
- package/node_modules/@specforge/types/dist/runtime/epic.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/runtime/epic.js +0 -10
- package/node_modules/@specforge/types/dist/runtime/epic.js.map +0 -1
- package/node_modules/@specforge/types/dist/runtime/index.d.ts +0 -11
- package/node_modules/@specforge/types/dist/runtime/index.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/runtime/index.js +0 -11
- package/node_modules/@specforge/types/dist/runtime/index.js.map +0 -1
- package/node_modules/@specforge/types/dist/runtime/project.d.ts +0 -22
- package/node_modules/@specforge/types/dist/runtime/project.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/runtime/project.js +0 -9
- package/node_modules/@specforge/types/dist/runtime/project.js.map +0 -1
- package/node_modules/@specforge/types/dist/runtime/specification.d.ts +0 -111
- package/node_modules/@specforge/types/dist/runtime/specification.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/runtime/specification.js +0 -10
- package/node_modules/@specforge/types/dist/runtime/specification.js.map +0 -1
- package/node_modules/@specforge/types/dist/runtime/ticket.d.ts +0 -80
- package/node_modules/@specforge/types/dist/runtime/ticket.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/runtime/ticket.js +0 -12
- package/node_modules/@specforge/types/dist/runtime/ticket.js.map +0 -1
- package/node_modules/@specforge/types/dist/schema/blueprint.d.ts +0 -18
- package/node_modules/@specforge/types/dist/schema/blueprint.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/schema/blueprint.js +0 -3
- package/node_modules/@specforge/types/dist/schema/blueprint.js.map +0 -1
- package/node_modules/@specforge/types/dist/schema/epic.d.ts +0 -28
- package/node_modules/@specforge/types/dist/schema/epic.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/schema/epic.js +0 -3
- package/node_modules/@specforge/types/dist/schema/extensions/epic.extensions.d.ts +0 -2
- package/node_modules/@specforge/types/dist/schema/extensions/epic.extensions.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/schema/extensions/epic.extensions.js +0 -4
- package/node_modules/@specforge/types/dist/schema/extensions/epic.extensions.js.map +0 -1
- package/node_modules/@specforge/types/dist/schema/extensions/specification.extensions.d.ts +0 -6
- package/node_modules/@specforge/types/dist/schema/extensions/specification.extensions.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/schema/extensions/specification.extensions.js +0 -3
- package/node_modules/@specforge/types/dist/schema/extensions/specification.extensions.js.map +0 -1
- package/node_modules/@specforge/types/dist/schema/extensions/ticket.extensions.d.ts +0 -6
- package/node_modules/@specforge/types/dist/schema/extensions/ticket.extensions.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/schema/extensions/ticket.extensions.js +0 -3
- package/node_modules/@specforge/types/dist/schema/extensions/ticket.extensions.js.map +0 -1
- package/node_modules/@specforge/types/dist/schema/index.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/schema/index.js.map +0 -1
- package/node_modules/@specforge/types/dist/schema/patterns.d.ts +0 -6
- package/node_modules/@specforge/types/dist/schema/patterns.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/schema/patterns.js +0 -3
- package/node_modules/@specforge/types/dist/schema/patterns.js.map +0 -1
- package/node_modules/@specforge/types/dist/schema/project.d.ts +0 -7
- package/node_modules/@specforge/types/dist/schema/project.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/schema/project.js +0 -3
- package/node_modules/@specforge/types/dist/schema/project.js.map +0 -1
- package/node_modules/@specforge/types/dist/schema/specification.d.ts +0 -35
- package/node_modules/@specforge/types/dist/schema/specification.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/schema/specification.js +0 -3
- package/node_modules/@specforge/types/dist/schema/specification.js.map +0 -1
- package/node_modules/@specforge/types/dist/schema/ticket.d.ts +0 -69
- package/node_modules/@specforge/types/dist/schema/ticket.d.ts.map +0 -1
- package/node_modules/@specforge/types/dist/schema/ticket.js +0 -3
- package/node_modules/@specforge/types/package.json +0 -69
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"specification.d.ts","sourceRoot":"","sources":["../../src/schema/specification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqBxB,eAAO,MAAM,cAAc,+GAGzB,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEjE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkC9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { EpicSchema } from './epic.js';
|
|
3
|
+
import { BlueprintSchema } from './blueprint.js';
|
|
4
|
+
import { AcceptanceCriterionSchema, FieldDeclarationSchema } from './auxiliary.js';
|
|
5
|
+
import { GoalSchema, RequirementSchema, NonFunctionalRequirementSchema, GuardrailSchema, ScopeSchema, TechStackItemSchema, StructureItemSchema, EpicTargetsSchema, SharedPatternSchema, } from './planning/index.js';
|
|
6
|
+
// Runtime/model status vocabulary (the Specification `status` column). Canonical home
|
|
7
|
+
// so the ME.14.2 APS enum write-guard (update_spec) + the validator enum-parity guard
|
|
8
|
+
// share one source with the AppSync model — an out-of-enum status poisons the whole
|
|
9
|
+
// getSpecFull read. Named `SpecificationStatus` to avoid clashing with session-types'
|
|
10
|
+
// `SpecStatus`. The public SpecificationSchema keeps `status` loose (products narrow).
|
|
11
|
+
export const SpecStatusEnum = z.enum([
|
|
12
|
+
'draft', 'planning', 'ready', 'in_progress',
|
|
13
|
+
'ready_for_review', 'in_review', 'reviewed', 'done',
|
|
14
|
+
]);
|
|
15
|
+
export const SpecificationSchema = z.object({
|
|
16
|
+
schemaVersion: z.literal('1.1'),
|
|
17
|
+
id: z.string(),
|
|
18
|
+
projectId: z.string(),
|
|
19
|
+
title: z.string().min(1),
|
|
20
|
+
description: z.string().optional(),
|
|
21
|
+
// Loose at the public schema level — products can narrow.
|
|
22
|
+
status: z.string(),
|
|
23
|
+
// Critical structured fields
|
|
24
|
+
goals: z.array(GoalSchema).min(3),
|
|
25
|
+
requirements: z.array(RequirementSchema).min(3),
|
|
26
|
+
architecture: z.string(),
|
|
27
|
+
scope: ScopeSchema,
|
|
28
|
+
// Recommended structured fields
|
|
29
|
+
techStack: z.array(TechStackItemSchema),
|
|
30
|
+
folderStructures: z.array(StructureItemSchema).min(1),
|
|
31
|
+
acceptanceCriteria: z.array(AcceptanceCriterionSchema),
|
|
32
|
+
nonFunctionalRequirements: z.array(NonFunctionalRequirementSchema),
|
|
33
|
+
sharedPatterns: z.array(SharedPatternSchema).optional(),
|
|
34
|
+
guardrails: z.array(GuardrailSchema),
|
|
35
|
+
// Enrichment (loose)
|
|
36
|
+
background: z.string().optional(),
|
|
37
|
+
// Children
|
|
38
|
+
epics: z.array(EpicSchema),
|
|
39
|
+
blueprints: z.array(BlueprintSchema),
|
|
40
|
+
fieldDeclarations: z.record(z.string(), FieldDeclarationSchema).optional(),
|
|
41
|
+
epicTargets: EpicTargetsSchema.optional(),
|
|
42
|
+
estimatedMinutes: z.number().int().min(0).optional(),
|
|
43
|
+
});
|
|
44
|
+
//# sourceMappingURL=specification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"specification.js","sourceRoot":"","sources":["../../src/schema/specification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,8BAA8B,EAC9B,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAE7B,sFAAsF;AACtF,sFAAsF;AACtF,oFAAoF;AACpF,sFAAsF;AACtF,uFAAuF;AACvF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC;IACnC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa;IAC3C,kBAAkB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM;CACpD,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAC/B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAElC,0DAA0D;IAC1D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAElB,6BAA6B;IAC7B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACjC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,KAAK,EAAE,WAAW;IAElB,gCAAgC;IAChC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC;IACvC,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC;IACtD,yBAAyB,EAAE,CAAC,CAAC,KAAK,CAAC,8BAA8B,CAAC;IAClE,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE;IACvD,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;IAEpC,qBAAqB;IACrB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEjC,WAAW;IACX,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;IAC1B,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;IAEpC,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAAC,QAAQ,EAAE;IAC1E,WAAW,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IACzC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACrD,CAAC,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MB.15.6 — the per-ticket step↔file/snippet link-coverage counters, materialized
|
|
3
|
+
* onto the `Ticket` row at LINK-WRITE time so the observatory's Plan-Health
|
|
4
|
+
* indicator refreshes LIVE off the EXISTING Ticket subscription (no new
|
|
5
|
+
* subscription, no stream on the join tables).
|
|
6
|
+
*
|
|
7
|
+
* The four counters mirror EXACTLY the `ticket_expansion` link-gate semantics
|
|
8
|
+
* (`@specforge/validator` `cross-validation/step-file-links.ts`), so the
|
|
9
|
+
* observatory number and the gate agree:
|
|
10
|
+
* - `implementationStepCount` total implementation steps (coverage denominator)
|
|
11
|
+
* - `stepsWithLinkedFileCount` steps linking ≥1 file (coverage numerator)
|
|
12
|
+
* - `orphanFileChangeCount` produced (role `creates`/`modifies`) files no step links
|
|
13
|
+
* - `orphanSnippetCount` code+type snippets no step links
|
|
14
|
+
*
|
|
15
|
+
* ⚠ SCOPE parity: the link gate runs ONLY on `ticketType === 'implementation'`
|
|
16
|
+
* (verification tickets may carry file-less steps by design). A non-implementation
|
|
17
|
+
* ticket returns ALL ZEROES here so it neither contributes to the coverage
|
|
18
|
+
* numerator/denominator nor reports phantom orphans.
|
|
19
|
+
*
|
|
20
|
+
* Lives in the low-level `spec-types` so BOTH write paths that mint the join rows
|
|
21
|
+
* can import it (the projection-scored `@specforge/core` and the persistence
|
|
22
|
+
* `@specforge/lifecycle` buildOpWriteItems) — `@specforge/core` cannot import
|
|
23
|
+
* `@specforge/lifecycle`, mirroring the `step-link-ids` single-source precedent.
|
|
24
|
+
*/
|
|
25
|
+
/** The recomposed / projected read-shape the coverage counters are derived from. */
|
|
26
|
+
export interface TicketLinkCoverageInput {
|
|
27
|
+
ticketType?: string | null;
|
|
28
|
+
implementationSteps?: ReadonlyArray<{
|
|
29
|
+
linkedFileIds?: readonly string[] | null;
|
|
30
|
+
linkedCodeSnippetIds?: readonly string[] | null;
|
|
31
|
+
linkedTypeSnippetIds?: readonly string[] | null;
|
|
32
|
+
} | null> | null;
|
|
33
|
+
/** The id-bearing file-change sidecar (`{ id, path, kind }`); orphan-file reads it. */
|
|
34
|
+
fileChangeRefs?: ReadonlyArray<{
|
|
35
|
+
id?: string | null;
|
|
36
|
+
kind?: string | null;
|
|
37
|
+
} | null> | null;
|
|
38
|
+
codeSnippets?: ReadonlyArray<{
|
|
39
|
+
id?: string | null;
|
|
40
|
+
} | null> | null;
|
|
41
|
+
typeSnippets?: ReadonlyArray<{
|
|
42
|
+
id?: string | null;
|
|
43
|
+
} | null> | null;
|
|
44
|
+
}
|
|
45
|
+
/** The four materialized per-ticket link-coverage counters. */
|
|
46
|
+
export interface TicketLinkCoverage {
|
|
47
|
+
implementationStepCount: number;
|
|
48
|
+
stepsWithLinkedFileCount: number;
|
|
49
|
+
orphanFileChangeCount: number;
|
|
50
|
+
orphanSnippetCount: number;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Compute the four link-coverage counters for a single ticket. Pure + deterministic;
|
|
54
|
+
* the ONLY source of the materialized numbers, shared by both write paths (projection
|
|
55
|
+
* + persistence) so the observatory agrees with the ticket_expansion gate.
|
|
56
|
+
*/
|
|
57
|
+
export declare function computeTicketLinkCoverage(ticket: TicketLinkCoverageInput): TicketLinkCoverage;
|
|
58
|
+
//# sourceMappingURL=step-link-coverage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-link-coverage.d.ts","sourceRoot":"","sources":["../../src/schema/step-link-coverage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,oFAAoF;AACpF,MAAM,WAAW,uBAAuB;IACtC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,mBAAmB,CAAC,EAAE,aAAa,CAAC;QAClC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;QACzC,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;QAChD,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;KACjD,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IACjB,uFAAuF;IACvF,cAAc,CAAC,EAAE,aAAa,CAAC;QAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAC3F,YAAY,CAAC,EAAE,aAAa,CAAC;QAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IACnE,YAAY,CAAC,EAAE,aAAa,CAAC;QAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;CACpE;AAED,+DAA+D;AAC/D,MAAM,WAAW,kBAAkB;IACjC,uBAAuB,EAAE,MAAM,CAAC;IAChC,wBAAwB,EAAE,MAAM,CAAC;IACjC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AASD;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,uBAAuB,GAAG,kBAAkB,CA6C7F"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MB.15.6 — the per-ticket step↔file/snippet link-coverage counters, materialized
|
|
3
|
+
* onto the `Ticket` row at LINK-WRITE time so the observatory's Plan-Health
|
|
4
|
+
* indicator refreshes LIVE off the EXISTING Ticket subscription (no new
|
|
5
|
+
* subscription, no stream on the join tables).
|
|
6
|
+
*
|
|
7
|
+
* The four counters mirror EXACTLY the `ticket_expansion` link-gate semantics
|
|
8
|
+
* (`@specforge/validator` `cross-validation/step-file-links.ts`), so the
|
|
9
|
+
* observatory number and the gate agree:
|
|
10
|
+
* - `implementationStepCount` total implementation steps (coverage denominator)
|
|
11
|
+
* - `stepsWithLinkedFileCount` steps linking ≥1 file (coverage numerator)
|
|
12
|
+
* - `orphanFileChangeCount` produced (role `creates`/`modifies`) files no step links
|
|
13
|
+
* - `orphanSnippetCount` code+type snippets no step links
|
|
14
|
+
*
|
|
15
|
+
* ⚠ SCOPE parity: the link gate runs ONLY on `ticketType === 'implementation'`
|
|
16
|
+
* (verification tickets may carry file-less steps by design). A non-implementation
|
|
17
|
+
* ticket returns ALL ZEROES here so it neither contributes to the coverage
|
|
18
|
+
* numerator/denominator nor reports phantom orphans.
|
|
19
|
+
*
|
|
20
|
+
* Lives in the low-level `spec-types` so BOTH write paths that mint the join rows
|
|
21
|
+
* can import it (the projection-scored `@specforge/core` and the persistence
|
|
22
|
+
* `@specforge/lifecycle` buildOpWriteItems) — `@specforge/core` cannot import
|
|
23
|
+
* `@specforge/lifecycle`, mirroring the `step-link-ids` single-source precedent.
|
|
24
|
+
*/
|
|
25
|
+
const ZERO_COVERAGE = {
|
|
26
|
+
implementationStepCount: 0,
|
|
27
|
+
stepsWithLinkedFileCount: 0,
|
|
28
|
+
orphanFileChangeCount: 0,
|
|
29
|
+
orphanSnippetCount: 0,
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Compute the four link-coverage counters for a single ticket. Pure + deterministic;
|
|
33
|
+
* the ONLY source of the materialized numbers, shared by both write paths (projection
|
|
34
|
+
* + persistence) so the observatory agrees with the ticket_expansion gate.
|
|
35
|
+
*/
|
|
36
|
+
export function computeTicketLinkCoverage(ticket) {
|
|
37
|
+
// Parity with the gate: only implementation tickets are link-scored.
|
|
38
|
+
if (ticket.ticketType !== 'implementation')
|
|
39
|
+
return { ...ZERO_COVERAGE };
|
|
40
|
+
const steps = (ticket.implementationSteps ?? []).filter((s) => s != null);
|
|
41
|
+
const linkedFileIds = new Set();
|
|
42
|
+
const linkedCodeIds = new Set();
|
|
43
|
+
const linkedTypeIds = new Set();
|
|
44
|
+
let stepsWithLinkedFileCount = 0;
|
|
45
|
+
for (const step of steps) {
|
|
46
|
+
const files = step.linkedFileIds ?? [];
|
|
47
|
+
if (files.length > 0)
|
|
48
|
+
stepsWithLinkedFileCount += 1;
|
|
49
|
+
for (const id of files)
|
|
50
|
+
linkedFileIds.add(id);
|
|
51
|
+
for (const id of step.linkedCodeSnippetIds ?? [])
|
|
52
|
+
linkedCodeIds.add(id);
|
|
53
|
+
for (const id of step.linkedTypeSnippetIds ?? [])
|
|
54
|
+
linkedTypeIds.add(id);
|
|
55
|
+
}
|
|
56
|
+
// orphan-file: produced (role `creates`/`modifies`) files linked by no step.
|
|
57
|
+
// ME.19.2 (D17) — sourced off the step-file roles, not the abolished
|
|
58
|
+
// `toBeCreated`/`toBeModified` authoring kinds.
|
|
59
|
+
const orphanFileChangeCount = (ticket.fileChangeRefs ?? []).filter((f) => f != null &&
|
|
60
|
+
(f.kind === 'creates' || f.kind === 'modifies') &&
|
|
61
|
+
typeof f.id === 'string' &&
|
|
62
|
+
!linkedFileIds.has(f.id)).length;
|
|
63
|
+
// orphan-snippet: a code/type snippet linking no step.
|
|
64
|
+
const orphanCode = (ticket.codeSnippets ?? []).filter((c) => c != null && typeof c.id === 'string' && !linkedCodeIds.has(c.id)).length;
|
|
65
|
+
const orphanType = (ticket.typeSnippets ?? []).filter((c) => c != null && typeof c.id === 'string' && !linkedTypeIds.has(c.id)).length;
|
|
66
|
+
return {
|
|
67
|
+
implementationStepCount: steps.length,
|
|
68
|
+
stepsWithLinkedFileCount,
|
|
69
|
+
orphanFileChangeCount,
|
|
70
|
+
orphanSnippetCount: orphanCode + orphanType,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=step-link-coverage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-link-coverage.js","sourceRoot":"","sources":["../../src/schema/step-link-coverage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAwBH,MAAM,aAAa,GAAuB;IACxC,uBAAuB,EAAE,CAAC;IAC1B,wBAAwB,EAAE,CAAC;IAC3B,qBAAqB,EAAE,CAAC;IACxB,kBAAkB,EAAE,CAAC;CACtB,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAA+B;IACvE,qEAAqE;IACrE,IAAI,MAAM,CAAC,UAAU,KAAK,gBAAgB;QAAE,OAAO,EAAE,GAAG,aAAa,EAAE,CAAC;IAExE,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC,MAAM,CACrD,CAAC,CAAC,EAA8B,EAAE,CAAC,CAAC,IAAI,IAAI,CAC7C,CAAC;IAEF,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,IAAI,wBAAwB,GAAG,CAAC,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;QACvC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,wBAAwB,IAAI,CAAC,CAAC;QACpD,KAAK,MAAM,EAAE,IAAI,KAAK;YAAE,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9C,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,oBAAoB,IAAI,EAAE;YAAE,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxE,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,oBAAoB,IAAI,EAAE;YAAE,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,6EAA6E;IAC7E,qEAAqE;IACrE,gDAAgD;IAChD,MAAM,qBAAqB,GAAG,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,MAAM,CAChE,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,IAAI,IAAI;QACT,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;QAC/C,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ;QACxB,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAC3B,CAAC,MAAM,CAAC;IAET,uDAAuD;IACvD,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,MAAM,CACnD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CACzE,CAAC,MAAM,CAAC;IACT,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,MAAM,CACnD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CACzE,CAAC,MAAM,CAAC;IAET,OAAO;QACL,uBAAuB,EAAE,KAAK,CAAC,MAAM;QACrC,wBAAwB;QACxB,qBAAqB;QACrB,kBAAkB,EAAE,UAAU,GAAG,UAAU;KAC5C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MB.15.3 — shared, DETERMINISTIC id-derivation for the step↔file/snippet join
|
|
3
|
+
* model (MB.14.1). Both the in-memory PROJECTION (`@specforge/core`
|
|
4
|
+
* apply-mutation, which the validator scores) and the PERSISTENCE write plan
|
|
5
|
+
* (`@specforge/lifecycle` buildOpWriteItems) must mint the SAME ids for the
|
|
6
|
+
* inline links to resolve — a divergence would make an inline link point at a
|
|
7
|
+
* non-existent id. `@specforge/core` cannot import `@specforge/lifecycle`, so the
|
|
8
|
+
* derivation lives here in the low-level `spec-types` (both depend on it),
|
|
9
|
+
* mirroring the `entity-field-schemas` single-source precedent.
|
|
10
|
+
*
|
|
11
|
+
* The ids mirror what the persistence decompose has always minted:
|
|
12
|
+
* - file change: `${ticketId}-fc-${fileChangeSlug(path)}` (ME.19.2 / D17 —
|
|
13
|
+
* de-embedded: `kind` is NO LONGER part of the id. A file at a path now has a
|
|
14
|
+
* single role authored on a step, so the path alone identifies the file-change
|
|
15
|
+
* row; embedding the role would re-mint the id on a role flip. Survivable
|
|
16
|
+
* because data is wiped pre-launch.)
|
|
17
|
+
* - impl step: client-passed `id`, else `${ticketId}-is-${index}`
|
|
18
|
+
* - code snippet: `${ticketId}-cs-${index}`
|
|
19
|
+
* - type snippet: `${ticketId}-ts-${index}`
|
|
20
|
+
* - step↔artifact join row: `${stepId}--links--${artifactId}`
|
|
21
|
+
*/
|
|
22
|
+
/**
|
|
23
|
+
* MB.14.1 — path→id slug for the natural-key-by-path file identity. Deterministic
|
|
24
|
+
* so an UNCHANGED path keeps the SAME TicketFileChange id across an update_ticket
|
|
25
|
+
* child replace-set → the step↔file link (keyed on fileChangeId) survives a
|
|
26
|
+
* reorder or insert.
|
|
27
|
+
*/
|
|
28
|
+
export declare function fileChangeSlug(path: string): string;
|
|
29
|
+
/**
|
|
30
|
+
* Deterministic TicketFileChange id (natural-key-by-path).
|
|
31
|
+
*
|
|
32
|
+
* ME.19.2 (D17) — the id is DE-EMBEDDED from `kind`/role: `${ticketId}-fc-${slug}`.
|
|
33
|
+
* The `kind` parameter is retained for source compatibility with the flat-array
|
|
34
|
+
* derivation call-sites that ME.19.2 part 2 (`apply-mutation`/`buildOpWriteItems`)
|
|
35
|
+
* re-points to derive rows from step roles; it is IGNORED here. Because a path now
|
|
36
|
+
* carries exactly one role (authored on a step), the path alone is the natural key.
|
|
37
|
+
*/
|
|
38
|
+
export declare function deriveFileChangeId(ticketId: string, _kind: string, path: string): string;
|
|
39
|
+
/**
|
|
40
|
+
* The step id used by the persistence decompose: a client-passed `id` is
|
|
41
|
+
* preserved (UPSERT), else a fresh positional id is minted. Kept in sync with
|
|
42
|
+
* `buildOpWriteItems`' `implementationSteps` replace (MB.14.1 decision e).
|
|
43
|
+
*/
|
|
44
|
+
export declare function deriveStepId(ticketId: string, index: number, passedId?: unknown): string;
|
|
45
|
+
/** Deterministic TicketCodeSnippet id (INDEX-keyed). */
|
|
46
|
+
export declare function deriveCodeSnippetId(ticketId: string, index: number): string;
|
|
47
|
+
/** Deterministic TicketTypeSnippet id (INDEX-keyed). */
|
|
48
|
+
export declare function deriveTypeSnippetId(ticketId: string, index: number): string;
|
|
49
|
+
/** Deterministic step↔artifact join-row id (mirrors the MB.14 link verbs). */
|
|
50
|
+
export declare function deriveStepLinkJoinId(stepId: string, artifactId: string): string;
|
|
51
|
+
/**
|
|
52
|
+
* The four inline file arrays paired with their legacy `TicketFileChange.kind`, in
|
|
53
|
+
* the canonical write order the persistence decompose iterated.
|
|
54
|
+
*
|
|
55
|
+
* ⚠ ME.19.2 (D17) — DEPRECATED transitional artifact. Authoring moved to step
|
|
56
|
+
* `files[]` roles (`creates|modifies|deletes|imports|reads`); the flat `filesToBe*`
|
|
57
|
+
* arrays are now a DERIVED read projection. The remaining consumers
|
|
58
|
+
* (`apply-mutation` / `creator-election-batch` / `resolveFileChangeIdByPath`) are
|
|
59
|
+
* re-pointed onto step-role derivation by ME.19.2 part 2 / ME.19.1, after which
|
|
60
|
+
* this constant is removed. The value strings are the abolished kinds and no longer
|
|
61
|
+
* match the AppSync enum — hence the plain `string` element type.
|
|
62
|
+
*/
|
|
63
|
+
export declare const FILE_FIELD_KINDS: ReadonlyArray<readonly [string, string]>;
|
|
64
|
+
/**
|
|
65
|
+
* Resolve a produced-file PATH to its deterministic `fileChangeId` by finding
|
|
66
|
+
* which `filesToBe*` array of the same `update_ticket` declares it — inline links
|
|
67
|
+
* are PATH-based because the file has no id yet in the authoring call. Returns
|
|
68
|
+
* `null` when no declared file matches the path.
|
|
69
|
+
*/
|
|
70
|
+
export declare function resolveFileChangeIdByPath(ticketId: string, fields: Record<string, unknown>, path: string): string | null;
|
|
71
|
+
//# sourceMappingURL=step-link-ids.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-link-ids.d.ts","sourceRoot":"","sources":["../../src/schema/step-link-ids.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAExF;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAExF;AAED,wDAAwD;AACxD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3E;AAED,wDAAwD;AACxD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3E;AAED,8EAA8E;AAC9E,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAE/E;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAKrE,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,IAAI,CAQf"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MB.15.3 — shared, DETERMINISTIC id-derivation for the step↔file/snippet join
|
|
3
|
+
* model (MB.14.1). Both the in-memory PROJECTION (`@specforge/core`
|
|
4
|
+
* apply-mutation, which the validator scores) and the PERSISTENCE write plan
|
|
5
|
+
* (`@specforge/lifecycle` buildOpWriteItems) must mint the SAME ids for the
|
|
6
|
+
* inline links to resolve — a divergence would make an inline link point at a
|
|
7
|
+
* non-existent id. `@specforge/core` cannot import `@specforge/lifecycle`, so the
|
|
8
|
+
* derivation lives here in the low-level `spec-types` (both depend on it),
|
|
9
|
+
* mirroring the `entity-field-schemas` single-source precedent.
|
|
10
|
+
*
|
|
11
|
+
* The ids mirror what the persistence decompose has always minted:
|
|
12
|
+
* - file change: `${ticketId}-fc-${fileChangeSlug(path)}` (ME.19.2 / D17 —
|
|
13
|
+
* de-embedded: `kind` is NO LONGER part of the id. A file at a path now has a
|
|
14
|
+
* single role authored on a step, so the path alone identifies the file-change
|
|
15
|
+
* row; embedding the role would re-mint the id on a role flip. Survivable
|
|
16
|
+
* because data is wiped pre-launch.)
|
|
17
|
+
* - impl step: client-passed `id`, else `${ticketId}-is-${index}`
|
|
18
|
+
* - code snippet: `${ticketId}-cs-${index}`
|
|
19
|
+
* - type snippet: `${ticketId}-ts-${index}`
|
|
20
|
+
* - step↔artifact join row: `${stepId}--links--${artifactId}`
|
|
21
|
+
*/
|
|
22
|
+
/**
|
|
23
|
+
* MB.14.1 — path→id slug for the natural-key-by-path file identity. Deterministic
|
|
24
|
+
* so an UNCHANGED path keeps the SAME TicketFileChange id across an update_ticket
|
|
25
|
+
* child replace-set → the step↔file link (keyed on fileChangeId) survives a
|
|
26
|
+
* reorder or insert.
|
|
27
|
+
*/
|
|
28
|
+
export function fileChangeSlug(path) {
|
|
29
|
+
return path.replace(/[^A-Za-z0-9]+/g, '_').replace(/^_+|_+$/g, '').slice(0, 120) || 'file';
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Deterministic TicketFileChange id (natural-key-by-path).
|
|
33
|
+
*
|
|
34
|
+
* ME.19.2 (D17) — the id is DE-EMBEDDED from `kind`/role: `${ticketId}-fc-${slug}`.
|
|
35
|
+
* The `kind` parameter is retained for source compatibility with the flat-array
|
|
36
|
+
* derivation call-sites that ME.19.2 part 2 (`apply-mutation`/`buildOpWriteItems`)
|
|
37
|
+
* re-points to derive rows from step roles; it is IGNORED here. Because a path now
|
|
38
|
+
* carries exactly one role (authored on a step), the path alone is the natural key.
|
|
39
|
+
*/
|
|
40
|
+
export function deriveFileChangeId(ticketId, _kind, path) {
|
|
41
|
+
return `${ticketId}-fc-${fileChangeSlug(path)}`;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The step id used by the persistence decompose: a client-passed `id` is
|
|
45
|
+
* preserved (UPSERT), else a fresh positional id is minted. Kept in sync with
|
|
46
|
+
* `buildOpWriteItems`' `implementationSteps` replace (MB.14.1 decision e).
|
|
47
|
+
*/
|
|
48
|
+
export function deriveStepId(ticketId, index, passedId) {
|
|
49
|
+
return typeof passedId === 'string' && passedId.length > 0 ? passedId : `${ticketId}-is-${index}`;
|
|
50
|
+
}
|
|
51
|
+
/** Deterministic TicketCodeSnippet id (INDEX-keyed). */
|
|
52
|
+
export function deriveCodeSnippetId(ticketId, index) {
|
|
53
|
+
return `${ticketId}-cs-${index}`;
|
|
54
|
+
}
|
|
55
|
+
/** Deterministic TicketTypeSnippet id (INDEX-keyed). */
|
|
56
|
+
export function deriveTypeSnippetId(ticketId, index) {
|
|
57
|
+
return `${ticketId}-ts-${index}`;
|
|
58
|
+
}
|
|
59
|
+
/** Deterministic step↔artifact join-row id (mirrors the MB.14 link verbs). */
|
|
60
|
+
export function deriveStepLinkJoinId(stepId, artifactId) {
|
|
61
|
+
return `${stepId}--links--${artifactId}`;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* The four inline file arrays paired with their legacy `TicketFileChange.kind`, in
|
|
65
|
+
* the canonical write order the persistence decompose iterated.
|
|
66
|
+
*
|
|
67
|
+
* ⚠ ME.19.2 (D17) — DEPRECATED transitional artifact. Authoring moved to step
|
|
68
|
+
* `files[]` roles (`creates|modifies|deletes|imports|reads`); the flat `filesToBe*`
|
|
69
|
+
* arrays are now a DERIVED read projection. The remaining consumers
|
|
70
|
+
* (`apply-mutation` / `creator-election-batch` / `resolveFileChangeIdByPath`) are
|
|
71
|
+
* re-pointed onto step-role derivation by ME.19.2 part 2 / ME.19.1, after which
|
|
72
|
+
* this constant is removed. The value strings are the abolished kinds and no longer
|
|
73
|
+
* match the AppSync enum — hence the plain `string` element type.
|
|
74
|
+
*/
|
|
75
|
+
export const FILE_FIELD_KINDS = [
|
|
76
|
+
['filesToBeCreated', 'toBeCreated'],
|
|
77
|
+
['filesToBeModified', 'toBeModified'],
|
|
78
|
+
['filesToBeDeleted', 'toBeDeleted'],
|
|
79
|
+
['filesToBeReferenced', 'toBeReferenced'],
|
|
80
|
+
];
|
|
81
|
+
/**
|
|
82
|
+
* Resolve a produced-file PATH to its deterministic `fileChangeId` by finding
|
|
83
|
+
* which `filesToBe*` array of the same `update_ticket` declares it — inline links
|
|
84
|
+
* are PATH-based because the file has no id yet in the authoring call. Returns
|
|
85
|
+
* `null` when no declared file matches the path.
|
|
86
|
+
*/
|
|
87
|
+
export function resolveFileChangeIdByPath(ticketId, fields, path) {
|
|
88
|
+
for (const [field, kind] of FILE_FIELD_KINDS) {
|
|
89
|
+
const arr = fields[field];
|
|
90
|
+
if (Array.isArray(arr) && arr.some((p) => p === path)) {
|
|
91
|
+
return deriveFileChangeId(ticketId, kind, path);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=step-link-ids.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-link-ids.js","sourceRoot":"","sources":["../../src/schema/step-link-ids.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC;AAC7F,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,KAAa,EAAE,IAAY;IAC9E,OAAO,GAAG,QAAQ,OAAO,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;AAClD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,KAAa,EAAE,QAAkB;IAC9E,OAAO,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,OAAO,KAAK,EAAE,CAAC;AACpG,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,mBAAmB,CAAC,QAAgB,EAAE,KAAa;IACjE,OAAO,GAAG,QAAQ,OAAO,KAAK,EAAE,CAAC;AACnC,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,mBAAmB,CAAC,QAAgB,EAAE,KAAa;IACjE,OAAO,GAAG,QAAQ,OAAO,KAAK,EAAE,CAAC;AACnC,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,oBAAoB,CAAC,MAAc,EAAE,UAAkB;IACrE,OAAO,GAAG,MAAM,YAAY,UAAU,EAAE,CAAC;AAC3C,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA6C;IACxE,CAAC,kBAAkB,EAAE,aAAa,CAAC;IACnC,CAAC,mBAAmB,EAAE,cAAc,CAAC;IACrC,CAAC,kBAAkB,EAAE,aAAa,CAAC;IACnC,CAAC,qBAAqB,EAAE,gBAAgB,CAAC;CAC1C,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CACvC,QAAgB,EAChB,MAA+B,EAC/B,IAAY;IAEZ,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,gBAAgB,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;YACtD,OAAO,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|