@refrakt-md/plan 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/dist/cli-plugin.d.ts +12 -0
  2. package/dist/cli-plugin.d.ts.map +1 -0
  3. package/dist/cli-plugin.js +494 -0
  4. package/dist/cli-plugin.js.map +1 -0
  5. package/dist/commands/build.d.ts +14 -0
  6. package/dist/commands/build.d.ts.map +1 -0
  7. package/dist/commands/build.js +57 -0
  8. package/dist/commands/build.js.map +1 -0
  9. package/dist/commands/bundle-behaviors.d.ts +6 -0
  10. package/dist/commands/bundle-behaviors.d.ts.map +1 -0
  11. package/dist/commands/bundle-behaviors.js +24 -0
  12. package/dist/commands/bundle-behaviors.js.map +1 -0
  13. package/dist/commands/create.d.ts +21 -0
  14. package/dist/commands/create.d.ts.map +1 -0
  15. package/dist/commands/create.js +50 -0
  16. package/dist/commands/create.js.map +1 -0
  17. package/dist/commands/init.d.ts +17 -0
  18. package/dist/commands/init.d.ts.map +1 -0
  19. package/dist/commands/init.js +109 -0
  20. package/dist/commands/init.js.map +1 -0
  21. package/dist/commands/next.d.ts +34 -0
  22. package/dist/commands/next.d.ts.map +1 -0
  23. package/dist/commands/next.js +100 -0
  24. package/dist/commands/next.js.map +1 -0
  25. package/dist/commands/plan-behaviors.d.ts +2 -0
  26. package/dist/commands/plan-behaviors.d.ts.map +1 -0
  27. package/dist/commands/plan-behaviors.js +7 -0
  28. package/dist/commands/plan-behaviors.js.map +1 -0
  29. package/dist/commands/render-pipeline.d.ts +70 -0
  30. package/dist/commands/render-pipeline.d.ts.map +1 -0
  31. package/dist/commands/render-pipeline.js +1173 -0
  32. package/dist/commands/render-pipeline.js.map +1 -0
  33. package/dist/commands/serve.d.ts +13 -0
  34. package/dist/commands/serve.d.ts.map +1 -0
  35. package/dist/commands/serve.js +167 -0
  36. package/dist/commands/serve.js.map +1 -0
  37. package/dist/commands/status.d.ts +53 -0
  38. package/dist/commands/status.d.ts.map +1 -0
  39. package/dist/commands/status.js +181 -0
  40. package/dist/commands/status.js.map +1 -0
  41. package/dist/commands/templates.d.ts +37 -0
  42. package/dist/commands/templates.d.ts.map +1 -0
  43. package/dist/commands/templates.js +160 -0
  44. package/dist/commands/templates.js.map +1 -0
  45. package/dist/commands/update.d.ts +29 -0
  46. package/dist/commands/update.d.ts.map +1 -0
  47. package/dist/commands/update.js +238 -0
  48. package/dist/commands/update.js.map +1 -0
  49. package/dist/commands/validate.d.ts +29 -0
  50. package/dist/commands/validate.d.ts.map +1 -0
  51. package/dist/commands/validate.js +298 -0
  52. package/dist/commands/validate.js.map +1 -0
  53. package/dist/config.d.ts +3 -0
  54. package/dist/config.d.ts.map +1 -0
  55. package/dist/config.js +163 -0
  56. package/dist/config.js.map +1 -0
  57. package/dist/filter.d.ts +17 -0
  58. package/dist/filter.d.ts.map +1 -0
  59. package/dist/filter.js +72 -0
  60. package/dist/filter.js.map +1 -0
  61. package/dist/index.d.ts +7 -0
  62. package/dist/index.d.ts.map +1 -0
  63. package/dist/index.js +144 -0
  64. package/dist/index.js.map +1 -0
  65. package/dist/pipeline.d.ts +23 -0
  66. package/dist/pipeline.d.ts.map +1 -0
  67. package/dist/pipeline.js +720 -0
  68. package/dist/pipeline.js.map +1 -0
  69. package/dist/scanner.d.ts +9 -0
  70. package/dist/scanner.d.ts.map +1 -0
  71. package/dist/scanner.js +234 -0
  72. package/dist/scanner.js.map +1 -0
  73. package/dist/schema/backlog.d.ts +7 -0
  74. package/dist/schema/backlog.d.ts.map +1 -0
  75. package/dist/schema/backlog.js +9 -0
  76. package/dist/schema/backlog.js.map +1 -0
  77. package/dist/schema/bug.d.ts +9 -0
  78. package/dist/schema/bug.d.ts.map +1 -0
  79. package/dist/schema/bug.js +11 -0
  80. package/dist/schema/bug.js.map +1 -0
  81. package/dist/schema/decision-log.d.ts +5 -0
  82. package/dist/schema/decision-log.d.ts.map +1 -0
  83. package/dist/schema/decision-log.js +7 -0
  84. package/dist/schema/decision-log.js.map +1 -0
  85. package/dist/schema/decision.d.ts +8 -0
  86. package/dist/schema/decision.d.ts.map +1 -0
  87. package/dist/schema/decision.js +10 -0
  88. package/dist/schema/decision.js.map +1 -0
  89. package/dist/schema/milestone.d.ts +6 -0
  90. package/dist/schema/milestone.d.ts.map +1 -0
  91. package/dist/schema/milestone.js +8 -0
  92. package/dist/schema/milestone.js.map +1 -0
  93. package/dist/schema/plan-activity.d.ts +4 -0
  94. package/dist/schema/plan-activity.d.ts.map +1 -0
  95. package/dist/schema/plan-activity.js +6 -0
  96. package/dist/schema/plan-activity.js.map +1 -0
  97. package/dist/schema/plan-progress.d.ts +4 -0
  98. package/dist/schema/plan-progress.d.ts.map +1 -0
  99. package/dist/schema/plan-progress.js +6 -0
  100. package/dist/schema/plan-progress.js.map +1 -0
  101. package/dist/schema/spec.d.ts +8 -0
  102. package/dist/schema/spec.d.ts.map +1 -0
  103. package/dist/schema/spec.js +10 -0
  104. package/dist/schema/spec.js.map +1 -0
  105. package/dist/schema/work.d.ts +10 -0
  106. package/dist/schema/work.d.ts.map +1 -0
  107. package/dist/schema/work.js +12 -0
  108. package/dist/schema/work.js.map +1 -0
  109. package/dist/tags/backlog.d.ts +4 -0
  110. package/dist/tags/backlog.d.ts.map +1 -0
  111. package/dist/tags/backlog.js +41 -0
  112. package/dist/tags/backlog.js.map +1 -0
  113. package/dist/tags/bug.d.ts +3 -0
  114. package/dist/tags/bug.d.ts.map +1 -0
  115. package/dist/tags/bug.js +58 -0
  116. package/dist/tags/bug.js.map +1 -0
  117. package/dist/tags/decision-log.d.ts +4 -0
  118. package/dist/tags/decision-log.d.ts.map +1 -0
  119. package/dist/tags/decision-log.js +35 -0
  120. package/dist/tags/decision-log.js.map +1 -0
  121. package/dist/tags/decision.d.ts +3 -0
  122. package/dist/tags/decision.d.ts.map +1 -0
  123. package/dist/tags/decision.js +54 -0
  124. package/dist/tags/decision.js.map +1 -0
  125. package/dist/tags/milestone.d.ts +3 -0
  126. package/dist/tags/milestone.d.ts.map +1 -0
  127. package/dist/tags/milestone.js +52 -0
  128. package/dist/tags/milestone.js.map +1 -0
  129. package/dist/tags/plan-activity.d.ts +4 -0
  130. package/dist/tags/plan-activity.d.ts.map +1 -0
  131. package/dist/tags/plan-activity.js +31 -0
  132. package/dist/tags/plan-activity.js.map +1 -0
  133. package/dist/tags/plan-progress.d.ts +4 -0
  134. package/dist/tags/plan-progress.d.ts.map +1 -0
  135. package/dist/tags/plan-progress.js +31 -0
  136. package/dist/tags/plan-progress.js.map +1 -0
  137. package/dist/tags/spec.d.ts +3 -0
  138. package/dist/tags/spec.d.ts.map +1 -0
  139. package/dist/tags/spec.js +57 -0
  140. package/dist/tags/spec.js.map +1 -0
  141. package/dist/tags/work.d.ts +3 -0
  142. package/dist/tags/work.d.ts.map +1 -0
  143. package/dist/tags/work.js +68 -0
  144. package/dist/tags/work.js.map +1 -0
  145. package/dist/types.d.ts +69 -0
  146. package/dist/types.d.ts.map +1 -0
  147. package/dist/types.js +22 -0
  148. package/dist/types.js.map +1 -0
  149. package/dist/util.d.ts +8 -0
  150. package/dist/util.d.ts.map +1 -0
  151. package/dist/util.js +32 -0
  152. package/dist/util.js.map +1 -0
  153. package/package.json +47 -0
  154. package/styles/default.css +580 -0
  155. package/styles/minimal.css +379 -0
  156. package/styles/tokens.css +13 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backlog.js","sourceRoot":"","sources":["../../src/tags/backlog.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAErD,MAAM,CAAC,MAAM,OAAO,GAAG,wBAAwB,CAAC;IAC/C,UAAU,EAAE;QACX,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,iFAAiF,EAAE;QACtJ,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,oEAAoE,EAAE;QAC/I,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,oEAAoE,EAAE;QACxI,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,0DAA0D,EAAE;KAChI;IACD,WAAW,EAAE,IAAI;IACjB,YAAY,EAAE;QACb,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,EAAE;KACV;IACD,SAAS,CAAC,SAAS,EAAE,KAAK;QACzB,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,IAAI,UAAU,EAAE,CAAC,CAAC;QACxE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC;QAClE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;QACnE,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAE1F,6CAA6C;QAC7C,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAE3C,OAAO,yBAAyB,CAAC,MAAM,CAAC,OAAO,EAAE;YAChD,GAAG,EAAE,SAAS;YACd,UAAU,EAAE;gBACX,MAAM,EAAE,UAAU;gBAClB,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,QAAQ;aACd;YACD,IAAI,EAAE;gBACL,KAAK,EAAE,WAAW;aAClB;YACD,QAAQ,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,CAAC;SAChF,CAAC,CAAC;IACJ,CAAC;CACD,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import Markdoc from '@markdoc/markdoc';
