specweave 0.32.0 → 0.32.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.
Files changed (191) hide show
  1. package/CLAUDE.md +176 -2
  2. package/README.md +22 -0
  3. package/bin/specweave.js +18 -1
  4. package/dist/src/cli/commands/cache.d.ts +17 -0
  5. package/dist/src/cli/commands/cache.d.ts.map +1 -0
  6. package/dist/src/cli/commands/cache.js +126 -0
  7. package/dist/src/cli/commands/cache.js.map +1 -0
  8. package/dist/src/cli/commands/init.js +1 -1
  9. package/dist/src/cli/commands/init.js.map +1 -1
  10. package/dist/src/cli/commands/plan/increment-detector.js +2 -2
  11. package/dist/src/cli/commands/plan/increment-detector.js.map +1 -1
  12. package/dist/src/cli/commands/sync-spec-commits.js +1 -1
  13. package/dist/src/cli/commands/sync-spec-commits.js.map +1 -1
  14. package/dist/src/cli/commands/sync-specs.js +2 -2
  15. package/dist/src/cli/commands/sync-specs.js.map +1 -1
  16. package/dist/src/cli/helpers/github/increment-profile-selector.js +1 -1
  17. package/dist/src/cli/helpers/github/increment-profile-selector.js.map +1 -1
  18. package/dist/src/cli/workers/living-docs-worker.js +66 -1
  19. package/dist/src/cli/workers/living-docs-worker.js.map +1 -1
  20. package/dist/src/config/types.d.ts +203 -1208
  21. package/dist/src/config/types.d.ts.map +1 -1
  22. package/dist/src/core/discrepancy/increment-generator.d.ts.map +1 -1
  23. package/dist/src/core/discrepancy/increment-generator.js +5 -2
  24. package/dist/src/core/discrepancy/increment-generator.js.map +1 -1
  25. package/dist/src/core/increment/duplicate-detector.js +2 -2
  26. package/dist/src/core/increment/duplicate-detector.js.map +1 -1
  27. package/dist/src/core/increment/increment-archiver.d.ts +24 -0
  28. package/dist/src/core/increment/increment-archiver.d.ts.map +1 -1
  29. package/dist/src/core/increment/increment-archiver.js +59 -2
  30. package/dist/src/core/increment/increment-archiver.js.map +1 -1
  31. package/dist/src/core/increment/increment-status.js +2 -2
  32. package/dist/src/core/increment/increment-status.js.map +1 -1
  33. package/dist/src/core/increment/increment-utils.d.ts +85 -0
  34. package/dist/src/core/increment/increment-utils.d.ts.map +1 -1
  35. package/dist/src/core/increment/increment-utils.js +102 -4
  36. package/dist/src/core/increment/increment-utils.js.map +1 -1
  37. package/dist/src/core/increment/metadata-validator.js +1 -1
  38. package/dist/src/core/increment/metadata-validator.js.map +1 -1
  39. package/dist/src/core/living-docs/feature-id-manager.js +1 -1
  40. package/dist/src/core/living-docs/feature-id-manager.js.map +1 -1
  41. package/dist/src/core/living-docs/hierarchy-mapper.js +3 -3
  42. package/dist/src/core/living-docs/hierarchy-mapper.js.map +1 -1
  43. package/dist/src/core/living-docs/intelligent-analyzer/architecture-generator.d.ts +18 -0
  44. package/dist/src/core/living-docs/intelligent-analyzer/architecture-generator.d.ts.map +1 -0
  45. package/dist/src/core/living-docs/intelligent-analyzer/architecture-generator.js +247 -0
  46. package/dist/src/core/living-docs/intelligent-analyzer/architecture-generator.js.map +1 -0
  47. package/dist/src/core/living-docs/intelligent-analyzer/deep-repo-analyzer.d.ts +15 -0
  48. package/dist/src/core/living-docs/intelligent-analyzer/deep-repo-analyzer.d.ts.map +1 -0
  49. package/dist/src/core/living-docs/intelligent-analyzer/deep-repo-analyzer.js +138 -0
  50. package/dist/src/core/living-docs/intelligent-analyzer/deep-repo-analyzer.js.map +1 -0
  51. package/dist/src/core/living-docs/intelligent-analyzer/file-sampler.d.ts +24 -0
  52. package/dist/src/core/living-docs/intelligent-analyzer/file-sampler.d.ts.map +1 -0
  53. package/dist/src/core/living-docs/intelligent-analyzer/file-sampler.js +198 -0
  54. package/dist/src/core/living-docs/intelligent-analyzer/file-sampler.js.map +1 -0
  55. package/dist/src/core/living-docs/intelligent-analyzer/inconsistency-detector.d.ts +17 -0
  56. package/dist/src/core/living-docs/intelligent-analyzer/inconsistency-detector.d.ts.map +1 -0
  57. package/dist/src/core/living-docs/intelligent-analyzer/inconsistency-detector.js +241 -0
  58. package/dist/src/core/living-docs/intelligent-analyzer/inconsistency-detector.js.map +1 -0
  59. package/dist/src/core/living-docs/intelligent-analyzer/index.d.ts +28 -0
  60. package/dist/src/core/living-docs/intelligent-analyzer/index.d.ts.map +1 -0
  61. package/dist/src/core/living-docs/intelligent-analyzer/index.js +197 -0
  62. package/dist/src/core/living-docs/intelligent-analyzer/index.js.map +1 -0
  63. package/dist/src/core/living-docs/intelligent-analyzer/organization-synthesizer.d.ts +18 -0
  64. package/dist/src/core/living-docs/intelligent-analyzer/organization-synthesizer.d.ts.map +1 -0
  65. package/dist/src/core/living-docs/intelligent-analyzer/organization-synthesizer.js +154 -0
  66. package/dist/src/core/living-docs/intelligent-analyzer/organization-synthesizer.js.map +1 -0
  67. package/dist/src/core/living-docs/intelligent-analyzer/strategy-generator.d.ts +42 -0
  68. package/dist/src/core/living-docs/intelligent-analyzer/strategy-generator.d.ts.map +1 -0
  69. package/dist/src/core/living-docs/intelligent-analyzer/strategy-generator.js +343 -0
  70. package/dist/src/core/living-docs/intelligent-analyzer/strategy-generator.js.map +1 -0
  71. package/dist/src/core/living-docs/intelligent-analyzer/types.d.ts +146 -0
  72. package/dist/src/core/living-docs/intelligent-analyzer/types.d.ts.map +1 -0
  73. package/dist/src/core/living-docs/intelligent-analyzer/types.js +7 -0
  74. package/dist/src/core/living-docs/intelligent-analyzer/types.js.map +1 -0
  75. package/dist/src/core/living-docs/living-docs-sync.d.ts +5 -0
  76. package/dist/src/core/living-docs/living-docs-sync.d.ts.map +1 -1
  77. package/dist/src/core/living-docs/living-docs-sync.js +36 -2
  78. package/dist/src/core/living-docs/living-docs-sync.js.map +1 -1
  79. package/dist/src/core/sync/spec-increment-mapper.js +3 -3
  80. package/dist/src/core/sync/spec-increment-mapper.js.map +1 -1
  81. package/dist/src/importers/item-converter.d.ts +25 -0
  82. package/dist/src/importers/item-converter.d.ts.map +1 -1
  83. package/dist/src/importers/item-converter.js +135 -5
  84. package/dist/src/importers/item-converter.js.map +1 -1
  85. package/dist/src/init/architecture/types.d.ts +33 -140
  86. package/dist/src/init/architecture/types.d.ts.map +1 -1
  87. package/dist/src/init/compliance/types.d.ts +30 -27
  88. package/dist/src/init/compliance/types.d.ts.map +1 -1
  89. package/dist/src/init/repo/types.d.ts +11 -34
  90. package/dist/src/init/repo/types.d.ts.map +1 -1
  91. package/dist/src/init/research/src/config/types.d.ts +15 -82
  92. package/dist/src/init/research/src/config/types.d.ts.map +1 -1
  93. package/dist/src/init/research/types.d.ts +38 -93
  94. package/dist/src/init/research/types.d.ts.map +1 -1
  95. package/dist/src/init/team/types.d.ts +4 -42
  96. package/dist/src/init/team/types.d.ts.map +1 -1
  97. package/dist/src/types/dashboard-cache.d.ts +181 -0
  98. package/dist/src/types/dashboard-cache.d.ts.map +1 -0
  99. package/dist/src/types/dashboard-cache.js +65 -0
  100. package/dist/src/types/dashboard-cache.js.map +1 -0
  101. package/dist/src/utils/docs-validator.d.ts +131 -0
  102. package/dist/src/utils/docs-validator.d.ts.map +1 -0
  103. package/dist/src/utils/docs-validator.js +529 -0
  104. package/dist/src/utils/docs-validator.js.map +1 -0
  105. package/dist/src/utils/feature-id-collision.js +1 -1
  106. package/dist/src/utils/feature-id-collision.js.map +1 -1
  107. package/dist/src/utils/html-to-mdx.d.ts +1 -0
  108. package/dist/src/utils/html-to-mdx.d.ts.map +1 -1
  109. package/dist/src/utils/html-to-mdx.js +43 -5
  110. package/dist/src/utils/html-to-mdx.js.map +1 -1
  111. package/package.json +1 -1
  112. package/plugins/specweave/agents/pm/AGENT.md +10 -7
  113. package/plugins/specweave/commands/specweave-archive-features.md +5 -7
  114. package/plugins/specweave/commands/specweave-archive.md +2 -1
  115. package/plugins/specweave/commands/specweave-do.md +35 -1
  116. package/plugins/specweave/commands/specweave-done.md +96 -0
  117. package/plugins/specweave/commands/specweave-import-external.md +45 -18
  118. package/plugins/specweave/commands/specweave-increment.md +331 -33
  119. package/plugins/specweave/commands/specweave-jobs.md +2 -2
  120. package/plugins/specweave/commands/specweave-progress.md +4 -4
  121. package/plugins/specweave/commands/specweave-restore-feature.md +5 -4
  122. package/plugins/specweave/commands/specweave-sync-docs.md +1 -1
  123. package/plugins/specweave/commands/specweave-sync-specs.md +216 -322
  124. package/plugins/specweave/commands/specweave-validate-features.md +13 -8
  125. package/plugins/specweave/hooks/docs-changed.sh.backup +79 -0
  126. package/plugins/specweave/hooks/hooks.json +33 -4
  127. package/plugins/specweave/hooks/human-input-required.sh.backup +75 -0
  128. package/plugins/specweave/hooks/lib/common-setup.sh +375 -0
  129. package/plugins/specweave/hooks/lib/crash-prevention.sh +336 -0
  130. package/plugins/specweave/hooks/post-first-increment.sh.backup +61 -0
  131. package/plugins/specweave/hooks/post-increment-change.sh.backup +98 -0
  132. package/plugins/specweave/hooks/post-increment-completion.sh.backup +231 -0
  133. package/plugins/specweave/hooks/post-increment-planning.sh.backup +1048 -0
  134. package/plugins/specweave/hooks/post-increment-status-change.sh.backup +147 -0
  135. package/plugins/specweave/hooks/post-spec-update.sh.backup +158 -0
  136. package/plugins/specweave/hooks/post-task-completion.sh +4 -23
  137. package/plugins/specweave/hooks/post-user-story-complete.sh.backup +179 -0
  138. package/plugins/specweave/hooks/pre-command-deduplication.sh +1 -6
  139. package/plugins/specweave/hooks/pre-command-deduplication.sh.backup +83 -0
  140. package/plugins/specweave/hooks/pre-implementation.sh.backup +67 -0
  141. package/plugins/specweave/hooks/pre-task-completion.sh +8 -37
  142. package/plugins/specweave/hooks/pre-task-completion.sh.backup +194 -0
  143. package/plugins/specweave/hooks/pre-tool-use.sh +2 -11
  144. package/plugins/specweave/hooks/pre-tool-use.sh.backup +133 -0
  145. package/plugins/specweave/hooks/universal/dispatcher.mjs +135 -42
  146. package/plugins/specweave/hooks/universal/fail-fast-wrapper.sh +183 -0
  147. package/plugins/specweave/hooks/user-prompt-submit.sh +140 -38
  148. package/plugins/specweave/hooks/user-prompt-submit.sh.backup +386 -0
  149. package/plugins/specweave/hooks/v2/dispatchers/post-tool-use.sh +12 -0
  150. package/plugins/specweave/hooks/v2/dispatchers/session-start.sh +89 -0
  151. package/plugins/specweave/hooks/v2/guards/bash-file-guard.sh +211 -0
  152. package/plugins/specweave/hooks/v2/guards/bash-file-guard.test.sh +163 -0
  153. package/plugins/specweave/hooks/v2/guards/completion-guard.sh +26 -28
  154. package/plugins/specweave/hooks/v2/guards/features-folder-guard.sh +50 -0
  155. package/plugins/specweave/lib/vendor/core/increment/duplicate-detector.js +2 -2
  156. package/plugins/specweave/lib/vendor/core/increment/duplicate-detector.js.map +1 -1
  157. package/plugins/specweave/scripts/README.md +166 -0
  158. package/plugins/specweave/scripts/cleanup-state.sh +142 -0
  159. package/plugins/specweave/scripts/force-kill.sh +142 -0
  160. package/plugins/specweave/scripts/jobs.js +171 -0
  161. package/plugins/specweave/scripts/progress.js +170 -0
  162. package/plugins/specweave/scripts/read-costs.sh +132 -0
  163. package/plugins/specweave/scripts/read-jobs.sh +324 -0
  164. package/plugins/specweave/scripts/read-progress.sh +185 -0
  165. package/plugins/specweave/scripts/read-status.sh +146 -0
  166. package/plugins/specweave/scripts/read-workflow.sh +173 -0
  167. package/plugins/specweave/scripts/rebuild-dashboard-cache.sh +327 -0
  168. package/plugins/specweave/scripts/session-watchdog.sh +192 -0
  169. package/plugins/specweave/scripts/status.js +154 -0
  170. package/plugins/specweave/scripts/update-dashboard-cache.sh +281 -0
  171. package/plugins/specweave/skills/increment-planner/SKILL.md +333 -24
  172. package/plugins/specweave/skills/increment-planner/templates/spec-multi-project.md +17 -9
  173. package/plugins/specweave/skills/increment-planner/templates/spec-single-project.md +6 -2
  174. package/plugins/specweave/skills/instant-status/SKILL.md +70 -0
  175. package/plugins/specweave-ado/hooks/post-living-docs-update.sh.backup +353 -0
  176. package/plugins/specweave-ado/hooks/post-task-completion.sh.backup +172 -0
  177. package/plugins/specweave-ado/lib/enhanced-ado-sync.js +170 -0
  178. package/plugins/specweave-docs/commands/build.md +32 -4
  179. package/plugins/specweave-docs/commands/preview.md +43 -1
  180. package/plugins/specweave-docs/commands/validate.md +250 -0
  181. package/plugins/specweave-github/hooks/.specweave/logs/hooks-debug.log +1262 -0
  182. package/plugins/specweave-github/hooks/post-task-completion.sh.backup +258 -0
  183. package/plugins/specweave-github/lib/enhanced-github-sync.js +220 -0
  184. package/plugins/specweave-jira/hooks/post-task-completion.sh.backup +172 -0
  185. package/plugins/specweave-jira/lib/enhanced-jira-sync.js +134 -0
  186. package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +1254 -0
  187. package/plugins/specweave-release/hooks/post-task-completion.sh.backup +110 -0
  188. package/plugins/specweave/hooks/post-edit-spec.sh +0 -265
  189. package/plugins/specweave/hooks/post-write-spec.sh +0 -267
  190. package/plugins/specweave/hooks/pre-edit-spec.sh +0 -151
  191. package/plugins/specweave/hooks/pre-write-spec.sh +0 -151
