perttool 0.1.0-alpha.2 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/CHANGELOG.md +18 -1
  2. package/README.md +23 -7
  3. package/dist/application/agent-help.d.ts +3 -0
  4. package/dist/application/agent-help.d.ts.map +1 -0
  5. package/dist/application/agent-help.js +5 -0
  6. package/dist/application/agent-help.js.map +1 -0
  7. package/dist/application/mutate.d.ts.map +1 -1
  8. package/dist/application/mutate.js +16 -7
  9. package/dist/application/mutate.js.map +1 -1
  10. package/dist/application/project.d.ts +25 -0
  11. package/dist/application/project.d.ts.map +1 -0
  12. package/dist/application/project.js +54 -0
  13. package/dist/application/project.js.map +1 -0
  14. package/dist/cli.js +223 -8
  15. package/dist/cli.js.map +1 -1
  16. package/dist/guidance/profile.d.ts +6 -0
  17. package/dist/guidance/profile.d.ts.map +1 -0
  18. package/dist/guidance/profile.js +1158 -0
  19. package/dist/guidance/profile.js.map +1 -0
  20. package/dist/guidance/projection.d.ts +16 -0
  21. package/dist/guidance/projection.d.ts.map +1 -0
  22. package/dist/guidance/projection.js +276 -0
  23. package/dist/guidance/projection.js.map +1 -0
  24. package/dist/guidance/query.d.ts +4 -0
  25. package/dist/guidance/query.d.ts.map +1 -0
  26. package/dist/guidance/query.js +178 -0
  27. package/dist/guidance/query.js.map +1 -0
  28. package/dist/guidance/text.d.ts +4 -0
  29. package/dist/guidance/text.d.ts.map +1 -0
  30. package/dist/guidance/text.js +118 -0
  31. package/dist/guidance/text.js.map +1 -0
  32. package/dist/guidance/types.d.ts +227 -0
  33. package/dist/guidance/types.d.ts.map +1 -0
  34. package/dist/guidance/types.js +54 -0
  35. package/dist/guidance/types.js.map +1 -0
  36. package/dist/guidance/validator.d.ts +8 -0
  37. package/dist/guidance/validator.d.ts.map +1 -0
  38. package/dist/guidance/validator.js +383 -0
  39. package/dist/guidance/validator.js.map +1 -0
  40. package/dist/help/registry.d.ts +6 -0
  41. package/dist/help/registry.d.ts.map +1 -1
  42. package/dist/help/registry.js +21 -1
  43. package/dist/help/registry.js.map +1 -1
  44. package/dist/index.d.ts +12 -2
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +9 -1
  47. package/dist/index.js.map +1 -1
  48. package/dist/mutation/project.d.ts +5 -0
  49. package/dist/mutation/project.d.ts.map +1 -0
  50. package/dist/mutation/project.js +148 -0
  51. package/dist/mutation/project.js.map +1 -0
  52. package/dist/mutation/types.d.ts +21 -1
  53. package/dist/mutation/types.d.ts.map +1 -1
  54. package/dist/version.d.ts +1 -1
  55. package/dist/version.d.ts.map +1 -1
  56. package/dist/version.js +1 -1
  57. package/dist/version.js.map +1 -1
  58. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -4,6 +4,22 @@
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.1.0] - 2026-07-23
8
+
9
+ First beta release. This suffix-free `0.x.x` series remains prerelease product maturity, permits intentional alpha incompatibility, and publishes through the npm `beta` dist-tag without moving `latest`.
10
+
11
+ ### Added
12
+
13
+ - Codex、GitHub Copilot、Claude Code、Grok Build、Antigravityのoffline profileを同じCoreからindex/quick/detailのtext/JSONへ公開するread-only `agent help`
14
+ - velocityを含むproject metadata一式をtext/JSONで取得する`project show`と、preview-firstで局所更新する`project set`、atomic batch用`project.set`
15
+ - 最初のbeta後の独立backlogとして、LSP server、コードハイライト/LSP clientを持つVSIX、MCP serverを明文化
16
+
17
+ ### Changed
18
+
19
+ - 最初のbetaをsuffixなし`0.1.0`、以後の`0.x.x`をbetaと定義し、alphaからのstrict compatibilityと追加soakをbeta gateから外した
20
+ - Issue #2のread-only AI Agent Guidance Registryをbeta受け入れ条件とmacro/detail計画へ追加した
21
+ - Adopted English as the canonical repository language without i18n and added a phased, post-beta migration plan for legacy Japanese surfaces
22
+
7
23
  ## [0.1.0-alpha.2] - 2026-07-23
