@happyvertical/smrt-dev-mcp 0.47.2 → 0.49.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 (39) hide show
  1. package/AGENTS.md +7 -9
  2. package/README.md +88 -66
  3. package/dist/dev-plane.d.ts +48 -0
  4. package/dist/dev-plane.d.ts.map +1 -0
  5. package/dist/dev-plane.js +211 -0
  6. package/dist/dev-plane.js.map +1 -0
  7. package/dist/http-TeoaK9Xr.js +168 -0
  8. package/dist/http-TeoaK9Xr.js.map +1 -0
  9. package/dist/http.d.ts +1 -0
  10. package/dist/http.d.ts.map +1 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +31 -850
  13. package/dist/index.js.map +1 -1
  14. package/dist/knowledge/index.d.ts +27 -1
  15. package/dist/knowledge/index.d.ts.map +1 -1
  16. package/dist/{knowledge-CY6sQzpj.js → knowledge-BOsSAdPo.js} +81 -713
  17. package/dist/knowledge-BOsSAdPo.js.map +1 -0
  18. package/dist/knowledge.js +2 -2
  19. package/dist/observation-VJgHaPps.js +802 -0
  20. package/dist/observation-VJgHaPps.js.map +1 -0
  21. package/dist/runtime.d.ts +21 -0
  22. package/dist/runtime.d.ts.map +1 -0
  23. package/dist/runtime.js +18 -0
  24. package/dist/runtime.js.map +1 -0
  25. package/dist/tool-catalog-Zl-bcimC.js +643 -0
  26. package/dist/tool-catalog-Zl-bcimC.js.map +1 -0
  27. package/dist/tool-catalog.d.ts.map +1 -1
  28. package/dist/tools/introspect-project.d.ts +8 -0
  29. package/dist/tools/introspect-project.d.ts.map +1 -1
  30. package/dist/tools/runtime/boot.d.ts +10 -0
  31. package/dist/tools/runtime/boot.d.ts.map +1 -1
  32. package/dist/tools/runtime/connection.d.ts +19 -0
  33. package/dist/tools/runtime/connection.d.ts.map +1 -1
  34. package/dist/tools/runtime/observation.d.ts +12 -0
  35. package/dist/tools/runtime/observation.d.ts.map +1 -1
  36. package/dist/tools/runtime/tools.d.ts.map +1 -1
  37. package/package.json +13 -5
  38. package/skills/smrt-code-review/SKILL.md +1 -1
  39. package/dist/knowledge-CY6sQzpj.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-catalog-Zl-bcimC.js","names":[],"sources":["../src/tool-catalog.ts"],"sourcesContent":["import type { Tool } from '@modelcontextprotocol/server';\n\nexport const REVIEW_SKILL_NAME = 'smrt-code-review';\n\nconst JSON_SCHEMA_2020_12 = 'https://json-schema.org/draft/2020-12/schema';\n\nfunction compareToolNames(left: string, right: string): number {\n return left < right ? -1 : left > right ? 1 : 0;\n}\n\n/**\n * Stable success/error envelope for development tools. `data` preserves each\n * tool's existing payload exactly; coverage/diagnostics are promoted only when\n * the underlying result actually reports them.\n */\nconst DEV_MCP_OUTPUT_SCHEMA: NonNullable<Tool['outputSchema']> = {\n $schema: JSON_SCHEMA_2020_12,\n type: 'object',\n additionalProperties: false,\n required: ['ok', 'coverage', 'diagnostics', 'data'],\n properties: {\n ok: { type: 'boolean' },\n coverage: { type: ['object', 'null'], additionalProperties: true },\n diagnostics: {\n type: 'array',\n items: { type: 'object', additionalProperties: true },\n },\n data: {},\n },\n};\n\nconst KNOWLEDGE_DETAIL_DESCRIPTION =\n 'summary: authored package docs are listed by path to stay inside tool-result budgets. full: embed package docs and matching modules with structural object facts. complete: embed all modules and return full package records.';\n\nconst DATABASE_URL_PROPERTY = {\n type: 'string',\n description:\n 'Optional dev database URL override (read-only diagnostics); prefer SMRT_DEV_DB_URL or cli.database config',\n};\n\nconst DATABASE_TYPE_PROPERTY = {\n type: 'string',\n enum: ['sqlite', 'postgres', 'duckdb'],\n description:\n 'Optional engine hint for dbUrl or the environment connection (sqlite, postgres, duckdb); inferred from the URL scheme when omitted',\n};\n\nconst PROJECT_PATH_PROPERTY = {\n type: 'string',\n description:\n 'Project root to boot manifests from (default: the server working directory; ignored by the HTTP host, which boots once)',\n} as const;\n\nconst LIMIT_PROPERTY = {\n type: 'number',\n description: 'Row budget for result lists (default 50, capped at 500)',\n};\n\n// Tool definitions\nconst TOOL_DEFINITIONS: Array<\n Pick<Tool, 'name' | 'description' | 'inputSchema'>\n> = [\n // Code Generation Tools\n {\n name: 'generate-smrt-class',\n description: 'Generate a complete SMRT class with @smrt() decorator',\n inputSchema: {\n type: 'object',\n properties: {\n className: {\n type: 'string',\n description: 'Name of the class (PascalCase)',\n },\n properties: {\n type: 'array',\n description: 'Array of property definitions',\n items: {\n type: 'object',\n properties: {\n name: { type: 'string' },\n type: {\n type: 'string',\n enum: [\n 'text',\n 'integer',\n 'decimal',\n 'boolean',\n 'datetime',\n 'json',\n ],\n },\n required: { type: 'boolean' },\n nullable: { type: 'boolean' },\n description: { type: 'string' },\n defaultValue: {\n oneOf: [\n { type: 'string' },\n { type: 'number' },\n { type: 'boolean' },\n { type: 'object' },\n { type: 'null' },\n ],\n },\n },\n required: ['name', 'type'],\n },\n },\n baseClass: {\n type: 'string',\n enum: ['SmrtObject', 'SmrtCollection'],\n default: 'SmrtObject',\n },\n template: {\n type: 'string',\n enum: [\n 'basic',\n 'global-catalog',\n 'optional-catalog',\n 'tenant-project-object',\n 'tenant-event-log-object',\n 'cross-package-reference',\n ],\n default: 'basic',\n },\n tableName: { type: 'string' },\n conflictColumns: {\n type: 'array',\n items: { type: 'string' },\n },\n tenantScoped: {\n oneOf: [\n { type: 'boolean' },\n {\n type: 'object',\n properties: {\n mode: { type: 'string', enum: ['required', 'optional'] },\n field: { type: 'string' },\n autoFilter: { type: 'boolean' },\n autoPopulate: { type: 'boolean' },\n allowSuperAdminBypass: { type: 'boolean' },\n },\n },\n ],\n },\n includeTenantIdField: { type: 'boolean' },\n relationships: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n name: { type: 'string' },\n type: {\n type: 'string',\n enum: [\n 'foreignKey',\n 'crossPackageRef',\n 'oneToMany',\n 'manyToMany',\n ],\n },\n related: { type: 'string' },\n required: { type: 'boolean' },\n nullable: { type: 'boolean' },\n description: { type: 'string' },\n validate: { type: 'boolean' },\n foreignKey: { type: 'string' },\n through: { type: 'string' },\n sourceKey: { type: 'string' },\n targetKey: { type: 'string' },\n },\n required: ['name', 'type', 'related'],\n },\n },\n includeCompanionSnippets: { type: 'boolean', default: false },\n includeApiConfig: { type: 'boolean', default: true },\n includeMcpConfig: { type: 'boolean', default: true },\n includeCliConfig: { type: 'boolean', default: true },\n },\n required: ['className', 'properties'],\n },\n },\n // Project Introspection Tools\n {\n name: 'introspect-project',\n description:\n 'Scan a directory for SMRT objects. Returns a compact summary by default; pass detail: \"full\" for field, schema, and method details.',\n inputSchema: {\n type: 'object',\n properties: {\n directory: {\n type: 'string',\n description: 'Project directory (default: cwd)',\n },\n manifestPath: {\n type: 'string',\n description:\n 'Optional manifest path. Defaults to .smrt/manifest.json, dist/manifest.json, then source scanning.',\n },\n detail: {\n type: 'string',\n enum: ['summary', 'full'],\n default: 'summary',\n description:\n 'summary: one compact record per object. full: complete field/schema/method detail (large).',\n },\n maxChars: {\n type: 'number',\n description:\n 'Character budget for the `objects` payload. Objects past the budget are omitted and reported under `truncated`. Project metadata and diagnostics are always returned in full, so the serialized response is somewhat larger than this budget.',\n },\n cursor: {\n type: 'string',\n description:\n \"Resume after this className (objects are sorted alphabetically). Pass a previous response's `nextCursor` to read the next page instead of raising maxChars.\",\n },\n limit: {\n type: 'number',\n description:\n 'Maximum objects per page, applied before the character budget',\n },\n includeFields: {\n type: 'boolean',\n description: 'Include field details (detail: \"full\" only)',\n },\n includeRelationships: {\n type: 'boolean',\n description: 'Analyze relationships (detail: \"full\" only)',\n },\n includeMethods: {\n type: 'boolean',\n description: 'Include public method details (detail: \"full\" only)',\n },\n },\n },\n },\n {\n name: 'review-smrt-project',\n description:\n 'Advisory ecosystem alignment review for downstream SMRT projects',\n inputSchema: {\n type: 'object',\n properties: {\n directory: {\n type: 'string',\n description: 'Project directory (default: cwd)',\n },\n rootDir: {\n type: 'string',\n description: 'Compatibility alias for directory',\n },\n includeSourceEvidence: {\n type: 'boolean',\n description: 'Include file and line evidence in findings',\n default: true,\n },\n maxFindings: {\n type: 'number',\n description: 'Optional maximum number of findings to return',\n },\n },\n },\n },\n {\n name: 'reflect-knowledge',\n description:\n 'Report deterministic SMRT + HappyVertical SDK knowledge coverage and freshness',\n inputSchema: {\n type: 'object',\n properties: {\n rootDir: {\n type: 'string',\n description: 'Project root directory (default: cwd)',\n },\n },\n },\n },\n {\n name: 'reflect-domain-knowledge',\n description:\n 'Report domain-scoped SMRT knowledge artifacts, SDK packages, and freshness',\n inputSchema: {\n type: 'object',\n properties: {\n rootDir: { type: 'string' },\n scope: {\n type: 'string',\n enum: ['project', 'local', 'package', 'sdk', 'installed'],\n default: 'project',\n },\n package: { type: 'string' },\n },\n },\n },\n {\n name: 'check-knowledge-freshness',\n description: 'Run deterministic freshness checks for SMRT agent knowledge',\n inputSchema: {\n type: 'object',\n properties: {\n rootDir: { type: 'string' },\n changed: {\n type: 'boolean',\n description: 'Limit stale-pattern checks to changed files',\n },\n strict: {\n type: 'boolean',\n description: 'Treat stale-pattern findings as errors',\n },\n },\n },\n },\n {\n name: 'build-context',\n description:\n 'Build model-ready SMRT context. task: \"review\" routes changedFiles/focus to package experts and returns file-anchored findings, package hints, and a prompt bundle; task: \"architecture\" ranks packages by the idea text and returns the bundle plus recommendations. Replaces build-review-context, build-domain-review-context, build-architecture-context, and build-domain-architecture-context.',\n inputSchema: {\n type: 'object',\n properties: {\n task: {\n type: 'string',\n enum: ['review', 'architecture'],\n description:\n 'review: changed files and focus. architecture: an idea or documentation.',\n },\n rootDir: { type: 'string' },\n changedFiles: {\n type: 'array',\n items: { type: 'string' },\n description: 'Files to route to package experts (task: review)',\n },\n focus: { type: 'string', description: 'Concern to prioritise' },\n documentation: {\n type: 'string',\n description: 'Existing docs, notes, or requirements',\n },\n idea: {\n type: 'string',\n description: 'Product or implementation idea (task: architecture)',\n },\n scope: {\n type: 'string',\n enum: ['project', 'local', 'package', 'sdk', 'installed'],\n default: 'project',\n },\n package: {\n type: 'string',\n description: 'Package name or short name to focus',\n },\n mode: {\n type: 'string',\n enum: ['findings', 'prompt-bundle', 'both'],\n default: 'both',\n description: 'task: review only',\n },\n detail: {\n type: 'string',\n enum: ['summary', 'full', 'complete'],\n default: 'summary',\n description: KNOWLEDGE_DETAIL_DESCRIPTION,\n },\n },\n required: ['task'],\n },\n },\n {\n name: 'smrt-review',\n description:\n 'Deprecated compatibility name for build-context with task: \"review\"; removed in the next minor release. For a formal downstream review, first call get-agent-skill with { \"name\": \"smrt-code-review\" }.',\n inputSchema: {\n type: 'object',\n properties: {\n rootDir: { type: 'string' },\n changedFiles: { type: 'array', items: { type: 'string' } },\n focus: { type: 'string' },\n documentation: { type: 'string' },\n mode: {\n type: 'string',\n enum: ['findings', 'prompt-bundle', 'both'],\n default: 'both',\n },\n detail: {\n type: 'string',\n enum: ['summary', 'full', 'complete'],\n default: 'summary',\n description: KNOWLEDGE_DETAIL_DESCRIPTION,\n },\n },\n },\n },\n {\n name: 'build-package-specialist-context',\n description:\n 'Build deterministic package specialist context for the SMRT workbench',\n inputSchema: {\n type: 'object',\n properties: {\n rootDir: { type: 'string' },\n package: {\n type: 'string',\n description:\n 'Package name or short package query, e.g. @happyvertical/smrt-content or content',\n },\n focus: { type: 'string' },\n },\n required: ['package'],\n },\n },\n {\n name: 'smrt-architecture',\n description:\n 'Deprecated compatibility name for build-context with task: \"architecture\"; removed in the next minor release.',\n inputSchema: {\n type: 'object',\n properties: {\n rootDir: { type: 'string' },\n idea: { type: 'string' },\n documentation: { type: 'string' },\n focus: { type: 'string' },\n detail: {\n type: 'string',\n enum: ['summary', 'full', 'complete'],\n default: 'summary',\n description: KNOWLEDGE_DETAIL_DESCRIPTION,\n },\n },\n },\n },\n {\n name: 'list-agent-skills',\n description:\n 'List bundled harness-agnostic agent skills shipped with smrt-dev-mcp',\n inputSchema: {\n type: 'object',\n properties: {},\n },\n },\n {\n name: 'get-agent-skill',\n description:\n 'Return a bundled harness-agnostic agent skill as Markdown plus optional references',\n inputSchema: {\n type: 'object',\n properties: {\n name: {\n type: 'string',\n enum: [REVIEW_SKILL_NAME],\n description: 'Bundled agent skill name',\n },\n includeReferences: {\n type: 'boolean',\n default: true,\n description: 'Include referenced files with the skill bundle',\n },\n },\n required: ['name'],\n },\n },\n {\n name: 'migration-status',\n description:\n 'Live migration status from the _smrt_schema_migrations system table (runtime provenance; read-only)',\n inputSchema: {\n type: 'object',\n properties: {\n dbUrl: DATABASE_URL_PROPERTY,\n dbType: DATABASE_TYPE_PROPERTY,\n limit: LIMIT_PROPERTY,\n },\n },\n },\n {\n name: 'job-health',\n description:\n 'Live job queue health from the _smrt_jobs/_smrt_workers system tables (runtime provenance; read-only)',\n inputSchema: {\n type: 'object',\n properties: {\n dbUrl: DATABASE_URL_PROPERTY,\n dbType: DATABASE_TYPE_PROPERTY,\n limit: LIMIT_PROPERTY,\n },\n },\n },\n {\n name: 'schedule-health',\n description:\n 'Live agent schedule health from the _smrt_agent_schedules system table (runtime provenance; read-only; sensitive agentConfig never read)',\n inputSchema: {\n type: 'object',\n properties: {\n dbUrl: DATABASE_URL_PROPERTY,\n dbType: DATABASE_TYPE_PROPERTY,\n limit: LIMIT_PROPERTY,\n },\n },\n },\n {\n name: 'dispatch-health',\n description:\n 'Live dispatch health from the _smrt_dispatch/_smrt_dispatch_subscriptions system tables (runtime provenance; read-only; payloads never read)',\n inputSchema: {\n type: 'object',\n properties: {\n dbUrl: DATABASE_URL_PROPERTY,\n dbType: DATABASE_TYPE_PROPERTY,\n limit: LIMIT_PROPERTY,\n },\n },\n },\n {\n name: 'recent-changes',\n description:\n 'Tail of the _smrt_changes change feed (runtime provenance; read-only; filter by table/tenant)',\n inputSchema: {\n type: 'object',\n properties: {\n dbUrl: DATABASE_URL_PROPERTY,\n dbType: DATABASE_TYPE_PROPERTY,\n since: {\n type: 'number',\n description: 'Cursor to read after (default 0)',\n },\n tables: {\n type: 'array',\n items: { type: 'string' },\n description: 'Restrict to these physical table names',\n },\n tenantId: {\n type: 'string',\n description: 'Tenant narrowing filter',\n },\n limit: LIMIT_PROPERTY,\n },\n },\n },\n {\n name: 'registry-drift',\n description:\n 'Registry drift report; _smrt_registry is retired and reported as such, never queried (read-only)',\n inputSchema: {\n type: 'object',\n properties: {\n dbUrl: DATABASE_URL_PROPERTY,\n dbType: DATABASE_TYPE_PROPERTY,\n },\n },\n },\n {\n name: 'runtime-registry',\n description:\n 'Sanitized snapshot of the booted ObjectRegistry from the project and installed manifests (booted provenance; read-only; no project code executed)',\n inputSchema: {\n type: 'object',\n properties: {\n projectPath: PROJECT_PATH_PROPERTY,\n objects: {\n type: 'array',\n items: { type: 'string' },\n description:\n 'Restrict field/method detail to these simple or qualified object names',\n },\n detail: {\n type: 'boolean',\n description:\n 'Include field and method detail for every object (default: only when objects is given)',\n },\n cursor: {\n type: 'string',\n description:\n \"Resume after this qualified object name; pass a previous response's `page.nextCursor`\",\n },\n limit: {\n type: 'number',\n description: 'Objects per page (default 50, capped at 500)',\n },\n },\n },\n },\n {\n name: 'runtime-object',\n description:\n 'One booted object: sanitized fields, methods, tenancy, inheritance, and the DDL the registry would generate (booted provenance; read-only)',\n inputSchema: {\n type: 'object',\n properties: {\n projectPath: PROJECT_PATH_PROPERTY,\n name: {\n type: 'string',\n description: 'Simple or qualified object name',\n },\n engine: {\n type: 'string',\n enum: ['sqlite', 'postgres', 'duckdb'],\n description: 'Engine for the DDL preview (default: registry default)',\n },\n },\n required: ['name'],\n },\n },\n {\n name: 'runtime-schema-diff',\n description:\n 'Booted registry schemas versus the live dev database using the db:diff comparer; introspection only, drops/relaxations never proposed (runtime provenance; read-only)',\n inputSchema: {\n type: 'object',\n properties: {\n projectPath: PROJECT_PATH_PROPERTY,\n dbUrl: DATABASE_URL_PROPERTY,\n dbType: DATABASE_TYPE_PROPERTY,\n },\n },\n },\n];\n\nexport const TOOLS: Tool[] = TOOL_DEFINITIONS.map((tool) => ({\n ...tool,\n inputSchema: {\n ...tool.inputSchema,\n $schema: JSON_SCHEMA_2020_12,\n },\n outputSchema: DEV_MCP_OUTPUT_SCHEMA,\n})).sort((left, right) => compareToolNames(left.name, right.name));\n"],"mappings":"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AAS;KACT,aACE;IACJ;IACA,UAAU;KACR,MAAM;KACN,aACE;IACJ;IACA,QAAQ;KACN,MAAM;KACN,aACE;IACJ;IACA,OAAO;KACL,MAAM;KACN,aACE;IACJ;IACA,eAAe;KACb,MAAM;KACN,aAAa;IACf;IACA,sBAAsB;KACpB,MAAM;KACN,aAAa;IACf;IACA,gBAAgB;KACd,MAAM;KACN,aAAa;IACf;GACF;EACF;CACF;CACA;EACE,MAAM;EACN,aACE;EACF,aAAa;GACX,MAAM;GACN,YAAY;IACV,WAAW;KACT,MAAM;KACN,aAAa;IACf;IACA,SAAS;KACP,MAAM;KACN,aAAa;IACf;IACA,uBAAuB;KACrB,MAAM;KACN,aAAa;KACb,SAAS;IACX;IACA,aAAa;KACX,MAAM;KACN,aAAa;IACf;GACF;EACF;CACF;CACA;EACE,MAAM;EACN,aACE;EACF,aAAa;GACX,MAAM;GACN,YAAY,EACV,SAAS;IACP,MAAM;IACN,aAAa;GACf,EACF;EACF;CACF;CACA;EACE,MAAM;EACN,aACE;EACF,aAAa;GACX,MAAM;GACN,YAAY;IACV,SAAS,EAAE,MAAM,SAAS;IAC1B,OAAO;KACL,MAAM;KACN,MAAM;MAAC;MAAW;MAAS;MAAW;MAAO;KAAW;KACxD,SAAS;IACX;IACA,SAAS,EAAE,MAAM,SAAS;GAC5B;EACF;CACF;CACA;EACE,MAAM;EACN,aAAa;EACb,aAAa;GACX,MAAM;GACN,YAAY;IACV,SAAS,EAAE,MAAM,SAAS;IAC1B,SAAS;KACP,MAAM;KACN,aAAa;IACf;IACA,QAAQ;KACN,MAAM;KACN,aAAa;IACf;GACF;EACF;CACF;CACA;EACE,MAAM;EACN,aACE;EACF,aAAa;GACX,MAAM;GACN,YAAY;IACV,MAAM;KACJ,MAAM;KACN,MAAM,CAAC,UAAU,cAAc;KAC/B,aACE;IACJ;IACA,SAAS,EAAE,MAAM,SAAS;IAC1B,cAAc;KACZ,MAAM;KACN,OAAO,EAAE,MAAM,SAAS;KACxB,aAAa;IACf;IACA,OAAO;KAAE,MAAM;KAAU,aAAa;IAAwB;IAC9D,eAAe;KACb,MAAM;KACN,aAAa;IACf;IACA,MAAM;KACJ,MAAM;KACN,aAAa;IACf;IACA,OAAO;KACL,MAAM;KACN,MAAM;MAAC;MAAW;MAAS;MAAW;MAAO;KAAW;KACxD,SAAS;IACX;IACA,SAAS;KACP,MAAM;KACN,aAAa;IACf;IACA,MAAM;KACJ,MAAM;KACN,MAAM;MAAC;MAAY;MAAiB;KAAM;KAC1C,SAAS;KACT,aAAa;IACf;IACA,QAAQ;KACN,MAAM;KACN,MAAM;MAAC;MAAW;MAAQ;KAAU;KACpC,SAAS;KACT,aAAa;IACf;GACF;GACA,UAAU,CAAC,MAAM;EACnB;CACF;CACA;EACE,MAAM;EACN,aACE;EACF,aAAa;GACX,MAAM;GACN,YAAY;IACV,SAAS,EAAE,MAAM,SAAS;IAC1B,cAAc;KAAE,MAAM;KAAS,OAAO,EAAE,MAAM,SAAS;IAAE;IACzD,OAAO,EAAE,MAAM,SAAS;IACxB,eAAe,EAAE,MAAM,SAAS;IAChC,MAAM;KACJ,MAAM;KACN,MAAM;MAAC;MAAY;MAAiB;KAAM;KAC1C,SAAS;IACX;IACA,QAAQ;KACN,MAAM;KACN,MAAM;MAAC;MAAW;MAAQ;KAAU;KACpC,SAAS;KACT,aAAa;IACf;GACF;EACF;CACF;CACA;EACE,MAAM;EACN,aACE;EACF,aAAa;GACX,MAAM;GACN,YAAY;IACV,SAAS,EAAE,MAAM,SAAS;IAC1B,SAAS;KACP,MAAM;KACN,aACE;IACJ;IACA,OAAO,EAAE,MAAM,SAAS;GAC1B;GACA,UAAU,CAAC,SAAS;EACtB;CACF;CACA;EACE,MAAM;EACN,aACE;EACF,aAAa;GACX,MAAM;GACN,YAAY;IACV,SAAS,EAAE,MAAM,SAAS;IAC1B,MAAM,EAAE,MAAM,SAAS;IACvB,eAAe,EAAE,MAAM,SAAS;IAChC,OAAO,EAAE,MAAM,SAAS;IACxB,QAAQ;KACN,MAAM;KACN,MAAM;MAAC;MAAW;MAAQ;KAAU;KACpC,SAAS;KACT,aAAa;IACf;GACF;EACF;CACF;CACA;EACE,MAAM;EACN,aACE;EACF,aAAa;GACX,MAAM;GACN,YAAY,CAAC;EACf;CACF;CACA;EACE,MAAM;EACN,aACE;EACF,aAAa;GACX,MAAM;GACN,YAAY;IACV,MAAM;KACJ,MAAM;KACN,MAAM,CAAC,iBAAiB;KACxB,aAAa;IACf;IACA,mBAAmB;KACjB,MAAM;KACN,SAAS;KACT,aAAa;IACf;GACF;GACA,UAAU,CAAC,MAAM;EACnB;CACF;CACA;EACE,MAAM;EACN,aACE;EACF,aAAa;GACX,MAAM;GACN,YAAY;IACV,OAAO;IACP,QAAQ;IACR,OAAO;GACT;EACF;CACF;CACA;EACE,MAAM;EACN,aACE;EACF,aAAa;GACX,MAAM;GACN,YAAY;IACV,OAAO;IACP,QAAQ;IACR,OAAO;GACT;EACF;CACF;CACA;EACE,MAAM;EACN,aACE;EACF,aAAa;GACX,MAAM;GACN,YAAY;IACV,OAAO;IACP,QAAQ;IACR,OAAO;GACT;EACF;CACF;CACA;EACE,MAAM;EACN,aACE;EACF,aAAa;GACX,MAAM;GACN,YAAY;IACV,OAAO;IACP,QAAQ;IACR,OAAO;GACT;EACF;CACF;CACA;EACE,MAAM;EACN,aACE;EACF,aAAa;GACX,MAAM;GACN,YAAY;IACV,OAAO;IACP,QAAQ;IACR,OAAO;KACL,MAAM;KACN,aAAa;IACf;IACA,QAAQ;KACN,MAAM;KACN,OAAO,EAAE,MAAM,SAAS;KACxB,aAAa;IACf;IACA,UAAU;KACR,MAAM;KACN,aAAa;IACf;IACA,OAAO;GACT;EACF;CACF;CACA;EACE,MAAM;EACN,aACE;EACF,aAAa;GACX,MAAM;GACN,YAAY;IACV,OAAO;IACP,QAAQ;GACV;EACF;CACF;CACA;EACE,MAAM;EACN,aACE;EACF,aAAa;GACX,MAAM;GACN,YAAY;IACV,aAAa;IACb,SAAS;KACP,MAAM;KACN,OAAO,EAAE,MAAM,SAAS;KACxB,aACE;IACJ;IACA,QAAQ;KACN,MAAM;KACN,aACE;IACJ;IACA,QAAQ;KACN,MAAM;KACN,aACE;IACJ;IACA,OAAO;KACL,MAAM;KACN,aAAa;IACf;GACF;EACF;CACF;CACA;EACE,MAAM;EACN,aACE;EACF,aAAa;GACX,MAAM;GACN,YAAY;IACV,aAAa;IACb,MAAM;KACJ,MAAM;KACN,aAAa;IACf;IACA,QAAQ;KACN,MAAM;KACN,MAAM;MAAC;MAAU;MAAY;KAAQ;KACrC,aAAa;IACf;GACF;GACA,UAAU,CAAC,MAAM;EACnB;CACF;CACA;EACE,MAAM;EACN,aACE;EACF,aAAa;GACX,MAAM;GACN,YAAY;IACV,aAAa;IACb,OAAO;IACP,QAAQ;GACV;EACF;CACF;AAG2B,CAAA,CAAiB,KAAK,UAAU;CAC3D,GAAG;CACH,aAAa;EACX,GAAG,KAAK;EACR,SAAS;CACX;CACA,cAAc;AAChB,EAAE,CAAC,CAAC,MAAM,MAAM,UAAU,iBAAiB,KAAK,MAAM,MAAM,IAAI,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-catalog.d.ts","sourceRoot":"","sources":["../src/tool-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAEzD,eAAO,MAAM,iBAAiB,qBAAqB,CAAC;AA2oBpD,eAAO,MAAM,KAAK,EAAE,IAAI,EAO0C,CAAC"}