@@ -46,21 +46,18 @@ export interface RepositoryMetadata {
46
46
  * Zod schemas
47
47
  */
48
48
  export declare const RepositorySelectionRuleSchema: z.ZodObject<{
49
- type: z.ZodEnum<["all", "prefix", "owner", "keyword", "combined", "manual"]>;
49
+ type: z.ZodEnum<{
50
+ manual: "manual";
51
+ all: "all";
52
+ keyword: "keyword";
53
+ owner: "owner";
54
+ prefix: "prefix";
55
+ combined: "combined";
56
+ }>;
50
57
  pattern: z.ZodOptional<z.ZodString>;
51
58
  owner: z.ZodOptional<z.ZodString>;
52
- excludePatterns: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
53
- }, "strip", z.ZodTypeAny, {
54
- type?: "manual" | "all" | "keyword" | "owner" | "prefix" | "combined";
55
- pattern?: string;
56
- owner?: string;
57
- excludePatterns?: string[];
58
- }, {
59
- type?: "manual" | "all" | "keyword" | "owner" | "prefix" | "combined";
60
- pattern?: string;
61
- owner?: string;
62
- excludePatterns?: string[];
63
- }>;
59
+ excludePatterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
60
+ }, z.core.$strip>;
64
61
  export declare const RepositoryMetadataSchema: z.ZodObject<{
65
62
  name: z.ZodString;
66
63
  url: z.ZodString;
@@ -71,25 +68,5 @@ export declare const RepositoryMetadataSchema: z.ZodObject<{
71
68
  lastUpdated: z.ZodDate;
72
69
  private: z.ZodOptional<z.ZodBoolean>;
73
70
  defaultBranch: z.ZodOptional<z.ZodString>;
74
- }, "strip", z.ZodTypeAny, {
75
- name?: string;
76
- description?: string;
77
- language?: string;
78
- owner?: string;
79
- url?: string;
80
- lastUpdated?: Date;
81
- private?: boolean;
82
- stars?: number;
83
- defaultBranch?: string;
84
- }, {
85
- name?: string;
86
- description?: string;
87
- language?: string;
88
- owner?: string;
89
- url?: string;
90
- lastUpdated?: Date;
91
- private?: boolean;
92
- stars?: number;
93
- defaultBranch?: string;
94
- }>;
71
+ }, z.core.$strip>;
95
72
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/init/repo/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,KAAK,GACL,QAAQ,GACR,OAAO,GACP,SAAS,GACT,UAAU,GACV,QAAQ,CAAC;AAEb;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,qBAAqB;IACrB,IAAI,EAAE,aAAa,CAAC;IAEpB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,yBAAyB;IACzB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IAEb,0BAA0B;IAC1B,GAAG,EAAE,MAAM,CAAC;IAEZ,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IAEd,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;IAEpB,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAC;IAEjB,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IAEd,6BAA6B;IAC7B,WAAW,EAAE,IAAI,CAAC;IAElB,iBAAiB;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,qBAAqB;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;EAKxC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUnC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/init/repo/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,KAAK,GACL,QAAQ,GACR,OAAO,GACP,SAAS,GACT,UAAU,GACV,QAAQ,CAAC;AAEb;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,qBAAqB;IACrB,IAAI,EAAE,aAAa,CAAC;IAEpB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,yBAAyB;IACzB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IAEb,0BAA0B;IAC1B,GAAG,EAAE,MAAM,CAAC;IAEZ,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IAEd,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;IAEpB,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAC;IAEjB,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IAEd,6BAA6B;IAC7B,WAAW,EAAE,IAAI,CAAC;IAElB,iBAAiB;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,qBAAqB;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;iBAKxC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;iBAUnC,CAAC"}
@@ -4,99 +4,32 @@
4
4
  import { z } from 'zod';
