@fleetagent/pi-coding-agent 0.0.10 → 0.0.11

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 (87) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/core/agent-session.d.ts +1 -0
  3. package/dist/core/agent-session.d.ts.map +1 -1
  4. package/dist/core/agent-session.js +16 -3
  5. package/dist/core/agent-session.js.map +1 -1
  6. package/dist/core/bash-executor.d.ts +2 -0
  7. package/dist/core/bash-executor.d.ts.map +1 -1
  8. package/dist/core/bash-executor.js +1 -0
  9. package/dist/core/bash-executor.js.map +1 -1
  10. package/dist/core/extensions/index.d.ts +1 -1
  11. package/dist/core/extensions/index.d.ts.map +1 -1
  12. package/dist/core/extensions/index.js.map +1 -1
  13. package/dist/core/extensions/loader.d.ts.map +1 -1
  14. package/dist/core/extensions/loader.js +86 -0
  15. package/dist/core/extensions/loader.js.map +1 -1
  16. package/dist/core/extensions/runner.d.ts +3 -0
  17. package/dist/core/extensions/runner.d.ts.map +1 -1
  18. package/dist/core/extensions/runner.js +27 -0
  19. package/dist/core/extensions/runner.js.map +1 -1
  20. package/dist/core/extensions/types.d.ts +55 -2
  21. package/dist/core/extensions/types.d.ts.map +1 -1
  22. package/dist/core/extensions/types.js.map +1 -1
  23. package/dist/core/pi-agent.d.ts.map +1 -1
  24. package/dist/core/pi-agent.js +1 -0
  25. package/dist/core/pi-agent.js.map +1 -1
  26. package/dist/core/prompt-templates.d.ts +5 -0
  27. package/dist/core/prompt-templates.d.ts.map +1 -1
  28. package/dist/core/prompt-templates.js +115 -0
  29. package/dist/core/prompt-templates.js.map +1 -1
  30. package/dist/core/resource-loader.d.ts +15 -0
  31. package/dist/core/resource-loader.d.ts.map +1 -1
  32. package/dist/core/resource-loader.js +332 -40
  33. package/dist/core/resource-loader.js.map +1 -1
  34. package/dist/core/rules.d.ts +6 -0
  35. package/dist/core/rules.d.ts.map +1 -1
  36. package/dist/core/rules.js +216 -0
  37. package/dist/core/rules.js.map +1 -1
  38. package/dist/core/skills.d.ts +6 -0
  39. package/dist/core/skills.d.ts.map +1 -1
  40. package/dist/core/skills.js +216 -0
  41. package/dist/core/skills.js.map +1 -1
  42. package/dist/core/source-info.d.ts +2 -0
  43. package/dist/core/source-info.d.ts.map +1 -1
  44. package/dist/core/source-info.js +6 -0
  45. package/dist/core/source-info.js.map +1 -1
  46. package/dist/core/tools/bash.d.ts.map +1 -1
  47. package/dist/core/tools/bash.js +5 -5
  48. package/dist/core/tools/bash.js.map +1 -1
  49. package/dist/core/tools/edit.d.ts.map +1 -1
  50. package/dist/core/tools/edit.js +5 -5
  51. package/dist/core/tools/edit.js.map +1 -1
  52. package/dist/core/tools/find.d.ts.map +1 -1
  53. package/dist/core/tools/find.js +2 -2
  54. package/dist/core/tools/find.js.map +1 -1
  55. package/dist/core/tools/grep.d.ts.map +1 -1
  56. package/dist/core/tools/grep.js +2 -2
  57. package/dist/core/tools/grep.js.map +1 -1
  58. package/dist/core/tools/ls.d.ts.map +1 -1
  59. package/dist/core/tools/ls.js +2 -2
  60. package/dist/core/tools/ls.js.map +1 -1
  61. package/dist/core/tools/read.d.ts.map +1 -1
  62. package/dist/core/tools/read.js +3 -2
  63. package/dist/core/tools/read.js.map +1 -1
  64. package/dist/core/tools/render-utils.d.ts +9 -0
  65. package/dist/core/tools/render-utils.d.ts.map +1 -1
  66. package/dist/core/tools/render-utils.js +14 -0
  67. package/dist/core/tools/render-utils.js.map +1 -1
  68. package/dist/core/tools/write.d.ts.map +1 -1
  69. package/dist/core/tools/write.js +3 -2
  70. package/dist/core/tools/write.js.map +1 -1
  71. package/dist/index.d.ts +1 -1
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js.map +1 -1
  74. package/dist/main.d.ts.map +1 -1
  75. package/dist/main.js +7 -5
  76. package/dist/main.js.map +1 -1
  77. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  78. package/dist/modes/interactive/interactive-mode.js +21 -9
  79. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  80. package/docs/extensions.md +82 -3
  81. package/docs/usage.md +2 -0
  82. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  83. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  84. package/examples/extensions/sandbox/package.json +1 -1
  85. package/examples/extensions/with-deps/package.json +1 -1
  86. package/npm-shrinkwrap.json +12 -12
  87. package/package.json +4 -4
