@alan512/experienceengine 0.1.0 → 0.1.3

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 (215) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.mcp.json +4 -8
  3. package/LICENSE +21 -0
  4. package/README.md +158 -47
  5. package/README.zh-CN.md +178 -57
  6. package/dist/adapters/codex/instruction-template.d.ts +3 -0
  7. package/dist/adapters/codex/instruction-template.js +12 -0
  8. package/dist/adapters/codex/instruction-template.js.map +1 -0
  9. package/dist/adapters/codex/mcp-server.d.ts +38 -41
  10. package/dist/adapters/codex/mcp-server.js +107 -338
  11. package/dist/adapters/codex/mcp-server.js.map +1 -1
  12. package/dist/analyzer/llm-learning-gate.js +39 -0
  13. package/dist/analyzer/llm-learning-gate.js.map +1 -1
  14. package/dist/cli/commands/claude-hook.js +12 -3
  15. package/dist/cli/commands/claude-hook.js.map +1 -1
  16. package/dist/cli/commands/config.js +88 -2
  17. package/dist/cli/commands/config.js.map +1 -1
  18. package/dist/cli/commands/doctor.d.ts +4 -28
  19. package/dist/cli/commands/doctor.js +136 -68
  20. package/dist/cli/commands/doctor.js.map +1 -1
  21. package/dist/cli/commands/feedback.js +4 -0
  22. package/dist/cli/commands/feedback.js.map +1 -1
  23. package/dist/cli/commands/init.d.ts +28 -0
  24. package/dist/cli/commands/init.js +419 -0
  25. package/dist/cli/commands/init.js.map +1 -0
  26. package/dist/cli/commands/inspect.js +203 -37
  27. package/dist/cli/commands/inspect.js.map +1 -1
  28. package/dist/cli/commands/install.js +9 -0
  29. package/dist/cli/commands/install.js.map +1 -1
  30. package/dist/cli/commands/maintenance.js +1 -1
  31. package/dist/cli/commands/maintenance.js.map +1 -1
  32. package/dist/cli/commands/mcp-server.js +4 -0
  33. package/dist/cli/commands/mcp-server.js.map +1 -1
  34. package/dist/cli/commands/status.js +57 -7
  35. package/dist/cli/commands/status.js.map +1 -1
  36. package/dist/cli/dispatch.js +22 -7
  37. package/dist/cli/dispatch.js.map +1 -1
  38. package/dist/cli/state-model.d.ts +14 -0
  39. package/dist/cli/state-model.js +23 -0
  40. package/dist/cli/state-model.js.map +1 -0
  41. package/dist/config/config-schema.d.ts +32 -0
  42. package/dist/config/config-schema.js +26 -0
  43. package/dist/config/config-schema.js.map +1 -1
  44. package/dist/config/default-config.js +3 -0
  45. package/dist/config/default-config.js.map +1 -1
  46. package/dist/config/load-config.js +19 -1
  47. package/dist/config/load-config.js.map +1 -1
  48. package/dist/config/path-resolver.d.ts +0 -1
  49. package/dist/config/path-resolver.js +0 -2
  50. package/dist/config/path-resolver.js.map +1 -1
  51. package/dist/config/runtime-env.d.ts +8 -0
  52. package/dist/config/runtime-env.js +14 -0
  53. package/dist/config/runtime-env.js.map +1 -0
  54. package/dist/config/secrets-store.d.ts +15 -0
  55. package/dist/config/secrets-store.js +56 -0
  56. package/dist/config/secrets-store.js.map +1 -0
  57. package/dist/config/settings-store.d.ts +10 -0
  58. package/dist/config/settings-store.js +44 -0
  59. package/dist/config/settings-store.js.map +1 -1
  60. package/dist/controller/candidate-retriever.d.ts +35 -2
  61. package/dist/controller/candidate-retriever.js +189 -10
  62. package/dist/controller/candidate-retriever.js.map +1 -1
  63. package/dist/controller/injection-renderer.js +52 -1
  64. package/dist/controller/injection-renderer.js.map +1 -1
  65. package/dist/controller/injection-scorecard.d.ts +14 -2
  66. package/dist/controller/injection-scorecard.js +18 -1
  67. package/dist/controller/injection-scorecard.js.map +1 -1
  68. package/dist/controller/intervention-controller.d.ts +15 -2
  69. package/dist/controller/intervention-controller.js +173 -11
  70. package/dist/controller/intervention-controller.js.map +1 -1
  71. package/dist/controller/lexical-retriever.d.ts +14 -0
  72. package/dist/controller/lexical-retriever.js +117 -0
  73. package/dist/controller/lexical-retriever.js.map +1 -0
  74. package/dist/controller/model-reranker.d.ts +20 -0
  75. package/dist/controller/model-reranker.js +187 -0
  76. package/dist/controller/model-reranker.js.map +1 -0
  77. package/dist/controller/node-ranker.js +1 -0
  78. package/dist/controller/node-ranker.js.map +1 -1
  79. package/dist/controller/query-rewrite.d.ts +8 -0
  80. package/dist/controller/query-rewrite.js +69 -0
  81. package/dist/controller/query-rewrite.js.map +1 -0
  82. package/dist/controller/trigger-evaluator.d.ts +23 -2
  83. package/dist/controller/trigger-evaluator.js +57 -3
  84. package/dist/controller/trigger-evaluator.js.map +1 -1
  85. package/dist/distillation/experience-family.d.ts +4 -0
  86. package/dist/distillation/experience-family.js +14 -0
  87. package/dist/distillation/experience-family.js.map +1 -0
  88. package/dist/distillation/host-llm.d.ts +1 -0
  89. package/dist/distillation/host-llm.js +5 -1
  90. package/dist/distillation/host-llm.js.map +1 -1
  91. package/dist/distillation/llm-distiller.js +4 -0
  92. package/dist/distillation/llm-distiller.js.map +1 -1
  93. package/dist/distillation/merge-decider.js +4 -0
  94. package/dist/distillation/merge-decider.js.map +1 -1
  95. package/dist/distillation/prompt-contract.d.ts +1 -1
  96. package/dist/distillation/prompt-contract.js +3 -0
  97. package/dist/distillation/prompt-contract.js.map +1 -1
  98. package/dist/distillation/queue-worker.js +57 -7
  99. package/dist/distillation/queue-worker.js.map +1 -1
  100. package/dist/feedback/state-transition.js +9 -0
  101. package/dist/feedback/state-transition.js.map +1 -1
  102. package/dist/input/input-adapter.js +2 -1
  103. package/dist/input/input-adapter.js.map +1 -1
  104. package/dist/input/outcome-resolver.js +5 -5
  105. package/dist/input/outcome-resolver.js.map +1 -1
  106. package/dist/input/tasktype-resolver.js +2 -0
  107. package/dist/input/tasktype-resolver.js.map +1 -1
  108. package/dist/input/tool-event-significance.d.ts +5 -0
  109. package/dist/input/tool-event-significance.js +7 -0
  110. package/dist/input/tool-event-significance.js.map +1 -0
  111. package/dist/install/claude-code-doctor.d.ts +7 -2
  112. package/dist/install/claude-code-doctor.js +38 -9
  113. package/dist/install/claude-code-doctor.js.map +1 -1
  114. package/dist/install/claude-marketplace-state.d.ts +14 -0
  115. package/dist/install/claude-marketplace-state.js +47 -0
  116. package/dist/install/claude-marketplace-state.js.map +1 -0
  117. package/dist/install/codex-installer.d.ts +18 -0
  118. package/dist/install/codex-installer.js +91 -1
  119. package/dist/install/codex-installer.js.map +1 -1
  120. package/dist/install/openclaw-installer.d.ts +7 -0
  121. package/dist/install/openclaw-installer.js +16 -0
  122. package/dist/install/openclaw-installer.js.map +1 -1
  123. package/dist/install/public-install.d.ts +14 -4
  124. package/dist/install/public-install.js +20 -7
  125. package/dist/install/public-install.js.map +1 -1
  126. package/dist/interaction/repo-summary.d.ts +3 -17
  127. package/dist/interaction/repo-summary.js +10 -27
  128. package/dist/interaction/repo-summary.js.map +1 -1
  129. package/dist/interaction/service.d.ts +44 -95
  130. package/dist/interaction/service.js +333 -248
  131. package/dist/interaction/service.js.map +1 -1
  132. package/dist/maintenance/scope-merge.d.ts +0 -1
  133. package/dist/maintenance/scope-merge.js +0 -20
  134. package/dist/maintenance/scope-merge.js.map +1 -1
  135. package/dist/plugin/openclaw-plugin.d.ts +23 -0
  136. package/dist/plugin/openclaw-plugin.js +86 -6
  137. package/dist/plugin/openclaw-plugin.js.map +1 -1
  138. package/dist/plugin/openclaw-routine-interaction.d.ts +6 -0
  139. package/dist/plugin/openclaw-routine-interaction.js +296 -0
  140. package/dist/plugin/openclaw-routine-interaction.js.map +1 -0
  141. package/dist/runtime/service.d.ts +0 -1
  142. package/dist/runtime/service.js +20 -29
  143. package/dist/runtime/service.js.map +1 -1
  144. package/dist/store/sqlite/db.js +9 -0
  145. package/dist/store/sqlite/db.js.map +1 -1
  146. package/dist/store/sqlite/repositories/candidate-repo.js +8 -2
  147. package/dist/store/sqlite/repositories/candidate-repo.js.map +1 -1
  148. package/dist/store/sqlite/repositories/injection-repo.d.ts +1 -0
  149. package/dist/store/sqlite/repositories/injection-repo.js +11 -0
  150. package/dist/store/sqlite/repositories/injection-repo.js.map +1 -1
  151. package/dist/store/sqlite/repositories/input-record-repo.d.ts +2 -0
  152. package/dist/store/sqlite/repositories/input-record-repo.js +22 -0
  153. package/dist/store/sqlite/repositories/input-record-repo.js.map +1 -1
  154. package/dist/store/sqlite/repositories/node-repo.js +17 -2
  155. package/dist/store/sqlite/repositories/node-repo.js.map +1 -1
  156. package/dist/store/sqlite/repositories/task-run-repo.d.ts +2 -0
  157. package/dist/store/sqlite/repositories/task-run-repo.js +18 -2
  158. package/dist/store/sqlite/repositories/task-run-repo.js.map +1 -1
  159. package/dist/store/sqlite/schema.sql +9 -49
  160. package/dist/store/vector/api-embedding-provider.d.ts +2 -0
  161. package/dist/store/vector/api-embedding-provider.js +23 -19
  162. package/dist/store/vector/api-embedding-provider.js.map +1 -1
  163. package/dist/store/vector/embeddings.d.ts +1 -1
  164. package/dist/store/vector/embeddings.js +4 -1
  165. package/dist/store/vector/embeddings.js.map +1 -1
  166. package/dist/types/domain.d.ts +30 -46
  167. package/dist/types/plugin.d.ts +2 -1
  168. package/docs/releases/v0.1.2.md +3 -3
  169. package/docs/releases/v0.1.3.md +94 -0
  170. package/docs/user-guide.md +226 -123
  171. package/openclaw.plugin.json +1 -1
  172. package/package.json +3 -2
  173. package/plugins/claude-code-experienceengine/.claude-plugin/plugin.json +1 -1
  174. package/plugins/claude-code-experienceengine/.mcp.json +4 -3
  175. package/plugins/claude-code-experienceengine/scripts/claude-hook.sh +30 -1
  176. package/plugins/claude-code-experienceengine/scripts/install-deps.sh +41 -6
  177. package/dist/cli/commands/pack.d.ts +0 -1
  178. package/dist/cli/commands/pack.js +0 -321
  179. package/dist/cli/commands/pack.js.map +0 -1
  180. package/dist/compiler/agents-renderer.d.ts +0 -4
  181. package/dist/compiler/agents-renderer.js +0 -105
  182. package/dist/compiler/agents-renderer.js.map +0 -1
  183. package/dist/compiler/claude-renderer.d.ts +0 -2
  184. package/dist/compiler/claude-renderer.js +0 -40
  185. package/dist/compiler/claude-renderer.js.map +0 -1
  186. package/dist/compiler/codex-renderer.d.ts +0 -2
  187. package/dist/compiler/codex-renderer.js +0 -40
  188. package/dist/compiler/codex-renderer.js.map +0 -1
  189. package/dist/compiler/compiler.d.ts +0 -4
  190. package/dist/compiler/compiler.js +0 -87
  191. package/dist/compiler/compiler.js.map +0 -1
  192. package/dist/compiler/deployer.d.ts +0 -21
  193. package/dist/compiler/deployer.js +0 -64
  194. package/dist/compiler/deployer.js.map +0 -1
  195. package/dist/compiler/github-renderer.d.ts +0 -2
  196. package/dist/compiler/github-renderer.js +0 -63
  197. package/dist/compiler/github-renderer.js.map +0 -1
  198. package/dist/compiler/types.d.ts +0 -45
  199. package/dist/compiler/types.js +0 -2
  200. package/dist/compiler/types.js.map +0 -1
  201. package/dist/interaction/pack-actions-service.d.ts +0 -59
  202. package/dist/interaction/pack-actions-service.js +0 -172
  203. package/dist/interaction/pack-actions-service.js.map +0 -1
  204. package/dist/packs/fs-registry.d.ts +0 -27
  205. package/dist/packs/fs-registry.js +0 -216
  206. package/dist/packs/fs-registry.js.map +0 -1
  207. package/dist/packs/index-sync.d.ts +0 -9
  208. package/dist/packs/index-sync.js +0 -54
  209. package/dist/packs/index-sync.js.map +0 -1
  210. package/dist/packs/types.d.ts +0 -55
  211. package/dist/packs/types.js +0 -2
  212. package/dist/packs/types.js.map +0 -1
  213. package/dist/store/sqlite/repositories/pack-repo.d.ts +0 -16
  214. package/dist/store/sqlite/repositories/pack-repo.js +0 -192
  215. package/dist/store/sqlite/repositories/pack-repo.js.map +0 -1
