@code-yeongyu/senpi 2026.6.28-4 → 2026.6.30

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 (148) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +2 -1
  3. package/dist/core/agent-session.d.ts.map +1 -1
  4. package/dist/core/agent-session.js +17 -4
  5. package/dist/core/agent-session.js.map +1 -1
  6. package/dist/core/extensions/builtin/hooks/command-runner.d.ts +25 -0
  7. package/dist/core/extensions/builtin/hooks/command-runner.d.ts.map +1 -0
  8. package/dist/core/extensions/builtin/hooks/command-runner.js +152 -0
  9. package/dist/core/extensions/builtin/hooks/command-runner.js.map +1 -0
  10. package/dist/core/extensions/builtin/hooks/command.d.ts +11 -0
  11. package/dist/core/extensions/builtin/hooks/command.d.ts.map +1 -0
  12. package/dist/core/extensions/builtin/hooks/command.js +180 -0
  13. package/dist/core/extensions/builtin/hooks/command.js.map +1 -0
  14. package/dist/core/extensions/builtin/hooks/config-loader.d.ts +19 -0
  15. package/dist/core/extensions/builtin/hooks/config-loader.d.ts.map +1 -0
  16. package/dist/core/extensions/builtin/hooks/config-loader.js +125 -0
  17. package/dist/core/extensions/builtin/hooks/config-loader.js.map +1 -0
  18. package/dist/core/extensions/builtin/hooks/diagnostics.d.ts +10 -0
  19. package/dist/core/extensions/builtin/hooks/diagnostics.d.ts.map +1 -0
  20. package/dist/core/extensions/builtin/hooks/diagnostics.js +14 -0
  21. package/dist/core/extensions/builtin/hooks/diagnostics.js.map +1 -0
  22. package/dist/core/extensions/builtin/hooks/dispatcher.d.ts +60 -0
  23. package/dist/core/extensions/builtin/hooks/dispatcher.d.ts.map +1 -0
  24. package/dist/core/extensions/builtin/hooks/dispatcher.js +161 -0
  25. package/dist/core/extensions/builtin/hooks/dispatcher.js.map +1 -0
  26. package/dist/core/extensions/builtin/hooks/handler.d.ts +12 -0
  27. package/dist/core/extensions/builtin/hooks/handler.d.ts.map +1 -0
  28. package/dist/core/extensions/builtin/hooks/handler.js +128 -0
  29. package/dist/core/extensions/builtin/hooks/handler.js.map +1 -0
  30. package/dist/core/extensions/builtin/hooks/index.d.ts +6 -0
  31. package/dist/core/extensions/builtin/hooks/index.d.ts.map +1 -0
  32. package/dist/core/extensions/builtin/hooks/index.js +216 -0
  33. package/dist/core/extensions/builtin/hooks/index.js.map +1 -0
  34. package/dist/core/extensions/builtin/hooks/lifecycle-adapter.d.ts +29 -0
  35. package/dist/core/extensions/builtin/hooks/lifecycle-adapter.d.ts.map +1 -0
  36. package/dist/core/extensions/builtin/hooks/lifecycle-adapter.js +276 -0
  37. package/dist/core/extensions/builtin/hooks/lifecycle-adapter.js.map +1 -0
  38. package/dist/core/extensions/builtin/hooks/matcher.d.ts +7 -0
  39. package/dist/core/extensions/builtin/hooks/matcher.d.ts.map +1 -0
  40. package/dist/core/extensions/builtin/hooks/matcher.js +109 -0
  41. package/dist/core/extensions/builtin/hooks/matcher.js.map +1 -0
  42. package/dist/core/extensions/builtin/hooks/output-bounds.d.ts +29 -0
  43. package/dist/core/extensions/builtin/hooks/output-bounds.d.ts.map +1 -0
  44. package/dist/core/extensions/builtin/hooks/output-bounds.js +47 -0
  45. package/dist/core/extensions/builtin/hooks/output-bounds.js.map +1 -0
  46. package/dist/core/extensions/builtin/hooks/output-parser.d.ts +27 -0
  47. package/dist/core/extensions/builtin/hooks/output-parser.d.ts.map +1 -0
  48. package/dist/core/extensions/builtin/hooks/output-parser.js +168 -0
  49. package/dist/core/extensions/builtin/hooks/output-parser.js.map +1 -0
  50. package/dist/core/extensions/builtin/hooks/plugin-loader.d.ts +11 -0
  51. package/dist/core/extensions/builtin/hooks/plugin-loader.d.ts.map +1 -0
  52. package/dist/core/extensions/builtin/hooks/plugin-loader.js +138 -0
  53. package/dist/core/extensions/builtin/hooks/plugin-loader.js.map +1 -0
  54. package/dist/core/extensions/builtin/hooks/plugin-manifest.d.ts +47 -0
  55. package/dist/core/extensions/builtin/hooks/plugin-manifest.d.ts.map +1 -0
  56. package/dist/core/extensions/builtin/hooks/plugin-manifest.js +86 -0
  57. package/dist/core/extensions/builtin/hooks/plugin-manifest.js.map +1 -0
  58. package/dist/core/extensions/builtin/hooks/prompt-adapter.d.ts +30 -0
  59. package/dist/core/extensions/builtin/hooks/prompt-adapter.d.ts.map +1 -0
  60. package/dist/core/extensions/builtin/hooks/prompt-adapter.js +59 -0
  61. package/dist/core/extensions/builtin/hooks/prompt-adapter.js.map +1 -0
  62. package/dist/core/extensions/builtin/hooks/safety.d.ts +14 -0
  63. package/dist/core/extensions/builtin/hooks/safety.d.ts.map +1 -0
  64. package/dist/core/extensions/builtin/hooks/safety.js +179 -0
  65. package/dist/core/extensions/builtin/hooks/safety.js.map +1 -0
  66. package/dist/core/extensions/builtin/hooks/schema.d.ts +3 -0
  67. package/dist/core/extensions/builtin/hooks/schema.d.ts.map +1 -0
  68. package/dist/core/extensions/builtin/hooks/schema.js +94 -0
  69. package/dist/core/extensions/builtin/hooks/schema.js.map +1 -0
  70. package/dist/core/extensions/builtin/hooks/stop-adapter.d.ts +18 -0
  71. package/dist/core/extensions/builtin/hooks/stop-adapter.d.ts.map +1 -0
  72. package/dist/core/extensions/builtin/hooks/stop-adapter.js +282 -0
  73. package/dist/core/extensions/builtin/hooks/stop-adapter.js.map +1 -0
  74. package/dist/core/extensions/builtin/hooks/tool-adapter.d.ts +11 -0
  75. package/dist/core/extensions/builtin/hooks/tool-adapter.d.ts.map +1 -0
  76. package/dist/core/extensions/builtin/hooks/tool-adapter.js +158 -0
  77. package/dist/core/extensions/builtin/hooks/tool-adapter.js.map +1 -0
  78. package/dist/core/extensions/builtin/hooks/trust-storage.d.ts +24 -0
  79. package/dist/core/extensions/builtin/hooks/trust-storage.d.ts.map +1 -0
  80. package/dist/core/extensions/builtin/hooks/trust-storage.js +102 -0
  81. package/dist/core/extensions/builtin/hooks/trust-storage.js.map +1 -0
  82. package/dist/core/extensions/builtin/hooks/trust.d.ts +34 -0
  83. package/dist/core/extensions/builtin/hooks/trust.d.ts.map +1 -0
  84. package/dist/core/extensions/builtin/hooks/trust.js +194 -0
  85. package/dist/core/extensions/builtin/hooks/trust.js.map +1 -0
  86. package/dist/core/extensions/builtin/hooks/types.d.ts +134 -0
  87. package/dist/core/extensions/builtin/hooks/types.d.ts.map +1 -0
  88. package/dist/core/extensions/builtin/hooks/types.js +36 -0
  89. package/dist/core/extensions/builtin/hooks/types.js.map +1 -0
  90. package/dist/core/extensions/builtin/index.d.ts.map +1 -1
  91. package/dist/core/extensions/builtin/index.js +2 -0
  92. package/dist/core/extensions/builtin/index.js.map +1 -1
  93. package/dist/core/extensions/runner.d.ts +5 -0
  94. package/dist/core/extensions/runner.d.ts.map +1 -1
  95. package/dist/core/extensions/runner.js +20 -1
  96. package/dist/core/extensions/runner.js.map +1 -1
  97. package/dist/core/extensions/types.d.ts +17 -0
  98. package/dist/core/extensions/types.d.ts.map +1 -1
  99. package/dist/core/extensions/types.js.map +1 -1
  100. package/dist/core/package-manager.d.ts +1 -0
  101. package/dist/core/package-manager.d.ts.map +1 -1
  102. package/dist/core/package-manager.js +14 -1
  103. package/dist/core/package-manager.js.map +1 -1
  104. package/dist/core/resource-loader.d.ts +14 -1
  105. package/dist/core/resource-loader.d.ts.map +1 -1
  106. package/dist/core/resource-loader.js +38 -0
  107. package/dist/core/resource-loader.js.map +1 -1
  108. package/dist/core/settings-manager.d.ts +2 -0
  109. package/dist/core/settings-manager.d.ts.map +1 -1
  110. package/dist/core/settings-manager.js.map +1 -1
  111. package/dist/modes/interactive/interactive-mode.js +2 -2
  112. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  113. package/dist/utils/version-check.d.ts +1 -0
  114. package/dist/utils/version-check.d.ts.map +1 -1
  115. package/dist/utils/version-check.js +7 -0
  116. package/dist/utils/version-check.js.map +1 -1
  117. package/docs/extensions.md +450 -0
  118. package/docs/index.md +1 -1
  119. package/docs/packages.md +9 -6
  120. package/examples/extensions/README.md +1 -0
  121. package/node_modules/@earendil-works/pi-agent-core/package.json +2 -2
  122. package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts +17 -24
  123. package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts.map +1 -1
  124. package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.models.d.ts +17 -0
  125. package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.models.d.ts.map +1 -1
  126. package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.models.js +17 -0
  127. package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.models.js.map +1 -1
  128. package/node_modules/@earendil-works/pi-ai/dist/providers/groq.models.js +1 -1
  129. package/node_modules/@earendil-works/pi-ai/dist/providers/groq.models.js.map +1 -1
  130. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.d.ts +0 -24
  131. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.d.ts.map +1 -1
  132. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.js +16 -35
  133. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.js.map +1 -1
  134. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.models.js +12 -12
  135. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.models.js.map +1 -1
  136. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.models.js +12 -12
  137. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.models.js.map +1 -1
  138. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.models.js +12 -12
  139. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.models.js.map +1 -1
  140. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi.models.js +15 -15
  141. package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi.models.js.map +1 -1
  142. package/node_modules/@earendil-works/pi-ai/package.json +1 -1
  143. package/node_modules/@earendil-works/pi-tui/dist/tui.d.ts.map +1 -1
  144. package/node_modules/@earendil-works/pi-tui/dist/tui.js +3 -0
  145. package/node_modules/@earendil-works/pi-tui/dist/tui.js.map +1 -1
  146. package/node_modules/@earendil-works/pi-tui/package.json +1 -1
  147. package/npm-shrinkwrap.json +9 -9
  148. package/package.json +4 -4
