@agimon-ai/doompi-read 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 (121) 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 +134 -0
  22. package/dist/extensions/web.mjs.map +1 -0
  23. package/dist/index.cjs +6 -1
  24. package/dist/index.d.cts +3 -4
  25. package/dist/index.d.mts +3 -4
  26. package/dist/index.mjs +3 -1
  27. package/dist/src/extensions/workspaces/sessions/(backend)/tool/_lib/readTool.cjs +49 -0
  28. package/dist/src/extensions/workspaces/sessions/(backend)/tool/_lib/readTool.cjs.map +1 -0
  29. package/dist/src/extensions/workspaces/sessions/(backend)/tool/_lib/readTool.mjs +49 -0
  30. package/dist/src/extensions/workspaces/sessions/(backend)/tool/_lib/readTool.mjs.map +1 -0
  31. package/dist/src/extensions/workspaces/sessions/(backend)/tool/read.cli.cjs +7 -0
  32. package/dist/src/extensions/workspaces/sessions/(backend)/tool/read.cli.cjs.map +1 -0
  33. package/dist/src/extensions/workspaces/sessions/(backend)/tool/read.cli.mjs +8 -0
  34. package/dist/src/extensions/workspaces/sessions/(backend)/tool/read.cli.mjs.map +1 -0
  35. package/dist/src/extensions/workspaces/sessions/(backend)/tool/read.server.cjs +7 -0
  36. package/dist/src/extensions/workspaces/sessions/(backend)/tool/read.server.cjs.map +1 -0
  37. package/dist/src/extensions/workspaces/sessions/(backend)/tool/read.server.mjs +8 -0
  38. package/dist/src/extensions/workspaces/sessions/(backend)/tool/read.server.mjs.map +1 -0
  39. package/dist/src/extensions/workspaces/sessions/(frontend)/tool/_lib/readRenderer.cli.cjs +17 -0
  40. package/dist/src/extensions/workspaces/sessions/(frontend)/tool/_lib/readRenderer.cli.cjs.map +1 -0
  41. package/dist/src/extensions/workspaces/sessions/(frontend)/tool/_lib/readRenderer.cli.mjs +17 -0
  42. package/dist/src/extensions/workspaces/sessions/(frontend)/tool/_lib/readRenderer.cli.mjs.map +1 -0
  43. package/dist/src/extensions/workspaces/sessions/(frontend)/tool/read.cli.cjs +7 -0
  44. package/dist/src/extensions/workspaces/sessions/(frontend)/tool/read.cli.cjs.map +1 -0
  45. package/dist/src/extensions/workspaces/sessions/(frontend)/tool/read.cli.mjs +8 -0
  46. package/dist/src/extensions/workspaces/sessions/(frontend)/tool/read.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/readTool.cjs +17 -0
  54. package/dist/src/schemas/readTool.cjs.map +1 -0
  55. package/dist/src/schemas/readTool.d.cts.map +1 -0
  56. package/dist/src/schemas/readTool.d.mts.map +1 -0
  57. package/dist/src/schemas/readTool.mjs +17 -0
  58. package/dist/src/schemas/readTool.mjs.map +1 -0
  59. package/dist/src/services/readImage/index.cjs +43 -0
  60. package/dist/src/services/readImage/index.cjs.map +1 -0
  61. package/dist/src/services/readImage/index.d.cts.map +1 -0
  62. package/dist/src/services/readImage/index.d.mts.map +1 -0
  63. package/dist/src/services/readImage/index.mjs +42 -0
  64. package/dist/src/services/readImage/index.mjs.map +1 -0
  65. package/dist/src/services/readTool/index.cjs +112 -0
  66. package/dist/src/services/readTool/index.cjs.map +1 -0
  67. package/dist/{services → src/services}/readTool/index.d.cts +1 -1
  68. package/dist/src/services/readTool/index.d.cts.map +1 -0
  69. package/dist/src/services/readTool/index.d.mts.map +1 -0
  70. package/dist/src/services/readTool/index.mjs +107 -0
  71. package/dist/src/services/readTool/index.mjs.map +1 -0
  72. package/package.json +21 -14
  73. package/dist/constants/package.cjs +0 -2
  74. package/dist/constants/package.cjs.map +0 -1
  75. package/dist/constants/package.mjs +0 -2
  76. package/dist/constants/package.mjs.map +0 -1
  77. package/dist/schemas/apiContracts.cjs +0 -2
  78. package/dist/schemas/apiContracts.cjs.map +0 -1
  79. package/dist/schemas/apiContracts.mjs +0 -2
  80. package/dist/schemas/apiContracts.mjs.map +0 -1
  81. package/dist/schemas/readTool.cjs +0 -2
  82. package/dist/schemas/readTool.cjs.map +0 -1
  83. package/dist/schemas/readTool.d.cts.map +0 -1
  84. package/dist/schemas/readTool.d.mts.map +0 -1
  85. package/dist/schemas/readTool.mjs +0 -2
  86. package/dist/schemas/readTool.mjs.map +0 -1
  87. package/dist/services/piReadImage/index.cjs +0 -2
  88. package/dist/services/piReadImage/index.cjs.map +0 -1
  89. package/dist/services/piReadImage/index.mjs +0 -2
  90. package/dist/services/piReadImage/index.mjs.map +0 -1
  91. package/dist/services/readImage/index.cjs +0 -2
  92. package/dist/services/readImage/index.cjs.map +0 -1
  93. package/dist/services/readImage/index.d.cts.map +0 -1
  94. package/dist/services/readImage/index.d.mts.map +0 -1
  95. package/dist/services/readImage/index.mjs +0 -2
  96. package/dist/services/readImage/index.mjs.map +0 -1
  97. package/dist/services/readTool/index.cjs +0 -3
  98. package/dist/services/readTool/index.cjs.map +0 -1
  99. package/dist/services/readTool/index.d.cts.map +0 -1
  100. package/dist/services/readTool/index.d.mts.map +0 -1
  101. package/dist/services/readTool/index.mjs +0 -3
  102. package/dist/services/readTool/index.mjs.map +0 -1
  103. package/dist/tools/piRead.cjs +0 -2
  104. package/dist/tools/piRead.cjs.map +0 -1
  105. package/dist/tools/piRead.d.cts +0 -9
  106. package/dist/tools/piRead.d.cts.map +0 -1
  107. package/dist/tools/piRead.d.mts +0 -9
  108. package/dist/tools/piRead.d.mts.map +0 -1
  109. package/dist/tools/piRead.mjs +0 -2
  110. package/dist/tools/piRead.mjs.map +0 -1
  111. package/src/extensions/web.ts +0 -14
  112. package/src/web/components/ReadToolMessage.tsx +0 -116
  113. package/src/web/lib/readToolView.ts +0 -24
  114. package/src/web/tsconfig.json +0 -23
  115. /package/dist/{schemas → src/schemas}/apiContracts.d.cts +0 -0
  116. /package/dist/{schemas → src/schemas}/apiContracts.d.mts +0 -0
  117. /package/dist/{schemas → src/schemas}/readTool.d.cts +0 -0
  118. /package/dist/{schemas → src/schemas}/readTool.d.mts +0 -0
  119. /package/dist/{services → src/services}/readImage/index.d.cts +0 -0
  120. /package/dist/{services → src/services}/readImage/index.d.mts +0 -0
  121. /package/dist/{services → src/services}/readTool/index.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/piRead.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:[`read`],replacements:[(0,n.definePiTool)(e.createHashlineReadTool())]}]}));exports.activateDoomPiReadExtension=r,exports.default=r;
