pi-harness-runtime 1.1.410 → 1.1.412
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/harness/notification-settings.ts +130 -0
- package/harness/skill-remote-source.ts +157 -0
- package/harness/skill-sync.ts +74 -22
- package/harness/skills-startup.ts +202 -0
- package/harness/startup-report.ts +98 -56
- package/harness-startup-status.ts +31 -2
- package/index.ts +125 -31
- package/package.json +1 -1
- package/packages/a2a-adapter/package.json +1 -1
- package/packages/agent-policy/package.json +1 -1
- package/packages/architecture-generator/package.json +1 -1
- package/packages/auth/package.json +1 -1
- package/packages/autonomous-refactor/package.json +1 -1
- package/packages/autonomous-runtime/package.json +1 -1
- package/packages/autonomous-runtime/test/types.test.ts +59 -32
- package/packages/cache-strategy/package.json +1 -1
- package/packages/capability-registry/package.json +1 -1
- package/packages/checkpoint/package.json +1 -1
- package/packages/cli-plugin-sdk/package.json +1 -1
- package/packages/clipboard/package.json +1 -1
- package/packages/clipboard-plugin/package.json +1 -1
- package/packages/code-generation/package.json +1 -1
- package/packages/code-review/package.json +1 -1
- package/packages/codex-adapter/package.json +1 -1
- package/packages/codex-watcher/package.json +1 -1
- package/packages/config-capture/package.json +1 -1
- package/packages/connection-runtime/package.json +1 -1
- package/packages/context-compiler/package.json +1 -1
- package/packages/context-discovery/package.json +1 -1
- package/packages/context-manager/package.json +1 -1
- package/packages/contracts/package.json +1 -1
- package/packages/cookie-sanitizer/package.json +1 -1
- package/packages/cookie-sanitizer/test/sync.test.ts +7 -1
- package/packages/cost-optimizer/package.json +1 -1
- package/packages/dependency-analyzer/dist/src/imports.js +3 -3
- package/packages/dependency-analyzer/dist/src/imports.js.map +1 -1
- package/packages/dependency-analyzer/package.json +1 -1
- package/packages/dependency-analyzer/src/imports.ts +3 -3
- package/packages/dependency-analyzer/test/analyzer.test.ts +1 -0
- package/packages/django-plugin/package.json +1 -1
- package/packages/doc-generator/package.json +1 -1
- package/packages/durable-review/package.json +1 -1
- package/packages/durable-review/test/acceptance.test.ts +24 -2
- package/packages/durable-review/test/smoke.test.ts +85 -47
- package/packages/e2e-tester/package.json +1 -1
- package/packages/evaluation-engine/package.json +1 -1
- package/packages/evaluation-runner/package.json +1 -1
- package/packages/event-bus/package.json +1 -1
- package/packages/event-bus/test/bus.test.ts +16 -4
- package/packages/event-sink/package.json +1 -1
- package/packages/event-store/package.json +1 -1
- package/packages/experience-replay/package.json +1 -1
- package/packages/feedback-collector/package.json +1 -1
- package/packages/file-copy-helper/package.json +1 -1
- package/packages/framework-detector/package.json +1 -1
- package/packages/framework-plugin-sdk/package.json +1 -1
- package/packages/frappe-plugin/package.json +1 -1
- package/packages/generic-web-plugin/package.json +1 -1
- package/packages/health-monitor/package.json +1 -1
- package/packages/intent-analyzer/package.json +1 -1
- package/packages/jev-judge/package.json +1 -1
- package/packages/knowledge-graph/package.json +1 -1
- package/packages/knowledge-retrieval/package.json +1 -1
- package/packages/laravel-plugin/package.json +1 -1
- package/packages/learning-engine/package.json +1 -1
- package/packages/logging/package.json +1 -1
- package/packages/mcp-adapter/package.json +1 -1
- package/packages/memory-engine/package.json +1 -1
- package/packages/milestone-manager/package.json +1 -1
- package/packages/model-registry/package.json +1 -1
- package/packages/nextjs-plugin/package.json +1 -1
- package/packages/notification/package.json +1 -1
- package/packages/observability/package.json +1 -1
- package/packages/okf-indexer/package.json +1 -1
- package/packages/paperclip-integration/package.json +1 -1
- package/packages/performance-optimizer/package.json +1 -1
- package/packages/permission-mode/package.json +1 -1
- package/packages/privilege-broker/package.json +1 -1
- package/packages/project-analyzer/package.json +1 -1
- package/packages/project-bootstrap/package.json +1 -1
- package/packages/projection-engine/package.json +1 -1
- package/packages/prompt-compiler/package.json +1 -1
- package/packages/prompt-versioning/package.json +1 -1
- package/packages/provider-adapter-sdk/package.json +1 -1
- package/packages/provider-router/package.json +1 -1
- package/packages/provider-selector/package.json +1 -1
- package/packages/providers/package.json +1 -1
- package/packages/qdrant-skills/dist/client.d.ts.map +1 -1
- package/packages/qdrant-skills/dist/client.js +21 -8
- package/packages/qdrant-skills/dist/client.js.map +1 -1
- package/packages/qdrant-skills/dist/embedder.d.ts +37 -0
- package/packages/qdrant-skills/dist/embedder.d.ts.map +1 -1
- package/packages/qdrant-skills/dist/embedder.js +65 -1
- package/packages/qdrant-skills/dist/embedder.js.map +1 -1
- package/packages/qdrant-skills/dist/index.d.ts +1 -1
- package/packages/qdrant-skills/dist/index.d.ts.map +1 -1
- package/packages/qdrant-skills/dist/index.js +1 -1
- package/packages/qdrant-skills/dist/index.js.map +1 -1
- package/packages/qdrant-skills/package.json +1 -1
- package/packages/qdrant-skills/src/client.ts +19 -8
- package/packages/qdrant-skills/src/embedder.ts +103 -1
- package/packages/qdrant-skills/src/index.ts +5 -0
- package/packages/qdrant-skills/test/collection-info.test.ts +129 -0
- package/packages/qdrant-skills/test/embedder-batch.test.ts +184 -0
- package/packages/quota-manager/package.json +1 -1
- package/packages/rate-limiter/package.json +1 -1
- package/packages/react-vite-plugin/package.json +1 -1
- package/packages/relay/package.json +1 -1
- package/packages/release-manager/package.json +1 -1
- package/packages/requirement-compiler/package.json +1 -1
- package/packages/runtime/package.json +1 -1
- package/packages/scheduler/package.json +1 -1
- package/packages/scheduler-adapter/package.json +1 -1
- package/packages/session/package.json +1 -1
- package/packages/session-api/package.json +1 -1
- package/packages/session-export/package.json +1 -1
- package/packages/shared-context/package.json +1 -1
- package/packages/skill-mcp-client/package.json +1 -1
- package/packages/skill-registry/package.json +1 -1
- package/packages/skills/dist/index.d.ts +19 -1
- package/packages/skills/dist/index.d.ts.map +1 -1
- package/packages/skills/dist/index.js +7 -2
- package/packages/skills/dist/index.js.map +1 -1
- package/packages/skills/dist/loader.d.ts +273 -3
- package/packages/skills/dist/loader.d.ts.map +1 -1
- package/packages/skills/dist/loader.js +525 -36
- package/packages/skills/dist/loader.js.map +1 -1
- package/packages/skills/dist/remote-source.d.ts +107 -0
- package/packages/skills/dist/remote-source.d.ts.map +1 -0
- package/packages/skills/dist/remote-source.js +79 -0
- package/packages/skills/dist/remote-source.js.map +1 -0
- package/packages/skills/dist/vector-schema.d.ts +58 -0
- package/packages/skills/dist/vector-schema.d.ts.map +1 -0
- package/packages/skills/dist/vector-schema.js +55 -0
- package/packages/skills/dist/vector-schema.js.map +1 -0
- package/packages/skills/package.json +1 -1
- package/packages/skills/src/index.ts +28 -5
- package/packages/skills/src/loader.ts +688 -53
- package/packages/skills/src/remote-source.ts +148 -0
- package/packages/skills/src/vector-schema.ts +72 -0
- package/packages/skills/test/init-skills.test.ts +107 -111
- package/packages/skills/test/remote-skills.test.ts +242 -0
- package/packages/skills/test/remote-source.test.ts +248 -0
- package/packages/skills/test/vector-indexing.test.ts +205 -0
- package/packages/sprint-planner/package.json +1 -1
- package/packages/subscription-engine/package.json +1 -1
- package/packages/task-compiler/package.json +1 -1
- package/packages/telegram/package.json +1 -1
- package/packages/tencentdb-memory/package.json +1 -1
- package/packages/tencentdb-sync/package.json +1 -1
- package/packages/test-data-generator/package.json +1 -1
- package/packages/test-generator/package.json +1 -1
- package/packages/todo-bd-sync/package.json +1 -1
- package/packages/token-estimation/package.json +1 -1
- package/packages/token-optimizer/package.json +1 -1
- package/packages/tooling-preference/package.json +1 -1
- package/packages/trajectory/package.json +1 -1
- package/packages/tui/package.json +1 -1
- package/packages/two-phase-review/package.json +1 -1
- package/packages/types/package.json +1 -1
- package/packages/voice-api/package.json +1 -1
- package/packages/webmcp-tester/package.json +1 -1
- package/packages/wiki/package.json +1 -1
- package/packages/workflow-events/package.json +1 -1
- package/packages/workspace-scanner/package.json +1 -1
- package/packages/workspace-scanner/test/scanner.test.ts +4 -3
- package/packages/worktree/package.json +1 -1
- package/packages/write-review/package.json +1 -1
- package/scripts/sync-to-qdrant.ts +79 -14
- package/packages/autonomous-runtime/test/autonomous-runtime.test.ts +0 -194
- package/packages/autonomous-runtime/test/inbox.test.ts +0 -80
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAE5B,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAe,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAE5B,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAe,MAAM,YAAY,CAAC;AAExE,OAAO,EAA0B,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAEzE;;;;;;GAMG;AACH,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,kDAAkD;IAClD,QAAQ,EAAE,aAAa,CAAC;CACzB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,MAAM,CAAC,EAAE,OAAO,CACd,YAAY,GAAG;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B,CACF,GACA,gBAAgB,CAuBlB;AAkCD;;GAEG;AACH,wBAAgB,gBAAgB;;;;;;;;;EAyB/B;AAGD,eAAO,MAAM,oBAAoB,EAAE,YAYlC,CAAC"}
|
|
@@ -12,6 +12,8 @@ export * from "./types.js";
|
|
|
12
12
|
export * from "./parser.js";
|
|
13
13
|
export * from "./scanner.js";
|
|
14
14
|
export * from "./loader.js";
|
|
15
|
+
export * from "./vector-schema.js";
|
|
16
|
+
export * from "./remote-source.js";
|
|
15
17
|
export * from "./skill-commands.js";
|
|
16
18
|
export * from "./skill-tool.js";
|
|
17
19
|
export * from "./skill-versioning.js";
|
|
@@ -20,9 +22,12 @@ import { scanForSkillsSync } from "./scanner.js";
|
|
|
20
22
|
import { getGlobalSkillRegistry } from "./loader.js";
|
|
21
23
|
/**
|
|
22
24
|
* Initialize skills system
|
|
25
|
+
*
|
|
26
|
+
* A caller (a test) can pass its own registry, so the initialization does
|
|
27
|
+
* not have to touch the global one.
|
|
23
28
|
*/
|
|
24
29
|
export function initSkills(config) {
|
|
25
|
-
const registry = getGlobalSkillRegistry();
|
|
30
|
+
const registry = config?.registry ?? getGlobalSkillRegistry();
|
|
26
31
|
// Scan for skills
|
|
27
32
|
const scanOptions = {};
|
|
28
33
|
// Only set directories if explicitly provided, otherwise use defaults
|
|
@@ -40,7 +45,7 @@ export function initSkills(config) {
|
|
|
40
45
|
}
|
|
41
46
|
// Hint: if ~/.pi-harness-runtime/skills/ is empty, suggest the sync script
|
|
42
47
|
checkEmptySkillsDir();
|
|
43
|
-
return result;
|
|
48
|
+
return { ...result, registry };
|
|
44
49
|
}
|
|
45
50
|
/** Show sync hint if the harness skills dir is empty. */
|
|
46
51
|
function checkEmptySkillsDir() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,wBAAwB;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAG5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,sBAAsB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,134 @@
|
|
|
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
|
+
import { type RemoteSkillSource, type RemoteSkillStats } from "./remote-source.js";
|
|
9
|
+
export interface QdrantSkillPoint {
|
|
10
|
+
id: number;
|
|
11
|
+
name: string;
|
|
12
|
+
description: string;
|
|
13
|
+
body: string;
|
|
14
|
+
text: string;
|
|
15
|
+
}
|
|
16
|
+
export interface QdrantClientLike {
|
|
17
|
+
upsert(collection: string, opts: {
|
|
18
|
+
wait?: boolean;
|
|
19
|
+
points: unknown[];
|
|
20
|
+
}): Promise<void>;
|
|
21
|
+
query(collection: string, opts: {
|
|
22
|
+
query?: {
|
|
23
|
+
text?: string;
|
|
24
|
+
model?: string;
|
|
25
|
+
};
|
|
26
|
+
limit?: number;
|
|
27
|
+
with_payload?: boolean;
|
|
28
|
+
filter?: Record<string, unknown>;
|
|
29
|
+
}): Promise<unknown>;
|
|
30
|
+
/** Read the description of a collection. Optional. */
|
|
31
|
+
getCollection?(name: string): Promise<unknown>;
|
|
32
|
+
}
|
|
33
|
+
export interface QdrantEmbedderLike {
|
|
34
|
+
createEmbedding(text: string, apiKey?: string): Promise<{
|
|
35
|
+
embedding: number[];
|
|
36
|
+
tokens: number;
|
|
37
|
+
}>;
|
|
38
|
+
/** One request for many texts. Absent in an older package build. */
|
|
39
|
+
createEmbeddingsBatch?: (texts: string[], apiKey?: string) => Promise<{
|
|
40
|
+
embeddings: number[][];
|
|
41
|
+
tokens: number;
|
|
42
|
+
}>;
|
|
43
|
+
}
|
|
44
|
+
/** What the vector store is in this run. */
|
|
45
|
+
export type QdrantSkillState =
|
|
46
|
+
/** No Qdrant credentials on this machine. */
|
|
47
|
+
"not-configured"
|
|
48
|
+
/** The cluster is configured but cannot be reached. */
|
|
49
|
+
| "unavailable"
|
|
50
|
+
/** The cluster is reachable but the collection does not exist yet. */
|
|
51
|
+
| "missing"
|
|
52
|
+
/** The collection exists but holds no skill. */
|
|
53
|
+
| "empty"
|
|
54
|
+
/** The collection holds skills. */
|
|
55
|
+
| "populated";
|
|
56
|
+
/** The state of the skill vector store. */
|
|
57
|
+
export interface QdrantSkillStats {
|
|
58
|
+
/** What the vector store is in this run. */
|
|
59
|
+
state: QdrantSkillState;
|
|
60
|
+
/** The number of skill vectors in the collection. */
|
|
61
|
+
count: number;
|
|
62
|
+
/** The collection the numbers belong to. */
|
|
63
|
+
collection?: string;
|
|
64
|
+
/** The vector size the collection was created with. */
|
|
65
|
+
dimensions?: number;
|
|
66
|
+
/** The distance the collection was created with. */
|
|
67
|
+
distance?: string;
|
|
68
|
+
/** Why the collection could not be read. Never a credential. */
|
|
69
|
+
error?: string;
|
|
70
|
+
/**
|
|
71
|
+
* The collection does not match the schema of the runtime.
|
|
72
|
+
*
|
|
73
|
+
* The message names the real cause, so a user whose vector search finds
|
|
74
|
+
* nothing does not have to guess why.
|
|
75
|
+
*/
|
|
76
|
+
schemaMismatch?: string;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* A point of the vector index: the vector and the payload of one skill.
|
|
80
|
+
*/
|
|
81
|
+
export interface SkillVectorPoint {
|
|
82
|
+
id: number;
|
|
83
|
+
vector: number[];
|
|
84
|
+
payload: QdrantSkillPoint;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* The vector index of a registry.
|
|
88
|
+
*
|
|
89
|
+
* The index is an interface so a caller can supply its own implementation
|
|
90
|
+
* (a test uses a counting double) and so the registry never has to know
|
|
91
|
+
* whether the index lives in Qdrant.
|
|
92
|
+
*/
|
|
93
|
+
export interface SkillVectorIndexer {
|
|
94
|
+
/** One vector per text, in the order of the texts. */
|
|
95
|
+
embed(texts: string[]): Promise<number[][]>;
|
|
96
|
+
/** Store the points of the given skills. */
|
|
97
|
+
upsert(points: SkillVectorPoint[]): Promise<void>;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* The options of a skill registry.
|
|
101
|
+
*/
|
|
102
|
+
export interface SkillRegistryOptions {
|
|
103
|
+
/**
|
|
104
|
+
* The vector index.
|
|
105
|
+
*
|
|
106
|
+
* `undefined` (the default) indexes into the configured Qdrant cluster.
|
|
107
|
+
* `null` disables the vector index entirely. An object is used as the index.
|
|
108
|
+
*/
|
|
109
|
+
indexer?: SkillVectorIndexer | null;
|
|
110
|
+
/**
|
|
111
|
+
* How many skills one indexing request carries. A larger batch costs fewer
|
|
112
|
+
* requests but holds more of them in memory.
|
|
113
|
+
*/
|
|
114
|
+
batchSize?: number;
|
|
115
|
+
/**
|
|
116
|
+
* The Qdrant client.
|
|
117
|
+
*
|
|
118
|
+
* `undefined` (the default) connects to the configured cluster. An object
|
|
119
|
+
* is used as the client - a test uses a double, so the search path can be
|
|
120
|
+
* exercised without a network.
|
|
121
|
+
*/
|
|
122
|
+
qdrantClient?: QdrantClientLike;
|
|
123
|
+
/**
|
|
124
|
+
* The embedder that turns a query into a vector.
|
|
125
|
+
*
|
|
126
|
+
* Only used together with an injected client.
|
|
127
|
+
*/
|
|
128
|
+
embedder?: QdrantEmbedderLike;
|
|
129
|
+
/**
|
|
130
|
+
* The collection of the injected client.
|
|
131
|
+
*
|
|
132
|
+
* Only used together with an injected client.
|
|
133
|
+
*/
|
|
134
|
+
collection?: string;
|
|
135
|
+
}
|
|
8
136
|
/**
|
|
9
137
|
* Get Qdrant config from env or keys files.
|
|
10
138
|
* Returns null if not configured.
|
|
@@ -19,15 +147,50 @@ export declare function getQdrantConfig(): {
|
|
|
19
147
|
*/
|
|
20
148
|
export declare class SkillRegistry {
|
|
21
149
|
private skills;
|
|
150
|
+
/** The options of the registry. */
|
|
151
|
+
private _options;
|
|
152
|
+
/**
|
|
153
|
+
* The skills that only exist in the vector store.
|
|
154
|
+
*
|
|
155
|
+
* They are kept apart from the local skills on purpose: `list()` must
|
|
156
|
+
* report the LOCAL skills, so a client can say how many skills it has on
|
|
157
|
+
* disk and how many it can reach through the vector store.
|
|
158
|
+
*/
|
|
159
|
+
private remoteSkills;
|
|
160
|
+
/**
|
|
161
|
+
* The remote skills whose content is COMPLETE.
|
|
162
|
+
*
|
|
163
|
+
* A skill that only carries the truncated body of a vector store payload
|
|
164
|
+
* is not in this set - it is completed on the first load.
|
|
165
|
+
*/
|
|
166
|
+
private _completeRemote;
|
|
167
|
+
/**
|
|
168
|
+
* The service that holds the server-side skills.
|
|
169
|
+
*
|
|
170
|
+
* `undefined` means "no service is configured".
|
|
171
|
+
*/
|
|
172
|
+
private _remoteSource;
|
|
22
173
|
private index;
|
|
23
174
|
private loading;
|
|
175
|
+
private _indexer;
|
|
176
|
+
private _batchSize;
|
|
177
|
+
private _indexQueue;
|
|
178
|
+
private _indexFlushRunning;
|
|
179
|
+
private _indexFlushScheduled;
|
|
180
|
+
private _indexedHashes;
|
|
24
181
|
private _qdrant;
|
|
25
182
|
private _qdrantInitPromise;
|
|
26
183
|
private _qdrantInitFailed;
|
|
184
|
+
private _qdrantIndexer;
|
|
185
|
+
constructor(options?: SkillRegistryOptions);
|
|
27
186
|
/**
|
|
28
187
|
* Check if Qdrant initialization has failed (useful for diagnostics).
|
|
29
188
|
*/
|
|
30
189
|
isQdrantFailed(): boolean;
|
|
190
|
+
/**
|
|
191
|
+
* Whether skills are still queued for the vector index.
|
|
192
|
+
*/
|
|
193
|
+
isIndexing(): boolean;
|
|
31
194
|
/**
|
|
32
195
|
* Initialize Qdrant client if configured.
|
|
33
196
|
* Uses a shared init promise to prevent race conditions when multiple
|
|
@@ -36,9 +199,63 @@ export declare class SkillRegistry {
|
|
|
36
199
|
private _ensureQdrant;
|
|
37
200
|
private _doQdrantInit;
|
|
38
201
|
/**
|
|
39
|
-
*
|
|
202
|
+
* The schema the runtime expects of the skill collection.
|
|
203
|
+
*
|
|
204
|
+
* The installed Qdrant package knows the size of its own model; an older
|
|
205
|
+
* build does not, and the fallback is used then.
|
|
206
|
+
*/
|
|
207
|
+
private _expectedVectorSchema;
|
|
208
|
+
/**
|
|
209
|
+
* The state of the skill vector store.
|
|
210
|
+
*
|
|
211
|
+
* The numbers are what the startup summary shows next to the local skill
|
|
212
|
+
* count, and the state says WHY there is no number: no credentials, an
|
|
213
|
+
* unreachable cluster, a collection that does not exist yet.
|
|
214
|
+
*
|
|
215
|
+
* The collection schema is checked here as well: a collection built with a
|
|
216
|
+
* different embedding model holds vectors the runtime cannot search with,
|
|
217
|
+
* and the reason has to be named - otherwise the vector search simply
|
|
218
|
+
* finds nothing.
|
|
219
|
+
*/
|
|
220
|
+
getQdrantStats(): Promise<QdrantSkillStats>;
|
|
221
|
+
/** The point of a skill in the vector index. */
|
|
222
|
+
private _toQdrantPoint;
|
|
223
|
+
/**
|
|
224
|
+
* The indexer of the registry: the injected one, or the Qdrant cluster.
|
|
225
|
+
*/
|
|
226
|
+
private _getIndexer;
|
|
227
|
+
/**
|
|
228
|
+
* The Qdrant cluster as an indexer.
|
|
229
|
+
*
|
|
230
|
+
* The batch call of the embeddings endpoint carries many texts in one
|
|
231
|
+
* request. One request per skill exhausted the sockets of the process when
|
|
232
|
+
* a registry held hundreds of skills, and every other request of the
|
|
233
|
+
* program then starved.
|
|
234
|
+
*/
|
|
235
|
+
private _createQdrantIndexer;
|
|
236
|
+
/**
|
|
237
|
+
* Queue a skill for the vector index.
|
|
238
|
+
*
|
|
239
|
+
* A skill whose text did not change is not queued again: the registry is
|
|
240
|
+
* filled on every scan, and re-embedding the same skill would pay for the
|
|
241
|
+
* same vector over and over.
|
|
242
|
+
*/
|
|
243
|
+
private _scheduleIndex;
|
|
244
|
+
/**
|
|
245
|
+
* Start the index flush, a microtask from now.
|
|
246
|
+
*
|
|
247
|
+
* A scan registers every skill in one go. Waiting for the microtask lets
|
|
248
|
+
* that burst share one request instead of starting one request per skill.
|
|
249
|
+
*/
|
|
250
|
+
private _scheduleIndexFlush;
|
|
251
|
+
/**
|
|
252
|
+
* Index the queued skills, one batch at a time.
|
|
253
|
+
*
|
|
254
|
+
* Only one batch is in flight, so the number of open connections stays
|
|
255
|
+
* bound no matter how many skills the registry holds.
|
|
40
256
|
*/
|
|
41
|
-
private
|
|
257
|
+
private _runIndexFlush;
|
|
258
|
+
private _flushIndexQueue;
|
|
42
259
|
/** Simple deterministic ID for Qdrant (no bigints needed). */
|
|
43
260
|
private _hashId;
|
|
44
261
|
/**
|
|
@@ -53,6 +270,46 @@ export declare class SkillRegistry {
|
|
|
53
270
|
* Get a skill by ID
|
|
54
271
|
*/
|
|
55
272
|
get(skillId: string): Skill | undefined;
|
|
273
|
+
/**
|
|
274
|
+
* The skills that only exist in the vector store.
|
|
275
|
+
*
|
|
276
|
+
* They are not part of `list()`: the local count must stay local.
|
|
277
|
+
*/
|
|
278
|
+
listRemote(): Skill[];
|
|
279
|
+
/**
|
|
280
|
+
* The service that holds the server-side skills.
|
|
281
|
+
*
|
|
282
|
+
* `undefined` means "no service is configured". Setting a source clears
|
|
283
|
+
* the cached remote skills: a new service is a new authority, so the old
|
|
284
|
+
* content must not survive it.
|
|
285
|
+
*/
|
|
286
|
+
setRemoteSource(source: RemoteSkillSource | undefined): void;
|
|
287
|
+
/**
|
|
288
|
+
* Ask the service for the skills it holds.
|
|
289
|
+
*
|
|
290
|
+
* A skill whose version changed is replaced by the new one. A record
|
|
291
|
+
* without a version never replaces a cached skill - an unknown version is
|
|
292
|
+
* not evidence of a change.
|
|
293
|
+
*/
|
|
294
|
+
refreshRemoteSkills(options?: {
|
|
295
|
+
search?: string;
|
|
296
|
+
limit?: number;
|
|
297
|
+
}): Promise<RemoteSkillStats>;
|
|
298
|
+
/**
|
|
299
|
+
* The state of the service that holds the server-side skills.
|
|
300
|
+
*
|
|
301
|
+
* The states stay apart: a refused call is not an unreachable service and
|
|
302
|
+
* not an empty service.
|
|
303
|
+
*/
|
|
304
|
+
getRemoteStats(): Promise<RemoteSkillStats>;
|
|
305
|
+
/**
|
|
306
|
+
* The state a failed call stands for.
|
|
307
|
+
*
|
|
308
|
+
* A refusal of the service is "denied" - the service answered, it just
|
|
309
|
+
* did not allow this call. Everything else is a service that could not be
|
|
310
|
+
* reached.
|
|
311
|
+
*/
|
|
312
|
+
private _remoteFailureState;
|
|
56
313
|
/**
|
|
57
314
|
* List all registered skills
|
|
58
315
|
*/
|
|
@@ -69,10 +326,22 @@ export declare class SkillRegistry {
|
|
|
69
326
|
* Find best matching skill for a query
|
|
70
327
|
*/
|
|
71
328
|
findBestMatch(query: string, options?: MatchOptions): MatchResult | null;
|
|
329
|
+
/**
|
|
330
|
+
* A skill that only exists in the vector store.
|
|
331
|
+
*
|
|
332
|
+
* The payload carries the name, the description and the body - enough to
|
|
333
|
+
* USE the skill on a machine that has no local copy of it.
|
|
334
|
+
*/
|
|
335
|
+
private static skillFromPayload;
|
|
72
336
|
/**
|
|
73
337
|
* Search skills by semantic similarity using Qdrant.
|
|
74
338
|
* Falls back to an empty result if Qdrant is not available.
|
|
75
339
|
*
|
|
340
|
+
* A hit that belongs to no local skill is a SERVER skill: it is returned
|
|
341
|
+
* with its payload instead of being dropped. Dropping it would make a
|
|
342
|
+
* shared skill invisible on every machine that has no local copy of it -
|
|
343
|
+
* which is exactly the case the vector store exists for.
|
|
344
|
+
*
|
|
76
345
|
* @param query Natural-language query
|
|
77
346
|
* @param limit Max results (default 5)
|
|
78
347
|
* @param threshold Minimum cosine score (default 0.5)
|
|
@@ -80,6 +349,7 @@ export declare class SkillRegistry {
|
|
|
80
349
|
findVector(query: string, limit?: number, threshold?: number): Promise<Array<{
|
|
81
350
|
skill: Skill;
|
|
82
351
|
score: number;
|
|
352
|
+
source: "local" | "remote";
|
|
83
353
|
}>>;
|
|
84
354
|
/**
|
|
85
355
|
* Sync all registered skills to Qdrant.
|
|
@@ -116,7 +386,7 @@ export declare class SkillRegistry {
|
|
|
116
386
|
/**
|
|
117
387
|
* Create a new skill registry
|
|
118
388
|
*/
|
|
119
|
-
export declare function createSkillRegistry(): SkillRegistry;
|
|
389
|
+
export declare function createSkillRegistry(options?: SkillRegistryOptions): SkillRegistry;
|
|
120
390
|
export declare function getGlobalSkillRegistry(): SkillRegistry;
|
|
121
391
|
export declare function setGlobalSkillRegistry(registry: SkillRegistry): void;
|
|
122
392
|
//# 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,
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
|