pi-harness-runtime 1.1.410 → 1.1.411

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 (146) hide show
  1. package/package.json +1 -1
  2. package/packages/a2a-adapter/package.json +1 -1
  3. package/packages/agent-policy/package.json +1 -1
  4. package/packages/architecture-generator/package.json +1 -1
  5. package/packages/auth/package.json +1 -1
  6. package/packages/autonomous-refactor/package.json +1 -1
  7. package/packages/autonomous-runtime/package.json +1 -1
  8. package/packages/autonomous-runtime/test/types.test.ts +59 -32
  9. package/packages/cache-strategy/package.json +1 -1
  10. package/packages/capability-registry/package.json +1 -1
  11. package/packages/checkpoint/package.json +1 -1
  12. package/packages/cli-plugin-sdk/package.json +1 -1
  13. package/packages/clipboard/package.json +1 -1
  14. package/packages/clipboard-plugin/package.json +1 -1
  15. package/packages/code-generation/package.json +1 -1
  16. package/packages/code-review/package.json +1 -1
  17. package/packages/codex-adapter/package.json +1 -1
  18. package/packages/codex-watcher/package.json +1 -1
  19. package/packages/config-capture/package.json +1 -1
  20. package/packages/connection-runtime/package.json +1 -1
  21. package/packages/context-compiler/package.json +1 -1
  22. package/packages/context-discovery/package.json +1 -1
  23. package/packages/context-manager/package.json +1 -1
  24. package/packages/contracts/package.json +1 -1
  25. package/packages/cookie-sanitizer/package.json +1 -1
  26. package/packages/cookie-sanitizer/test/sync.test.ts +7 -1
  27. package/packages/cost-optimizer/package.json +1 -1
  28. package/packages/dependency-analyzer/dist/src/imports.js +3 -3
  29. package/packages/dependency-analyzer/dist/src/imports.js.map +1 -1
  30. package/packages/dependency-analyzer/package.json +1 -1
  31. package/packages/dependency-analyzer/src/imports.ts +3 -3
  32. package/packages/dependency-analyzer/test/analyzer.test.ts +1 -0
  33. package/packages/django-plugin/package.json +1 -1
  34. package/packages/doc-generator/package.json +1 -1
  35. package/packages/durable-review/package.json +1 -1
  36. package/packages/durable-review/test/acceptance.test.ts +24 -2
  37. package/packages/durable-review/test/smoke.test.ts +85 -47
  38. package/packages/e2e-tester/package.json +1 -1
  39. package/packages/evaluation-engine/package.json +1 -1
  40. package/packages/evaluation-runner/package.json +1 -1
  41. package/packages/event-bus/package.json +1 -1
  42. package/packages/event-bus/test/bus.test.ts +16 -4
  43. package/packages/event-sink/package.json +1 -1
  44. package/packages/event-store/package.json +1 -1
  45. package/packages/experience-replay/package.json +1 -1
  46. package/packages/feedback-collector/package.json +1 -1
  47. package/packages/file-copy-helper/package.json +1 -1
  48. package/packages/framework-detector/package.json +1 -1
  49. package/packages/framework-plugin-sdk/package.json +1 -1
  50. package/packages/frappe-plugin/package.json +1 -1
  51. package/packages/generic-web-plugin/package.json +1 -1
  52. package/packages/health-monitor/package.json +1 -1
  53. package/packages/intent-analyzer/package.json +1 -1
  54. package/packages/jev-judge/package.json +1 -1
  55. package/packages/knowledge-graph/package.json +1 -1
  56. package/packages/knowledge-retrieval/package.json +1 -1
  57. package/packages/laravel-plugin/package.json +1 -1
  58. package/packages/learning-engine/package.json +1 -1
  59. package/packages/logging/package.json +1 -1
  60. package/packages/mcp-adapter/package.json +1 -1
  61. package/packages/memory-engine/package.json +1 -1
  62. package/packages/milestone-manager/package.json +1 -1
  63. package/packages/model-registry/package.json +1 -1
  64. package/packages/nextjs-plugin/package.json +1 -1
  65. package/packages/notification/package.json +1 -1
  66. package/packages/observability/package.json +1 -1
  67. package/packages/okf-indexer/package.json +1 -1
  68. package/packages/paperclip-integration/package.json +1 -1
  69. package/packages/performance-optimizer/package.json +1 -1
  70. package/packages/permission-mode/package.json +1 -1
  71. package/packages/privilege-broker/package.json +1 -1
  72. package/packages/project-analyzer/package.json +1 -1
  73. package/packages/project-bootstrap/package.json +1 -1
  74. package/packages/projection-engine/package.json +1 -1
  75. package/packages/prompt-compiler/package.json +1 -1
  76. package/packages/prompt-versioning/package.json +1 -1
  77. package/packages/provider-adapter-sdk/package.json +1 -1
  78. package/packages/provider-router/package.json +1 -1
  79. package/packages/provider-selector/package.json +1 -1
  80. package/packages/providers/package.json +1 -1
  81. package/packages/qdrant-skills/dist/embedder.d.ts +27 -0
  82. package/packages/qdrant-skills/dist/embedder.d.ts.map +1 -1
  83. package/packages/qdrant-skills/dist/embedder.js +54 -0
  84. package/packages/qdrant-skills/dist/embedder.js.map +1 -1
  85. package/packages/qdrant-skills/dist/index.d.ts +1 -1
  86. package/packages/qdrant-skills/dist/index.d.ts.map +1 -1
  87. package/packages/qdrant-skills/dist/index.js +1 -1
  88. package/packages/qdrant-skills/dist/index.js.map +1 -1
  89. package/packages/qdrant-skills/package.json +1 -1
  90. package/packages/qdrant-skills/src/embedder.ts +90 -0
  91. package/packages/qdrant-skills/src/index.ts +3 -0
  92. package/packages/qdrant-skills/test/embedder-batch.test.ts +184 -0
  93. package/packages/quota-manager/package.json +1 -1
  94. package/packages/rate-limiter/package.json +1 -1
  95. package/packages/react-vite-plugin/package.json +1 -1
  96. package/packages/relay/package.json +1 -1
  97. package/packages/release-manager/package.json +1 -1
  98. package/packages/requirement-compiler/package.json +1 -1
  99. package/packages/runtime/package.json +1 -1
  100. package/packages/scheduler/package.json +1 -1
  101. package/packages/scheduler-adapter/package.json +1 -1
  102. package/packages/session/package.json +1 -1
  103. package/packages/session-api/package.json +1 -1
  104. package/packages/session-export/package.json +1 -1
  105. package/packages/shared-context/package.json +1 -1
  106. package/packages/skill-mcp-client/package.json +1 -1
  107. package/packages/skill-registry/package.json +1 -1
  108. package/packages/skills/dist/index.d.ts +5 -0
  109. package/packages/skills/dist/index.d.ts.map +1 -1
  110. package/packages/skills/dist/index.js +4 -1
  111. package/packages/skills/dist/index.js.map +1 -1
  112. package/packages/skills/dist/loader.d.ts +94 -3
  113. package/packages/skills/dist/loader.d.ts.map +1 -1
  114. package/packages/skills/dist/loader.js +192 -25
  115. package/packages/skills/dist/loader.js.map +1 -1
  116. package/packages/skills/package.json +1 -1
  117. package/packages/skills/src/index.ts +12 -3
  118. package/packages/skills/src/loader.ts +243 -27
  119. package/packages/skills/test/init-skills.test.ts +107 -111
  120. package/packages/skills/test/vector-indexing.test.ts +205 -0
  121. package/packages/sprint-planner/package.json +1 -1
  122. package/packages/subscription-engine/package.json +1 -1
  123. package/packages/task-compiler/package.json +1 -1
  124. package/packages/telegram/package.json +1 -1
  125. package/packages/tencentdb-memory/package.json +1 -1
  126. package/packages/tencentdb-sync/package.json +1 -1
  127. package/packages/test-data-generator/package.json +1 -1
  128. package/packages/test-generator/package.json +1 -1
  129. package/packages/todo-bd-sync/package.json +1 -1
  130. package/packages/token-estimation/package.json +1 -1
  131. package/packages/token-optimizer/package.json +1 -1
  132. package/packages/tooling-preference/package.json +1 -1
  133. package/packages/trajectory/package.json +1 -1
  134. package/packages/tui/package.json +1 -1
  135. package/packages/two-phase-review/package.json +1 -1
  136. package/packages/types/package.json +1 -1
  137. package/packages/voice-api/package.json +1 -1
  138. package/packages/webmcp-tester/package.json +1 -1
  139. package/packages/wiki/package.json +1 -1
  140. package/packages/workflow-events/package.json +1 -1
  141. package/packages/workspace-scanner/package.json +1 -1
  142. package/packages/workspace-scanner/test/scanner.test.ts +4 -3
  143. package/packages/worktree/package.json +1 -1
  144. package/packages/write-review/package.json +1 -1
  145. package/packages/autonomous-runtime/test/autonomous-runtime.test.ts +0 -194
  146. package/packages/autonomous-runtime/test/inbox.test.ts +0 -80
