pi-harness-runtime 1.1.154 → 1.1.155

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 (114) hide show
  1. package/harness/honcho-memory.ts +331 -0
  2. package/harness/service-commands.ts +221 -0
  3. package/index.ts +18 -3
  4. package/package.json +1 -1
  5. package/packages/a2a-adapter/package.json +1 -1
  6. package/packages/agent-policy/package.json +1 -1
  7. package/packages/architecture-generator/package.json +1 -1
  8. package/packages/auth/package.json +1 -1
  9. package/packages/autonomous-refactor/package.json +1 -1
  10. package/packages/autonomous-runtime/package.json +1 -1
  11. package/packages/cache-strategy/package.json +1 -1
  12. package/packages/capability-registry/package.json +1 -1
  13. package/packages/checkpoint/package.json +1 -1
  14. package/packages/cli-plugin-sdk/package.json +1 -1
  15. package/packages/clipboard/package.json +1 -1
  16. package/packages/clipboard-plugin/package.json +1 -1
  17. package/packages/code-generation/package.json +1 -1
  18. package/packages/code-review/package.json +1 -1
  19. package/packages/codex-adapter/package.json +1 -1
  20. package/packages/codex-watcher/package.json +1 -1
  21. package/packages/config-capture/package.json +1 -1
  22. package/packages/context-compiler/package.json +1 -1
  23. package/packages/context-discovery/package.json +1 -1
  24. package/packages/context-manager/package.json +1 -1
  25. package/packages/cookie-sanitizer/package.json +1 -1
  26. package/packages/cost-optimizer/package.json +1 -1
  27. package/packages/dependency-analyzer/package.json +1 -1
  28. package/packages/django-plugin/package.json +1 -1
  29. package/packages/doc-generator/package.json +1 -1
  30. package/packages/evaluation-engine/package.json +1 -1
  31. package/packages/evaluation-runner/package.json +1 -1
  32. package/packages/event-bus/package.json +1 -1
  33. package/packages/event-store/package.json +1 -1
  34. package/packages/experience-replay/package.json +1 -1
  35. package/packages/feedback-collector/package.json +1 -1
  36. package/packages/file-copy-helper/package.json +1 -1
  37. package/packages/framework-detector/package.json +1 -1
  38. package/packages/framework-plugin-sdk/package.json +1 -1
  39. package/packages/frappe-plugin/package.json +1 -1
  40. package/packages/generic-web-plugin/package.json +1 -1
  41. package/packages/health-monitor/package.json +1 -1
  42. package/packages/intent-analyzer/package.json +1 -1
  43. package/packages/jev-judge/package.json +1 -1
  44. package/packages/knowledge-graph/package.json +1 -1
  45. package/packages/knowledge-retrieval/package.json +1 -1
  46. package/packages/laravel-plugin/package.json +1 -1
  47. package/packages/learning-engine/package.json +1 -1
  48. package/packages/mcp-adapter/package.json +1 -1
  49. package/packages/memory-engine/package.json +1 -1
  50. package/packages/milestone-manager/package.json +1 -1
  51. package/packages/model-registry/package.json +1 -1
  52. package/packages/nextjs-plugin/package.json +1 -1
  53. package/packages/notification/package.json +1 -1
  54. package/packages/observability/package.json +1 -1
  55. package/packages/okf-indexer/package.json +1 -1
  56. package/packages/paperclip-integration/package.json +1 -1
  57. package/packages/performance-optimizer/package.json +1 -1
  58. package/packages/privilege-broker/package.json +1 -1
  59. package/packages/project-analyzer/package.json +1 -1
  60. package/packages/project-bootstrap/package.json +1 -1
  61. package/packages/projection-engine/package.json +1 -1
  62. package/packages/prompt-compiler/package.json +1 -1
  63. package/packages/prompt-versioning/package.json +1 -1
  64. package/packages/provider-adapter-sdk/package.json +1 -1
  65. package/packages/provider-router/package.json +1 -1
  66. package/packages/provider-selector/package.json +1 -1
  67. package/packages/providers/package.json +1 -1
  68. package/packages/qdrant-skills/dist/client.d.ts +18 -0
  69. package/packages/qdrant-skills/dist/client.d.ts.map +1 -1
  70. package/packages/qdrant-skills/dist/client.js +65 -0
  71. package/packages/qdrant-skills/dist/client.js.map +1 -1
  72. package/packages/qdrant-skills/dist/index.d.ts +1 -1
  73. package/packages/qdrant-skills/dist/index.d.ts.map +1 -1
  74. package/packages/qdrant-skills/dist/index.js +1 -1
  75. package/packages/qdrant-skills/dist/index.js.map +1 -1
  76. package/packages/qdrant-skills/package.json +1 -1
  77. package/packages/qdrant-skills/src/client.ts +92 -0
  78. package/packages/qdrant-skills/src/index.ts +2 -0
  79. package/packages/quota-manager/package.json +1 -1
  80. package/packages/rate-limiter/package.json +1 -1
  81. package/packages/react-vite-plugin/package.json +1 -1
  82. package/packages/release-manager/package.json +1 -1
  83. package/packages/requirement-compiler/package.json +1 -1
  84. package/packages/runtime/package.json +1 -1
  85. package/packages/scheduler/package.json +1 -1
  86. package/packages/scheduler-adapter/package.json +1 -1
  87. package/packages/session/package.json +1 -1
  88. package/packages/session-api/package.json +1 -1
  89. package/packages/session-export/package.json +1 -1
  90. package/packages/shared-context/package.json +1 -1
  91. package/packages/skill-mcp-client/package.json +1 -1
  92. package/packages/skill-registry/package.json +1 -1
  93. package/packages/skills/dist/skill-commands.d.ts.map +1 -1
  94. package/packages/skills/dist/skill-commands.js +38 -10
  95. package/packages/skills/dist/skill-commands.js.map +1 -1
  96. package/packages/skills/package.json +1 -1
  97. package/packages/skills/src/skill-commands.ts +43 -11
  98. package/packages/sprint-planner/package.json +1 -1
  99. package/packages/subscription-engine/package.json +1 -1
  100. package/packages/task-compiler/package.json +1 -1
  101. package/packages/tencentdb-memory/package.json +1 -1
  102. package/packages/tencentdb-sync/package.json +1 -1
  103. package/packages/test-data-generator/package.json +1 -1
  104. package/packages/test-generator/package.json +1 -1
  105. package/packages/todo-bd-sync/package.json +1 -1
  106. package/packages/token-estimation/package.json +1 -1
  107. package/packages/token-optimizer/package.json +1 -1
  108. package/packages/trajectory/package.json +1 -1
  109. package/packages/tui/package.json +1 -1
  110. package/packages/types/package.json +1 -1
  111. package/packages/workflow-events/package.json +1 -1
  112. package/packages/workspace-scanner/package.json +1 -1
  113. package/packages/worktree/package.json +1 -1
  114. package/packages/write-review/package.json +1 -1
