@agimon-ai/doompi-grep 0.0.1-alpha.44 → 0.0.1-alpha.45

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 (111) hide show
  1. package/dist/api-contracts.cjs +7 -1
  2. package/dist/api-contracts.d.cts +1 -1
  3. package/dist/api-contracts.d.mts +1 -1
  4. package/dist/api-contracts.mjs +2 -1
  5. package/dist/extensions/pi.cjs +18 -1
  6. package/dist/extensions/pi.cjs.map +1 -1
  7. package/dist/extensions/pi.d.cts +3 -3
  8. package/dist/extensions/pi.d.cts.map +1 -1
  9. package/dist/extensions/pi.d.mts +3 -3
  10. package/dist/extensions/pi.d.mts.map +1 -1
  11. package/dist/extensions/pi.mjs +13 -1
  12. package/dist/extensions/pi.mjs.map +1 -1
  13. package/dist/extensions/server.cjs +22 -1
  14. package/dist/extensions/server.cjs.map +1 -1
  15. package/dist/extensions/server.d.cts +3 -3
  16. package/dist/extensions/server.d.cts.map +1 -1
  17. package/dist/extensions/server.d.mts +3 -3
  18. package/dist/extensions/server.d.mts.map +1 -1
  19. package/dist/extensions/server.mjs +17 -1
  20. package/dist/extensions/server.mjs.map +1 -1
  21. package/dist/extensions/web.mjs +102 -0
  22. package/dist/extensions/web.mjs.map +1 -0
  23. package/dist/index.cjs +3 -1
  24. package/dist/index.d.cts +2 -4
  25. package/dist/index.d.mts +2 -4
  26. package/dist/index.mjs +2 -1
  27. package/dist/src/extensions/workspaces/sessions/(backend)/tool/_lib/grepTool.cjs +25 -0
  28. package/dist/src/extensions/workspaces/sessions/(backend)/tool/_lib/grepTool.cjs.map +1 -0
  29. package/dist/src/extensions/workspaces/sessions/(backend)/tool/_lib/grepTool.mjs +25 -0
  30. package/dist/src/extensions/workspaces/sessions/(backend)/tool/_lib/grepTool.mjs.map +1 -0
  31. package/dist/src/extensions/workspaces/sessions/(backend)/tool/grep.cli.cjs +7 -0
  32. package/dist/src/extensions/workspaces/sessions/(backend)/tool/grep.cli.cjs.map +1 -0
  33. package/dist/src/extensions/workspaces/sessions/(backend)/tool/grep.cli.mjs +8 -0
  34. package/dist/src/extensions/workspaces/sessions/(backend)/tool/grep.cli.mjs.map +1 -0
  35. package/dist/src/extensions/workspaces/sessions/(backend)/tool/grep.server.cjs +7 -0
  36. package/dist/src/extensions/workspaces/sessions/(backend)/tool/grep.server.cjs.map +1 -0
  37. package/dist/src/extensions/workspaces/sessions/(backend)/tool/grep.server.mjs +8 -0
  38. package/dist/src/extensions/workspaces/sessions/(backend)/tool/grep.server.mjs.map +1 -0
  39. package/dist/src/extensions/workspaces/sessions/(frontend)/tool/_lib/grepRenderer.cli.cjs +22 -0
  40. package/dist/src/extensions/workspaces/sessions/(frontend)/tool/_lib/grepRenderer.cli.cjs.map +1 -0
  41. package/dist/src/extensions/workspaces/sessions/(frontend)/tool/_lib/grepRenderer.cli.mjs +22 -0
  42. package/dist/src/extensions/workspaces/sessions/(frontend)/tool/_lib/grepRenderer.cli.mjs.map +1 -0
  43. package/dist/src/extensions/workspaces/sessions/(frontend)/tool/grep.cli.cjs +7 -0
  44. package/dist/src/extensions/workspaces/sessions/(frontend)/tool/grep.cli.cjs.map +1 -0
  45. package/dist/src/extensions/workspaces/sessions/(frontend)/tool/grep.cli.mjs +8 -0
  46. package/dist/src/extensions/workspaces/sessions/(frontend)/tool/grep.cli.mjs.map +1 -0
  47. package/dist/src/schemas/apiContracts.cjs +13 -0
  48. package/dist/src/schemas/apiContracts.cjs.map +1 -0
  49. package/dist/{schemas → src/schemas}/apiContracts.d.cts.map +1 -1
  50. package/dist/{schemas → src/schemas}/apiContracts.d.mts.map +1 -1
  51. package/dist/src/schemas/apiContracts.mjs +13 -0
  52. package/dist/src/schemas/apiContracts.mjs.map +1 -0
  53. package/dist/src/schemas/grepTool.cjs +21 -0
  54. package/dist/src/schemas/grepTool.cjs.map +1 -0
  55. package/dist/src/schemas/grepTool.d.cts.map +1 -0
  56. package/dist/src/schemas/grepTool.d.mts.map +1 -0
  57. package/dist/src/schemas/grepTool.mjs +21 -0
  58. package/dist/src/schemas/grepTool.mjs.map +1 -0
  59. package/dist/src/services/grepTool/index.cjs +189 -0
  60. package/dist/src/services/grepTool/index.cjs.map +1 -0
  61. package/dist/src/services/grepTool/index.mjs +184 -0
  62. package/dist/src/services/grepTool/index.mjs.map +1 -0
  63. package/dist/src/services/ripgrep/index.cjs +110 -0
  64. package/dist/src/services/ripgrep/index.cjs.map +1 -0
  65. package/dist/src/services/ripgrep/index.mjs +108 -0
  66. package/dist/src/services/ripgrep/index.mjs.map +1 -0
  67. package/package.json +20 -13
  68. package/dist/constants/package.cjs +0 -2
  69. package/dist/constants/package.cjs.map +0 -1
  70. package/dist/constants/package.mjs +0 -2
  71. package/dist/constants/package.mjs.map +0 -1
  72. package/dist/schemas/apiContracts.cjs +0 -2
  73. package/dist/schemas/apiContracts.cjs.map +0 -1
  74. package/dist/schemas/apiContracts.mjs +0 -2
  75. package/dist/schemas/apiContracts.mjs.map +0 -1
  76. package/dist/schemas/grepTool.cjs +0 -2
  77. package/dist/schemas/grepTool.cjs.map +0 -1
  78. package/dist/schemas/grepTool.d.cts.map +0 -1
  79. package/dist/schemas/grepTool.d.mts.map +0 -1
  80. package/dist/schemas/grepTool.mjs +0 -2
  81. package/dist/schemas/grepTool.mjs.map +0 -1
  82. package/dist/services/grepTool/index.cjs +0 -10
  83. package/dist/services/grepTool/index.cjs.map +0 -1
  84. package/dist/services/grepTool/index.d.cts +0 -1
  85. package/dist/services/grepTool/index.d.mts +0 -1
  86. package/dist/services/grepTool/index.mjs +0 -10
  87. package/dist/services/grepTool/index.mjs.map +0 -1
  88. package/dist/services/headlessGrep/index.cjs +0 -4
  89. package/dist/services/headlessGrep/index.cjs.map +0 -1
  90. package/dist/services/headlessGrep/index.d.cts +0 -6
  91. package/dist/services/headlessGrep/index.d.cts.map +0 -1
  92. package/dist/services/headlessGrep/index.d.mts +0 -6
  93. package/dist/services/headlessGrep/index.d.mts.map +0 -1
  94. package/dist/services/headlessGrep/index.mjs +0 -4
  95. package/dist/services/headlessGrep/index.mjs.map +0 -1
  96. package/dist/tools/piGrep.cjs +0 -2
  97. package/dist/tools/piGrep.cjs.map +0 -1
  98. package/dist/tools/piGrep.d.cts +0 -9
  99. package/dist/tools/piGrep.d.cts.map +0 -1
  100. package/dist/tools/piGrep.d.mts +0 -9
  101. package/dist/tools/piGrep.d.mts.map +0 -1
  102. package/dist/tools/piGrep.mjs +0 -2
  103. package/dist/tools/piGrep.mjs.map +0 -1
  104. package/src/extensions/web.ts +0 -14
  105. package/src/web/components/GrepToolMessage.tsx +0 -65
  106. package/src/web/lib/grepToolView.ts +0 -21
  107. package/src/web/tsconfig.json +0 -23
  108. /package/dist/{schemas → src/schemas}/apiContracts.d.cts +0 -0
  109. /package/dist/{schemas → src/schemas}/apiContracts.d.mts +0 -0
  110. /package/dist/{schemas → src/schemas}/grepTool.d.cts +0 -0
  111. /package/dist/{schemas → src/schemas}/grepTool.d.mts +0 -0