@@ -5,6 +5,51 @@
5
5
  * Based on pi.dev Agent Skills specification.
6
6
  */
7
7
  import type { Skill, SkillIndex, MatchOptions, MatchResult, LoadOptions, LoadedSkill } from "./types.js";
8
+ export interface QdrantSkillPoint {
9
+ id: number;
10
+ name: string;
11
+ description: string;
12
+ body: string;
13
+ text: string;
14
+ }
15
+ /**
16
+ * A point of the vector index: the vector and the payload of one skill.
17
+ */
18
+ export interface SkillVectorPoint {
19
+ id: number;
20
+ vector: number[];
21
+ payload: QdrantSkillPoint;
22
+ }
23
+ /**
24
+ * The vector index of a registry.
25
+ *
26
+ * The index is an interface so a caller can supply its own implementation
27
+ * (a test uses a counting double) and so the registry never has to know
28
+ * whether the index lives in Qdrant.
29
+ */
30
+ export interface SkillVectorIndexer {
31
+ /** One vector per text, in the order of the texts. */
32
+ embed(texts: string[]): Promise<number[][]>;
33
+ /** Store the points of the given skills. */
34
+ upsert(points: SkillVectorPoint[]): Promise<void>;
35
+ }
36
+ /**
37
+ * The options of a skill registry.
38
+ */
39
+ export interface SkillRegistryOptions {
40
+ /**
41
+ * The vector index.
42
+ *
43
+ * `undefined` (the default) indexes into the configured Qdrant cluster.
44
+ * `null` disables the vector index entirely. An object is used as the index.
45
+ */
46
+ indexer?: SkillVectorIndexer | null;
47
+ /**
48
+ * How many skills one indexing request carries. A larger batch costs fewer
49
+ * requests but holds more of them in memory.
50
+ */
51
+ batchSize?: number;
52
+ }
8
53
  /**
9
54
  * Get Qdrant config from env or keys files.
10
55
  * Returns null if not configured.
@@ -21,13 +66,25 @@ export declare class SkillRegistry {
21
66
  private skills;
22
67
  private index;
23
68
  private loading;
69
+ private _indexer;
70
+ private _batchSize;
71
+ private _indexQueue;
72
+ private _indexFlushRunning;
73
+ private _indexFlushScheduled;
74
+ private _indexedHashes;
24
75
  private _qdrant;
25
76
  private _qdrantInitPromise;
26
77
  private _qdrantInitFailed;
78
+ private _qdrantIndexer;
79
+ constructor(options?: SkillRegistryOptions);
27
80
  /**
28
81
  * Check if Qdrant initialization has failed (useful for diagnostics).
29
82
  */
