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.
- package/.bun-version +1 -0
- package/.dockerignore +79 -0
- package/.editorconfig +18 -0
- package/.env.example +19 -0
- package/.github/CODEOWNERS +8 -0
- package/.github/ISSUE_TEMPLATE/bug_report.yml +62 -0
- package/.github/ISSUE_TEMPLATE/config.yml +2 -0
- package/.github/ISSUE_TEMPLATE/feature_request.yml +34 -0
- package/.github/dependabot.yml +36 -0
- package/.github/pull_request_template.md +24 -0
- package/.github/release.yml +30 -0
- package/.github/workflows/gitleaks.yml +28 -0
- package/.github/workflows/release-please.yml +27 -0
- package/.github/workflows/smoke.yml +29 -0
- package/.husky/commit-msg +1 -0
- package/CHANGELOG.md +114 -0
- package/Dockerfile +32 -0
- package/README.es.md +174 -0
- package/README.md +187 -0
- package/agents/chronicler.md +98 -0
- package/agents/ci-smith.md +136 -0
- package/agents/craftsman.md +341 -0
- package/agents/deploy-smith.md +138 -0
- package/agents/foreman.md +377 -0
- package/agents/go-smith.md +164 -0
- package/agents/guild.md +188 -0
- package/agents/inspector.md +83 -0
- package/agents/js-smith.md +127 -0
- package/agents/ops-scout.md +173 -0
- package/agents/painter.md +200 -0
- package/agents/python-smith.md +120 -0
- package/agents/ranger.md +307 -0
- package/agents/release-smith.md +165 -0
- package/agents/rust-smith.md +159 -0
- package/agents/sage.md +178 -0
- package/agents/scout.md +144 -0
- package/agents/scribe.md +156 -0
- package/agents/smith.md +201 -0
- package/agents/vue-smith.md +155 -0
- package/agents/warden.md +216 -0
- package/agents/zig-smith.md +156 -0
- package/bin/ndomo-analyses.ts +4 -0
- package/bin/ndomo-status.ts +4 -0
- package/biome.json +57 -0
- package/bun.lock +514 -0
- package/commitlint.config.js +3 -0
- package/config/ndomo.config.json +258 -0
- package/config/ndomo.schema.json +166 -0
- package/docs/agents.md +375 -0
- package/docs/bugs/plan-create-orphan-fk.md +131 -0
- package/docs/bugs/task_create_batch-order-index-collision.md +158 -0
- package/docs/configuration.md +276 -0
- package/docs/database.md +364 -0
- package/docs/features/feature-flexible-builder-v1.md +724 -0
- package/docs/features/feature-flexible-builder-v2.md +882 -0
- package/docs/features/feature-flexible-builder.md +974 -0
- package/docs/http-server.md +244 -0
- package/docs/installation.md +259 -0
- package/docs/integrations.md +129 -0
- package/docs/operations/anti-pattern-sub-agent-verify-2026-06-21.md +32 -0
- package/docs/operations/audit-v1.md +417 -0
- package/docs/operations/audit-v2.md +197 -0
- package/docs/operations/audit-v3.md +306 -0
- package/docs/operations/db-optimize-foundations.md +123 -0
- package/docs/operations/verify-gate-architecture.md +82 -0
- package/docs/workflows.md +448 -0
- package/opencode.json +5 -0
- package/package.json +65 -0
- package/release-please-config.json +11 -0
- package/scripts/dev-bust-cache.sh +164 -0
- package/scripts/install.sh +688 -0
- package/scripts/smoke-e2e.ts +704 -0
- package/scripts/smoke-hot.ts +417 -0
- package/scripts/smoke-http.sh +228 -0
- package/scripts/smoke-v4.ts +256 -0
- package/scripts/smoke-v5.ts +397 -0
- package/scripts/smoke.sh +9 -0
- package/scripts/uninstall.sh +224 -0
- package/skills/api-security-best-practices/SKILL.md +915 -0
- package/skills/bash-scripting/SKILL.md +201 -0
- package/skills/bun/SKILL.md +313 -0
- package/skills/cavecrew/SKILL.md +82 -0
- package/skills/caveman/SKILL.md +74 -0
- package/skills/caveman-review/README.md +33 -0
- package/skills/caveman-review/SKILL.md +55 -0
- package/skills/find-skills/SKILL.md +142 -0
- package/skills/frontend-design/LICENSE.txt +177 -0
- package/skills/frontend-design/SKILL.md +55 -0
- package/skills/golang-patterns/SKILL.md +674 -0
- package/skills/golang-security/SKILL.md +185 -0
- package/skills/golang-security/evals/evals.json +595 -0
- package/skills/golang-security/references/architecture.md +268 -0
- package/skills/golang-security/references/checklist.md +80 -0
- package/skills/golang-security/references/cookies.md +200 -0
- package/skills/golang-security/references/cryptography.md +424 -0
- package/skills/golang-security/references/filesystem.md +285 -0
- package/skills/golang-security/references/injection.md +315 -0
- package/skills/golang-security/references/logging.md +163 -0
- package/skills/golang-security/references/memory-safety.md +241 -0
- package/skills/golang-security/references/network.md +253 -0
- package/skills/golang-security/references/secrets.md +189 -0
- package/skills/golang-security/references/third-party.md +159 -0
- package/skills/golang-security/references/threat-modeling.md +189 -0
- package/skills/golang-testing/SKILL.md +720 -0
- package/skills/grill-me/SKILL.md +7 -0
- package/skills/javascript-testing-patterns/SKILL.md +537 -0
- package/skills/javascript-testing-patterns/references/advanced-testing-patterns.md +513 -0
- package/skills/modern-javascript-patterns/SKILL.md +43 -0
- package/skills/modern-javascript-patterns/references/advanced-patterns.md +487 -0
- package/skills/modern-javascript-patterns/references/details.md +457 -0
- package/skills/python-anti-patterns/SKILL.md +349 -0
- package/skills/python-design-patterns/SKILL.md +85 -0
- package/skills/python-design-patterns/references/details.md +353 -0
- package/skills/python-error-handling/SKILL.md +193 -0
- package/skills/python-error-handling/references/details.md +171 -0
- package/skills/python-testing-patterns/SKILL.md +278 -0
- package/skills/python-testing-patterns/references/advanced-patterns.md +411 -0
- package/skills/python-testing-patterns/references/details.md +349 -0
- package/skills/rust-patterns/SKILL.md +500 -0
- package/skills/rust-testing/SKILL.md +501 -0
- package/skills/security-review/SKILL.md +504 -0
- package/skills/security-review/cloud-infrastructure-security.md +361 -0
- package/skills/vue-best-practices/SKILL.md +154 -0
- package/skills/vue-best-practices/references/animation-class-based-technique.md +254 -0
- package/skills/vue-best-practices/references/animation-state-driven-technique.md +291 -0
- package/skills/vue-best-practices/references/component-async.md +97 -0
- package/skills/vue-best-practices/references/component-data-flow.md +307 -0
- package/skills/vue-best-practices/references/component-fallthrough-attrs.md +174 -0
- package/skills/vue-best-practices/references/component-keep-alive.md +137 -0
- package/skills/vue-best-practices/references/component-slots.md +216 -0
- package/skills/vue-best-practices/references/component-suspense.md +228 -0
- package/skills/vue-best-practices/references/component-teleport.md +108 -0
- package/skills/vue-best-practices/references/component-transition-group.md +128 -0
- package/skills/vue-best-practices/references/component-transition.md +125 -0
- package/skills/vue-best-practices/references/composables.md +290 -0
- package/skills/vue-best-practices/references/directives.md +162 -0
- package/skills/vue-best-practices/references/perf-avoid-component-abstraction-in-lists.md +159 -0
- package/skills/vue-best-practices/references/perf-v-once-v-memo-directives.md +182 -0
- package/skills/vue-best-practices/references/perf-virtualize-large-lists.md +187 -0
- package/skills/vue-best-practices/references/plugins.md +166 -0
- package/skills/vue-best-practices/references/reactivity.md +344 -0
- package/skills/vue-best-practices/references/render-functions.md +201 -0
- package/skills/vue-best-practices/references/sfc.md +310 -0
- package/skills/vue-best-practices/references/state-management.md +135 -0
- package/skills/vue-best-practices/references/updated-hook-performance.md +187 -0
- package/skills/vue-pinia-best-practices/SKILL.md +21 -0
- package/skills/vue-pinia-best-practices/reference/pinia-no-active-pinia-error.md +248 -0
- package/skills/vue-pinia-best-practices/reference/pinia-setup-store-return-all-state.md +227 -0
- package/skills/vue-pinia-best-practices/reference/pinia-store-destructuring-breaks-reactivity.md +193 -0
- package/skills/vue-pinia-best-practices/reference/state-url-for-ephemeral-filters.md +238 -0
- package/skills/vue-pinia-best-practices/reference/state-use-pinia-for-large-apps.md +262 -0
- package/skills/vue-pinia-best-practices/reference/store-method-binding-parentheses.md +191 -0
- package/skills/zig-0.16/SKILL.md +840 -0
- package/skills/zig-0.16/scripts/check-zig-version.sh +21 -0
- package/src/cli/analyses.ts +280 -0
- package/src/cli/index.ts +108 -0
- package/src/cli/serve.ts +192 -0
- package/src/cli/smoke.ts +131 -0
- package/src/cli/status.test.ts +204 -0
- package/src/cli/status.ts +263 -0
- package/src/cli/vacuum.test.ts +82 -0
- package/src/cli/vacuum.ts +96 -0
- package/src/config/schema.test.ts +88 -0
- package/src/config/schema.ts +64 -0
- package/src/db/analyses-migration.test.ts +210 -0
- package/src/db/analyses.test.ts +466 -0
- package/src/db/analyses.ts +375 -0
- package/src/db/auto-checkpoint.ts +131 -0
- package/src/db/client.test.ts +129 -0
- package/src/db/client.ts +55 -0
- package/src/db/fts-escape.ts +20 -0
- package/src/db/incidents.test.ts +201 -0
- package/src/db/incidents.ts +93 -0
- package/src/db/index.ts +86 -0
- package/src/db/migrations-v13.test.ts +141 -0
- package/src/db/migrations-v8.test.ts +301 -0
- package/src/db/migrations.ts +147 -0
- package/src/db/plan-archive.test.ts +180 -0
- package/src/db/plan-archive.ts +274 -0
- package/src/db/plan-create.test.ts +276 -0
- package/src/db/plan-create.ts +78 -0
- package/src/db/plan-files.test.ts +289 -0
- package/src/db/plan-update-status.ts +287 -0
- package/src/db/plans.test.ts +490 -0
- package/src/db/plans.ts +534 -0
- package/src/db/resolve-project-dir.test.ts +143 -0
- package/src/db/resolve-project-dir.ts +75 -0
- package/src/db/rollbacks.test.ts +150 -0
- package/src/db/rollbacks.ts +67 -0
- package/src/db/schema.ts +907 -0
- package/src/db/sessions.test.ts +80 -0
- package/src/db/sessions.ts +135 -0
- package/src/db/shutdown.test.ts +147 -0
- package/src/db/shutdown.ts +45 -0
- package/src/db/tasks.test.ts +921 -0
- package/src/db/tasks.ts +747 -0
- package/src/db/types.ts +619 -0
- package/src/http/__tests__/auth.test.ts +196 -0
- package/src/http/__tests__/routes.test.ts +465 -0
- package/src/http/__tests__/sse.test.ts +317 -0
- package/src/http/auth.ts +72 -0
- package/src/http/middleware/cors.ts +53 -0
- package/src/http/middleware/security-headers.ts +21 -0
- package/src/http/routes/events.ts +112 -0
- package/src/http/routes/health.ts +51 -0
- package/src/http/routes/plans.ts +66 -0
- package/src/http/routes/sessions.ts +50 -0
- package/src/http/routes/tasks.ts +60 -0
- package/src/http/server.ts +95 -0
- package/src/http/sse.ts +116 -0
- package/src/index.ts +37 -0
- package/src/lib.ts +65 -0
- package/src/mem/scoped.ts +65 -0
- package/src/orchestrator/background.test.ts +268 -0
- package/src/orchestrator/background.ts +293 -0
- package/src/orchestrator/memory-hook.ts +182 -0
- package/src/orchestrator/reconciler.ts +123 -0
- package/src/orchestrator/scheduler.test.ts +300 -0
- package/src/orchestrator/scheduler.ts +243 -0
- package/src/plugin.test.ts +2574 -0
- package/src/plugin.ts +1690 -0
- package/src/sdk/client.ts +66 -0
- package/src/worktrees/manager.ts +236 -0
- package/src/worktrees/state.ts +87 -0
- package/tests/integration/ranger-flow.test.ts +257 -0
- package/tools/analysis_archive.ts +28 -0
- package/tools/analysis_create.ts +55 -0
- package/tools/analysis_get.ts +33 -0
- package/tools/analysis_link_plan.ts +44 -0
- package/tools/analysis_list.ts +48 -0
- package/tools/analysis_search.ts +36 -0
- package/tools/analysis_update.ts +44 -0
- package/tools/plan_approve.ts +31 -0
- package/tools/plan_create.ts +58 -0
- package/tools/plan_get.ts +40 -0
- package/tools/plan_list.ts +37 -0
- package/tools/plan_search.ts +34 -0
- package/tools/plan_update_status.ts +71 -0
- package/tools/session_checkpoint.ts +31 -0
- package/tools/session_end.ts +26 -0
- package/tools/session_start.ts +43 -0
- package/tools/task_create_batch.ts +70 -0
- package/tools/task_list.ts +35 -0
- package/tools/task_next_for_agent.ts +30 -0
- package/tools/task_search.ts +34 -0
- package/tools/task_update_status.ts +37 -0
- 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
|