@@ -2,7 +2,7 @@ import { type Theme } from "../modes/interactive/theme/theme.ts";
2
2
  import type { ResourceDiagnostic } from "./diagnostics.ts";
3
3
  export type { ResourceCollision, ResourceDiagnostic } from "./diagnostics.ts";
4
4
  import { type EventBus } from "./event-bus.ts";
5
- import type { ExtensionFactory, LoadExtensionsResult } from "./extensions/types.ts";
5
+ import type { ExtensionFactory, LoadExtensionsResult, LoadedHookSources } from "./extensions/types.ts";
6
6
  import { type PathMetadata } from "./package-manager.ts";
7
7
  import type { PromptTemplate } from "./prompt-templates.ts";
8
8
  import { SettingsManager } from "./settings-manager.ts";
@@ -20,6 +20,10 @@ export interface ResourceExtensionPaths {
20
20
  path: string;
21
21
  metadata: PathMetadata;
22
22
  }>;
23
+ hookPaths?: Array<{
24
+ path: string;
25
+ metadata: PathMetadata;
26
+ }>;
23
27
  }
24
28
  export interface ResourceLoaderReloadOptions {
25
29
  resolveProjectTrust?: (input: {
@@ -48,6 +52,7 @@ export interface ResourceLoader {
48
52
  };
49
53
  getSystemPrompt(): string | undefined;
50
54
  getAppendSystemPrompt(): string[];
55
+ getLoadedHookSources?(): LoadedHookSources;
51
56
  extendResources(paths: ResourceExtensionPaths): void;
52
57
  reload(options?: ResourceLoaderReloadOptions): Promise<void>;
53
58
  }
@@ -67,6 +72,7 @@ export interface DefaultResourceLoaderOptions {
67
72
  additionalSkillPaths?: string[];
68
73
  additionalPromptTemplatePaths?: string[];
69
74
  additionalThemePaths?: string[];
75
+ additionalHookPaths?: string[];
70
76
  extensionFactories?: ExtensionFactory[];
71
77
  noExtensions?: boolean;
72
78
  noSkills?: boolean;
@@ -117,6 +123,7 @@ export declare class DefaultResourceLoader implements ResourceLoader {
117
123
  private additionalSkillPaths;
118
124
  private additionalPromptTemplatePaths;
119
125
  private additionalThemePaths;
126
+ private additionalHookPaths;
120
127
  private builtinExtensionFactories;
121
128
  private extensionFactories;
122
129
  private noExtensions;
@@ -143,6 +150,10 @@ export declare class DefaultResourceLoader implements ResourceLoader {
143
150
  private extensionThemeSourceInfos;
144
151
  private lastPromptPaths;
145
152
  private lastThemePaths;
153
+ private globalHookSourcePaths;
154
+ private projectHookSourcePaths;
155
+ private preSessionHookSourcePaths;
156
+ private loadedHookSources;
146
157
  private loaded;
147
158
  constructor(options: DefaultResourceLoaderOptions);
148
159
  getExtensions(): LoadExtensionsResult;
@@ -166,6 +177,7 @@ export declare class DefaultResourceLoader implements ResourceLoader {
166
177
  };
167
178
  getSystemPrompt(): string | undefined;
168
179
  getAppendSystemPrompt(): string[];
180
+ getLoadedHookSources(): LoadedHookSources;
169
181
  extendResources(paths: ResourceExtensionPaths): void;
170
182
  loadProjectTrustExtensions(): Promise<LoadExtensionsResult>;
171
183
  reload(options?: ResourceLoaderReloadOptions): Promise<void>;
@@ -177,6 +189,7 @@ export declare class DefaultResourceLoader implements ResourceLoader {
177
189
  private addExtensionConflictDiagnostics;
178
190
  private mapSkillPath;
179
191
  private normalizeExtensionPaths;
192
+ private buildLoadedHookSources;
180
193
  private updateSkillsFromPaths;
181
194
  private updatePromptsFromPaths;
182
195
  private updateThemesFromPaths;
@@ -1 +1 @@
1
- {"version":3,"file":"resource-loader.d.ts","sourceRoot":"","sources":["../../src/core/resource-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource-loader.d.ts","sourceRoot":"","sources":["../../src/core/resource-loader.ts"],"names":[],"mappings":"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"}
@@ -136,6 +136,7 @@ export class DefaultResourceLoader {
136
136
  this.additionalSkillPaths = options.additionalSkillPaths ?? [];
137
137
  this.additionalPromptTemplatePaths = options.additionalPromptTemplatePaths ?? [];
138
138
  this.additionalThemePaths = options.additionalThemePaths ?? [];
139
+ this.additionalHookPaths = options.additionalHookPaths ?? [];
139
140
  this.builtinExtensionFactories = builtinExtensions;
140
141
  this.extensionFactories = options.extensionFactories ?? [];
141
142
  this.noExtensions = options.noExtensions ?? false;
@@ -162,6 +163,10 @@ export class DefaultResourceLoader {
162
163
  this.extensionThemeSourceInfos = new Map();
163
164
  this.lastPromptPaths = [];
164
165
  this.lastThemePaths = [];
166
+ this.globalHookSourcePaths = [];
167
+ this.projectHookSourcePaths = [];
168
+ this.preSessionHookSourcePaths = [];
169
+ this.loadedHookSources = this.buildLoadedHookSources([]);
165
170
  this.loaded = false;
166
171
  }
167
172
  getExtensions() {
@@ -185,10 +190,14 @@ export class DefaultResourceLoader {
185
190
  getAppendSystemPrompt() {
186
191
  return [];
187
192
  }
193
+ getLoadedHookSources() {
194
+ return this.loadedHookSources;
195
+ }
188
196
  extendResources(paths) {
189
197
  const skillPaths = this.normalizeExtensionPaths(paths.skillPaths ?? []);
190
198
  const promptPaths = this.normalizeExtensionPaths(paths.promptPaths ?? []);
191
199
  const themePaths = this.normalizeExtensionPaths(paths.themePaths ?? []);
200
+ const hookPaths = this.normalizeExtensionPaths(paths.hookPaths ?? []);
192
201
  for (const entry of skillPaths) {
193
202
  this.extensionSkillSourceInfos.set(entry.path, createSourceInfo(entry.path, entry.metadata));
194
203
  }
@@ -210,6 +219,10 @@ export class DefaultResourceLoader {
210
219
  this.lastThemePaths = this.mergePaths(this.lastThemePaths, themePaths.map((entry) => entry.path));
211
220
  this.updateThemesFromPaths(this.lastThemePaths);
212
221
  }
222
+ if (hookPaths.length > 0) {
223
+ const runtimeHookSourcePaths = this.mergePaths([...this.loadedHookSources.runtimeHookSourcePaths], hookPaths.map((entry) => entry.path));
224
+ this.loadedHookSources = this.buildLoadedHookSources(runtimeHookSourcePaths);
225
+ }
213
226
  }
214
227
  async loadProjectTrustExtensions() {
215
228
  // Force untrusted project settings for the bootstrap pass. This keeps project-local
@@ -254,6 +267,7 @@ export class DefaultResourceLoader {
254
267
  const enabledSkillResources = getEnabledResources(resolvedPaths.skills);
255
268
  const enabledPrompts = getEnabledPaths(resolvedPaths.prompts);
256
269
  const enabledThemes = getEnabledPaths(resolvedPaths.themes);
270
+ const enabledHookResources = getEnabledResources(resolvedPaths.hooks);
257
271
  const enabledSkills = enabledSkillResources.map((resource) => this.mapSkillPath(resource, metadataByPath));
258
272
  // Add CLI paths metadata. Explicit -e/-s resources must keep CLI precedence
259
273
  // even when they resolve through a package manifest.
@@ -269,10 +283,22 @@ export class DefaultResourceLoader {
269
283
  for (const r of cliExtensionPaths.themes) {
270
284
  metadataByPath.set(r.path, { source: "cli", scope: "temporary", origin: "top-level" });
271
285
  }
286
+ for (const r of cliExtensionPaths.hooks) {
287
+ metadataByPath.set(r.path, { source: "cli", scope: "temporary", origin: "top-level" });
288
+ }
272
289
  const cliEnabledExtensions = getEnabledPaths(cliExtensionPaths.extensions);
273
290
  const cliEnabledSkills = getEnabledPaths(cliExtensionPaths.skills);
274
291
  const cliEnabledPrompts = getEnabledPaths(cliExtensionPaths.prompts);
275
292
  const cliEnabledThemes = getEnabledPaths(cliExtensionPaths.themes);
293
+ const cliEnabledHooks = getEnabledPaths(cliExtensionPaths.hooks);
294
+ this.globalHookSourcePaths = enabledHookResources
295
+ .filter((resource) => resource.metadata.scope === "user")
296
+ .map((resource) => resource.path);
297
+ this.projectHookSourcePaths = enabledHookResources
298
+ .filter((resource) => resource.metadata.scope === "project")
299
+ .map((resource) => resource.path);
300
+ this.preSessionHookSourcePaths = this.mergePaths(cliEnabledHooks, this.additionalHookPaths);
301
+ this.loadedHookSources = this.buildLoadedHookSources([...this.loadedHookSources.runtimeHookSourcePaths]);
276
302
  const extensionPaths = this.noExtensions
277
303
  ? cliEnabledExtensions
278
304
  : this.mergePaths(cliEnabledExtensions, enabledExtensions);
@@ -470,6 +496,18 @@ export class DefaultResourceLoader {
470
496
  };
471
497
  });
472
498
  }
499
+ buildLoadedHookSources(runtimeHookSourcePaths) {
500
+ return {
501
+ agentDir: this.agentDir,
502
+ cwd: this.cwd,
503
+ globalHookSourcePaths: this.globalHookSourcePaths.map((path) => this.resolveResourcePath(path)),
504
+ globalHooksPath: this.resolveResourcePath(join(this.agentDir, "hooks.json")),
505
+ preSessionHookSourcePaths: this.preSessionHookSourcePaths.map((path) => this.resolveResourcePath(path)),
506
+ projectHookSourcePaths: this.projectHookSourcePaths.map((path) => this.resolveResourcePath(path)),
507
+ projectHooksPath: this.resolveResourcePath(join(this.cwd, CONFIG_DIR_NAME, "hooks.json")),
508
+ runtimeHookSourcePaths: runtimeHookSourcePaths.map((path) => this.resolveResourcePath(path)),
509
+ };
510
+ }
473
511
  updateSkillsFromPaths(skillPaths, metadataByPath) {
474
512
  let skillsResult;
475
513
  if (this.noSkills && skillPaths.length === 0) {