perttool 0.1.0-alpha.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 (176) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/LICENSE +21 -0
  3. package/README.md +134 -0
  4. package/dist/analysis/graph.d.ts +41 -0
  5. package/dist/analysis/graph.d.ts.map +1 -0
  6. package/dist/analysis/graph.js +199 -0
  7. package/dist/analysis/graph.js.map +1 -0
  8. package/dist/analysis/precedence.d.ts +52 -0
  9. package/dist/analysis/precedence.d.ts.map +1 -0
  10. package/dist/analysis/precedence.js +187 -0
  11. package/dist/analysis/precedence.js.map +1 -0
  12. package/dist/analysis/resource.d.ts +96 -0
  13. package/dist/analysis/resource.d.ts.map +1 -0
  14. package/dist/analysis/resource.js +522 -0
  15. package/dist/analysis/resource.js.map +1 -0
  16. package/dist/application/analyze.d.ts +32 -0
  17. package/dist/application/analyze.d.ts.map +1 -0
  18. package/dist/application/analyze.js +144 -0
  19. package/dist/application/analyze.js.map +1 -0
  20. package/dist/application/check.d.ts +24 -0
  21. package/dist/application/check.d.ts.map +1 -0
  22. package/dist/application/check.js +43 -0
  23. package/dist/application/check.js.map +1 -0
  24. package/dist/application/format.d.ts +21 -0
  25. package/dist/application/format.d.ts.map +1 -0
  26. package/dist/application/format.js +52 -0
  27. package/dist/application/format.js.map +1 -0
  28. package/dist/application/mutate.d.ts +4 -0
  29. package/dist/application/mutate.d.ts.map +1 -0
  30. package/dist/application/mutate.js +175 -0
  31. package/dist/application/mutate.js.map +1 -0
  32. package/dist/application/next.d.ts +86 -0
  33. package/dist/application/next.d.ts.map +1 -0
  34. package/dist/application/next.js +310 -0
  35. package/dist/application/next.js.map +1 -0
  36. package/dist/cli.d.ts +3 -0
  37. package/dist/cli.d.ts.map +1 -0
  38. package/dist/cli.js +2103 -0
  39. package/dist/cli.js.map +1 -0
  40. package/dist/conversion/mermaid-import.d.ts +26 -0
  41. package/dist/conversion/mermaid-import.d.ts.map +1 -0
  42. package/dist/conversion/mermaid-import.js +655 -0
  43. package/dist/conversion/mermaid-import.js.map +1 -0
  44. package/dist/conversion/mermaid.d.ts +38 -0
  45. package/dist/conversion/mermaid.d.ts.map +1 -0
  46. package/dist/conversion/mermaid.js +362 -0
  47. package/dist/conversion/mermaid.js.map +1 -0
  48. package/dist/editing/unified-diff.d.ts +7 -0
  49. package/dist/editing/unified-diff.d.ts.map +1 -0
  50. package/dist/editing/unified-diff.js +81 -0
  51. package/dist/editing/unified-diff.js.map +1 -0
  52. package/dist/formatter/source-formatter.d.ts +17 -0
  53. package/dist/formatter/source-formatter.d.ts.map +1 -0
  54. package/dist/formatter/source-formatter.js +210 -0
  55. package/dist/formatter/source-formatter.js.map +1 -0
  56. package/dist/help/registry.d.ts +37 -0
  57. package/dist/help/registry.d.ts.map +1 -0
  58. package/dist/help/registry.js +657 -0
  59. package/dist/help/registry.js.map +1 -0
  60. package/dist/index.d.ts +44 -0
  61. package/dist/index.d.ts.map +1 -0
  62. package/dist/index.js +23 -0
  63. package/dist/index.js.map +1 -0
  64. package/dist/io/document-file.d.ts +9 -0
  65. package/dist/io/document-file.d.ts.map +1 -0
  66. package/dist/io/document-file.js +19 -0
  67. package/dist/io/document-file.js.map +1 -0
  68. package/dist/io/safe-write.d.ts +33 -0
  69. package/dist/io/safe-write.d.ts.map +1 -0
  70. package/dist/io/safe-write.js +280 -0
  71. package/dist/io/safe-write.js.map +1 -0
  72. package/dist/model/diagnostics.d.ts +43 -0
  73. package/dist/model/diagnostics.d.ts.map +1 -0
  74. package/dist/model/diagnostics.js +47 -0
  75. package/dist/model/diagnostics.js.map +1 -0
  76. package/dist/model/rational.d.ts +21 -0
  77. package/dist/model/rational.d.ts.map +1 -0
  78. package/dist/model/rational.js +84 -0
  79. package/dist/model/rational.js.map +1 -0
  80. package/dist/model/syntax.d.ts +67 -0
  81. package/dist/model/syntax.d.ts.map +1 -0
  82. package/dist/model/syntax.js +15 -0
  83. package/dist/model/syntax.js.map +1 -0
  84. package/dist/model/units.d.ts +18 -0
  85. package/dist/model/units.d.ts.map +1 -0
  86. package/dist/model/units.js +29 -0
  87. package/dist/model/units.js.map +1 -0
  88. package/dist/mutation/advance.d.ts +26 -0
  89. package/dist/mutation/advance.d.ts.map +1 -0
  90. package/dist/mutation/advance.js +261 -0
  91. package/dist/mutation/advance.js.map +1 -0
  92. package/dist/mutation/diagnostics.d.ts +10 -0
  93. package/dist/mutation/diagnostics.d.ts.map +1 -0
  94. package/dist/mutation/diagnostics.js +10 -0
  95. package/dist/mutation/diagnostics.js.map +1 -0
  96. package/dist/mutation/entity-editor.d.ts +16 -0
  97. package/dist/mutation/entity-editor.d.ts.map +1 -0
  98. package/dist/mutation/entity-editor.js +103 -0
  99. package/dist/mutation/entity-editor.js.map +1 -0
  100. package/dist/mutation/milestone.d.ts +5 -0
  101. package/dist/mutation/milestone.d.ts.map +1 -0
  102. package/dist/mutation/milestone.js +194 -0
  103. package/dist/mutation/milestone.js.map +1 -0
  104. package/dist/mutation/resource.d.ts +5 -0
  105. package/dist/mutation/resource.d.ts.map +1 -0
  106. package/dist/mutation/resource.js +145 -0
  107. package/dist/mutation/resource.js.map +1 -0
  108. package/dist/mutation/source.d.ts +22 -0
  109. package/dist/mutation/source.d.ts.map +1 -0
  110. package/dist/mutation/source.js +155 -0
  111. package/dist/mutation/source.js.map +1 -0
  112. package/dist/mutation/task.d.ts +10 -0
  113. package/dist/mutation/task.d.ts.map +1 -0
  114. package/dist/mutation/task.js +644 -0
  115. package/dist/mutation/task.js.map +1 -0
  116. package/dist/mutation/text-edits.d.ts +8 -0
  117. package/dist/mutation/text-edits.d.ts.map +1 -0
  118. package/dist/mutation/text-edits.js +33 -0
  119. package/dist/mutation/text-edits.js.map +1 -0
  120. package/dist/mutation/types.d.ts +153 -0
  121. package/dist/mutation/types.d.ts.map +1 -0
  122. package/dist/mutation/types.js +2 -0
  123. package/dist/mutation/types.js.map +1 -0
  124. package/dist/parser/document-parser.d.ts +6 -0
  125. package/dist/parser/document-parser.d.ts.map +1 -0
  126. package/dist/parser/document-parser.js +735 -0
  127. package/dist/parser/document-parser.js.map +1 -0
  128. package/dist/recommendation/explanation-types.d.ts +226 -0
  129. package/dist/recommendation/explanation-types.d.ts.map +1 -0
  130. package/dist/recommendation/explanation-types.js +2 -0
  131. package/dist/recommendation/explanation-types.js.map +1 -0
  132. package/dist/recommendation/explanation-validation.d.ts +4 -0
  133. package/dist/recommendation/explanation-validation.d.ts.map +1 -0
  134. package/dist/recommendation/explanation-validation.js +745 -0
  135. package/dist/recommendation/explanation-validation.js.map +1 -0
  136. package/dist/recommendation/explanation-values.d.ts +7 -0
  137. package/dist/recommendation/explanation-values.d.ts.map +1 -0
  138. package/dist/recommendation/explanation-values.js +283 -0
  139. package/dist/recommendation/explanation-values.js.map +1 -0
  140. package/dist/recommendation/explanation.d.ts +8 -0
  141. package/dist/recommendation/explanation.d.ts.map +1 -0
  142. package/dist/recommendation/explanation.js +1022 -0
  143. package/dist/recommendation/explanation.js.map +1 -0
  144. package/dist/recommendation/failure.d.ts +3 -0
  145. package/dist/recommendation/failure.d.ts.map +1 -0
  146. package/dist/recommendation/failure.js +4 -0
  147. package/dist/recommendation/failure.js.map +1 -0
  148. package/dist/recommendation/json.d.ts +3 -0
  149. package/dist/recommendation/json.d.ts.map +1 -0
  150. package/dist/recommendation/json.js +252 -0
  151. package/dist/recommendation/json.js.map +1 -0
  152. package/dist/recommendation/override-types.d.ts +117 -0
  153. package/dist/recommendation/override-types.d.ts.map +1 -0
  154. package/dist/recommendation/override-types.js +2 -0
  155. package/dist/recommendation/override-types.js.map +1 -0
  156. package/dist/recommendation/override.d.ts +7 -0
  157. package/dist/recommendation/override.d.ts.map +1 -0
  158. package/dist/recommendation/override.js +717 -0
  159. package/dist/recommendation/override.js.map +1 -0
  160. package/dist/recommendation/ranking.d.ts +7 -0
  161. package/dist/recommendation/ranking.d.ts.map +1 -0
  162. package/dist/recommendation/ranking.js +391 -0
  163. package/dist/recommendation/ranking.js.map +1 -0
  164. package/dist/recommendation/types.d.ts +83 -0
  165. package/dist/recommendation/types.d.ts.map +1 -0
  166. package/dist/recommendation/types.js +2 -0
  167. package/dist/recommendation/types.js.map +1 -0
  168. package/dist/semantic/validator.d.ts +4 -0
  169. package/dist/semantic/validator.d.ts.map +1 -0
  170. package/dist/semantic/validator.js +490 -0
  171. package/dist/semantic/validator.js.map +1 -0
  172. package/dist/version.d.ts +2 -0
  173. package/dist/version.d.ts.map +1 -0
  174. package/dist/version.js +2 -0
  175. package/dist/version.js.map +1 -0
  176. package/package.json +61 -0
