matimo 0.1.0-alpha.12.1 → 0.1.0-alpha.13

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 (105) hide show
  1. package/README.md +63 -0
  2. package/package.json +3 -3
  3. package/packages/cli/dist/cli.d.ts.map +1 -1
  4. package/packages/cli/dist/cli.js +16 -0
  5. package/packages/cli/dist/cli.js.map +1 -1
  6. package/packages/cli/dist/commands/doctor.d.ts +2 -0
  7. package/packages/cli/dist/commands/doctor.d.ts.map +1 -0
  8. package/packages/cli/dist/commands/doctor.js +174 -0
  9. package/packages/cli/dist/commands/doctor.js.map +1 -0
  10. package/packages/cli/dist/commands/mcp.d.ts +2 -1
  11. package/packages/cli/dist/commands/mcp.d.ts.map +1 -1
  12. package/packages/cli/dist/commands/mcp.js +9 -1
  13. package/packages/cli/dist/commands/mcp.js.map +1 -1
  14. package/packages/cli/dist/commands/review.d.ts +10 -0
  15. package/packages/cli/dist/commands/review.d.ts.map +1 -0
  16. package/packages/cli/dist/commands/review.js +176 -0
  17. package/packages/cli/dist/commands/review.js.map +1 -0
  18. package/packages/core/dist/approval/approval-handler.d.ts +5 -1
  19. package/packages/core/dist/approval/approval-handler.d.ts.map +1 -1
  20. package/packages/core/dist/approval/approval-handler.js +6 -0
  21. package/packages/core/dist/approval/approval-handler.js.map +1 -1
  22. package/packages/core/dist/core/schema.d.ts +29 -8
  23. package/packages/core/dist/core/schema.d.ts.map +1 -1
  24. package/packages/core/dist/core/schema.js +10 -3
  25. package/packages/core/dist/core/schema.js.map +1 -1
  26. package/packages/core/dist/core/skill-content-parser.d.ts +91 -0
  27. package/packages/core/dist/core/skill-content-parser.d.ts.map +1 -0
  28. package/packages/core/dist/core/skill-content-parser.js +248 -0
  29. package/packages/core/dist/core/skill-content-parser.js.map +1 -0
  30. package/packages/core/dist/core/skill-loader.d.ts +46 -0
  31. package/packages/core/dist/core/skill-loader.d.ts.map +1 -0
  32. package/packages/core/dist/core/skill-loader.js +310 -0
  33. package/packages/core/dist/core/skill-loader.js.map +1 -0
  34. package/packages/core/dist/core/skill-registry.d.ts +131 -0
  35. package/packages/core/dist/core/skill-registry.d.ts.map +1 -0
  36. package/packages/core/dist/core/skill-registry.js +316 -0
  37. package/packages/core/dist/core/skill-registry.js.map +1 -0
  38. package/packages/core/dist/core/tfidf-embedding.d.ts +45 -0
  39. package/packages/core/dist/core/tfidf-embedding.d.ts.map +1 -0
  40. package/packages/core/dist/core/tfidf-embedding.js +199 -0
  41. package/packages/core/dist/core/tfidf-embedding.js.map +1 -0
  42. package/packages/core/dist/core/types.d.ts +155 -6
  43. package/packages/core/dist/core/types.d.ts.map +1 -1
  44. package/packages/core/dist/errors/matimo-error.d.ts +3 -1
  45. package/packages/core/dist/errors/matimo-error.d.ts.map +1 -1
  46. package/packages/core/dist/errors/matimo-error.js +2 -0
  47. package/packages/core/dist/errors/matimo-error.js.map +1 -1
  48. package/packages/core/dist/index.d.ts +20 -3
  49. package/packages/core/dist/index.d.ts.map +1 -1
  50. package/packages/core/dist/index.js +14 -1
  51. package/packages/core/dist/index.js.map +1 -1
  52. package/packages/core/dist/integrations/langchain.d.ts +55 -0
  53. package/packages/core/dist/integrations/langchain.d.ts.map +1 -1
  54. package/packages/core/dist/integrations/langchain.js +66 -0
  55. package/packages/core/dist/integrations/langchain.js.map +1 -1
  56. package/packages/core/dist/logging/winston-logger.d.ts.map +1 -1
  57. package/packages/core/dist/logging/winston-logger.js +9 -1
  58. package/packages/core/dist/logging/winston-logger.js.map +1 -1
  59. package/packages/core/dist/matimo-instance.d.ts +171 -6
  60. package/packages/core/dist/matimo-instance.d.ts.map +1 -1
  61. package/packages/core/dist/matimo-instance.js +602 -13
  62. package/packages/core/dist/matimo-instance.js.map +1 -1
  63. package/packages/core/dist/mcp/mcp-server.d.ts +23 -0
  64. package/packages/core/dist/mcp/mcp-server.d.ts.map +1 -1
  65. package/packages/core/dist/mcp/mcp-server.js +119 -8
  66. package/packages/core/dist/mcp/mcp-server.js.map +1 -1
  67. package/packages/core/dist/mcp/tool-converter.d.ts.map +1 -1
  68. package/packages/core/dist/mcp/tool-converter.js +10 -1
  69. package/packages/core/dist/mcp/tool-converter.js.map +1 -1
  70. package/packages/core/dist/policy/approval-manifest.d.ts +74 -0
  71. package/packages/core/dist/policy/approval-manifest.d.ts.map +1 -0
  72. package/packages/core/dist/policy/approval-manifest.js +178 -0
  73. package/packages/core/dist/policy/approval-manifest.js.map +1 -0
  74. package/packages/core/dist/policy/content-validator.d.ts +19 -0
  75. package/packages/core/dist/policy/content-validator.d.ts.map +1 -0
  76. package/packages/core/dist/policy/content-validator.js +196 -0
  77. package/packages/core/dist/policy/content-validator.js.map +1 -0
  78. package/packages/core/dist/policy/default-policy.d.ts +46 -0
  79. package/packages/core/dist/policy/default-policy.d.ts.map +1 -0
  80. package/packages/core/dist/policy/default-policy.js +241 -0
  81. package/packages/core/dist/policy/default-policy.js.map +1 -0
  82. package/packages/core/dist/policy/events.d.ts +71 -0
  83. package/packages/core/dist/policy/events.d.ts.map +1 -0
  84. package/packages/core/dist/policy/events.js +8 -0
  85. package/packages/core/dist/policy/events.js.map +1 -0
  86. package/packages/core/dist/policy/index.d.ts +13 -0
  87. package/packages/core/dist/policy/index.d.ts.map +1 -0
  88. package/packages/core/dist/policy/index.js +9 -0
  89. package/packages/core/dist/policy/index.js.map +1 -0
  90. package/packages/core/dist/policy/integrity-tracker.d.ts +62 -0
  91. package/packages/core/dist/policy/integrity-tracker.d.ts.map +1 -0
  92. package/packages/core/dist/policy/integrity-tracker.js +79 -0
  93. package/packages/core/dist/policy/integrity-tracker.js.map +1 -0
  94. package/packages/core/dist/policy/policy-loader.d.ts +58 -0
  95. package/packages/core/dist/policy/policy-loader.d.ts.map +1 -0
  96. package/packages/core/dist/policy/policy-loader.js +153 -0
  97. package/packages/core/dist/policy/policy-loader.js.map +1 -0
  98. package/packages/core/dist/policy/risk-classifier.d.ts +18 -0
  99. package/packages/core/dist/policy/risk-classifier.d.ts.map +1 -0
  100. package/packages/core/dist/policy/risk-classifier.js +43 -0
  101. package/packages/core/dist/policy/risk-classifier.js.map +1 -0
  102. package/packages/core/dist/policy/types.d.ts +126 -0
  103. package/packages/core/dist/policy/types.d.ts.map +1 -0
  104. package/packages/core/dist/policy/types.js +8 -0
  105. package/packages/core/dist/policy/types.js.map +1 -0