5
5
  export declare const ResearchConfigSchema: z.ZodOptional<z.ZodObject<{
6
6
  vision: z.ZodOptional<z.ZodAny>;
7
- compliance: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
8
- teams: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
9
- repositories: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
7
+ compliance: z.ZodOptional<z.ZodArray<z.ZodAny>>;
8
+ teams: z.ZodOptional<z.ZodArray<z.ZodAny>>;
9
+ repositories: z.ZodOptional<z.ZodArray<z.ZodString>>;
10
10
  architecture: z.ZodOptional<z.ZodAny>;
11
- }, "strip", z.ZodTypeAny, {
12
- architecture?: any;
13
- teams?: any[];
14
- repositories?: string[];
15
- vision?: any;
16
- compliance?: any[];
17
- }, {
18
- architecture?: any;
19
- teams?: any[];
20
- repositories?: string[];
21
- vision?: any;
22
- compliance?: any[];
23
- }>>;
11
+ }, z.core.$strip>>;
24
12
  export declare const SpecWeaveConfigSchema: z.ZodObject<{
25
13
  version: z.ZodString;
26
14
  project: z.ZodObject<{
27
15
  name: z.ZodString;
28
- type: z.ZodEnum<["single", "multi"]>;
29
- }, "strip", z.ZodTypeAny, {
30
- name?: string;
31
- type?: "single" | "multi";
32
- }, {
33
- name?: string;
34
- type?: "single" | "multi";
35
- }>;
16
+ type: z.ZodEnum<{
17
+ single: "single";
18
+ multi: "multi";
19
+ }>;
20
+ }, z.core.$strip>;
36
21
  research: z.ZodOptional<z.ZodObject<{
37
22
  vision: z.ZodOptional<z.ZodAny>;
38
- compliance: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
39
- teams: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
40
- repositories: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
23
+ compliance: z.ZodOptional<z.ZodArray<z.ZodAny>>;
24
+ teams: z.ZodOptional<z.ZodArray<z.ZodAny>>;
25
+ repositories: z.ZodOptional<z.ZodArray<z.ZodString>>;
41
26
  architecture: z.ZodOptional<z.ZodAny>;
42
- }, "strip", z.ZodTypeAny, {
43
- architecture?: any;
44
- teams?: any[];
45
- repositories?: string[];
46
- vision?: any;
47
- compliance?: any[];
48
- }, {
49
- architecture?: any;
50
- teams?: any[];
51
- repositories?: string[];
52
- vision?: any;
53
- compliance?: any[];
54
- }>>;
27
+ }, z.core.$strip>>;
55
28
  livingDocs: z.ZodOptional<z.ZodObject<{
56
29
  enabled: z.ZodBoolean;
57
30
  baseDir: z.ZodString;
58
- }, "strip", z.ZodTypeAny, {
59
- enabled?: boolean;
60
- baseDir?: string;
61
- }, {
62
- enabled?: boolean;
63
- baseDir?: string;
64
- }>>;
65
- }, "strip", z.ZodTypeAny, {
66
- version?: string;
67
- project?: {
68
- name?: string;
69
- type?: "single" | "multi";
70
- };
71
- livingDocs?: {
72
- enabled?: boolean;
73
- baseDir?: string;
74
- };
75
- research?: {
76
- architecture?: any;
77
- teams?: any[];
78
- repositories?: string[];
79
- vision?: any;
80
- compliance?: any[];
81
- };
82
- }, {
83
- version?: string;
84
- project?: {
85
- name?: string;
86
- type?: "single" | "multi";
87
- };
88
- livingDocs?: {
89
- enabled?: boolean;
90
- baseDir?: string;
91
- };
92
- research?: {
93
- architecture?: any;
94
- teams?: any[];
95
- repositories?: string[];
96
- vision?: any;
97
- compliance?: any[];
98
- };
99
- }>;
31
+ }, z.core.$strip>>;
32
+ }, z.core.$strip>;
100
33
  export type ResearchConfig = z.infer<typeof ResearchConfigSchema>;