8
24
 
9
25
  2回目の公開開発プレビュー。安全な編集・進行操作、Mermaid相互変換、説明可能なtask recommendationを追加し、同じartifactをGitHub Releaseとnpmの`alpha` tagへ配布する。
@@ -48,6 +64,7 @@
48
64
  - npm registryには未公開。GitHub Release assetを使用する
49
65
  - Node.js 24以上が必要
50
66
 
51
- [Unreleased]: https://github.com/mako10k/perttool/compare/v0.1.0-alpha.2...HEAD
67
+ [Unreleased]: https://github.com/mako10k/perttool/compare/v0.1.0...HEAD
68
+ [0.1.0]: https://github.com/mako10k/perttool/compare/v0.1.0-alpha.2...v0.1.0
52
69
  [0.1.0-alpha.2]: https://github.com/mako10k/perttool/compare/v0.1.0-alpha.1...v0.1.0-alpha.2
53
70
  [0.1.0-alpha.1]: https://github.com/mako10k/perttool/releases/tag/v0.1.0-alpha.1
package/README.md CHANGED
@@ -2,7 +2,9 @@
2
2
 
3
3
  PERT 線図を、Git 管理しやすい文書として記述・検査・分析するためのタスク管理CLI。
4
4
 
5
- `v0.1.0-alpha.2`は公開開発プレビューです。`dsl check`、`dsl format`、`dsl help`、`dag analyze`、`dag next`、`dag advance`、`dag render --to mermaid`、`dag import --from mermaid`、source-preservingなtask/milestone/resource/batch mutation、atomic `--write`、exclusive `--out`、`--expect-digest`を実装済みです。`dag next`はcompleteなrecommendation graphを持つ`Perttool.NextResult.v3`を返し、public Core型とCLI JSON/text/helpを同じ判断へ接続します。Node.js 24以上が必要で、pre-release中は互換性のない変更が入る可能性があります。
5
+ 現在のcheckoutでは、`dsl check`、`dsl format`、`dsl help`、read-only `agent help`、`project show`、`project set`、`dag analyze`、`dag next`、`dag advance`、`dag render --to mermaid`、`dag import --from mermaid`、source-preservingなproject/task/milestone/resource/batch mutation、atomic `--write`、exclusive `--out`、`--expect-digest`を実装済みです。`project show`はvelocityを含むproject metadata一式、`dag next`はcompleteなrecommendation graphを持つ`Perttool.NextResult.v3`、`agent help`は5 providerのoffline profileをindex/quick/detailのtext/JSONで返します。いずれもpublic Core型とCLIを同じ判断へ接続します。Node.js 24以上が必要で、pre-release中は互換性のない変更が入る可能性があります。
6
+
7
+ `0.1.0` is the first beta release. Suffix-free `0.x.x` versions are the beta series, and strict compatibility with the alpha series is not guaranteed. This release includes the read-only AI Agent Guidance Registry from Issue #2.
6
8
 
7
9
  - [要件定義](docs/requirements.md)
8
10
  - [基本設計](docs/basic-design.md)
@@ -18,20 +20,27 @@ PERT 線図を、Git 管理しやすい文書として記述・検査・分析
18
20
  - [Recommendation Interface Contract 仕様](docs/specs/recommendation-interface.md)
19
21
  - [Recommendation Human Override Contract 仕様](docs/specs/recommendation-override.md)
20
22
  - [Recommendation 規範例](docs/examples/recommendation.md)