1
+ Object.defineProperties(exports, {
2
+ __esModule: { value: true },
3
+ [Symbol.toStringTag]: { value: "Module" }
4
+ });
5
+ const require_read_cli = require("../src/extensions/workspaces/sessions/(backend)/tool/read.cli.cjs");
6
+ const require_read_cli$1 = require("../src/extensions/workspaces/sessions/(frontend)/tool/read.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-read", (context) => ({ ...(0, _agimon_ai_doompi_core_pi_extension.piToolContributions)("@agimon-ai/doompi-read", [via({ name: "read" }, (0, _agimon_ai_doompi_core_pi_extension.withPiRenderers)(at(require_read_cli.default, context), at(require_read_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","createHashlineReadTool"],"sources":["../../src/extensions/pi.ts"],"sourcesContent":["import { definePiExtension, definePiTool } from '@agimon-ai/doompi-core/pi-extension';\n\nimport { PACKAGE_SOURCE } from '../constants/package';\nimport { createHashlineReadTool } from '../tools/piRead';\n\nexport const activateDoomPiReadExtension = definePiExtension(PACKAGE_SOURCE, () => ({\n toolOverrides: [{ source: PACKAGE_SOURCE, tools: ['read'], replacements: [definePiTool(createHashlineReadTool())] }],\n}));\nexport default activateDoomPiReadExtension;\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","toolRead","renderRead"],"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 toolRead from '../src/extensions/workspaces/sessions/(backend)/tool/read.cli';\nimport renderRead from '../src/extensions/workspaces/sessions/(frontend)/tool/read.cli';\n\ntype OptionsOf<T> = T extends (context: PiPluginContext<infer Options>) => unknown ? Options : never;\ntype InferredOptions = Exclude<OptionsOf<typeof toolRead>, 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-read', (context) => ({\n ...piToolContributions('@agimon-ai/doompi-read', [via({ name: 'read' }, withPiRenderers(at(toolRead, context), at(renderRead, 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 activateDoomPiReadExtension: 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 { activateDoomPiReadExtension 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 activateDoomPiReadExtension: 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 { activateDoomPiReadExtension 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{createHashlineReadTool as e}from"../tools/piRead.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:[`read`],replacements:[r(e())]}]}));export{i as activateDoomPiReadExtension,i as default};
1
+ import read_cli_default from "../src/extensions/workspaces/sessions/(backend)/tool/read.cli.mjs";
2
+ import read_cli_default$1 from "../src/extensions/workspaces/sessions/(frontend)/tool/read.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-read", (context) => ({ ...piToolContributions("@agimon-ai/doompi-read", [via({ name: "read" }, withPiRenderers(at(read_cli_default, context), at(read_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 { createHashlineReadTool } from '../tools/piRead';\n\nexport const activateDoomPiReadExtension = definePiExtension(PACKAGE_SOURCE, () => ({\n toolOverrides: [{ source: PACKAGE_SOURCE, tools: ['read'], replacements: [definePiTool(createHashlineReadTool())] }],\n}));\nexport default activateDoomPiReadExtension;\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":["toolRead","renderRead"],"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 toolRead from '../src/extensions/workspaces/sessions/(backend)/tool/read.cli';\nimport renderRead from '../src/extensions/workspaces/sessions/(frontend)/tool/read.cli';\n\ntype OptionsOf<T> = T extends (context: PiPluginContext<infer Options>) => unknown ? Options : never;\ntype InferredOptions = Exclude<OptionsOf<typeof toolRead>, 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-read', (context) => ({\n ...piToolContributions('@agimon-ai/doompi-read', [via({ name: 'read' }, withPiRenderers(at(toolRead, context), at(renderRead, 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/readTool/index.cjs"),t=require("../constants/package.cjs"),n=(0,require("@agimon-ai/doompi-core/server-facet").defineServerPlugin)({name:t.PACKAGE_SOURCE,session:()=>({tools:[e.createHeadlessReadTool()]})});exports.default=n,exports.readServerFacet=n;
1
+ Object.defineProperties(exports, {
2
+ __esModule: { value: true },
3
+ [Symbol.toStringTag]: { value: "Module" }
4
+ });
5
+ const require_read_server = require("../src/extensions/workspaces/sessions/(backend)/tool/read.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-read",
15
+ session: (context) => ({ get tools() {
16
+ return [via({ name: "read" }, at(require_read_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","createHeadlessReadTool"],"sources":["../../src/extensions/server.ts"],"sourcesContent":["import { defineServerPlugin } from '@agimon-ai/doompi-core/server-facet';\n\nimport { PACKAGE_SOURCE } from '../constants/package';\nimport { createHeadlessReadTool } from '../services/readTool';\n\nexport const readServerFacet = defineServerPlugin({\n name: PACKAGE_SOURCE,\n session: () => ({ tools: [createHeadlessReadTool()] }),\n});\nexport default readServerFacet;\n"],"mappings":"uLAKa,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","toolRead"],"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 toolRead from '../src/extensions/workspaces/sessions/(backend)/tool/read.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-read',\n session: (context) => ({\n get tools(): DoomServerSessionPlugin['tools'] { return [via({ name: 'read' }, at(toolRead, 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 readServerFacet: 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 { readServerFacet 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 readServerFacet: 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 { readServerFacet 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{createHeadlessReadTool as e}from"../services/readTool/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 readServerFacet};
1
+ import read_server_default from "../src/extensions/workspaces/sessions/(backend)/tool/read.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-read",
11
+ session: (context) => ({ get tools() {
12
+ return [via({ name: "read" }, at(read_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 { createHeadlessReadTool } from '../services/readTool';\n\nexport const readServerFacet = defineServerPlugin({\n name: PACKAGE_SOURCE,\n session: () => ({ tools: [createHeadlessReadTool()] }),\n});\nexport default readServerFacet;\n"],"mappings":"2MAKA,MAAa,EAAkB,EAAmB,CAChD,KAAM,EACN,aAAgB,CAAE,MAAO,CAAC,EAAuB,CAAC,CAAE,EACtD,CAAC"}
1
+ {"version":3,"file":"server.mjs","names":["toolRead"],"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 toolRead from '../src/extensions/workspaces/sessions/(backend)/tool/read.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-read',\n session: (context) => ({\n get tools(): DoomServerSessionPlugin['tools'] { return [via({ name: 'read' }, at(toolRead, 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,134 @@
1
+ import { defineToolRenderer, defineWebPlugin } from "@agimon-ai/doompi-core/web";
2
+ import { HashlineLines, MessageItem, MessageItemBody, MessageItemHeader, MessageItemStatus, ToolPathLink, 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/readToolView.ts
5
+ function optionalNumber(value) {
6
+ return typeof value === "number" && Number.isFinite(value) ? value : void 0;
7
+ }
8
+ /** What the read call heading shows: the path, then the offset and limit when given. */
9
+ function readCallView(args) {
10
+ const offset = optionalNumber(args.offset);
11
+ const limit = optionalNumber(args.limit);
12
+ return {
13
+ path: typeof args.path === "string" ? args.path : "",
14
+ details: compactDetails([offset === void 0 ? void 0 : `from ${offset}`, limit === void 0 ? void 0 : `${limit} lines`])
15
+ };
16
+ }
17
+ //#endregion
18
+ //#region src/extensions/workspaces/sessions/(frontend)/tool/_components/ReadToolMessage.tsx
19
+ const IMAGE_MIME_TYPES = /* @__PURE__ */ new Set([
20
+ "image/png",
21
+ "image/jpeg",
22
+ "image/gif",
23
+ "image/webp"
24
+ ]);
25
+ function resultImages(content) {
26
+ return content.flatMap((block) => {
27
+ if (typeof block !== "object" || block === null || Array.isArray(block)) return [];
28
+ const value = block;
29
+ return value.type === "image" && typeof value.data === "string" && typeof value.mimeType === "string" && IMAGE_MIME_TYPES.has(value.mimeType) ? [{
30
+ data: value.data,
31
+ mimeType: value.mimeType
32
+ }] : [];
33
+ });
34
+ }
35
+ /**
36
+ * The read tool's timeline item, the web half of its renderCall and
37
+ * renderResult: the call summary in the header and, when expanded, the
38
+ * anchored lines with a line-number gutter in the body. A failure shows the
39
+ * tool's message in red inside the expanded body instead.
40
+ */
41
+ function ReadToolMessage({ args, result, output, running, isError, fileTabFor, openTransientTab }) {
42
+ const view = readCallView(args);
43
+ const images = resultImages(result?.content ?? []);
44
+ const tab = fileTabFor(view.path);
45
+ const body = result === null || isError ? null : hashlineBody(result, output, "read", true);
46
+ return /* @__PURE__ */ jsx(MessageItem, {
47
+ tone: toolTone({
48
+ running,
49
+ isError
50
+ }),
51
+ expandable: true,
52
+ defaultExpanded: false,
53
+ children: ({ expanded }) => {
54
+ return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(MessageItemHeader, {
55
+ title: "read",
56
+ children: /* @__PURE__ */ jsxs("span", {
57
+ "data-testid": "tool-call-read",
58
+ className: "flex min-w-0 flex-1 items-center gap-2",
59
+ children: [/* @__PURE__ */ jsx(ToolPathLink, {
60
+ path: view.path,
61
+ ...tab === void 0 ? {} : { onOpen: () => openTransientTab(tab) }
62
+ }), view.details.length > 0 ? /* @__PURE__ */ jsxs("span", {
63
+ className: "shrink-0 text-doom-faint",
64
+ children: ["· ", view.details.join(" · ")]
65
+ }) : null]
66
+ })
67
+ }), expanded ? isError ? /* @__PURE__ */ jsxs(MessageItemBody, {
68
+ "data-testid": "tool-result-read",
69
+ className: "flex flex-col",
70
+ children: [/* @__PURE__ */ jsx(MessageItemStatus, {
71
+ tone: "error",
72
+ children: "failed"
73
+ }), resultTextLines(result, output).map((line, index) => /* @__PURE__ */ jsx("span", {
74
+ className: "whitespace-pre-wrap break-words text-doom-red",
75
+ children: line
76
+ }, `${String(index)}-${line}`))]
77
+ }) : body === null ? running ? /* @__PURE__ */ jsx(MessageItemBody, {
78
+ "data-testid": "tool-result-read",
79
+ children: /* @__PURE__ */ jsx(MessageItemStatus, {
80
+ tone: "running",
81
+ children: "running"
82
+ })
83
+ }) : null : body.shown.length === 0 && body.notice === void 0 && images.length === 0 ? null : /* @__PURE__ */ jsxs(MessageItemBody, {
84
+ "data-testid": "tool-result-read",
85
+ className: "flex flex-col gap-1",
86
+ children: [
87
+ /* @__PURE__ */ jsx(HashlineLines, {
88
+ lines: body.shown,
89
+ gutter: body.gutter,
90
+ path: view.path
91
+ }),
92
+ images.map((image, index) => {
93
+ const url = `data:${image.mimeType};base64,${image.data}`;
94
+ return /* @__PURE__ */ jsx("a", {
95
+ href: url,
96
+ target: "_blank",
97
+ rel: "noreferrer",
98
+ className: "self-start",
99
+ children: /* @__PURE__ */ jsx("img", {
100
+ src: url,
101
+ alt: `Read result ${String(index + 1)}`,
102
+ "data-testid": "tool-result-read-image",
103
+ className: "h-auto max-h-96 max-w-full rounded-md border border-doom-border-soft object-contain"
104
+ })
105
+ }, `${image.mimeType}:${String(index)}`);
106
+ }),
107
+ body.notice !== void 0 ? /* @__PURE__ */ jsx("span", {
108
+ className: "text-doom-faint",
109
+ children: body.notice
110
+ }) : null
111
+ ]
112
+ }) : null] });
113
+ }
114
+ });
115
+ }
116
+ //#endregion
117
+ //#region src/extensions/workspaces/sessions/(frontend)/tool/read.web.tsx
118
+ var read_web_default = defineToolRenderer({ message: ReadToolMessage });
119
+ //#endregion
120
+ //#region generated/web.ts
121
+ const via = (identity, value) => ({
122
+ ...identity,
123
+ ...value
124
+ });
125
+ const webPlugin = defineWebPlugin({
126
+ id: "read",
127
+ session: { get toolRenderers() {
128
+ return [via({ tools: ["read"] }, read_web_default)];
129
+ } }
130
+ });
131
+ //#endregion
132
+ export { webPlugin };
133
+
134
+ //# sourceMappingURL=web.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web.mjs","names":["toolRead"],"sources":["../../src/extensions/workspaces/sessions/(frontend)/tool/_lib/readToolView.ts","../../src/extensions/workspaces/sessions/(frontend)/tool/_components/ReadToolMessage.tsx","../../src/extensions/workspaces/sessions/(frontend)/tool/read.web.tsx","../../generated/web.ts"],"sourcesContent":["import { compactDetails } from '@agimon-ai/doompi-web-components';\n\nexport interface ReadCallView {\n readonly path: string;\n /** `from N` and `N lines`, as the TUI's call heading lists them. */\n readonly details: readonly string[];\n}\n\nfunction optionalNumber(value: unknown): number | undefined {\n return typeof value === 'number' && Number.isFinite(value) ? value : undefined;\n}\n\n/** What the read call heading shows: the path, then the offset and limit when given. */\nexport function readCallView(args: Readonly<Record<string, unknown>>): ReadCallView {\n const offset = optionalNumber(args.offset);\n const limit = optionalNumber(args.limit);\n return {\n path: typeof args.path === 'string' ? args.path : '',\n details: compactDetails([\n offset === undefined ? undefined : `from ${offset}`,\n limit === undefined ? undefined : `${limit} lines`,\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 ToolPathLink,\n toolTone,\n} from '@agimon-ai/doompi-web-components';\n\nimport { readCallView } from '../_lib/readToolView';\n\nconst IMAGE_MIME_TYPES = new Set(['image/png', 'image/jpeg', 'image/gif', 'image/webp']);\n\nfunction resultImages(content: readonly unknown[]): Array<{ data: string; mimeType: string }> {\n return content.flatMap((block) => {\n if (typeof block !== 'object' || block === null || Array.isArray(block)) return [];\n const value = block as Record<string, unknown>;\n return value.type === 'image' &&\n typeof value.data === 'string' &&\n typeof value.mimeType === 'string' &&\n IMAGE_MIME_TYPES.has(value.mimeType)\n ? [{ data: value.data, mimeType: value.mimeType }]\n : [];\n });\n}\n/**\n * The read 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 lines 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 ReadToolMessage({\n args,\n result,\n output,\n running,\n isError,\n fileTabFor,\n openTransientTab,\n}: ToolMessageRenderProps) {\n const view = readCallView(args);\n const images = resultImages(result?.content ?? []);\n // A read is the one call whose file the session usually has not changed, so\n // this is the link that opens it read-only rather than in its history.\n const tab = fileTabFor(view.path);\n const body = result === null || isError ? null : hashlineBody(result, output, 'read', true);\n return (\n <MessageItem tone={toolTone({ running, isError })} expandable defaultExpanded={false}>\n {({ expanded }) => {\n return (\n <>\n <MessageItemHeader title=\"read\">\n <span data-testid=\"tool-call-read\" className=\"flex min-w-0 flex-1 items-center gap-2\">\n <ToolPathLink\n path={view.path}\n {...(tab === undefined ? {} : { onOpen: () => openTransientTab(tab) })}\n />\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-read\" 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-read\">\n <MessageItemStatus tone=\"running\">running</MessageItemStatus>\n </MessageItemBody>\n ) : null\n ) : body.shown.length === 0 && body.notice === undefined && images.length === 0 ? null : (\n <MessageItemBody data-testid=\"tool-result-read\" className=\"flex flex-col gap-1\">\n {/* A read body is one file with no heading of its own, so the\n call's path is what names the grammar for it. */}\n <HashlineLines lines={body.shown} gutter={body.gutter} path={view.path} />\n {images.map((image, index) => {\n const url = `data:${image.mimeType};base64,${image.data}`;\n return (\n <a\n key={`${image.mimeType}:${String(index)}`}\n href={url}\n target=\"_blank\"\n rel=\"noreferrer\"\n className=\"self-start\"\n >\n <img\n src={url}\n alt={`Read result ${String(index + 1)}`}\n data-testid=\"tool-result-read-image\"\n className=\"h-auto max-h-96 max-w-full rounded-md border border-doom-border-soft object-contain\"\n />\n </a>\n );\n })}\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 { ReadToolMessage } from './_components/ReadToolMessage';\n\nexport default defineToolRenderer({ message: ReadToolMessage });\n","// Generated by @agimon-ai/doompi-build. Do not edit by hand.\nimport { defineWebPlugin, type WebPluginContributions } from '@agimon-ai/doompi-core/web';\n\nimport toolRead from '../src/extensions/workspaces/sessions/(frontend)/tool/read.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: 'read',\n session: {\n get toolRenderers(): WebPluginContributions['toolRenderers'] { return [via({ tools: ['read'] }, toolRead)]; },\n },\n});\n"],"mappings":"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"}
package/dist/index.cjs CHANGED
@@ -1 +1,6 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./schemas/readTool.cjs"),t=require("./services/readTool/index.cjs"),n=require("./tools/piRead.cjs");exports.ReadParamsSchema=e.ReadParamsSchema,exports.createHashlineReadTool=n.createHashlineReadTool,exports.createHeadlessReadTool=t.createHeadlessReadTool,exports.executeHeadlessRead=t.executeHeadlessRead;
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_readTool = require("./src/schemas/readTool.cjs");
3
+ const require_index = require("./src/services/readTool/index.cjs");
4
+ exports.ReadParamsSchema = require_readTool.ReadParamsSchema;
5
+ exports.createHeadlessReadTool = require_index.createHeadlessReadTool;
6
+ exports.executeHeadlessRead = require_index.executeHeadlessRead;
package/dist/index.d.cts CHANGED
@@ -1,4 +1,3 @@
1
- import { ReadParams, ReadParamsSchema } from "./schemas/readTool.cjs";
2
- import { createHeadlessReadTool, executeHeadlessRead } from "./services/readTool/index.cjs";
3
- import { createHashlineReadTool } from "./tools/piRead.cjs";
4
- export { type ReadParams, ReadParamsSchema, createHashlineReadTool, createHeadlessReadTool, executeHeadlessRead };
1
+ import { ReadParams, ReadParamsSchema } from "./src/schemas/readTool.cjs";
2
+ import { createHeadlessReadTool, executeHeadlessRead } from "./src/services/readTool/index.cjs";
3
+ export { type ReadParams, ReadParamsSchema, createHeadlessReadTool, executeHeadlessRead };
package/dist/index.d.mts CHANGED
@@ -1,4 +1,3 @@
1
- import { ReadParams, ReadParamsSchema } from "./schemas/readTool.mjs";
2
- import { createHeadlessReadTool, executeHeadlessRead } from "./services/readTool/index.mjs";
3
- import { createHashlineReadTool } from "./tools/piRead.mjs";
4
- export { type ReadParams, ReadParamsSchema, createHashlineReadTool, createHeadlessReadTool, executeHeadlessRead };
1
+ import { ReadParams, ReadParamsSchema } from "./src/schemas/readTool.mjs";
2
+ import { createHeadlessReadTool, executeHeadlessRead } from "./src/services/readTool/index.mjs";
3
+ export { type ReadParams, ReadParamsSchema, createHeadlessReadTool, executeHeadlessRead };
package/dist/index.mjs CHANGED
@@ -1 +1,3 @@
1
- import{ReadParamsSchema as e}from"./schemas/readTool.mjs";import{createHeadlessReadTool as t,executeHeadlessRead as n}from"./services/readTool/index.mjs";import{createHashlineReadTool as r}from"./tools/piRead.mjs";export{e as ReadParamsSchema,r as createHashlineReadTool,t as createHeadlessReadTool,n as executeHeadlessRead};
1
+ import { ReadParamsSchema } from "./src/schemas/readTool.mjs";
2
+ import { createHeadlessReadTool, executeHeadlessRead } from "./src/services/readTool/index.mjs";
3
+ export { ReadParamsSchema, createHeadlessReadTool, executeHeadlessRead };
@@ -0,0 +1,49 @@
1
+ const require_readTool = require("../../../../../../schemas/readTool.cjs");
2
+ const require_index = require("../../../../../../services/readImage/index.cjs");
3
+ const require_index$1 = require("../../../../../../services/readTool/index.cjs");
4
+ let node_fs_promises = require("node:fs/promises");
5
+ let _agimon_ai_doompi_hashline_files = require("@agimon-ai/doompi-hashline/files");
6
+ let _earendil_works_pi_coding_agent = require("@earendil-works/pi-coding-agent");
7
+ //#region src/extensions/workspaces/sessions/(backend)/tool/_lib/readTool.ts
8
+ const resizeOperations = {
9
+ resize: _earendil_works_pi_coding_agent.resizeImage,
10
+ formatDimensionNote: (result) => (0, _earendil_works_pi_coding_agent.formatDimensionNote)(result)
11
+ };
12
+ function createHashlineReadTool(writable = _agimon_ai_doompi_hashline_files.isWritableFile) {
13
+ return {
14
+ name: "read",
15
+ label: "read",
16
+ description: `Read a writable text file with an exact-byte file tag and stable line anchors. Non-writable files and images retain Pi's native behavior. Text is truncated to ${(0, _earendil_works_pi_coding_agent.formatSize)(_earendil_works_pi_coding_agent.DEFAULT_MAX_BYTES)}.`,
17
+ promptSnippet: "Read file contents with snapshot-bound line anchors",
18
+ promptGuidelines: ["Use read before edit. When hashline metadata is present, preserve the @file hash and anchors such as 5#abc exactly.", "Continue large reads with offset until the required anchored lines are visible."],
19
+ parameters: require_readTool.ReadParamsSchema,
20
+ executionMode: "parallel",
21
+ async execute(toolCallId, params, signal, onUpdate, ctx) {
22
+ const input = params;
23
+ require_index$1.assertNotAborted(signal);
24
+ const absolutePath = await (0, _agimon_ai_doompi_hashline_files.resolveReadInputPath)(input.path, ctx.cwd);
25
+ const nativeResult = await (0, _earendil_works_pi_coding_agent.createReadToolDefinition)(ctx.cwd, { autoResizeImages: false }).execute(toolCallId, {
26
+ ...input,
27
+ path: absolutePath
28
+ }, signal, onUpdate, ctx);
29
+ if (require_index$1.isImageRead(nativeResult.content)) {
30
+ require_index$1.assertNotAborted(signal);
31
+ return {
32
+ ...nativeResult,
33
+ content: await require_index.applyImageLimits(nativeResult.content, require_index.imageLimits(), resizeOperations)
34
+ };
35
+ }
36
+ require_index$1.assertNotAborted(signal);
37
+ const canEdit = await writable(absolutePath);
38
+ require_index$1.assertNotAborted(signal);
39
+ if (!canEdit) return nativeResult;
40
+ const bytes = await (0, node_fs_promises.readFile)(absolutePath);
41
+ require_index$1.assertNotAborted(signal);
42
+ return require_index$1.createTaggedReadResult(bytes, (0, _agimon_ai_doompi_hashline_files.displayPath)(absolutePath, ctx.cwd), input);
43
+ }
44
+ };
45
+ }
46
+ //#endregion
47
+ exports.createHashlineReadTool = createHashlineReadTool;
48
+
49
+ //# sourceMappingURL=readTool.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readTool.cjs","names":["resizeImage","formatDimensionNote","isWritableFile","formatSize","DEFAULT_MAX_BYTES","ReadParamsSchema","resolveReadInputPath","createReadToolDefinition","isImageRead","applyImageLimits","imageLimits","readFile","createTaggedReadResult","displayPath"],"sources":["../../../../../../../../src/extensions/workspaces/sessions/(backend)/tool/_lib/readTool.ts"],"sourcesContent":["import { readFile } from 'node:fs/promises';\n\nimport { isWritableFile, displayPath, resolveReadInputPath } from '@agimon-ai/doompi-hashline/files';\nimport {\n createReadToolDefinition,\n DEFAULT_MAX_BYTES,\n formatDimensionNote,\n formatSize,\n resizeImage,\n type AgentToolResult,\n type ToolDefinition,\n} from '@earendil-works/pi-coding-agent';\n\nimport { ReadParamsSchema, type ReadParams } from '../../../../../../schemas/readTool';\nimport { applyImageLimits, imageLimits, type ReadImageResizeOperations } from '../../../../../../services/readImage';\nimport { assertNotAborted, createTaggedReadResult, isImageRead } from '../../../../../../services/readTool';\n\ntype WritableCheck = (path: string) => Promise<boolean>;\n\nconst resizeOperations: ReadImageResizeOperations = {\n resize: resizeImage,\n formatDimensionNote: (result) => formatDimensionNote(result),\n};\n\nexport function createHashlineReadTool(\n writable: WritableCheck = isWritableFile,\n): ToolDefinition<typeof ReadParamsSchema> {\n return {\n name: 'read',\n label: 'read',\n description: `Read a writable text file with an exact-byte file tag and stable line anchors. Non-writable files and images retain Pi's native behavior. Text is truncated to ${formatSize(DEFAULT_MAX_BYTES)}.`,\n promptSnippet: 'Read file contents with snapshot-bound line anchors',\n promptGuidelines: [\n 'Use read before edit. When hashline metadata is present, preserve the @file hash and anchors such as 5#abc exactly.',\n 'Continue large reads with offset until the required anchored lines are visible.',\n ],\n parameters: ReadParamsSchema,\n executionMode: 'parallel',\n async execute(toolCallId, params, signal, onUpdate, ctx) {\n const input = params as ReadParams;\n assertNotAborted(signal);\n const absolutePath = await resolveReadInputPath(input.path, ctx.cwd);\n const nativeRead = createReadToolDefinition(ctx.cwd, { autoResizeImages: false });\n const nativeResult = await nativeRead.execute(\n toolCallId,\n { ...input, path: absolutePath },\n signal,\n onUpdate,\n ctx,\n );\n if (isImageRead(nativeResult.content)) {\n assertNotAborted(signal);\n return {\n ...nativeResult,\n content: await applyImageLimits(nativeResult.content, imageLimits(), resizeOperations),\n };\n }\n\n assertNotAborted(signal);\n const canEdit = await writable(absolutePath);\n assertNotAborted(signal);\n if (!canEdit) return nativeResult;\n const bytes = await readFile(absolutePath);\n assertNotAborted(signal);\n return createTaggedReadResult(\n bytes,\n displayPath(absolutePath, ctx.cwd),\n input,\n ) as unknown as AgentToolResult<unknown>;\n },\n };\n}\n"],"mappings":";;;;;;;AAmBA,MAAM,mBAA8C;CAClD,QAAQA,gCAAAA;CACR,sBAAsB,YAAA,GAAWC,gCAAAA,oBAAAA,CAAoB,MAAM;AAC7D;AAEA,SAAgB,uBACd,WAA0BC,iCAAAA,gBACe;CACzC,OAAO;EACL,MAAM;EACN,OAAO;EACP,aAAa,mKAAA,GAAkKC,gCAAAA,WAAAA,CAAWC,gCAAAA,iBAAiB,EAAE;EAC7M,eAAe;EACf,kBAAkB,CAChB,uHACA,iFACF;EACA,YAAYC,iBAAAA;EACZ,eAAe;EACf,MAAM,QAAQ,YAAY,QAAQ,QAAQ,UAAU,KAAK;GACvD,MAAM,QAAQ;GACd,gBAAA,iBAAiB,MAAM;GACvB,MAAM,eAAe,OAAA,GAAMC,iCAAAA,qBAAAA,CAAqB,MAAM,MAAM,IAAI,GAAG;GAEnE,MAAM,eAAe,OAAA,GADFC,gCAAAA,yBAAAA,CAAyB,IAAI,KAAK,EAAE,kBAAkB,MAAM,CAC3C,CAAC,CAAC,QACpC,YACA;IAAE,GAAG;IAAO,MAAM;GAAa,GAC/B,QACA,UACA,GACF;GACA,IAAIC,gBAAAA,YAAY,aAAa,OAAO,GAAG;IACrC,gBAAA,iBAAiB,MAAM;IACvB,OAAO;KACL,GAAG;KACH,SAAS,MAAMC,cAAAA,iBAAiB,aAAa,SAASC,cAAAA,YAAY,GAAG,gBAAgB;IACvF;GACF;GAEA,gBAAA,iBAAiB,MAAM;GACvB,MAAM,UAAU,MAAM,SAAS,YAAY;GAC3C,gBAAA,iBAAiB,MAAM;GACvB,IAAI,CAAC,SAAS,OAAO;GACrB,MAAM,QAAQ,OAAA,GAAMC,iBAAAA,SAAAA,CAAS,YAAY;GACzC,gBAAA,iBAAiB,MAAM;GACvB,OAAOC,gBAAAA,uBACL,QAAA,GACAC,iCAAAA,YAAAA,CAAY,cAAc,IAAI,GAAG,GACjC,KACF;EACF;CACF;AACF"}
@@ -0,0 +1,49 @@
1
+ import { ReadParamsSchema } from "../../../../../../schemas/readTool.mjs";
2
+ import { applyImageLimits, imageLimits } from "../../../../../../services/readImage/index.mjs";
3
+ import { assertNotAborted, createTaggedReadResult, isImageRead } from "../../../../../../services/readTool/index.mjs";
4
+ import { readFile } from "node:fs/promises";
5
+ import { displayPath, isWritableFile, resolveReadInputPath } from "@agimon-ai/doompi-hashline/files";
6
+ import { DEFAULT_MAX_BYTES, createReadToolDefinition, formatDimensionNote, formatSize, resizeImage } from "@earendil-works/pi-coding-agent";
7
+ //#region src/extensions/workspaces/sessions/(backend)/tool/_lib/readTool.ts
8
+ const resizeOperations = {
9
+ resize: resizeImage,
10
+ formatDimensionNote: (result) => formatDimensionNote(result)
11
+ };
12
+ function createHashlineReadTool(writable = isWritableFile) {
13
+ return {
14
+ name: "read",
15
+ label: "read",
16
+ description: `Read a writable text file with an exact-byte file tag and stable line anchors. Non-writable files and images retain Pi's native behavior. Text is truncated to ${formatSize(DEFAULT_MAX_BYTES)}.`,
17
+ promptSnippet: "Read file contents with snapshot-bound line anchors",
18
+ promptGuidelines: ["Use read before edit. When hashline metadata is present, preserve the @file hash and anchors such as 5#abc exactly.", "Continue large reads with offset until the required anchored lines are visible."],
19
+ parameters: ReadParamsSchema,
20
+ executionMode: "parallel",
21
+ async execute(toolCallId, params, signal, onUpdate, ctx) {
22
+ const input = params;
23
+ assertNotAborted(signal);
24
+ const absolutePath = await resolveReadInputPath(input.path, ctx.cwd);
25
+ const nativeResult = await createReadToolDefinition(ctx.cwd, { autoResizeImages: false }).execute(toolCallId, {
26
+ ...input,
27
+ path: absolutePath
28
+ }, signal, onUpdate, ctx);
29
+ if (isImageRead(nativeResult.content)) {
30
+ assertNotAborted(signal);
31
+ return {
32
+ ...nativeResult,
33
+ content: await applyImageLimits(nativeResult.content, imageLimits(), resizeOperations)
34
+ };
35
+ }
36
+ assertNotAborted(signal);
37
+ const canEdit = await writable(absolutePath);
38
+ assertNotAborted(signal);
39
+ if (!canEdit) return nativeResult;
40
+ const bytes = await readFile(absolutePath);
41
+ assertNotAborted(signal);
42
+ return createTaggedReadResult(bytes, displayPath(absolutePath, ctx.cwd), input);
43
+ }
44
+ };
45
+ }
46
+ //#endregion
47
+ export { createHashlineReadTool };
48
+
49
+ //# sourceMappingURL=readTool.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readTool.mjs","names":[],"sources":["../../../../../../../../src/extensions/workspaces/sessions/(backend)/tool/_lib/readTool.ts"],"sourcesContent":["import { readFile } from 'node:fs/promises';\n\nimport { isWritableFile, displayPath, resolveReadInputPath } from '@agimon-ai/doompi-hashline/files';\nimport {\n createReadToolDefinition,\n DEFAULT_MAX_BYTES,\n formatDimensionNote,\n formatSize,\n resizeImage,\n type AgentToolResult,\n type ToolDefinition,\n} from '@earendil-works/pi-coding-agent';\n\nimport { ReadParamsSchema, type ReadParams } from '../../../../../../schemas/readTool';\nimport { applyImageLimits, imageLimits, type ReadImageResizeOperations } from '../../../../../../services/readImage';\nimport { assertNotAborted, createTaggedReadResult, isImageRead } from '../../../../../../services/readTool';\n\ntype WritableCheck = (path: string) => Promise<boolean>;\n\nconst resizeOperations: ReadImageResizeOperations = {\n resize: resizeImage,\n formatDimensionNote: (result) => formatDimensionNote(result),\n};\n\nexport function createHashlineReadTool(\n writable: WritableCheck = isWritableFile,\n): ToolDefinition<typeof ReadParamsSchema> {\n return {\n name: 'read',\n label: 'read',\n description: `Read a writable text file with an exact-byte file tag and stable line anchors. Non-writable files and images retain Pi's native behavior. Text is truncated to ${formatSize(DEFAULT_MAX_BYTES)}.`,\n promptSnippet: 'Read file contents with snapshot-bound line anchors',\n promptGuidelines: [\n 'Use read before edit. When hashline metadata is present, preserve the @file hash and anchors such as 5#abc exactly.',\n 'Continue large reads with offset until the required anchored lines are visible.',\n ],\n parameters: ReadParamsSchema,\n executionMode: 'parallel',\n async execute(toolCallId, params, signal, onUpdate, ctx) {\n const input = params as ReadParams;\n assertNotAborted(signal);\n const absolutePath = await resolveReadInputPath(input.path, ctx.cwd);\n const nativeRead = createReadToolDefinition(ctx.cwd, { autoResizeImages: false });\n const nativeResult = await nativeRead.execute(\n toolCallId,\n { ...input, path: absolutePath },\n signal,\n onUpdate,\n ctx,\n );\n if (isImageRead(nativeResult.content)) {\n assertNotAborted(signal);\n return {\n ...nativeResult,\n content: await applyImageLimits(nativeResult.content, imageLimits(), resizeOperations),\n };\n }\n\n assertNotAborted(signal);\n const canEdit = await writable(absolutePath);\n assertNotAborted(signal);\n if (!canEdit) return nativeResult;\n const bytes = await readFile(absolutePath);\n assertNotAborted(signal);\n return createTaggedReadResult(\n bytes,\n displayPath(absolutePath, ctx.cwd),\n input,\n ) as unknown as AgentToolResult<unknown>;\n },\n };\n}\n"],"mappings":";;;;;;;AAmBA,MAAM,mBAA8C;CAClD,QAAQ;CACR,sBAAsB,WAAW,oBAAoB,MAAM;AAC7D;AAEA,SAAgB,uBACd,WAA0B,gBACe;CACzC,OAAO;EACL,MAAM;EACN,OAAO;EACP,aAAa,kKAAkK,WAAW,iBAAiB,EAAE;EAC7M,eAAe;EACf,kBAAkB,CAChB,uHACA,iFACF;EACA,YAAY;EACZ,eAAe;EACf,MAAM,QAAQ,YAAY,QAAQ,QAAQ,UAAU,KAAK;GACvD,MAAM,QAAQ;GACd,iBAAiB,MAAM;GACvB,MAAM,eAAe,MAAM,qBAAqB,MAAM,MAAM,IAAI,GAAG;GAEnE,MAAM,eAAe,MADF,yBAAyB,IAAI,KAAK,EAAE,kBAAkB,MAAM,CAC3C,CAAC,CAAC,QACpC,YACA;IAAE,GAAG;IAAO,MAAM;GAAa,GAC/B,QACA,UACA,GACF;GACA,IAAI,YAAY,aAAa,OAAO,GAAG;IACrC,iBAAiB,MAAM;IACvB,OAAO;KACL,GAAG;KACH,SAAS,MAAM,iBAAiB,aAAa,SAAS,YAAY,GAAG,gBAAgB;IACvF;GACF;GAEA,iBAAiB,MAAM;GACvB,MAAM,UAAU,MAAM,SAAS,YAAY;GAC3C,iBAAiB,MAAM;GACvB,IAAI,CAAC,SAAS,OAAO;GACrB,MAAM,QAAQ,MAAM,SAAS,YAAY;GACzC,iBAAiB,MAAM;GACvB,OAAO,uBACL,OACA,YAAY,cAAc,IAAI,GAAG,GACjC,KACF;EACF;CACF;AACF"}
@@ -0,0 +1,7 @@
1
+ const require_readTool = require("./_lib/readTool.cjs");
2
+ //#region src/extensions/workspaces/sessions/(backend)/tool/read.cli.ts
3
+ var read_cli_default = (0, require("@agimon-ai/doompi-core/pi-extension").definePiTool)(require_readTool.createHashlineReadTool(), { overrides: true });
4
+ //#endregion
5
+ exports.default = read_cli_default;
6
+
7
+ //# sourceMappingURL=read.cli.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.cli.cjs","names":["definePiTool","createHashlineReadTool"],"sources":["../../../../../../../src/extensions/workspaces/sessions/(backend)/tool/read.cli.ts"],"sourcesContent":["import { definePiTool } from '@agimon-ai/doompi-core/pi-extension';\n\nimport { createHashlineReadTool } from './_lib/readTool';\n\nexport default definePiTool(createHashlineReadTool(), { 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 { createHashlineReadTool } from "./_lib/readTool.mjs";
2
+ import { definePiTool } from "@agimon-ai/doompi-core/pi-extension";
3
+ //#region src/extensions/workspaces/sessions/(backend)/tool/read.cli.ts
4
+ var read_cli_default = definePiTool(createHashlineReadTool(), { overrides: true });
5
+ //#endregion
6
+ export { read_cli_default as default };
7
+
8
+ //# sourceMappingURL=read.cli.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.cli.mjs","names":[],"sources":["../../../../../../../src/extensions/workspaces/sessions/(backend)/tool/read.cli.ts"],"sourcesContent":["import { definePiTool } from '@agimon-ai/doompi-core/pi-extension';\n\nimport { createHashlineReadTool } from './_lib/readTool';\n\nexport default definePiTool(createHashlineReadTool(), { overrides: true });\n"],"mappings":";;;AAIA,IAAA,mBAAe,aAAa,uBAAuB,GAAG,EAAE,WAAW,KAAK,CAAC"}
@@ -0,0 +1,7 @@
1
+ const require_index = require("../../../../../services/readTool/index.cjs");
2
+ //#region src/extensions/workspaces/sessions/(backend)/tool/read.server.ts
3
+ var read_server_default = (0, require("@agimon-ai/doompi-core/extension-file").defineServerTool)(require_index.createHeadlessReadTool);
4
+ //#endregion
5
+ exports.default = read_server_default;
6
+
7
+ //# sourceMappingURL=read.server.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.server.cjs","names":["defineServerTool","createHeadlessReadTool"],"sources":["../../../../../../../src/extensions/workspaces/sessions/(backend)/tool/read.server.ts"],"sourcesContent":["import { defineServerTool } from '@agimon-ai/doompi-core/extension-file';\n\nimport { createHeadlessReadTool } from '../../../../../services/readTool';\n\nexport default defineServerTool(createHeadlessReadTool);\n"],"mappings":";;AAIA,IAAA,uBAAA,kDAAeA,CAAAA,CAAAA,iBAAAA,CAAiBC,cAAAA,sBAAsB"}
@@ -0,0 +1,8 @@
1
+ import { createHeadlessReadTool } from "../../../../../services/readTool/index.mjs";
2
+ import { defineServerTool } from "@agimon-ai/doompi-core/extension-file";
3
+ //#region src/extensions/workspaces/sessions/(backend)/tool/read.server.ts
4
+ var read_server_default = defineServerTool(createHeadlessReadTool);
5
+ //#endregion
6
+ export { read_server_default as default };
7
+
8
+ //# sourceMappingURL=read.server.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.server.mjs","names":[],"sources":["../../../../../../../src/extensions/workspaces/sessions/(backend)/tool/read.server.ts"],"sourcesContent":["import { defineServerTool } from '@agimon-ai/doompi-core/extension-file';\n\nimport { createHeadlessReadTool } from '../../../../../services/readTool';\n\nexport default defineServerTool(createHeadlessReadTool);\n"],"mappings":";;;AAIA,IAAA,sBAAe,iBAAiB,sBAAsB"}