@@ -1,9 +1,6 @@
1
1
  import type { ExperienceEngineConfig } from "../config/config-schema.js";
2
- import { type DeployCompiledPackResult } from "../compiler/deployer.js";
3
- import type { CompilerTarget, CompileResult } from "../compiler/types.js";
4
- import type { ExperiencePackCompiledArtifact, ExperiencePackCompileStatus, ExperiencePackSummary, ExperiencePackVersionManifest } from "../packs/types.js";
5
2
  import { type BenchmarkSummary } from "../evaluation/benchmark-summary.js";
6
- import type { CandidateLifecycleState, DistillationSource, DistillationJobState, EvaluationMode, ExperienceInputRecord, FeedbackAttributionReason, InjectionEvent, InjectionScorecard, ExperienceNode, ExperienceNodeType, ExperienceState } from "../types/domain.js";
3
+ import type { CandidateLifecycleState, DistillationSource, DistillationJobState, EvaluationMode, ExperienceInputRecord, FeedbackAttributionReason, InjectionEvent, InjectionScorecard, ExperienceNode, ExperienceNodeType, ExperienceState, TaskRun } from "../types/domain.js";
7
4
  import { type ExperienceRepoSummary } from "./repo-summary.js";
8
5
  export type ExperienceNodeSummary = {
9
6
  id: string;
@@ -14,6 +11,11 @@ export type ExperienceNodeSummary = {
14
11
  distillationMode?: ExperienceNode["distillation_mode_used"];
15
12
  distillationSource?: ExperienceNode["distillation_source"];
16
13
  redistilledFrom?: ExperienceNode["redistilled_from"];
14
+ promotionSignal?: ExperienceNode["promotion_signal"];
15
+ promotionReason?: ExperienceNode["promotion_reason"];
16
+ mergeDecision?: ExperienceNode["merge_decision"];
17
+ mergeReason?: ExperienceNode["merge_reason"];
18
+ priorityPromotionApplied?: boolean;
17
19
  triggerPattern: string;
18
20
  evidenceSummary: string;
19
21
  originRecordIds: string[];
@@ -21,6 +23,15 @@ export type ExperienceNodeSummary = {
21
23
  harmed: number;
22
24
  lastUsedAt?: string;
23
25
  hint: string;
26
+ qualityBand: "strong" | "building" | "risky";
27
+ qualityDrivers: string[];
28
+ applicabilityProfile: {
29
+ bestFit: string;
30
+ scopeValidity: string;
31
+ confidence: "high" | "medium" | "low";
32
+ risk: "low" | "medium" | "high";
33
+ avoidWhen?: string;
34
+ };
24
35
  };
25
36
  export type ExperienceNodeDetail = ExperienceNodeSummary & {
26
37
  scopeId: string;
@@ -53,9 +64,12 @@ export type ExperienceLastInspection = {
53
64
  hints: string[];
54
65
  evidence: string[];
55
66
  scorecard?: InjectionScorecard;
67
+ decisionExplanation?: string;
68
+ trustSummary?: string;
69
+ retrievalNotes: string[];
56
70
  timeline: ExperienceTimelineEntry[];
57
- activePacks: ExperienceScopePackActivationView[];
58
- matchedPacks: ExperienceScopePackActivationView[];
71
+ learningStatus?: TaskRun["learning_status"];
72
+ learningReason?: string;
59
73
  summary: string;
60
74
  createdAt: string;
61
75
  };
@@ -115,14 +129,6 @@ export type ExperienceLearningSummary = {
115
129
  outcomes: number;
116
130
  reviews: number;
117
131
  };
118
- compiler: {
119
- publishedPacks: number;
120
- compiledTargets: number;
121
- stalePublishedPacks: number;
122
- latestCompiledArtifact?: (ExperiencePackCompiledArtifact & {
123
- packId: string;
124
- }) | undefined;
125
- };
126
132
  latestRecordCreatedAt?: string;
127
133
  };
128
134
  export type ExperienceFirstValueReadiness = {
@@ -132,50 +138,25 @@ export type ExperienceFirstValueReadiness = {
132
138
  nodes: number;
133
139
  nextStep: string;
134
140
  };
135
- export type ExperiencePackSummaryView = ExperiencePackSummary;
136
- export type ExperiencePackDetailView = ExperiencePackSummary & {
137
- manifest: ExperiencePackVersionManifest;
138
- nodeIds: string[];
139
- compiledArtifacts: ExperiencePackCompiledArtifact[];
140
- compileStatus: ExperiencePackCompileStatus;
141
- activations: Array<{
142
- scopeId: string;
143
- enabled: boolean;
144
- pinnedVersion?: string;
145
- updatedAt: string;
146
- }>;
147
- };
148
- export type ExperienceScopePackActivationView = {
149
- scopeId: string;
150
- packId: string;
151
- status: ExperiencePackSummary["status"];
152
- currentVersion: string;
153
- pinnedVersion?: string;
154
- enabled: boolean;
155
- updatedAt: string;
156
- };
157
- export type ExperienceScopePackStatusView = {
158
- scopeId: string;
159
- enabledCount: number;
160
- activations: ExperienceScopePackActivationView[];
161
- compiler: {
162
- publishedPacks: number;
163
- compiledTargets: number;
164
- stalePublishedPacks: number;
165
- latestCompiledArtifact?: (ExperiencePackCompiledArtifact & {
166
- packId: string;
167
- }) | undefined;
168
- };
169
- };
170
- export type ExperiencePackCompileView = CompileResult;
171
- export type ExperiencePackDeploymentStatusView = DeployCompiledPackResult;
172
- export type ExperiencePackActivationResult = {
141
+ export type ExperienceSilenceReason = "warming_up" | "no_strong_match" | "withheld_low_confidence" | "non_applicable_turn" | "unknown";
142
+ export type ExperienceDecisionHealth = {
173
143
  scopeId: string;
174
- packId: string;
175
- enabled: boolean;
176
- pinnedVersion?: string;
177
- updatedAt: string;
144
+ recentDecisions: number;
145
+ recentInjects: number;
146
+ recentConservativeInjects: number;
147
+ recentSkips: number;
148
+ recentFastPathActivations: number;
149
+ recentRerankParticipations: number;
150
+ recentQueryRewriteUsages: number;
151
+ currentPriorityCandidates: number;
152
+ recentConvergedUpdates: number;
153
+ recentPriorityPromotions: number;
154
+ lastDecisionMode?: "inject" | "inject_conservative" | "skip";
178
155
  };
156
+ export declare const deriveStructuredSilenceReason: (input: {
157
+ inspection: ExperienceLastInspection;
158
+ readiness: ExperienceFirstValueReadiness;
159
+ }) => ExperienceSilenceReason;
179
160
  export declare class ExperienceInteractionService {
180
161
  private readonly inputRepo;
181
162
  private readonly injectionRepo;
@@ -186,14 +167,11 @@ export declare class ExperienceInteractionService {
186
167
  private readonly outcomeRepo;
187
168
  private readonly reviewEventRepo;
188
169
  private readonly scopeRepo;
189
- private readonly packRepo;
190
- private readonly packRegistry;
191
- private readonly packsDir;
192
- constructor(config: ExperienceEngineConfig, options?: {
193
- packsDir?: string;
194
- });
170
+ constructor(config: ExperienceEngineConfig);
195
171
  private inspectRecord;
196
- inspectLast(): ExperienceLastInspection | undefined;
172
+ private inspectInjectionEvent;
173
+ inspectLast(cwd?: string): ExperienceLastInspection | undefined;
174
+ inspectLatestInjected(cwd?: string): ExperienceLastInspection | undefined;
197
175
  inspectRecent(options?: {
198
176
  injectedOnly?: boolean;
199
177
  limit?: number;
@@ -201,42 +179,14 @@ export declare class ExperienceInteractionService {
201
179
  listActiveNodes(): ExperienceNodeSummary[];
202
180
  listAllNodes(): ExperienceNodeSummary[];
203
181
  inspectNode(nodeId: string): ExperienceNodeDetail | undefined;
204
- listPacks(): ExperiencePackSummaryView[];
205
- inspectPack(packId: string): ExperiencePackDetailView | undefined;
206
- enablePack(args: {
207
- packId: string;
208
- cwd?: string;
209
- }): ExperiencePackActivationResult;
210
- disablePack(args: {
211
- packId: string;
212
- cwd?: string;
213
- }): ExperiencePackActivationResult;
214
- compilePack(args: {
215
- packId: string;
216
- version?: string;
217
- target: CompilerTarget;
218
- }): ExperiencePackCompileView;
219
- inspectPackDeploymentStatus(args: {
220
- packId: string;
221
- version?: string;
222
- target: CompilerTarget;
223
- repoPath: string;
224
- }): ExperiencePackDeploymentStatusView;
225
- deployPackPreview(args: {
226
- packId: string;
227
- version?: string;
228
- target: CompilerTarget;
229
- repoPath: string;
230
- }): ExperiencePackDeploymentStatusView;
231
- inspectScopePackStatus(cwd?: string): ExperienceScopePackStatusView;
232
- private inspectScopePackStatusByScopeId;
233
182
  listNodesByState(state: ExperienceState): ExperienceNodeSummary[];
234
183
  listNodesByType(nodeType: ExperienceNodeType): ExperienceNodeSummary[];
235
184
  inspectLearningSummary(): ExperienceLearningSummary;
236
185
  private buildLearningSummary;
237
186
  inspectRepoSummary(cwd?: string): ExperienceRepoSummary;
238
- inspectFirstValueReadiness(): ExperienceFirstValueReadiness;
239
- feedbackLast(feedback: FeedbackValue): FeedbackResult;
187
+ inspectFirstValueReadiness(cwd?: string): ExperienceFirstValueReadiness;
188
+ inspectDecisionHealth(cwd?: string, limit?: number): ExperienceDecisionHealth;
189
+ feedbackLast(feedback: FeedbackValue, cwd?: string): FeedbackResult;
240
190
  feedbackNode(nodeId: string, feedback: FeedbackValue): FeedbackResult;
241
191
  disableScope(cwd?: string): ScopeToggleResult;
242
192
  enableScope(cwd?: string): ScopeToggleResult;
@@ -244,5 +194,4 @@ export declare class ExperienceInteractionService {
244
194
  retireNode(nodeId: string): NodeLifecycleResult;
245
195
  private setScopeDisabled;
246
196
  private setNodeState;
247
- private inspectRepoDeploymentStatuses;
248
197
  }