@@ -20,6 +20,6 @@
20
20
  * await upsertSkills(client, 'my-skills', [{ id: 1, name: 'test', description: '...', body: '...', text: '...' }]);
21
21
  * ```
22
22
  */
23
- export { createQdrantClient, createCollection, deleteCollection, upsertSkills, searchSkills, getAllSkills, type QdrantConfig, type SkillPoint, type SearchResult, } from './client.js';
23
+ export { createQdrantClient, createCollection, deleteCollection, getCollectionInfo, validateCollectionSchema, upsertSkills, searchSkills, getAllSkills, type QdrantConfig, type SkillPoint, type SearchResult, } from './client.js';
24
24
  export { createEmbedding, embedSkillDocument, embedSkillsBatch, getOpenAIApiKey, type EmbeddingResult, } from './embedder.js';
25
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,YAAY,GAClB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,KAAK,eAAe,GACrB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,wBAAwB,EACxB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,YAAY,GAClB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,KAAK,eAAe,GACrB,MAAM,eAAe,CAAC"}
@@ -20,6 +20,6 @@
20
20
  * await upsertSkills(client, 'my-skills', [{ id: 1, name: 'test', description: '...', body: '...', text: '...' }]);
21
21
  * ```
22
22
  */
23
- export { createQdrantClient, createCollection, deleteCollection, upsertSkills, searchSkills, getAllSkills, } from './client.js';
23
+ export { createQdrantClient, createCollection, deleteCollection, getCollectionInfo, validateCollectionSchema, upsertSkills, searchSkills, getAllSkills, } from './client.js';
24
24
  export { createEmbedding, embedSkillDocument, embedSkillsBatch, getOpenAIApiKey, } from './embedder.js';