@@ -1,22 +1,68 @@
1
- import { ToolDefinition } from './core/schema';
1
+ import { ToolRegistry } from './core/tool-registry';
2
+ import type { SemanticSearchResult } from './core/skill-registry';
3
+ import { ToolDefinition, SkillDefinition, SkillSummary, SearchSkillsOptions, SkillContentOptions, EmbeddingProvider } from './core/types';
2
4
  import { MatimoLogger, LoggerConfig } from './logging';
3
5
  import type { ExecuteOptions } from './core/types';
6
+ import type { PolicyEngine, PolicyContext, PolicyConfig, HITLCallback } from './policy/types';
7
+ import { ToolIntegrityTracker } from './policy/integrity-tracker';
8
+ import { ApprovalManifest } from './policy/approval-manifest';
9
+ import type { MatimoEventHandler } from './policy/events';
10
+ /**
11
+ * Result of a hot-reload operation
12
+ */
13
+ export interface ReloadResult {
14
+ loaded: number;
15
+ removed: number;
16
+ revalidated: number;
17
+ rejected: string[];
18
+ /** True if a mid-load failure caused the registry to be restored to its previous state. */
19
+ rolledBack?: boolean;
20
+ }
4
21
  /**
5
22
  * Options for MatimoInstance initialization
6
23
  */
