@maadb/core 0.11.1 → 0.12.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/README.md +35 -17
- package/dist/architect.d.ts.map +1 -1
- package/dist/architect.js +20 -70
- package/dist/architect.js.map +1 -1
- package/dist/claude-md.d.ts +1 -0
- package/dist/claude-md.d.ts.map +1 -1
- package/dist/claude-md.js +19 -90
- package/dist/claude-md.js.map +1 -1
- package/dist/cli/commands/maintain.d.ts +1 -0
- package/dist/cli/commands/maintain.d.ts.map +1 -1
- package/dist/cli/commands/maintain.js +82 -23
- package/dist/cli/commands/maintain.js.map +1 -1
- package/dist/cli/index.js +34 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/engine/maintenance.d.ts +8 -0
- package/dist/engine/maintenance.d.ts.map +1 -1
- package/dist/engine/maintenance.js +34 -1
- package/dist/engine/maintenance.js.map +1 -1
- package/dist/engine/types.d.ts +15 -0
- package/dist/engine/types.d.ts.map +1 -1
- package/dist/instance/pool.d.ts.map +1 -1
- package/dist/instance/pool.js +6 -2
- package/dist/instance/pool.js.map +1 -1
- package/dist/instance/session.d.ts +1 -1
- package/dist/instance/session.d.ts.map +1 -1
- package/dist/instructions/manifest.d.ts +53 -0
- package/dist/instructions/manifest.d.ts.map +1 -0
- package/dist/instructions/manifest.js +128 -0
- package/dist/instructions/manifest.js.map +1 -0
- package/dist/logging.d.ts +13 -0
- package/dist/logging.d.ts.map +1 -1
- package/dist/logging.js +6 -0
- package/dist/logging.js.map +1 -1
- package/dist/maad-md.d.ts +1 -10
- package/dist/maad-md.d.ts.map +1 -1
- package/dist/maad-md.js +116 -243
- package/dist/maad-md.js.map +1 -1
- package/dist/mcp/kinds.d.ts.map +1 -1
- package/dist/mcp/kinds.js +3 -0
- package/dist/mcp/kinds.js.map +1 -1
- package/dist/mcp/lifecycle.d.ts.map +1 -1
- package/dist/mcp/lifecycle.js +4 -1
- package/dist/mcp/lifecycle.js.map +1 -1
- package/dist/mcp/server.d.ts +8 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +2 -0
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/discover.d.ts.map +1 -1
- package/dist/mcp/tools/discover.js +11 -1
- package/dist/mcp/tools/discover.js.map +1 -1
- package/dist/mcp/tools/maintain.d.ts.map +1 -1
- package/dist/mcp/tools/maintain.js +61 -1
- package/dist/mcp/tools/maintain.js.map +1 -1
- package/dist/mcp/tools/write.d.ts.map +1 -1
- package/dist/mcp/tools/write.js +8 -2
- package/dist/mcp/tools/write.js.map +1 -1
- package/dist/mcp/transport/http.d.ts +12 -0
- package/dist/mcp/transport/http.d.ts.map +1 -1
- package/dist/mcp/transport/http.js +61 -12
- package/dist/mcp/transport/http.js.map +1 -1
- package/dist/mcp/transport/origin.d.ts +33 -0
- package/dist/mcp/transport/origin.d.ts.map +1 -0
- package/dist/mcp/transport/origin.js +106 -0
- package/dist/mcp/transport/origin.js.map +1 -0
- package/dist/schema/index.d.ts +1 -1
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +1 -1
- package/dist/schema/index.js.map +1 -1
- package/dist/schema/loader.js +60 -0
- package/dist/schema/loader.js.map +1 -1
- package/dist/schema/validator.d.ts +6 -0
- package/dist/schema/validator.d.ts.map +1 -1
- package/dist/schema/validator.js +60 -0
- package/dist/schema/validator.js.map +1 -1
- package/dist/skill-files.d.ts.map +1 -1
- package/dist/skill-files.js +65 -17
- package/dist/skill-files.js.map +1 -1
- package/dist/skills-scaffold.d.ts +6 -0
- package/dist/skills-scaffold.d.ts.map +1 -1
- package/dist/skills-scaffold.js +38 -29
- package/dist/skills-scaffold.js.map +1 -1
- package/dist/types.d.ts +10 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
[](LICENSE)
|
|
4
4
|
[](package.json)
|
|
5
5
|
[](tsconfig.json)
|
|
6
|
-
[](tests)
|
|
7
7
|
[](https://www.npmjs.com/package/@maadb/core)
|
|
8
|
-
[](Version.md)
|
|
9
9
|
|
|
10
10
|
> **Markdown is the database. The engine makes it queryable.**
|
|
11
11
|
|
|
@@ -286,6 +286,23 @@ node dist/cli.js --instance /path/to/instance.yaml serve \
|
|
|
286
286
|
--transport http --http-host 127.0.0.1 --http-port 7733
|
|
287
287
|
```
|
|
288
288
|
|
|
289
|
+
HTTP sessions retain their MCP tool registry until they close. To keep clients
|
|
290
|
+
that create a fresh session per call from exhausting the process heap, MAADb
|
|
291
|
+
retains at most 128 sessions by default and evicts the least recently active
|
|
292
|
+
session when the limit is reached. Tune the bound with `MAAD_SESSION_MAX` or
|
|
293
|
+
`--session-max`; evicted session IDs receive `SESSION_NOT_FOUND` and must
|
|
294
|
+
initialize again.
|
|
295
|
+
|
|
296
|
+
Per the MCP Streamable HTTP spec, `/mcp` validates the `Origin` header as a
|
|
297
|
+
DNS-rebinding defense. Requests without an `Origin` header — every normal MCP
|
|
298
|
+
client, SDK, or backend service — pass unaffected. A request that presents an
|
|
299
|
+
`Origin` is rejected `403 ORIGIN_FORBIDDEN` unless that exact origin is
|
|
300
|
+
allowlisted via `MAAD_HTTP_ALLOWED_ORIGINS` (comma-separated) or repeatable
|
|
301
|
+
`--http-allowed-origin` flags. The default (empty allowlist) rejects all
|
|
302
|
+
browser-originated requests; no wildcards, no implicit localhost. Only
|
|
303
|
+
deployments where a web page calls `/mcp` directly need entries — a browser
|
|
304
|
+
talking to your app's backend, which then calls MAADb, does not.
|
|
305
|
+
|
|
289
306
|
Hot-reload tokens + instance config on edits: `sudo systemctl reload maad` (or `docker compose kill -s SIGHUP maad`). Rotate tokens via `maad auth rotate-token --id=tok-<id>`; revoke via `maad auth revoke-token --id=tok-<id>`. Full auth primitives: [`docs/archive/0.7.0-scoped-auth.md`](docs/archive/0.7.0-scoped-auth.md).
|
|
290
307
|
|
|
291
308
|
Deployment guides:
|
|
@@ -317,15 +334,17 @@ my-project/
|
|
|
317
334
|
_backend/ # SQLite index — gitignored, rebuildable
|
|
318
335
|
maad.db
|
|
319
336
|
_import/ # Drop zone for raw markdown imports
|
|
320
|
-
_skills/ # Agent skill files (architect, import, etc.)
|
|
321
|
-
MAAD.md #
|
|
322
|
-
CLAUDE.md
|
|
337
|
+
_skills/ # Agent skill files (architect, import, etc.) — engine-managed
|
|
338
|
+
MAAD.md # Managed: canonical agent operating instructions (static, stamped)
|
|
339
|
+
CLAUDE.md / AGENTS.md # Created once at init: thin pointers to MAAD.md, user-owned after
|
|
323
340
|
<type-dirs>/ # Record files — one directory per type
|
|
324
341
|
cas-2026-001.md
|
|
325
342
|
```
|
|
326
343
|
|
|
327
344
|
**Convention:** `_` prefix = engine-managed (don't hand-edit unless you know what you're doing). Every other directory holds records.
|
|
328
345
|
|
|
346
|
+
**Managed instructions have a lifecycle.** `MAAD.md` and the `_skills/` guides carry a `maadb:managed` stamp (generator version + content hash). `maad instructions check` classifies each file — `current`, `outdated` (pristine but stale), `modified` (user-edited), `unmanaged` (pre-stamp vintage) — and `maad instructions refresh` (dry-run by default, `--apply` to write, `--force` to also replace modified/unmanaged) updates them as a dedicated git commit. Engine upgrades never rewrite instruction files on their own: boot and reindex only emit an `instructions_outdated` advisory, and `maad_summary` flags staleness. The MCP surface mirrors this via the `maad_instructions` tool (check for any role; refresh is admin-gated).
|
|
347
|
+
|
|
329
348
|
**Record directories are type-declared, not hardcoded.** Each type in `_registry/object_types.yaml` declares its own `path:` — e.g. `cases/`, `clients/`, `data/cases/`, whatever you prefer. The architect skill picks a layout that fits the data shape.
|
|
330
349
|
|
|
331
350
|
## MCP tools
|
|
@@ -335,7 +354,7 @@ All tools return `{ ok: true, data: {...} }` or `{ ok: false, errors: [...] }`.
|
|
|
335
354
|
**Discover:** `maad_scan`, `maad_summary`, `maad_describe`, `maad_schema`
|
|
336
355
|
**Read:** `maad_get`, `maad_query`, `maad_search`, `maad_related`, `maad_aggregate`, `maad_join`, `maad_verify`, `maad_find_orphans`, `maad_changes_since`, `maad_semantic_search`
|
|
337
356
|
**Write:** `maad_create`, `maad_update`, `maad_bulk_create`, `maad_bulk_update`, `maad_validate`
|
|
338
|
-
**Maintain:** `maad_delete`, `maad_reindex`, `maad_reload`, `maad_health`, `maad_history`, `maad_audit`
|
|
357
|
+
**Maintain:** `maad_delete`, `maad_reindex`, `maad_reload`, `maad_health`, `maad_history`, `maad_audit`, `maad_instructions`
|
|
339
358
|
**Recovery anchors (0.7.10+):** `maad_backup` — annotated git tags as snapshot points.
|
|
340
359
|
**Cleanup (0.7.10+ admin, confirm-contract governed):** `maad_bulk_delete`, `maad_delete_where`, `maad_repair_where`, `maad_purge_soft_deleted` — destructive ops are dry-run by default; pass `confirm: true` to mutate. `maxRecords` cap default 100 / ceiling 1000.
|
|
341
360
|
**Live updates (0.6.11+):** `maad_subscribe`, `maad_unsubscribe` — push notifications on durable writes.
|
|
@@ -367,18 +386,17 @@ The vector store is `sqlite-vec` (in the same SQLite file); the lexical leg is F
|
|
|
367
386
|
|
|
368
387
|
## Current state
|
|
369
388
|
|
|
370
|
-
**Current:** v0.
|
|
389
|
+
**Current:** v0.11.1 — pool-mode recovery for false-empty indexes: `maad_reindex` is the one MCP tool allowed to initialize a guarded project so it can rebuild the index, while every other tool keeps failing closed with `INDEX_EMPTY` until recovery succeeds.
|
|
371
390
|
|
|
372
391
|
Recent shipped scope:
|
|
373
|
-
- **0.
|
|
374
|
-
- **0.
|
|
375
|
-
- **0.
|
|
376
|
-
- **0.
|
|
377
|
-
- **0.
|
|
378
|
-
- **0.
|
|
379
|
-
- **0.7.
|
|
380
|
-
- **0.7.
|
|
381
|
-
- **0.7.0–0.7.4** — Scoped auth & identity, agent-first aggregates, reindex schema-change detection
|
|
392
|
+
- **0.11.0** — Transactional engine lifecycle: reload swaps in a fully-initialized replacement or keeps the prior engine, `close()` is awaitable and idempotent, and read-only mode is a literal zero-write contract (no pragmas, migrations, WAL, journal, or git mutation)
|
|
393
|
+
- **0.10.0** — Data-correctness wave: type-faithful YAML list round-trips with full `item_type` validation, soft-delete tombstone isolation across every read surface, collection-correct list-field predicates, portable exclusive creation (`wx` fallback where hard links are unsupported)
|
|
394
|
+
- **0.9.0** — Write-identity + filesystem-boundary enforcement: caller identity tampering fails `FRONTMATTER_GUARD`, symlink/path escapes fail closed via realpath containment, creation is exclusive and race-safe
|
|
395
|
+
- **0.8.4** — Boot false-empty index guard: the engine refuses to serve an empty index over existing markdown (`INDEX_EMPTY`; `MAAD_BOOT_REINDEX=1` rebuilds at boot)
|
|
396
|
+
- **0.8.1–0.8.3** — Index-integrity pass (stale-row sweep guard, docId-collision guard, persisted partial state), per-block re-embed gating, CLI fail-closed exit codes for `maad validate` / `maad reindex`
|
|
397
|
+
- **0.8.0** — Semantic Retrieval: `maad_semantic_search` with an exact/semantic/hybrid mode dial (FTS5 + `sqlite-vec`), opt-in and fully additive
|
|
398
|
+
- **0.7.18** — Heavy-op load-shedding self-defense: admission gate, single-flight coalescing, concurrency cap, and circuit breaker behind the retryable `OVERLOADED` code
|
|
399
|
+
- **0.7.x** — Scoped auth & identity, covering-index read path, integrity & cleanup primitives, transport and write-path hardening
|
|
382
400
|
|
|
383
401
|
See [Version.md](Version.md) for the full release history and forward plan.
|
|
384
402
|
|
|
@@ -386,7 +404,7 @@ See [Version.md](Version.md) for the full release history and forward plan.
|
|
|
386
404
|
|
|
387
405
|
- TypeScript strict, Node.js 24+ (current Active LTS)
|
|
388
406
|
- 6 production dependencies: `better-sqlite3`, `gray-matter`, `js-yaml`, `simple-git`, `@modelcontextprotocol/sdk`, `pino`. Plus one **optional** dependency `sqlite-vec` (semantic retrieval) — lazily loaded only when `MAAD_SEMANTIC_ENABLE` is on; absent or failed to load ⇒ semantic disabled, engine unaffected
|
|
389
|
-
-
|
|
407
|
+
- 1133 tests, Vitest — run on every push/PR across Ubuntu and Windows
|
|
390
408
|
- MIT license, pre-1.0, actively developed
|
|
391
409
|
|
|
392
410
|
## License
|
package/dist/architect.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"architect.d.ts","sourceRoot":"","sources":["../src/architect.ts"],"names":[],"mappings":"AAMA,wBAAgB,sBAAsB,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"architect.d.ts","sourceRoot":"","sources":["../src/architect.ts"],"names":[],"mappings":"AAMA,wBAAgB,sBAAsB,IAAI,MAAM,CAwN/C"}
|
package/dist/architect.js
CHANGED
|
@@ -10,7 +10,10 @@ export function generateArchitectSkill() {
|
|
|
10
10
|
|
|
11
11
|
You are the MAADb Architect. Your job is to design, deploy, and maintain MAADb database instances. You receive requirements — from another agent, a system spec, or a human — and produce a working database.
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
**Channel boundary (important):**
|
|
14
|
+
- **Project data records** — MAADb MCP tools only, always.
|
|
15
|
+
- **Schema/config authoring** (\`_registry/object_types.yaml\`, \`_schema/*.yaml\`) — MAADb exposes no MCP primitive for these. Use the deployment's approved channel: direct filesystem access when you legitimately have it (local dev, CLI operator), or the host application's schema-installation mechanism in hosted deployments. After any registry/schema change, call \`maad_reload\`.
|
|
16
|
+
- **No approved channel available?** Stop and hand the schema files to the operator or host application to install. Do not improvise writes through tools not meant for it, and do not promise autonomous schema deployment you cannot perform.
|
|
14
17
|
|
|
15
18
|
## Operating Modes
|
|
16
19
|
|
|
@@ -45,51 +48,15 @@ When you need more information, ask about the business — not about databases.
|
|
|
45
48
|
|
|
46
49
|
Stop asking when you have enough to design. Three rounds maximum.
|
|
47
50
|
|
|
48
|
-
##
|
|
49
|
-
|
|
50
|
-
Use
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
- **Technicians/Staff**: name, phone, certifications, hire date, specialties. Master.
|
|
55
|
-
- **Jobs/Work Orders**: customer ref, technician ref, service type, scheduled date, status, location, amount. Master (individually tracked).
|
|
56
|
-
- **Job Notes/Updates**: append to job file. Dispatch updates, technician field notes, completion notes. Transaction.
|
|
57
|
-
- **Invoices**: customer ref, job ref, amount, status, due date, paid date. Master if <5K/yr, transaction if more.
|
|
58
|
-
- **Service Types/Catalog**: name, base rate, category, duration estimate. Master (small, stable).
|
|
59
|
-
- **Parts/Inventory**: name, SKU, cost, supplier, quantity. Master.
|
|
60
|
-
- Typical: 500-2000 customers, 2000-10000 jobs/yr, 5-50 staff.
|
|
61
|
-
|
|
62
|
-
### Professional services (legal, consulting, accounting, agencies)
|
|
63
|
-
- **Clients**: company name, industry, primary contact, since date, status. Master.
|
|
64
|
-
- **Contacts**: name, email, phone, role, client ref. Master.
|
|
65
|
-
- **Cases/Projects/Engagements**: client ref, type, status, assigned staff, opened/closed dates. Master.
|
|
66
|
-
- **Notes/Activity Log**: append to case/project file. Meetings, calls, filings, research. Transaction.
|
|
67
|
-
- **Billing/Time Entries**: append to case file or separate. Hours, rate, description, date. Transaction.
|
|
68
|
-
- **Documents/Filings**: per case, tracked as records with metadata. Master if individually referenced.
|
|
69
|
-
- Typical: 50-500 clients, 100-2000 cases/yr, 5-50 staff.
|
|
70
|
-
|
|
71
|
-
### Retail / E-commerce
|
|
72
|
-
- **Customers**: name, email, phone, address, tier, since date. Master.
|
|
73
|
-
- **Products**: name, SKU, price, category, supplier, stock. Master.
|
|
74
|
-
- **Orders**: customer ref, date, status, total, items. Master (individually tracked).
|
|
75
|
-
- **Order Items**: append to order or separate line items. Transaction if high volume.
|
|
76
|
-
- **Inventory Log**: append to product file. Stock changes, restocks, adjustments. Transaction.
|
|
77
|
-
- Typical: 1000-100000 customers, 5000-500000 orders/yr.
|
|
78
|
-
|
|
79
|
-
### Healthcare / Clinical
|
|
80
|
-
- **Patients**: name, DOB, contact, insurance, primary provider. Master.
|
|
81
|
-
- **Providers/Staff**: name, credentials, specialty, department. Master.
|
|
82
|
-
- **Visits/Encounters**: patient ref, provider ref, date, type, notes. Master if individually tracked.
|
|
83
|
-
- **Clinical Notes**: append to patient file or visit file. Transaction.
|
|
84
|
-
- **Prescriptions**: patient ref, medication, dosage, provider, date. Master or transaction depending on volume.
|
|
85
|
-
- **Billing**: patient ref, visit ref, codes, amount, status. Master.
|
|
86
|
-
- Typical: 500-50000 patients, 2000-100000 visits/yr.
|
|
87
|
-
|
|
88
|
-
### General rules (apply to all domains)
|
|
51
|
+
## Design Rules
|
|
52
|
+
|
|
53
|
+
Use your own domain knowledge to fill structural gaps without asking — you
|
|
54
|
+
already know what a CRM, case-management, or clinical structure looks like.
|
|
55
|
+
Apply these MAADb-specific constraints on top:
|
|
56
|
+
|
|
89
57
|
- Entities with names/identities = master (customers, staff, products, cases)
|
|
90
58
|
- Entries that accumulate over time under a parent = transaction (notes, logs, events)
|
|
91
|
-
-
|
|
92
|
-
- If <1000 records/year → master pattern (one file per record)
|
|
59
|
+
- **Master vs transaction is a design checkpoint, not a numeric cutoff.** Blocks appended to a parent file give up independent frontmatter, schema validation, filtering, refs, lifecycle, and deletion/retention handling. Decide per type using expected volume, queryability needs, mutation patterns, retention/audit requirements, and git behavior — very high-volume individually-queryable records may still warrant master files; low-volume never-queried log lines may still suit blocks.
|
|
93
60
|
- Status fields are almost always enums
|
|
94
61
|
- Date fields: declare \`store_precision\` for the minimum precision the schema expects (\`year\` / \`month\` / \`day\` / \`hour\` / \`minute\` / \`second\` / \`millisecond\`). Default \`on_coarser: warn\` surfaces drift without blocking the write; \`error\` opts into strict rejection. \`display_precision\` is a consumer-side rendering hint; the engine never enforces it. Pick per field meaning: identity dates (birthdays, since_date) = \`day\`; event timestamps (opened_at, logged_at) = \`second\` or \`millisecond\`. See \`_skills/schema-guide.md\` for the full contract.
|
|
95
62
|
- Money fields use amount type ("1250.00 USD")
|
|
@@ -147,7 +114,7 @@ Only declare precision hints on date fields where the contract actually matters.
|
|
|
147
114
|
Once you have enough information:
|
|
148
115
|
|
|
149
116
|
### 1. Classify types
|
|
150
|
-
For each entity, determine: master or transaction. Use the
|
|
117
|
+
For each entity, determine: master or transaction. Use the design checkpoint from Design Rules — volume, queryability, mutation, retention, audit, git behavior.
|
|
151
118
|
|
|
152
119
|
### 2. Map relationships
|
|
153
120
|
Draw the refs: what points to what. A job refs a customer and a technician. A note appends to a job.
|
|
@@ -185,34 +152,16 @@ If operating with partial spec or interactively: present and wait for confirmati
|
|
|
185
152
|
|
|
186
153
|
After design is confirmed (or in autonomous mode):
|
|
187
154
|
|
|
188
|
-
1. Write \`_registry/object_types.yaml\` with all types
|
|
189
|
-
2. Write \`_schema/<type>.v1.yaml\` for each type
|
|
155
|
+
1. Write \`_registry/object_types.yaml\` with all types — via the approved schema channel (see Channel boundary above)
|
|
156
|
+
2. Write \`_schema/<type>.v1.yaml\` for each type — same channel
|
|
190
157
|
3. Call \`maad_reload\` to pick up new config
|
|
191
158
|
4. Call \`maad_summary\` to verify engine loaded the types
|
|
192
159
|
5. Optionally create 1-2 sample records per type to validate the schema
|
|
193
160
|
6. Inspect \`_meta.warnings[]\` on sample-record responses — if intended-coarse values trip precision warnings, tighten the schema or adjust the sample input before proceeding
|
|
194
161
|
7. Call \`maad_reindex\` if sample records were created
|
|
195
162
|
8. Report: "Database deployed. X types, Y fields. Ready for data."
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
\`\`\`
|
|
199
|
-
maad_get agt-architect
|
|
200
|
-
→ if not found:
|
|
201
|
-
maad_create agent {
|
|
202
|
-
docId: "agt-architect",
|
|
203
|
-
name: "architect",
|
|
204
|
-
role: "MAADb Architect — bootstrapped this project's schema",
|
|
205
|
-
description: "Designed registry + schemas on <ISO date>",
|
|
206
|
-
status: "active",
|
|
207
|
-
created_at: <now ISO>
|
|
208
|
-
}
|
|
209
|
-
→ if already exists:
|
|
210
|
-
You're re-running against a bootstrapped project. Skip the
|
|
211
|
-
create; optionally \`maad_update\` to refresh \`description\`
|
|
212
|
-
if you're reorganizing schemas.
|
|
213
|
-
\`\`\`
|
|
214
|
-
|
|
215
|
-
This persists provenance — queryable later as "which agent bootstrapped this project." Load-bearing once multiple architect instances operate (e.g., hosted deployments where each tenant brain gets its own bootstrap) or when compliance audits need design-time attribution.
|
|
163
|
+
|
|
164
|
+
**Agent provenance:** design-time attribution already flows through transport, session, and audit metadata — do not create an agent record by default. Create a domain agent record only when the live schema defines an \`agent\` type AND the project's own model calls for one; use the existence-check-then-create pattern (\`maad_get\` first) so re-runs don't collide.
|
|
216
165
|
|
|
217
166
|
## Bulk Data Import
|
|
218
167
|
|
|
@@ -250,7 +199,7 @@ Then transition to MAADb User mode for day-to-day operations, or hand control ba
|
|
|
250
199
|
|
|
251
200
|
## Change Propagation
|
|
252
201
|
|
|
253
|
-
If the project will involve multiple agents, a hosted deployment, or scheduled workers, point the user at \`docs/change-feed.md\` in the engine repo.
|
|
202
|
+
If the project will involve multiple agents, a hosted deployment, or scheduled workers, point the user at \`docs/change-feed.md\` in the engine repo. The recommended pattern is **live subscription plus cursor catch-up**: \`maad_subscribe\` for push notifications on writes (\`maad_unsubscribe\` / \`maad_subscriptions\` to manage), and \`maad_changes_since\` to catch up after reconnects or notification gaps. The cursor must be persisted between calls. In HTTP deployments, polling cadence belongs in the gateway, not the agent's reasoning loop. Do not invent custom polling cadence in skill files — follow the patterns in the reference doc.
|
|
254
203
|
|
|
255
204
|
## What MAADb Is and Is Not
|
|
256
205
|
|
|
@@ -264,8 +213,9 @@ If the project will involve multiple agents, a hosted deployment, or scheduled w
|
|
|
264
213
|
**Not a fit (yet):**
|
|
265
214
|
- Real-time transactional systems (stock trading, live telemetry)
|
|
266
215
|
- Binary data (images, videos — only metadata refs)
|
|
267
|
-
- >100K writes/day (
|
|
268
|
-
|
|
216
|
+
- >100K writes/day per project (single-writer-per-project constraint)
|
|
217
|
+
|
|
218
|
+
**Tenancy model:** isolation is per-project — each project has its own directory tree, index, git history, and a single writer. One instance hosts many projects, with session binding (\`maad_use_project\`), per-project effective roles, and gateway pinning for hosted deployments. Design tenant boundaries as projects; do not mix tenants inside one project.
|
|
269
219
|
|
|
270
220
|
Be honest about limitations when asked. Recommend alternatives when MAADb isn't the right tool.
|
|
271
221
|
`;
|
package/dist/architect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"architect.js","sourceRoot":"","sources":["../src/architect.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,2CAA2C;AAC3C,6EAA6E;AAC7E,2DAA2D;AAC3D,+EAA+E;AAE/E,MAAM,UAAU,sBAAsB;IACpC,OAAO
|
|
1
|
+
{"version":3,"file":"architect.js","sourceRoot":"","sources":["../src/architect.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,2CAA2C;AAC3C,6EAA6E;AAC7E,2DAA2D;AAC3D,+EAA+E;AAE/E,MAAM,UAAU,sBAAsB;IACpC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsNR,CAAC;AACF,CAAC"}
|
package/dist/claude-md.d.ts
CHANGED
package/dist/claude-md.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-md.d.ts","sourceRoot":"","sources":["../src/claude-md.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"claude-md.d.ts","sourceRoot":"","sources":["../src/claude-md.ts"],"names":[],"mappings":"AAqBA,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC"}
|
package/dist/claude-md.js
CHANGED
|
@@ -1,97 +1,26 @@
|
|
|
1
1
|
// ============================================================================
|
|
2
|
-
//
|
|
3
|
-
//
|
|
2
|
+
// Provider pointer files — CLAUDE.md and AGENTS.md.
|
|
3
|
+
//
|
|
4
|
+
// Created ONCE at project init and never managed afterward: users own these
|
|
5
|
+
// files. They stay thin so they cannot meaningfully drift — all instruction
|
|
6
|
+
// content lives in MAAD.md (managed) and _skills/ (managed).
|
|
4
7
|
// ============================================================================
|
|
5
|
-
|
|
6
|
-
return
|
|
7
|
-
|
|
8
|
-
## How to work with this project
|
|
9
|
-
|
|
10
|
-
This is a MAADb project. You have MCP tools for all data operations.
|
|
11
|
-
|
|
12
|
-
**Use MAADb MCP tools for everything.** Do not use bash, shell commands, or direct file reads for data access. If a tool fails, report the error — do not fall back to shell.
|
|
13
|
-
|
|
14
|
-
## Boot sequence
|
|
15
|
-
|
|
16
|
-
1. Run \`maad_summary\` to see what's in this project
|
|
17
|
-
2. If summary shows **zero types and zero documents** → this is an empty project. Read \`_skills/architect-core.md\` and enter Architect mode to design and deploy the database.
|
|
18
|
-
3. If summary shows existing types and documents → this is a live project. Proceed with normal operations below.
|
|
19
|
-
4. Use \`maad_schema <type>\` to understand record structure before writing
|
|
20
|
-
5. Use \`maad_health\` if something seems wrong
|
|
21
|
-
|
|
22
|
-
## Empty project → Architect mode
|
|
23
|
-
|
|
24
|
-
When this project has no types defined:
|
|
25
|
-
1. Read \`_skills/architect-core.md\` for the full Architect role specification
|
|
26
|
-
2. Read \`_skills/schema-guide.md\` for field type reference
|
|
27
|
-
3. Read \`_skills/import-guide.md\` if importing existing data
|
|
28
|
-
4. Follow the Architect workflow: discover requirements → design schema → present plan → build
|
|
29
|
-
|
|
30
|
-
The Architect role handles: schema design, registry creation, data import, troubleshooting, and handoff to normal operations.
|
|
31
|
-
|
|
32
|
-
## Live project → User mode
|
|
33
|
-
|
|
34
|
-
### Reading data
|
|
35
|
-
|
|
36
|
-
- \`maad_summary\` — project snapshot (start here)
|
|
37
|
-
- \`maad_get\` — read a record (hot/warm/cold/full)
|
|
38
|
-
- \`maad_query\` — find records by type, filters, and field projection
|
|
39
|
-
- \`maad_search\` — find extracted objects across all records
|
|
40
|
-
- \`maad_related\` — traverse relationships between records
|
|
41
|
-
- \`maad_aggregate\` — count/sum/avg/min/max grouped by a field. Supports multi-hop ref chains (\`a->b->c\`) for cross-doctype aggregates. **Use instead of iterating records to compute totals.**
|
|
42
|
-
- \`maad_join\` — query + follow refs + project fields from both sides in one call. **Use instead of \`query\` → \`get\` → \`get\` chains.**
|
|
43
|
-
|
|
44
|
-
### Writing data
|
|
8
|
+
function pointerBody() {
|
|
9
|
+
return `This is a **MAADb project** — a markdown-native database.
|
|
45
10
|
|
|
46
|
-
- **
|
|
47
|
-
-
|
|
48
|
-
|
|
49
|
-
-
|
|
50
|
-
- \`maad_bulk_update\` — update multiple records in one call
|
|
51
|
-
- **Execute individual writes sequentially** — do not parallelize single create/update calls
|
|
11
|
+
- **Read \`MAAD.md\`** for the operating instructions (boot, tools, safety).
|
|
12
|
+
- Use MAADb MCP tools for all data operations — no shell or direct file
|
|
13
|
+
access for record data.
|
|
14
|
+
- Task workflows live in \`_skills/\` (architect, schema, import).
|
|
52
15
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
When onboarding new data into this project:
|
|
56
|
-
|
|
57
|
-
1. Read the raw files to understand the data
|
|
58
|
-
2. Read \`_skills/architect-core.md\` for schema design guidance
|
|
59
|
-
3. Design the registry and schemas
|
|
60
|
-
4. Call \`maad_reload\` to pick up the new registry and schemas
|
|
61
|
-
5. Create records using \`maad_create\` (master) or \`maad_update --append\` (transaction)
|
|
62
|
-
6. Call \`maad_reindex\` after bulk creation
|
|
63
|
-
7. Call \`maad_summary\` to confirm
|
|
64
|
-
|
|
65
|
-
### Frontmatter format
|
|
66
|
-
|
|
67
|
-
Every markdown record must have a YAML frontmatter header:
|
|
68
|
-
|
|
69
|
-
\`\`\`yaml
|
|
70
|
-
---
|
|
71
|
-
doc_id: <unique-id>
|
|
72
|
-
doc_type: <registered-type>
|
|
73
|
-
schema: <type.version>
|
|
74
|
-
field1: value1
|
|
75
|
-
field2: value2
|
|
76
|
-
---
|
|
77
|
-
\`\`\`
|
|
78
|
-
|
|
79
|
-
### Server management
|
|
80
|
-
|
|
81
|
-
- \`maad_reload\` — reload registry and schemas after config changes (no restart needed)
|
|
82
|
-
- \`maad_health\` — check engine status
|
|
83
|
-
- \`maad_reindex\` — rebuild index after bulk file changes
|
|
84
|
-
|
|
85
|
-
## Rules
|
|
86
|
-
|
|
87
|
-
1. MCP tools only — no bash for data operations
|
|
88
|
-
2. Schema first — call \`maad_schema\` before writes
|
|
89
|
-
3. Reload after config changes — call \`maad_reload\` after editing registry or schemas
|
|
90
|
-
4. Sequential writes — never parallelize create/update/delete operations
|
|
91
|
-
5. Report errors — if a tool returns \`ok: false\`, report what happened
|
|
92
|
-
6. Empty project = Architect mode — read the skill files and design the database
|
|
93
|
-
7. Use \`maad_aggregate\` for group-by totals — don't page through records to compute counts, sums, or averages. Ref chains like \`client->industry\` enable cross-doctype groupings in one call.
|
|
94
|
-
8. Use \`maad_join\` to follow refs and collect fields in one call — don't chain query/get loops.
|
|
16
|
+
You may add project-specific notes below this line — this file is yours
|
|
17
|
+
after creation and is never overwritten by the engine.
|
|
95
18
|
`;
|
|
96
19
|
}
|
|
20
|
+
export function generateClaudeMd() {
|
|
21
|
+
return `# MAADb Project — Agent Instructions\n\n${pointerBody()}`;
|
|
22
|
+
}
|
|
23
|
+
export function generateAgentsMd() {
|
|
24
|
+
return `# MAADb Project — Agent Instructions\n\n${pointerBody()}`;
|
|
25
|
+
}
|
|
97
26
|
//# sourceMappingURL=claude-md.js.map
|
package/dist/claude-md.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-md.js","sourceRoot":"","sources":["../src/claude-md.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,
|
|
1
|
+
{"version":3,"file":"claude-md.js","sourceRoot":"","sources":["../src/claude-md.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,oDAAoD;AACpD,EAAE;AACF,4EAA4E;AAC5E,4EAA4E;AAC5E,6DAA6D;AAC7D,+EAA+E;AAE/E,SAAS,WAAW;IAClB,OAAO;;;;;;;;;CASR,CAAC;AACF,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,2CAA2C,WAAW,EAAE,EAAE,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,2CAA2C,WAAW,EAAE,EAAE,CAAC;AACpE,CAAC"}
|
|
@@ -2,5 +2,6 @@ import type { CliContext } from '../helpers.js';
|
|
|
2
2
|
export declare function cmdInit(ctx: CliContext): Promise<void>;
|
|
3
3
|
export declare function cmdValidate(ctx: CliContext): Promise<void>;
|
|
4
4
|
export declare function cmdReindex(ctx: CliContext): Promise<void>;
|
|
5
|
+
export declare function cmdInstructions(ctx: CliContext): Promise<void>;
|
|
5
6
|
export declare function cmdParse(ctx: CliContext): Promise<void>;
|
|
6
7
|
//# sourceMappingURL=maintain.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"maintain.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/maintain.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,wBAAsB,OAAO,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"maintain.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/maintain.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,wBAAsB,OAAO,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAoD5D;AAED,wBAAsB,WAAW,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAiChE;AAED,wBAAsB,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAuE/D;AAED,wBAAsB,eAAe,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA4DpE;AAED,wBAAsB,QAAQ,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAuC7D"}
|
|
@@ -5,10 +5,10 @@ import path from 'node:path';
|
|
|
5
5
|
import { existsSync, mkdirSync, writeFileSync } from 'node:fs';
|
|
6
6
|
import { docId } from '../../types.js';
|
|
7
7
|
import { GitLayer } from '../../git/index.js';
|
|
8
|
-
import { generateMaadMd, generateStubMaadMd } from '../../maad-md.js';
|
|
9
8
|
import { generateSchemaMd } from '../../schema-md.js';
|
|
10
|
-
import { generateClaudeMd } from '../../claude-md.js';
|
|
9
|
+
import { generateClaudeMd, generateAgentsMd } from '../../claude-md.js';
|
|
11
10
|
import { ensureProjectSkills } from '../../skills-scaffold.js';
|
|
11
|
+
import { engineVersion, checkProject, planRefresh, applyRefresh } from '../../instructions/manifest.js';
|
|
12
12
|
import { initEngine } from '../helpers.js';
|
|
13
13
|
export async function cmdInit(ctx) {
|
|
14
14
|
const dir = ctx.args[1] ?? '.';
|
|
@@ -32,20 +32,19 @@ export async function cmdInit(ctx) {
|
|
|
32
32
|
writeFileSync(gitignorePath, '_backend/\n_import/\n', 'utf-8');
|
|
33
33
|
console.log(' Created .gitignore');
|
|
34
34
|
}
|
|
35
|
-
|
|
36
|
-
if (!existsSync(maadMdPath)) {
|
|
37
|
-
const enginePath = path.resolve(ctx.__dirname, 'cli.js');
|
|
38
|
-
writeFileSync(maadMdPath, generateStubMaadMd(enginePath, root), 'utf-8');
|
|
39
|
-
console.log(' Created MAAD.md');
|
|
40
|
-
}
|
|
41
|
-
// CLAUDE.md — agent instructions for MCP-first workflow
|
|
35
|
+
// Provider pointers — created once at init, user-owned afterward.
|
|
42
36
|
const claudeMdPath = path.join(root, 'CLAUDE.md');
|
|
43
37
|
if (!existsSync(claudeMdPath)) {
|
|
44
38
|
writeFileSync(claudeMdPath, generateClaudeMd(), 'utf-8');
|
|
45
39
|
console.log(' Created CLAUDE.md');
|
|
46
40
|
}
|
|
47
|
-
|
|
48
|
-
|
|
41
|
+
const agentsMdPath = path.join(root, 'AGENTS.md');
|
|
42
|
+
if (!existsSync(agentsMdPath)) {
|
|
43
|
+
writeFileSync(agentsMdPath, generateAgentsMd(), 'utf-8');
|
|
44
|
+
console.log(' Created AGENTS.md');
|
|
45
|
+
}
|
|
46
|
+
// Managed instruction files (MAAD.md + _skills/) — stamped, create-if-absent
|
|
47
|
+
// (shared scaffold so lifecycle, CLI init, and EnginePool use one code path)
|
|
49
48
|
const skillsResult = ensureProjectSkills(root);
|
|
50
49
|
for (const f of skillsResult.created)
|
|
51
50
|
console.log(` Created ${f}`);
|
|
@@ -125,23 +124,16 @@ export async function cmdReindex(ctx) {
|
|
|
125
124
|
for (const e of r.errors)
|
|
126
125
|
console.log(` ${e.code}: ${e.message}`);
|
|
127
126
|
}
|
|
127
|
+
// Instruction-lifecycle rework: reindex no longer writes MAAD.md — it is a
|
|
128
|
+
// static managed file, created via scaffold and updated only through
|
|
129
|
+
// `maad instructions refresh`. SCHEMA.md remains a data-derived artifact
|
|
130
|
+
// and keeps refreshing here.
|
|
128
131
|
try {
|
|
129
132
|
const { loadSchemas } = await import('../../schema/index.js');
|
|
130
133
|
const registry = engine.getRegistry();
|
|
131
134
|
const schemaResult = await loadSchemas(engine.getProjectRoot(), registry);
|
|
132
135
|
if (schemaResult.ok) {
|
|
133
136
|
const stats = engine.getBackend().getStats();
|
|
134
|
-
const enginePath = path.resolve(ctx.__dirname, 'cli.js');
|
|
135
|
-
const maadMdPath = path.join(engine.getProjectRoot(), 'MAAD.md');
|
|
136
|
-
const maadMd = generateMaadMd({
|
|
137
|
-
projectRoot: engine.getProjectRoot(),
|
|
138
|
-
enginePath,
|
|
139
|
-
registry,
|
|
140
|
-
schemaStore: schemaResult.value,
|
|
141
|
-
stats,
|
|
142
|
-
});
|
|
143
|
-
writeFileSync(maadMdPath, maadMd, 'utf-8');
|
|
144
|
-
console.log('Updated MAAD.md');
|
|
145
137
|
const schemaMd = generateSchemaMd({
|
|
146
138
|
registry,
|
|
147
139
|
schemaStore: schemaResult.value,
|
|
@@ -150,9 +142,16 @@ export async function cmdReindex(ctx) {
|
|
|
150
142
|
writeFileSync(path.join(engine.getProjectRoot(), 'SCHEMA.md'), schemaMd, 'utf-8');
|
|
151
143
|
console.log('Updated SCHEMA.md');
|
|
152
144
|
}
|
|
145
|
+
const scaffolded = ensureProjectSkills(engine.getProjectRoot());
|
|
146
|
+
for (const f of scaffolded.created)
|
|
147
|
+
console.log(`Created ${f}`);
|
|
148
|
+
const stale = checkProject(engine.getProjectRoot()).filter(s => s.state !== 'current');
|
|
149
|
+
if (stale.length > 0) {
|
|
150
|
+
console.log(`Instructions not current (${stale.map(s => `${s.relPath}:${s.state}`).join(', ')}) — run \`maad instructions check\`.`);
|
|
151
|
+
}
|
|
153
152
|
}
|
|
154
153
|
catch (e) {
|
|
155
|
-
console.warn(`
|
|
154
|
+
console.warn(`SCHEMA.md generation failed: ${e instanceof Error ? e.message : String(e)}`);
|
|
156
155
|
}
|
|
157
156
|
engine.close();
|
|
158
157
|
// 0.8.3 — same fail-closed posture as cmdValidate: a full reindex reports
|
|
@@ -165,6 +164,66 @@ export async function cmdReindex(ctx) {
|
|
|
165
164
|
process.exit(1);
|
|
166
165
|
}
|
|
167
166
|
}
|
|
167
|
+
export async function cmdInstructions(ctx) {
|
|
168
|
+
const sub = ctx.args[1];
|
|
169
|
+
const root = path.resolve(ctx.projectRoot);
|
|
170
|
+
if (sub === 'check') {
|
|
171
|
+
const statuses = checkProject(root);
|
|
172
|
+
console.log(`Managed instructions in ${root} (engine ${engineVersion()}):`);
|
|
173
|
+
for (const s of statuses) {
|
|
174
|
+
const vintage = s.stampedEngine ? ` (stamped ${s.stampedEngine})` : '';
|
|
175
|
+
console.log(` ${s.state.padEnd(9)} ${s.relPath}${vintage}`);
|
|
176
|
+
}
|
|
177
|
+
const actionable = statuses.filter(s => s.state !== 'current');
|
|
178
|
+
if (actionable.length === 0) {
|
|
179
|
+
console.log('All managed instructions are current.');
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
console.log(`\n${actionable.length} file(s) not current. \`maad instructions refresh\` updates outdated/missing; add --force to also replace modified/unmanaged files (git history is the undo path).`);
|
|
183
|
+
process.exit(1);
|
|
184
|
+
}
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
if (sub === 'refresh') {
|
|
188
|
+
const apply = ctx.args.includes('--apply');
|
|
189
|
+
const force = ctx.args.includes('--force');
|
|
190
|
+
const plan = planRefresh(root, { force });
|
|
191
|
+
for (const s of plan.current)
|
|
192
|
+
console.log(` current ${s.relPath}`);
|
|
193
|
+
for (const s of plan.refresh)
|
|
194
|
+
console.log(` ${apply ? 'refresh' : 'would refresh'} ${s.relPath} (${s.state})`);
|
|
195
|
+
for (const s of plan.skippedModified)
|
|
196
|
+
console.log(` SKIP modified ${s.relPath} — user-edited; --force to replace`);
|
|
197
|
+
for (const s of plan.skippedUnmanaged)
|
|
198
|
+
console.log(` SKIP unmanaged ${s.relPath} — pre-lifecycle vintage; --force to adopt`);
|
|
199
|
+
if (plan.refresh.length === 0) {
|
|
200
|
+
console.log('Nothing to refresh.');
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
if (!apply) {
|
|
204
|
+
console.log(`\nDry run — ${plan.refresh.length} file(s) would be refreshed to engine ${engineVersion()}. Re-run with --apply to write.`);
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
const written = applyRefresh(root, plan);
|
|
208
|
+
console.log(`Refreshed ${written.length} file(s) to engine ${engineVersion()}.`);
|
|
209
|
+
// Land the refresh as its own commit so it is auditable and revertible.
|
|
210
|
+
try {
|
|
211
|
+
const git = new GitLayer(root);
|
|
212
|
+
if (await git.isRepo()) {
|
|
213
|
+
const sg = git.getSimpleGit();
|
|
214
|
+
await sg.add(written);
|
|
215
|
+
await sg.commit(`maad:instructions — refresh managed instructions to ${engineVersion()}`);
|
|
216
|
+
console.log('Committed refresh to git.');
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
catch (e) {
|
|
220
|
+
console.warn(`Git commit failed (files written): ${e instanceof Error ? e.message : String(e)}`);
|
|
221
|
+
}
|
|
222
|
+
return;
|
|
223
|
+
}
|
|
224
|
+
console.error('Usage: maad instructions <check|refresh> [--apply] [--force]');
|
|
225
|
+
process.exit(1);
|
|
226
|
+
}
|
|
168
227
|
export async function cmdParse(ctx) {
|
|
169
228
|
const filePath = ctx.args[1];
|
|
170
229
|
if (!filePath) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"maintain.js","sourceRoot":"","sources":["../../../src/cli/commands/maintain.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"maintain.js","sourceRoot":"","sources":["../../../src/cli/commands/maintain.ts"],"names":[],"mappings":"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"}
|