ndomo 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 (247) hide show
  1. package/.bun-version +1 -0
  2. package/.dockerignore +79 -0
  3. package/.editorconfig +18 -0
  4. package/.env.example +19 -0
  5. package/.github/CODEOWNERS +8 -0
  6. package/.github/ISSUE_TEMPLATE/bug_report.yml +62 -0
  7. package/.github/ISSUE_TEMPLATE/config.yml +2 -0
  8. package/.github/ISSUE_TEMPLATE/feature_request.yml +34 -0
  9. package/.github/dependabot.yml +36 -0
  10. package/.github/pull_request_template.md +24 -0
  11. package/.github/release.yml +30 -0
  12. package/.github/workflows/gitleaks.yml +28 -0
  13. package/.github/workflows/release-please.yml +27 -0
  14. package/.github/workflows/smoke.yml +29 -0
  15. package/.husky/commit-msg +1 -0
  16. package/CHANGELOG.md +114 -0
  17. package/Dockerfile +32 -0
  18. package/README.es.md +174 -0
  19. package/README.md +187 -0
  20. package/agents/chronicler.md +98 -0
  21. package/agents/ci-smith.md +136 -0
  22. package/agents/craftsman.md +341 -0
  23. package/agents/deploy-smith.md +138 -0
  24. package/agents/foreman.md +377 -0
  25. package/agents/go-smith.md +164 -0
  26. package/agents/guild.md +188 -0
  27. package/agents/inspector.md +83 -0
  28. package/agents/js-smith.md +127 -0
  29. package/agents/ops-scout.md +173 -0
  30. package/agents/painter.md +200 -0
  31. package/agents/python-smith.md +120 -0
  32. package/agents/ranger.md +307 -0
  33. package/agents/release-smith.md +165 -0
  34. package/agents/rust-smith.md +159 -0
  35. package/agents/sage.md +178 -0
  36. package/agents/scout.md +144 -0
  37. package/agents/scribe.md +156 -0
  38. package/agents/smith.md +201 -0
  39. package/agents/vue-smith.md +155 -0
  40. package/agents/warden.md +216 -0
  41. package/agents/zig-smith.md +156 -0
  42. package/bin/ndomo-analyses.ts +4 -0
  43. package/bin/ndomo-status.ts +4 -0
  44. package/biome.json +57 -0
  45. package/bun.lock +514 -0
  46. package/commitlint.config.js +3 -0
  47. package/config/ndomo.config.json +258 -0
  48. package/config/ndomo.schema.json +166 -0
  49. package/docs/agents.md +375 -0
  50. package/docs/bugs/plan-create-orphan-fk.md +131 -0
  51. package/docs/bugs/task_create_batch-order-index-collision.md +158 -0
  52. package/docs/configuration.md +276 -0
  53. package/docs/database.md +364 -0
  54. package/docs/features/feature-flexible-builder-v1.md +724 -0
  55. package/docs/features/feature-flexible-builder-v2.md +882 -0
  56. package/docs/features/feature-flexible-builder.md +974 -0
  57. package/docs/http-server.md +244 -0
  58. package/docs/installation.md +259 -0
  59. package/docs/integrations.md +129 -0
  60. package/docs/operations/anti-pattern-sub-agent-verify-2026-06-21.md +32 -0
  61. package/docs/operations/audit-v1.md +417 -0
  62. package/docs/operations/audit-v2.md +197 -0
  63. package/docs/operations/audit-v3.md +306 -0
  64. package/docs/operations/db-optimize-foundations.md +123 -0
  65. package/docs/operations/verify-gate-architecture.md +82 -0
  66. package/docs/workflows.md +448 -0
  67. package/opencode.json +5 -0
  68. package/package.json +65 -0
  69. package/release-please-config.json +11 -0
  70. package/scripts/dev-bust-cache.sh +164 -0
  71. package/scripts/install.sh +688 -0
  72. package/scripts/smoke-e2e.ts +704 -0
  73. package/scripts/smoke-hot.ts +417 -0
  74. package/scripts/smoke-http.sh +228 -0
  75. package/scripts/smoke-v4.ts +256 -0
  76. package/scripts/smoke-v5.ts +397 -0
  77. package/scripts/smoke.sh +9 -0
  78. package/scripts/uninstall.sh +224 -0
  79. package/skills/api-security-best-practices/SKILL.md +915 -0
  80. package/skills/bash-scripting/SKILL.md +201 -0
  81. package/skills/bun/SKILL.md +313 -0
  82. package/skills/cavecrew/SKILL.md +82 -0
  83. package/skills/caveman/SKILL.md +74 -0
  84. package/skills/caveman-review/README.md +33 -0
  85. package/skills/caveman-review/SKILL.md +55 -0
  86. package/skills/find-skills/SKILL.md +142 -0
  87. package/skills/frontend-design/LICENSE.txt +177 -0
  88. package/skills/frontend-design/SKILL.md +55 -0
  89. package/skills/golang-patterns/SKILL.md +674 -0
  90. package/skills/golang-security/SKILL.md +185 -0
  91. package/skills/golang-security/evals/evals.json +595 -0
  92. package/skills/golang-security/references/architecture.md +268 -0
  93. package/skills/golang-security/references/checklist.md +80 -0
  94. package/skills/golang-security/references/cookies.md +200 -0
  95. package/skills/golang-security/references/cryptography.md +424 -0
  96. package/skills/golang-security/references/filesystem.md +285 -0
  97. package/skills/golang-security/references/injection.md +315 -0
  98. package/skills/golang-security/references/logging.md +163 -0
  99. package/skills/golang-security/references/memory-safety.md +241 -0
  100. package/skills/golang-security/references/network.md +253 -0
  101. package/skills/golang-security/references/secrets.md +189 -0
  102. package/skills/golang-security/references/third-party.md +159 -0
  103. package/skills/golang-security/references/threat-modeling.md +189 -0
  104. package/skills/golang-testing/SKILL.md +720 -0
  105. package/skills/grill-me/SKILL.md +7 -0
  106. package/skills/javascript-testing-patterns/SKILL.md +537 -0
  107. package/skills/javascript-testing-patterns/references/advanced-testing-patterns.md +513 -0
  108. package/skills/modern-javascript-patterns/SKILL.md +43 -0
  109. package/skills/modern-javascript-patterns/references/advanced-patterns.md +487 -0
  110. package/skills/modern-javascript-patterns/references/details.md +457 -0
  111. package/skills/python-anti-patterns/SKILL.md +349 -0
  112. package/skills/python-design-patterns/SKILL.md +85 -0
  113. package/skills/python-design-patterns/references/details.md +353 -0
  114. package/skills/python-error-handling/SKILL.md +193 -0
  115. package/skills/python-error-handling/references/details.md +171 -0
  116. package/skills/python-testing-patterns/SKILL.md +278 -0
  117. package/skills/python-testing-patterns/references/advanced-patterns.md +411 -0
  118. package/skills/python-testing-patterns/references/details.md +349 -0
  119. package/skills/rust-patterns/SKILL.md +500 -0
  120. package/skills/rust-testing/SKILL.md +501 -0
  121. package/skills/security-review/SKILL.md +504 -0
  122. package/skills/security-review/cloud-infrastructure-security.md +361 -0
  123. package/skills/vue-best-practices/SKILL.md +154 -0
  124. package/skills/vue-best-practices/references/animation-class-based-technique.md +254 -0
  125. package/skills/vue-best-practices/references/animation-state-driven-technique.md +291 -0
  126. package/skills/vue-best-practices/references/component-async.md +97 -0
  127. package/skills/vue-best-practices/references/component-data-flow.md +307 -0
  128. package/skills/vue-best-practices/references/component-fallthrough-attrs.md +174 -0
  129. package/skills/vue-best-practices/references/component-keep-alive.md +137 -0
  130. package/skills/vue-best-practices/references/component-slots.md +216 -0
  131. package/skills/vue-best-practices/references/component-suspense.md +228 -0
  132. package/skills/vue-best-practices/references/component-teleport.md +108 -0
  133. package/skills/vue-best-practices/references/component-transition-group.md +128 -0
  134. package/skills/vue-best-practices/references/component-transition.md +125 -0
  135. package/skills/vue-best-practices/references/composables.md +290 -0
  136. package/skills/vue-best-practices/references/directives.md +162 -0
  137. package/skills/vue-best-practices/references/perf-avoid-component-abstraction-in-lists.md +159 -0
  138. package/skills/vue-best-practices/references/perf-v-once-v-memo-directives.md +182 -0
  139. package/skills/vue-best-practices/references/perf-virtualize-large-lists.md +187 -0
  140. package/skills/vue-best-practices/references/plugins.md +166 -0
  141. package/skills/vue-best-practices/references/reactivity.md +344 -0
  142. package/skills/vue-best-practices/references/render-functions.md +201 -0
  143. package/skills/vue-best-practices/references/sfc.md +310 -0
  144. package/skills/vue-best-practices/references/state-management.md +135 -0
  145. package/skills/vue-best-practices/references/updated-hook-performance.md +187 -0
  146. package/skills/vue-pinia-best-practices/SKILL.md +21 -0
  147. package/skills/vue-pinia-best-practices/reference/pinia-no-active-pinia-error.md +248 -0
  148. package/skills/vue-pinia-best-practices/reference/pinia-setup-store-return-all-state.md +227 -0
  149. package/skills/vue-pinia-best-practices/reference/pinia-store-destructuring-breaks-reactivity.md +193 -0
  150. package/skills/vue-pinia-best-practices/reference/state-url-for-ephemeral-filters.md +238 -0
  151. package/skills/vue-pinia-best-practices/reference/state-use-pinia-for-large-apps.md +262 -0
  152. package/skills/vue-pinia-best-practices/reference/store-method-binding-parentheses.md +191 -0
  153. package/skills/zig-0.16/SKILL.md +840 -0
  154. package/skills/zig-0.16/scripts/check-zig-version.sh +21 -0
  155. package/src/cli/analyses.ts +280 -0
  156. package/src/cli/index.ts +108 -0
  157. package/src/cli/serve.ts +192 -0
  158. package/src/cli/smoke.ts +131 -0
  159. package/src/cli/status.test.ts +204 -0
  160. package/src/cli/status.ts +263 -0
  161. package/src/cli/vacuum.test.ts +82 -0
  162. package/src/cli/vacuum.ts +96 -0
  163. package/src/config/schema.test.ts +88 -0
  164. package/src/config/schema.ts +64 -0
  165. package/src/db/analyses-migration.test.ts +210 -0
  166. package/src/db/analyses.test.ts +466 -0
  167. package/src/db/analyses.ts +375 -0
  168. package/src/db/auto-checkpoint.ts +131 -0
  169. package/src/db/client.test.ts +129 -0
  170. package/src/db/client.ts +55 -0
  171. package/src/db/fts-escape.ts +20 -0
  172. package/src/db/incidents.test.ts +201 -0
  173. package/src/db/incidents.ts +93 -0
  174. package/src/db/index.ts +86 -0
  175. package/src/db/migrations-v13.test.ts +141 -0
  176. package/src/db/migrations-v8.test.ts +301 -0
  177. package/src/db/migrations.ts +147 -0
  178. package/src/db/plan-archive.test.ts +180 -0
  179. package/src/db/plan-archive.ts +274 -0
  180. package/src/db/plan-create.test.ts +276 -0
  181. package/src/db/plan-create.ts +78 -0
  182. package/src/db/plan-files.test.ts +289 -0
  183. package/src/db/plan-update-status.ts +287 -0
  184. package/src/db/plans.test.ts +490 -0
  185. package/src/db/plans.ts +534 -0
  186. package/src/db/resolve-project-dir.test.ts +143 -0
  187. package/src/db/resolve-project-dir.ts +75 -0
  188. package/src/db/rollbacks.test.ts +150 -0
  189. package/src/db/rollbacks.ts +67 -0
  190. package/src/db/schema.ts +907 -0
  191. package/src/db/sessions.test.ts +80 -0
  192. package/src/db/sessions.ts +135 -0
  193. package/src/db/shutdown.test.ts +147 -0
  194. package/src/db/shutdown.ts +45 -0
  195. package/src/db/tasks.test.ts +921 -0
  196. package/src/db/tasks.ts +747 -0
  197. package/src/db/types.ts +619 -0
  198. package/src/http/__tests__/auth.test.ts +196 -0
  199. package/src/http/__tests__/routes.test.ts +465 -0
  200. package/src/http/__tests__/sse.test.ts +317 -0
  201. package/src/http/auth.ts +72 -0
  202. package/src/http/middleware/cors.ts +53 -0
  203. package/src/http/middleware/security-headers.ts +21 -0
  204. package/src/http/routes/events.ts +112 -0
  205. package/src/http/routes/health.ts +51 -0
  206. package/src/http/routes/plans.ts +66 -0
  207. package/src/http/routes/sessions.ts +50 -0
  208. package/src/http/routes/tasks.ts +60 -0
  209. package/src/http/server.ts +95 -0
  210. package/src/http/sse.ts +116 -0
  211. package/src/index.ts +37 -0
  212. package/src/lib.ts +65 -0
  213. package/src/mem/scoped.ts +65 -0
  214. package/src/orchestrator/background.test.ts +268 -0
  215. package/src/orchestrator/background.ts +293 -0
  216. package/src/orchestrator/memory-hook.ts +182 -0
  217. package/src/orchestrator/reconciler.ts +123 -0
  218. package/src/orchestrator/scheduler.test.ts +300 -0
  219. package/src/orchestrator/scheduler.ts +243 -0
  220. package/src/plugin.test.ts +2574 -0
  221. package/src/plugin.ts +1690 -0
  222. package/src/sdk/client.ts +66 -0
  223. package/src/worktrees/manager.ts +236 -0
  224. package/src/worktrees/state.ts +87 -0
  225. package/tests/integration/ranger-flow.test.ts +257 -0
  226. package/tools/analysis_archive.ts +28 -0
  227. package/tools/analysis_create.ts +55 -0
  228. package/tools/analysis_get.ts +33 -0
  229. package/tools/analysis_link_plan.ts +44 -0
  230. package/tools/analysis_list.ts +48 -0
  231. package/tools/analysis_search.ts +36 -0
  232. package/tools/analysis_update.ts +44 -0
  233. package/tools/plan_approve.ts +31 -0
  234. package/tools/plan_create.ts +58 -0
  235. package/tools/plan_get.ts +40 -0
  236. package/tools/plan_list.ts +37 -0
  237. package/tools/plan_search.ts +34 -0
  238. package/tools/plan_update_status.ts +71 -0
  239. package/tools/session_checkpoint.ts +31 -0
  240. package/tools/session_end.ts +26 -0
  241. package/tools/session_start.ts +43 -0
  242. package/tools/task_create_batch.ts +70 -0
  243. package/tools/task_list.ts +35 -0
  244. package/tools/task_next_for_agent.ts +30 -0
  245. package/tools/task_search.ts +34 -0
  246. package/tools/task_update_status.ts +37 -0
  247. package/tsconfig.json +31 -0