7
24
  export interface InitOptions extends LoggerConfig {
8
25
  toolPaths?: string[];
26
+ /** Skill paths for discovering SKILL.md files (Level 1 discovery) */
27
+ skillPaths?: string[];
9
28
  autoDiscover?: boolean;
10
29
  includeCore?: boolean;
30
+ /** Custom PolicyEngine implementation. Mutually exclusive with policyConfig and policyFile. */
31
+ policy?: PolicyEngine;
32
+ /** Shorthand to create a DefaultPolicyEngine. Ignored if `policy` is provided. */
33
+ policyConfig?: PolicyConfig;
34
+ /** Path to a policy.yaml file. Loaded into a DefaultPolicyEngine. Ignored if `policy` is provided. */
35
+ policyFile?: string;
36
+ /** Paths containing trusted (developer-authored) tools. Defaults to auto-discovered @matimo/* paths. */
37
+ trustedPaths?: string[];
38
+ /** Paths containing untrusted (agent-created) tools. These tools undergo content validation. */
39
+ untrustedPaths?: string[];
40
+ /** HMAC secret for approval manifest. Overrides MATIMO_APPROVAL_SECRET env. */
41
+ approvalSecret?: string;
42
+ /** Directory for .matimo-approvals.json. Defaults to process.cwd(). */
43
+ approvalDir?: string;
44
+ /** Event handler for audit events (tool creation, approval, execution, etc.) */
45
+ onEvent?: MatimoEventHandler;
46
+ /**
47
+ * Human-in-the-loop callback for quarantined tools.
48
+ * Called when a tool enters `pending_approval` state (medium-risk in prod with enableHITL).
49
+ * Return `true` to approve, `false` to reject.
50
+ * If not set, quarantined tools are rejected by default.
51
+ */
52
+ onHITL?: HITLCallback;
11
53
  }
12
54
  /**
13
55
  * Matimo Instance - Single initialization point for tool execution
14
56
  * Combines loader, registry, and executors into one interface
15
57
  */
