@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.
- package/CHANGELOG.md +15 -0
- package/README.md +2 -1
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +17 -4
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/extensions/builtin/hooks/command-runner.d.ts +25 -0
- package/dist/core/extensions/builtin/hooks/command-runner.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/command-runner.js +152 -0
- package/dist/core/extensions/builtin/hooks/command-runner.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/command.d.ts +11 -0
- package/dist/core/extensions/builtin/hooks/command.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/command.js +180 -0
- package/dist/core/extensions/builtin/hooks/command.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/config-loader.d.ts +19 -0
- package/dist/core/extensions/builtin/hooks/config-loader.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/config-loader.js +125 -0
- package/dist/core/extensions/builtin/hooks/config-loader.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/diagnostics.d.ts +10 -0
- package/dist/core/extensions/builtin/hooks/diagnostics.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/diagnostics.js +14 -0
- package/dist/core/extensions/builtin/hooks/diagnostics.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/dispatcher.d.ts +60 -0
- package/dist/core/extensions/builtin/hooks/dispatcher.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/dispatcher.js +161 -0
- package/dist/core/extensions/builtin/hooks/dispatcher.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/handler.d.ts +12 -0
- package/dist/core/extensions/builtin/hooks/handler.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/handler.js +128 -0
- package/dist/core/extensions/builtin/hooks/handler.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/index.d.ts +6 -0
- package/dist/core/extensions/builtin/hooks/index.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/index.js +216 -0
- package/dist/core/extensions/builtin/hooks/index.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/lifecycle-adapter.d.ts +29 -0
- package/dist/core/extensions/builtin/hooks/lifecycle-adapter.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/lifecycle-adapter.js +276 -0
- package/dist/core/extensions/builtin/hooks/lifecycle-adapter.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/matcher.d.ts +7 -0
- package/dist/core/extensions/builtin/hooks/matcher.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/matcher.js +109 -0
- package/dist/core/extensions/builtin/hooks/matcher.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/output-bounds.d.ts +29 -0
- package/dist/core/extensions/builtin/hooks/output-bounds.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/output-bounds.js +47 -0
- package/dist/core/extensions/builtin/hooks/output-bounds.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/output-parser.d.ts +27 -0
- package/dist/core/extensions/builtin/hooks/output-parser.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/output-parser.js +168 -0
- package/dist/core/extensions/builtin/hooks/output-parser.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/plugin-loader.d.ts +11 -0
- package/dist/core/extensions/builtin/hooks/plugin-loader.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/plugin-loader.js +138 -0
- package/dist/core/extensions/builtin/hooks/plugin-loader.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/plugin-manifest.d.ts +47 -0
- package/dist/core/extensions/builtin/hooks/plugin-manifest.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/plugin-manifest.js +86 -0
- package/dist/core/extensions/builtin/hooks/plugin-manifest.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/prompt-adapter.d.ts +30 -0
- package/dist/core/extensions/builtin/hooks/prompt-adapter.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/prompt-adapter.js +59 -0
- package/dist/core/extensions/builtin/hooks/prompt-adapter.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/safety.d.ts +14 -0
- package/dist/core/extensions/builtin/hooks/safety.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/safety.js +179 -0
- package/dist/core/extensions/builtin/hooks/safety.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/schema.d.ts +3 -0
- package/dist/core/extensions/builtin/hooks/schema.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/schema.js +94 -0
- package/dist/core/extensions/builtin/hooks/schema.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/stop-adapter.d.ts +18 -0
- package/dist/core/extensions/builtin/hooks/stop-adapter.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/stop-adapter.js +282 -0
- package/dist/core/extensions/builtin/hooks/stop-adapter.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/tool-adapter.d.ts +11 -0
- package/dist/core/extensions/builtin/hooks/tool-adapter.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/tool-adapter.js +158 -0
- package/dist/core/extensions/builtin/hooks/tool-adapter.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/trust-storage.d.ts +24 -0
- package/dist/core/extensions/builtin/hooks/trust-storage.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/trust-storage.js +102 -0
- package/dist/core/extensions/builtin/hooks/trust-storage.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/trust.d.ts +34 -0
- package/dist/core/extensions/builtin/hooks/trust.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/trust.js +194 -0
- package/dist/core/extensions/builtin/hooks/trust.js.map +1 -0
- package/dist/core/extensions/builtin/hooks/types.d.ts +134 -0
- package/dist/core/extensions/builtin/hooks/types.d.ts.map +1 -0
- package/dist/core/extensions/builtin/hooks/types.js +36 -0
- package/dist/core/extensions/builtin/hooks/types.js.map +1 -0
- package/dist/core/extensions/builtin/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/index.js +2 -0
- package/dist/core/extensions/builtin/index.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +5 -0
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +20 -1
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +17 -0
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/package-manager.d.ts +1 -0
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +14 -1
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/resource-loader.d.ts +14 -1
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +38 -0
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/settings-manager.d.ts +2 -0
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +2 -2
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/utils/version-check.d.ts +1 -0
- package/dist/utils/version-check.d.ts.map +1 -1
- package/dist/utils/version-check.js +7 -0
- package/dist/utils/version-check.js.map +1 -1
- package/docs/extensions.md +450 -0
- package/docs/index.md +1 -1
- package/docs/packages.md +9 -6
- package/examples/extensions/README.md +1 -0
- package/node_modules/@earendil-works/pi-agent-core/package.json +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts +17 -24
- package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.models.d.ts +17 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.models.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.models.js +17 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.models.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/groq.models.js +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/groq.models.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.d.ts +0 -24
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.js +16 -35
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.models.js +12 -12
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-ams.models.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.models.js +12 -12
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-cn.models.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.models.js +12 -12
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi-token-plan-sgp.models.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi.models.js +15 -15
- package/node_modules/@earendil-works/pi-ai/dist/providers/xiaomi.models.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/package.json +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/tui.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/tui.js +3 -0
- package/node_modules/@earendil-works/pi-tui/dist/tui.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/package.json +1 -1
- package/npm-shrinkwrap.json +9 -9
- package/package.json +4 -4
|
@@ -63,12 +63,13 @@ function resourcePrecedenceRank(m) {
|
|
|
63
63
|
const scopeBase = m.scope === "project" ? 0 : 2;
|
|
64
64
|
return scopeBase + (m.source === "local" ? 0 : 1);
|
|
65
65
|
}
|
|
66
|
-
const RESOURCE_TYPES = ["extensions", "skills", "prompts", "themes"];
|
|
66
|
+
const RESOURCE_TYPES = ["extensions", "skills", "prompts", "themes", "hooks"];
|
|
67
67
|
const FILE_PATTERNS = {
|
|
68
68
|
extensions: /\.(ts|js)$/,
|
|
69
69
|
skills: /\.md$/,
|
|
70
70
|
prompts: /\.md$/,
|
|
71
71
|
themes: /\.json$/,
|
|
72
|
+
hooks: /\.json$/,
|
|
72
73
|
};
|
|
73
74
|
const IGNORE_FILE_NAMES = [".gitignore", ".ignore", ".fdignore"];
|
|
74
75
|
function toPosixPath(p) {
|
|
@@ -1862,24 +1863,28 @@ export class DefaultPackageManager {
|
|
|
1862
1863
|
skills: (globalSettings.skills ?? []),
|
|
1863
1864
|
prompts: (globalSettings.prompts ?? []),
|
|
1864
1865
|
themes: (globalSettings.themes ?? []),
|
|
1866
|
+
hooks: (globalSettings.hooks ?? []),
|
|
1865
1867
|
};
|
|
1866
1868
|
const projectOverrides = {
|
|
1867
1869
|
extensions: (projectSettings.extensions ?? []),
|
|
1868
1870
|
skills: (projectSettings.skills ?? []),
|
|
1869
1871
|
prompts: (projectSettings.prompts ?? []),
|
|
1870
1872
|
themes: (projectSettings.themes ?? []),
|
|
1873
|
+
hooks: (projectSettings.hooks ?? []),
|
|
1871
1874
|
};
|
|
1872
1875
|
const userDirs = {
|
|
1873
1876
|
extensions: join(globalBaseDir, "extensions"),
|
|
1874
1877
|
skills: join(globalBaseDir, "skills"),
|
|
1875
1878
|
prompts: join(globalBaseDir, "prompts"),
|
|
1876
1879
|
themes: join(globalBaseDir, "themes"),
|
|
1880
|
+
hooks: join(globalBaseDir, "hooks"),
|
|
1877
1881
|
};
|
|
1878
1882
|
const projectDirs = {
|
|
1879
1883
|
extensions: join(projectBaseDir, "extensions"),
|
|
1880
1884
|
skills: join(projectBaseDir, "skills"),
|
|
1881
1885
|
prompts: join(projectBaseDir, "prompts"),
|
|
1882
1886
|
themes: join(projectBaseDir, "themes"),
|
|
1887
|
+
hooks: join(projectBaseDir, "hooks"),
|
|
1883
1888
|
};
|
|
1884
1889
|
const legacyProjectBaseDir = join(this.cwd, ".pi");
|
|
1885
1890
|
const legacyProjectDirs = {
|
|
@@ -1887,6 +1892,7 @@ export class DefaultPackageManager {
|
|
|
1887
1892
|
skills: join(legacyProjectBaseDir, "skills"),
|
|
1888
1893
|
prompts: join(legacyProjectBaseDir, "prompts"),
|
|
1889
1894
|
themes: join(legacyProjectBaseDir, "themes"),
|
|
1895
|
+
hooks: join(legacyProjectBaseDir, "hooks"),
|
|
1890
1896
|
};
|
|
1891
1897
|
const userAgentsSkillsDir = join(getHomeDir(), ".agents", "skills");
|
|
1892
1898
|
const projectTrusted = this.settingsManager.isProjectTrusted();
|
|
@@ -1918,6 +1924,7 @@ export class DefaultPackageManager {
|
|
|
1918
1924
|
if (projectTrusted) {
|
|
1919
1925
|
addResources("prompts", collectAutoPromptEntries(projectDirs.prompts), projectMetadata, projectOverrides.prompts, projectBaseDir);
|
|
1920
1926
|
addResources("themes", collectAutoThemeEntries(projectDirs.themes), projectMetadata, projectOverrides.themes, projectBaseDir);
|
|
1927
|
+
addResources("hooks", collectFiles(projectDirs.hooks, FILE_PATTERNS.hooks), projectMetadata, projectOverrides.hooks, projectBaseDir);
|
|
1921
1928
|
}
|
|
1922
1929
|
if (resolve(legacyProjectBaseDir) !== resolve(projectBaseDir)) {
|
|
1923
1930
|
const legacyProjectMetadata = {
|
|
@@ -1928,6 +1935,7 @@ export class DefaultPackageManager {
|
|
|
1928
1935
|
addResources("skills", collectAutoSkillEntries(legacyProjectDirs.skills, "pi"), legacyProjectMetadata, projectOverrides.skills, legacyProjectBaseDir);
|
|
1929
1936
|
addResources("prompts", collectAutoPromptEntries(legacyProjectDirs.prompts), legacyProjectMetadata, projectOverrides.prompts, legacyProjectBaseDir);
|
|
1930
1937
|
addResources("themes", collectAutoThemeEntries(legacyProjectDirs.themes), legacyProjectMetadata, projectOverrides.themes, legacyProjectBaseDir);
|
|
1938
|
+
addResources("hooks", collectFiles(legacyProjectDirs.hooks, FILE_PATTERNS.hooks), legacyProjectMetadata, projectOverrides.hooks, legacyProjectBaseDir);
|
|
1931
1939
|
}
|
|
1932
1940
|
// User extensions from ~/.pi/agent/
|
|
1933
1941
|
addResources("extensions", collectAutoExtensionEntries(userDirs.extensions), userMetadata, userOverrides.extensions, globalBaseDir);
|
|
@@ -1942,6 +1950,7 @@ export class DefaultPackageManager {
|
|
|
1942
1950
|
addResources("skills", collectAutoSkillEntries(userAgentsSkillsDir, "agents"), userAgentsMetadata, userOverrides.skills, userAgentsBaseDir);
|
|
1943
1951
|
addResources("prompts", collectAutoPromptEntries(userDirs.prompts), userMetadata, userOverrides.prompts, globalBaseDir);
|
|
1944
1952
|
addResources("themes", collectAutoThemeEntries(userDirs.themes), userMetadata, userOverrides.themes, globalBaseDir);
|
|
1953
|
+
addResources("hooks", collectFiles(userDirs.hooks, FILE_PATTERNS.hooks), userMetadata, userOverrides.hooks, globalBaseDir);
|
|
1945
1954
|
}
|
|
1946
1955
|
collectFilesFromPaths(paths, resourceType) {
|
|
1947
1956
|
const files = [];
|
|
@@ -1973,6 +1982,8 @@ export class DefaultPackageManager {
|
|
|
1973
1982
|
return accumulator.prompts;
|
|
1974
1983
|
case "themes":
|
|
1975
1984
|
return accumulator.themes;
|
|
1985
|
+
case "hooks":
|
|
1986
|
+
return accumulator.hooks;
|
|
1976
1987
|
default:
|
|
1977
1988
|
throw new Error(`Unknown resource type: ${resourceType}`);
|
|
1978
1989
|
}
|
|
@@ -1990,6 +2001,7 @@ export class DefaultPackageManager {
|
|
|
1990
2001
|
skills: new Map(),
|
|
1991
2002
|
prompts: new Map(),
|
|
1992
2003
|
themes: new Map(),
|
|
2004
|
+
hooks: new Map(),
|
|
1993
2005
|
};
|
|
1994
2006
|
}
|
|
1995
2007
|
toResolvedPaths(accumulator) {
|
|
@@ -2014,6 +2026,7 @@ export class DefaultPackageManager {
|
|
|
2014
2026
|
skills: mapToResolved(accumulator.skills),
|
|
2015
2027
|
prompts: mapToResolved(accumulator.prompts),
|
|
2016
2028
|
themes: mapToResolved(accumulator.themes),
|
|
2029
|
+
hooks: mapToResolved(accumulator.hooks),
|
|
2017
2030
|
};
|
|
2018
2031
|
}
|
|
2019
2032
|
spawnCommand(command, args, options) {
|