solo-cto-agent 0.5.1 → 1.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 (197) hide show
  1. package/CHANGELOG +136 -46
  2. package/LICENSE +21 -21
  3. package/README.md +902 -409
  4. package/bin/cli.js +1937 -177
  5. package/bin/cowork-engine.js +3028 -0
  6. package/bin/i18n.js +175 -0
  7. package/bin/inbound-feedback.js +243 -0
  8. package/bin/knowledge-gen.js +498 -0
  9. package/bin/local-review.js +780 -0
  10. package/bin/notify.js +316 -0
  11. package/bin/plugin-manager.js +334 -0
  12. package/bin/prompt-utils.js +79 -0
  13. package/bin/rework.js +279 -0
  14. package/bin/sync.js +489 -0
  15. package/bin/telegram-wizard.js +479 -0
  16. package/bin/uiux-engine.js +804 -0
  17. package/bin/watch.js +461 -0
  18. package/bin/wizard.js +277 -0
  19. package/docs/cowork-main-install.md +559 -0
  20. package/docs/cto-policy.md +137 -0
  21. package/docs/demo.svg +14 -14
  22. package/docs/external-loop-policy.md +263 -0
  23. package/docs/feedback-guide.md +223 -0
  24. package/docs/plugin-api-v2.md +285 -0
  25. package/docs/skill-slimming.md +124 -76
  26. package/docs/telegram-wizard-spec.md +302 -0
  27. package/docs/tier-examples.md +207 -0
  28. package/docs/tier-matrix.md +112 -0
  29. package/failure-catalog.json +111 -62
  30. package/failure-catalog.schema.json +26 -26
  31. package/package.json +40 -29
  32. package/skills/_shared/agent-spec.md +211 -0
  33. package/skills/_shared/skill-context.md +116 -0
  34. package/skills/build/SKILL.md +200 -377
  35. package/skills/build/references/architect.md +30 -0
  36. package/skills/build/references/avoid-patterns.md +22 -0
  37. package/skills/build/references/batch-automation.md +24 -0
  38. package/skills/build/references/build.md +18 -0
  39. package/skills/build/references/deploy.md +17 -0
  40. package/skills/build/references/execution-examples.md +7 -0
  41. package/skills/build/references/prereq-scan.md +42 -0
  42. package/skills/build/references/review-antipatterns.md +11 -0
  43. package/skills/craft/SKILL.md +196 -258
  44. package/skills/craft/references/component-specs.md +154 -0
  45. package/skills/craft/references/execution-examples.md +76 -0
  46. package/skills/craft/references/motion-system.md +53 -0
  47. package/skills/craft/references/oklch-palette.md +67 -0
  48. package/skills/craft/references/shadow-system.md +36 -0
  49. package/skills/craft/references/type-scale.md +29 -0
  50. package/skills/craft/references/typography-pairings.md +15 -0
  51. package/skills/memory/SKILL.md +214 -234
  52. package/skills/memory/references/execution-guide.md +145 -0
  53. package/skills/memory/references/record-format.md +92 -0
  54. package/skills/memory/references/storage-structure.md +185 -0
  55. package/skills/orchestrate/SKILL.md +161 -141
  56. package/skills/review/SKILL.md +235 -195
  57. package/skills/review/references/scoring-criteria.md +129 -0
  58. package/skills/review/references/synthesis-framework.md +106 -0
  59. package/skills/review/references/usage-patterns.md +118 -0
  60. package/skills/ship/SKILL.md +201 -282
  61. package/skills/ship/references/error-checklist.md +15 -0
  62. package/skills/ship/references/execution-examples.md +5 -0
  63. package/skills/ship/references/failure-classification.md +23 -0
  64. package/skills/ship/references/pre-deploy-checklist.md +15 -0
  65. package/skills/ship/references/recovery-loop.md +20 -0
  66. package/skills/ship/references/reporting-format.md +31 -0
  67. package/skills/spark/SKILL.md +164 -269
  68. package/skills/spark/references/01-seed-stage.md +39 -0
  69. package/skills/spark/references/02-market-framing.md +83 -0
  70. package/skills/spark/references/03-competitor-scan.md +131 -0
  71. package/skills/spark/references/04-unit-economics.md +228 -0
  72. package/skills/spark/references/05-scenarios.md +175 -0
  73. package/skills/spark/references/06-prd-direction.md +221 -0
  74. package/skills/spark/references/anti-patterns-and-tone.md +143 -0
  75. package/templates/builder-defaults/agent-scores.json +23 -0
  76. package/templates/builder-defaults/routing-policy.json +44 -0
  77. package/templates/context.md +29 -29
  78. package/templates/orchestrator/.claude/agents/implementer.md +10 -0
  79. package/templates/orchestrator/.claude/agents/integrator.md +10 -0
  80. package/templates/orchestrator/.claude/agents/reviewer.md +10 -0
  81. package/templates/orchestrator/.codex/prompts/implement.md +10 -0
  82. package/templates/orchestrator/.codex/prompts/integrate.md +10 -0
  83. package/templates/orchestrator/.codex/prompts/review.md +10 -0
  84. package/templates/orchestrator/.env.example +16 -0
  85. package/templates/orchestrator/.github/workflows/agent-score-update.yml +46 -0
  86. package/templates/orchestrator/.github/workflows/auto-diagnose.yml +27 -0
  87. package/templates/orchestrator/.github/workflows/ci.yml +60 -0
  88. package/templates/orchestrator/.github/workflows/claude-auto.yml +50 -0
  89. package/templates/orchestrator/.github/workflows/codex-auto.yml +28 -0
  90. package/templates/orchestrator/.github/workflows/combined-pr-with-uiux.yml +88 -0
  91. package/templates/orchestrator/.github/workflows/combined-pr.yml +30 -0
  92. package/templates/orchestrator/.github/workflows/comparison-report.yml +28 -0
  93. package/templates/orchestrator/.github/workflows/cross-review-dispatch.yml +28 -0
  94. package/templates/orchestrator/.github/workflows/cross-review.yml +30 -0
  95. package/templates/orchestrator/.github/workflows/daily-briefing.yml +24 -0
  96. package/templates/orchestrator/.github/workflows/decision-insights.yml +22 -0
  97. package/templates/orchestrator/.github/workflows/decision-queue.yml +25 -0
  98. package/templates/orchestrator/.github/workflows/meta-report.yml +24 -0
  99. package/templates/orchestrator/.github/workflows/ops-validate.yml +37 -0
  100. package/templates/orchestrator/.github/workflows/orchestrator-check.yml +24 -0
  101. package/templates/orchestrator/.github/workflows/preview-ready.yml +15 -0
  102. package/templates/orchestrator/.github/workflows/preview-summary.yml +209 -0
  103. package/templates/orchestrator/.github/workflows/rework-auto.yml +29 -0
  104. package/templates/orchestrator/.github/workflows/route-issue.yml +125 -0
  105. package/templates/orchestrator/.github/workflows/telegram-notify.yml +43 -0
  106. package/templates/orchestrator/.github/workflows/telegram-webhook-sync.yml +23 -0
  107. package/templates/orchestrator/.github/workflows/uiux-quality-gate.yml +269 -0
  108. package/templates/orchestrator/.github/workflows/visual-check.yml +77 -0
  109. package/templates/orchestrator/CLAUDE.md +14 -0
  110. package/templates/orchestrator/agents/README.md +42 -0
  111. package/templates/orchestrator/agents/implementer.md +34 -0
  112. package/templates/orchestrator/agents/integrator.md +26 -0
  113. package/templates/orchestrator/agents/reviewer.md +36 -0
  114. package/templates/orchestrator/api/health.ts +39 -0
  115. package/templates/orchestrator/api/orchestrate/assign.ts +79 -0
  116. package/templates/orchestrator/api/scores/index.ts +49 -0
  117. package/templates/orchestrator/api/telegram/notify.ts +21 -0
  118. package/templates/orchestrator/api/telegram-webhook.js +1330 -0
  119. package/templates/orchestrator/api/webhook/github.ts +97 -0
  120. package/templates/orchestrator/docs/coding_rules.md +13 -0
  121. package/templates/orchestrator/docs/meta-issues/orchestrator-agent-scoring-automation-v1.md +82 -0
  122. package/templates/orchestrator/docs/meta-issues/orchestrator-ci-hardening-v1.md +80 -0
  123. package/templates/orchestrator/docs/meta-issues/orchestrator-hardening-v1.md +208 -0
  124. package/templates/orchestrator/docs/meta-issues/orchestrator-meta-validation-v1.md +85 -0
  125. package/templates/orchestrator/docs/meta-issues/orchestrator-routing-engine-v1.md +87 -0
  126. package/templates/orchestrator/docs/meta-issues/orchestrator-telegram-decision-loop-v1.md +85 -0
  127. package/templates/orchestrator/docs/product_requirements.md +20 -0
  128. package/templates/orchestrator/docs/test_policy.md +15 -0
  129. package/templates/orchestrator/lib/scores.ts +147 -0
  130. package/templates/orchestrator/lib/telegram.ts +57 -0
  131. package/templates/orchestrator/lib/types.ts +50 -0
  132. package/templates/orchestrator/ops/agents/claude-reviewer.js +153 -0
  133. package/templates/orchestrator/ops/agents/claude-worker.js +313 -0
  134. package/templates/orchestrator/ops/agents/codex-reporter.js +39 -0
  135. package/templates/orchestrator/ops/agents/codex-worker.js +319 -0
  136. package/templates/orchestrator/ops/agents/cross-reviewer.js +122 -0
  137. package/templates/orchestrator/ops/agents/rework-agent.js +286 -0
  138. package/templates/orchestrator/ops/agents/status-checker.js +90 -0
  139. package/templates/orchestrator/ops/codex-prompts.md +100 -0
  140. package/templates/orchestrator/ops/config/design-guidelines.json +117 -0
  141. package/templates/orchestrator/ops/integrations/telegram-commands.json +34 -0
  142. package/templates/orchestrator/ops/lib/build-verifier.js +125 -0
  143. package/templates/orchestrator/ops/lib/circuit-breaker.js +130 -0
  144. package/templates/orchestrator/ops/lib/repo-health-checker.js +115 -0
  145. package/templates/orchestrator/ops/lib/uiux-utils.js +399 -0
  146. package/templates/orchestrator/ops/orchestrator/CHANGELOG.md +45 -0
  147. package/templates/orchestrator/ops/orchestrator/README.md +38 -0
  148. package/templates/orchestrator/ops/orchestrator/agent-scores.json +35 -0
  149. package/templates/orchestrator/ops/orchestrator/decision-log.json +5 -0
  150. package/templates/orchestrator/ops/orchestrator/decision-message.js +566 -0
  151. package/templates/orchestrator/ops/orchestrator/error-patterns.md +17 -0
  152. package/templates/orchestrator/ops/orchestrator/meta-validation-policy.json +63 -0
  153. package/templates/orchestrator/ops/orchestrator/quality-log.md +9 -0
  154. package/templates/orchestrator/ops/orchestrator/routing-engine.js +266 -0
  155. package/templates/orchestrator/ops/orchestrator/routing-policy.json +59 -0
  156. package/templates/orchestrator/ops/orchestrator/schemas/agent-scores.schema.json +72 -0
  157. package/templates/orchestrator/ops/orchestrator/schemas/meta-validation-policy.schema.json +65 -0
  158. package/templates/orchestrator/ops/orchestrator/schemas/round-log.schema.json +56 -0
  159. package/templates/orchestrator/ops/orchestrator/schemas/routing-policy.schema.json +62 -0
  160. package/templates/orchestrator/ops/orchestrator/skill-changelog.md +17 -0
  161. package/templates/orchestrator/ops/orchestrator/telegram-settings.json +10 -0
  162. package/templates/orchestrator/ops/orchestrator/trigger-keywords.json +47 -0
  163. package/templates/orchestrator/ops/orchestrator/update-agent-scores.js +274 -0
  164. package/templates/orchestrator/ops/orchestrator/validate-orchestrator.js +317 -0
  165. package/templates/orchestrator/ops/orchestrator/visual-baselines.json +1 -0
  166. package/templates/orchestrator/ops/package-lock.json +71 -0
  167. package/templates/orchestrator/ops/package.json +17 -0
  168. package/templates/orchestrator/ops/scripts/auto-diagnose.js +157 -0
  169. package/templates/orchestrator/ops/scripts/combined-pr.js +197 -0
  170. package/templates/orchestrator/ops/scripts/comparison-report.js +310 -0
  171. package/templates/orchestrator/ops/scripts/daily-briefing.js +270 -0
  172. package/templates/orchestrator/ops/scripts/decision-insights.js +140 -0
  173. package/templates/orchestrator/ops/scripts/decision-queue.js +239 -0
  174. package/templates/orchestrator/ops/scripts/meta-report.js +157 -0
  175. package/templates/orchestrator/ops/scripts/sync-preview-workflow.js +91 -0
  176. package/templates/orchestrator/ops/scripts/uiux-code-review.js +205 -0
  177. package/templates/orchestrator/ops/scripts/uiux-cross-verify.js +382 -0
  178. package/templates/orchestrator/ops/scripts/uiux-suggest-fixes.js +326 -0
  179. package/templates/orchestrator/ops/scripts/uiux-visual-review.js +211 -0
  180. package/templates/orchestrator/ops/scripts/visual-check.js +294 -0
  181. package/templates/orchestrator/package.json +24 -0
  182. package/templates/orchestrator/tsconfig.json +36 -0
  183. package/templates/orchestrator/vercel.json +12 -0
  184. package/templates/product-repo/.env.example +17 -0
  185. package/templates/product-repo/.github/ISSUE_TEMPLATE/dual-agent-task.md +25 -0
  186. package/templates/product-repo/.github/pull_request_template.md +24 -0
  187. package/templates/product-repo/.github/workflows/claude-auto.yml +60 -0
  188. package/templates/product-repo/.github/workflows/codex-auto.yml +60 -0
  189. package/templates/product-repo/.github/workflows/comparison-dispatch.yml +59 -0
  190. package/templates/product-repo/.github/workflows/cross-review-dispatch.yml +27 -0
  191. package/templates/product-repo/.github/workflows/cross-review.yml +36 -0
  192. package/templates/product-repo/.github/workflows/preview-summary.yml +146 -0
  193. package/templates/product-repo/.github/workflows/rework-dispatch.yml +51 -0
  194. package/templates/product-repo/.github/workflows/telegram-notify.yml +94 -0
  195. package/templates/product-repo/STATE.md +30 -0
  196. package/templates/project.md +38 -38
  197. package/tiers.json +149 -0