16
58
  export declare class MatimoInstance {
59
+ #private;
17
60
  private toolPaths;
61
+ private skillPaths;
18
62
  private loader;
19
63
  private registry;
64
+ private skillLoader;
65
+ private skillRegistry;
20
66
  private commandExecutor;
21
67
  private httpExecutor;
22
68
  private functionExecutor;
@@ -80,27 +126,28 @@ export declare class MatimoInstance {
80
126
  */
81
127
  getTool(toolName: string): ToolDefinition | undefined;
82
128
  /**
83
- * List all available tools
129
+ * List all available tools, optionally filtered by policy.
130
+ * @param context - PolicyContext for filtering. If omitted and policy is active, returns all tools (backward compatible).
84
131
  * @returns Array of tool definitions
85
132
  */
86
- listTools(): ToolDefinition[];
133
+ listTools(context?: PolicyContext): ToolDefinition[];
87
134
  /**
88
135
  * Get all available tools (alias for listTools)
89
136
  * @returns Array of tool definitions
90
137
  */
91
- getAllTools(): ToolDefinition[];
138
+ getAllTools(context?: PolicyContext): ToolDefinition[];
92
139
  /**
93
140
  * Search tools by name or description
94
141
  * @param query - Search query
95
142
  * @returns Matching tools
96
143
  */
97
- searchTools(query: string): ToolDefinition[];
144
+ searchTools(query: string, context?: PolicyContext): ToolDefinition[];
98
145
  /**
99
146
  * Get tools by tag
100
147
  * @param tag - Tag to search for
101
148
  * @returns Tools with the given tag
102
149
  */
103
- getToolsByTag(tag: string): ToolDefinition[];
150
+ getToolsByTag(tag: string, context?: PolicyContext): ToolDefinition[];
104
151
  /**
105
152
  * Return the credential key names that a tool expects.
106
153
  *
@@ -124,6 +171,74 @@ export declare class MatimoInstance {
124
171
  * @throws `MatimoError(TOOL_NOT_FOUND)` if the tool doesn't exist
125
172
  */
126
173
  getRequiredCredentials(toolName: string): string[];
174
+ /**
175
+ * List all available skills (Level 1 discovery - minimal context)
176
+ * @returns Array of skill summaries
177
+ */
178
+ listSkills(): SkillSummary[];
179
+ /**
180
+ * Get a single skill by name (Level 2 activation - full content)
181
+ * @param name - Skill name
182
+ * @returns Skill definition or null
183
+ */
184
+ getSkill(name: string): SkillDefinition | null;
185
+ /**
186
+ * Get selective skill content — only the sections an agent needs.
187
+ * Prevents dumping entire SKILL.md files into the LLM context window.
188
+ *
189
+ * @example
190
+ * // Get only error handling, max 500 tokens
191
+ * matimo.getSkillContent('postgres-query-operations', {
192
+ * sections: ['Error Handling'],
193
+ * maxTokens: 500,
194
+ * })
195
+ */
196
+ getSkillContent(name: string, options?: SkillContentOptions): string | null;
197
+ /**
198
+ * List all sections of a skill with their token costs.
199
+ * Agents use this to decide which sections to load before activating.
200
+ */
201
+ getSkillSections(name: string): Array<{
202
+ path: string;
203
+ level: number;
204
+ tokenEstimate: number;
205
+ }> | null;
206
+ /**
207
+ * Search skills by keyword, category, difficulty, etc.
208
+ * Set `options.semantic = true` for embedding-based similarity ranking.
209
+ * @param options - Search options
210
+ * @returns Matching skills
211
+ */
212
+ searchSkills(options?: SearchSkillsOptions): SkillSummary[];
213
+ /**
214
+ * Semantic search with relevance scores.
215
+ * Uses embeddings to find skills by meaning, not just keywords.
216
+ *
217
+ * @example
218
+ * const results = await matimo.semanticSearchSkills('How do I handle Postgres locking?');
219
+ * // → [{ skill: { name: 'postgres-query-operations' }, score: 0.82 }]
220
+ */
221
+ semanticSearchSkills(query: string, options?: {
222
+ limit?: number;
223
+ minScore?: number;
224
+ }): Promise<SemanticSearchResult[]>;
225
+ /**
226
+ * Set a custom embedding provider for semantic skill search.
227
+ * If not set, a built-in TF-IDF provider is used.
228
+ */
229
+ setSkillEmbeddingProvider(provider: EmbeddingProvider): void;
230
+ /**
231
+ * Get a bundled resource from a skill (Level 3 resources)
232
+ * @param skillName - Skill name
233
+ * @param resourcePath - Relative path to resource (e.g., "scripts/extract.py")
234
+ * @returns Resource content
235
+ */
236
+ getSkillResource(skillName: string, resourcePath: string): string;
237
+ /**
238
+ * Get all skill paths
239
+ * @returns Array of skill paths
240
+ */
241
+ getSkillPaths(): string[];
127
242
  /**
128
243
  * Automatically inject parameters from environment variables
129
244
  * Uses a YAML-native, scale-friendly approach:
@@ -139,6 +254,12 @@ export declare class MatimoInstance {
139
254
  * Credential values are never logged.
140
255
  */
141
256
  private injectAuthParameters;
257
+ /**
258
+ * After injectAuthParameters(), verify no auth-looking placeholders remain unfilled.
259
+ * Only checks HTTP headers (where auth credentials are injected) — not query params or body.
260
+ * Throws AUTH_FAILED with actionable guidance naming the missing env var(s).
261
+ */
262
+ private assertAuthParamsFilled;
142
263
  /**
143
264
  * Extract all parameter placeholders from execution config
144
265
  * Scans headers, body, URL, and query_params for {paramName} patterns
@@ -152,6 +273,50 @@ export declare class MatimoInstance {
152
273
  * Get the appropriate executor for a tool
153
274
  */
154
275
  private getExecutor;
276
+ /**
277
+ * Hot-reload tools from all configured paths.
278
+ * Re-validates untrusted tools via content validator and integrity tracker.
279
+ * Tools that fail validation are rejected and not loaded.
280
+ *
281
+ * Atomic: if loading fails mid-way (e.g. I/O error), the registry is restored
282
+ * to its previous state and `rolledBack: true` is included in the result.
283
+ */
284
+ reloadTools(): Promise<ReloadResult>;
285
+ /**
286
+ * Check if a policy engine is active.
287
+ */
288
+ hasPolicy(): boolean;
289
+ /**
290
+ * Get the approval manifest (if policy engine is active).
291
+ */
292
+ getApprovalManifest(): ApprovalManifest | null;
293
+ /**
294
+ * Get the integrity tracker.
295
+ */
296
+ getIntegrityTracker(): ToolIntegrityTracker;
297
+ /**
298
+ * Get the tool registry (for advanced use cases).
299
+ */
300
+ getRegistry(): ToolRegistry;
301
+ /**
302
+ * Set a Human-in-the-Loop callback for quarantined tools.
303
+ * The callback is invoked when a tool with `pending_approval` status is executed.
304
+ * Return `true` to approve, `false` to reject.
305
+ */
306
+ setHITLCallback(callback: HITLCallback | null): void;
307
+ /**
308
+ * Hot-reload the policy engine at runtime.
309
+ *
310
+ * - If `configOrFile` is a `PolicyConfig` object, creates a new `DefaultPolicyEngine`.
311
+ * - If `configOrFile` is a string, re-reads and parses the YAML file.
312
+ * - If omitted and the instance was initialized with `policyFile`, re-reads that file.
313
+ *
314
+ * The new policy is validated before swap — if validation fails, the old policy remains active.
315
+ * After swap, all tools are re-validated against the new policy via `reloadTools()`.
316
+ *
317
+ * @returns The ReloadResult from the subsequent tool re-validation.
318
+ */
319
+ reloadPolicy(configOrFile?: PolicyConfig | string): Promise<ReloadResult>;
155
320
  }
156
321
  /**
157
322
  * Matimo namespace - Entry point for the SDK
@@ -1 +1 @@
1
- {"version":3,"file":"matimo-instance.d.ts","sourceRoot":"","sources":["../src/matimo-instance.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EACL,YAAY,EACZ,YAAY,EAIb,MAAM,WAAW,CAAC;AAEnB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC/C,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAAW;IAC5B,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,eAAe,CAAkB;IAEzC,OAAO;IAaP;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;WACU,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAqE1E;;;OAGG;IACH,YAAY,IAAI,MAAM,EAAE;IAIxB;;;OAGG;IACH,SAAS,IAAI,YAAY;IAIzB;;;;;;;;;;;;OAYG;IACG,OAAO,CACX,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,OAAO,CAAC;IA4FnB;;;;OAIG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAIrD;;;OAGG;IACH,SAAS,IAAI,cAAc,EAAE;IAI7B;;;OAGG;IACH,WAAW,IAAI,cAAc,EAAE;IAI/B;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,EAAE;IAI5C;;;;OAIG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,EAAE;IAI5C;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;IA4ClD;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,oBAAoB;IAyD5B;;;OAGG;IACH,OAAO,CAAC,4BAA4B;IAkDpC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA0C3B;;OAEG;IACH,OAAO,CAAC,WAAW;CAiBpB;AAED;;GAEG;AACH,eAAO,MAAM,MAAM;IACjB;;;;OAIG;oBACmB,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;CAGvD,CAAC"}
1
+ {"version":3,"file":"matimo-instance.d.ts","sourceRoot":"","sources":["../src/matimo-instance.ts"],"names":[],"mappings":"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"}