pi-harness-runtime 1.1.95 → 1.1.97
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/CHANGELOG.md +33 -0
- package/harness/loop-runtime.ts +3 -0
- package/index.ts +130 -29
- package/package.json +2 -1
- package/packages/a2a-adapter/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/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/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/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/dist/client.d.ts +51 -0
- package/packages/qdrant-skills/dist/client.d.ts.map +1 -0
- package/packages/qdrant-skills/dist/client.js +105 -0
- package/packages/qdrant-skills/dist/client.js.map +1 -0
- package/packages/qdrant-skills/dist/embedder.d.ts +39 -0
- package/packages/qdrant-skills/dist/embedder.d.ts.map +1 -0
- package/packages/qdrant-skills/dist/embedder.js +101 -0
- package/packages/qdrant-skills/dist/embedder.js.map +1 -0
- package/packages/qdrant-skills/dist/index.d.ts +25 -0
- package/packages/qdrant-skills/dist/index.d.ts.map +1 -0
- package/packages/qdrant-skills/dist/index.js +25 -0
- package/packages/qdrant-skills/dist/index.js.map +1 -0
- package/packages/qdrant-skills/package.json +27 -0
- package/packages/qdrant-skills/src/client.ts +178 -0
- package/packages/qdrant-skills/src/embedder.ts +137 -0
- package/packages/qdrant-skills/src/index.ts +42 -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/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 +40 -0
- package/packages/skills/dist/index.d.ts.map +1 -0
- package/packages/skills/dist/index.js +84 -0
- package/packages/skills/dist/index.js.map +1 -0
- package/packages/skills/dist/linter.d.ts +38 -0
- package/packages/skills/dist/linter.d.ts.map +1 -0
- package/packages/skills/dist/linter.js +323 -0
- package/packages/skills/dist/linter.js.map +1 -0
- package/packages/skills/dist/loader.d.ts +74 -0
- package/packages/skills/dist/loader.d.ts.map +1 -0
- package/packages/skills/dist/loader.js +280 -0
- package/packages/skills/dist/loader.js.map +1 -0
- package/packages/skills/dist/parser.d.ts +32 -0
- package/packages/skills/dist/parser.d.ts.map +1 -0
- package/packages/skills/dist/parser.js +459 -0
- package/packages/skills/dist/parser.js.map +1 -0
- package/packages/skills/dist/scanner.d.ts +33 -0
- package/packages/skills/dist/scanner.d.ts.map +1 -0
- package/packages/skills/dist/scanner.js +257 -0
- package/packages/skills/dist/scanner.js.map +1 -0
- package/packages/skills/dist/skill-commands.d.ts +33 -0
- package/packages/skills/dist/skill-commands.d.ts.map +1 -0
- package/packages/skills/dist/skill-commands.js +239 -0
- package/packages/skills/dist/skill-commands.js.map +1 -0
- package/packages/skills/dist/skill-tool.d.ts +120 -0
- package/packages/skills/dist/skill-tool.d.ts.map +1 -0
- package/packages/skills/dist/skill-tool.js +239 -0
- package/packages/skills/dist/skill-tool.js.map +1 -0
- package/packages/skills/dist/skill-versioning.d.ts +123 -0
- package/packages/skills/dist/skill-versioning.d.ts.map +1 -0
- package/packages/skills/dist/skill-versioning.js +240 -0
- package/packages/skills/dist/skill-versioning.js.map +1 -0
- package/packages/skills/dist/types.d.ts +226 -0
- package/packages/skills/dist/types.d.ts.map +1 -0
- package/packages/skills/dist/types.js +21 -0
- package/packages/skills/dist/types.js.map +1 -0
- package/packages/skills/package.json +46 -0
- package/packages/skills/src/index.ts +95 -0
- package/packages/skills/src/linter.ts +371 -0
- package/packages/skills/src/loader.ts +335 -0
- package/packages/skills/src/parser.ts +548 -0
- package/packages/skills/src/scanner.ts +322 -0
- package/packages/skills/src/skill-commands.ts +318 -0
- package/packages/skills/src/skill-tool.ts +324 -0
- package/packages/skills/src/skill-versioning.ts +345 -0
- package/packages/skills/src/types.ts +259 -0
- package/packages/skills/test/init-skills.test.ts +118 -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/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/dist/src/curator.d.ts +189 -0
- package/packages/trajectory/dist/src/curator.d.ts.map +1 -0
- package/packages/trajectory/dist/src/curator.js +340 -0
- package/packages/trajectory/dist/src/curator.js.map +1 -0
- package/packages/trajectory/dist/src/journey-renderer.d.ts +53 -0
- package/packages/trajectory/dist/src/journey-renderer.d.ts.map +1 -0
- package/packages/trajectory/dist/src/journey-renderer.js +324 -0
- package/packages/trajectory/dist/src/journey-renderer.js.map +1 -0
- package/packages/trajectory/dist/src/learning-graph.d.ts +159 -0
- package/packages/trajectory/dist/src/learning-graph.d.ts.map +1 -0
- package/packages/trajectory/dist/src/learning-graph.js +258 -0
- package/packages/trajectory/dist/src/learning-graph.js.map +1 -0
- package/packages/trajectory/dist/src/memory-store.d.ts +146 -0
- package/packages/trajectory/dist/src/memory-store.d.ts.map +1 -0
- package/packages/trajectory/dist/src/memory-store.js +472 -0
- package/packages/trajectory/dist/src/memory-store.js.map +1 -0
- package/packages/trajectory/dist/src/review-fork.d.ts +164 -0
- package/packages/trajectory/dist/src/review-fork.d.ts.map +1 -0
- package/packages/trajectory/dist/src/review-fork.js +332 -0
- package/packages/trajectory/dist/src/review-fork.js.map +1 -0
- package/packages/trajectory/dist/src/write-approval.d.ts +136 -0
- package/packages/trajectory/dist/src/write-approval.d.ts.map +1 -0
- package/packages/trajectory/dist/src/write-approval.js +281 -0
- package/packages/trajectory/dist/src/write-approval.js.map +1 -0
- package/packages/trajectory/package.json +1 -1
- package/packages/trajectory/src/curator.ts +485 -0
- package/packages/trajectory/src/journey-renderer.ts +399 -0
- package/packages/trajectory/src/learning-graph.ts +363 -0
- package/packages/trajectory/src/memory-store.ts +578 -0
- package/packages/trajectory/src/review-fork.ts +450 -0
- package/packages/trajectory/src/write-approval.ts +372 -0
- package/packages/tui/package.json +1 -1
- package/packages/types/package.json +1 -1
- 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/dist/blackboard.d.ts +98 -0
- package/packages/write-review/dist/blackboard.d.ts.map +1 -0
- package/packages/write-review/dist/blackboard.js +289 -0
- package/packages/write-review/dist/blackboard.js.map +1 -0
- package/packages/write-review/dist/event-bus.d.ts +106 -0
- package/packages/write-review/dist/event-bus.d.ts.map +1 -0
- package/packages/write-review/dist/event-bus.js +294 -0
- package/packages/write-review/dist/event-bus.js.map +1 -0
- package/packages/write-review/dist/gate.d.ts +37 -0
- package/packages/write-review/dist/gate.d.ts.map +1 -0
- package/packages/write-review/dist/gate.js +138 -0
- package/packages/write-review/dist/gate.js.map +1 -0
- package/packages/write-review/dist/index.d.ts +22 -0
- package/packages/write-review/dist/index.d.ts.map +1 -0
- package/packages/write-review/dist/index.js +60 -0
- package/packages/write-review/dist/index.js.map +1 -0
- package/packages/write-review/dist/injection.d.ts +40 -0
- package/packages/write-review/dist/injection.d.ts.map +1 -0
- package/packages/write-review/dist/injection.js +179 -0
- package/packages/write-review/dist/injection.js.map +1 -0
- package/packages/write-review/dist/review.d.ts +54 -0
- package/packages/write-review/dist/review.d.ts.map +1 -0
- package/packages/write-review/dist/review.js +154 -0
- package/packages/write-review/dist/review.js.map +1 -0
- package/packages/write-review/dist/trigger.d.ts +39 -0
- package/packages/write-review/dist/trigger.d.ts.map +1 -0
- package/packages/write-review/dist/trigger.js +107 -0
- package/packages/write-review/dist/trigger.js.map +1 -0
- package/packages/write-review/dist/types.d.ts +78 -0
- package/packages/write-review/dist/types.d.ts.map +1 -0
- package/packages/write-review/dist/types.js +26 -0
- package/packages/write-review/dist/types.js.map +1 -0
- package/packages/write-review/package.json +1 -1
- package/packages/write-review/src/event-bus.ts +351 -0
- package/packages/write-review/src/index.ts +1 -0
- package/packages/write-review/src/injection.ts +25 -3
- package/proactive-compact.ts +51 -7
- package/scripts/sync-skills.ts +275 -0
- package/scripts/sync-to-qdrant.ts +398 -0
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* pi-harness-runtime Skills System Types
|
|
3
|
+
*
|
|
4
|
+
* Based on:
|
|
5
|
+
* - pi.dev Agent Skills specification (https://pi.dev/docs/latest/skills)
|
|
6
|
+
* - Hermes Agent skill system
|
|
7
|
+
*/
|
|
8
|
+
export interface SkillFrontmatter {
|
|
9
|
+
/** Command and display name (kebab-case, max 64 chars) */
|
|
10
|
+
name: string;
|
|
11
|
+
/** Routing description shown to the model (max 1024 chars) */
|
|
12
|
+
description: string;
|
|
13
|
+
/** Skill version in semver format */
|
|
14
|
+
version?: string;
|
|
15
|
+
/** License name or bundled license file */
|
|
16
|
+
license?: string;
|
|
17
|
+
/** Environment requirements (e.g., "unix", "windows") */
|
|
18
|
+
compatibility?: string;
|
|
19
|
+
/** Additional key-value metadata */
|
|
20
|
+
metadata?: Record<string, unknown>;
|
|
21
|
+
/** Experimental pre-approved tool list */
|
|
22
|
+
allowed_tools?: string[];
|
|
23
|
+
/** Hide from automatic model selection */
|
|
24
|
+
disable_model_invocation?: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface HermesExtensions {
|
|
27
|
+
/** Who created: "agent" | "user" | "curator" */
|
|
28
|
+
author?: "agent" | "user" | "curator";
|
|
29
|
+
/** Confidence score (0.0 - 1.0) */
|
|
30
|
+
confidence?: number;
|
|
31
|
+
/** Number of times skill was used */
|
|
32
|
+
usage_count?: number;
|
|
33
|
+
/** ISO timestamp when created */
|
|
34
|
+
created_at?: string;
|
|
35
|
+
/** ISO timestamp when last updated */
|
|
36
|
+
updated_at?: string;
|
|
37
|
+
/** Patterns that trigger skill loading */
|
|
38
|
+
triggers?: string[];
|
|
39
|
+
/** Known pitfalls with explanations */
|
|
40
|
+
pitfalls?: SkillPitfall[];
|
|
41
|
+
/** Patterns to avoid */
|
|
42
|
+
anti_patterns?: string[];
|
|
43
|
+
/** Allow curator to auto-patch */
|
|
44
|
+
auto_update?: boolean;
|
|
45
|
+
}
|
|
46
|
+
export interface SkillPitfall {
|
|
47
|
+
name: string;
|
|
48
|
+
why: string;
|
|
49
|
+
affects?: string;
|
|
50
|
+
}
|
|
51
|
+
export interface SkillMetadata extends Partial<SkillFrontmatter>, Partial<HermesExtensions> {
|
|
52
|
+
}
|
|
53
|
+
export interface Skill {
|
|
54
|
+
/** Unique identifier (derived from directory name) */
|
|
55
|
+
id: string;
|
|
56
|
+
/** Full path to skill directory */
|
|
57
|
+
path: string;
|
|
58
|
+
/** Parsed frontmatter */
|
|
59
|
+
frontmatter: SkillFrontmatter;
|
|
60
|
+
/** Hermes extensions (merged into metadata) */
|
|
61
|
+
hermes?: HermesExtensions;
|
|
62
|
+
/** Raw body content after frontmatter */
|
|
63
|
+
body: string;
|
|
64
|
+
/** Supported reference files */
|
|
65
|
+
references: SkillReference[];
|
|
66
|
+
/** Example files */
|
|
67
|
+
examples: SkillExample[];
|
|
68
|
+
/** Full metadata (merged frontmatter + hermes) */
|
|
69
|
+
metadata: SkillMetadata;
|
|
70
|
+
/** Loading state */
|
|
71
|
+
loaded: boolean;
|
|
72
|
+
/** Last used timestamp */
|
|
73
|
+
lastUsed?: number;
|
|
74
|
+
/** Lint results (if linted) */
|
|
75
|
+
lintResults?: LintResult[];
|
|
76
|
+
}
|
|
77
|
+
export interface SkillReference {
|
|
78
|
+
name: string;
|
|
79
|
+
path: string;
|
|
80
|
+
relativePath: string;
|
|
81
|
+
}
|
|
82
|
+
export interface SkillExample {
|
|
83
|
+
name: string;
|
|
84
|
+
path: string;
|
|
85
|
+
relativePath: string;
|
|
86
|
+
}
|
|
87
|
+
export interface SkillIndexEntry {
|
|
88
|
+
id: string;
|
|
89
|
+
name: string;
|
|
90
|
+
description: string;
|
|
91
|
+
path: string;
|
|
92
|
+
version?: string;
|
|
93
|
+
triggers?: string[];
|
|
94
|
+
loaded: boolean;
|
|
95
|
+
}
|
|
96
|
+
export interface SkillIndex {
|
|
97
|
+
entries: SkillIndexEntry[];
|
|
98
|
+
loadedAt: number;
|
|
99
|
+
}
|
|
100
|
+
export type LintSeverity = "error" | "warning" | "info";
|
|
101
|
+
export interface LintResult {
|
|
102
|
+
rule: string;
|
|
103
|
+
severity: LintSeverity;
|
|
104
|
+
message: string;
|
|
105
|
+
line?: number;
|
|
106
|
+
}
|
|
107
|
+
export interface LintRule {
|
|
108
|
+
name: string;
|
|
109
|
+
description: string;
|
|
110
|
+
severity: LintSeverity;
|
|
111
|
+
check: (skill: Skill) => LintResult | null;
|
|
112
|
+
}
|
|
113
|
+
export interface ScanOptions {
|
|
114
|
+
/** Directories to scan */
|
|
115
|
+
directories: string[];
|
|
116
|
+
/** Recursive scan depth (0 = unlimited) */
|
|
117
|
+
maxDepth?: number;
|
|
118
|
+
/** Include hidden directories */
|
|
119
|
+
includeHidden?: boolean;
|
|
120
|
+
/** File patterns to include */
|
|
121
|
+
includePatterns?: string[];
|
|
122
|
+
/** File patterns to exclude */
|
|
123
|
+
excludePatterns?: string[];
|
|
124
|
+
}
|
|
125
|
+
export interface ScanResult {
|
|
126
|
+
skills: Skill[];
|
|
127
|
+
errors: ScanError[];
|
|
128
|
+
scannedPaths: string[];
|
|
129
|
+
durationMs: number;
|
|
130
|
+
}
|
|
131
|
+
export interface ScanError {
|
|
132
|
+
path: string;
|
|
133
|
+
error: string;
|
|
134
|
+
}
|
|
135
|
+
export interface MatchOptions {
|
|
136
|
+
/** Match threshold (0.0 - 1.0) */
|
|
137
|
+
threshold?: number;
|
|
138
|
+
/** Include disabled skills */
|
|
139
|
+
includeDisabled?: boolean;
|
|
140
|
+
/** Sort by score or usage */
|
|
141
|
+
sortBy?: "score" | "usage" | "name";
|
|
142
|
+
}
|
|
143
|
+
export interface MatchResult {
|
|
144
|
+
skill: Skill;
|
|
145
|
+
score: number;
|
|
146
|
+
matchedTriggers: string[];
|
|
147
|
+
}
|
|
148
|
+
export interface LoadOptions {
|
|
149
|
+
/** Load references content */
|
|
150
|
+
loadReferences?: boolean;
|
|
151
|
+
/** Load examples content */
|
|
152
|
+
loadExamples?: boolean;
|
|
153
|
+
/** Parse body markdown */
|
|
154
|
+
parseMarkdown?: boolean;
|
|
155
|
+
}
|
|
156
|
+
export interface LoadedSkill extends Skill {
|
|
157
|
+
/** Loaded reference content */
|
|
158
|
+
referencesContent?: Map<string, string>;
|
|
159
|
+
/** Loaded examples content */
|
|
160
|
+
examplesContent?: Map<string, string>;
|
|
161
|
+
/** Parsed markdown */
|
|
162
|
+
parsedBody?: ParsedMarkdown;
|
|
163
|
+
}
|
|
164
|
+
export interface ParsedMarkdown {
|
|
165
|
+
html?: string;
|
|
166
|
+
sections?: MarkdownSection[];
|
|
167
|
+
}
|
|
168
|
+
export interface MarkdownSection {
|
|
169
|
+
level: number;
|
|
170
|
+
title: string;
|
|
171
|
+
content: string;
|
|
172
|
+
}
|
|
173
|
+
export type PendingWriteAction = {
|
|
174
|
+
action: "create";
|
|
175
|
+
skill: Partial<Skill>;
|
|
176
|
+
} | {
|
|
177
|
+
action: "patch";
|
|
178
|
+
skillId: string;
|
|
179
|
+
diff: SkillDiff;
|
|
180
|
+
} | {
|
|
181
|
+
action: "delete";
|
|
182
|
+
skillId: string;
|
|
183
|
+
} | {
|
|
184
|
+
action: "write_file";
|
|
185
|
+
skillId: string;
|
|
186
|
+
file: string;
|
|
187
|
+
content: string;
|
|
188
|
+
} | {
|
|
189
|
+
action: "remove_file";
|
|
190
|
+
skillId: string;
|
|
191
|
+
file: string;
|
|
192
|
+
};
|
|
193
|
+
export interface PendingWrite {
|
|
194
|
+
id: string;
|
|
195
|
+
action: PendingWriteAction;
|
|
196
|
+
timestamp: number;
|
|
197
|
+
author: "agent" | "user" | "curator";
|
|
198
|
+
status: "pending" | "approved" | "rejected";
|
|
199
|
+
metadata?: Record<string, unknown>;
|
|
200
|
+
}
|
|
201
|
+
export interface SkillDiff {
|
|
202
|
+
frontmatter?: Partial<SkillFrontmatter>;
|
|
203
|
+
body?: {
|
|
204
|
+
old: string;
|
|
205
|
+
new: string;
|
|
206
|
+
};
|
|
207
|
+
references?: {
|
|
208
|
+
added?: string[];
|
|
209
|
+
removed?: string[];
|
|
210
|
+
};
|
|
211
|
+
examples?: {
|
|
212
|
+
added?: string[];
|
|
213
|
+
removed?: string[];
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
export interface SkillsConfig {
|
|
217
|
+
enabled: boolean;
|
|
218
|
+
locations: string[];
|
|
219
|
+
write_approval: boolean;
|
|
220
|
+
auto_create_threshold: number;
|
|
221
|
+
auto_patch_threshold: number;
|
|
222
|
+
progressive_disclosure: boolean;
|
|
223
|
+
default_author: "agent" | "user" | "curator";
|
|
224
|
+
}
|
|
225
|
+
export declare const DEFAULT_SKILLS_CONFIG: SkillsConfig;
|
|
226
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* pi-harness-runtime Skills System Types
|
|
3
|
+
*
|
|
4
|
+
* Based on:
|
|
5
|
+
* - pi.dev Agent Skills specification (https://pi.dev/docs/latest/skills)
|
|
6
|
+
* - Hermes Agent skill system
|
|
7
|
+
*/
|
|
8
|
+
export const DEFAULT_SKILLS_CONFIG = {
|
|
9
|
+
enabled: true,
|
|
10
|
+
locations: [
|
|
11
|
+
"~/.pi-harness/skills",
|
|
12
|
+
"skills",
|
|
13
|
+
".agents/skills"
|
|
14
|
+
],
|
|
15
|
+
write_approval: false,
|
|
16
|
+
auto_create_threshold: 3,
|
|
17
|
+
auto_patch_threshold: 1,
|
|
18
|
+
progressive_disclosure: true,
|
|
19
|
+
default_author: "agent"
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgPH,MAAM,CAAC,MAAM,qBAAqB,GAAiB;IACjD,OAAO,EAAE,IAAI;IACb,SAAS,EAAE;QACT,sBAAsB;QACtB,QAAQ;QACR,gBAAgB;KACjB;IACD,cAAc,EAAE,KAAK;IACrB,qBAAqB,EAAE,CAAC;IACxB,oBAAoB,EAAE,CAAC;IACvB,sBAAsB,EAAE,IAAI;IAC5B,cAAc,EAAE,OAAO;CACxB,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@pi-harness/skills",
|
|
3
|
+
"version": "1.1.97",
|
|
4
|
+
"description": "File-based skill system with pi.dev compatibility and Hermes self-improvement",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "src/index.ts",
|
|
7
|
+
"types": "src/index.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"import": "./src/index.ts",
|
|
11
|
+
"types": "./src/index.ts"
|
|
12
|
+
},
|
|
13
|
+
"./types": {
|
|
14
|
+
"import": "./src/types.ts",
|
|
15
|
+
"types": "./src/types.ts"
|
|
16
|
+
},
|
|
17
|
+
"./parser": {
|
|
18
|
+
"import": "./src/parser.ts",
|
|
19
|
+
"types": "./src/parser.ts"
|
|
20
|
+
},
|
|
21
|
+
"./scanner": {
|
|
22
|
+
"import": "./src/scanner.ts",
|
|
23
|
+
"types": "./src/scanner.ts"
|
|
24
|
+
},
|
|
25
|
+
"./registry": {
|
|
26
|
+
"import": "./src/registry.ts",
|
|
27
|
+
"types": "./src/registry.ts"
|
|
28
|
+
},
|
|
29
|
+
"./loader": {
|
|
30
|
+
"import": "./src/loader.ts",
|
|
31
|
+
"types": "./src/loader.ts"
|
|
32
|
+
},
|
|
33
|
+
"./linter": {
|
|
34
|
+
"import": "./src/linter.ts",
|
|
35
|
+
"types": "./src/linter.ts"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"keywords": [
|
|
39
|
+
"pi-extension",
|
|
40
|
+
"skills",
|
|
41
|
+
"hermes",
|
|
42
|
+
"agent-skills"
|
|
43
|
+
],
|
|
44
|
+
"author": "pi-harness",
|
|
45
|
+
"license": "MIT"
|
|
46
|
+
}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skills Package - File-based skill system with pi.dev compatibility
|
|
3
|
+
*
|
|
4
|
+
* Implements Hermes-style self-improving skills with:
|
|
5
|
+
* - pi.dev Agent Skills specification compatibility
|
|
6
|
+
* - Progressive disclosure (lazy loading)
|
|
7
|
+
* - Background review and auto-improvement
|
|
8
|
+
* - Hermes-style linter for quality checks
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
// Re-export all modules
|
|
12
|
+
export * from "./types.js";
|
|
13
|
+
export * from "./parser.js";
|
|
14
|
+
export * from "./scanner.js";
|
|
15
|
+
export * from "./loader.js";
|
|
16
|
+
export * from "./skill-commands.js";
|
|
17
|
+
export * from "./skill-tool.js";
|
|
18
|
+
export * from "./skill-versioning.js";
|
|
19
|
+
export * from "./linter.js";
|
|
20
|
+
|
|
21
|
+
import type { SkillsConfig, ScanResult, ScanOptions } from "./types.js";
|
|
22
|
+
import { scanForSkillsSync } from "./scanner.js";
|
|
23
|
+
import { getGlobalSkillRegistry } from "./loader.js";
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Initialize skills system
|
|
27
|
+
*/
|
|
28
|
+
export function initSkills(
|
|
29
|
+
config?: Partial<SkillsConfig & { maxDepth?: number; includeHidden?: boolean }>
|
|
30
|
+
): ScanResult {
|
|
31
|
+
const registry = getGlobalSkillRegistry();
|
|
32
|
+
|
|
33
|
+
// Scan for skills
|
|
34
|
+
const scanOptions: Partial<ScanOptions> = {};
|
|
35
|
+
// Only set directories if explicitly provided, otherwise use defaults
|
|
36
|
+
if (config?.locations !== undefined) {
|
|
37
|
+
scanOptions.directories = config.locations;
|
|
38
|
+
}
|
|
39
|
+
if (config?.maxDepth !== undefined) scanOptions.maxDepth = config.maxDepth;
|
|
40
|
+
if (config?.includeHidden !== undefined) scanOptions.includeHidden = config.includeHidden;
|
|
41
|
+
|
|
42
|
+
const result = scanForSkillsSync(scanOptions);
|
|
43
|
+
|
|
44
|
+
// Register skills in global registry
|
|
45
|
+
for (const skill of result.skills) {
|
|
46
|
+
registry.register(skill);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return result;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Get skills summary
|
|
54
|
+
*/
|
|
55
|
+
export function getSkillsSummary() {
|
|
56
|
+
const registry = getGlobalSkillRegistry();
|
|
57
|
+
const skills = registry.list();
|
|
58
|
+
|
|
59
|
+
const byAuthor = {
|
|
60
|
+
agent: 0,
|
|
61
|
+
user: 0,
|
|
62
|
+
curator: 0,
|
|
63
|
+
unknown: 0,
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
for (const skill of skills) {
|
|
67
|
+
const author = skill.hermes?.author ?? "unknown";
|
|
68
|
+
if (author in byAuthor) {
|
|
69
|
+
byAuthor[author as keyof typeof byAuthor]++;
|
|
70
|
+
} else {
|
|
71
|
+
byAuthor.unknown++;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
return {
|
|
76
|
+
total: skills.length,
|
|
77
|
+
loaded: skills.filter((s) => s.loaded).length,
|
|
78
|
+
byAuthor,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// Default configuration
|
|
83
|
+
export const DEFAULT_SKILL_CONFIG: SkillsConfig = {
|
|
84
|
+
enabled: true,
|
|
85
|
+
locations: [
|
|
86
|
+
"~/.pi-harness/skills",
|
|
87
|
+
"skills",
|
|
88
|
+
".agents/skills",
|
|
89
|
+
],
|
|
90
|
+
write_approval: false,
|
|
91
|
+
auto_create_threshold: 3,
|
|
92
|
+
auto_patch_threshold: 1,
|
|
93
|
+
progressive_disclosure: true,
|
|
94
|
+
default_author: "agent",
|
|
95
|
+
};
|