pi-harness-runtime 0.10.27 → 0.10.43

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 (133) hide show
  1. package/.pi/plugins/herdr-clipboard/herdr-plugin.toml +22 -0
  2. package/.pi/plugins/herdr-clipboard/start-bridge.sh +29 -0
  3. package/.pi/plugins/herdr-clipboard/tmux-watch.sh +39 -0
  4. package/CHANGELOG.md +19 -0
  5. package/README.md +87 -1
  6. package/config.toml.example +35 -0
  7. package/package.json +5 -3
  8. package/packages/architecture-generator/dist/adr.d.ts +1 -1
  9. package/packages/architecture-generator/dist/adr.d.ts.map +1 -1
  10. package/packages/architecture-generator/dist/adr.js +2 -2
  11. package/packages/architecture-generator/dist/adr.js.map +1 -1
  12. package/packages/architecture-generator/dist/index.d.ts +3 -3
  13. package/packages/architecture-generator/dist/index.js +3 -3
  14. package/packages/architecture-generator/dist/mermaid.d.ts +1 -1
  15. package/packages/architecture-generator/dist/mermaid.d.ts.map +1 -1
  16. package/packages/architecture-generator/dist/mermaid.js +20 -20
  17. package/packages/architecture-generator/dist/mermaid.js.map +1 -1
  18. package/packages/architecture-generator/dist/types.d.ts +2 -2
  19. package/packages/architecture-generator/dist/types.d.ts.map +1 -1
  20. package/packages/architecture-generator/src/adr.ts +16 -16
  21. package/packages/architecture-generator/src/index.ts +3 -3
  22. package/packages/architecture-generator/src/mermaid.ts +48 -54
  23. package/packages/architecture-generator/src/types.ts +15 -15
  24. package/packages/capability-registry/src/types.js +10 -0
  25. package/packages/clipboard/dist/src/copy-sync.d.ts.map +1 -1
  26. package/packages/clipboard/dist/src/copy-sync.js +45 -3
  27. package/packages/clipboard/dist/src/copy-sync.js.map +1 -1
  28. package/packages/clipboard/dist/src/index.d.ts +1 -0
  29. package/packages/clipboard/dist/src/index.d.ts.map +1 -1
  30. package/packages/clipboard/dist/src/index.js +1 -0
  31. package/packages/clipboard/dist/src/index.js.map +1 -1
  32. package/packages/clipboard/dist/src/paste-bridge.d.ts +19 -0
  33. package/packages/clipboard/dist/src/paste-bridge.d.ts.map +1 -0
  34. package/packages/clipboard/dist/src/paste-bridge.js +78 -0
  35. package/packages/clipboard/dist/src/paste-bridge.js.map +1 -0
  36. package/packages/clipboard/src/copy-sync.ts +52 -3
  37. package/packages/clipboard/src/index.ts +1 -0
  38. package/packages/clipboard/src/paste-bridge.ts +86 -0
  39. package/packages/clipboard-plugin/dist/index.d.ts +28 -0
  40. package/packages/clipboard-plugin/dist/index.d.ts.map +1 -0
  41. package/packages/clipboard-plugin/dist/index.js +64 -0
  42. package/packages/clipboard-plugin/dist/index.js.map +1 -0
  43. package/packages/clipboard-plugin/dist/types.d.ts +30 -0
  44. package/packages/clipboard-plugin/dist/types.d.ts.map +1 -0
  45. package/packages/clipboard-plugin/dist/types.js +5 -0
  46. package/packages/clipboard-plugin/dist/types.js.map +1 -0
  47. package/packages/clipboard-plugin/src/index.ts +74 -0
  48. package/packages/clipboard-plugin/src/types.ts +30 -0
  49. package/packages/file-copy-helper/dist/src/extension.js +84 -25
  50. package/packages/file-copy-helper/src/extension.debug.ts +226 -0
  51. package/packages/file-copy-helper/src/extension.ts +89 -59
  52. package/packages/knowledge-graph/dist/graph-extractor.d.ts +1 -1
  53. package/packages/knowledge-graph/dist/graph-extractor.d.ts.map +1 -1
  54. package/packages/knowledge-graph/dist/graph-extractor.js +46 -55
  55. package/packages/knowledge-graph/dist/graph-extractor.js.map +1 -1
  56. package/packages/knowledge-graph/dist/index.d.ts +4 -4
  57. package/packages/knowledge-graph/dist/index.js +4 -4
  58. package/packages/knowledge-graph/dist/mcp-client.d.ts +2 -2
  59. package/packages/knowledge-graph/dist/mcp-client.d.ts.map +1 -1
  60. package/packages/knowledge-graph/dist/mcp-client.js +22 -22
  61. package/packages/knowledge-graph/dist/mcp-client.js.map +1 -1
  62. package/packages/knowledge-graph/dist/provenance-linker.d.ts +1 -1
  63. package/packages/knowledge-graph/dist/provenance-linker.d.ts.map +1 -1
  64. package/packages/knowledge-graph/dist/provenance-linker.js +14 -15
  65. package/packages/knowledge-graph/dist/provenance-linker.js.map +1 -1
  66. package/packages/knowledge-graph/dist/types.d.ts +2 -2
  67. package/packages/knowledge-graph/dist/types.d.ts.map +1 -1
  68. package/packages/knowledge-graph/src/graph-extractor.ts +263 -280
  69. package/packages/knowledge-graph/src/index.ts +4 -4
  70. package/packages/knowledge-graph/src/mcp-client.ts +188 -197
  71. package/packages/knowledge-graph/src/provenance-linker.ts +69 -73
  72. package/packages/knowledge-graph/src/types.ts +46 -46
  73. package/packages/milestone-manager/dist/engine.d.ts +1 -1
  74. package/packages/milestone-manager/dist/engine.d.ts.map +1 -1
  75. package/packages/milestone-manager/dist/engine.js +7 -9
  76. package/packages/milestone-manager/dist/engine.js.map +1 -1
  77. package/packages/milestone-manager/dist/index.d.ts +2 -2
  78. package/packages/milestone-manager/dist/index.js +2 -2
  79. package/packages/milestone-manager/dist/types.d.ts +2 -2
  80. package/packages/milestone-manager/dist/types.d.ts.map +1 -1
  81. package/packages/milestone-manager/src/engine.ts +83 -91
  82. package/packages/milestone-manager/src/index.ts +2 -2
  83. package/packages/milestone-manager/src/types.ts +13 -13
  84. package/packages/notification/dist/adapters/line-adapter.d.ts +17 -0
  85. package/packages/notification/dist/adapters/line-adapter.d.ts.map +1 -0
  86. package/packages/notification/dist/adapters/line-adapter.js +99 -0
  87. package/packages/notification/dist/adapters/line-adapter.js.map +1 -0
  88. package/packages/notification/dist/index.d.ts +1 -0
  89. package/packages/notification/dist/index.d.ts.map +1 -1
  90. package/packages/notification/dist/index.js +1 -0
  91. package/packages/notification/dist/index.js.map +1 -1
  92. package/packages/notification/dist/notification-center.d.ts.map +1 -1
  93. package/packages/notification/dist/notification-center.js +4 -0
  94. package/packages/notification/dist/notification-center.js.map +1 -1
  95. package/packages/notification/dist/types.d.ts +6 -2
  96. package/packages/notification/dist/types.d.ts.map +1 -1
  97. package/packages/notification/src/adapters/line-adapter.ts +119 -0
  98. package/packages/notification/src/index.ts +1 -0
  99. package/packages/notification/src/notification-center.ts +6 -0
  100. package/packages/notification/src/types.ts +7 -2
  101. package/packages/project-bootstrap/dist/bootstrap.d.ts +1 -1
  102. package/packages/project-bootstrap/dist/bootstrap.d.ts.map +1 -1
  103. package/packages/project-bootstrap/dist/bootstrap.js +37 -45
  104. package/packages/project-bootstrap/dist/bootstrap.js.map +1 -1
  105. package/packages/project-bootstrap/dist/frappe.d.ts +1 -1
  106. package/packages/project-bootstrap/dist/frappe.d.ts.map +1 -1
  107. package/packages/project-bootstrap/dist/frappe.js +34 -34
  108. package/packages/project-bootstrap/dist/frappe.js.map +1 -1
  109. package/packages/project-bootstrap/dist/index.d.ts +5 -5
  110. package/packages/project-bootstrap/dist/index.js +5 -5
  111. package/packages/project-bootstrap/dist/minimal.d.ts +1 -1
  112. package/packages/project-bootstrap/dist/minimal.js +13 -13
  113. package/packages/project-bootstrap/dist/minimal.js.map +1 -1
  114. package/packages/project-bootstrap/dist/types.d.ts +1 -1
  115. package/packages/project-bootstrap/dist/types.d.ts.map +1 -1
  116. package/packages/project-bootstrap/dist/typescript.d.ts +1 -1
  117. package/packages/project-bootstrap/dist/typescript.d.ts.map +1 -1
  118. package/packages/project-bootstrap/dist/typescript.js +38 -38
  119. package/packages/project-bootstrap/dist/typescript.js.map +1 -1
  120. package/packages/project-bootstrap/src/bootstrap.ts +121 -136
  121. package/packages/project-bootstrap/src/frappe.ts +65 -71
  122. package/packages/project-bootstrap/src/index.ts +5 -5
  123. package/packages/project-bootstrap/src/minimal.ts +31 -31
  124. package/packages/project-bootstrap/src/types.ts +38 -38
  125. package/packages/project-bootstrap/src/typescript.ts +69 -78
  126. package/packages/provider-router/dist/src/types.js +1 -1
  127. package/packages/write-review/src/index.ts +47 -0
  128. package/packages/write-review/src/injection.ts +21 -1
  129. package/prompts/agents/reviewer.md +57 -0
  130. package/prompts/agents/writer.md +42 -0
  131. package/prompts/slash-commands.md +40 -0
  132. package/prompts/write-review.md +50 -0
  133. package/scripts/copy-plugins.js +56 -0
