pi-harness-runtime 1.1.329 → 1.1.331
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/wiki-integration.ts +216 -25
- package/index.ts +8 -2
- 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/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/context-compiler/package.json +1 -1
- package/packages/context-discovery/package.json +1 -1
- package/packages/context-manager/package.json +1 -1
- package/packages/cookie-sanitizer/package.json +1 -1
- package/packages/cost-optimizer/package.json +1 -1
- package/packages/dependency-analyzer/package.json +1 -1
- 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/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-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/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/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/package.json +1 -1
- 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/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/package.json +1 -1
- 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/trajectory/package.json +1 -1
- package/packages/tui/package.json +1 -1
- package/packages/types/package.json +1 -1
- package/packages/webmcp-tester/package.json +1 -1
- package/packages/wiki/dist/index.d.ts +14 -0
- package/packages/wiki/dist/index.d.ts.map +1 -1
- package/packages/wiki/dist/index.js +55 -0
- package/packages/wiki/dist/index.js.map +1 -1
- package/packages/wiki/dist/storage.d.ts +5 -1
- package/packages/wiki/dist/storage.d.ts.map +1 -1
- package/packages/wiki/dist/storage.js +50 -15
- package/packages/wiki/dist/storage.js.map +1 -1
- package/packages/wiki/package.json +1 -1
- package/packages/wiki/src/index.ts +68 -0
- package/packages/wiki/src/storage.ts +49 -16
- package/packages/workflow-events/package.json +1 -1
- package/packages/workspace-scanner/package.json +1 -1
- package/packages/worktree/package.json +1 -1
- package/packages/write-review/package.json +1 -1
|
@@ -1,10 +1,50 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Wiki Integration for Pi
|
|
3
3
|
*
|
|
4
|
-
* Implements wiki commands per wiki/llm-wiki-integration-minimax-plan.md
|
|
4
|
+
* Implements wiki commands and tools per wiki/llm-wiki-integration-minimax-plan.md
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
7
|
+
import type { ExtensionAPI, ExtensionContext } from "@earendil-works/pi-coding-agent";
|
|
8
|
+
import { Type } from "typebox";
|
|
9
|
+
import { realpathSync } from "node:fs";
|
|
10
|
+
import path from "node:path";
|
|
11
|
+
|
|
12
|
+
// Cache managers by workspace root to avoid recreating
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
14
|
+
const wikiManagers = new Map<string, any>();
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Get or create wiki manager for a workspace
|
|
18
|
+
*/
|
|
19
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
20
|
+
function getWiki(workspaceRoot: string): any {
|
|
21
|
+
let manager = wikiManagers.get(workspaceRoot);
|
|
22
|
+
if (!manager) {
|
|
23
|
+
const { createWikiManager } = require("../packages/wiki/dist/index.js");
|
|
24
|
+
const projectId = path.basename(workspaceRoot) || "unknown";
|
|
25
|
+
manager = createWikiManager(workspaceRoot, projectId);
|
|
26
|
+
wikiManagers.set(workspaceRoot, manager);
|
|
27
|
+
}
|
|
28
|
+
return manager;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Get current workspace from Pi context
|
|
33
|
+
*/
|
|
34
|
+
function getCurrentWorkspace(ctx?: ExtensionContext): string {
|
|
35
|
+
if (ctx?.cwd) {
|
|
36
|
+
try {
|
|
37
|
+
return realpathSync(ctx.cwd);
|
|
38
|
+
} catch {
|
|
39
|
+
return ctx.cwd;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
try {
|
|
43
|
+
return realpathSync(process.cwd());
|
|
44
|
+
} catch {
|
|
45
|
+
return process.cwd();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
8
48
|
|
|
9
49
|
/**
|
|
10
50
|
* Initialize wiki integration
|
|
@@ -16,33 +56,181 @@ export async function initWiki(pi: ExtensionAPI): Promise<void> {
|
|
|
16
56
|
}
|
|
17
57
|
|
|
18
58
|
try {
|
|
19
|
-
const {
|
|
20
|
-
"../packages/wiki/dist/index.js"
|
|
21
|
-
);
|
|
59
|
+
const { isWikiEnabled } = await import("../packages/wiki/dist/index.js");
|
|
22
60
|
|
|
23
|
-
//
|
|
24
|
-
|
|
61
|
+
// ========================================================================
|
|
62
|
+
// Register Tools (for LLM use)
|
|
63
|
+
// ========================================================================
|
|
25
64
|
|
|
26
|
-
//
|
|
27
|
-
|
|
65
|
+
// Tool: wiki_search - Search pages by query
|
|
66
|
+
pi.registerTool({
|
|
67
|
+
name: "wiki_search",
|
|
68
|
+
label: "Wiki Search",
|
|
69
|
+
description: "Search wiki pages by query. Returns page titles, IDs, status, and snippets.",
|
|
70
|
+
parameters: Type.Object({
|
|
71
|
+
query: Type.String({ description: "Search query" }),
|
|
72
|
+
limit: Type.Optional(Type.Number({ description: "Max results (default 5)", default: 5 })),
|
|
73
|
+
}),
|
|
74
|
+
async execute(_toolCallId, params, _signal, _onUpdate, ctx) {
|
|
75
|
+
if (!isWikiEnabled()) {
|
|
76
|
+
return { content: [{ type: "text", text: "Wiki feature is disabled." }], details: {} };
|
|
77
|
+
}
|
|
78
|
+
try {
|
|
79
|
+
const wiki = getWiki(getCurrentWorkspace(ctx));
|
|
80
|
+
const results = wiki.search(params.query, undefined, params.limit ?? 5);
|
|
81
|
+
if (results.length === 0) {
|
|
82
|
+
return { content: [{ type: "text", text: "No results found." }], details: {} };
|
|
83
|
+
}
|
|
84
|
+
const lines = results.map((r: { page: { status: string; title: string; kind: string; id: string } }) =>
|
|
85
|
+
`[${r.page.status}] ${r.page.title} (${r.page.kind}): ${r.page.id}`
|
|
86
|
+
);
|
|
87
|
+
return { content: [{ type: "text", text: `Found ${results.length} result(s):\n${lines.join("\n")}` }], details: {} };
|
|
88
|
+
} catch (err) {
|
|
89
|
+
return { content: [{ type: "text", text: `Search failed: ${err}` }], details: {} };
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
});
|
|
28
93
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
94
|
+
// Tool: wiki_read - Read a specific page
|
|
95
|
+
pi.registerTool({
|
|
96
|
+
name: "wiki_read",
|
|
97
|
+
label: "Wiki Read",
|
|
98
|
+
description: "Read a wiki page by ID. Returns frontmatter and body content.",
|
|
99
|
+
parameters: Type.Object({
|
|
100
|
+
pageId: Type.String({ description: "Page ID to read" }),
|
|
101
|
+
}),
|
|
102
|
+
async execute(_toolCallId, params, _signal, _onUpdate, ctx) {
|
|
103
|
+
if (!isWikiEnabled()) {
|
|
104
|
+
return { content: [{ type: "text", text: "Wiki feature is disabled." }], details: {} };
|
|
105
|
+
}
|
|
106
|
+
try {
|
|
107
|
+
const wiki = getWiki(getCurrentWorkspace(ctx));
|
|
108
|
+
const page = wiki.loadPage(params.pageId);
|
|
109
|
+
if (!page) {
|
|
110
|
+
return { content: [{ type: "text", text: `Page not found: ${params.pageId}` }], details: {} };
|
|
111
|
+
}
|
|
112
|
+
const lines = [
|
|
113
|
+
`# ${page.frontmatter.title}`,
|
|
114
|
+
`ID: ${page.frontmatter.id}`,
|
|
115
|
+
`Status: ${page.frontmatter.status}`,
|
|
116
|
+
`Kind: ${page.frontmatter.kind}`,
|
|
117
|
+
`Updated: ${page.frontmatter.updatedAt}`,
|
|
118
|
+
``,
|
|
119
|
+
`---`,
|
|
120
|
+
page.body,
|
|
121
|
+
];
|
|
122
|
+
return { content: [{ type: "text", text: lines.join("\n") }], details: {} };
|
|
123
|
+
} catch (err) {
|
|
124
|
+
return { content: [{ type: "text", text: `Read failed: ${err}` }], details: {} };
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
// Tool: wiki_ingest - Ingest a source file
|
|
130
|
+
pi.registerTool({
|
|
131
|
+
name: "wiki_ingest",
|
|
132
|
+
label: "Wiki Ingest",
|
|
133
|
+
description: "Ingest a source file into the wiki. Creates a snapshot and returns the snapshot ID.",
|
|
134
|
+
parameters: Type.Object({
|
|
135
|
+
sourcePath: Type.String({ description: "Path to source file to ingest" }),
|
|
136
|
+
}),
|
|
137
|
+
async execute(_toolCallId, params, _signal, _onUpdate, ctx) {
|
|
138
|
+
if (!isWikiEnabled()) {
|
|
139
|
+
return { content: [{ type: "text", text: "Wiki feature is disabled." }], details: {} };
|
|
140
|
+
}
|
|
141
|
+
try {
|
|
142
|
+
const wiki = getWiki(getCurrentWorkspace(ctx));
|
|
143
|
+
const { page, snapshot, existing } = wiki.ingestAndCreatePage(params.sourcePath);
|
|
144
|
+
if (existing) {
|
|
145
|
+
return { content: [{ type: "text", text: `Already ingested: ${snapshot.id}` }], details: {} };
|
|
146
|
+
}
|
|
147
|
+
return {
|
|
148
|
+
content: [{
|
|
149
|
+
type: "text",
|
|
150
|
+
text: `Ingested: ${snapshot.id}\nPage: ${page.frontmatter.id}\nTitle: ${page.frontmatter.title}\nPath: ${snapshot.originalPath}\nHash: ${snapshot.contentHash.slice(0, 16)}...`,
|
|
151
|
+
}],
|
|
152
|
+
details: { pageId: page.frontmatter.id },
|
|
153
|
+
};
|
|
154
|
+
} catch (err) {
|
|
155
|
+
return { content: [{ type: "text", text: `Ingest failed: ${err}` }], details: {} };
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
// Tool: wiki_lint - Run lint checks
|
|
161
|
+
pi.registerTool({
|
|
162
|
+
name: "wiki_lint",
|
|
163
|
+
label: "Wiki Lint",
|
|
164
|
+
description: "Run lint checks on the wiki. Returns structural and semantic issues.",
|
|
165
|
+
parameters: Type.Object({}),
|
|
166
|
+
async execute(_toolCallId, _params, _signal, _onUpdate, ctx) {
|
|
167
|
+
if (!isWikiEnabled()) {
|
|
168
|
+
return { content: [{ type: "text", text: "Wiki feature is disabled." }], details: {} };
|
|
169
|
+
}
|
|
170
|
+
try {
|
|
171
|
+
const wiki = getWiki(getCurrentWorkspace(ctx));
|
|
172
|
+
const findings = wiki.lint();
|
|
173
|
+
if (findings.length === 0) {
|
|
174
|
+
return { content: [{ type: "text", text: "No issues found." }], details: {} };
|
|
175
|
+
}
|
|
176
|
+
const lines = findings.slice(0, 20).map((f: { severity: string; category: string; message: string }) =>
|
|
177
|
+
`[${f.severity}] ${f.category}: ${f.message}`
|
|
178
|
+
);
|
|
179
|
+
return { content: [{ type: "text", text: `${findings.length} issue(s):\n${lines.join("\n")}` }], details: {} };
|
|
180
|
+
} catch (err) {
|
|
181
|
+
return { content: [{ type: "text", text: `Lint failed: ${err}` }], details: {} };
|
|
182
|
+
}
|
|
183
|
+
},
|
|
184
|
+
});
|
|
185
|
+
|
|
186
|
+
// Tool: wiki_status - Show wiki stats
|
|
187
|
+
pi.registerTool({
|
|
188
|
+
name: "wiki_status",
|
|
189
|
+
label: "Wiki Status",
|
|
190
|
+
description: "Show wiki statistics: page count, kinds, statuses.",
|
|
191
|
+
parameters: Type.Object({}),
|
|
192
|
+
async execute(_toolCallId, _params, _signal, _onUpdate, ctx) {
|
|
193
|
+
if (!isWikiEnabled()) {
|
|
194
|
+
return { content: [{ type: "text", text: "Wiki feature is disabled." }], details: {} };
|
|
195
|
+
}
|
|
196
|
+
try {
|
|
197
|
+
const wiki = getWiki(getCurrentWorkspace(ctx));
|
|
198
|
+
const pages = wiki.getAllPages();
|
|
199
|
+
const kinds: Record<string, number> = {};
|
|
200
|
+
const statuses: Record<string, number> = {};
|
|
201
|
+
for (const p of pages) {
|
|
202
|
+
kinds[p.frontmatter.kind] = (kinds[p.frontmatter.kind] || 0) + 1;
|
|
203
|
+
statuses[p.frontmatter.status] = (statuses[p.frontmatter.status] || 0) + 1;
|
|
204
|
+
}
|
|
205
|
+
return {
|
|
206
|
+
content: [{
|
|
207
|
+
type: "text",
|
|
208
|
+
text: `Wiki Status\nPages: ${pages.length}\nKinds: ${JSON.stringify(kinds)}\nStatuses: ${JSON.stringify(statuses)}`,
|
|
209
|
+
}],
|
|
210
|
+
details: {},
|
|
211
|
+
};
|
|
212
|
+
} catch (err) {
|
|
213
|
+
return { content: [{ type: "text", text: `Status failed: ${err}` }], details: {} };
|
|
214
|
+
}
|
|
215
|
+
},
|
|
216
|
+
});
|
|
217
|
+
|
|
218
|
+
// ========================================================================
|
|
219
|
+
// Register Command (for user use)
|
|
220
|
+
// ========================================================================
|
|
35
221
|
|
|
36
|
-
// Register /harness-wiki command
|
|
37
222
|
pi.registerCommand("harness-wiki", {
|
|
38
223
|
description: "Manage project wiki: search, read, ingest, lint",
|
|
39
|
-
handler: async (args: string,
|
|
224
|
+
handler: async (args: string, ctx: unknown) => {
|
|
40
225
|
if (!isWikiEnabled()) {
|
|
41
226
|
console.log("Wiki feature is disabled. Set HARNESS_KNOWLEDGE_WIKI=1 to enable.");
|
|
42
227
|
return;
|
|
43
228
|
}
|
|
44
229
|
|
|
45
|
-
|
|
230
|
+
// Get workspace from context
|
|
231
|
+
const extCtx = ctx as ExtensionContext | undefined;
|
|
232
|
+
const workspace = getCurrentWorkspace(extCtx);
|
|
233
|
+
const wiki = getWiki(workspace);
|
|
46
234
|
const parts = args.trim().split(/\s+/);
|
|
47
235
|
const subcommand = parts[0] || "help";
|
|
48
236
|
const subargs = parts.slice(1).join(" ");
|
|
@@ -110,11 +298,12 @@ export async function initWiki(pi: ExtensionAPI): Promise<void> {
|
|
|
110
298
|
return;
|
|
111
299
|
}
|
|
112
300
|
try {
|
|
113
|
-
const { snapshot, existing } = wiki.
|
|
301
|
+
const { page, snapshot, existing } = wiki.ingestAndCreatePage(subargs);
|
|
114
302
|
if (existing) {
|
|
115
303
|
console.log(`Already ingested: ${snapshot.id}`);
|
|
116
304
|
} else {
|
|
117
305
|
console.log(`Ingested: ${snapshot.id}`);
|
|
306
|
+
console.log(` Page: ${page.frontmatter.id} - ${page.frontmatter.title}`);
|
|
118
307
|
console.log(` Path: ${snapshot.originalPath}`);
|
|
119
308
|
console.log(` Hash: ${snapshot.contentHash.slice(0, 16)}...`);
|
|
120
309
|
}
|
|
@@ -129,8 +318,8 @@ export async function initWiki(pi: ExtensionAPI): Promise<void> {
|
|
|
129
318
|
if (findings.length === 0) {
|
|
130
319
|
console.log("No issues found.");
|
|
131
320
|
} else {
|
|
132
|
-
const errors = findings.filter((f) => f.severity === "error");
|
|
133
|
-
const warnings = findings.filter((f) => f.severity === "warning");
|
|
321
|
+
const errors = findings.filter((f: { severity: string }) => f.severity === "error");
|
|
322
|
+
const warnings = findings.filter((f: { severity: string }) => f.severity === "warning");
|
|
134
323
|
console.log(`${errors.length} error(s), ${warnings.length} warning(s):`);
|
|
135
324
|
for (const f of findings.slice(0, 10)) {
|
|
136
325
|
console.log(` [${f.severity}] ${f.category}: ${f.message}`);
|
|
@@ -189,10 +378,12 @@ export function getWikiInstruction(): string {
|
|
|
189
378
|
return `
|
|
190
379
|
## Project Wiki
|
|
191
380
|
|
|
192
|
-
Project knowledge is available via
|
|
193
|
-
-
|
|
194
|
-
-
|
|
195
|
-
-
|
|
381
|
+
Project knowledge is available via wiki tools:
|
|
382
|
+
- wiki_search: Search pages by query
|
|
383
|
+
- wiki_read: Read a page by ID
|
|
384
|
+
- wiki_ingest: Ingest a source file
|
|
385
|
+
- wiki_lint: Check for issues
|
|
386
|
+
- wiki_status: Show statistics
|
|
196
387
|
|
|
197
388
|
The wiki contains:
|
|
198
389
|
- Design decisions with rationale
|
package/index.ts
CHANGED
|
@@ -70,7 +70,7 @@ import {
|
|
|
70
70
|
createBlackboard,
|
|
71
71
|
} from "./harness/blackboard.ts";
|
|
72
72
|
import { scheduleAutoResume, cancelAutoResume, getGLMQuotaCountdown } from "./harness/index.js";
|
|
73
|
-
import { initWiki } from "./harness/wiki-integration.js";
|
|
73
|
+
import { initWiki, getWikiInstruction } from "./harness/wiki-integration.js";
|
|
74
74
|
import { startWatcher, classifyMessage, detectReviewMarker } from "./packages/codex-watcher/dist/src/index.js";
|
|
75
75
|
import {
|
|
76
76
|
getPaperclipConfig,
|
|
@@ -1770,7 +1770,13 @@ async function initMemory(pi: ExtensionAPI): Promise<void> {
|
|
|
1770
1770
|
}
|
|
1771
1771
|
|
|
1772
1772
|
// Combine all memory
|
|
1773
|
-
|
|
1773
|
+
let allMemory = parts.join("\n") + honchoContext;
|
|
1774
|
+
|
|
1775
|
+
// Add wiki instruction if feature is enabled
|
|
1776
|
+
const wikiInstruction = getWikiInstruction();
|
|
1777
|
+
if (wikiInstruction) {
|
|
1778
|
+
allMemory += wikiInstruction;
|
|
1779
|
+
}
|
|
1774
1780
|
|
|
1775
1781
|
if (!allMemory.trim()) {
|
|
1776
1782
|
logToFile("[memory]", "No memory to inject");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-harness/capability-registry",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.331",
|
|
4
4
|
"description": "Capability Registry for pi-harness-runtime — tracks model capabilities and enables capability-based routing",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|