@@ -1 +1,7 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./schemas/apiContracts.cjs");exports.apiContracts=e.apiContracts,exports.default=e.apiContracts;
1
+ Object.defineProperties(exports, {
2
+ __esModule: { value: true },
3
+ [Symbol.toStringTag]: { value: "Module" }
4
+ });
5
+ const require_apiContracts = require("./src/schemas/apiContracts.cjs");
6
+ exports.apiContracts = require_apiContracts.apiContracts;
7
+ exports.default = require_apiContracts.apiContracts;
@@ -1,2 +1,2 @@
1
- import { apiContracts } from "./schemas/apiContracts.cjs";
1
+ import { apiContracts } from "./src/schemas/apiContracts.cjs";
2
2
  export { apiContracts, apiContracts as default };
@@ -1,2 +1,2 @@
1
- import { apiContracts } from "./schemas/apiContracts.mjs";
1
+ import { apiContracts } from "./src/schemas/apiContracts.mjs";
2
2
  export { apiContracts, apiContracts as default };
@@ -1 +1,2 @@
1
- import{apiContracts as e}from"./schemas/apiContracts.mjs";export{e as apiContracts,e as default};
1
+ import { apiContracts } from "./src/schemas/apiContracts.mjs";
2
+ export { apiContracts, apiContracts as default };
@@ -1,2 +1,19 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../tools/piGrep.cjs"),t=require("../constants/package.cjs");let n=require("@agimon-ai/doompi-core/pi-extension");const r=(0,n.definePiExtension)(t.PACKAGE_SOURCE,()=>({toolOverrides:[{source:t.PACKAGE_SOURCE,tools:[`grep`],replacements:[(0,n.definePiTool)(e.createHashlineGrepTool())]}]}));exports.activateDoomPiGrepExtension=r,exports.default=r;
1
+ Object.defineProperties(exports, {
2
+ __esModule: { value: true },
3
+ [Symbol.toStringTag]: { value: "Module" }
4
+ });
5
+ const require_grep_cli = require("../src/extensions/workspaces/sessions/(backend)/tool/grep.cli.cjs");
6
+ const require_grep_cli$1 = require("../src/extensions/workspaces/sessions/(frontend)/tool/grep.cli.cjs");
7
+ let _agimon_ai_doompi_core_pi_extension = require("@agimon-ai/doompi-core/pi-extension");
8
+ //#region generated/pi.ts
9
+ const at = (value, context) => typeof value === "function" ? value(context) : value;
10
+ const via = (identity, value) => ({
11
+ ...identity,
12
+ ...value
13
+ });
14
+ const extension = (0, _agimon_ai_doompi_core_pi_extension.definePiExtension)("@agimon-ai/doompi-grep", (context) => ({ ...(0, _agimon_ai_doompi_core_pi_extension.piToolContributions)("@agimon-ai/doompi-grep", [via({ name: "grep" }, (0, _agimon_ai_doompi_core_pi_extension.withPiRenderers)(at(require_grep_cli.default, context), at(require_grep_cli$1.default, context)))]) }));
15
+ //#endregion
16
+ exports.default = extension;
17
+ exports.extension = extension;
18
+
2
19
  //# sourceMappingURL=pi.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"pi.cjs","names":["definePiExtension","PACKAGE_SOURCE","definePiTool","createHashlineGrepTool"],"sources":["../../src/extensions/pi.ts"],"sourcesContent":["import { definePiExtension, definePiTool } from '@agimon-ai/doompi-core/pi-extension';\n\nimport { PACKAGE_SOURCE } from '../constants/package';\nimport { createHashlineGrepTool } from '../tools/piGrep';\n\nexport const activateDoomPiGrepExtension = definePiExtension(PACKAGE_SOURCE, () => ({\n toolOverrides: [{ source: PACKAGE_SOURCE, tools: ['grep'], replacements: [definePiTool(createHashlineGrepTool())] }],\n}));\nexport default activateDoomPiGrepExtension;\n"],"mappings":"iOAKA,MAAa,GAAA,EAA8BA,EAAAA,kBAAAA,CAAkBC,EAAAA,oBAAuB,CAClF,cAAe,CAAC,CAAE,OAAQA,EAAAA,eAAgB,MAAO,CAAC,MAAM,EAAG,aAAc,EAAA,EAACC,EAAAA,aAAAA,CAAaC,EAAAA,uBAAuB,CAAC,CAAC,CAAE,CAAC,CACrH,EAAE"}
1
+ {"version":3,"file":"pi.cjs","names":["definePiExtension","piToolContributions","withPiRenderers","toolGrep","renderGrep"],"sources":["../../generated/pi.ts"],"sourcesContent":["// Generated by @agimon-ai/doompi-build. Do not edit by hand.\nimport { definePiExtension, piToolContributions, withPiRenderers, type PiPluginContext } from '@agimon-ai/doompi-core/pi-extension';\n\nimport toolGrep from '../src/extensions/workspaces/sessions/(backend)/tool/grep.cli';\nimport renderGrep from '../src/extensions/workspaces/sessions/(frontend)/tool/grep.cli';\n\ntype OptionsOf<T> = T extends (context: PiPluginContext<infer Options>) => unknown ? Options : never;\ntype InferredOptions = Exclude<OptionsOf<typeof toolGrep>, undefined>;\ntype Intersect<Union> =\n (Union extends unknown ? (value: Union) => void : never) extends (value: infer Value) => void ? Value : never;\ntype ExtensionOptions = [InferredOptions] extends [never] ? undefined : Intersect<InferredOptions>;\n\ntype Factory<T, C> = (context: C) => T;\nconst at = <T, C>(value: T | Factory<T, C>, context: C): T =>\n typeof value === 'function' ? (value as Factory<T, C>)(context) : value;\nconst via = <T>(identity: Record<string, unknown>, value: unknown): T => ({ ...identity, ...(value as object) }) as T;\n\nexport const extension = definePiExtension<ExtensionOptions>('@agimon-ai/doompi-grep', (context) => ({\n ...piToolContributions('@agimon-ai/doompi-grep', [via({ name: 'grep' }, withPiRenderers(at(toolGrep, context), at(renderGrep, context)))]),\n}));\n\nexport default extension;\n"],"mappings":";;;;;;;;AAaA,MAAM,MAAY,OAA0B,YAC1C,OAAO,UAAU,aAAc,MAAwB,OAAO,IAAI;AACpE,MAAM,OAAU,UAAmC,WAAuB;CAAE,GAAG;CAAU,GAAI;AAAiB;AAE9G,MAAa,aAAA,GAAYA,oCAAAA,kBAAAA,CAAoC,2BAA2B,aAAa,EACnG,IAAA,GAAGC,oCAAAA,oBAAAA,CAAoB,0BAA0B,CAAC,IAAI,EAAE,MAAM,OAAO,IAAA,GAAGC,oCAAAA,gBAAAA,CAAgB,GAAGC,iBAAAA,SAAU,OAAO,GAAG,GAAGC,mBAAAA,SAAY,OAAO,CAAC,CAAC,CAAC,CAAC,EAC3I,EAAE"}
@@ -1,5 +1,5 @@
1
- //#region src/extensions/pi.d.ts
2
- export declare const activateDoomPiGrepExtension: import("@agimon-ai/doompi-core/runtime-pi-extension").DefinedPiExtension<undefined>;
1
+ //#region generated/pi.d.ts
2
+ export declare const extension: import("@agimon-ai/doompi-core/runtime-pi-extension").DefinedPiExtension<undefined>;
3
3
  //#endregion
4
- export { activateDoomPiGrepExtension as default };
4
+ export { extension as default };
5
5
  //# sourceMappingURL=pi.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pi.d.cts","names":[],"sources":["../../src/extensions/pi.ts"],"mappings":";qBAKa,mFAA2B"}
1
+ {"version":3,"file":"pi.d.cts","names":[],"sources":["../../generated/pi.ts"],"mappings":";qBAiBa,iEAAS"}
@@ -1,5 +1,5 @@
1
- //#region src/extensions/pi.d.ts
2
- export declare const activateDoomPiGrepExtension: import("@agimon-ai/doompi-core/runtime-pi-extension").DefinedPiExtension<undefined>;
1
+ //#region generated/pi.d.ts
2
+ export declare const extension: import("@agimon-ai/doompi-core/runtime-pi-extension").DefinedPiExtension<undefined>;
3
3
  //#endregion
4
- export { activateDoomPiGrepExtension as default };
4
+ export { extension as default };
5
5
  //# sourceMappingURL=pi.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pi.d.mts","names":[],"sources":["../../src/extensions/pi.ts"],"mappings":";qBAKa,mFAA2B"}