23
+ - [AI Agent Guidance Registry 仕様](docs/specs/agent-guidance.md)
24
+ - [AI Agent Guidance Registry 規範例](docs/examples/agent-guidance.md)
21
25
  - [Mermaid Profile 規範例](docs/examples/mermaid-profile.md)
22
26
  - [Recommendation 実装・自己利用migration](docs/process/recommendation-migration.md)
23
27
  - [NextResult.v3 consumer migration guide](docs/process/next-v3-consumer-migration.md)
24
28
  - [Recommendation 設計受け入れレビュー](docs/process/recommendation-design-review.md)
25
29
  - [MVP release readiness監査](docs/process/mvp-release-readiness.md)
30
+ - [Beta versioning ADR](docs/adr/0003-beta-versioning.md)
31
+ - [Beta release手順](docs/process/beta-release.md)
32
+ - [English repository baseline ADR](docs/adr/0004-english-repository-baseline.md)
26
33
  - [CLI Interface 仕様](docs/specs/interfaces.md)
27
34
  - [Architecture Decision Records](docs/adr/0001-activity-on-arrow.md)
28
35
  - [DSL サンプル](docs/examples/README.md)
29
36
  - [自己利用計画](docs/process/self-use.md)
30
- - [MVPマイルストーン計画](plans/mvp.pert)
37
+ - [MVPからbetaへのmacro計画](plans/mvp.pert)
31
38
  - [現在の文法作業計画](plans/grammar.pert)
32
39
  - [AI工程制御設計計画](plans/control-plane.pert)
33
40
  - [操作系M1-M4実装計画](plans/operations.pert)
34
41
  - [Recommendation実装計画](plans/recommendation.pert)
42
+ - [AI Agent Guidance実装計画](plans/agent-guidance.pert)
43
+ - [English baseline migration plan](plans/english-baseline.pert)
35
44
  - [AI 開発ガイド](docs/process/ai-development.md)
36
45
 
37
46
  基本方針は次のとおりです。
@@ -42,16 +51,16 @@ PERT 線図を、Git 管理しやすい文書として記述・検査・分析
42
51
  - 相対見積り`p`を基準に保持し、明示したproject-wide velocityで`d`または`h`の予測へexact換算する
43
52
  - 共有resourceのcapacityから排他実行と並列実行可能数を扱う
44
53
  - Mermaid との相互変換、CLI、構造化ヘルプ、AI向けJSON操作導線を同じ共通コア上に提供する
45
- - MVPはCLIをprimary interfaceとし、MCP/LSP adapterはMVP後に追加する
54
+ - MVPはCLIをprimary interfaceとし、LSP server、コードハイライト/LSP clientを持つVSIX、MCP serverは最初のbeta後の独立backlogとして追加する
46
55
  - 現行文書は現在と未来を表し、過去は Git 履歴で追跡する
47
56
  - parser・check・analyze・next が安定した時点で、文法作業の計画から自己利用を開始する
48
57
 
49
58
  ## Install
50
59
 
51
- 公開開発プレビューはnpm registryの`alpha` dist-tagとGitHub prereleaseから導入できます。Maintainer向けの安全境界は[npm publication手順](docs/process/npm-publication.md)を参照してください。
60
+ Install the current beta from the npm `beta` dist-tag. Maintainers must follow the [beta release procedure](docs/process/beta-release.md) and publish the exact release tarball without moving `latest`.
52
61
 
53
62
  ```sh
54
- npm install --global perttool@alpha
63
+ npm install --global perttool@beta
55
64
  perttool --version
56
65
  ```
57
66
 
@@ -93,6 +102,11 @@ perttool dsl format PLAN.pert --diff
93
102
  perttool dsl format PLAN.pert --write --expect-digest "$EXPECTED_DIGEST"
94
103
  perttool dsl help syntax estimate --level detail --format json
95
104
  perttool dsl help syntax velocity --level detail --format json