101
34
  export type SpecWeaveConfig = z.infer<typeof SpecWeaveConfigSchema>;
102
35
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/init/research/src/config/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;GAMpB,CAAC;AAEd,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWhC,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/init/research/src/config/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,oBAAoB;;;;;;kBAMpB,CAAC;AAEd,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;iBAWhC,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
@@ -65,119 +65,64 @@ export interface VisionInsights {
65
65
  * Zod schema for VisionInsights validation
66
66
  */
67
67
  export declare const VisionInsightsSchema: z.ZodObject<{
68
- keywords: z.ZodArray<z.ZodString, "many">;
69
- market: z.ZodEnum<["productivity-saas", "healthcare", "fintech", "e-commerce", "education", "gaming", "social-network", "enterprise-b2b", "consumer-b2c", "marketplace", "iot", "blockchain", "ai-ml", "unknown"]>;
68
+ keywords: z.ZodArray<z.ZodString>;
69
+ market: z.ZodEnum<{
70
+ unknown: "unknown";
71
+ healthcare: "healthcare";
72
+ fintech: "fintech";
73
+ education: "education";
74
+ iot: "iot";
75
+ gaming: "gaming";
76
+ marketplace: "marketplace";
77
+ "productivity-saas": "productivity-saas";
78
+ "e-commerce": "e-commerce";
79
+ "social-network": "social-network";
80
+ "enterprise-b2b": "enterprise-b2b";
81
+ "consumer-b2c": "consumer-b2c";
82
+ blockchain: "blockchain";
83
+ "ai-ml": "ai-ml";
84
+ }>;
70
85
  competitors: z.ZodArray<z.ZodObject<{
71
86
  name: z.ZodString;
72
87
  url: z.ZodOptional<z.ZodString>;
73
- strengths: z.ZodArray<z.ZodString, "many">;
74
- weaknesses: z.ZodArray<z.ZodString, "many">;
75
- }, "strip", z.ZodTypeAny, {
76
- name?: string;
77
- url?: string;
78
- strengths?: string[];
79
- weaknesses?: string[];
80
- }, {
81
- name?: string;
82
- url?: string;
83
- strengths?: string[];
84
- weaknesses?: string[];
85
- }>, "many">;
88
+ strengths: z.ZodArray<z.ZodString>;
89
+ weaknesses: z.ZodArray<z.ZodString>;
90
+ }, z.core.$strip>>;
86
91
  opportunityScore: z.ZodNumber;
87
92
  viralPotential: z.ZodBoolean;
88
93
  followUpQuestions: z.ZodArray<z.ZodObject<{
89
94
  question: z.ZodString;
90
- type: z.ZodEnum<["open", "multiple-choice", "scale"]>;
91
- options: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
95
+ type: z.ZodEnum<{
96
+ open: "open";
97
+ "multiple-choice": "multiple-choice";
98
+ scale: "scale";
99
+ }>;
100
+ options: z.ZodOptional<z.ZodArray<z.ZodString>>;
92
101
  rationale: z.ZodString;
93
- }, "strip", z.ZodTypeAny, {
94
- type?: "open" | "multiple-choice" | "scale";
95
- options?: string[];
96
- question?: string;
97
- rationale?: string;
98
- }, {
99
- type?: "open" | "multiple-choice" | "scale";
100
- options?: string[];
101
- question?: string;
102
- rationale?: string;
103
- }>, "many">;
102
+ }, z.core.$strip>>;
104
103
  confidence: z.ZodOptional<z.ZodNumber>;