25
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,YAAY,GAIb,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,GAEhB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,wBAAwB,EACxB,YAAY,EACZ,YAAY,EACZ,YAAY,GAIb,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,GAEhB,MAAM,eAAe,CAAC"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/qdrant-skills",
3
- "version": "1.1.154",
3
+ "version": "1.1.155",
4
4
  "description": "Qdrant vector search integration for Hermes-style skill system",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -72,6 +72,98 @@ export async function createCollection(
72
72
  }
73
73
  }
74
74
 
75
+ /**
76
+ * Get collection info (vector size, distance, point count)
77
+ */
78
+ export async function getCollectionInfo(
79
+ client: QdrantClient,
80
+ name: string
81
+ ): Promise<{
82
+ exists: boolean;
83
+ vectorsSize?: number;
84
+ vectorsDistance?: string;
85
+ pointsCount?: number;
86
+ } | null> {
87
+ try {
88
+ const info = await client.getCollection(name) as Record<string, unknown>;
89
+ // Vectors config can be a named config or default { size, distance }
90
+ const vectorsConfig = info.vectors as Record<string, unknown> | undefined;
91
+ let vectorsSize: number | undefined;
92
+ let vectorsDistance: string | undefined;
93
+
94
+ if (vectorsConfig) {
95
+ // Handle both { size: number, distance: string } and named config { config: { size, distance } }
96
+ vectorsSize = (vectorsConfig.size ?? (vectorsConfig.config as Record<string, unknown>)?.size) as number | undefined;
97
+ vectorsDistance = (vectorsConfig.distance ?? (vectorsConfig.config as Record<string, unknown>)?.distance) as string | undefined;
98
+ }
99
+
100
+ // Points count might be in different locations depending on Qdrant version
101
+ const pointsCount = (info.points ?? info.num_points ?? info.points_count) as number | undefined;
102
+
103
+ return {
104
+ exists: true,
105
+ vectorsSize,
106
+ vectorsDistance,
107
+ pointsCount,
108
+ };
109
+ } catch (err) {
110
+ if (err instanceof Error && (err.message.includes("not found") || err.message.includes("404"))) {
111
+ return { exists: false };
112
+ }
113
+ // Return null on other errors
114
+ return null;
115
+ }
116
+ }
117
+
118
+ /**
119
+ * Validate collection schema matches expected embedding model
120
+ */
121
+ export async function validateCollectionSchema(
122
+ client: QdrantClient,
123
+ name: string,
124
+ expectedDimensions: number,
125
+ expectedDistance: string = "Cosine"
126
+ ): Promise<{
127
+ valid: boolean;
128
+ error?: string;
129
+ actualDimensions?: number;
130
+ actualDistance?: string;
131
+ }> {
132
+ const info = await getCollectionInfo(client, name);
133
+
134
+ if (!info) {
135
+ return { valid: false, error: "Could not retrieve collection info" };
136
+ }
137
+
138
+ if (!info.exists) {
139
+ return { valid: false, error: "Collection does not exist" };
140
+ }
141
+
142
+ if (info.vectorsSize !== expectedDimensions) {
143
+ return {
144
+ valid: false,
145
+ error: `Dimension mismatch: expected ${expectedDimensions}, got ${info.vectorsSize}`,
146
+ actualDimensions: info.vectorsSize,
147
+ actualDistance: info.vectorsDistance,
148
+ };
149
+ }
150
+
151
+ if (info.vectorsDistance && info.vectorsDistance !== expectedDistance) {
152
+ return {
153
+ valid: false,
154
+ error: `Distance mismatch: expected ${expectedDistance}, got ${info.vectorsDistance}`,
155
+ actualDimensions: info.vectorsSize,
156
+ actualDistance: info.vectorsDistance,
157
+ };
158
+ }
159
+
160
+ return {
161
+ valid: true,
162
+ actualDimensions: info.vectorsSize,
163
+ actualDistance: info.vectorsDistance,
164
+ };
165
+ }
166
+
75
167
  /**
76
168
  * Delete a collection
77
169
  */