105
+ perttool agent help
106
+ perttool agent help codex enforcement --level detail --format json
107
+ perttool project show PLAN.pert --format json
108
+ perttool project set PLAN.pert --velocity 20p/1d --diff
109
+ perttool project set PLAN.pert --velocity 20p/1d --write --expect-digest "$EXPECTED_DIGEST"
96
110
  perttool dag analyze docs/examples/point-velocity.pert --format json
97
111
  perttool dag analyze docs/examples/parallel.pert
98
112
  perttool dag analyze docs/examples/parallel.pert --capacity DEVELOPERS=3 --capacity TEST_ENV=2 --format json
@@ -113,9 +127,11 @@ perttool mutation apply PLAN.pert --request changes.json --out UPDATED.pert
113
127
 
114
128
  `dag analyze`はexact RationalによるPERT/CPMと、renewable resource capacityを守る決定的な`parallel-sgs` scheduleを別resultとして返します。`duration_unit point`では`velocity 20p/10d`のように宣言し、基準のPoint値とday/hourの`velocity_forecast`を分離して返します。Resource scheduleは実行可能なheuristicであり、最適解とは表示しません。
115
129
 
130
+ `project show`はproject ID、version、title、description、as_of、duration_unit、velocity、finish、critical_epsilon、target_durationを固定順のtextまたは`Perttool.ProjectResult.v1` JSONで返します。`project set`は同じfieldをsource-preservingに変更し、optional fieldは`--clear`できます。既定は検査済みcandidateのpreviewで、永続化は他のediting commandと同じsafe-write optionを明示した場合だけです。Project-wide単位とtask durationを同時変更する場合は、`mutation apply`のatomic batchへ`project.set`と関連entity mutationを含めます。
131
+
116
132
  `dag next`は依存関係上の`ready`、既存schedulerが選ぶ`runnable_now`、工程authorityであるroot `recommendation`を分離します。JSONは全ready taskのtier、exact typed fact、comparison、decision trace、canonical descriptionをcomplete graphとして返し、textは4 tierの`complete=false` summaryとJSON導線を返します。開始できないready taskには不足resourceと占有task、upcoming taskには未充足依存の説明も従来どおり保持します。Consumerは[移行ガイド](docs/process/next-v3-consumer-migration.md)に従い、`schema_version`を最初に検査します。
117
133
 
118
- 5 planshadowMIG-07 safe-stop dry-runを経て、knownかつcompleteな`NextResult.v3`をperttool開発のnormal AI task selection authorityへ採用しました。Macro recommendationからworkstreamを選んでdetailを再解析し、unknown version、incomplete trace、`PTREC-*`、deferred/discouraged selectionでは開始せず停止します。
134
+ Known and complete `NextResult.v3` is the normal AI task-selection authority after the original five-plan shadow and the MIG-07 safe-stop dry run. The self-use gate now checks seven plans, including agent guidance and the explicitly blocked post-beta English-baseline migration. Select a workstream from the macro recommendation before analyzing its detail plan, and stop on unknown versions, incomplete traces, `PTREC-*`, or deferred/discouraged selections.
119
135
 
120
136
  Public libraryの`validateOverride`はcompleteな`NextResultV3`と明示的なhuman requestから、normal recommendationを変更せずdeterministicな`Perttool.OverrideDecision.v1`を生成します。これはread-only validationであり、task state、file、Git、networkを変更しません。Override applyとaudit writeのCLIは未実装です。
121
137
 
@@ -127,7 +143,7 @@ Public libraryの`validateOverride`はcompleteな`NextResultV3`と明示的なhu
127
143
 
128
144
  `dsl format`とMutation commandは既定では検査済みcandidateをpreviewし、`--diff`ではunified diffを返します。`dsl format --check`は変更が必要なときだけexit 1です。Preview確認後は`--write`でinitial digestを再照合してatomic replaceし、`--expect-digest`でcaller lockを追加できます。`--out`は既存targetを上書きせず新規documentを作成します。`--format json`ではcandidate、diff、UTF-16 TextEdit、digest、write結果を同じresultへ含めます。
129
145
 