1
+ {"version":3,"file":"pi.d.mts","names":[],"sources":["../../generated/pi.ts"],"mappings":";qBAiBa,iEAAS"}
@@ -1,2 +1,14 @@
1
- import{createHashlineGrepTool as e}from"../tools/piGrep.mjs";import{PACKAGE_SOURCE as t}from"../constants/package.mjs";import{definePiExtension as n,definePiTool as r}from"@agimon-ai/doompi-core/pi-extension";const i=n(t,()=>({toolOverrides:[{source:t,tools:[`grep`],replacements:[r(e())]}]}));export{i as activateDoomPiGrepExtension,i as default};
1
+ import grep_cli_default from "../src/extensions/workspaces/sessions/(backend)/tool/grep.cli.mjs";
2
+ import grep_cli_default$1 from "../src/extensions/workspaces/sessions/(frontend)/tool/grep.cli.mjs";
3
+ import { definePiExtension, piToolContributions, withPiRenderers } from "@agimon-ai/doompi-core/pi-extension";
4
+ //#region generated/pi.ts
5
+ const at = (value, context) => typeof value === "function" ? value(context) : value;
6
+ const via = (identity, value) => ({
7
+ ...identity,
8
+ ...value
9
+ });
10
+ const extension = definePiExtension("@agimon-ai/doompi-grep", (context) => ({ ...piToolContributions("@agimon-ai/doompi-grep", [via({ name: "grep" }, withPiRenderers(at(grep_cli_default, context), at(grep_cli_default$1, context)))]) }));
11
+ //#endregion
12
+ export { extension as default, extension };
13
+
2
14
  //# sourceMappingURL=pi.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"pi.mjs","names":[],"sources":["../../src/extensions/pi.ts"],"sourcesContent":["import { definePiExtension, definePiTool } from '@agimon-ai/doompi-core/pi-extension';\n\nimport { PACKAGE_SOURCE } from '../constants/package';\nimport { createHashlineGrepTool } from '../tools/piGrep';\n\nexport const activateDoomPiGrepExtension = definePiExtension(PACKAGE_SOURCE, () => ({\n toolOverrides: [{ source: PACKAGE_SOURCE, tools: ['grep'], replacements: [definePiTool(createHashlineGrepTool())] }],\n}));\nexport default activateDoomPiGrepExtension;\n"],"mappings":"iNAKA,MAAa,EAA8B,EAAkB,OAAuB,CAClF,cAAe,CAAC,CAAE,OAAQ,EAAgB,MAAO,CAAC,MAAM,EAAG,aAAc,CAAC,EAAa,EAAuB,CAAC,CAAC,CAAE,CAAC,CACrH,EAAE"}
1
+ {"version":3,"file":"pi.mjs","names":["toolGrep","renderGrep"],"sources":["../../generated/pi.ts"],"sourcesContent":["// Generated by @agimon-ai/doompi-build. Do not edit by hand.\nimport { definePiExtension, piToolContributions, withPiRenderers, type PiPluginContext } from '@agimon-ai/doompi-core/pi-extension';\n\nimport toolGrep from '../src/extensions/workspaces/sessions/(backend)/tool/grep.cli';\nimport renderGrep from '../src/extensions/workspaces/sessions/(frontend)/tool/grep.cli';\n\ntype OptionsOf<T> = T extends (context: PiPluginContext<infer Options>) => unknown ? Options : never;\ntype InferredOptions = Exclude<OptionsOf<typeof toolGrep>, undefined>;\ntype Intersect<Union> =\n (Union extends unknown ? (value: Union) => void : never) extends (value: infer Value) => void ? Value : never;\ntype ExtensionOptions = [InferredOptions] extends [never] ? undefined : Intersect<InferredOptions>;\n\ntype Factory<T, C> = (context: C) => T;\nconst at = <T, C>(value: T | Factory<T, C>, context: C): T =>\n typeof value === 'function' ? (value as Factory<T, C>)(context) : value;\nconst via = <T>(identity: Record<string, unknown>, value: unknown): T => ({ ...identity, ...(value as object) }) as T;\n\nexport const extension = definePiExtension<ExtensionOptions>('@agimon-ai/doompi-grep', (context) => ({\n ...piToolContributions('@agimon-ai/doompi-grep', [via({ name: 'grep' }, withPiRenderers(at(toolGrep, context), at(renderGrep, context)))]),\n}));\n\nexport default extension;\n"],"mappings":";;;;AAaA,MAAM,MAAY,OAA0B,YAC1C,OAAO,UAAU,aAAc,MAAwB,OAAO,IAAI;AACpE,MAAM,OAAU,UAAmC,WAAuB;CAAE,GAAG;CAAU,GAAI;AAAiB;AAE9G,MAAa,YAAY,kBAAoC,2BAA2B,aAAa,EACnG,GAAG,oBAAoB,0BAA0B,CAAC,IAAI,EAAE,MAAM,OAAO,GAAG,gBAAgB,GAAGA,kBAAU,OAAO,GAAG,GAAGC,oBAAY,OAAO,CAAC,CAAC,CAAC,CAAC,EAC3I,EAAE"}
@@ -1,2 +1,23 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../services/headlessGrep/index.cjs"),t=require("../constants/package.cjs"),n=(0,require("@agimon-ai/doompi-core/server-facet").defineServerPlugin)({name:t.PACKAGE_SOURCE,session:()=>({tools:[e.createHeadlessGrepTool()]})});exports.default=n,exports.grepServerFacet=n;
1
+ Object.defineProperties(exports, {
2
+ __esModule: { value: true },
3
+ [Symbol.toStringTag]: { value: "Module" }
4
+ });
5
+ const require_grep_server = require("../src/extensions/workspaces/sessions/(backend)/tool/grep.server.cjs");
6
+ let _agimon_ai_doompi_core_server_facet = require("@agimon-ai/doompi-core/server-facet");
7
+ //#region generated/server.ts
8
+ const at = (value, context) => typeof value === "function" ? value(context) : value;
9
+ const via = (identity, value) => ({
10
+ ...identity,
11
+ ...value
12
+ });
13
+ const facet = (0, _agimon_ai_doompi_core_server_facet.defineServerPlugin)({
14
+ name: "@agimon-ai/doompi-grep",
15
+ session: (context) => ({ get tools() {
16
+ return [via({ name: "grep" }, at(require_grep_server.default, context))];
17
+ } })
18
+ });
19
+ //#endregion
20
+ exports.default = facet;
21
+ exports.facet = facet;
22
+
2
23
  //# sourceMappingURL=server.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.cjs","names":["defineServerPlugin","PACKAGE_SOURCE","createHeadlessGrepTool"],"sources":["../../src/extensions/server.ts"],"sourcesContent":["import { defineServerPlugin } from '@agimon-ai/doompi-core/server-facet';\n\nimport { PACKAGE_SOURCE } from '../constants/package';\nimport { createHeadlessGrepTool } from '../services/headlessGrep';\n\nexport const grepServerFacet = defineServerPlugin({\n name: PACKAGE_SOURCE,\n session: () => ({ tools: [createHeadlessGrepTool()] }),\n});\nexport default grepServerFacet;\n"],"mappings":"2LAKa,GAAA,+CAAkBA,CAAAA,CAAAA,mBAAAA,CAAmB,CAChD,KAAMC,EAAAA,eACN,aAAgB,CAAE,MAAO,CAACC,EAAAA,uBAAuB,CAAC,CAAE,EACtD,CAAC"}
1
+ {"version":3,"file":"server.cjs","names":["defineServerPlugin","toolGrep"],"sources":["../../generated/server.ts"],"sourcesContent":["// Generated by @agimon-ai/doompi-build. Do not edit by hand.\nimport { defineServerPlugin, type DoomServerSessionPlugin } from '@agimon-ai/doompi-core/server-facet';\n\nimport toolGrep from '../src/extensions/workspaces/sessions/(backend)/tool/grep.server';\n\ntype Factory<T, C> = (context: C) => T;\nconst at = <T, C>(value: T | Factory<T, C>, context: C): T =>\n typeof value === 'function' ? (value as Factory<T, C>)(context) : value;\nconst via = <T>(identity: Record<string, unknown>, value: unknown): T => ({ ...identity, ...(value as object) }) as T;\n\nexport const facet = defineServerPlugin({\n name: '@agimon-ai/doompi-grep',\n session: (context) => ({\n get tools(): DoomServerSessionPlugin['tools'] { return [via({ name: 'grep' }, at(toolGrep, context))]; },\n }),\n});\n\nexport default facet;\n"],"mappings":";;;;;;;AAMA,MAAM,MAAY,OAA0B,YAC1C,OAAO,UAAU,aAAc,MAAwB,OAAO,IAAI;AACpE,MAAM,OAAU,UAAmC,WAAuB;CAAE,GAAG;CAAU,GAAI;AAAiB;AAE9G,MAAa,SAAA,GAAQA,oCAAAA,mBAAAA,CAAmB;CACtC,MAAM;CACN,UAAU,aAAa,EACrB,IAAI,QAA0C;EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,OAAO,GAAG,GAAGC,oBAAAA,SAAU,OAAO,CAAC,CAAC;CAAG,EACzG;AACF,CAAC"}
@@ -1,5 +1,5 @@
1
- //#region src/extensions/server.d.ts
2
- export declare const grepServerFacet: import("@agimon-ai/doompi-core/server-facet").DoomServerFacet;
1
+ //#region generated/server.d.ts
2
+ export declare const facet: import("@agimon-ai/doompi-core/server-facet").DoomServerFacet;
3
3
  //#endregion