30
83
  isQdrantFailed(): boolean;
84
+ /**
85
+ * Whether skills are still queued for the vector index.
86
+ */
87
+ isIndexing(): boolean;
31
88
  /**
32
89
  * Initialize Qdrant client if configured.
33
90
  * Uses a shared init promise to prevent race conditions when multiple
@@ -35,10 +92,44 @@ export declare class SkillRegistry {
35
92
  */
36
93
  private _ensureQdrant;
37
94
  private _doQdrantInit;
95
+ /** The point of a skill in the vector index. */
96
+ private _toQdrantPoint;
97
+ /**
98
+ * The indexer of the registry: the injected one, or the Qdrant cluster.
99
+ */
100
+ private _getIndexer;
101
+ /**
102
+ * The Qdrant cluster as an indexer.
103
+ *
104
+ * The batch call of the embeddings endpoint carries many texts in one
105
+ * request. One request per skill exhausted the sockets of the process when
106
+ * a registry held hundreds of skills, and every other request of the
107
+ * program then starved.
108
+ */
109
+ private _createQdrantIndexer;
38
110
  /**
39
- * Index a single skill into Qdrant (non-blocking).
111
+ * Queue a skill for the vector index.
112
+ *
113
+ * A skill whose text did not change is not queued again: the registry is
114
+ * filled on every scan, and re-embedding the same skill would pay for the
115
+ * same vector over and over.
116
+ */
117
+ private _scheduleIndex;
118
+ /**
119
+ * Start the index flush, a microtask from now.
120
+ *
121
+ * A scan registers every skill in one go. Waiting for the microtask lets
122
+ * that burst share one request instead of starting one request per skill.
123
+ */
124
+ private _scheduleIndexFlush;
125
+ /**
126
+ * Index the queued skills, one batch at a time.
127
+ *
128
+ * Only one batch is in flight, so the number of open connections stays
129
+ * bound no matter how many skills the registry holds.
40
130
  */