2
+ export declare const bug: Markdoc.Schema;
3
+ //# sourceMappingURL=bug.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bug.d.ts","sourceRoot":"","sources":["../../src/tags/bug.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAUvC,eAAO,MAAM,GAAG,gBAuDd,CAAC"}
@@ -0,0 +1,58 @@
1
+ import Markdoc from '@markdoc/markdoc';
2
+ const { Tag } = Markdoc;
3
+ import { createContentModelSchema, createComponentRenderable, asNodes, RenderableNodeCursor } from '@refrakt-md/runes';
4
+ import { schema } from '../types.js';
5
+ import { buildSections } from '../util.js';
6
+ const statusValues = ['reported', 'confirmed', 'in-progress', 'fixed', 'wontfix', 'duplicate'];
7
+ const severityValues = ['critical', 'major', 'minor', 'cosmetic'];
8
+ export const bug = createContentModelSchema({
9
+ attributes: {
10
+ id: { type: String, required: true, description: 'Unique identifier.' },
11
+ status: { type: String, required: false, matches: statusValues.slice(), description: 'Current status: reported, confirmed, in-progress, fixed, wontfix, or duplicate.' },
12
+ severity: { type: String, required: false, matches: severityValues.slice(), description: 'Impact level: critical, major, minor, or cosmetic.' },
13
+ assignee: { type: String, required: false, description: 'Person or agent working on this.' },
14
+ milestone: { type: String, required: false, description: 'Milestone for the fix.' },
15
+ tags: { type: String, required: false, description: 'Comma-separated labels.' },
16
+ },
17
+ contentModel: () => ({
18
+ type: 'sections',
19
+ sectionHeading: 'heading:2',
20
+ fields: [
21
+ { name: 'title', match: 'heading', optional: false },
22
+ ],
23
+ sectionModel: {
24
+ type: 'sequence',
25
+ fields: [{ name: 'body', match: 'any', optional: true, greedy: true }],
26
+ },
27
+ }),
28
+ transform(resolved, attrs, config) {
29
+ const titleNodes = new RenderableNodeCursor(Markdoc.transform(asNodes(resolved.title), config));
30
+ const idMeta = new Tag('meta', { content: attrs.id ?? '' });
31
+ const statusMeta = new Tag('meta', { content: attrs.status ?? 'reported' });
32
+ const severityMeta = new Tag('meta', { content: attrs.severity ?? 'major' });
33
+ const assigneeMeta = new Tag('meta', { content: attrs.assignee ?? '' });
34
+ const milestoneMeta = new Tag('meta', { content: attrs.milestone ?? '' });
35
+ const tagsMeta = new Tag('meta', { content: attrs.tags ?? '' });
36
+ const title = titleNodes.wrap('header');
37
+ const sections = resolved.sections;
38
+ const contentChildren = buildSections(sections, config);
39
+ const bodyDiv = new Tag('div', {}, contentChildren);
40
+ return createComponentRenderable(schema.Bug, {
41
+ tag: 'article',
42
+ properties: {
43
+ id: idMeta,
44
+ status: statusMeta,
45
+ severity: severityMeta,
46
+ assignee: assigneeMeta,
47
+ milestone: milestoneMeta,
48
+ tags: tagsMeta,
49
+ },
50
+ refs: {
51
+ title: title.tag('header'),
52
+ body: bodyDiv,
53
+ },
54
+ children: [idMeta, statusMeta, severityMeta, assigneeMeta, milestoneMeta, tagsMeta, title.next(), bodyDiv],
55
+ });
56
+ },
57
+ });
58
+ //# sourceMappingURL=bug.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bug.js","sourceRoot":"","sources":["../../src/tags/bug.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import Markdoc from '@markdoc/markdoc';
2
+ export declare const DECISION_LOG_SENTINEL = "__decision-log-sentinel";
3
+ export declare const decisionLog: Markdoc.Schema;
4
+ //# sourceMappingURL=decision-log.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decision-log.d.ts","sourceRoot":"","sources":["../../src/tags/decision-log.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAKvC,eAAO,MAAM,qBAAqB,4BAA4B,CAAC;AAE/D,eAAO,MAAM,WAAW,gBA8BtB,CAAC"}
@@ -0,0 +1,35 @@
1
+ import Markdoc from '@markdoc/markdoc';
2
+ const { Tag } = Markdoc;
3
+ import { createContentModelSchema, createComponentRenderable } from '@refrakt-md/runes';
4
+ import { schema } from '../types.js';
5
+ export const DECISION_LOG_SENTINEL = '__decision-log-sentinel';
6
+ export const decisionLog = createContentModelSchema({
7
+ attributes: {
8
+ filter: { type: String, required: false, default: '', description: 'Filter: space-separated field:value pairs (e.g., "status:accepted").' },
9
+ sort: { type: String, required: false, default: 'date', description: 'Sort field: date (reverse chronological) or id.' },
10
+ },
11
+ selfClosing: true,
12
+ contentModel: {
13
+ type: 'sequence',
14
+ fields: [],
15
+ },
16
+ transform(_resolved, attrs) {
17
+ const filterMeta = new Tag('meta', { content: attrs.filter ?? '' });
18
+ const sortMeta = new Tag('meta', { content: attrs.sort ?? 'date' });
19
+ const sentinelMeta = new Tag('meta', { 'data-field': DECISION_LOG_SENTINEL, content: 'true' });
20
+ // Placeholder list — replaced by postProcess
21
+ const placeholder = new Tag('div', {}, []);
22
+ return createComponentRenderable(schema.DecisionLog, {
23
+ tag: 'section',
24
+ properties: {
25
+ filter: filterMeta,
26
+ sort: sortMeta,
27
+ },
28
+ refs: {
29
+ items: placeholder,
30
+ },
31
+ children: [filterMeta, sortMeta, sentinelMeta, placeholder],
32
+ });
33
+ },
34
+ });
35
+ //# sourceMappingURL=decision-log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decision-log.js","sourceRoot":"","sources":["../../src/tags/decision-log.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,MAAM,qBAAqB,GAAG,yBAAyB,CAAC;AAE/D,MAAM,CAAC,MAAM,WAAW,GAAG,wBAAwB,CAAC;IACnD,UAAU,EAAE;QACX,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,sEAAsE,EAAE;QAC3I,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,iDAAiD,EAAE;KACxH;IACD,WAAW,EAAE,IAAI;IACjB,YAAY,EAAE;QACb,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,EAAE;KACV;IACD,SAAS,CAAC,SAAS,EAAE,KAAK;QACzB,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,IAAI,MAAM,EAAE,CAAC,CAAC;QACpE,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAE/F,6CAA6C;QAC7C,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAE3C,OAAO,yBAAyB,CAAC,MAAM,CAAC,WAAW,EAAE;YACpD,GAAG,EAAE,SAAS;YACd,UAAU,EAAE;gBACX,MAAM,EAAE,UAAU;gBAClB,IAAI,EAAE,QAAQ;aACd;YACD,IAAI,EAAE;gBACL,KAAK,EAAE,WAAW;aAClB;YACD,QAAQ,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,CAAC;SAC3D,CAAC,CAAC;IACJ,CAAC;CACD,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import Markdoc from '@markdoc/markdoc';
2
+ export declare const decision: Markdoc.Schema;
3
+ //# sourceMappingURL=decision.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decision.d.ts","sourceRoot":"","sources":["../../src/tags/decision.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AASvC,eAAO,MAAM,QAAQ,gBAoDnB,CAAC"}
@@ -0,0 +1,54 @@
1
+ import Markdoc from '@markdoc/markdoc';
2
+ const { Tag } = Markdoc;
3
+ import { createContentModelSchema, createComponentRenderable, asNodes, RenderableNodeCursor } from '@refrakt-md/runes';
4
+ import { schema } from '../types.js';
5
+ import { buildSections } from '../util.js';
6
+ const statusValues = ['proposed', 'accepted', 'superseded', 'deprecated'];
7
+ export const decision = createContentModelSchema({
8
+ attributes: {
9
+ id: { type: String, required: true, description: 'Identifier (e.g., "ADR-007").' },
10
+ status: { type: String, required: false, matches: statusValues.slice(), description: 'Decision status: proposed, accepted, superseded, or deprecated.' },
11
+ date: { type: String, required: false, description: 'Date decided (ISO 8601).' },
12
+ supersedes: { type: String, required: false, description: 'ID of the decision this replaces.' },
13
+ tags: { type: String, required: false, description: 'Comma-separated labels.' },
14
+ },
15
+ contentModel: () => ({
16
+ type: 'sections',
17
+ sectionHeading: 'heading:2',
18
+ fields: [
19
+ { name: 'title', match: 'heading', optional: false },
20
+ ],
21
+ sectionModel: {
22
+ type: 'sequence',
23
+ fields: [{ name: 'body', match: 'any', optional: true, greedy: true }],
24
+ },
25
+ }),
26
+ transform(resolved, attrs, config) {
27
+ const titleNodes = new RenderableNodeCursor(Markdoc.transform(asNodes(resolved.title), config));
28
+ const idMeta = new Tag('meta', { content: attrs.id ?? '' });
29
+ const statusMeta = new Tag('meta', { content: attrs.status ?? 'proposed' });
30
+ const dateMeta = new Tag('meta', { content: attrs.date ?? '' });
31
+ const supersedesMeta = new Tag('meta', { content: attrs.supersedes ?? '' });
32
+ const tagsMeta = new Tag('meta', { content: attrs.tags ?? '' });
33
+ const title = titleNodes.wrap('header');
34
+ const sections = resolved.sections;
35
+ const contentChildren = buildSections(sections, config);
36
+ const bodyDiv = new Tag('div', {}, contentChildren);
37
+ return createComponentRenderable(schema.Decision, {
38
+ tag: 'article',
39
+ properties: {
40
+ id: idMeta,
41
+ status: statusMeta,
42
+ date: dateMeta,
43
+ supersedes: supersedesMeta,
44
+ tags: tagsMeta,
45
+ },
46
+ refs: {
47
+ title: title.tag('header'),
48
+ body: bodyDiv,
49
+ },
50
+ children: [idMeta, statusMeta, dateMeta, supersedesMeta, tagsMeta, title.next(), bodyDiv],
51
+ });
52
+ },
53
+ });
54
+ //# sourceMappingURL=decision.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decision.js","sourceRoot":"","sources":["../../src/tags/decision.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import Markdoc from '@markdoc/markdoc';
2
+ export declare const milestone: Markdoc.Schema;
3
+ //# sourceMappingURL=milestone.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"milestone.d.ts","sourceRoot":"","sources":["../../src/tags/milestone.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAQvC,eAAO,MAAM,SAAS,gBAsDpB,CAAC"}
@@ -0,0 +1,52 @@
1
+ import Markdoc from '@markdoc/markdoc';
2
+ const { Tag } = Markdoc;
3
+ import { createContentModelSchema, createComponentRenderable, asNodes, RenderableNodeCursor } from '@refrakt-md/runes';
4
+ import { schema } from '../types.js';
5
+ const statusValues = ['planning', 'active', 'complete'];
6
+ export const milestone = createContentModelSchema({
7
+ attributes: {
8
+ name: { type: String, required: true, description: 'Milestone name (e.g., "v0.5.0").' },
9
+ target: { type: String, required: false, description: 'Target date (aspirational, not a commitment).' },
10
+ status: { type: String, required: false, matches: statusValues.slice(), description: 'Current status: planning, active, or complete.' },
11
+ },
12
+ contentModel: {
13
+ type: 'sequence',
14
+ fields: [
15
+ { name: 'title', match: 'heading', optional: true },
16
+ { name: 'goals', match: 'list', optional: true },
17
+ { name: 'notes', match: 'paragraph', optional: true, greedy: true },
18
+ ],
19
+ },
20
+ transform(resolved, attrs, config) {
21
+ const titleNodes = new RenderableNodeCursor(Markdoc.transform(asNodes(resolved.title), config));
22
+ const goalsNodes = new RenderableNodeCursor(Markdoc.transform(asNodes(resolved.goals), config));
23
+ const notesNodes = new RenderableNodeCursor(Markdoc.transform(asNodes(resolved.notes), config));
24
+ const nameMeta = new Tag('meta', { content: attrs.name ?? '' });
25
+ const targetMeta = new Tag('meta', { content: attrs.target ?? '' });
26
+ const statusMeta = new Tag('meta', { content: attrs.status ?? 'planning' });
27
+ const contentChildren = [];
28
+ if (titleNodes.count() > 0) {
29
+ contentChildren.push(titleNodes.wrap('header').next());
30
+ }
31
+ if (goalsNodes.count() > 0) {
32
+ contentChildren.push(goalsNodes.next());
33
+ }
34
+ if (notesNodes.count() > 0) {
35
+ contentChildren.push(...notesNodes.toArray());
36
+ }
37
+ const bodyDiv = new Tag('div', {}, contentChildren);
38
+ return createComponentRenderable(schema.Milestone, {
39
+ tag: 'section',
40
+ properties: {
41
+ name: nameMeta,
42
+ target: targetMeta,
43
+ status: statusMeta,
44
+ },
45
+ refs: {
46
+ body: bodyDiv,
47
+ },
48
+ children: [nameMeta, targetMeta, statusMeta, bodyDiv],
49
+ });
50
+ },
51
+ });
52
+ //# sourceMappingURL=milestone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"milestone.js","sourceRoot":"","sources":["../../src/tags/milestone.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import Markdoc from '@markdoc/markdoc';
2
+ export declare const PLAN_ACTIVITY_SENTINEL = "__plan-activity-sentinel";
3
+ export declare const planActivity: Markdoc.Schema;
4
+ //# sourceMappingURL=plan-activity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-activity.d.ts","sourceRoot":"","sources":["../../src/tags/plan-activity.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAKvC,eAAO,MAAM,sBAAsB,6BAA6B,CAAC;AAEjE,eAAO,MAAM,YAAY,gBAyBvB,CAAC"}
@@ -0,0 +1,31 @@
1
+ import Markdoc from '@markdoc/markdoc';
2
+ const { Tag } = Markdoc;
3
+ import { createContentModelSchema, createComponentRenderable } from '@refrakt-md/runes';
4
+ import { schema } from '../types.js';
5
+ export const PLAN_ACTIVITY_SENTINEL = '__plan-activity-sentinel';
6
+ export const planActivity = createContentModelSchema({
7
+ attributes: {
8
+ limit: { type: Number, required: false, default: 10, description: 'Maximum number of recent items to show.' },
9
+ },
10
+ selfClosing: true,
11
+ contentModel: {
12
+ type: 'sequence',
13
+ fields: [],
14
+ },
15
+ transform(_resolved, attrs) {
16
+ const limitMeta = new Tag('meta', { content: String(attrs.limit ?? 10) });
17
+ const sentinelMeta = new Tag('meta', { 'data-field': PLAN_ACTIVITY_SENTINEL, content: 'true' });
18
+ const placeholder = new Tag('div', {}, []);
19
+ return createComponentRenderable(schema.PlanActivity, {
20
+ tag: 'section',
21
+ properties: {
22
+ limit: limitMeta,
23
+ },
24
+ refs: {
25
+ items: placeholder,
26
+ },
27
+ children: [limitMeta, sentinelMeta, placeholder],
28
+ });
29
+ },
30
+ });
31
+ //# sourceMappingURL=plan-activity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-activity.js","sourceRoot":"","sources":["../../src/tags/plan-activity.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,MAAM,sBAAsB,GAAG,0BAA0B,CAAC;AAEjE,MAAM,CAAC,MAAM,YAAY,GAAG,wBAAwB,CAAC;IACpD,UAAU,EAAE;QACX,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,yCAAyC,EAAE;KAC7G;IACD,WAAW,EAAE,IAAI;IACjB,YAAY,EAAE;QACb,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,EAAE;KACV;IACD,SAAS,CAAC,SAAS,EAAE,KAAK;QACzB,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QAC1E,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAChG,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAE3C,OAAO,yBAAyB,CAAC,MAAM,CAAC,YAAY,EAAE;YACrD,GAAG,EAAE,SAAS;YACd,UAAU,EAAE;gBACX,KAAK,EAAE,SAAS;aAChB;YACD,IAAI,EAAE;gBACL,KAAK,EAAE,WAAW;aAClB;YACD,QAAQ,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,WAAW,CAAC;SAChD,CAAC,CAAC;IACJ,CAAC;CACD,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import Markdoc from '@markdoc/markdoc';
2
+ export declare const PLAN_PROGRESS_SENTINEL = "__plan-progress-sentinel";
3
+ export declare const planProgress: Markdoc.Schema;
4
+ //# sourceMappingURL=plan-progress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-progress.d.ts","sourceRoot":"","sources":["../../src/tags/plan-progress.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAKvC,eAAO,MAAM,sBAAsB,6BAA6B,CAAC;AAEjE,eAAO,MAAM,YAAY,gBAyBvB,CAAC"}
@@ -0,0 +1,31 @@
1
+ import Markdoc from '@markdoc/markdoc';
2
+ const { Tag } = Markdoc;
3
+ import { createContentModelSchema, createComponentRenderable } from '@refrakt-md/runes';
4
+ import { schema } from '../types.js';
5
+ export const PLAN_PROGRESS_SENTINEL = '__plan-progress-sentinel';
6
+ export const planProgress = createContentModelSchema({
7
+ attributes: {
8
+ show: { type: String, required: false, default: 'all', description: 'Entity types to include: all, work, bug, spec, decision.' },
9
+ },
10
+ selfClosing: true,
11
+ contentModel: {
12
+ type: 'sequence',
13
+ fields: [],
14
+ },
15
+ transform(_resolved, attrs) {
16
+ const showMeta = new Tag('meta', { content: attrs.show ?? 'all' });
17
+ const sentinelMeta = new Tag('meta', { 'data-field': PLAN_PROGRESS_SENTINEL, content: 'true' });
18
+ const placeholder = new Tag('div', {}, []);
19
+ return createComponentRenderable(schema.PlanProgress, {
20
+ tag: 'section',
21
+ properties: {
22
+ show: showMeta,
23
+ },
24
+ refs: {
25
+ items: placeholder,
26
+ },
27
+ children: [showMeta, sentinelMeta, placeholder],
28
+ });
29
+ },
30
+ });
31
+ //# sourceMappingURL=plan-progress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-progress.js","sourceRoot":"","sources":["../../src/tags/plan-progress.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,MAAM,sBAAsB,GAAG,0BAA0B,CAAC;AAEjE,MAAM,CAAC,MAAM,YAAY,GAAG,wBAAwB,CAAC;IACpD,UAAU,EAAE;QACX,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,0DAA0D,EAAE;KAChI;IACD,WAAW,EAAE,IAAI;IACjB,YAAY,EAAE;QACb,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,EAAE;KACV;IACD,SAAS,CAAC,SAAS,EAAE,KAAK;QACzB,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;QACnE,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAChG,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAE3C,OAAO,yBAAyB,CAAC,MAAM,CAAC,YAAY,EAAE;YACrD,GAAG,EAAE,SAAS;YACd,UAAU,EAAE;gBACX,IAAI,EAAE,QAAQ;aACd;YACD,IAAI,EAAE;gBACL,KAAK,EAAE,WAAW;aAClB;YACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,WAAW,CAAC;SAC/C,CAAC,CAAC;IACJ,CAAC;CACD,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import Markdoc from '@markdoc/markdoc';
2
+ export declare const spec: Markdoc.Schema;
3
+ //# sourceMappingURL=spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../../src/tags/spec.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAQvC,eAAO,MAAM,IAAI,gBA2Df,CAAC"}
@@ -0,0 +1,57 @@
1
+ import Markdoc from '@markdoc/markdoc';
2
+ const { Tag } = Markdoc;
3
+ import { createContentModelSchema, createComponentRenderable, asNodes, RenderableNodeCursor } from '@refrakt-md/runes';
4
+ import { schema } from '../types.js';
5
+ const statusValues = ['draft', 'review', 'accepted', 'superseded', 'deprecated'];
6
+ export const spec = createContentModelSchema({
7
+ attributes: {
8
+ id: { type: String, required: true, description: 'Unique identifier (e.g., "SPEC-008").' },
9
+ status: { type: String, required: false, matches: statusValues.slice(), description: 'Current status: draft, review, accepted, superseded, or deprecated.' },
10
+ version: { type: String, required: false, description: 'Spec version (e.g., "1.0", "1.2").' },
11
+ supersedes: { type: String, required: false, description: 'ID of the spec this replaces.' },
12
+ tags: { type: String, required: false, description: 'Comma-separated labels.' },
13
+ },
14
+ contentModel: {
15
+ type: 'sequence',
16
+ fields: [
17
+ { name: 'title', match: 'heading', optional: false },
18
+ { name: 'summary', match: 'blockquote', optional: true },
19
+ { name: 'body', match: 'any', optional: true, greedy: true },
20
+ ],
21
+ },
22
+ transform(resolved, attrs, config) {
23
+ const titleNodes = new RenderableNodeCursor(Markdoc.transform(asNodes(resolved.title), config));
24
+ const summaryNodes = new RenderableNodeCursor(Markdoc.transform(asNodes(resolved.summary), config));
25
+ const bodyNodes = new RenderableNodeCursor(Markdoc.transform(asNodes(resolved.body), config));
26
+ const idMeta = new Tag('meta', { content: attrs.id ?? '' });
27
+ const statusMeta = new Tag('meta', { content: attrs.status ?? 'draft' });
28
+ const versionMeta = new Tag('meta', { content: attrs.version ?? '' });
29
+ const supersedesMeta = new Tag('meta', { content: attrs.supersedes ?? '' });
30
+ const tagsMeta = new Tag('meta', { content: attrs.tags ?? '' });
31
+ const title = titleNodes.wrap('header');
32
+ const contentChildren = [];
33
+ if (summaryNodes.count() > 0) {
34
+ contentChildren.push(summaryNodes.next());
35
+ }
36
+ if (bodyNodes.count() > 0) {
37
+ contentChildren.push(...bodyNodes.toArray());
38
+ }
39
+ const bodyDiv = new Tag('div', {}, contentChildren);
40
+ return createComponentRenderable(schema.Spec, {
41
+ tag: 'article',
42
+ properties: {
43
+ id: idMeta,
44
+ status: statusMeta,
45
+ version: versionMeta,
46
+ supersedes: supersedesMeta,
47
+ tags: tagsMeta,
48
+ },
49
+ refs: {
50
+ title: title.tag('header'),
51
+ body: bodyDiv,
52
+ },
53
+ children: [idMeta, statusMeta, versionMeta, supersedesMeta, tagsMeta, title.next(), bodyDiv],
54
+ });
55
+ },
56
+ });
57
+ //# sourceMappingURL=spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec.js","sourceRoot":"","sources":["../../src/tags/spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import Markdoc from '@markdoc/markdoc';
2
+ export declare const work: Markdoc.Schema;
3
+ //# sourceMappingURL=work.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"work.d.ts","sourceRoot":"","sources":["../../src/tags/work.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAWvC,eAAO,MAAM,IAAI,gBAoEf,CAAC"}
@@ -0,0 +1,68 @@
1
+ import Markdoc from '@markdoc/markdoc';
2
+ const { Tag } = Markdoc;
3
+ import { createContentModelSchema, createComponentRenderable, asNodes, RenderableNodeCursor } from '@refrakt-md/runes';
4
+ import { schema } from '../types.js';
5
+ import { buildSections } from '../util.js';
6
+ const statusValues = ['draft', 'ready', 'in-progress', 'review', 'done', 'blocked'];
7
+ const priorityValues = ['critical', 'high', 'medium', 'low'];
8
+ const complexityValues = ['trivial', 'simple', 'moderate', 'complex', 'unknown'];
9
+ export const work = createContentModelSchema({
10
+ attributes: {
11
+ id: { type: String, required: true, description: 'Unique identifier (e.g., "RF-142").' },
12
+ status: { type: String, required: false, matches: statusValues.slice(), description: 'Current status: draft, ready, in-progress, review, done, or blocked.' },
13
+ priority: { type: String, required: false, matches: priorityValues.slice(), description: 'Priority level: critical, high, medium, or low.' },
14
+ complexity: { type: String, required: false, matches: complexityValues.slice(), description: 'Complexity signal: trivial, simple, moderate, complex, or unknown.' },
15
+ assignee: { type: String, required: false, description: 'Person or agent working on this.' },
16
+ milestone: { type: String, required: false, description: 'Milestone this belongs to.' },
17
+ tags: { type: String, required: false, description: 'Comma-separated labels.' },
18
+ },
19
+ contentModel: () => ({
20
+ type: 'sections',
21
+ sectionHeading: 'heading:2',
22
+ fields: [
23
+ { name: 'title', match: 'heading', optional: false },
24
+ { name: 'description', match: 'paragraph', optional: true, greedy: true },
25
+ ],
26
+ sectionModel: {
27
+ type: 'sequence',
28
+ fields: [{ name: 'body', match: 'any', optional: true, greedy: true }],
29
+ },
30
+ }),
31
+ transform(resolved, attrs, config) {
32
+ const titleNodes = new RenderableNodeCursor(Markdoc.transform(asNodes(resolved.title), config));
33
+ const descNodes = new RenderableNodeCursor(Markdoc.transform(asNodes(resolved.description), config));
34
+ const idMeta = new Tag('meta', { content: attrs.id ?? '' });
35
+ const statusMeta = new Tag('meta', { content: attrs.status ?? 'draft' });
36
+ const priorityMeta = new Tag('meta', { content: attrs.priority ?? 'medium' });
37
+ const complexityMeta = new Tag('meta', { content: attrs.complexity ?? 'unknown' });
38
+ const assigneeMeta = new Tag('meta', { content: attrs.assignee ?? '' });
39
+ const milestoneMeta = new Tag('meta', { content: attrs.milestone ?? '' });
40
+ const tagsMeta = new Tag('meta', { content: attrs.tags ?? '' });
41
+ const title = titleNodes.wrap('header');
42
+ const contentChildren = [];
43
+ if (descNodes.count() > 0) {
44
+ contentChildren.push(descNodes.wrap('div').next());
45
+ }
46
+ const sections = resolved.sections;
47
+ contentChildren.push(...buildSections(sections, config));
48
+ const bodyDiv = new Tag('div', {}, contentChildren);
49
+ return createComponentRenderable(schema.Work, {
50
+ tag: 'article',
51
+ properties: {
52
+ id: idMeta,
53
+ status: statusMeta,
54
+ priority: priorityMeta,
55
+ complexity: complexityMeta,
56
+ assignee: assigneeMeta,
57
+ milestone: milestoneMeta,
58
+ tags: tagsMeta,
59
+ },
60
+ refs: {
61
+ title: title.tag('header'),
62
+ body: bodyDiv,
63
+ },
64
+ children: [idMeta, statusMeta, priorityMeta, complexityMeta, assigneeMeta, milestoneMeta, tagsMeta, title.next(), bodyDiv],
65
+ });
66
+ },
67
+ });
68
+ //# sourceMappingURL=work.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"work.js","sourceRoot":"","sources":["../../src/tags/work.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ import { Spec } from './schema/spec.js';
2
+ import { Work } from './schema/work.js';
3
+ import { Bug } from './schema/bug.js';
4
+ import { Decision } from './schema/decision.js';
5
+ import { Milestone } from './schema/milestone.js';
6
+ import { Backlog } from './schema/backlog.js';
7
+ import { DecisionLog } from './schema/decision-log.js';
8
+ import { PlanProgress } from './schema/plan-progress.js';
9
+ import { PlanActivity } from './schema/plan-activity.js';
10
+ export declare const schema: {
11
+ Spec: import("@refrakt-md/types").Type<Spec>;
12
+ Work: import("@refrakt-md/types").Type<Work>;
13
+ Bug: import("@refrakt-md/types").Type<Bug>;
14
+ Decision: import("@refrakt-md/types").Type<Decision>;
15
+ Milestone: import("@refrakt-md/types").Type<Milestone>;
16
+ Backlog: import("@refrakt-md/types").Type<Backlog>;
17
+ DecisionLog: import("@refrakt-md/types").Type<DecisionLog>;
18
+ PlanProgress: import("@refrakt-md/types").Type<PlanProgress>;
19
+ PlanActivity: import("@refrakt-md/types").Type<PlanActivity>;
20
+ };
21
+ export type PlanRuneType = 'spec' | 'work' | 'bug' | 'decision' | 'milestone';
22
+ export interface Criterion {
23
+ text: string;
24
+ checked: boolean;
25
+ }
26
+ export interface Resolution {
27
+ /** ISO date from "Completed:" line */
28
+ date?: string;
29
+ /** Branch name from "Branch:" line (backticks stripped) */
30
+ branch?: string;
31
+ /** PR reference from "PR:" line */
32
+ pr?: string;
33
+ /** Full resolution section content (excluding parsed metadata lines) */
34
+ body: string;
35
+ }
36
+ export interface PlanEntity {
37
+ /** File path relative to the scan directory */
38
+ file: string;
39
+ /** Rune type */
40
+ type: PlanRuneType;
41
+ /** All attributes from the rune opening tag (id, status, priority, etc.) */
42
+ attributes: Record<string, string>;
43
+ /** Title extracted from the first H1 heading */
44
+ title: string | undefined;
45
+ /** Acceptance criteria checkboxes */
46
+ criteria: Criterion[];
47
+ /** Referenced entity IDs extracted from {% ref %} / {% xref %} tags */
48
+ refs: string[];
49
+ /** Parsed resolution section, if present */
50
+ resolution?: Resolution;
51
+ /** File modification time (ms since epoch) */
52
+ mtime?: number;
53
+ }
54
+ export interface ScanCacheEntry {
55
+ /** File modification time (ms since epoch) */
56
+ mtime: number;
57
+ /** File size in bytes */
58
+ size: number;
59
+ /** Cached scan result */
60
+ entity: PlanEntity;
61
+ }
62
+ export interface ScanCache {
63
+ [filePath: string]: ScanCacheEntry;
64
+ }
65
+ export interface ScanOptions {
66
+ /** Enable mtime-based caching via .plan-cache.json */
67
+ cache?: boolean;
68
+ }
69
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,eAAO,MAAM,MAAM;;;;;;;;;;CAUlB,CAAC;AAIF,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,UAAU,GAAG,WAAW,CAAC;AAE9E,MAAM,WAAW,SAAS;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IAC1B,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,UAAU;IAC1B,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB;IAChB,IAAI,EAAE,YAAY,CAAC;IACnB,4EAA4E;IAC5E,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,gDAAgD;IAChD,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,qCAAqC;IACrC,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,uEAAuE;IACvE,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,4CAA4C;IAC5C,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC9B,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,MAAM,EAAE,UAAU,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACzB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAAC;CACnC;AAED,MAAM,WAAW,WAAW;IAC3B,sDAAsD;IACtD,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB"}