105
104
  rawVision: z.ZodString;
106
- }, "strip", z.ZodTypeAny, {
107
- keywords?: string[];
108
- confidence?: number;
109
- market?: "unknown" | "healthcare" | "fintech" | "education" | "iot" | "gaming" | "marketplace" | "productivity-saas" | "e-commerce" | "social-network" | "enterprise-b2b" | "consumer-b2c" | "blockchain" | "ai-ml";
110
- competitors?: {
111
- name?: string;
112
- url?: string;
113
- strengths?: string[];
114
- weaknesses?: string[];
115
- }[];
116
- opportunityScore?: number;
117
- viralPotential?: boolean;
118
- followUpQuestions?: {
119
- type?: "open" | "multiple-choice" | "scale";
120
- options?: string[];
121
- question?: string;
122
- rationale?: string;
123
- }[];
124
- rawVision?: string;
125
- }, {
126
- keywords?: string[];
127
- confidence?: number;
128
- market?: "unknown" | "healthcare" | "fintech" | "education" | "iot" | "gaming" | "marketplace" | "productivity-saas" | "e-commerce" | "social-network" | "enterprise-b2b" | "consumer-b2c" | "blockchain" | "ai-ml";
129
- competitors?: {
130
- name?: string;
131
- url?: string;
132
- strengths?: string[];
133
- weaknesses?: string[];
134
- }[];
135
- opportunityScore?: number;
136
- viralPotential?: boolean;
137
- followUpQuestions?: {
138
- type?: "open" | "multiple-choice" | "scale";
139
- options?: string[];
140
- question?: string;
141
- rationale?: string;
142
- }[];
143
- rawVision?: string;
144
- }>;
105
+ }, z.core.$strip>;
145
106
  /**
146
107
  * Zod schema for Competitor validation
147
108
  */