1
+ {"version":3,"file":"tool-catalog.d.ts","sourceRoot":"","sources":["../src/tool-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAEzD,eAAO,MAAM,iBAAiB,qBAAqB,CAAC;AAomBpD,eAAO,MAAM,KAAK,EAAE,IAAI,EAO0C,CAAC"}
@@ -25,6 +25,14 @@ interface IntrospectProjectArgs {
25
25
  * therefore somewhat larger than this budget.
26
26
  */
27
27
  maxChars?: number;
28
+ /**
29
+ * Resume after this `className` (objects are sorted alphabetically). Pass
30
+ * the `nextCursor` from a previous truncated response to read the next page
31
+ * instead of raising `maxChars` (#2779).
32
+ */
33
+ cursor?: string;
34
+ /** Maximum objects per page, applied before the character budget. */
35
+ limit?: number;
28
36
  }
29
37
  export declare function introspectProject(args: IntrospectProjectArgs): Promise<string>;
30
38
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"introspect-project.d.ts","sourceRoot":"","sources":["../../src/tools/introspect-project.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,MAAM,CAAC;AAKlD,UAAU,qBAAqB;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAuHD,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAgGjB"}
1
+ {"version":3,"file":"introspect-project.d.ts","sourceRoot":"","sources":["../../src/tools/introspect-project.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,MAAM,CAAC;AAKlD,UAAU,qBAAqB;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAuHD,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAuHjB"}
@@ -37,6 +37,16 @@ export interface RuntimeBoot {
37
37
  objectCount: number;
38
38
  diagnostics: BootDiagnostic[];
39
39
  }
40
+ /**
41
+ * Whether the project manifest on disk is newer than the one this process
42
+ * booted. The registry is process-global and boots once, so this is the only
43
+ * signal an agent has that a rebuild happened underneath it.
44
+ */
45
+ export declare function getBootStaleness(): {
46
+ stale: boolean;
47
+ bootedAt: string | null;
48
+ manifestModifiedAt: string | null;
49
+ };
40
50
  /** The boot record for this process, or `null` before {@link bootRuntime}. */
41
51
  export declare function getRuntimeBoot(): RuntimeBoot | null;
42
52
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"boot.d.ts","sourceRoot":"","sources":["../../../src/tools/runtime/boot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAUH,yEAAyE;AACzE,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AAQzD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,qFAAqF;IACrF,IAAI,EAAE,SAAS,GAAG,YAAY,CAAC;IAC/B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,OAAO,mBAAmB,CAAC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,cAAc,EAAE,CAAC;CAC/B;AA4DD,8EAA8E;AAC9E,wBAAgB,cAAc,IAAI,WAAW,GAAG,IAAI,CAEnD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,GAAG,IAAI,CAEpD;AAED,wFAAwF;AACxF,wBAAgB,wBAAwB,IAAI,IAAI,CAG/C;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,WAAW,CAAC,CA2FtB"}
1
+ {"version":3,"file":"boot.d.ts","sourceRoot":"","sources":["../../../src/tools/runtime/boot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAUH,yEAAyE;AACzE,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AAQzD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,qFAAqF;IACrF,IAAI,EAAE,SAAS,GAAG,YAAY,CAAC;IAC/B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,OAAO,mBAAmB,CAAC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,cAAc,EAAE,CAAC;CAC/B;AA8DD;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC,CAwBA;AAED,8EAA8E;AAC9E,wBAAgB,cAAc,IAAI,WAAW,GAAG,IAAI,CAEnD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,GAAG,IAAI,CAEpD;AAED,wFAAwF;AACxF,wBAAgB,wBAAwB,IAAI,IAAI,CAK/C;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,WAAW,CAAC,CAmGtB"}
@@ -53,6 +53,25 @@ export declare function safeErrorMessage(error: unknown): string;
53
53
  export declare function toRuntimeDatabaseType(value: string): RuntimeDatabaseType;
54
54
  /** Infer an engine hint from a URL scheme when no explicit type is given. */
55
55
  export declare function inferDatabaseType(url: string, hint?: string): string;
56
+ /**
57
+ * Normalize the accepted dev-database URL forms to what `getDatabase` opens.
58
+ *
59
+ * `@happyvertical/sql` understands `file:` URLs and bare paths for SQLite,
60
+ * but not a `sqlite:` scheme; passing `sqlite:///abs/dev.db` through verbatim
61
+ * made the driver treat the whole string as a relative filename and join it
62
+ * to cwd. Accepted forms:
63
+ *
64
+ * - `sqlite:///abs/path.db`, `sqlite://rel/path.db`, `sqlite:path.db` →
65
+ * `file:` URL with the path resolved against cwd only when it is relative
66
+ * - `file:` URLs, `postgres:`/`postgresql:`, `duckdb:` → unchanged
67
+ * - a bare path → unchanged (the driver resolves it)
68
+ */
69
+ /**
70
+ * Whether a configured value means "in-memory, so not a runtime database":
71
+ * `:memory:` as well as the `sqlite::memory:` / `sqlite://:memory:` spellings.
72
+ */
73
+ export declare function isMemoryDatabaseUrl(url: string): boolean;
74
+ export declare function normalizeDatabaseUrl(url: string): string;
56
75
  /**
57
76
  * Resolve the dev-database connection for one tool call.
58
77
  *
@@ -1 +1 @@
1
- {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../src/tools/runtime/connection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG5D,kEAAkE;AAClE,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;AAYnE,6DAA6D;AAC7D,MAAM,WAAW,mBAAmB;IAClC,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,aAAa,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE9E,MAAM,WAAW,yBAAyB;IACxC,mEAAmE;IACnE,EAAE,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,gBAAgB,CAAC;IACzB,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AA+BD;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA2C5D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAIvD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,CAQxE;AAED,6EAA6E;AAC7E,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAKpE;AAED;;;;;;;GAOG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,yBAAyB,CAAC,CAgDpC;AA2CD;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAWvE"}
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../src/tools/runtime/connection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG5D,kEAAkE;AAClE,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;AAYnE,6DAA6D;AAC7D,MAAM,WAAW,mBAAmB;IAClC,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,aAAa,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE9E,MAAM,WAAW,yBAAyB;IACxC,mEAAmE;IACnE,EAAE,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,gBAAgB,CAAC;IACzB,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AA+BD;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA2C5D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAIvD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,CAQxE;AAED,6EAA6E;AAC7E,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAKpE;AAED;;;;;;;;;;;;GAYG;AACH;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOxD;AAED;;;;;;;GAOG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,yBAAyB,CAAC,CAsDpC;AA2CD;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAWvE"}
@@ -4,12 +4,24 @@ export interface RuntimeProjectArgs {
4
4
  /** Project root to boot from (defaults to the server's cwd). */
5
5
  projectPath?: string;
6
6
  }
7
+ /** Test seam paired with `resetRuntimeBootForTests()`. */
8
+ export declare function resetBootPreambleForTests(): void;
7
9
  export interface RuntimeRegistryArgs extends RuntimeProjectArgs {
8
10
  /** Restrict object detail to these simple or qualified names. */
9
11
  objects?: string[];
10
12
  /** Include field/method detail (default: only when `objects` is given). */
11
13
  detail?: boolean;
14
+ /**
15
+ * Resume after this object key: the qualified name when the object has
16
+ * one, otherwise its simple name — exactly the value a previous response
17
+ * returned as `page.nextCursor` (#2779). Objects are sorted by that key.
18
+ */
19
+ cursor?: string;
20
+ /** Objects per page (default {@link REGISTRY_PAGE_LIMIT}, max 500). */
21
+ limit?: number;
12
22
  }
23
+ /** Default objects per `runtime-registry` page. */
24
+ export declare const REGISTRY_PAGE_LIMIT = 50;
13
25
  /** `runtime-registry`: sanitized snapshot of the booted registry. */
14
26
  export declare function runtimeRegistry(args?: RuntimeRegistryArgs): Promise<RuntimeToolEnvelope>;
15
27
  export interface RuntimeObjectArgs extends RuntimeProjectArgs {
@@ -1 +1 @@
1
- {"version":3,"file":"observation.d.ts","sourceRoot":"","sources":["../../../src/tools/runtime/observation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AASH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAEL,KAAK,mBAAmB,EAEzB,MAAM,YAAY,CAAC;AAKpB,MAAM,WAAW,kBAAkB;IACjC,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAsBD,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC7D,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,qEAAqE;AACrE,wBAAsB,eAAe,CACnC,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,mBAAmB,CAAC,CAmB9B;AAED,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB;IAC3D,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;CAC3C;AAED,kFAAkF;AAClF,wBAAsB,aAAa,CACjC,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,mBAAmB,CAAC,CA2D9B;AAED,MAAM,WAAW,qBACf,SAAQ,mBAAmB,EACzB,kBAAkB;CAAG;AAEzB;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,GAAE,qBAA0B,GAC/B,OAAO,CAAC,mBAAmB,CAAC,CAsC9B"}
1
+ {"version":3,"file":"observation.d.ts","sourceRoot":"","sources":["../../../src/tools/runtime/observation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAcH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAEL,KAAK,mBAAmB,EAEzB,MAAM,YAAY,CAAC;AAKpB,MAAM,WAAW,kBAAkB;IACjC,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAgCD,0DAA0D;AAC1D,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAcD,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC7D,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,mDAAmD;AACnD,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAStC,qEAAqE;AACrE,wBAAsB,eAAe,CACnC,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,mBAAmB,CAAC,CA8C9B;AAED,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB;IAC3D,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;CAC3C;AAED,kFAAkF;AAClF,wBAAsB,aAAa,CACjC,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,mBAAmB,CAAC,CA2D9B;AAED,MAAM,WAAW,qBACf,SAAQ,mBAAmB,EACzB,kBAAkB;CAAG;AAEzB;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,GAAE,qBAA0B,GAC/B,OAAO,CAAC,mBAAmB,CAAC,CAkD9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/tools/runtime/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAWH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAEL,KAAK,mBAAmB,EAIzB,MAAM,iBAAiB,CAAC;AAEzB,6EAA6E;AAC7E,eAAO,MAAM,kBAAkB,sBAAsB,CAAC;AACtD,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAE1C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,IAAI,CAAC;IACT,QAAQ,EAAE,IAAI,CAAC;IACf,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,WAAW,EAAE,iBAAiB,EAAE,CAAC;CAClC,CAAC;AAEF,KAAK,WAAW,GAAG,CAAC,EAAE,EAAE,iBAAiB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;AA6CxE;;;;;;;;;;GAUG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,mBAAmB,EACzB,IAAI,EAAE,WAAW,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,mBAAmB,CAAC,CAO9B;AAsJD,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;IAC9D,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,mBAAmB,CAAC,CAO9B;AAED,MAAM,WAAW,aAAc,SAAQ,mBAAmB;IACxD,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,gBAAgB,CACpC,IAAI,GAAE,aAAkB,GACvB,OAAO,CAAC,mBAAmB,CAAC,CAO9B;AAED,MAAM,WAAW,kBAAmB,SAAQ,mBAAmB;IAC7D,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,qBAAqB,CACzC,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAO9B;AAED,MAAM,WAAW,kBAAmB,SAAQ,mBAAmB;IAC7D,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,qBAAqB,CACzC,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAO9B;AAED,MAAM,WAAW,iBAAkB,SAAQ,mBAAmB;IAC5D,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,oBAAoB,CACxC,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,mBAAmB,CAAC,CAQ9B;AAED,wBAAsB,oBAAoB,CACxC,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,mBAAmB,CAAC,CAM9B"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/tools/runtime/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAWH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAEL,KAAK,mBAAmB,EAIzB,MAAM,iBAAiB,CAAC;AAEzB,6EAA6E;AAC7E,eAAO,MAAM,kBAAkB,sBAAsB,CAAC;AACtD,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAE1C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,IAAI,CAAC;IACT,QAAQ,EAAE,IAAI,CAAC;IACf,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,WAAW,EAAE,iBAAiB,EAAE,CAAC;CAClC,CAAC;AAEF,KAAK,WAAW,GAAG,CAAC,EAAE,EAAE,iBAAiB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;AA6CxE;;;;;;;;;;GAUG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,mBAAmB,EACzB,IAAI,EAAE,WAAW,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,mBAAmB,CAAC,CAO9B;AA6KD,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;IAC9D,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,mBAAmB,CAAC,CAO9B;AAED,MAAM,WAAW,aAAc,SAAQ,mBAAmB;IACxD,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,gBAAgB,CACpC,IAAI,GAAE,aAAkB,GACvB,OAAO,CAAC,mBAAmB,CAAC,CAO9B;AAED,MAAM,WAAW,kBAAmB,SAAQ,mBAAmB;IAC7D,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,qBAAqB,CACzC,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAO9B;AAED,MAAM,WAAW,kBAAmB,SAAQ,mBAAmB;IAC7D,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,qBAAqB,CACzC,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAO9B;AAED,MAAM,WAAW,iBAAkB,SAAQ,mBAAmB;IAC5D,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,oBAAoB,CACxC,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,mBAAmB,CAAC,CAQ9B;AAED,wBAAsB,oBAAoB,CACxC,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,mBAAmB,CAAC,CAM9B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@happyvertical/smrt-dev-mcp",
3
- "version": "0.47.2",
3
+ "version": "0.49.0",
4
4
  "description": "Development MCP server for SMRT framework knowledge, review context, architecture context, and code generation",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -16,6 +16,14 @@
16
16
  "./knowledge": {
17
17
  "types": "./dist/knowledge.d.ts",
18
18
  "import": "./dist/knowledge.js"
19
+ },
20
+ "./dev-plane": {
21
+ "types": "./dist/dev-plane.d.ts",
22
+ "import": "./dist/dev-plane.js"
23
+ },
24
+ "./runtime": {
25
+ "types": "./dist/runtime.d.ts",
26
+ "import": "./dist/runtime.js"
19
27
  }
20
28
  },
21
29
  "files": [
@@ -43,10 +51,10 @@
43
51
  "homepage": "https://github.com/happyvertical/smrt/tree/main/packages/smrt-dev-mcp#readme",
44
52
  "license": "MIT",
45
53
  "dependencies": {
46
- "@happyvertical/smrt-config": "0.47.2",
47
- "@happyvertical/smrt-core": "0.47.2",
48
- "@happyvertical/smrt-scanner": "0.47.2",
49
- "@happyvertical/smrt-types": "0.47.2",
54
+ "@happyvertical/smrt-config": "0.49.0",
55
+ "@happyvertical/smrt-core": "0.49.0",
56
+ "@happyvertical/smrt-scanner": "0.49.0",
57
+ "@happyvertical/smrt-types": "0.49.0",
50
58
  "@happyvertical/sql": "^0.89.6",
51
59
  "@modelcontextprotocol/node": "2.0.0",
52
60
  "@modelcontextprotocol/server": "2.0.0"
@@ -14,7 +14,7 @@ SMRT surfaces.
14
14
  - Prefer the user's explicit changed-file list.
15
15
  - Otherwise use the active harness's git support or `git diff --name-only`.
16
16
  - Include staged files when the user is preparing a commit.
17
- 2. Call MCP tool `smrt-review` from `smrt-dev-mcp` with:
17
+ 2. Call MCP tool `build-context` from `smrt-dev-mcp` with `task: "review"` and:
18
18
 
19
19
  ```json
20
20
  {