@@ -25,6 +25,8 @@ export {
25
25
  createQdrantClient,
26
26
  createCollection,
27
27
  deleteCollection,
28
+ getCollectionInfo,
29
+ validateCollectionSchema,
28
30
  upsertSkills,
29
31
  searchSkills,
30
32
  getAllSkills,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/quota-manager",
3
- "version": "1.1.154",
3
+ "version": "1.1.155",
4
4
  "description": "pi-harness-runtime — quota-manager",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/rate-limiter",
3
- "version": "1.1.154",
3
+ "version": "1.1.155",
4
4
  "type": "module",
5
5
  "description": "Rate limiting with token bucket algorithm (RFC-0023)",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/react-vite-plugin",
3
- "version": "1.1.154",
3
+ "version": "1.1.155",
4
4
  "description": "React/Vite framework analysis — components, config, TypeScript setup",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/release-manager",
3
- "version": "1.1.154",
3
+ "version": "1.1.155",
4
4
  "type": "module",
5
5
  "description": "Release management for pi-harness",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/requirement-compiler",
3
- "version": "1.1.154",
3
+ "version": "1.1.155",
4
4
  "description": "Compiles raw requirements into validated CompiledRequirement with ambiguity detection and risk tagging",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/runtime",
3
- "version": "1.1.154",
3
+ "version": "1.1.155",
4
4
  "description": "pi-harness-runtime — runtime",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/scheduler",
3
- "version": "1.1.154",
3
+ "version": "1.1.155",
4
4
  "description": "pi-harness-runtime — scheduler",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/scheduler-adapter",
3
- "version": "1.1.154",
3
+ "version": "1.1.155",
4
4
  "description": "Scheduler Adapter — cron, systemd, launchd, internal adapters for autonomous runtime (RFC-0101 §6)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/session",
3
- "version": "1.1.154",
3
+ "version": "1.1.155",
4
4
  "description": "Session management system for pi-harness-runtime",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/session-api",
3
- "version": "1.1.154",
3
+ "version": "1.1.155",
4
4
  "type": "module",
5
5
  "main": "src/index.ts",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/session-export",
3
- "version": "1.1.154",
3
+ "version": "1.1.155",
4
4
  "type": "module",
5
5
  "main": "src/index.ts",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/shared-context",
3
- "version": "1.1.154",
3
+ "version": "1.1.155",
4
4
  "description": "pi-harness-runtime — shared-context",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/skill-mcp-client",
3
- "version": "1.1.154",
3
+ "version": "1.1.155",
4
4
  "description": "MCP client for Skills SaaS backend",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/skill-registry",
3
- "version": "1.1.154",
3
+ "version": "1.1.155",
4
4
  "description": "Skill Registry for pi-harness-runtime — dynamic skill discovery and invocation",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1 +1 @@
1
- {"version":3,"file":"skill-commands.d.ts","sourceRoot":"","sources":["../src/skill-commands.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,YAAY,EAA6C,MAAM,iCAAiC,CAAC;AAI/G;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,4BAA4B;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,kBAGpC,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,YAAY,EAChB,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GACnC,IAAI,CAqFN;AA4MD;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,CAuBrD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,YAAY,EAChB,MAAM,CAAC,EAAE,MAAM,GACd,IAAI,CAQN"}
1
+ {"version":3,"file":"skill-commands.d.ts","sourceRoot":"","sources":["../src/skill-commands.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,YAAY,EAA6C,MAAM,iCAAiC,CAAC;AAI/G;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,4BAA4B;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,kBAGpC,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,YAAY,EAChB,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GACnC,IAAI,CA0FN;AAuOD;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,CAuBrD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,YAAY,EAChB,MAAM,CAAC,EAAE,MAAM,GACd,IAAI,CAQN"}
@@ -30,16 +30,20 @@ export function initSkillCommands(pi, config) {
30
30
  }
31
31
  // Register /skill command for listing
32
32
  pi.registerCommand("skill", {
33
- description: "Interact with skills. Usage: /skill [list|search <query>|info <name>]",
33
+ description: "Interact with skills. Usage: /skill [list|search [--vector] <query>|info <name>]",
34
34
  handler: async (args, ctx) => {
35
35
  const parts = args.trim().split(/\s+/);
36
36
  const subcommand = parts[0] || "list";
37
- const query = parts.slice(1).join(" ");
37
+ // Check for --vector flag
38
+ const useVector = parts.includes("--vector");
39
+ // Remove flags for query
40
+ const queryParts = parts.slice(1).filter(p => !p.startsWith("--"));
41
+ const query = queryParts.join(" ");
38
42
  switch (subcommand) {
39
43
  case "list":
40
44
  return handleSkillList(registry, ctx);
41
45
  case "search":
42
- return handleSkillSearch(registry, query, ctx);
46
+ return handleSkillSearch(registry, query, ctx, useVector);
43
47
  case "info":
44
48
  return handleSkillInfo(registry, query, ctx);
45
49
  default:
@@ -172,26 +176,50 @@ async function handleSkillList(registry, ctx) {
172
176
  /**
173
177
  * Handle /skill search
174
178
  */
175
- async function handleSkillSearch(registry, query, ctx) {
179
+ async function handleSkillSearch(registry, query, ctx, useVector = false) {
176
180
  if (!query) {
177
- ctx.ui.notify("Usage: /skill search <query>", "warning");
181
+ ctx.ui.notify("Usage: /skill search <query> [--vector]", "warning");
178
182
  return;
179
183
  }
180
- const results = registry.find(query, { threshold: 0.2 });
184
+ let backend = "keyword";
185
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
186
+ let results = [];
187
+ // Try vector search if requested and available
188
+ if (useVector && registry.isQdrantReady) {
189
+ const vectorResults = await registry.findVector(query, 5, 0.5);
190
+ if (vectorResults.length > 0) {
191
+ backend = "vector";
192
+ results = vectorResults.map(r => ({ skill: r.skill, score: r.score }));
193
+ }
194
+ else {
195
+ // Vector search returned empty, fall back to keyword
196
+ ctx.ui.notify("[skills] Vector search returned no results, falling back to keyword search", "info");
197
+ }
198
+ }
199
+ // Keyword fallback or if vector not requested
200
+ if (results.length === 0) {
201
+ const keywordResults = registry.find(query, { threshold: 0.2 });
202
+ results = keywordResults;
203
+ backend = "keyword";
204
+ }
181
205
  if (results.length === 0) {
182
- ctx.ui.notify(`No skills found matching: ${query}`, "info");
206
+ ctx.ui.notify(`No skills found matching: ${query} [${backend}]`, "info");
183
207
  return;
184
208
  }
185
- const lines = [`# Skills matching: ${query}`, ""];
209
+ const lines = [`# Skills matching: ${query} [${backend}]`, ""];
186
210
  for (const result of results.slice(0, 10)) {
187
211
  lines.push(`## ${result.skill.frontmatter.name} (${Math.round(result.score * 100)}% match)`);
188
212
  lines.push(result.skill.frontmatter.description);
189
- if (result.matchedTriggers.length > 0) {
213
+ if (result.matchedTriggers && result.matchedTriggers.length > 0) {
190
214
  lines.push(`Matched: ${result.matchedTriggers.join(", ")}`);
191
215
  }
192
216
  lines.push("");
193
217
  }
194
- ctx.ui.notify(`Found ${results.length} matching skills. Use /skill info <name> for details.`, "info");
218
+ const vectorNote = useVector && !registry.isQdrantReady
219
+ ? " (vector unavailable)"
220
+ : "";
221
+ ctx.ui.notify(`Found ${results.length} skills via ${backend} search${vectorNote}. ` +
222
+ `Use /skill info <name> for details.`, "info");
195
223
  }
196
224
  /**
197
225
  * Handle /skill info
@@ -1 +1 @@
1
- {"version":3,"file":"skill-commands.js","sourceRoot":"","sources":["../src/skill-commands.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAYjD;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAuB;IACxD,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,EAAgB,EAChB,MAAoC;IAEpC,MAAM,GAAG,GAAG,EAAE,GAAG,sBAAsB,EAAE,GAAG,MAAM,EAAE,CAAC;IAErD,IAAI,CAAC,GAAG,CAAC,OAAO;QAAE,OAAO;IAEzB,MAAM,QAAQ,GAAG,sBAAsB,EAAE,CAAC;IAE1C,2CAA2C;IAC3C,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,sCAAsC;IACtC,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE;QAC1B,WAAW,EAAE,uEAAuE;QACpF,OAAO,EAAE,KAAK,EAAE,IAAY,EAAE,GAAqB,EAAE,EAAE;YACrD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;YACtC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEvC,QAAQ,UAAU,EAAE,CAAC;gBACnB,KAAK,MAAM;oBACT,OAAO,eAAe,CAAC,QAAQ,EAAE,GAA8B,CAAC,CAAC;gBACnE,KAAK,QAAQ;oBACX,OAAO,iBAAiB,CAAC,QAAQ,EAAE,KAAK,EAAE,GAA8B,CAAC,CAAC;gBAC5E,KAAK,MAAM;oBACT,OAAO,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,GAA8B,CAAC,CAAC;gBAC1E;oBACE,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,uBAAuB,UAAU,kCAAkC,EAAE,SAAS,CAAC,CAAC;YAClG,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,iDAAiD;IACjD,qBAAqB,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAEhD,sCAAsC;IACtC,EAAE,CAAC,eAAe,CAAC,aAAa,EAAE;QAChC,WAAW,EAAE,2IAA2I;QACxJ,OAAO,EAAE,KAAK,EAAE,IAAY,EAAE,GAAqB,EAAiB,EAAE;YACpE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAE/B,uEAAuE;YACvE,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,+EAA+E,CAAC,CAAC;YAEvI,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,mFAAmF,EAAE,MAAM,CAAC,CAAC;YAE3G,6CAA6C;YAC7C,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAE5D,6CAA6C;YAC7C,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAClC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,EAAE;oBACpD,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE;oBAC7B,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;oBACvB,UAAU,EAAE,SAAS;iBACtB,CAAC,CAAC;gBAEH,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;oBACtC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;oBACrC,IAAI,IAAI;wBAAE,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACxC,CAAC,CAAC,CAAC;gBAEH,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;oBACtC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;oBACrC,IAAI,IAAI;wBAAE,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBAC3C,CAAC,CAAC,CAAC;gBAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;oBACvB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;wBACf,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,wDAAwD,EAAE,MAAM,CAAC,CAAC;oBAClF,CAAC;yBAAM,CAAC;wBACN,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,4BAA4B,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;oBAC7D,CAAC;oBACD,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC,CAAC;gBAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;oBACtB,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,wBAAwB,GAAG,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;oBAC9D,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAC5B,EAAgB,EAChB,QAAmD,EACnD,MAAc;IAEd,4BAA4B;IAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAE/B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,WAAW,GAAG,GAAG,MAAM,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC;QAE3C,gDAAgD;QAChD,IAAI,WAAW,CAAC,MAAM,GAAG,EAAE;YAAE,SAAS;QAEtC,uBAAuB;QACvB,IAAI,CAAC;YACH,EAAE,CAAC,eAAe,CAAC,WAAW,EAAE;gBAC9B,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,WAAW;gBAC1C,OAAO,EAAE,KAAK,EAAE,UAAkB,EAAE,GAAqB,EAAE,EAAE;oBAC3D,8BAA8B;oBAC9B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE;wBAC3C,cAAc,EAAE,IAAI;wBACpB,YAAY,EAAE,IAAI;qBACnB,CAAC,CAAC;oBAEH,IAAI,CAAC,MAAM,EAAE,CAAC;wBACZ,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,oBAAoB,KAAK,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;wBACvD,OAAO;oBACT,CAAC;oBAED,oCAAoC;oBACpC,MAAM,QAAQ,GAAa,EAAE,CAAC;oBAC9B,QAAQ,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC9C,QAAQ,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,WAAW,CAAC,WAAW,IAAI,CAAC,CAAC;oBACvD,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAClB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACrB,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAE3B,oBAAoB;oBACpB,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBAClB,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;wBAC/B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;4BACpC,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;wBACzC,CAAC;oBACH,CAAC;oBAED,qBAAqB;oBACrB,GAAG,CAAC,EAAE,CAAC,MAAM,CACX,UAAU,MAAM,CAAC,WAAW,CAAC,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,UAAU;wBACpE,mBAAmB,MAAM,CAAC,EAAE,oBAAoB,EAChD,MAAM,CACP,CAAC;gBACJ,CAAC;aACF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,2DAA2D;YAC3D,OAAO,CAAC,KAAK,CAAC,uCAAuC,WAAW,GAAG,EAAE,GAAG,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,eAAe,CAC5B,QAAmD,EACnD,GAA4B;IAE5B,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAE/B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,iGAAiG,EAAE,MAAM,CAAC,CAAC;QACzH,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAa,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;IAEnD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,IAAI,SAAS,CAAC;QACjD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,WAAW,IAAI,CAAC,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,WAAW,CAAC,IAAI,IAAI,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACvH,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC;QACjC,IAAI,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChE,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,6DAA6D;IAC7D,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,MAAM,CAAC,MAAM,8CAA8C,EAAE,MAAM,CAAC,CAAC;AAC9F,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAC9B,QAAmD,EACnD,KAAa,EACb,GAA4B;IAE5B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,8BAA8B,EAAE,SAAS,CAAC,CAAC;QACzD,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;IAGzD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,6BAA6B,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;QAC5D,OAAO;IACT,CAAC;IAGD,MAAM,KAAK,GAAa,CAAC,sBAAsB,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAE5D,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC;QAC7F,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACjD,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9D,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,OAAO,CAAC,MAAM,uDAAuD,EAAE,MAAM,CAAC,CAAC;AACxG,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,eAAe,CAC5B,QAAmD,EACnD,SAAiB,EACjB,GAA4B;IAE5B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,2BAA2B,EAAE,SAAS,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEtC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,oBAAoB,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC;QACxD,OAAO;IACT,CAAC;IAED,oBAAoB;IACpB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,yBAAyB,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC;QAC7D,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACjE,IAAI,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,EAAE,UAAU,KAAK,SAAS,EAAE,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;IACpF,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,KAAK,SAAS,EAAE,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAExB,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1B,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC,OAAO,OAAO,CAAC,IAAI,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,4DAA4D;IAC5D,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,MAAM,CAAC,WAAW,CAAC,IAAI,iBAAiB,MAAM,CAAC,IAAI,CAAC,MAAM,sBAAsB,KAAK,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;AAC3I,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,4BAA4B;IAC1C,MAAM,QAAQ,GAAG,sBAAsB,EAAE,CAAC;IAC1C,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAE/B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAClC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,OAAO,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;QAChF,IAAI,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;IAErD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,EAAgB,EAChB,MAAe;IAEf,MAAM,GAAG,GAAuB;QAC9B,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,MAAM,IAAI,sBAAsB,CAAC,MAAM;KAChD,CAAC;IAEF,MAAM,QAAQ,GAAG,sBAAsB,EAAE,CAAC;IAC1C,qBAAqB,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"skill-commands.js","sourceRoot":"","sources":["../src/skill-commands.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/skills",
3
- "version": "1.1.154",
3
+ "version": "1.1.155",
4
4
  "description": "File-based skill system with pi.dev compatibility and Hermes self-improvement",
5
5
  "type": "module",
6
6
  "main": "src/index.ts",
@@ -50,17 +50,22 @@ export function initSkillCommands(
50
50
 
51
51
  // Register /skill command for listing
52
52
  pi.registerCommand("skill", {
53
- description: "Interact with skills. Usage: /skill [list|search <query>|info <name>]",
53
+ description: "Interact with skills. Usage: /skill [list|search [--vector] <query>|info <name>]",
54
54
  handler: async (args: string, ctx: ExtensionContext) => {
55
55
  const parts = args.trim().split(/\s+/);
56
56
  const subcommand = parts[0] || "list";
57
- const query = parts.slice(1).join(" ");
57
+
58
+ // Check for --vector flag
59
+ const useVector = parts.includes("--vector");
60
+ // Remove flags for query
61
+ const queryParts = parts.slice(1).filter(p => !p.startsWith("--"));
62
+ const query = queryParts.join(" ");
58
63
 
59
64
  switch (subcommand) {
60
65
  case "list":
61
66
  return handleSkillList(registry, ctx as ExtensionCommandContext);
62
67
  case "search":
63
- return handleSkillSearch(registry, query, ctx as ExtensionCommandContext);
68
+ return handleSkillSearch(registry, query, ctx as ExtensionCommandContext, useVector);
64
69
  case "info":
65
70
  return handleSkillInfo(registry, query, ctx as ExtensionCommandContext);
66
71
  default:
@@ -225,34 +230,61 @@ async function handleSkillList(
225
230
  async function handleSkillSearch(
226
231
  registry: ReturnType<typeof getGlobalSkillRegistry>,
227
232
  query: string,
228
- ctx: ExtensionCommandContext
233
+ ctx: ExtensionCommandContext,
234
+ useVector = false
229
235
  ): Promise<void> {
230
236
  if (!query) {
231
- ctx.ui.notify("Usage: /skill search <query>", "warning");
237
+ ctx.ui.notify("Usage: /skill search <query> [--vector]", "warning");
232
238
  return;
233
239
  }
234
240
 
235
- const results = registry.find(query, { threshold: 0.2 });
241
+ let backend: "vector" | "keyword" = "keyword";
242
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
243
+ let results: Array<{ skill: any; score: number; matchedTriggers?: string[] }> = [];
244
+
245
+ // Try vector search if requested and available
246
+ if (useVector && registry.isQdrantReady) {
247
+ const vectorResults = await registry.findVector(query, 5, 0.5);
248
+ if (vectorResults.length > 0) {
249
+ backend = "vector";
250
+ results = vectorResults.map(r => ({ skill: r.skill, score: r.score }));
251
+ } else {
252
+ // Vector search returned empty, fall back to keyword
253
+ ctx.ui.notify("[skills] Vector search returned no results, falling back to keyword search", "info");
254
+ }
255
+ }
236
256
 
257
+ // Keyword fallback or if vector not requested
258
+ if (results.length === 0) {
259
+ const keywordResults = registry.find(query, { threshold: 0.2 });
260
+ results = keywordResults;
261
+ backend = "keyword";
262
+ }
237
263
 
238
264
  if (results.length === 0) {
239
- ctx.ui.notify(`No skills found matching: ${query}`, "info");
265
+ ctx.ui.notify(`No skills found matching: ${query} [${backend}]`, "info");
240
266
  return;
241
267
  }
242
268
 
243
-
244
- const lines: string[] = [`# Skills matching: ${query}`, ""];
269
+ const lines: string[] = [`# Skills matching: ${query} [${backend}]`, ""];
245
270
 
246
271
  for (const result of results.slice(0, 10)) {
247
272
  lines.push(`## ${result.skill.frontmatter.name} (${Math.round(result.score * 100)}% match)`);
248
273
  lines.push(result.skill.frontmatter.description);
249
- if (result.matchedTriggers.length > 0) {
274
+ if (result.matchedTriggers && result.matchedTriggers.length > 0) {
250
275
  lines.push(`Matched: ${result.matchedTriggers.join(", ")}`);
251
276
  }
252
277
  lines.push("");
253
278
  }
254
279
 
255
- ctx.ui.notify(`Found ${results.length} matching skills. Use /skill info <name> for details.`, "info");
280
+ const vectorNote = useVector && !registry.isQdrantReady
281
+ ? " (vector unavailable)"
282
+ : "";
283
+ ctx.ui.notify(
284
+ `Found ${results.length} skills via ${backend} search${vectorNote}. ` +
285
+ `Use /skill info <name> for details.`,
286
+ "info"
287
+ );
256
288
  }
257
289
 
258
290
  /**
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/sprint-planner",
3
- "version": "1.1.154",
3
+ "version": "1.1.155",
4
4
  "type": "module",
5
5
  "description": "Sprint planning engine for pi-harness",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/subscription-engine",
3
- "version": "1.1.154",
3
+ "version": "1.1.155",
4
4
  "type": "module",
5
5
  "main": "src/index.ts",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/task-compiler",
3
- "version": "1.1.154",
3
+ "version": "1.1.155",
4
4
  "description": "Task Compiler for pi-harness-runtime — produces deterministic task DAG from CompiledRequirement",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moocoding/tencentdb-memory",
3
- "version": "1.1.154",
3
+ "version": "1.1.155",
4
4
  "description": "TencentDB Agent Memory client - sync skills to centralized knowledge base",
5
5
  "type": "module",
6
6
  "main": "src/index.ts",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/tencentdb-sync",
3
- "version": "1.1.154",
3
+ "version": "1.1.155",
4
4
  "description": "Sync SKILL.md skills to TencentDB-Agent-Memory server (RFC-0105/0106)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/test-data-generator",
3
- "version": "1.1.154",
3
+ "version": "1.1.155",
4
4
  "description": "Test data generation for pi-harness-runtime",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/test-generator",
3
- "version": "1.1.154",
3
+ "version": "1.1.155",
4
4
  "description": "Auto-Test Generator — generate unit and E2E tests from source code (RFC-0013)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moocoding/todo-bd-sync",
3
- "version": "1.1.154",
3
+ "version": "1.1.155",
4
4
  "description": "Two-way sync between rpiv-todo overlay and bd issue tracker",
5
5
  "type": "module",
6
6
  "main": "src/index.ts",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/token-estimation",
3
- "version": "1.1.154",
3
+ "version": "1.1.155",
4
4
  "description": "pi-harness-runtime — token-estimation",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/token-optimizer",
3
- "version": "1.1.154",
3
+ "version": "1.1.155",
4
4
  "description": "Token Budget Optimizer — maximize prompt value within token limits (RFC-0011)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/trajectory",
3
- "version": "1.1.154",
3
+ "version": "1.1.155",
4
4
  "description": "Trajectory capture for the write-review loop — persists cycle records for learning",
5
5
  "type": "module",
6
6
  "main": "./dist/src/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/tui",
3
- "version": "1.1.154",
3
+ "version": "1.1.155",
4
4
  "description": "pi-harness-runtime — tui",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",