148
109
  export declare const CompetitorSchema: z.ZodObject<{
149
110
  name: z.ZodString;
150
111
  url: z.ZodOptional<z.ZodString>;
151
- strengths: z.ZodArray<z.ZodString, "many">;
152
- weaknesses: z.ZodArray<z.ZodString, "many">;
153
- }, "strip", z.ZodTypeAny, {
154
- name?: string;
155
- url?: string;
156
- strengths?: string[];
157
- weaknesses?: string[];
158
- }, {
159
- name?: string;
160
- url?: string;
161
- strengths?: string[];
162
- weaknesses?: string[];
163
- }>;
112
+ strengths: z.ZodArray<z.ZodString>;
113
+ weaknesses: z.ZodArray<z.ZodString>;
114
+ }, z.core.$strip>;
164
115
  /**
165
116
  * Zod schema for Question validation
166
117
  */
167
118
  export declare const QuestionSchema: z.ZodObject<{
168
119
  question: z.ZodString;
169
- type: z.ZodEnum<["open", "multiple-choice", "scale"]>;
170
- options: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
120
+ type: z.ZodEnum<{
121
+ open: "open";
122
+ "multiple-choice": "multiple-choice";
123
+ scale: "scale";
124
+ }>;
125
+ options: z.ZodOptional<z.ZodArray<z.ZodString>>;
171
126
  rationale: z.ZodString;
172
- }, "strip", z.ZodTypeAny, {
173
- type?: "open" | "multiple-choice" | "scale";
174
- options?: string[];
175
- question?: string;
176
- rationale?: string;
177
- }, {
178
- type?: "open" | "multiple-choice" | "scale";
179
- options?: string[];
180
- question?: string;
181
- rationale?: string;
182
- }>;
127
+ }, z.core.$strip>;
183
128
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/init/research/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;GAIG;AACH,MAAM,MAAM,cAAc,GACtB,mBAAmB,GACnB,YAAY,GACZ,SAAS,GACT,YAAY,GACZ,WAAW,GACX,QAAQ,GACR,gBAAgB,GAChB,gBAAgB,GAChB,cAAc,GACd,aAAa,GACb,KAAK,GACL,YAAY,GACZ,OAAO,GACP,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IAEb,6BAA6B;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,sCAAsC;IACtC,SAAS,EAAE,MAAM,EAAE,CAAC;IAEpB,6BAA6B;IAC7B,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,oBAAoB;IACpB,QAAQ,EAAE,MAAM,CAAC;IAEjB,wDAAwD;IACxD,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,OAAO,CAAC;IAE3C,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,EAAE,CAAC;IAEnB,+BAA+B;IAC/B,MAAM,EAAE,cAAc,CAAC;IAEvB,4CAA4C;IAC5C,WAAW,EAAE,UAAU,EAAE,CAAC;IAE1B,4CAA4C;IAC5C,gBAAgB,EAAE,MAAM,CAAC;IAEzB,iDAAiD;IACjD,cAAc,EAAE,OAAO,CAAC;IAExB,mDAAmD;IACnD,iBAAiB,EAAE,QAAQ,EAAE,CAAC;IAE9B,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsC/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;EAK3B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;EAKzB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/init/research/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;GAIG;AACH,MAAM,MAAM,cAAc,GACtB,mBAAmB,GACnB,YAAY,GACZ,SAAS,GACT,YAAY,GACZ,WAAW,GACX,QAAQ,GACR,gBAAgB,GAChB,gBAAgB,GAChB,cAAc,GACd,aAAa,GACb,KAAK,GACL,YAAY,GACZ,OAAO,GACP,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IAEb,6BAA6B;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,sCAAsC;IACtC,SAAS,EAAE,MAAM,EAAE,CAAC;IAEpB,6BAA6B;IAC7B,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,oBAAoB;IACpB,QAAQ,EAAE,MAAM,CAAC;IAEjB,wDAAwD;IACxD,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,OAAO,CAAC;IAE3C,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,EAAE,CAAC;IAEnB,+BAA+B;IAC/B,MAAM,EAAE,cAAc,CAAC;IAEvB,4CAA4C;IAC5C,WAAW,EAAE,UAAU,EAAE,CAAC;IAE1B,4CAA4C;IAC5C,gBAAgB,EAAE,MAAM,CAAC;IAEzB,iDAAiD;IACjD,cAAc,EAAE,OAAO,CAAC;IAExB,mDAAmD;IACnD,iBAAiB,EAAE,QAAQ,EAAE,CAAC;IAE9B,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsC/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;iBAK3B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;iBAKzB,CAAC"}
@@ -45,51 +45,13 @@ export declare const TeamRecommendationSchema: z.ZodObject<{
45
45
  required: z.ZodBoolean;
46
46
  reason: z.ZodString;
47
47
  size: z.ZodString;
48
- skills: z.ZodArray<z.ZodString, "many">;
48
+ skills: z.ZodArray<z.ZodString>;
49
49
  serverlessAlternative: z.ZodOptional<z.ZodObject<{
50
50
  service: z.ZodString;
51
51
  costSavings: z.ZodNumber;
52
- tradeoffs: z.ZodArray<z.ZodString, "many">;
52
+ tradeoffs: z.ZodArray<z.ZodString>;
53
53
  pricingModel: z.ZodOptional<z.ZodString>;
54
- }, "strip", z.ZodTypeAny, {
55
- service?: string;
56
- costSavings?: number;
57
- tradeoffs?: string[];
58
- pricingModel?: string;
59
- }, {
60
- service?: string;
61
- costSavings?: number;
62
- tradeoffs?: string[];
63
- pricingModel?: string;
64
- }>>;
54
+ }, z.core.$strip>>;
65
55
  priority: z.ZodOptional<z.ZodNumber>;