package/CHANGELOG CHANGED
@@ -1,46 +1,136 @@
1
- # Changelog
2
-
3
- ## 0.5.1
4
-
5
- * added skill slimming docs (references/ pattern with measured results)
6
- * fixed BOM encoding in CONTRIBUTING
7
- * fixed corrupted FAQ section in README
8
- * cleaned up README: removed duplicate sections, consolidated post-install guide
9
- * updated ROADMAP with v0.5.0 completion and v0.6.0 plan
10
-
11
- ## 0.5.0
12
-
13
- * added CLI init/status commands for npm distribution
14
- * added demo asset, architecture diagram, and updated Quick Start
15
- * expanded CONTRIBUTING and templates
16
-
17
- ## 0.4.0
18
-
19
- * added package.json and basic test tooling
20
- * added failure-catalog.json and schema validation
21
- * added CI test workflow for PRs
22
- * added ROADMAP.md
23
-
24
- ## 0.3.0
25
-
26
- * added .cursorrules for Cursor IDE support
27
- * added .windsurfrules for Windsurf (Cascade) support
28
- * added .github/copilot-instructions.md for GitHub Copilot support
29
- * all three rule files share the same CTO philosophy, adapted to each tool's format
30
-
31
- ## 0.2.0
32
-
33
- * rewrote README to sound more human and less sales-heavy
34
- * improved `setup.sh` toward safer repeat installs and updates
35
- * softened over-strong automation claims in `build`
36
- * clarified `craft` as intentionally opinionated
37
- * tightened `review` wording
38
- * added contribution guidance
39
- * added example files for practical usage
40
-
41
- ## 0.1.0
42
-
43
- * initial public release
44
- * added build, ship, craft, spark, review, and memory skills
45
- * added setup script
46
- * added templates for context and project state
1
+ # Changelog
2
+
3
+ ## 1.1.0 — Tier-aware reviews, security signals, plugins & telegram
4
+
5
+ **Theme**: closing the last gaps around signal quality and agent
6
+ extensibility. The review loop now reasons about Haiku/Sonnet/Opus
7
+ tier-appropriately, surfaces live CVE/GHSA advisories via OSV.dev,
8
+ captures screenshots without Playwright, and gains a first-cut
9
+ plugin system + experimental telegram setup wizard.
10
+
11
+ ### External signals (PR-G4)
12
+ * **T2 Security Advisories (OSV.dev)** — CVE + GHSA scan across
13
+ `dependencies` + `devDependencies`. Severity normalized (DB-specific
14
+ > CVSS numeric > UNKNOWN) and merged into the external-knowledge
15
+ context block. Gate: `COWORK_EXTERNAL_KNOWLEDGE_SECURITY=0` to skip.
16
+
17
+ ### Review tiering (PR-G2)
18
+ * **Per-tier Claude model resolution** — Haiku (cheap triage) / Sonnet
19
+ (default) / Opus (deep review) selected automatically based on watch
20
+ tier. Overridable via `ANTHROPIC_MODEL_HAIKU|SONNET|OPUS`.
21
+
22
+ ### UI/UX loop (PR-G5)
23
+ * **Playwright-free screenshot capture** — `uiux vision-review --url`
24
+ and `uiux capture --url` now fall back to thum.io when Playwright is
25
+ unavailable. Viewports: mobile 375x812 / tablet 768x1024 / desktop
26
+ 1280x800.
27
+
28
+ ### Plugins & integrations (PR-G6 / G7)
29
+ * **`docs/plugin-api-v2.md`** capability manifest spec
30
+ (env/net/fs/cli/hook/schedule prefixes), contribution points, agent
31
+ targeting (`claude` / `codex` / `cowork` / `headless`).
32
+ * **`plugin` subcommand** — filesystem-only manager:
33
+ `solo-cto-agent plugin list|show|add --path <dir>|remove`. Records
34
+ metadata only; does NOT execute plugin code. Runtime loader lands
35
+ in a follow-up behind the capability gate.
36
+ * **`telegram wizard`** (experimental `SOLO_CTO_EXPERIMENTAL=1`)
37
+ one-command bot token + chat_id capture + `.env` / shell profile
38
+ / GitHub secret writeback + live sendMessage verification.
39
+ * **`docs/telegram-wizard-spec.md`** full spec including failure
40
+ modes and i18n hooks.
41
+
42
+ ### Developer experience
43
+ * **375 tests** (up from 247 in 1.0.0) across 28 files — all offline,
44
+ all network calls stubbed via injected `fetchImpl`.
45
+ * **Shared `prompt-utils.js`** — `ask` / `askYesNo` / `askChoice` /
46
+ `isTTY` / `createRl` extracted from `wizard.js` for future wizards.
47
+ * **npm publish automation** — tag `v*` now triggers full CI +
48
+ `npm publish` + GitHub Release in one workflow.
49
+
50
+ ### Upgrade notes
51
+ * No breaking changes. All new features are additive and gated on
52
+ env vars (`COWORK_EXTERNAL_KNOWLEDGE_SECURITY`,
53
+ `SOLO_CTO_EXPERIMENTAL`).
54
+ * `solo-cto-agent plugin` and `solo-cto-agent telegram` are new
55
+ commands — existing commands are unchanged.
56
+
57
+ ## 1.0.0 — First stable release
58
+
59
+ **Why 1.0**: the loop is now closable end-to-end. Previous 0.x releases were
60
+ the skill pack alone. 1.0 adds the three-tier external-signal framework,
61
+ self-cross-review, inbound feedback, and honest signal reporting — the pieces
62
+ needed to trust a single-agent loop for production work.
63
+
64
+ ### External-loop framework (PR-E1 through E5)
65
+ * T1 Peer Model — OpenAI Codex cross-check via `dual-review`
66
+ * T2 External Knowledge — npm registry package-currency scan surfaces major/minor/deprecated deltas
67
+ * T3 Ground Truth — Vercel deployment + Supabase log signals injected into the review prompt
68
+ * Self-loop warning — boxed notice when no external signals are active (single-model blind-spot alert)
69
+ * Inbound feedback channel — `feedback record` + Slack/GitHub dispatch
70
+
71
+ ### Dogfood-driven fixes (PR-F1, F2)
72
+ * default-branch auto-detection (B1) — no more hardcoded `main`, works on `master` / `develop` repos
73
+ * `--target <base>` override (B2) — diff against any ref
74
+ * `--dry-run` now surfaces the self-loop warning without API spend (B3)
75
+ * README flags match reality (B4) — dead examples removed
76
+ * `--json | jq` pipe-safety (B5) — `setLogChannel("stderr")` keeps stdout pure JSON
77
+ * **honest signal reporting (F2)** — `activeCount` now reflects actual fetch outcome, not just env flags. A tier set-but-silent no longer gets counted as "active", and hints surface `enabled-but-silent: T2 (env set, no data)` for debugging.
78
+
79
+ ### Developer experience
80
+ * 247 tests (up from ~180 in 0.6.x) covering CLI, engine parser, watch gating, self-loop warning, and new drive-run regressions
81
+ * Package-validate + Changelog + Test CI workflows all green
82
+
83
+ ## 0.6.0
84
+
85
+ * added `solo-cto-agent lint` command — flags skills over 150 lines, missing frontmatter, large code blocks
86
+ * added CLI tests (init, status, lint, --force, MISSING state) — 8 new test cases
87
+ * added npm pack dry-run test — verifies tarball includes required files and excludes tests/CI
88
+ * expanded failure-catalog from 8 to 15 patterns (Next.js types, edge runtime, JWT, peer deps, DB migrations, deploy timeouts)
89
+ * added SECURITY.md
90
+ * applied references/ pattern to build skill (377→197 lines) and ship skill (283→124 lines)
91
+ * improved README architecture diagram (full skill system, not just error flow)
92
+
93
+ ## 0.5.1
94
+
95
+ * added skill slimming docs (references/ pattern with measured results)
96
+ * fixed BOM encoding in CONTRIBUTING
97
+ * fixed corrupted FAQ section in README
98
+ * cleaned up README: removed duplicate sections, consolidated post-install guide
99
+ * updated ROADMAP with v0.5.0 completion and v0.6.0 plan
100
+
101
+ ## 0.5.0
102
+
103
+ * added CLI init/status commands for npm distribution
104
+ * added demo asset, architecture diagram, and updated Quick Start
105
+ * expanded CONTRIBUTING and templates
106
+
107
+ ## 0.4.0
108
+
109
+ * added package.json and basic test tooling
110
+ * added failure-catalog.json and schema validation
111
+ * added CI test workflow for PRs
112
+ * added ROADMAP.md
113
+
114
+ ## 0.3.0
115
+
116
+ * added .cursorrules for Cursor IDE support
117
+ * added .windsurfrules for Windsurf (Cascade) support
118
+ * added .github/copilot-instructions.md for GitHub Copilot support
119
+ * all three rule files share the same CTO philosophy, adapted to each tool's format
120
+
121
+ ## 0.2.0
122
+
123
+ * rewrote README to sound more human and less sales-heavy
124
+ * improved `setup.sh` toward safer repeat installs and updates
125
+ * softened over-strong automation claims in `build`
126
+ * clarified `craft` as intentionally opinionated
127
+ * tightened `review` wording
128
+ * added contribution guidance
129
+ * added example files for practical usage
130
+
131
+ ## 0.1.0
132
+
133
+ * initial public release
134
+ * added build, ship, craft, spark, review, and memory skills
135
+ * added setup script
136
+ * added templates for context and project state
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 seunghunbae-3svs
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 seunghunbae-3svs
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.