@@ -0,0 +1,657 @@
1
+ const nodes = [
2
+ {
3
+ id: "syntax",
4
+ title: "DSL syntax",
5
+ summary: "project、resource、milestone、task、gateを記述するgrammar version 1。",
6
+ quick: [
7
+ {
8
+ id: "declarations",
9
+ title: "Declarations",
10
+ body: "projectを最初に1件置き、続けてresource、milestone、task、gateを記述します。",
11
+ },
12
+ ],
13
+ detail: [
14
+ {
15
+ id: "indentation",
16
+ title: "Indentation",
17
+ body: "fieldは2 spaces、estimate/requiresの子fieldは4 spacesです。Tabは使用できません。",
18
+ },
19
+ ],
20
+ syntax: [
21
+ "project ID:",
22
+ "milestone ID:",
23
+ "task ID FROM -> TO:",
24
+ "gate ID FROM -> TO:",
25
+ "resource ID:",
26
+ ],
27
+ examples: [
28
+ {
29
+ id: "minimal",
30
+ title: "Minimal document",
31
+ text: "docs/examples/minimal.pert",
32
+ },
33
+ ],
34
+ related: [
35
+ "syntax.project",
36
+ "syntax.resource",
37
+ "syntax.milestone",
38
+ "syntax.task",
39
+ "syntax.gate",
40
+ "syntax.estimate",
41
+ "syntax.velocity",
42
+ "analysis",
43
+ "errors",
44
+ ],
45
+ },
46
+ {
47
+ id: "syntax.project",
48
+ title: "Project syntax",
49
+ summary: "文書先頭にexactly one置くproject declarationです。",
50
+ quick: [
51
+ {
52
+ id: "required",
53
+ title: "Required fields",
54
+ body: "title、duration_unit、finishが必須です。Point文書では正のvelocityも必須です。",
55
+ },
56
+ ],
57
+ detail: [
58
+ {
59
+ id: "version",
60
+ title: "Grammar version",
61
+ body: "version省略時は1として扱い、指定する場合もversion 1だけを受理します。",
62
+ },
63
+ ],
64
+ syntax: [
65
+ "project ID:",
66
+ " title \"...\"",
67
+ " duration_unit day|hour|point",
68
+ " finish MILESTONE_ID",
69
+ ],
70
+ examples: [
71
+ { id: "minimal", title: "Minimal project", text: "docs/examples/minimal.pert" },
72
+ ],
73
+ related: ["syntax", "syntax.duration", "syntax.velocity", "syntax.text"],
74
+ },
75
+ {
76
+ id: "syntax.resource",
77
+ title: "Resource syntax",
78
+ summary: "Renewable resourceと同時利用可能な整数capacityを宣言します。",
79
+ quick: [
80
+ {
81
+ id: "capacity",
82
+ title: "Capacity",
83
+ body: "titleと1以上のcapacityが必須です。Taskのrequiresからresource IDを参照します。",
84
+ },
85
+ ],
86
+ detail: [],
87
+ syntax: ["resource ID:", " title \"...\"", " capacity 1"],
88
+ examples: [
89
+ { id: "parallel", title: "Resource declarations", text: "docs/examples/parallel.pert" },
90
+ ],
91
+ related: ["syntax", "syntax.task", "syntax.tags", "syntax.text", "analysis.resources"],
92
+ },
93
+ {
94
+ id: "syntax.milestone",
95
+ title: "Milestone syntax",
96
+ summary: "AoA nodeと現在frontierのreached状態を宣言します。",
97
+ quick: [
98
+ {
99
+ id: "state",
100
+ title: "Milestone state",
101
+ body: "titleが必須です。stateはplannedまたはreachedで、readyは保存せず依存関係から導出します。",
102
+ },
103
+ ],
104
+ detail: [],
105
+ syntax: ["milestone ID:", " title \"...\"", " state reached"],
106
+ examples: [
107
+ { id: "minimal", title: "Reached frontier", text: "docs/examples/minimal.pert" },
108
+ ],
109
+ related: ["syntax", "syntax.task", "syntax.gate", "syntax.tags", "syntax.text"],
110
+ },
111
+ {
112
+ id: "syntax.task",
113
+ title: "Task syntax",
114
+ summary: "Taskはmilestone間を結ぶAoA edgeです。",
115
+ quick: [
116
+ {
117
+ id: "required",
118
+ title: "Required fields",
119
+ body: "titleと、durationまたはestimateのどちらかexactly oneを指定します。",
120
+ },
121
+ ],
122
+ detail: [
123
+ {
124
+ id: "resources",
125
+ title: "Resources",
126
+ body: "requires blockの全resourceを同時取得し、task完了まで保持します。",
127
+ },
128
+ ],
129
+ syntax: ["task ID FROM -> TO:", " title \"...\"", " duration 1d"],
130
+ examples: [
131
+ { id: "minimal", title: "Deterministic task", text: "docs/examples/minimal.pert" },
132
+ ],
133
+ related: [
134
+ "syntax",
135
+ "syntax.duration",
136
+ "syntax.estimate",
137
+ "syntax.resource",
138
+ "syntax.text",
139
+ "syntax.tags",
140
+ "analysis.resources",
141
+ ],
142
+ },
143
+ {
144
+ id: "syntax.gate",
145
+ title: "Gate syntax",
146
+ summary: "所要時間0のdependency edgeとしてmilestone間を接続します。",
147
+ quick: [
148
+ {
149
+ id: "reason",
150
+ title: "Reason",
151
+ body: "reasonが必須です。Gateはresourceを要求せず、task durationも持ちません。",
152
+ },
153
+ ],
154
+ detail: [],
155
+ syntax: ["gate ID FROM -> TO:", " reason \"...\""],
156
+ examples: [
157
+ {
158
+ id: "point-velocity",
159
+ title: "Dependency gates",
160
+ text: "docs/examples/point-velocity.pert",
161
+ },
162
+ ],
163
+ related: ["syntax", "syntax.milestone", "syntax.text"],
164
+ },
165
+ {
166
+ id: "syntax.estimate",
167
+ title: "PERT estimate syntax",
168
+ summary: "optimistic、most_likely、pessimisticの三点見積りを記述します。",
169
+ quick: [
170
+ {
171
+ id: "order",
172
+ title: "Ordering constraint",
173
+ body: "optimistic <= most_likely <= pessimistic、かつpessimistic > 0が必要です。",
174
+ },
175
+ ],
176
+ detail: [
177
+ {
178
+ id: "unit",
179
+ title: "Duration unit",
180
+ body: "3値は同じsuffixを使い、project duration_unit(day/hour/point)と一致させます。",
181
+ },
182
+ ],
183
+ syntax: [
184
+ " estimate:",
185
+ " optimistic 1d",
186
+ " most_likely 2d",
187
+ " pessimistic 4d",
188
+ ],
189
+ examples: [
190
+ {
191
+ id: "pert-estimate",
192
+ title: "Three-point estimate",
193
+ text: "docs/examples/pert-estimate.pert",
194
+ },
195
+ ],
196
+ related: ["syntax.duration", "analysis"],
197
+ },
198
+ {
199
+ id: "syntax.duration",
200
+ title: "Duration syntax",
201
+ summary: "Finite decimalにproject unit suffix d、h、pのいずれかを付けます。",
202
+ quick: [],
203
+ detail: [],
204
+ syntax: ["1d", "2.5h", "3p", "0d"],
205
+ examples: [],
206
+ related: ["syntax.estimate", "syntax.velocity", "analysis"],
207
+ },
208
+ {
209
+ id: "syntax.velocity",
210
+ title: "Velocity syntax",
211
+ summary: "Pointとday/hourを相互換算するproject-wide velocityを記述します。",
212
+ quick: [
213
+ {
214
+ id: "forecast",
215
+ title: "Velocity forecast",
216
+ body: "duration_unit pointではvelocityが必須です。PERT値はpのまま計算し、換算値をvelocity forecastとして別に返します。",
217
+ },
218
+ ],
219
+ detail: [
220
+ {
221
+ id: "units",
222
+ title: "Units",
223
+ body: "20p/10dまたは20p/80hの形式です。dayとhourの関係は暗黙に推測しません。",
224
+ },
225
+ {
226
+ id: "scope",
227
+ title: "MVP scope",
228
+ body: "velocityはproject全体で一定です。team別、resource別、期間別velocityはMVP対象外です。",
229
+ },
230
+ ],
231
+ syntax: [
232
+ "project ID:",
233
+ " duration_unit point",
234
+ " velocity 20p/10d",
235
+ ],
236
+ examples: [
237
+ {
238
+ id: "point-velocity",
239
+ title: "Point estimate and velocity forecast",
240
+ text: "docs/examples/point-velocity.pert",
241
+ },
242
+ ],
243
+ related: ["syntax.duration", "syntax.estimate", "analysis"],
244
+ },
245
+ {
246
+ id: "syntax.indentation",
247
+ title: "Indentation",
248
+ summary: "Structural indentationはASCII spacesだけを使用します。",
249
+ quick: [],
250
+ detail: [],
251
+ syntax: ["field: 2 spaces", "nested field: 4 spaces"],
252
+ examples: [],
253
+ related: ["syntax"],
254
+ },
255
+ {
256
+ id: "syntax.string",
257
+ title: "String syntax",
258
+ summary: "JSON string literalと同じdouble-quoted textを使用します。",
259
+ quick: [],
260
+ detail: [
261
+ {
262
+ id: "unicode",
263
+ title: "Unicode and escapes",
264
+ body: "Unicodeは直接記述でき、escapeはJSON形式を使用します。Unpaired surrogateは受理しません。",
265
+ },
266
+ ],
267
+ syntax: ["\"text\"", "\"\\u65e5\\u672c\""],
268
+ examples: [],
269
+ related: ["syntax", "syntax.text", "syntax.tags"],
270
+ },
271
+ {
272
+ id: "syntax.text",
273
+ title: "Text field syntax",
274
+ summary: "description、blocked_reason、reasonはStringまたはblock textを取ります。",
275
+ quick: [],
276
+ detail: [
277
+ {
278
+ id: "block",
279
+ title: "Block text",
280
+ body: "nonblank contentのcommon indentを除去し、paragraph blankと残りのindentを保持します。",
281
+ },
282
+ ],
283
+ syntax: [" description \"...\"", " description |", " first line"],
284
+ examples: [],
285
+ related: ["syntax", "syntax.string", "syntax.comments"],
286
+ },
287
+ {
288
+ id: "syntax.tags",
289
+ title: "Tag list syntax",
290
+ summary: "Bare IdentifierまたはStringを角括弧内へcomma区切りで記述します。",
291
+ quick: [],
292
+ detail: [],
293
+ syntax: [" tags [alpha, \"two words\"]", " tags []"],
294
+ examples: [],
295
+ related: ["syntax", "syntax.string"],
296
+ },
297
+ {
298
+ id: "syntax.comments",
299
+ title: "Comment syntax",
300
+ summary: "独立行の#以降をCST triviaとして保持します。",
301
+ quick: [
302
+ {
303
+ id: "standalone",
304
+ title: "Standalone only",
305
+ body: "grammar version 1ではinline commentを許可しません。Stringとblock text内の#はcontentです。",
306
+ },
307
+ ],
308
+ detail: [],
309
+ syntax: ["# top-level comment", " # field comment"],
310
+ examples: [],
311
+ related: ["syntax", "syntax.text"],
312
+ },
313
+ {
314
+ id: "syntax.top-level",
315
+ title: "Top-level declaration syntax",
316
+ summary: "Projectを文書先頭に置き、各declarationをcolumn 0から開始します。",
317
+ quick: [],
318
+ detail: [],
319
+ syntax: [
320
+ "project ID:",
321
+ "resource ID:",
322
+ "milestone ID:",
323
+ "task ID FROM -> TO:",
324
+ "gate ID FROM -> TO:",
325
+ ],
326
+ examples: [
327
+ { id: "minimal", title: "Top-level declarations", text: "docs/examples/minimal.pert" },
328
+ ],
329
+ related: ["syntax", "syntax.project", "syntax.indentation"],
330
+ },
331
+ {
332
+ id: "analysis",
333
+ title: "Analysis",
334
+ summary: "PERT/CPM precedence resultとresource scheduleを分離して返します。",
335
+ quick: [
336
+ {
337
+ id: "results",
338
+ title: "Separated results",
339
+ body: "precedence makespanはresourceを無視した下限、resource makespanはcapacityを守る決定的heuristic resultです。",
340
+ },
341
+ ],
342
+ detail: [
343
+ {
344
+ id: "exact",
345
+ title: "Exact arithmetic",
346
+ body: "expected、variance、float、makespanはexact Rationalで計算し、displayだけを--precisionで丸めます。Point文書ではvelocity forecastもexact換算します。",
347
+ },
348
+ {
349
+ id: "paths",
350
+ title: "Critical paths",
351
+ body: "near-critical subgraphとexact driving pathを区別し、path countは列挙上限と独立に返します。",
352
+ },
353
+ ],
354
+ syntax: [
355
+ "perttool dag analyze FILE [--schedule precedence|resource|both]",
356
+ " [--capacity RESOURCE=COUNT]... [--max-paths 0..1000] [--precision 0..9]",
357
+ ],
358
+ examples: [
359
+ {
360
+ id: "parallel-analysis",
361
+ title: "Precedence and resource schedule",
362
+ text: "perttool dag analyze docs/examples/parallel.pert",
363
+ },
364
+ ],
365
+ related: ["analysis.resources", "next"],
366
+ },
367
+ {
368
+ id: "analysis.resources",
369
+ title: "Resource analysis",
370
+ summary: "Renewable capacityを守る決定的heuristic scheduleです。",
371
+ quick: [
372
+ {
373
+ id: "capacity",
374
+ title: "Capacity override",
375
+ body: "--capacityはwhat-if入力であり、source documentを書き換えません。",
376
+ },
377
+ ],
378
+ detail: [
379
+ {
380
+ id: "algorithm",
381
+ title: "parallel-sgs v1",
382
+ body: "priority、precedence float、expected duration、task IDの順でcandidateをscanします。optimal=falseです。",
383
+ },
384
+ {
385
+ id: "witness",
386
+ title: "Resource witness",
387
+ body: "resource待ちはrelease taskから開始taskへのanalysis-only resource arcで説明し、正本DAGへ保存しません。",
388
+ },
389
+ ],
390
+ syntax: [
391
+ "perttool dag analyze FILE --capacity RESOURCE=COUNT",
392
+ "perttool dag analyze FILE --schedule resource --format json",
393
+ ],
394
+ examples: [
395
+ {
396
+ id: "parallel-capacity",
397
+ title: "Capacity what-if",
398
+ text: "perttool dag analyze docs/examples/parallel.pert --capacity DEVELOPERS=3",
399
+ },
400
+ ],
401
+ related: ["analysis", "next"],
402
+ },
403
+ {
404
+ id: "next",
405
+ title: "Next tasks",
406
+ summary: "NextResult.v3で工程上の推奨taskと、active、ready、runnable_now、blocked_now、upcomingを返します。",
407
+ quick: [
408
+ {
409
+ id: "classification",
410
+ title: "Task classification",
411
+ body: "readyは依存関係上開始可能なplanned task、runnable_nowは現在のactive allocationを差し引いて同時開始できるreadyの部分集合です。",
412
+ },
413
+ {
414
+ id: "recommendation",
415
+ title: "Recommendation authority",
416
+ body: "recommendationはready taskをrecommended、allowed、deferred、discouragedへ分類します。recommended setは同時開始可能ですがheuristicであり、optimal=falseです。",
417
+ },
418
+ ],
419
+ detail: [
420
+ {
421
+ id: "consumer-safety",
422
+ title: "Machine-readable explanation",
423
+ body: "--format jsonはcompleteなPerttool.NextResult.v3説明graphを返します。Consumerはschema_versionと各model versionを先に検査し、未知のdecisive semanticsではtaskを自動開始しません。Textはcomplete=falseのsummaryです。",
424
+ },
425
+ {
426
+ id: "authority-adoption",
427
+ title: "AI task selection authority",
428
+ body: "AIは--format jsonのknown Perttool.NextResult.v3、recommendation interface 1、ranking algorithm 1、reason taxonomy 1.0、explanation/expression/description model 1、locale en、completeかつnot-truncatedなtraceだけをnormal start authorityとして使用します。Macroのrecommended work packageを選んでから対応detailを再解析し、recommended subset、またはrecommended set全件にallowedを1件だけ追加した集合を選びます。Unknown version、incomplete trace、PTREC diagnostic、deferred/discouraged selectionでは開始せず停止します。Task stateまたはcapacity変更後は再解析します。",
429
+ },
430
+ {
431
+ id: "selection",
432
+ title: "Resource selection",
433
+ body: "runnable_nowは既存scheduler順で選ぶoperational subset、recommendationはversion付きranking policyで選ぶauthorityであり、同じ集合とは限りません。CLI rendererはrankingを再実装しません。",
434
+ },
435
+ {
436
+ id: "override-validation",
437
+ title: "Human override validation",
438
+ body: "Public CoreのvalidateOverrideはcompleteなNextResult.v3と明示requestからPerttool.OverrideDecision.v1を決定的に生成します。これはread-only validationであり、task state、file、Git、networkを変更しません。reason_textとevidenceへsecret、credential、tokenを含めないでください。Override applyとaudit writeのCLIは未実装です。",
439
+ },
440
+ {
441
+ id: "explanation",
442
+ title: "Upcoming explanation",
443
+ body: "upcomingは未到達の開始milestoneとunsatisfied incoming edgeを返します。--explain-depthは0..32、default 1です。",
444
+ },
445
+ ],
446
+ syntax: [
447
+ "perttool dag next FILE [--capacity RESOURCE=COUNT]...",
448
+ " [--explain-depth 0..32] [--precision 0..9] [--format text|json]",
449
+ ],
450
+ examples: [
451
+ {
452
+ id: "parallel-next",
453
+ title: "Complete recommendation graph",
454
+ text: "perttool dag next docs/examples/parallel.pert --format json",
455
+ },
456
+ ],
457
+ related: ["analysis", "analysis.resources"],
458
+ },
459
+ {
460
+ id: "editing",
461
+ title: "Safe editing",
462
+ summary: "dsl format、task/milestone/resource mutation、atomic batch、dag advanceをpreviewし、検査済み候補を安全にwriteできます。",
463
+ quick: [
464
+ {
465
+ id: "current-surface",
466
+ title: "Current surface",
467
+ body: "dsl formatはplanFormat、Entity commandとmutation applyはplanMutation、dag advanceはplanAdvanceの再検査済みcandidate、UTF-16 TextEdit、digest、diffをtext/JSONへ投影します。既定はfileを変更しないpreviewです。",
468
+ },
469
+ ],
470
+ detail: [
471
+ {
472
+ id: "write-gate",
473
+ title: "Safe write",
474
+ body: "--writeは初回read digestとwrite直前digestを照合してatomic replaceし、--expect-digestでcaller lockを追加できます。--outは既存targetを上書きせず新規作成します。--diffはpreview専用です。",
475
+ },
476
+ ],
477
+ syntax: [
478
+ "perttool dsl format FILE [--check] [--diff] [--write [--expect-digest DIGEST] | --out PATH]",
479
+ "perttool task add|set|remove|finish ... [--write [--expect-digest DIGEST] | --out PATH]",
480
+ "perttool milestone add|set|remove ... [--write [--expect-digest DIGEST] | --out PATH]",
481
+ "perttool resource add|set|remove ... [--write [--expect-digest DIGEST] | --out PATH]",
482
+ "perttool mutation apply FILE --request REQUEST.json [--write [--expect-digest DIGEST] | --out PATH]",
483
+ "perttool dag advance FILE [--diff] [--write [--expect-digest DIGEST] | --out PATH]",
484
+ ],
485
+ examples: [
486
+ {
487
+ id: "task-preview",
488
+ title: "Preview a task update",
489
+ text: "perttool task set plan.pert TASK_ID --status active --diff",
490
+ },
491
+ {
492
+ id: "task-write",
493
+ title: "Commit a reviewed task update",
494
+ text: "perttool task set plan.pert TASK_ID --status active --write --expect-digest sha256:<64 lowercase hex digits>",
495
+ },
496
+ ],
497
+ related: ["workflows"],
498
+ },
499
+ {
500
+ id: "mermaid",
501
+ title: "Mermaid conversion",
502
+ summary: "dag renderとdag importでlossless Mermaid profileを往復でき、plain importの損失を明示できます。",
503
+ quick: [
504
+ {
505
+ id: "authority",
506
+ title: "Profile authority",
507
+ body: "%% perttool: semantic recordが正規化DSL意味モデルの復元正本で、flowchart node/edgeは人間向けprojectionです。",
508
+ },
509
+ ],
510
+ detail: [
511
+ {
512
+ id: "fidelity",
513
+ title: "Lossless boundary",
514
+ body: "losslessはgrammar v1の正規化意味同値です。comment、blank line、field/declaration順、escape spelling、line endingのbyte同一性は対象外です。",
515
+ },
516
+ {
517
+ id: "integrity",
518
+ title: "Fail-closed validation",
519
+ body: "canonical JSON record、record count、metadata/projection SHA-256、node/edge対応を検査します。Profile header検出後の破損をplain importへ黙って降格しません。",
520
+ },
521
+ {
522
+ id: "availability",
523
+ title: "Current availability",
524
+ body: "exportMermaid/importMermaid Coreとdag render/importは利用できます。perttool profileは復元用semantic metadataをfail-closed検査し、plain import/exportはstable PTCNV lossを返します。SVG、JSON targetは後続sliceです。",
525
+ },
526
+ ],
527
+ syntax: [
528
+ "perttool dag render <file> --to mermaid",
529
+ " [--profile perttool|plain] [--analysis none|precedence|resource|both]",
530
+ " [--capacity <resource-id>=<integer>]... [--strict-loss] [--out <path>]",
531
+ " [--max-diagnostics <integer>] [--warnings-as-errors] [--format text|json]",
532
+ "perttool dag import <file> --from mermaid",
533
+ " [--strict-loss] [--out <path>] [--max-diagnostics <integer>]",
534
+ " [--warnings-as-errors] [--format text|json]",
535
+ ],
536
+ examples: [
537
+ {
538
+ id: "mermaid-profile",
539
+ title: "Normative profile",
540
+ text: "docs/examples/mermaid-profile.md",
541
+ },
542
+ ],
543
+ related: ["syntax", "analysis"],
544
+ },
545
+ {
546
+ id: "workflows",
547
+ title: "Workflows",
548
+ summary: "check、analyze、next、preview、Git commitの順で運用します。",
549
+ quick: [],
550
+ detail: [],
551
+ syntax: [],
552
+ examples: [],
553
+ related: ["editing", "analysis", "next"],
554
+ },
555
+ {
556
+ id: "errors",
557
+ title: "Diagnostics",
558
+ summary: "Stable code、source span、局所help topicで問題を報告します。",
559
+ quick: [
560
+ {
561
+ id: "recovery",
562
+ title: "Error recovery",
563
+ body: "独立した構文errorは可能な範囲で複数返し、同じinvalid blockの子行は1 error regionとして抑制します。",
564
+ },
565
+ ],
566
+ detail: [
567
+ {
568
+ id: "phases",
569
+ title: "Phase suppression",
570
+ body: "parse errorがある文書ではfield/graph validationを実行せず、原因を直す前の派生PTSEM/PTDAG diagnosticを返しません。",
571
+ },
572
+ {
573
+ id: "limit",
574
+ title: "Diagnostic limit",
575
+ body: "--max-diagnosticsは1..1000、default 100です。上限超過はdiagnostics_truncatedで確認できます。",
576
+ },
577
+ ],
578
+ syntax: [
579
+ "perttool dsl check FILE --max-diagnostics 20 --format json",
580
+ "perttool dag analyze FILE --max-diagnostics 20 --format json",
581
+ "perttool dag next FILE --max-diagnostics 20 --format json",
582
+ ],
583
+ examples: [],
584
+ related: ["syntax"],
585
+ },
586
+ {
587
+ id: "samples",
588
+ title: "Samples",
589
+ summary: "Repositoryの規範sample IDを案内します。",
590
+ quick: [],
591
+ detail: [],
592
+ syntax: [],
593
+ examples: [
594
+ { id: "minimal", title: "Minimal", text: "docs/examples/minimal.pert" },
595
+ { id: "point-velocity", title: "Point and velocity", text: "docs/examples/point-velocity.pert" },
596
+ { id: "parallel", title: "Resources", text: "docs/examples/parallel.pert" },
597
+ ],
598
+ related: ["syntax", "analysis"],
599
+ },
600
+ ];
601
+ const byId = new Map(nodes.map((node) => [node.id, node]));
602
+ export function getHelp(topicId, level) {
603
+ if (topicId === null) {
604
+ return {
605
+ ok: true,
606
+ topicId: null,
607
+ level: "index",
608
+ title: "perttool DSL help",
609
+ summary: "利用するtopicを選択してください。",
610
+ sections: [],
611
+ syntax: [],
612
+ examples: [],
613
+ related: [],
614
+ topics: nodes
615
+ .filter((node) => !node.id.includes("."))
616
+ .map(({ id, title, summary }) => ({ id, title, summary })),
617
+ diagnostics: [],
618
+ };
619
+ }
620
+ const node = byId.get(topicId);
621
+ if (node === undefined) {
622
+ return {
623
+ ok: false,
624
+ topicId,
625
+ level,
626
+ title: "Unknown help topic",
627
+ summary: "指定されたhelp topicは存在しません。",
628
+ sections: [],
629
+ syntax: [],
630
+ examples: [],
631
+ related: [],
632
+ topics: [],
633
+ diagnostics: [
634
+ {
635
+ code: "PTHLP-001",
636
+ severity: "error",
637
+ message: `unknown help topic: ${topicId}`,
638
+ helpTopic: "syntax",
639
+ },
640
+ ],
641
+ };
642
+ }
643
+ return {
644
+ ok: true,
645
+ topicId: node.id,
646
+ level,
647
+ title: node.title,
648
+ summary: node.summary,
649
+ sections: level === "index" ? [] : level === "quick" ? node.quick : [...node.quick, ...node.detail],
650
+ syntax: level === "index" ? [] : node.syntax,
651
+ examples: level === "detail" ? node.examples : [],
652
+ related: level === "index" ? [] : node.related,
653
+ topics: [],
654
+ diagnostics: [],
655
+ };
656
+ }
657
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/help/registry.ts"],"names":[],"mappings":"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"}