41
- private _indexSkillToQdrant;
131
+ private _runIndexFlush;
132
+ private _flushIndexQueue;
42
133
  /** Simple deterministic ID for Qdrant (no bigints needed). */
43
134
  private _hashId;
44
135
  /**
@@ -116,7 +207,7 @@ export declare class SkillRegistry {
116
207
  /**
117
208
  * Create a new skill registry
118
209
  */
119
- export declare function createSkillRegistry(): SkillRegistry;
210
+ export declare function createSkillRegistry(options?: SkillRegistryOptions): SkillRegistry;
120
211
  export declare function getGlobalSkillRegistry(): SkillRegistry;
121
212
  export declare function setGlobalSkillRegistry(registry: SkillRegistry): void;
122
213
  //# sourceMappingURL=loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACV,KAAK,EACL,UAAU,EAEV,YAAY,EACZ,WAAW,EACX,WAAW,EACX,WAAW,EAEZ,MAAM,YAAY,CAAC;AA6EpB;;;GAGG;AACH,wBAAgB,eAAe,IAAI;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,IAAI,CAiBP;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,KAAK,CAA4C;IACzD,OAAO,CAAC,OAAO,CAA0C;IAGzD,OAAO,CAAC,OAAO,CAKC;IAChB,OAAO,CAAC,kBAAkB,CAA8B;IACxD,OAAO,CAAC,iBAAiB,CAAS;IAElC;;OAEG;IACH,cAAc,IAAI,OAAO,CAExB;IAED;;;;OAIG;YACW,aAAa;YASb,aAAa;IAgC3B;;OAEG;YACW,mBAAmB;IAsBjC,8DAA8D;IAC9D,OAAO,CAAC,OAAO;IAQf;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAK3B;IAED;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAUnC;IAED;;OAEG;IACH,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAEtC;IAED;;OAEG;IACH,IAAI,IAAI,KAAK,EAAE,CAEd;IAED;;OAEG;IACH,QAAQ,IAAI,UAAU,CAErB;IAED;;OAEG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,WAAW,EAAE,CAkFzD;IAED;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,WAAW,GAAG,IAAI,CAGvE;IAID;;;;;;;OAOG;IACG,UAAU,CACd,KAAK,EAAE,MAAM,EACb,KAAK,SAAI,EACT,SAAS,SAAM,GACd,OAAO,CAAC,KAAK,CAAC;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CA0BjD;IAED;;;OAGG;IACG,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CASxF;IAED,6CAA6C;IAC7C,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED;;OAEG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CA4B9E;IAED;;OAEG;YACW,SAAS;IA6DvB;;OAEG;IACH,OAAO,CAAC,WAAW;IAqBnB;;OAEG;IACH,KAAK,IAAI,IAAI,CAIZ;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE5B;CACF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,aAAa,CAEnD;AAOD,wBAAgB,sBAAsB,IAAI,aAAa,CAKtD;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAEpE"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,10 @@
7
7
  import { existsSync, readFileSync } from "node:fs";
8
8
  import { join } from "node:path";
9
9
  import { parseSkillFile } from "./parser.js";
10
+ /**
11
+ * The default number of skills one indexing request carries.
12
+ */
13
+ const DEFAULT_INDEX_BATCH_SIZE = 32;
10
14
  /** Resolve the Qdrant skill module path (monorepo sibling or npm package) */