130
- 現在は[MVPマイルストーン計画](plans/mvp.pert)をmacro roadmapとするStage 3のpreview-first advance自己利用を行っています。[Recommendation実装計画](plans/recommendation.pert)のMIG-01からMIG-07全22p1 active dayで完了し、recommendation固有の暫定実測Velocityを`22p/1d`へ更新しました。Detail残作業は0pで、normal recommendation authorityを採用済みです。Macroの唯一のready、`runnable_now`、recommended、precedence/schedule critical work packageは`RELEASE_E2E`、残るmakespanは2dです。Issue #2のAI Agent Guidance RegistryとIssue #3のmulti-plan compositionは独立backlogのままです。
146
+ 現在は[MVPからbetaへのmacro計画](plans/mvp.pert)をroadmapとするStage 3のpreview-first自己利用を行っています。MVP public alphaに続き、Issue #2のread-only AI Agent Guidance Registry v1も[受け入れました](docs/process/agent-guidance-acceptance.md)。5 provider baseline、公開contract、version付きoffline profile、validator、query、index/quick/detail projection、deterministic JSON/text、structured command help、`agent help` CLI、package-installed Core/CLI parity、security境界を全checkで検証し、固有実測Velocityを全22p/1 active dayの`22p/1d`へ補正しました。利用者の明示指示で先行した`PROJECT_METADATA_CLI`を含む操作系実測Velocityは29p/2 active dayの`29p/2d`です。Macroの唯一のready、`runnable_now`、recommended taskは`BETA_RELEASE_E2E`で、残存makespanは1dです。Issue #3、LSP server、VSIX、MCP serverはbeta blockerに含めません。
131
147
 
132
148
  ## Security and license
133
149
 