4
- export { grepServerFacet as default };
4
+ export { facet as default };
5
5
  //# sourceMappingURL=server.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.cts","names":[],"sources":["../../src/extensions/server.ts"],"mappings":";qBAKa,+DAAe"}
1
+ {"version":3,"file":"server.d.cts","names":[],"sources":["../../generated/server.ts"],"mappings":";qBAUa,qDAAK"}
@@ -1,5 +1,5 @@
1
- //#region src/extensions/server.d.ts
2
- export declare const grepServerFacet: import("@agimon-ai/doompi-core/server-facet").DoomServerFacet;
1
+ //#region generated/server.d.ts
2
+ export declare const facet: import("@agimon-ai/doompi-core/server-facet").DoomServerFacet;
3
3
  //#endregion
4
- export { grepServerFacet as default };
4
+ export { facet as default };
5
5
  //# sourceMappingURL=server.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.mts","names":[],"sources":["../../src/extensions/server.ts"],"mappings":";qBAKa,+DAAe"}
1
+ {"version":3,"file":"server.d.mts","names":[],"sources":["../../generated/server.ts"],"mappings":";qBAUa,qDAAK"}
@@ -1,2 +1,18 @@
1
- import{createHeadlessGrepTool as e}from"../services/headlessGrep/index.mjs";import{PACKAGE_SOURCE as t}from"../constants/package.mjs";import{defineServerPlugin as n}from"@agimon-ai/doompi-core/server-facet";const r=n({name:t,session:()=>({tools:[e()]})});export{r as default,r as grepServerFacet};
1
+ import grep_server_default from "../src/extensions/workspaces/sessions/(backend)/tool/grep.server.mjs";
2
+ import { defineServerPlugin } from "@agimon-ai/doompi-core/server-facet";
3
+ //#region generated/server.ts
4
+ const at = (value, context) => typeof value === "function" ? value(context) : value;
5
+ const via = (identity, value) => ({
6
+ ...identity,
7
+ ...value
8
+ });
9
+ const facet = defineServerPlugin({
10
+ name: "@agimon-ai/doompi-grep",
11
+ session: (context) => ({ get tools() {
12
+ return [via({ name: "grep" }, at(grep_server_default, context))];
13
+ } })
14
+ });
15
+ //#endregion
16
+ export { facet as default, facet };
17
+
2
18
  //# sourceMappingURL=server.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.mjs","names":[],"sources":["../../src/extensions/server.ts"],"sourcesContent":["import { defineServerPlugin } from '@agimon-ai/doompi-core/server-facet';\n\nimport { PACKAGE_SOURCE } from '../constants/package';\nimport { createHeadlessGrepTool } from '../services/headlessGrep';\n\nexport const grepServerFacet = defineServerPlugin({\n name: PACKAGE_SOURCE,\n session: () => ({ tools: [createHeadlessGrepTool()] }),\n});\nexport default grepServerFacet;\n"],"mappings":"+MAKA,MAAa,EAAkB,EAAmB,CAChD,KAAM,EACN,aAAgB,CAAE,MAAO,CAAC,EAAuB,CAAC,CAAE,EACtD,CAAC"}