@@ -0,0 +1,164 @@
1
+ #!/usr/bin/env bash
2
+ # dev-bust-cache.sh — bust Bun transpiler cache for ndomo dev loop
3
+ #
4
+ # Root cause: Bun caches TS modules in ~/.bun/install/cache/ keyed by resolved
5
+ # path. When ndomo is loaded via symlink, the cache key uses the symlink path,
6
+ # so editing source files doesn't invalidate the cache → stale code served.
7
+ #
8
+ # This script:
9
+ # 1. Optionally kills running opencode processes (--kill)
10
+ # 2. Removes Bun cache entries referencing ndomo or src/index.ts
11
+ # 3. Touches all src/*.ts to bump mtime (forces re-transpilation)
12
+ #
13
+ # Usage:
14
+ # ./scripts/dev-bust-cache.sh # dry-run (show what would be done)
15
+ # ./scripts/dev-bust-cache.sh --apply # actually execute
16
+ # ./scripts/dev-bust-cache.sh --apply --kill # kill opencode + bust cache
17
+ # bun run dev:bust # via package.json (dry-run)
18
+ # bun run dev:reset # kill opencode + bust (apply)
19
+ #
20
+ # Idempotent: safe to run multiple times. No-op if cache is already clean.
21
+
22
+ set -euo pipefail
23
+
24
+ # ── Colors ────────────────────────────────────────────────────────────────────
25
+ RED='\033[0;31m'
26
+ GREEN='\033[0;32m'
27
+ YELLOW='\033[1;33m'
28
+ BLUE='\033[0;34m'
29
+ BOLD='\033[1m'
30
+ NC='\033[0m'
31
+
32
+ info() { printf "${BLUE}[info]${NC} %s\n" "$*"; }
33
+ ok() { printf "${GREEN}[ok]${NC} %s\n" "$*"; }
34
+ warn() { printf "${YELLOW}[warn]${NC} %s\n" "$*"; }
35
+ err() { printf "${RED}[error]${NC} %s\n" "$*" >&2; }
36
+
37
+ # ── Parse flags ───────────────────────────────────────────────────────────────
38
+ APPLY=false
39
+ KILL=false
40
+
41
+ for arg in "$@"; do
42
+ case "$arg" in
43
+ --apply|--force|-f) APPLY=true ;;
44
+ --kill) KILL=true ;;
45
+ --help|-h)
46
+ cat <<EOF
47
+ ${BOLD}dev-bust-cache.sh — bust Bun cache for ndomo dev loop${NC}
48
+
49
+ Usage:
50
+ ./scripts/dev-bust-cache.sh [OPTIONS]
51
+
52
+ Options:
53
+ --apply Actually execute (default: dry-run, show what would be done)
54
+ --kill Kill running opencode processes before busting
55
+ --help Show this help
56
+
57
+ Without --apply, shows what would be done (dry-run).
58
+ EOF
59
+ exit 0
60
+ ;;
61
+ *) err "Unknown option: $arg (try --help)"; exit 1 ;;
62
+ esac
63
+ done
64
+
65
+ # ── Detect project root ───────────────────────────────────────────────────────
66
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
67
+ PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
68
+ SRC_DIR="$PROJECT_ROOT/src"
69
+
70
+ # ── Bun cache dir ─────────────────────────────────────────────────────────────
71
+ BUN_CACHE="${HOME}/.bun/install/cache"
72
+
73
+ if [[ ! -d "$BUN_CACHE" ]]; then
74
+ warn "Bun cache not found at $BUN_CACHE — nothing to bust"
75
+ exit 0
76
+ fi
77
+
78
+ # ── Step 1: Kill opencode processes (if --kill) ──────────────────────────────
79
+ if [[ "$KILL" == true ]]; then
80
+ info "Looking for opencode processes..."
81
+ PIDS=$(pgrep -f "opencode" 2>/dev/null || true)
82
+ if [[ -n "$PIDS" ]]; then
83
+ if [[ "$APPLY" == false ]]; then
84
+ info "[dry-run] would kill opencode PIDs: ${PIDS//$'\n'/, }"
85
+ else
86
+ for pid in $PIDS; do
87
+ kill "$pid" 2>/dev/null || true
88
+ done
89
+ sleep 1
90
+ ok "Killed opencode processes"
91
+ fi
92
+ else
93
+ info "No opencode processes found"
94
+ fi
95
+ fi
96
+
97
+ # ── Step 2: Remove Bun cache entries referencing ndomo ───────────────────────
98
+ info "Searching Bun cache for ndomo references..."
99
+ NDOMO_CACHE_FILES=$(grep -rl "ndomo" "$BUN_CACHE" 2>/dev/null || true)
100
+
101
+ if [[ -n "$NDOMO_CACHE_FILES" ]]; then
102
+ COUNT=$(echo "$NDOMO_CACHE_FILES" | wc -l)
103
+ if [[ "$APPLY" == false ]]; then
104
+ info "[dry-run] would remove $COUNT cache file(s) referencing ndomo:"
105
+ echo "$NDOMO_CACHE_FILES" | sed 's/^/ /'
106
+ else
107
+ echo "$NDOMO_CACHE_FILES" | while IFS= read -r f; do
108
+ rm -f "$f"
109
+ done
110
+ ok "Removed $COUNT cache file(s) referencing ndomo"
111
+ fi
112
+ else
113
+ info "No cache files reference ndomo"
114
+ fi
115
+
116
+ # ── Step 3: Remove Bun cache entries referencing ndomo source path ───────────
117
+ # Narrow grep to $PROJECT_ROOT/src to avoid matching unrelated packages
118
+ # that happen to have index.ts in their dist files.
119
+ info "Searching Bun cache for ndomo source path references..."
120
+ INDEX_CACHE_FILES=$(grep -rl "$PROJECT_ROOT/src" "$BUN_CACHE" 2>/dev/null || true)
121
+
122
+ if [[ -n "$INDEX_CACHE_FILES" ]]; then
123
+ COUNT=$(echo "$INDEX_CACHE_FILES" | wc -l)
124
+ if [[ "$APPLY" == false ]]; then
125
+ info "[dry-run] would remove $COUNT cache file(s) referencing $PROJECT_ROOT/src:"
126
+ echo "$INDEX_CACHE_FILES" | sed 's/^/ /'
127
+ else
128
+ echo "$INDEX_CACHE_FILES" | while IFS= read -r f; do
129
+ rm -f "$f"
130
+ done
131
+ ok "Removed $COUNT cache file(s) referencing ndomo source path"
132
+ fi
133
+ else
134
+ info "No cache files reference ndomo source path"
135
+ fi
136
+
137
+ # ── Step 4: Touch all src/*.ts to bump mtime ─────────────────────────────────
138
+ if [[ -d "$SRC_DIR" ]]; then
139
+ info "Touching src/*.ts files to bump mtime..."
140
+ TS_FILES=$(find "$SRC_DIR" -name "*.ts" -type f 2>/dev/null || true)
141
+ if [[ -n "$TS_FILES" ]]; then
142
+ COUNT=$(echo "$TS_FILES" | wc -l)
143
+ if [[ "$APPLY" == false ]]; then
144
+ info "[dry-run] would touch $COUNT .ts file(s) in $SRC_DIR"
145
+ else
146
+ echo "$TS_FILES" | while IFS= read -r f; do
147
+ touch "$f"
148
+ done
149
+ ok "Touched $COUNT .ts file(s)"
150
+ fi
151
+ else
152
+ info "No .ts files found in $SRC_DIR"
153
+ fi
154
+ else
155
+ warn "src/ directory not found at $SRC_DIR"
156
+ fi
157
+
158
+ # ── Summary ──────────────────────────────────────────────────────────────────
159
+ echo ""
160
+ if [[ "$APPLY" == false ]]; then
161
+ warn "DRY RUN — no changes made. Run with --apply to execute."
162
+ else
163
+ ok "Cache busted. Restart opencode to pick up changes."
164
+ fi