@@ -0,0 +1,3 @@
1
+ import type { AgentGuidanceQuery, AgentGuidanceResult } from "../guidance/types.js";
2
+ export declare function getAgentHelp(query?: AgentGuidanceQuery): AgentGuidanceResult;
3
+ //# sourceMappingURL=agent-help.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-help.d.ts","sourceRoot":"","sources":["../../src/application/agent-help.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAE9B,wBAAgB,YAAY,CAC1B,KAAK,GAAE,kBAAuB,GAC7B,mBAAmB,CAErB"}
@@ -0,0 +1,5 @@
1
+ import { getBundledAgentGuidance } from "../guidance/query.js";
2
+ export function getAgentHelp(query = {}) {
3
+ return getBundledAgentGuidance(query);
4
+ }
5
+ //# sourceMappingURL=agent-help.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-help.js","sourceRoot":"","sources":["../../src/application/agent-help.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAM/D,MAAM,UAAU,YAAY,CAC1B,KAAK,GAAuB,EAAE;IAE9B,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"mutate.d.ts","sourceRoot":"","sources":["../../src/application/mutate.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAGV,QAAQ,EACR,eAAe,EACf,cAAc,EACf,MAAM,sBAAsB,CAAC;AA8N9B,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,eAAoB,GAC5B,cAAc,CAEhB;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,EACjB,OAAO,GAAE,eAAoB,GAC5B,cAAc,CAEhB"}
1
+ {"version":3,"file":"mutate.d.ts","sourceRoot":"","sources":["../../src/application/mutate.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAGV,QAAQ,EACR,eAAe,EACf,cAAc,EACf,MAAM,sBAAsB,CAAC;AAsO9B,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,eAAoB,GAC5B,cAAc,CAEhB;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,EACjB,OAAO,GAAE,eAAoB,GAC5B,cAAc,CAEhB"}
@@ -4,6 +4,7 @@ import { limitDiagnostics, normalizeMaxDiagnostics, sortDiagnostics, } from "../
4
4
  import { applyTextEdits, normalizeTextEdits } from "../mutation/text-edits.js";
5
5
  import { mutationDiagnostic } from "../mutation/diagnostics.js";
6
6
  import { planMilestoneMutationEdits } from "../mutation/milestone.js";
7
+ import { planProjectMutationEdits } from "../mutation/project.js";
7
8
  import { planResourceMutationEdits } from "../mutation/resource.js";
8
9
  import { planTaskMutationEdits } from "../mutation/task.js";
9
10
  import { checkDocument } from "./check.js";
@@ -32,6 +33,9 @@ function runtimeKind(value) {
32
33
  }
33
34
  function planAtomicMutationEdits(text, document, mutation) {
34
35
  const kind = runtimeKind(mutation);
36
+ if (kind === "project.set") {
37
+ return planProjectMutationEdits(text, document, mutation);
38
+ }
35
39
  if (typeof kind === "string" && kind.startsWith("milestone.")) {
36
40
  return planMilestoneMutationEdits(text, document, mutation);
37
41
  }
@@ -56,14 +60,19 @@ function batchRequestError(value) {
56
60
  if (request["mutations"].some((item) => runtimeKind(item) === "batch")) {
57
61
  return "batch mutationはnested batchを許可しません";
58
62
  }
59
- const ids = request["mutations"].map((item) => item !== null && typeof item === "object"
60
- ? item["id"]
61
- : undefined);
62
- if (ids.some((id) => typeof id !== "string")) {
63
- return "batch内のatomic mutationはstring idを必要とします";
63
+ const targets = request["mutations"].map((item) => {
64
+ if (item === null || typeof item !== "object")
65
+ return undefined;
66
+ const record = item;
67
+ if (record["kind"] === "project.set")
68
+ return "project";
69
+ return typeof record["id"] === "string" ? `entity:${record["id"]}` : undefined;
70
+ });
71
+ if (targets.some((target) => target === undefined)) {
72
+ return "batch内のatomic mutationはproject targetまたはstring idを必要とします";
64
73
  }
65
- if (new Set(ids).size !== ids.length) {
66
- return "batch内で同じentity IDを複数回変更できません";
74
+ if (new Set(targets).size !== targets.length) {
75
+ return "batch内で同じtargetを複数回変更できません";
67
76
  }
68
77
  return undefined;
69
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mutate.js","sourceRoot":"","sources":["../../src/application/mutate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mutate.js","sourceRoot":"","sources":["../../src/application/mutate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { Diagnostic } from "../model/diagnostics.js";
2
+ import { type CheckOptions } from "./check.js";
3
+ export type ProjectMetadataDurationUnit = "day" | "hour" | "point";
4
+ export interface ProjectMetadata {
5
+ readonly id: string;
6
+ readonly version: number;
7
+ readonly title: string;
8
+ readonly description: string | null;
9
+ readonly asOf: string | null;
10
+ readonly durationUnit: ProjectMetadataDurationUnit;
11
+ readonly velocity: string | null;
12
+ readonly finish: string;
13
+ readonly criticalEpsilon: string | null;
14
+ readonly targetDuration: string | null;
15
+ }
16
+ export interface ProjectMetadataResult {
17
+ readonly ok: boolean;
18
+ readonly documentId: string | null;
19
+ readonly grammarVersion: number | null;
20
+ readonly project: ProjectMetadata | null;
21
+ readonly diagnostics: readonly Diagnostic[];
22
+ readonly diagnosticsTruncated: boolean;
23
+ }
24
+ export declare function getProjectMetadata(text: string, options?: CheckOptions): ProjectMetadataResult;
25
+ //# sourceMappingURL=project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/application/project.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAG1D,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAE9D,MAAM,MAAM,2BAA2B,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,2BAA2B,CAAC;IACnD,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;IAC5C,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC;CACxC;AAcD,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,YAAiB,GACzB,qBAAqB,CA4CvB"}
@@ -0,0 +1,54 @@
1
+ import { fieldNamed } from "../model/syntax.js";
2
+ import { checkDocument } from "./check.js";
3
+ function optionalString(value) {
4
+ return typeof value === "string" ? value : null;
5
+ }
6
+ function optionalLiteral(value) {
7
+ return value !== null &&
8
+ typeof value === "object" &&
9
+ typeof value.text === "string"
10
+ ? value.text
11
+ : null;
12
+ }
13
+ export function getProjectMetadata(text, options = {}) {
14
+ const checked = checkDocument(text, options);
15
+ const declaration = checked.document.declarations.find(({ kind }) => kind === "project");
16
+ if (!checked.ok || declaration === undefined || checked.grammarVersion === null) {
17
+ return {
18
+ ok: false,
19
+ documentId: checked.documentId,
20
+ grammarVersion: null,
21
+ project: null,
22
+ diagnostics: checked.diagnostics,
23
+ diagnosticsTruncated: checked.diagnosticsTruncated,
24
+ };
25
+ }
26
+ const title = fieldNamed(declaration, "title")?.value;
27
+ const durationUnit = fieldNamed(declaration, "duration_unit")?.value;
28
+ const finish = fieldNamed(declaration, "finish")?.value;
29
+ if (typeof title !== "string" ||
30
+ (durationUnit !== "day" && durationUnit !== "hour" && durationUnit !== "point") ||
31
+ typeof finish !== "string") {
32
+ throw new Error("valid project document is missing required project metadata");
33
+ }
34
+ return {
35
+ ok: true,
36
+ documentId: checked.documentId,
37
+ grammarVersion: checked.grammarVersion,
38
+ project: {
39
+ id: declaration.id,
40
+ version: checked.grammarVersion,
41
+ title,
42
+ description: optionalString(fieldNamed(declaration, "description")?.value),
43
+ asOf: optionalString(fieldNamed(declaration, "as_of")?.value),
44
+ durationUnit,
45
+ velocity: optionalLiteral(fieldNamed(declaration, "velocity")?.value),
46
+ finish,
47
+ criticalEpsilon: optionalLiteral(fieldNamed(declaration, "critical_epsilon")?.value),
48
+ targetDuration: optionalLiteral(fieldNamed(declaration, "target_duration")?.value),
49
+ },
50
+ diagnostics: checked.diagnostics,
51
+ diagnosticsTruncated: checked.diagnosticsTruncated,
52
+ };
53
+ }
54
+ //# sourceMappingURL=project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/application/project.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAqB,MAAM,YAAY,CAAC;AA0B9D,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAClD,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,KAAK,KAAK,IAAI;QACnB,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAQ,KAAuC,CAAC,IAAI,KAAK,QAAQ;QACjE,CAAC,CAAE,KAAuC,CAAC,IAAI;QAC/C,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,IAAY,EACZ,OAAO,GAAiB,EAAE;IAE1B,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7C,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IACzF,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,WAAW,KAAK,SAAS,IAAI,OAAO,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;QAChF,OAAO;YACL,EAAE,EAAE,KAAK;YACT,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,cAAc,EAAE,IAAI;YACpB,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;SACnD,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC;IACtD,MAAM,YAAY,GAAG,UAAU,CAAC,WAAW,EAAE,eAAe,CAAC,EAAE,KAAK,CAAC;IACrE,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,KAAK,CAAC;IACxD,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,YAAY,KAAK,KAAK,IAAI,YAAY,KAAK,MAAM,IAAI,YAAY,KAAK,OAAO,CAAC;QAC/E,OAAO,MAAM,KAAK,QAAQ,EAC1B,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACjF,CAAC;IAED,OAAO;QACL,EAAE,EAAE,IAAI;QACR,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,OAAO,EAAE;YACP,EAAE,EAAE,WAAW,CAAC,EAAE;YAClB,OAAO,EAAE,OAAO,CAAC,cAAc;YAC/B,KAAK;YACL,WAAW,EAAE,cAAc,CAAC,UAAU,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE,KAAK,CAAC;YAC1E,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC;YAC7D,YAAY;YACZ,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC;YACrE,MAAM;YACN,eAAe,EAAE,eAAe,CAAC,UAAU,CAAC,WAAW,EAAE,kBAAkB,CAAC,EAAE,KAAK,CAAC;YACpF,cAAc,EAAE,eAAe,CAAC,UAAU,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE,KAAK,CAAC;SACnF;QACD,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;KACnD,CAAC;AACJ,CAAC"}