11
15
  async function resolveQdrantModules() {
12
16
  // Try the monorepo sibling first (the compiled package, so the module
@@ -31,6 +35,11 @@ async function resolveQdrantModules() {
31
35
  createQdrantClient: (cfg) => mod.createQdrantClient(cfg),
32
36
  createCollection: mod.createCollection,
33
37
  createEmbedding: mod.createEmbedding,
38
+ // Absent in an older package build: the registry falls back to one
39
+ // request per text, still with a bounded concurrency.
40
+ createEmbeddingsBatch: typeof mod.createEmbeddingsBatch === "function"
41
+ ? mod.createEmbeddingsBatch
42
+ : undefined,
34
43
  };
35
44
  }
36
45
  catch {
@@ -75,16 +84,36 @@ export class SkillRegistry {
75
84
  skills = new Map();
76
85
  index = { entries: [], loadedAt: 0 };
77
86
  loading = new Map();
87
+ // The vector index. `undefined` means "use Qdrant", `null` means "no index".
88
+ _indexer;
89
+ _batchSize;
90
+ // The skills that still have to be indexed, in registration order.
91
+ _indexQueue = [];
92
+ _indexFlushRunning = false;
93
+ _indexFlushScheduled = false;
94
+ // The content hash of the version of a skill that was queued or indexed.
95
+ _indexedHashes = new Map();
78
96
  // Qdrant state (lazily initialized on first register if configured)
79
97
  _qdrant = null;
80
98
  _qdrantInitPromise = null;
81
99
  _qdrantInitFailed = false;
100
+ _qdrantIndexer = null;
101
+ constructor(options = {}) {
102
+ this._indexer = options.indexer;
103
+ this._batchSize = options.batchSize ?? DEFAULT_INDEX_BATCH_SIZE;
104
+ }
82
105
  /**
83
106
  * Check if Qdrant initialization has failed (useful for diagnostics).
84
107
  */
85
108
  isQdrantFailed() {
86
109
  return this._qdrantInitFailed;
87
110
  }
111
+ /**
112
+ * Whether skills are still queued for the vector index.
113
+ */
114
+ isIndexing() {
115
+ return this._indexFlushRunning || this._indexQueue.length > 0;
116
+ }
88
117
  /**
89
118
  * Initialize Qdrant client if configured.
90
119
  * Uses a shared init promise to prevent race conditions when multiple
@@ -118,7 +147,10 @@ export class SkillRegistry {
118
147
  await mods.createCollection(client, config.collection, 1536);
119
148
  this._qdrant = {
120
149
  client,
121
- embedder: { createEmbedding: mods.createEmbedding },
150
+ embedder: {
151
+ createEmbedding: mods.createEmbedding,
152
+ createEmbeddingsBatch: mods.createEmbeddingsBatch,
153
+ },
122
154
  collection: config.collection,
123
155
  ready: true,
124
156
  };
@@ -128,28 +160,142 @@ export class SkillRegistry {
128
160
  this._qdrantInitFailed = true;
129
161
  }
130
162
  }
131
- /**
132
- * Index a single skill into Qdrant (non-blocking).
133
- */
134
- async _indexSkillToQdrant(skill) {
135
- if (!this._qdrant?.ready)
136
- return;
137
- const point = {
163
+ /** The point of a skill in the vector index. */
164
+ _toQdrantPoint(skill) {
165
+ return {
138
166
  id: this._hashId(skill.id),
139
167
  name: skill.id,
140
168
  description: skill.frontmatter.description,
141
169
  body: skill.body.slice(0, 2000),
142
170
  text: [skill.id, skill.frontmatter.name, skill.frontmatter.description, skill.body.slice(0, 1500)].join(" "),
143
171
  };
144
- try {
145
- const { embedding } = await this._qdrant.embedder.createEmbedding(point.text);
146
- await this._qdrant.client.upsert(this._qdrant.collection, {
147
- wait: false,
148
- points: [{ id: point.id, vector: embedding, payload: point }],
149
- });
172
+ }
173
+ /**
174
+ * The indexer of the registry: the injected one, or the Qdrant cluster.
175
+ */
176
+ _getIndexer() {
177
+ if (this._indexer !== undefined)
178
+ return this._indexer;
179
+ if (!this._qdrantIndexer) {
180
+ this._qdrantIndexer = this._createQdrantIndexer();
150
181
  }
151
- catch {
152
- // Silently skip — embeddings are optional
182
+ return this._qdrantIndexer;
183
+ }
184
+ /**
185
+ * The Qdrant cluster as an indexer.
186
+ *
187
+ * The batch call of the embeddings endpoint carries many texts in one
188
+ * request. One request per skill exhausted the sockets of the process when
189
+ * a registry held hundreds of skills, and every other request of the
190
+ * program then starved.
191
+ */
192
+ _createQdrantIndexer() {
193
+ const qdrant = this._qdrant;
194
+ if (!qdrant?.ready)
195
+ return null;
196
+ return {
197
+ embed: async (texts) => {
198
+ if (texts.length === 0)
199
+ return [];
200
+ const batch = qdrant.embedder.createEmbeddingsBatch;
201
+ if (batch) {
202
+ const result = await batch(texts);
203
+ return result.embeddings;
204
+ }
205
+ // An older build without the batch call: one request per text, but
206
+ // the caller keeps the concurrency bounded all the same.
207
+ const embeddings = [];
208
+ for (const text of texts) {
209
+ const { embedding } = await qdrant.embedder.createEmbedding(text);
210
+ embeddings.push(embedding);
211
+ }
212
+ return embeddings;
213
+ },
214
+ upsert: async (points) => {
215
+ await qdrant.client.upsert(qdrant.collection, { wait: false, points });
216
+ },
217
+ };
218
+ }
219
+ /**
220
+ * Queue a skill for the vector index.
221
+ *
222
+ * A skill whose text did not change is not queued again: the registry is
223
+ * filled on every scan, and re-embedding the same skill would pay for the
224
+ * same vector over and over.
225
+ */
226
+ _scheduleIndex(skill) {
227
+ const point = this._toQdrantPoint(skill);
228
+ const hash = this._hashId(point.text);
229
+ if (this._indexedHashes.get(skill.id) === hash)
230
+ return;
231
+ this._indexedHashes.set(skill.id, hash);
232
+ this._indexQueue.push({ skill, point, hash });
233
+ this._scheduleIndexFlush();
234
+ }
235
+ /**
236
+ * Start the index flush, a microtask from now.
237
+ *
238
+ * A scan registers every skill in one go. Waiting for the microtask lets
239
+ * that burst share one request instead of starting one request per skill.
240
+ */
241
+ _scheduleIndexFlush() {
242
+ if (this._indexFlushScheduled)
243
+ return;
244
+ this._indexFlushScheduled = true;
245
+ queueMicrotask(() => {
246
+ this._indexFlushScheduled = false;
247
+ this._runIndexFlush();
248
+ });
249
+ }
250
+ /**
251
+ * Index the queued skills, one batch at a time.
252
+ *
253
+ * Only one batch is in flight, so the number of open connections stays
254
+ * bound no matter how many skills the registry holds.
255
+ */
256
+ _runIndexFlush() {
257
+ if (this._indexFlushRunning)
258
+ return;
259
+ this._indexFlushRunning = true;
260
+ void this._flushIndexQueue().finally(() => {
261
+ this._indexFlushRunning = false;
262
+ // Skills may have arrived while the flush was running.
263
+ if (this._indexQueue.length > 0)
264
+ this._scheduleIndexFlush();
265
+ });
266
+ }
267
+ async _flushIndexQueue() {
268
+ if (this._indexer === undefined)
269
+ await this._ensureQdrant();
270
+ const indexer = this._getIndexer();
271
+ if (!indexer) {
272
+ // No vector index: the skills stay usable without vectors.
273
+ this._indexQueue = [];
274
+ return;
275
+ }
276
+ while (this._indexQueue.length > 0) {
277
+ const batch = this._indexQueue.splice(0, this._batchSize);
278
+ try {
279
+ const vectors = await indexer.embed(batch.map((item) => item.point.text));
280
+ const points = [];
281
+ batch.forEach((item, position) => {
282
+ const vector = vectors[position];
283
+ if (!vector || vector.length === 0)
284
+ return;
285
+ points.push({ id: item.point.id, vector, payload: item.point });
286
+ });
287
+ if (points.length > 0)
288
+ await indexer.upsert(points);
289
+ }
290
+ catch {
291
+ // The vector index is optional. A failed batch may be retried by a
292
+ // later registration of the same skills.
293
+ for (const item of batch) {
294
+ if (this._indexedHashes.get(item.skill.id) === item.hash) {
295
+ this._indexedHashes.delete(item.skill.id);
296
+ }
297
+ }
298
+ }
153
299
  }
154
300
  }
155
301
  /** Simple deterministic ID for Qdrant (no bigints needed). */
@@ -166,8 +312,8 @@ export class SkillRegistry {
166
312
  register(skill) {
167
313
  this.skills.set(skill.id, skill);
168
314
  this.updateIndex(skill);
169
- // Trigger async Qdrant indexing without blocking registration
170
- this._ensureQdrant().then(() => this._indexSkillToQdrant(skill)).catch(() => { });
315
+ // Queue the skill for the vector index without blocking registration.
316
+ this._scheduleIndex(skill);
171
317
  }
172
318
  /**
173
319
  * Unregister a skill by ID
@@ -324,13 +470,34 @@ export class SkillRegistry {
324
470
  * Useful after Qdrant becomes available or collection is rebuilt.
325
471
  */
326
472
  async syncAllToQdrant(onProgress) {
327
- await this._ensureQdrant();
328
- if (!this._qdrant?.ready)
473
+ if (this._indexer === undefined)
474
+ await this._ensureQdrant();
475
+ const indexer = this._getIndexer();
476
+ if (!indexer)
329
477
  return;
330
478
  const skills = this.list();
331
- for (let i = 0; i < skills.length; i++) {
332
- await this._indexSkillToQdrant(skills[i]);
333
- onProgress?.(i + 1, skills.length);
479
+ const total = skills.length;
480
+ let done = 0;
481
+ for (let i = 0; i < total; i += this._batchSize) {
482
+ const batch = skills.slice(i, i + this._batchSize);
483
+ const points = batch.map((skill) => this._toQdrantPoint(skill));
484
+ try {
485
+ const vectors = await indexer.embed(points.map((point) => point.text));
486
+ const payload = [];
487
+ points.forEach((point, position) => {
488
+ const vector = vectors[position];
489
+ if (!vector || vector.length === 0)
490
+ return;
491
+ payload.push({ id: point.id, vector, payload: point });
492
+ });
493
+ if (payload.length > 0)
494
+ await indexer.upsert(payload);
495
+ }
496
+ catch {
497
+ // The vector index is optional — a failed batch does not stop the sync.
498
+ }
499
+ done += batch.length;
500
+ onProgress?.(done, total);
334
501
  }
335
502
  }
336
503
  /** Whether Qdrant is available and ready. */
@@ -464,8 +631,8 @@ export class SkillRegistry {
464
631
  /**
465
632
  * Create a new skill registry
466
633
  */
467
- export function createSkillRegistry() {
468
- return new SkillRegistry();
634
+ export function createSkillRegistry(options = {}) {
635
+ return new SkillRegistry(options);
469
636
  }
470
637
  /**
471
638
  * Global skill registry instance (singleton)
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/skills",
3
- "version": "1.1.410",
3
+ "version": "1.1.411",
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",
@@ -20,15 +20,24 @@ export * from "./linter.js";
20
20
 
21
21
  import type { SkillsConfig, ScanResult, ScanOptions } from "./types.js";
22
22
  import { scanForSkillsSync } from "./scanner.js";
23
- import { getGlobalSkillRegistry } from "./loader.js";
23
+ import { getGlobalSkillRegistry, type SkillRegistry } from "./loader.js";
24
24
 
25
25
  /**
26
26
  * Initialize skills system
27
+ *
28
+ * A caller (a test) can pass its own registry, so the initialization does
29
+ * not have to touch the global one.
27
30
  */
28
31
  export function initSkills(
29
- config?: Partial<SkillsConfig & { maxDepth?: number; includeHidden?: boolean }>
32
+ config?: Partial<
33
+ SkillsConfig & {
34
+ maxDepth?: number;
35
+ includeHidden?: boolean;
36
+ registry?: SkillRegistry;
37
+ }
38
+ >
30
39
  ): ScanResult {
31
- const registry = getGlobalSkillRegistry();
40
+ const registry = config?.registry ?? getGlobalSkillRegistry();
32
41
 
33
42
  // Scan for skills
34
43
  const scanOptions: Partial<ScanOptions> = {};