66
- }, "strip", z.ZodTypeAny, {
67
- skills?: string[];
68
- reason?: string;
69
- priority?: number;
70
- size?: string;
71
- teamName?: string;
72
- role?: string;
73
- required?: boolean;
74
- serverlessAlternative?: {
75
- service?: string;
76
- costSavings?: number;
77
- tradeoffs?: string[];
78
- pricingModel?: string;
79
- };
80
- }, {
81
- skills?: string[];
82
- reason?: string;
83
- priority?: number;
84
- size?: string;
85
- teamName?: string;
86
- role?: string;
87
- required?: boolean;
88
- serverlessAlternative?: {
89
- service?: string;
90
- costSavings?: number;
91
- tradeoffs?: string[];
92
- pricingModel?: string;
93
- };
94
- }>;
56
+ }, z.core.$strip>;
95
57
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/init/team/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAEhB,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAC;IAEpB,oCAAoC;IACpC,SAAS,EAAE,MAAM,EAAE,CAAC;IAEpB,oBAAoB;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAC;IAEjB,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IAEb,+DAA+D;IAC/D,QAAQ,EAAE,OAAO,CAAC;IAElB,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IAEf,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IAEb,oCAAoC;IACpC,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB,6CAA6C;IAC7C,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAE9C,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAcnC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/init/team/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAEhB,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAC;IAEpB,oCAAoC;IACpC,SAAS,EAAE,MAAM,EAAE,CAAC;IAEpB,oBAAoB;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAC;IAEjB,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IAEb,+DAA+D;IAC/D,QAAQ,EAAE,OAAO,CAAC;IAElB,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IAEf,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IAEb,oCAAoC;IACpC,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB,6CAA6C;IAC7C,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAE9C,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;iBAcnC,CAAC"}
@@ -0,0 +1,181 @@
1
+ /**
2
+ * Type definitions for Dashboard Cache system
3
+ *
4
+ * Pre-computed state cache for O(1) status command reads.
5
+ * Updated incrementally on file changes, not rebuilt on every query.
6
+ *
7
+ * @see spec.md 0117-instant-dashboard-cache
8
+ */
9
+ /**
10
+ * Current cache schema version
11
+ * Increment when making breaking schema changes
12
+ */
13
+ export declare const DASHBOARD_CACHE_VERSION = 1;
14
+ /**
15
+ * Cache file location
16
+ */
17
+ export declare const DASHBOARD_CACHE_PATH = ".specweave/state/dashboard.json";
18
+ /**
19
+ * Task completion stats for an increment
20
+ */
21
+ export interface TaskStats {
22
+ total: number;
23
+ completed: number;
24
+ }
25
+ /**
26
+ * Acceptance criteria stats for an increment
27
+ */
28
+ export interface ACStats {
29
+ total: number;
30
+ completed: number;
31
+ }
32
+ /**
33
+ * Increment status values
34
+ */
35
+ export type IncrementStatus = 'backlog' | 'planned' | 'active' | 'paused' | 'ready_for_review' | 'completed' | 'abandoned';
36
+ /**
37
+ * Increment type values
38
+ */
39
+ export type IncrementType = 'feature' | 'hotfix' | 'bug' | 'refactor' | 'experiment' | 'change-request';
40
+ /**
41
+ * Priority values
42
+ */
43
+ export type Priority = 'P0' | 'P1' | 'P2' | 'P3';
44
+ /**
45
+ * Cached data for a single increment
46
+ */
47
+ export interface CachedIncrement {
48
+ /** Increment status */
49
+ status: IncrementStatus;
50
+ /** Increment type */
51
+ type: IncrementType;
52
+ /** Priority level */
53
+ priority: Priority;
54
+ /** Task completion stats */
55
+ tasks: TaskStats;
56
+ /** Acceptance criteria completion stats */
57
+ acs: ACStats;
58
+ /** Creation timestamp */
59
+ createdAt: string;
60
+ /** Last activity timestamp */
61
+ lastActivity: string;
62
+ /** User story IDs in this increment */
63
+ userStories: string[];
64
+ /** Increment title (for display) */
65
+ title?: string;
66
+ /** Project ID */
67
+ project?: string;
68
+ }
69
+ /**
70
+ * Summary counts by status
71
+ */
72
+ export interface StatusSummary {
73
+ total: number;
74
+ active: number;
75
+ paused: number;
76
+ backlog: number;
77
+ planned: number;
78
+ ready_for_review: number;
79
+ completed: number;
80
+ abandoned: number;
81
+ archived: number;
82
+ }
83
+ /**
84
+ * Counts by type
85
+ */
86
+ export interface TypeCounts {
87
+ feature: number;
88
+ hotfix: number;
89
+ bug: number;
90
+ refactor: number;
91
+ experiment: number;
92
+ 'change-request': number;
93
+ }
94
+ /**
95
+ * Counts by priority
96
+ */
97
+ export interface PriorityCounts {
98
+ P0: number;
99
+ P1: number;
100
+ P2: number;
101
+ P3: number;
102
+ }
103
+ /**
104
+ * Summary statistics across all increments
105
+ */
106
+ export interface DashboardSummary extends StatusSummary {
107
+ byType: TypeCounts;
108
+ byPriority: PriorityCounts;
109
+ }
110
+ /**
111
+ * Background job info
112
+ */
113
+ export interface CachedJob {
114
+ id: string;
115
+ type: string;
116
+ status: 'running' | 'paused' | 'completed' | 'failed';
117
+ progress?: number;
118
+ message?: string;
119
+ startedAt: string;
120
+ updatedAt: string;
121
+ }
122
+ /**
123
+ * Jobs section of cache
124
+ */
125
+ export interface JobsCache {
126
+ running: CachedJob[];
127
+ paused: CachedJob[];
128
+ failed: CachedJob[];
129
+ completedCount: number;
130
+ }
131
+ /**
132
+ * Cost tracking section of cache
133
+ */
134
+ export interface CostsCache {
135
+ totalTokens: number;
136
+ totalCost: number;
137
+ totalSavings: number;
138
+ byIncrement: Record<string, {
139
+ tokens: number;
140
+ cost: number;
141
+ savings: number;
142
+ }>;
143
+ }
144
+ /**
145
+ * Source file mtimes for stale detection
146
+ */
147
+ export interface SourceMtimes {
148
+ [incrementId: string]: {
149
+ metadata?: number;
150
+ tasks?: number;
151
+ spec?: number;
152
+ };
153
+ }
154
+ /**
155
+ * Complete dashboard cache structure
156
+ */
157
+ export interface DashboardCache {
158
+ /** Schema version for migrations */
159
+ version: number;
160
+ /** Last update timestamp */
161
+ updatedAt: string;
162
+ /** Per-increment cached data */
163
+ increments: Record<string, CachedIncrement>;
164
+ /** Aggregated summary statistics */
165
+ summary: DashboardSummary;
166
+ /** Background jobs state */
167
+ jobs: JobsCache;
168
+ /** Cost tracking data */
169
+ costs: CostsCache;
170
+ /** Source file mtimes for stale detection */
171
+ mtimes?: SourceMtimes;
172
+ }
173
+ /**
174
+ * Change types for incremental updates
175
+ */
176
+ export type CacheChangeType = 'metadata' | 'tasks' | 'spec' | 'jobs';
177
+ /**
178
+ * Create an empty dashboard cache
179
+ */
180
+ export declare function createEmptyCache(): DashboardCache;
181
+ //# sourceMappingURL=dashboard-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-cache.d.ts","sourceRoot":"","sources":["../../../src/types/dashboard-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;GAGG;AACH,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,oBAAoB,oCAAoC,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB,SAAS,GACT,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,kBAAkB,GAClB,WAAW,GACX,WAAW,CAAC;AAEhB;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,QAAQ,GACR,KAAK,GACL,UAAU,GACV,YAAY,GACZ,gBAAgB,CAAC;AAErB;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,uBAAuB;IACvB,MAAM,EAAE,eAAe,CAAC;IACxB,qBAAqB;IACrB,IAAI,EAAE,aAAa,CAAC;IACpB,qBAAqB;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,4BAA4B;IAC5B,KAAK,EAAE,SAAS,CAAC;IACjB,2CAA2C;IAC3C,GAAG,EAAE,OAAO,CAAC;IACb,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACrD,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE,cAAc,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE;QAC1B,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,CAAC,WAAW,EAAE,MAAM,GAAG;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC5C,oCAAoC;IACpC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,4BAA4B;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,yBAAyB;IACzB,KAAK,EAAE,UAAU,CAAC;IAClB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAErE;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,cAAc,CA2CjD"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Type definitions for Dashboard Cache system
3
+ *
4
+ * Pre-computed state cache for O(1) status command reads.
5
+ * Updated incrementally on file changes, not rebuilt on every query.
6
+ *
7
+ * @see spec.md 0117-instant-dashboard-cache
8
+ */
9
+ /**
10
+ * Current cache schema version
11
+ * Increment when making breaking schema changes
12
+ */
13
+ export const DASHBOARD_CACHE_VERSION = 1;
14
+ /**
15
+ * Cache file location
16
+ */
17
+ export const DASHBOARD_CACHE_PATH = '.specweave/state/dashboard.json';
18
+ /**
19
+ * Create an empty dashboard cache
20
+ */
21
+ export function createEmptyCache() {
22
+ return {
23
+ version: DASHBOARD_CACHE_VERSION,
24
+ updatedAt: new Date().toISOString(),
25
+ increments: {},
26
+ summary: {
27
+ total: 0,
28
+ active: 0,
29
+ paused: 0,
30
+ backlog: 0,
31
+ planned: 0,
32
+ ready_for_review: 0,
33
+ completed: 0,
34
+ abandoned: 0,
35
+ archived: 0,
36
+ byType: {
37
+ feature: 0,
38
+ hotfix: 0,
39
+ bug: 0,
40
+ refactor: 0,
41
+ experiment: 0,
42
+ 'change-request': 0,
43
+ },
44
+ byPriority: {
45
+ P0: 0,
46
+ P1: 0,
47
+ P2: 0,
48
+ P3: 0,
49
+ },
50
+ },
51
+ jobs: {
52
+ running: [],
53
+ paused: [],
54
+ failed: [],
55
+ completedCount: 0,
56
+ },
57
+ costs: {
58
+ totalTokens: 0,
59
+ totalCost: 0,
60
+ totalSavings: 0,
61
+ byIncrement: {},
62
+ },
63
+ };
64
+ }
65
+ //# sourceMappingURL=dashboard-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-cache.js","sourceRoot":"","sources":["../../../src/types/dashboard-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,iCAAiC,CAAC;AA8LtE;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,OAAO,EAAE,uBAAuB;QAChC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,UAAU,EAAE,EAAE;QACd,OAAO,EAAE;YACP,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;YACV,gBAAgB,EAAE,CAAC;YACnB,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,CAAC;YACZ,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE;gBACN,OAAO,EAAE,CAAC;gBACV,MAAM,EAAE,CAAC;gBACT,GAAG,EAAE,CAAC;gBACN,QAAQ,EAAE,CAAC;gBACX,UAAU,EAAE,CAAC;gBACb,gBAAgB,EAAE,CAAC;aACpB;YACD,UAAU,EAAE;gBACV,EAAE,EAAE,CAAC;gBACL,EAAE,EAAE,CAAC;gBACL,EAAE,EAAE,CAAC;gBACL,EAAE,EAAE,CAAC;aACN;SACF;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,cAAc,EAAE,CAAC;SAClB;QACD,KAAK,EAAE;YACL,WAAW,EAAE,CAAC;YACd,SAAS,EAAE,CAAC;YACZ,YAAY,EAAE,CAAC;YACf,WAAW,EAAE,EAAE;SAChB;KACF,CAAC;AACJ,CAAC"}