@@ -180,8 +180,12 @@ export class AgentSession {
180
180
  get modelRegistry() {
181
181
  return this._modelRegistry;
182
182
  }
183
+ getToolOperations() {
184
+ const shellPath = this.settingsManager.getShellPath();
185
+ return this._toolOperations ?? createLocalBashOperations({ cwd: this.session.getCwd(), shellPath });
186
+ }
183
187
  getToolBackendInfo() {
184
- return this._toolOperations?.getBackendInfo?.() ?? { type: "local", cwd: this._cwd };
188
+ return this.getToolOperations().getBackendInfo?.() ?? { type: "local", cwd: this._cwd };
185
189
  }
186
190
  async configureSshSandbox(options) {
187
191
  if (!(this._toolOperations instanceof DeferredSshToolOperations)) {
@@ -1137,7 +1141,7 @@ export class AgentSession {
1137
1141
  if (!skill)
1138
1142
  return text; // Unknown skill, pass through
1139
1143
  try {
1140
- const content = readFileSync(skill.filePath, "utf-8");
1144
+ const content = skill.content ?? readFileSync(skill.filePath, "utf-8");
1141
1145
  const body = stripFrontmatter(content).trim();
1142
1146
  const skillBlock = `<skill name="${skill.name}" location="${skill.filePath}">\nReferences are relative to ${skill.baseDir}.\n\n${body}\n</skill>`;
1143
1147
  return args ? `${skillBlock}\n\n${args}` : skillBlock;
@@ -1162,7 +1166,7 @@ export class AgentSession {
1162
1166
  if (!rule)
1163
1167
  return text; // Unknown rule, pass through
1164
1168
  try {
1165
- const content = readFileSync(rule.filePath, "utf-8");
1169
+ const content = rule.content ?? readFileSync(rule.filePath, "utf-8");
1166
1170
  const body = stripFrontmatter(content).trim();
1167
1171
  const ruleBlock = `<rule name="${rule.name}" location="${rule.filePath}">\nReferences are relative to ${rule.baseDir}.\n\n${body}\n</rule>`;
1168
1172
  return args ? `${ruleBlock}\n\n${args}` : ruleBlock;
@@ -2063,6 +2067,7 @@ export class AgentSession {
2063
2067
  this.agent.state.model = refreshedModel;
2064
2068
  }
2065
2069
  _bindExtensionCore(runner) {
2070
+ const getToolOperations = () => this.getToolOperations();
2066
2071
  const getCommands = () => {
2067
2072
  const extensionCommands = runner.getRegisteredCommands().map((command) => ({
2068
2073
  name: command.invocationName,
@@ -2154,6 +2159,14 @@ export class AgentSession {
2154
2159
  this._requestExtensionCompaction(options);
2155
2160
  },
2156
2161
  getSystemPrompt: () => this.systemPrompt,
2162
+ getToolOperations,
2163
+ getToolBackendInfo: () => this.getToolBackendInfo(),
2164
+ execToolBackend: (command, options) => {
2165
+ const operations = getToolOperations();
2166
+ const prefix = this.settingsManager.getShellCommandPrefix();
2167
+ const resolvedCommand = prefix ? `${prefix}\n${command}` : command;
2168
+ return executeBashWithOperations(resolvedCommand, options?.cwd ?? operations.cwd, operations, options);
2169
+ },
2157
2170
  }, {
2158
2171
  registerProvider: (name, config) => {
2159
2172
  this._modelRegistry.registerProvider(name, config);