@@ -0,0 +1,22 @@
1
+ id = "moocoding.clipboard"
2
+ name = "Clipboard Bridge"
3
+ version = "0.1.0"
4
+ min_herdr_version = "0.7.0"
5
+ description = "Clipboard bridge via tmux - fixes copy/paste in remote SSH sessions"
6
+ platforms = ["linux"]
7
+
8
+ [config]
9
+ # Disable herdr's broken clipboard toast (shows even when copy fails)
10
+ # User should also set in their herdr config.toml:
11
+ # [ui.toast.clipboard]
12
+ # enabled = false
13
+
14
+ [[startup]]
15
+ # Start tmux clipboard bridge in background pane
16
+ command = ["bash", "start-bridge.sh"]
17
+ detach = true
18
+
19
+ [[actions]]
20
+ name = "paste"
21
+ description = "Paste from local clipboard into focused pane"
22
+ command = ["bash", "paste.sh"]
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env bash
2
+ # Start tmux clipboard bridge
3
+ # Bridges herdr's clipboard to local machine via tmux
4
+
5
+ set -euo pipefail
6
+
7
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
8
+ BRIDGE_DIR="${HOME}/.herdr-clipboard"
9
+ MARKER_FILE="${BRIDGE_DIR}/.last-copy"
10
+ PID_FILE="${BRIDGE_DIR}/bridge.pid"
11
+
12
+ mkdir -p "${BRIDGE_DIR}"
13
+
14
+ # Clean up old PID if exists
15
+ if [[ -f "${PID_FILE}" ]]; then
16
+ OLD_PID=$(cat "${PID_FILE}")
17
+ if kill -0 "${OLD_PID}" 2>/dev/null; then
18
+ echo "Clipboard bridge already running (PID ${OLD_PID})"
19
+ exit 0
20
+ fi
21
+ fi
22
+
23
+ # Save PID
24
+ echo $$ > "${PID_FILE}"
25
+
26
+ # Start tmux new-session running clipboard watch loop
27
+ tmux new-session -d -s "herdr-clipboard" "bash ${SCRIPT_DIR}/tmux-watch.sh; read"
28
+
29
+ echo "Clipboard bridge started (PID $$)"
@@ -0,0 +1,39 @@
1
+ #!/usr/bin/env bash
2
+ # Tmux clipboard watch - bridges herdr clipboard to local machine
3
+ # Runs inside tmux session that stays connected to local machine
4
+
5
+ set -euo pipefail
6
+
7
+ BRIDGE_DIR="${HOME}/.herdr-clipboard"
8
+ COPY_FILE="${BRIDGE_DIR}/copy-buffer"
9
+ LAST_HASH="${BRIDGE_DIR}/.last-hash"
10
+
11
+ mkdir -p "${BRIDGE_DIR}"
12
+
13
+ echo "Clipboard bridge active - watching ${COPY_FILE}"
14
+ echo "Waiting for clipboard content..."
15
+
16
+ while true; do
17
+ # Check for new content to copy to local clipboard
18
+ if [[ -f "${COPY_FILE}" ]]; then
19
+ CONTENT=$(cat "${COPY_FILE}")
20
+ HASH=$(echo -n "${CONTENT}" | md5sum | cut -d' ' -f1)
21
+ LAST_HASH_VALUE=""
22
+
23
+ if [[ -f "${LAST_HASH}" ]]; then
24
+ LAST_HASH_VALUE=$(cat "${LAST_HASH}")
25
+ fi
26
+
27
+ # Only copy if content changed
28
+ if [[ "${HASH}" != "${LAST_HASH_VALUE}" ]]; then
29
+ echo -n "${CONTENT}" | tmux load-buffer -
30
+ tmux paste-buffer -b herdr-clipboard
31
+ echo "${HASH}" > "${LAST_HASH}"
32
+ echo "Copied to local clipboard ($(echo -n "${CONTENT}" | wc -c) bytes)"
33
+ fi
34
+
35
+ rm -f "${COPY_FILE}"
36
+ fi
37
+
38
+ sleep 0.5
39
+ done
package/CHANGELOG.md CHANGED
@@ -2,6 +2,25 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [0.10.30](https://github.com/ManotLuijiu/pi-harness-runtime/compare/v0.10.29...v0.10.30) (2026-08-11)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * **file-copy-helper:** require explicit intent for copy rule injection ([ddfece0](https://github.com/ManotLuijiu/pi-harness-runtime/commit/ddfece0bcbf440dfd4edc0d442b078e84e906c68))
11
+ * **release:** add --no-fund --prefer-offline to npm publish ([19adf58](https://github.com/ManotLuijiu/pi-harness-runtime/commit/19adf58c5de3192a2322ec5afe3b8ccb8ecedc3c))
12
+ * **release:** add --no-git-checks to pnpm publish ([74f29aa](https://github.com/ManotLuijiu/pi-harness-runtime/commit/74f29aa2220d02be4ba47b1c0f0e22ddcba1ffc9))
13
+ * **release:** add retry mechanism for npm publish ([0cfc95d](https://github.com/ManotLuijiu/pi-harness-runtime/commit/0cfc95d33a4cd1cfb629fcbba88dd4a5b931ab8c))
14
+ * **release:** allow bun postinstall scripts ([df88c21](https://github.com/ManotLuijiu/pi-harness-runtime/commit/df88c217ffc8c8794ceba49385690901d7673b56))
15
+ * **release:** keep bun install, add pnpm for publish ([ab400fc](https://github.com/ManotLuijiu/pi-harness-runtime/commit/ab400fcc33f41ec1e60db21a1c3afb5cecedd494))
16
+ * **release:** simpler npm publish with retry ([1508480](https://github.com/ManotLuijiu/pi-harness-runtime/commit/1508480363728cab83ccd5084ca2d17275d88e08))
17
+ * **release:** use actions/npm-nodejs-publish action ([d161f3f](https://github.com/ManotLuijiu/pi-harness-runtime/commit/d161f3f986f13926b7865c6d7788a11605d4dfbd))
18
+ * **release:** use JS-DevTools/npm-publish action ([a5efce0](https://github.com/ManotLuijiu/pi-harness-runtime/commit/a5efce0cf3fd2d9c85339998e61e65b05766724e))
19
+ * **release:** use latest npm to fix exit handler issue ([0ad8da9](https://github.com/ManotLuijiu/pi-harness-runtime/commit/0ad8da9ac84d5134783be4f94fd9e112bb298362))
20
+ * **release:** use npm pack + publish pattern ([85efcc1](https://github.com/ManotLuijiu/pi-harness-runtime/commit/85efcc181ca2214dd5a1d01bbeefb46f2a53975f))
21
+ * **release:** use npm/publish action ([43c6a20](https://github.com/ManotLuijiu/pi-harness-runtime/commit/43c6a20752e4c7fdb548a8f3e1134188857ce1ca))
22
+ * **release:** use pnpm for publish to avoid npm exit handler bug ([a038950](https://github.com/ManotLuijiu/pi-harness-runtime/commit/a03895032a57cee039e2ed4b720e46e3d3c13961))
23
+
5
24
  ### [0.10.27](https://github.com/ManotLuijiu/pi-harness-runtime/compare/v0.10.14...v0.10.27) (2026-08-10)
6
25
 
7
26
 
package/README.md CHANGED
@@ -36,7 +36,7 @@ If running on a **headless server** via herdr SSH, install the clipboard bridge
36
36
  cd ~/.config/herdr/plugins
37
37
  ln -s ~/.config/herdr/plugins/moocoding.clipboard-bridge moocoding.clipboard-bridge 2>/dev/null || true
38
38
 
39
- # 2. Add keybinding to ~/.config/herdr/config.toml
39
+ # 2. Add keybindings to ~/.config/herdr/config.toml
40
40
  cat >> ~/.config/herdr/config.toml << 'EOF'
41
41
 
42
42
  [[keys.command]]
@@ -44,6 +44,12 @@ key = "prefix+y"
44
44
  type = "plugin_action"
45
45
  command = "moocoding.clipboard-bridge.copy"
46
46
  description = "Copy selected text via bridge"
47
+
48
+ [[keys.command]]
49
+ key = "prefix+p"
50
+ type = "plugin_action"
51
+ command = "moocoding.clipboard-bridge.paste"
52
+ description = "Paste from clipboard bridge"
47
53
  EOF
48
54
 
49
55
  # 3. Reload herdr config
@@ -367,6 +373,85 @@ Your local machine clipboard
367
373
  | `~/.herdr-clipboard` | Bridge file between herdr and clipboard |
368
374
  | `~/.config/herdr/plugins/moocoding.clipboard-bridge/` | herdr plugin |
369
375
 
376
+ ### LINE Notification Setup
377
+
378
+ Get notified on your phone when tasks complete! LINE notifications via the LINE Messaging API.
379
+
380
+ #### Step-by-Step Setup
381
+
382
+ **1. Create a LINE Messaging API channel**
383
+
384
+ 1. Go to [LINE Developers Console](https://developers.line.biz/)
385
+ 2. Log in with your LINE account
386
+ 3. Click **Create a channel** → select **Messaging API**
387
+ 4. Fill in the required fields (channel name, description, etc.)
388
+ 5. Once created, go to the **Messaging API** tab
389
+
390
+ **2. Get your Channel Access Token**
391
+
392
+ 1. In the Messaging API tab, scroll to **Long-term channel access token**
393
+ 2. Click **Issue** to generate the token
394
+ 3. Copy the token (starts with `eyJ...`)
395
+
396
+ **3. Get your User ID**
397
+
398
+ 1. Go to your channel's **Basic settings** tab
399
+ 2. Find **Your user ID** (a long alphanumeric string like `U123456...`)
400
+ 3. Copy this ID
401
+
402
+ #### Configuration
403
+
404
+ Add to your `config.toml`:
405
+
406
+ ```toml
407
+ [notification.line]
408
+ enabled = true
409
+ channelAccessToken = "YOUR_CHANNEL_ACCESS_TOKEN" # from Messaging API tab
410
+ userId = "YOUR_USER_ID" # from Basic settings tab
411
+ ```
412
+
413
+ #### How It Works
414
+
415
+ ```
416
+ Task event triggered (e.g., TaskCompleted)
417
+
418
+ Notification payload created with event details
419
+
420
+ LineAdapter.send() called
421
+
422
+ POST to https://api.line.me/v2/bot/message/push
423
+
424
+ Push notification sent to your LINE app
425
+ ```
426
+
427
+ #### Supported Events
428
+
429
+ | Event | Emoji | Description |
430
+ |-------|-------|-------------|
431
+ | `JobStarted` | 🚀 | Job execution started |
432
+ | `TaskCompleted` | ✅ | Task completed successfully |
433
+ | `TaskFailed` | ❌ | Task failed with error |
434
+ | `QuotaPaused` | ⏸️ | Quota limit reached, paused |
435
+ | `ResumeScheduled` | ▶️ | Resume scheduled |
436
+ | `ContextCompacted` | 📦 | Context window compacted |
437
+ | `OutputLimitContinued` | 🔄 | Output limit exceeded, continued |
438
+ | `E2EFailed` | 🧪 | E2E test failed |
439
+ | `HumanReviewNeeded` | 👤 | Human review required |
440
+ | `ReadyForClient` | 🎉 | All tasks done, ready for new work |
441
+ | `JobCancelled` | 🚫 | Job was cancelled |
442
+ | `Error` | ⚠️ | Runtime error occurred |
443
+
444
+ #### Example Notification
445
+
446
+ ```
447
+ ✅ Task Completed
448
+
449
+ Implement login flow
450
+
451
+ Task: Implement login flow
452
+ Job: feature-auth
453
+ ```
454
+
370
455
  ### Other Providers
371
456
 
372
457
  No setup needed. The runtime reads TUI messages and captures quota-exhaustion signals.
@@ -383,6 +468,7 @@ footer updates immediately and the data persists in `mirror.json`.
383
468
  - [x] Cookie-file drop folder + live sync (`cookie-sanitizer`)
384
469
  - [x] Per-provider quota mirror (`mirror.json` keyed by provider)
385
470
  - [x] Multi-provider TUI signal capture (OpenAI, GLM, Anthropic, OpenRouter)
471
+ - [x] LINE notification adapter (Thai mobile notifications)
386
472
  - [ ] E2E test engine integration
387
473
  - [ ] Claude adapter
388
474
  - [ ] Production stress testing
@@ -0,0 +1,35 @@
1
+ # herdr Configuration for pi-harness-runtime
2
+ # Copy this file to ~/.config/herdr/config.toml
3
+ #
4
+ # Usage:
5
+ # cp config.toml.example ~/.config/herdr/config.toml
6
+ # herdr server reload-config
7
+
8
+ onboarding = false
9
+
10
+ [ui]
11
+ # Disable herdr's built-in clipboard (doesn't work on headless servers)
12
+ copy_on_select = false
13
+
14
+ [ui.toast.clipboard]
15
+ enabled = false
16
+
17
+ # ============================================
18
+ # Custom Keybindings for pi-harness-runtime
19
+ # ============================================
20
+
21
+ # Copy selected text via clipboard bridge plugin
22
+ # Usage: Select text with mouse, then press prefix+y
23
+ [[keys.command]]
24
+ key = "prefix+y"
25
+ type = "plugin_action"
26
+ command = "moocoding.clipboard-bridge.copy"
27
+ description = "Copy selected text via bridge"
28
+
29
+ # Paste from clipboard bridge
30
+ # Usage: Press prefix+p to paste content from bridge file
31
+ [[keys.command]]
32
+ key = "prefix+p"
33
+ type = "plugin_action"
34
+ command = "moocoding.clipboard-bridge.paste"
35
+ description = "Paste from clipboard bridge"
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "pi-harness-runtime",
3
- "version": "0.10.27",
3
+ "version": "0.10.43",
4
4
  "description": "[BETA] Codex-style /usage status + autonomous coding harness for pi. Not production ready — expect breaking changes.",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "test": "node --test",
8
- "postinstall": "mkdir -p ~/.pi-harness-runtime/cookies",
8
+ "postinstall": "mkdir -p ~/.pi-harness-runtime/cookies && node scripts/copy-plugins.js && ([ -f ~/.config/herdr/config.toml ] || mkdir -p ~/.config/herdr && cp config.toml.example ~/.config/herdr/config.toml)",
9
9
  "release": "bun scripts/release-all.ts",
10
10
  "release:patch": "bun scripts/release-all.ts --release-as patch",
11
11
  "release:minor": "bun scripts/release-all.ts --release-as minor",
@@ -30,10 +30,12 @@
30
30
  "skills/**/*",
31
31
  "prompts/**/*",
32
32
  "scripts/**/*",
33
+ ".pi/plugins/**/*",
33
34
  "package.json",
34
35
  "README.md",
35
36
  "CHANGELOG.md",
36
- "LICENSE"
37
+ "LICENSE",
38
+ "config.toml.example"
37
39
  ],
38
40
  "keywords": [
39
41
  "pi-package",
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Generate Architecture Decision Records.
5
5
  */
6
- import type { ADR } from "./types.js";
6
+ import type { ADR } from './types.js';
7
7
  /**
8
8
  * Generate an ADR file
9
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"adr.d.ts","sourceRoot":"","sources":["../src/adr.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAEtC;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAkB5C;AAED;;GAEG;AACH,wBAAgB,SAAS,CACxB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GAClB,GAAG,CAUL"}
1
+ {"version":3,"file":"adr.d.ts","sourceRoot":"","sources":["../src/adr.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAEtC;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAkB5C;AAED;;GAEG;AACH,wBAAgB,SAAS,CACvB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACnB,GAAG,CAUL"}
@@ -32,11 +32,11 @@ export function createADR(id, title, context, decision, consequences) {
32
32
  return {
33
33
  id,
34
34
  title,
35
- status: "proposed",
35
+ status: 'proposed',
36
36
  context,
37
37
  decision,
38
38
  consequences,
39
- createdAt: new Date().toISOString().split("T")[0],
39
+ createdAt: new Date().toISOString().split('T')[0],
40
40
  };
41
41
  }
42
42
  //# sourceMappingURL=adr.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"adr.js","sourceRoot":"","sources":["../src/adr.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,GAAQ;IACnC,OAAO,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,KAAK;;;EAG/B,GAAG,CAAC,MAAM;;;EAGV,GAAG,CAAC,OAAO;;;EAGX,GAAG,CAAC,QAAQ;;;EAGZ,GAAG,CAAC,YAAY;;;YAGN,GAAG,CAAC,SAAS;CACxB,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CACxB,EAAU,EACV,KAAa,EACb,OAAe,EACf,QAAgB,EAChB,YAAoB;IAEpB,OAAO;QACN,EAAE;QACF,KAAK;QACL,MAAM,EAAE,UAAU;QAClB,OAAO;QACP,QAAQ;QACR,YAAY;QACZ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KACjD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"adr.js","sourceRoot":"","sources":["../src/adr.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,GAAQ;IAClC,OAAO,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,KAAK;;;EAGhC,GAAG,CAAC,MAAM;;;EAGV,GAAG,CAAC,OAAO;;;EAGX,GAAG,CAAC,QAAQ;;;EAGZ,GAAG,CAAC,YAAY;;;YAGN,GAAG,CAAC,SAAS;CACxB,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CACvB,EAAU,EACV,KAAa,EACb,OAAe,EACf,QAAgB,EAChB,YAAoB;IAEpB,OAAO;QACL,EAAE;QACF,KAAK;QACL,MAAM,EAAE,UAAU;QAClB,OAAO;QACP,QAAQ;QACR,YAAY;QACZ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KAClD,CAAC;AACJ,CAAC"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Generate ADR and Mermaid diagrams from project analysis.
5
5
  */
6
- export * from "./types.js";
7
- export * from "./mermaid.js";
8
- export * from "./adr.js";
6
+ export * from './types.js';
7
+ export * from './mermaid.js';
8
+ export * from './adr.js';
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Generate ADR and Mermaid diagrams from project analysis.
5
5
  */
6
- export * from "./types.js";
7
- export * from "./mermaid.js";
8
- export * from "./adr.js";
6
+ export * from './types.js';
7
+ export * from './mermaid.js';
8
+ export * from './adr.js';
9
9
  //# sourceMappingURL=index.js.map
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Generate Mermaid diagrams.
5
5
  */
6
- import type { ArchitectureDiagram, ArchitectureAnalysis } from "./types.js";
6
+ import type { ArchitectureDiagram, ArchitectureAnalysis } from './types.js';
7
7
  /**
8
8
  * Generate component diagram
9
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"mermaid.d.ts","sourceRoot":"","sources":["../src/mermaid.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACX,mBAAmB,EAEnB,oBAAoB,EACpB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,wBAAgB,wBAAwB,CACvC,QAAQ,EAAE,oBAAoB,GAC5B,mBAAmB,CAoBrB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACtC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,GACxD,mBAAmB,CAYrB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAClC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,EACtC,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,GACnD,mBAAmB,CAerB"}
1
+ {"version":3,"file":"mermaid.d.ts","sourceRoot":"","sources":["../src/mermaid.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAe,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEzF;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,mBAAmB,CAkB5F;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,GACzD,mBAAmB,CAcrB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,EACtC,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,GACpD,mBAAmB,CAerB"}
@@ -8,20 +8,20 @@
8
8
  */
9
9
  export function generateComponentDiagram(analysis) {
10
10
  const mermaid = [
11
- "graph TB",
12
- " subgraph Layers",
11
+ 'graph TB',
12
+ ' subgraph Layers',
13
13
  ...analysis.layers.map((layer, i) => {
14
14
  const nodes = analysis.components.filter((_, j) => j % analysis.layers.length === i);
15
- return ` ${nodes.join(" --> ")}`;
15
+ return ` ${nodes.join(' --> ')}`;
16
16
  }),
17
- " end",
18
- ...analysis.dependencies.map((d) => ` ${d.from} --> ${d.to}`),
19
- ].join("\n");
17
+ ' end',
18
+ ...analysis.dependencies.map(d => ` ${d.from} --> ${d.to}`),
19
+ ].join('\n');
20
20
  return {
21
- type: "component",
22
- title: "Architecture Components",
21
+ type: 'component',
22
+ title: 'Architecture Components',
23
23
  mermaid,
24
- description: "Component diagram showing layers and dependencies",
24
+ description: 'Component diagram showing layers and dependencies',
25
25
  };
26
26
  }
27
27
  /**
@@ -29,14 +29,14 @@ export function generateComponentDiagram(analysis) {
29
29
  */
30
30
  export function generateSequenceDiagram(title, steps) {
31
31
  const mermaid = [
32
- "sequenceDiagram",
33
- ...steps.map((s) => ` ${s.actor}->>+${s.target}: ${s.action}`),
34
- ].join("\n");
32
+ 'sequenceDiagram',
33
+ ...steps.map(s => ` ${s.actor}->>+${s.target}: ${s.action}`),
34
+ ].join('\n');
35
35
  return {
36
- type: "sequence",
36
+ type: 'sequence',
37
37
  title,
38
38
  mermaid,
39
- description: "Sequence diagram showing interaction flow",
39
+ description: 'Sequence diagram showing interaction flow',
40
40
  };
41
41
  }
42
42
  /**
@@ -44,15 +44,15 @@ export function generateSequenceDiagram(title, steps) {
44
44
  */
45
45
  export function generateFlowDiagram(title, nodes, edges) {
46
46
  const mermaid = [
47
- "flowchart LR",
48
- ...nodes.map((n) => ` ${n.id}[${n.label}]`),
49
- ...edges.map((e) => ` ${e.from}${e.label ? `-->|"${e.label}"|` : "->>"}${e.to}`),
50
- ].join("\n");
47
+ 'flowchart LR',
48
+ ...nodes.map(n => ` ${n.id}[${n.label}]`),
49
+ ...edges.map(e => ` ${e.from}${e.label ? `-->|"${e.label}"|` : '->>'}${e.to}`),
50
+ ].join('\n');
51
51
  return {
52
- type: "flow",
52
+ type: 'flow',
53
53
  title,
54
54
  mermaid,
55
- description: "Flow diagram showing process flow",
55
+ description: 'Flow diagram showing process flow',
56
56
  };
57
57
  }
58
58
  //# sourceMappingURL=mermaid.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mermaid.js","sourceRoot":"","sources":["../src/mermaid.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACvC,QAA8B;IAE9B,MAAM,OAAO,GAAG;QACf,UAAU;QACV,qBAAqB;QACrB,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,CACvC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAC1C,CAAC;YACF,OAAO,WAAW,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACzC,CAAC,CAAC;QACF,SAAS;QACT,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC;KAChE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,OAAO;QACN,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,yBAAyB;QAChC,OAAO;QACP,WAAW,EAAE,mDAAmD;KAChE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACtC,KAAa,EACb,KAA0D;IAE1D,MAAM,OAAO,GAAG;QACf,iBAAiB;QACjB,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;KACjE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,OAAO;QACN,IAAI,EAAE,UAAU;QAChB,KAAK;QACL,OAAO;QACP,WAAW,EAAE,2CAA2C;KACxD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAClC,KAAa,EACb,KAAsC,EACtC,KAAqD;IAErD,MAAM,OAAO,GAAG;QACf,cAAc;QACd,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC;QAC9C,GAAG,KAAK,CAAC,GAAG,CACX,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,EAAE,CACrE;KACD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,OAAO;QACN,IAAI,EAAE,MAAM;QACZ,KAAK;QACL,OAAO;QACP,WAAW,EAAE,mCAAmC;KAChD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"mermaid.js","sourceRoot":"","sources":["../src/mermaid.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,QAA8B;IACrE,MAAM,OAAO,GAAG;QACd,UAAU;QACV,qBAAqB;QACrB,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YAClC,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;YACrF,OAAO,WAAW,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1C,CAAC,CAAC;QACF,SAAS;QACT,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC;KAC/D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,yBAAyB;QAChC,OAAO;QACP,WAAW,EAAE,mDAAmD;KACjE,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,KAAa,EACb,KAA0D;IAE1D,MAAM,OAAO,GAAG;QACd,iBAAiB;QACjB,GAAG,KAAK,CAAC,GAAG,CACV,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAClD;KACF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,KAAK;QACL,OAAO;QACP,WAAW,EAAE,2CAA2C;KACzD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAAa,EACb,KAAsC,EACtC,KAAqD;IAErD,MAAM,OAAO,GAAG;QACd,cAAc;QACd,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC;QAC5C,GAAG,KAAK,CAAC,GAAG,CACV,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,EAAE,CACpE;KACF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,KAAK;QACL,OAAO;QACP,WAAW,EAAE,mCAAmC;KACjD,CAAC;AACJ,CAAC"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Generate ADR and Mermaid diagrams from project analysis.
5
5
  */
6
- export type DiagramType = "component" | "flow" | "sequence" | "er" | "class";
6
+ export type DiagramType = 'component' | 'flow' | 'sequence' | 'er' | 'class';
7
7
  export interface ArchitectureDiagram {
8
8
  type: DiagramType;
9
9
  title: string;
@@ -13,7 +13,7 @@ export interface ArchitectureDiagram {
13
13
  export interface ADR {
14
14
  id: string;
15
15
  title: string;
16
- status: "proposed" | "accepted" | "deprecated";
16
+ status: 'proposed' | 'accepted' | 'deprecated';
17
17
  context: string;
18
18
  decision: string;
19
19
  consequences: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,IAAI,GAAG,OAAO,CAAC;AAE7E,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,GAAG;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,GAAG,UAAU,GAAG,YAAY,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACpC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7C,MAAM,EAAE,MAAM,EAAE,CAAC;CACjB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,IAAI,GAAG,OAAO,CAAC;AAE7E,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,GAAG,UAAU,GAAG,YAAY,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7C,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB"}
@@ -4,13 +4,13 @@
4
4
  * Generate Architecture Decision Records.
5
5
  */
6
6
 
7
- import type { ADR } from "./types.js";
7
+ import type { ADR } from './types.js';
8
8
 
9
9
  /**
10
10
  * Generate an ADR file
11
11
  */
12
12
  export function generateADR(adr: ADR): string {
13
- return `# ${adr.id}: ${adr.title}
13
+ return `# ${adr.id}: ${adr.title}
14
14
 
15
15
  ## Status
16
16
  ${adr.status}
@@ -33,19 +33,19 @@ ${adr.consequences}
33
33
  * Create a new ADR
34
34
  */
35
35
  export function createADR(
36
- id: string,
37
- title: string,
38
- context: string,
39
- decision: string,
40
- consequences: string,
36
+ id: string,
37
+ title: string,
38
+ context: string,
39
+ decision: string,
40
+ consequences: string
41
41
  ): ADR {
42
- return {
43
- id,
44
- title,
45
- status: "proposed",
46
- context,
47
- decision,
48
- consequences,
49
- createdAt: new Date().toISOString().split("T")[0],
50
- };
42
+ return {
43
+ id,
44
+ title,
45
+ status: 'proposed',
46
+ context,
47
+ decision,
48
+ consequences,
49
+ createdAt: new Date().toISOString().split('T')[0],
50
+ };
51
51
  }
@@ -4,6 +4,6 @@
4
4
  * Generate ADR and Mermaid diagrams from project analysis.
5
5
  */
6
6
 
7
- export * from "./types.js";
8
- export * from "./mermaid.js";
9
- export * from "./adr.js";
7
+ export * from './types.js';
8
+ export * from './mermaid.js';
9
+ export * from './adr.js';