1
+ {"version":3,"file":"server.mjs","names":["toolGrep"],"sources":["../../generated/server.ts"],"sourcesContent":["// Generated by @agimon-ai/doompi-build. Do not edit by hand.\nimport { defineServerPlugin, type DoomServerSessionPlugin } from '@agimon-ai/doompi-core/server-facet';\n\nimport toolGrep from '../src/extensions/workspaces/sessions/(backend)/tool/grep.server';\n\ntype Factory<T, C> = (context: C) => T;\nconst at = <T, C>(value: T | Factory<T, C>, context: C): T =>\n typeof value === 'function' ? (value as Factory<T, C>)(context) : value;\nconst via = <T>(identity: Record<string, unknown>, value: unknown): T => ({ ...identity, ...(value as object) }) as T;\n\nexport const facet = defineServerPlugin({\n name: '@agimon-ai/doompi-grep',\n session: (context) => ({\n get tools(): DoomServerSessionPlugin['tools'] { return [via({ name: 'grep' }, at(toolGrep, context))]; },\n }),\n});\n\nexport default facet;\n"],"mappings":";;;AAMA,MAAM,MAAY,OAA0B,YAC1C,OAAO,UAAU,aAAc,MAAwB,OAAO,IAAI;AACpE,MAAM,OAAU,UAAmC,WAAuB;CAAE,GAAG;CAAU,GAAI;AAAiB;AAE9G,MAAa,QAAQ,mBAAmB;CACtC,MAAM;CACN,UAAU,aAAa,EACrB,IAAI,QAA0C;EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,OAAO,GAAG,GAAGA,qBAAU,OAAO,CAAC,CAAC;CAAG,EACzG;AACF,CAAC"}
@@ -0,0 +1,102 @@
1
+ import { defineToolRenderer, defineWebPlugin } from "@agimon-ai/doompi-core/web";
2
+ import { HashlineLines, MessageItem, MessageItemBody, MessageItemHeader, MessageItemStatus, compactDetails, hashlineBody, resultTextLines, toolTone } from "@agimon-ai/doompi-web-components";
3
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
4
+ //#region src/extensions/workspaces/sessions/(frontend)/tool/_lib/grepToolView.ts
5
+ /** What the grep call heading shows: the pattern, then where and how it searched. */
6
+ function grepCallView(args) {
7
+ const limit = typeof args.limit === "number" && Number.isFinite(args.limit) ? args.limit : void 0;
8
+ return {
9
+ pattern: typeof args.pattern === "string" ? args.pattern : "",
10
+ details: compactDetails([
11
+ typeof args.path === "string" && args.path.length > 0 ? args.path : ".",
12
+ typeof args.glob === "string" ? args.glob : void 0,
13
+ args.ignoreCase === true ? "ignore case" : void 0,
14
+ limit === void 0 ? void 0 : `${limit} matches`
15
+ ])
16
+ };
17
+ }
18
+ //#endregion
19
+ //#region src/extensions/workspaces/sessions/(frontend)/tool/_components/GrepToolMessage.tsx
20
+ /**
21
+ * The grep tool's timeline item, the web half of its renderCall and
22
+ * renderResult: the call summary in the header and, when expanded, the
23
+ * anchored matches with a line-number gutter in the body. A failure shows the
24
+ * tool's message in red inside the expanded body instead.
25
+ */
26
+ function GrepToolMessage({ args, result, output, running, isError }) {
27
+ const view = grepCallView(args);
28
+ const body = result === null || isError ? null : hashlineBody(result, output, "grep", true);
29
+ return /* @__PURE__ */ jsx(MessageItem, {
30
+ tone: toolTone({
31
+ running,
32
+ isError
33
+ }),
34
+ expandable: true,
35
+ defaultExpanded: false,
36
+ children: ({ expanded }) => {
37
+ return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(MessageItemHeader, {
38
+ title: "grep",
39
+ children: /* @__PURE__ */ jsxs("span", {
40
+ "data-testid": "tool-call-grep",
41
+ className: "flex min-w-0 flex-1 items-center gap-2",
42
+ children: [/* @__PURE__ */ jsx("span", {
43
+ className: "truncate text-doom-text",
44
+ children: view.pattern
45
+ }), view.details.length > 0 ? /* @__PURE__ */ jsxs("span", {
46
+ className: "shrink-0 text-doom-faint",
47
+ children: ["· ", view.details.join(" · ")]
48
+ }) : null]
49
+ })
50
+ }), expanded ? isError ? /* @__PURE__ */ jsxs(MessageItemBody, {
51
+ "data-testid": "tool-result-grep",
52
+ className: "flex flex-col",
53
+ children: [/* @__PURE__ */ jsx(MessageItemStatus, {
54
+ tone: "error",
55
+ children: "failed"
56
+ }), resultTextLines(result, output).map((line, index) => /* @__PURE__ */ jsx("span", {
57
+ className: "whitespace-pre-wrap break-words text-doom-red",
58
+ children: line
59
+ }, `${String(index)}-${line}`))]
60
+ }) : body === null ? running ? /* @__PURE__ */ jsx(MessageItemBody, {
61
+ "data-testid": "tool-result-grep",
62
+ children: /* @__PURE__ */ jsx(MessageItemStatus, {
63
+ tone: "running",
64
+ children: "running"
65
+ })
66
+ }) : null : body.shown.length === 0 && body.notice === void 0 ? null : /* @__PURE__ */ jsxs(MessageItemBody, {
67
+ "data-testid": "tool-result-grep",
68
+ className: "flex flex-col gap-1",
69
+ children: [/* @__PURE__ */ jsx(HashlineLines, {
70
+ lines: body.shown,
71
+ gutter: body.gutter
72
+ }), body.notice !== void 0 ? /* @__PURE__ */ jsx("span", {
73
+ className: "text-doom-faint",
74
+ children: body.notice
75
+ }) : null]
76
+ }) : null] });
77
+ }
78
+ });
79
+ }
80
+ //#endregion
81
+ //#region src/extensions/workspaces/sessions/(frontend)/tool/grep.web.tsx
82
+ /**
83
+ * The grep tool's timeline card, the web half of the TUI's renderCall and
84
+ * renderResult for hashline searches. The filename binds it to the tool.
85
+ */
86
+ var grep_web_default = defineToolRenderer({ message: GrepToolMessage });
87
+ //#endregion
88
+ //#region generated/web.ts
89
+ const via = (identity, value) => ({
90
+ ...identity,
91
+ ...value
92
+ });
93
+ const webPlugin = defineWebPlugin({
94
+ id: "grep",
95
+ session: { get toolRenderers() {
96
+ return [via({ tools: ["grep"] }, grep_web_default)];
97
+ } }
98
+ });
99
+ //#endregion
100
+ export { webPlugin };
101
+
102
+ //# sourceMappingURL=web.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web.mjs","names":["toolGrep"],"sources":["../../src/extensions/workspaces/sessions/(frontend)/tool/_lib/grepToolView.ts","../../src/extensions/workspaces/sessions/(frontend)/tool/_components/GrepToolMessage.tsx","../../src/extensions/workspaces/sessions/(frontend)/tool/grep.web.tsx","../../generated/web.ts"],"sourcesContent":["import { compactDetails } from '@agimon-ai/doompi-web-components';\n\nexport interface GrepCallView {\n readonly pattern: string;\n /** Search path, glob, case flag, and limit, as the TUI's call heading lists them. */\n readonly details: readonly string[];\n}\n\n/** What the grep call heading shows: the pattern, then where and how it searched. */\nexport function grepCallView(args: Readonly<Record<string, unknown>>): GrepCallView {\n const limit = typeof args.limit === 'number' && Number.isFinite(args.limit) ? args.limit : undefined;\n return {\n pattern: typeof args.pattern === 'string' ? args.pattern : '',\n details: compactDetails([\n typeof args.path === 'string' && args.path.length > 0 ? args.path : '.',\n typeof args.glob === 'string' ? args.glob : undefined,\n args.ignoreCase === true ? 'ignore case' : undefined,\n limit === undefined ? undefined : `${limit} matches`,\n ]),\n };\n}\n","import type { ToolMessageRenderProps } from '@agimon-ai/doompi-core/web';\nimport {\n HashlineLines,\n hashlineBody,\n MessageItem,\n MessageItemBody,\n MessageItemHeader,\n MessageItemStatus,\n resultTextLines,\n toolTone,\n} from '@agimon-ai/doompi-web-components';\n\nimport { grepCallView } from '../_lib/grepToolView';\n\n/**\n * The grep tool's timeline item, the web half of its renderCall and\n * renderResult: the call summary in the header and, when expanded, the\n * anchored matches with a line-number gutter in the body. A failure shows the\n * tool's message in red inside the expanded body instead.\n */\nexport function GrepToolMessage({ args, result, output, running, isError }: ToolMessageRenderProps) {\n const view = grepCallView(args);\n const body = result === null || isError ? null : hashlineBody(result, output, 'grep', true);\n return (\n <MessageItem tone={toolTone({ running, isError })} expandable defaultExpanded={false}>\n {({ expanded }) => {\n return (\n <>\n <MessageItemHeader title=\"grep\">\n <span data-testid=\"tool-call-grep\" className=\"flex min-w-0 flex-1 items-center gap-2\">\n <span className=\"truncate text-doom-text\">{view.pattern}</span>\n {view.details.length > 0 ? (\n <span className=\"shrink-0 text-doom-faint\">· {view.details.join(' · ')}</span>\n ) : null}\n </span>\n </MessageItemHeader>\n {expanded ? (\n isError ? (\n <MessageItemBody data-testid=\"tool-result-grep\" className=\"flex flex-col\">\n <MessageItemStatus tone=\"error\">failed</MessageItemStatus>\n {resultTextLines(result, output).map((line, index) => (\n <span key={`${String(index)}-${line}`} className=\"whitespace-pre-wrap break-words text-doom-red\">\n {line}\n </span>\n ))}\n </MessageItemBody>\n ) : body === null ? (\n running ? (\n <MessageItemBody data-testid=\"tool-result-grep\">\n <MessageItemStatus tone=\"running\">running</MessageItemStatus>\n </MessageItemBody>\n ) : null\n ) : body.shown.length === 0 && body.notice === undefined ? null : (\n <MessageItemBody data-testid=\"tool-result-grep\" className=\"flex flex-col gap-1\">\n <HashlineLines lines={body.shown} gutter={body.gutter} />\n {body.notice !== undefined ? <span className=\"text-doom-faint\">{body.notice}</span> : null}\n </MessageItemBody>\n )\n ) : null}\n </>\n );\n }}\n </MessageItem>\n );\n}\n","import { defineToolRenderer } from '@agimon-ai/doompi-core/web';\n\nimport { GrepToolMessage } from './_components/GrepToolMessage';\n\n/**\n * The grep tool's timeline card, the web half of the TUI's renderCall and\n * renderResult for hashline searches. The filename binds it to the tool.\n */\nexport default defineToolRenderer({ message: GrepToolMessage });\n","// Generated by @agimon-ai/doompi-build. Do not edit by hand.\nimport { defineWebPlugin, type WebPluginContributions } from '@agimon-ai/doompi-core/web';\n\nimport toolGrep from '../src/extensions/workspaces/sessions/(frontend)/tool/grep.web';\n\nconst via = <T>(identity: Record<string, unknown>, value: unknown): T => ({ ...identity, ...(value as object) }) as T;\n\nexport const webPlugin = defineWebPlugin({\n id: 'grep',\n session: {\n get toolRenderers(): WebPluginContributions['toolRenderers'] { return [via({ tools: ['grep'] }, toolGrep)]; },\n },\n});\n"],"mappings":";;;;;AASA,SAAgB,aAAa,MAAuD;CAClF,MAAM,QAAQ,OAAO,KAAK,UAAU,YAAY,OAAO,SAAS,KAAK,KAAK,IAAI,KAAK,QAAQ,KAAA;CAC3F,OAAO;EACL,SAAS,OAAO,KAAK,YAAY,WAAW,KAAK,UAAU;EAC3D,SAAS,eAAe;GACtB,OAAO,KAAK,SAAS,YAAY,KAAK,KAAK,SAAS,IAAI,KAAK,OAAO;GACpE,OAAO,KAAK,SAAS,WAAW,KAAK,OAAO,KAAA;GAC5C,KAAK,eAAe,OAAO,gBAAgB,KAAA;GAC3C,UAAU,KAAA,IAAY,KAAA,IAAY,GAAG,MAAM;EAC7C,CAAC;CACH;AACF;;;;;;;;;ACAA,SAAgB,gBAAgB,EAAE,MAAM,QAAQ,QAAQ,SAAS,WAAmC;CAClG,MAAM,OAAO,aAAa,IAAI;CAC9B,MAAM,OAAO,WAAW,QAAQ,UAAU,OAAO,aAAa,QAAQ,QAAQ,QAAQ,IAAI;CAC1F,OACE,oBAAC,aAAD;EAAa,MAAM,SAAS;GAAE;GAAS;EAAQ,CAAC;EAAG,YAAA;EAAW,iBAAiB;EAC3E,WAAA,EAAE,eAAe;GACjB,OACE,qBAAA,UAAA,EAAA,UAAA,CACE,oBAAC,mBAAD;IAAmB,OAAM;IACvB,UAAA,qBAAC,QAAD;KAAM,eAAY;KAAiB,WAAU;KAA7C,UAAA,CACE,oBAAC,QAAD;MAAM,WAAU;MAA2B,UAAA,KAAK;KAAc,CAAA,GAC7D,KAAK,QAAQ,SAAS,IACrB,qBAAC,QAAD;MAAM,WAAU;MAAhB,UAAA,CAA2C,MAAG,KAAK,QAAQ,KAAK,KAAK,CAAQ;KAC3E,CAAA,IAAA,IACA;;GACW,CAAA,GAClB,WACC,UACE,qBAAC,iBAAD;IAAiB,eAAY;IAAmB,WAAU;IAA1D,UAAA,CACE,oBAAC,mBAAD;KAAmB,MAAK;KAAQ,UAAA;IAAyB,CAAA,GACxD,gBAAgB,QAAQ,MAAM,CAAC,CAAC,KAAK,MAAM,UAC1C,oBAAC,QAAD;KAAuC,WAAU;KAC9C,UAAA;IACG,GAFK,GAAG,OAAO,KAAK,EAAE,GAAG,MAEzB,CACP,CACc;GACf,CAAA,IAAA,SAAS,OACX,UACE,oBAAC,iBAAD;IAAiB,eAAY;IAC3B,UAAA,oBAAC,mBAAD;KAAmB,MAAK;KAAU,UAAA;IAA0B,CAAA;GAC7C,CAAA,IACf,OACF,KAAK,MAAM,WAAW,KAAK,KAAK,WAAW,KAAA,IAAY,OACzD,qBAAC,iBAAD;IAAiB,eAAY;IAAmB,WAAU;IAA1D,UAAA,CACE,oBAAC,eAAD;KAAe,OAAO,KAAK;KAAO,QAAQ,KAAK;IAAS,CAAA,GACvD,KAAK,WAAW,KAAA,IAAY,oBAAC,QAAD;KAAM,WAAU;KAAmB,UAAA,KAAK;IAAa,CAAA,IAAI,IACvE;GAEjB,CAAA,IAAA,IACJ,EAAA,CAAA;EAEN;CACW,CAAA;AAEjB;;;;;;;ACxDA,IAAA,mBAAe,mBAAmB,EAAE,SAAS,gBAAgB,CAAC;;;ACH9D,MAAM,OAAU,UAAmC,WAAuB;CAAE,GAAG;CAAU,GAAI;AAAiB;AAE9G,MAAa,YAAY,gBAAgB;CACvC,IAAI;CACJ,SAAS,EACP,IAAI,gBAAyD;EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,GAAGA,gBAAQ,CAAC;CAAG,EAC9G;AACF,CAAC"}
package/dist/index.cjs CHANGED
@@ -1 +1,3 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./schemas/grepTool.cjs"),t=require("./tools/piGrep.cjs"),n=require("./services/headlessGrep/index.cjs");exports.GrepParamsSchema=e.GrepParamsSchema,exports.createHashlineGrepTool=t.createHashlineGrepTool,exports.createHeadlessGrepTool=n.createHeadlessGrepTool;
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_grepTool = require("./src/schemas/grepTool.cjs");
3
+ exports.GrepParamsSchema = require_grepTool.GrepParamsSchema;
package/dist/index.d.cts CHANGED
@@ -1,4 +1,2 @@
1
- import { GrepParams, GrepParamsSchema } from "./schemas/grepTool.cjs";
2
- import { createHashlineGrepTool } from "./tools/piGrep.cjs";
3
- import { createHeadlessGrepTool } from "./services/headlessGrep/index.cjs";
4
- export { type GrepParams, GrepParamsSchema, createHashlineGrepTool, createHeadlessGrepTool };
1
+ import { GrepParams, GrepParamsSchema } from "./src/schemas/grepTool.cjs";
2
+ export { type GrepParams, GrepParamsSchema };
package/dist/index.d.mts CHANGED
@@ -1,4 +1,2 @@
1
- import { GrepParams, GrepParamsSchema } from "./schemas/grepTool.mjs";
2
- import { createHashlineGrepTool } from "./tools/piGrep.mjs";
3
- import { createHeadlessGrepTool } from "./services/headlessGrep/index.mjs";
4
- export { type GrepParams, GrepParamsSchema, createHashlineGrepTool, createHeadlessGrepTool };
1
+ import { GrepParams, GrepParamsSchema } from "./src/schemas/grepTool.mjs";
2
+ export { type GrepParams, GrepParamsSchema };
package/dist/index.mjs CHANGED
@@ -1 +1,2 @@
1
- import{GrepParamsSchema as e}from"./schemas/grepTool.mjs";import{createHashlineGrepTool as t}from"./tools/piGrep.mjs";import{createHeadlessGrepTool as n}from"./services/headlessGrep/index.mjs";export{e as GrepParamsSchema,t as createHashlineGrepTool,n as createHeadlessGrepTool};
1
+ import { GrepParamsSchema } from "./src/schemas/grepTool.mjs";
2
+ export { GrepParamsSchema };
@@ -0,0 +1,25 @@
1
+ const require_grepTool = require("../../../../../../schemas/grepTool.cjs");
2
+ const require_index = require("../../../../../../services/grepTool/index.cjs");
3
+ let _agimon_ai_doompi_hashline_files = require("@agimon-ai/doompi-hashline/files");
4
+ let _earendil_works_pi_coding_agent = require("@earendil-works/pi-coding-agent");
5
+ //#region src/extensions/workspaces/sessions/(backend)/tool/_lib/grepTool.ts
6
+ function createHashlineGrepTool(writable = _agimon_ai_doompi_hashline_files.isWritableFile) {
7
+ return {
8
+ name: "grep",
9
+ label: "grep",
10
+ description: "Search file contents using Pi-compatible ripgrep semantics, then add exact-byte file tags and stable line anchors for writable matches. Non-writable matches retain native Pi output. Respects .gitignore.",
11
+ promptSnippet: "Search file contents and return editable hashline anchors",
12
+ parameters: require_grepTool.GrepParamsSchema,
13
+ executionMode: "parallel",
14
+ async execute(toolCallId, params, signal, onUpdate, ctx) {
15
+ const input = params;
16
+ const nativeResult = await (0, _earendil_works_pi_coding_agent.createGrepToolDefinition)(ctx.cwd).execute(toolCallId, input, signal, onUpdate, ctx);
17
+ require_index.assertNotAborted(signal);
18
+ return await require_index.tagGrepResult(nativeResult, input, ctx.cwd, signal, writable);
19
+ }
20
+ };
21
+ }
22
+ //#endregion
23
+ exports.createHashlineGrepTool = createHashlineGrepTool;
24
+
25
+ //# sourceMappingURL=grepTool.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grepTool.cjs","names":["isWritableFile","GrepParamsSchema","createGrepToolDefinition","tagGrepResult"],"sources":["../../../../../../../../src/extensions/workspaces/sessions/(backend)/tool/_lib/grepTool.ts"],"sourcesContent":["import { isWritableFile } from '@agimon-ai/doompi-hashline/files';\nimport { createGrepToolDefinition, type AgentToolResult, type ToolDefinition } from '@earendil-works/pi-coding-agent';\n\nimport { GrepParamsSchema, type GrepParams } from '../../../../../../schemas/grepTool';\nimport { assertNotAborted, type GrepResult, tagGrepResult } from '../../../../../../services/grepTool';\n\ntype WritableCheck = (path: string) => Promise<boolean>;\n\nexport function createHashlineGrepTool(\n writable: WritableCheck = isWritableFile,\n): ToolDefinition<typeof GrepParamsSchema> {\n return {\n name: 'grep',\n label: 'grep',\n description:\n 'Search file contents using Pi-compatible ripgrep semantics, then add exact-byte file tags and stable line anchors for writable matches. Non-writable matches retain native Pi output. Respects .gitignore.',\n promptSnippet: 'Search file contents and return editable hashline anchors',\n parameters: GrepParamsSchema,\n executionMode: 'parallel',\n async execute(toolCallId, params, signal, onUpdate, ctx) {\n const input = params as GrepParams;\n const nativeGrep = createGrepToolDefinition(ctx.cwd);\n const nativeResult = await nativeGrep.execute(toolCallId, input, signal, onUpdate, ctx);\n assertNotAborted(signal);\n const tagged = await tagGrepResult(nativeResult as GrepResult, input, ctx.cwd, signal, writable);\n return tagged as unknown as AgentToolResult<unknown>;\n },\n };\n}\n"],"mappings":";;;;;AAQA,SAAgB,uBACd,WAA0BA,iCAAAA,gBACe;CACzC,OAAO;EACL,MAAM;EACN,OAAO;EACP,aACE;EACF,eAAe;EACf,YAAYC,iBAAAA;EACZ,eAAe;EACf,MAAM,QAAQ,YAAY,QAAQ,QAAQ,UAAU,KAAK;GACvD,MAAM,QAAQ;GAEd,MAAM,eAAe,OAAA,GADFC,gCAAAA,yBAAAA,CAAyB,IAAI,GACZ,CAAC,CAAC,QAAQ,YAAY,OAAO,QAAQ,UAAU,GAAG;GACtF,cAAA,iBAAiB,MAAM;GAEvB,OAAO,MADcC,cAAAA,cAAc,cAA4B,OAAO,IAAI,KAAK,QAAQ,QAAQ;EAEjG;CACF;AACF"}
@@ -0,0 +1,25 @@
1
+ import { GrepParamsSchema } from "../../../../../../schemas/grepTool.mjs";
2
+ import { assertNotAborted, tagGrepResult } from "../../../../../../services/grepTool/index.mjs";
3
+ import { isWritableFile } from "@agimon-ai/doompi-hashline/files";
4
+ import { createGrepToolDefinition } from "@earendil-works/pi-coding-agent";
5
+ //#region src/extensions/workspaces/sessions/(backend)/tool/_lib/grepTool.ts
6
+ function createHashlineGrepTool(writable = isWritableFile) {
7
+ return {
8
+ name: "grep",
9
+ label: "grep",
10
+ description: "Search file contents using Pi-compatible ripgrep semantics, then add exact-byte file tags and stable line anchors for writable matches. Non-writable matches retain native Pi output. Respects .gitignore.",
11
+ promptSnippet: "Search file contents and return editable hashline anchors",
12
+ parameters: GrepParamsSchema,
13
+ executionMode: "parallel",
14
+ async execute(toolCallId, params, signal, onUpdate, ctx) {
15
+ const input = params;
16
+ const nativeResult = await createGrepToolDefinition(ctx.cwd).execute(toolCallId, input, signal, onUpdate, ctx);
17
+ assertNotAborted(signal);
18
+ return await tagGrepResult(nativeResult, input, ctx.cwd, signal, writable);
19
+ }
20
+ };
21
+ }
22
+ //#endregion
23
+ export { createHashlineGrepTool };
24
+
25
+ //# sourceMappingURL=grepTool.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grepTool.mjs","names":[],"sources":["../../../../../../../../src/extensions/workspaces/sessions/(backend)/tool/_lib/grepTool.ts"],"sourcesContent":["import { isWritableFile } from '@agimon-ai/doompi-hashline/files';\nimport { createGrepToolDefinition, type AgentToolResult, type ToolDefinition } from '@earendil-works/pi-coding-agent';\n\nimport { GrepParamsSchema, type GrepParams } from '../../../../../../schemas/grepTool';\nimport { assertNotAborted, type GrepResult, tagGrepResult } from '../../../../../../services/grepTool';\n\ntype WritableCheck = (path: string) => Promise<boolean>;\n\nexport function createHashlineGrepTool(\n writable: WritableCheck = isWritableFile,\n): ToolDefinition<typeof GrepParamsSchema> {\n return {\n name: 'grep',\n label: 'grep',\n description:\n 'Search file contents using Pi-compatible ripgrep semantics, then add exact-byte file tags and stable line anchors for writable matches. Non-writable matches retain native Pi output. Respects .gitignore.',\n promptSnippet: 'Search file contents and return editable hashline anchors',\n parameters: GrepParamsSchema,\n executionMode: 'parallel',\n async execute(toolCallId, params, signal, onUpdate, ctx) {\n const input = params as GrepParams;\n const nativeGrep = createGrepToolDefinition(ctx.cwd);\n const nativeResult = await nativeGrep.execute(toolCallId, input, signal, onUpdate, ctx);\n assertNotAborted(signal);\n const tagged = await tagGrepResult(nativeResult as GrepResult, input, ctx.cwd, signal, writable);\n return tagged as unknown as AgentToolResult<unknown>;\n },\n };\n}\n"],"mappings":";;;;;AAQA,SAAgB,uBACd,WAA0B,gBACe;CACzC,OAAO;EACL,MAAM;EACN,OAAO;EACP,aACE;EACF,eAAe;EACf,YAAY;EACZ,eAAe;EACf,MAAM,QAAQ,YAAY,QAAQ,QAAQ,UAAU,KAAK;GACvD,MAAM,QAAQ;GAEd,MAAM,eAAe,MADF,yBAAyB,IAAI,GACZ,CAAC,CAAC,QAAQ,YAAY,OAAO,QAAQ,UAAU,GAAG;GACtF,iBAAiB,MAAM;GAEvB,OAAO,MADc,cAAc,cAA4B,OAAO,IAAI,KAAK,QAAQ,QAAQ;EAEjG;CACF;AACF"}
@@ -0,0 +1,7 @@
1
+ const require_grepTool = require("./_lib/grepTool.cjs");
2
+ //#region src/extensions/workspaces/sessions/(backend)/tool/grep.cli.ts
3
+ var grep_cli_default = (0, require("@agimon-ai/doompi-core/pi-extension").definePiTool)(require_grepTool.createHashlineGrepTool(), { overrides: true });
4
+ //#endregion
5
+ exports.default = grep_cli_default;
6
+
7
+ //# sourceMappingURL=grep.cli.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grep.cli.cjs","names":["definePiTool","createHashlineGrepTool"],"sources":["../../../../../../../src/extensions/workspaces/sessions/(backend)/tool/grep.cli.ts"],"sourcesContent":["import { definePiTool } from '@agimon-ai/doompi-core/pi-extension';\n\nimport { createHashlineGrepTool } from './_lib/grepTool';\n\nexport default definePiTool(createHashlineGrepTool(), { overrides: true });\n"],"mappings":";;AAIA,IAAA,oBAAA,gDAAeA,CAAAA,CAAAA,aAAAA,CAAaC,iBAAAA,uBAAuB,GAAG,EAAE,WAAW,KAAK,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { createHashlineGrepTool } from "./_lib/grepTool.mjs";
2
+ import { definePiTool } from "@agimon-ai/doompi-core/pi-extension";
3
+ //#region src/extensions/workspaces/sessions/(backend)/tool/grep.cli.ts
4
+ var grep_cli_default = definePiTool(createHashlineGrepTool(), { overrides: true });
5
+ //#endregion
6
+ export { grep_cli_default as default };
7
+
8
+ //# sourceMappingURL=grep.cli.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grep.cli.mjs","names":[],"sources":["../../../../../../../src/extensions/workspaces/sessions/(backend)/tool/grep.cli.ts"],"sourcesContent":["import { definePiTool } from '@agimon-ai/doompi-core/pi-extension';\n\nimport { createHashlineGrepTool } from './_lib/grepTool';\n\nexport default definePiTool(createHashlineGrepTool(), { overrides: true });\n"],"mappings":";;;AAIA,IAAA,mBAAe,aAAa,uBAAuB,GAAG,EAAE,WAAW,KAAK,CAAC"}
@@ -0,0 +1,7 @@
1
+ const require_index = require("../../../../../services/grepTool/index.cjs");
2
+ //#region src/extensions/workspaces/sessions/(backend)/tool/grep.server.ts
3
+ var grep_server_default = (0, require("@agimon-ai/doompi-core/extension-file").defineServerTool)(require_index.createHeadlessGrepTool);
4
+ //#endregion
5
+ exports.default = grep_server_default;
6
+
7
+ //# sourceMappingURL=grep.server.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grep.server.cjs","names":["defineServerTool","createHeadlessGrepTool"],"sources":["../../../../../../../src/extensions/workspaces/sessions/(backend)/tool/grep.server.ts"],"sourcesContent":["import { defineServerTool } from '@agimon-ai/doompi-core/extension-file';\n\nimport { createHeadlessGrepTool } from '../../../../../services/grepTool';\n\nexport default defineServerTool(createHeadlessGrepTool);\n"],"mappings":";;AAIA,IAAA,uBAAA,kDAAeA,CAAAA,CAAAA,iBAAAA,CAAiBC,cAAAA,sBAAsB"}
@@ -0,0 +1,8 @@
1
+ import { createHeadlessGrepTool } from "../../../../../services/grepTool/index.mjs";
2
+ import { defineServerTool } from "@agimon-ai/doompi-core/extension-file";
3
+ //#region src/extensions/workspaces/sessions/(backend)/tool/grep.server.ts
4
+ var grep_server_default = defineServerTool(createHeadlessGrepTool);
5
+ //#endregion
6
+ export { grep_server_default as default };
7
+
8
+ //# sourceMappingURL=grep.server.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grep.server.mjs","names":[],"sources":["../../../../../../../src/extensions/workspaces/sessions/(backend)/tool/grep.server.ts"],"sourcesContent":["import { defineServerTool } from '@agimon-ai/doompi-core/extension-file';\n\nimport { createHeadlessGrepTool } from '../../../../../services/grepTool';\n\nexport default defineServerTool(createHeadlessGrepTool);\n"],"mappings":";;;AAIA,IAAA,sBAAe,iBAAiB,sBAAsB"}
@@ -0,0 +1,22 @@
1
+ let _agimon_ai_doompi_ui_hashlineRendering = require("@agimon-ai/doompi-ui/hashlineRendering");
2
+ //#region src/extensions/workspaces/sessions/(frontend)/tool/_lib/grepRenderer.cli.ts
3
+ const grepRenderer = {
4
+ renderShell: "self",
5
+ renderCall(args, theme) {
6
+ const input = args;
7
+ const details = [
8
+ input.path ?? ".",
9
+ input.glob,
10
+ input.ignoreCase === true ? "ignore case" : void 0,
11
+ input.limit === void 0 ? void 0 : `${input.limit} matches`
12
+ ].filter((value) => value !== void 0);
13
+ return (0, _agimon_ai_doompi_ui_hashlineRendering.renderHashlineCall)("grep", input.pattern, details, theme);
14
+ },
15
+ renderResult(result, options, theme, context) {
16
+ return (0, _agimon_ai_doompi_ui_hashlineRendering.renderHashlineResult)(result, options, theme, context, "grep");
17
+ }
18
+ };
19
+ //#endregion
20
+ exports.grepRenderer = grepRenderer;
21
+
22
+ //# sourceMappingURL=grepRenderer.cli.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grepRenderer.cli.cjs","names":["renderHashlineCall","renderHashlineResult"],"sources":["../../../../../../../../src/extensions/workspaces/sessions/(frontend)/tool/_lib/grepRenderer.cli.ts"],"sourcesContent":["import type { PiToolRenderers } from '@agimon-ai/doompi-core/pi-extension';\nimport { renderHashlineCall, renderHashlineResult } from '@agimon-ai/doompi-ui/hashlineRendering';\n\nimport { GrepParamsSchema, type GrepParams } from '../../../../../../schemas/grepTool';\n\nexport const grepRenderer: PiToolRenderers<typeof GrepParamsSchema> = {\n renderShell: 'self',\n renderCall(args, theme) {\n const input = args as GrepParams;\n const details = [\n input.path ?? '.',\n input.glob,\n input.ignoreCase === true ? 'ignore case' : undefined,\n input.limit === undefined ? undefined : `${input.limit} matches`,\n ].filter((value): value is string => value !== undefined);\n return renderHashlineCall('grep', input.pattern, details, theme);\n },\n renderResult(result, options, theme, context) {\n return renderHashlineResult(result, options, theme, context, 'grep');\n },\n};\n"],"mappings":";;AAKA,MAAa,eAAyD;CACpE,aAAa;CACb,WAAW,MAAM,OAAO;EACtB,MAAM,QAAQ;EACd,MAAM,UAAU;GACd,MAAM,QAAQ;GACd,MAAM;GACN,MAAM,eAAe,OAAO,gBAAgB,KAAA;GAC5C,MAAM,UAAU,KAAA,IAAY,KAAA,IAAY,GAAG,MAAM,MAAM;EACzD,CAAC,CAAC,QAAQ,UAA2B,UAAU,KAAA,CAAS;EACxD,QAAA,GAAOA,uCAAAA,mBAAAA,CAAmB,QAAQ,MAAM,SAAS,SAAS,KAAK;CACjE;CACA,aAAa,QAAQ,SAAS,OAAO,SAAS;EAC5C,QAAA,GAAOC,uCAAAA,qBAAAA,CAAqB,QAAQ,SAAS,OAAO,SAAS,MAAM;CACrE;AACF"}
@@ -0,0 +1,22 @@
1
+ import { renderHashlineCall, renderHashlineResult } from "@agimon-ai/doompi-ui/hashlineRendering";
2
+ //#region src/extensions/workspaces/sessions/(frontend)/tool/_lib/grepRenderer.cli.ts
3
+ const grepRenderer = {
4
+ renderShell: "self",
5
+ renderCall(args, theme) {
6
+ const input = args;
7
+ const details = [
8
+ input.path ?? ".",
9
+ input.glob,
10
+ input.ignoreCase === true ? "ignore case" : void 0,
11
+ input.limit === void 0 ? void 0 : `${input.limit} matches`
12
+ ].filter((value) => value !== void 0);
13
+ return renderHashlineCall("grep", input.pattern, details, theme);
14
+ },
15
+ renderResult(result, options, theme, context) {
16
+ return renderHashlineResult(result, options, theme, context, "grep");
17
+ }
18
+ };
19
+ //#endregion
20
+ export { grepRenderer };
21
+
22
+ //# sourceMappingURL=grepRenderer.cli.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grepRenderer.cli.mjs","names":[],"sources":["../../../../../../../../src/extensions/workspaces/sessions/(frontend)/tool/_lib/grepRenderer.cli.ts"],"sourcesContent":["import type { PiToolRenderers } from '@agimon-ai/doompi-core/pi-extension';\nimport { renderHashlineCall, renderHashlineResult } from '@agimon-ai/doompi-ui/hashlineRendering';\n\nimport { GrepParamsSchema, type GrepParams } from '../../../../../../schemas/grepTool';\n\nexport const grepRenderer: PiToolRenderers<typeof GrepParamsSchema> = {\n renderShell: 'self',\n renderCall(args, theme) {\n const input = args as GrepParams;\n const details = [\n input.path ?? '.',\n input.glob,\n input.ignoreCase === true ? 'ignore case' : undefined,\n input.limit === undefined ? undefined : `${input.limit} matches`,\n ].filter((value): value is string => value !== undefined);\n return renderHashlineCall('grep', input.pattern, details, theme);\n },\n renderResult(result, options, theme, context) {\n return renderHashlineResult(result, options, theme, context, 'grep');\n },\n};\n"],"mappings":";;AAKA,MAAa,eAAyD;CACpE,aAAa;CACb,WAAW,MAAM,OAAO;EACtB,MAAM,QAAQ;EACd,MAAM,UAAU;GACd,MAAM,QAAQ;GACd,MAAM;GACN,MAAM,eAAe,OAAO,gBAAgB,KAAA;GAC5C,MAAM,UAAU,KAAA,IAAY,KAAA,IAAY,GAAG,MAAM,MAAM;EACzD,CAAC,CAAC,QAAQ,UAA2B,UAAU,KAAA,CAAS;EACxD,OAAO,mBAAmB,QAAQ,MAAM,SAAS,SAAS,KAAK;CACjE;CACA,aAAa,QAAQ,SAAS,OAAO,SAAS;EAC5C,OAAO,qBAAqB,QAAQ,SAAS,OAAO,SAAS,MAAM;CACrE;AACF"}
@@ -0,0 +1,7 @@
1
+ const require_grepRenderer_cli = require("./_lib/grepRenderer.cli.cjs");
2
+ //#region src/extensions/workspaces/sessions/(frontend)/tool/grep.cli.ts
3
+ var grep_cli_default = (0, require("@agimon-ai/doompi-core/pi-extension").definePiToolRenderer)(require_grepRenderer_cli.grepRenderer);
4
+ //#endregion
5
+ exports.default = grep_cli_default;
6
+
7
+ //# sourceMappingURL=grep.cli.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grep.cli.cjs","names":["definePiToolRenderer","grepRenderer"],"sources":["../../../../../../../src/extensions/workspaces/sessions/(frontend)/tool/grep.cli.ts"],"sourcesContent":["import { definePiToolRenderer } from '@agimon-ai/doompi-core/pi-extension';\n\nimport { grepRenderer } from './_lib/grepRenderer.cli';\n\nexport default definePiToolRenderer(grepRenderer);\n"],"mappings":";;AAIA,IAAA,oBAAA,gDAAeA,CAAAA,CAAAA,qBAAAA,CAAqBC,yBAAAA,YAAY"}
@@ -0,0 +1,8 @@
1
+ import { grepRenderer } from "./_lib/grepRenderer.cli.mjs";
2
+ import { definePiToolRenderer } from "@agimon-ai/doompi-core/pi-extension";
3
+ //#region src/extensions/workspaces/sessions/(frontend)/tool/grep.cli.ts
4
+ var grep_cli_default = definePiToolRenderer(grepRenderer);
5
+ //#endregion
6
+ export { grep_cli_default as default };
7
+
8
+ //# sourceMappingURL=grep.cli.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grep.cli.mjs","names":[],"sources":["../../../../../../../src/extensions/workspaces/sessions/(frontend)/tool/grep.cli.ts"],"sourcesContent":["import { definePiToolRenderer } from '@agimon-ai/doompi-core/pi-extension';\n\nimport { grepRenderer } from './_lib/grepRenderer.cli';\n\nexport default definePiToolRenderer(grepRenderer);\n"],"mappings":";;;AAIA,IAAA,mBAAe,qBAAqB,YAAY"}
@@ -0,0 +1,13 @@
1
+ //#region src/schemas/apiContracts.ts
2
+ /** This facet contributes agent tools, commands or lifecycle only, with no separate HTTP or socket surface. */
3
+ const apiContracts = (0, require("@agimon-ai/doompi-core/api-contracts").defineApiContract)({
4
+ version: 1,
5
+ http: [],
6
+ sockets: [],
7
+ dynamic: []
8
+ });
9
+ //#endregion
10
+ exports.apiContracts = apiContracts;
11
+ exports.default = apiContracts;
12
+
13
+ //# sourceMappingURL=apiContracts.cjs.map