@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.
- package/dist/api-contracts.cjs +7 -1
- package/dist/api-contracts.d.cts +1 -1
- package/dist/api-contracts.d.mts +1 -1
- package/dist/api-contracts.mjs +2 -1
- package/dist/extensions/pi.cjs +18 -1
- package/dist/extensions/pi.cjs.map +1 -1
- package/dist/extensions/pi.d.cts +3 -3
- package/dist/extensions/pi.d.cts.map +1 -1
- package/dist/extensions/pi.d.mts +3 -3
- package/dist/extensions/pi.d.mts.map +1 -1
- package/dist/extensions/pi.mjs +13 -1
- package/dist/extensions/pi.mjs.map +1 -1
- package/dist/extensions/server.cjs +22 -1
- package/dist/extensions/server.cjs.map +1 -1
- package/dist/extensions/server.d.cts +3 -3
- package/dist/extensions/server.d.cts.map +1 -1
- package/dist/extensions/server.d.mts +3 -3
- package/dist/extensions/server.d.mts.map +1 -1
- package/dist/extensions/server.mjs +17 -1
- package/dist/extensions/server.mjs.map +1 -1
- package/dist/extensions/web.mjs +134 -0
- package/dist/extensions/web.mjs.map +1 -0
- package/dist/index.cjs +6 -1
- package/dist/index.d.cts +3 -4
- package/dist/index.d.mts +3 -4
- package/dist/index.mjs +3 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/_lib/readTool.cjs +49 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/_lib/readTool.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/_lib/readTool.mjs +49 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/_lib/readTool.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/read.cli.cjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/read.cli.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/read.cli.mjs +8 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/read.cli.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/read.server.cjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/read.server.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/read.server.mjs +8 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/read.server.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(frontend)/tool/_lib/readRenderer.cli.cjs +17 -0
- package/dist/src/extensions/workspaces/sessions/(frontend)/tool/_lib/readRenderer.cli.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(frontend)/tool/_lib/readRenderer.cli.mjs +17 -0
- package/dist/src/extensions/workspaces/sessions/(frontend)/tool/_lib/readRenderer.cli.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(frontend)/tool/read.cli.cjs +7 -0
- package/dist/src/extensions/workspaces/sessions/(frontend)/tool/read.cli.cjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(frontend)/tool/read.cli.mjs +8 -0
- package/dist/src/extensions/workspaces/sessions/(frontend)/tool/read.cli.mjs.map +1 -0
- package/dist/src/schemas/apiContracts.cjs +13 -0
- package/dist/src/schemas/apiContracts.cjs.map +1 -0
- package/dist/{schemas → src/schemas}/apiContracts.d.cts.map +1 -1
- package/dist/{schemas → src/schemas}/apiContracts.d.mts.map +1 -1
- package/dist/src/schemas/apiContracts.mjs +13 -0
- package/dist/src/schemas/apiContracts.mjs.map +1 -0
- package/dist/src/schemas/readTool.cjs +17 -0
- package/dist/src/schemas/readTool.cjs.map +1 -0
- package/dist/src/schemas/readTool.d.cts.map +1 -0
- package/dist/src/schemas/readTool.d.mts.map +1 -0
- package/dist/src/schemas/readTool.mjs +17 -0
- package/dist/src/schemas/readTool.mjs.map +1 -0
- package/dist/src/services/readImage/index.cjs +43 -0
- package/dist/src/services/readImage/index.cjs.map +1 -0
- package/dist/src/services/readImage/index.d.cts.map +1 -0
- package/dist/src/services/readImage/index.d.mts.map +1 -0
- package/dist/src/services/readImage/index.mjs +42 -0
- package/dist/src/services/readImage/index.mjs.map +1 -0
- package/dist/src/services/readTool/index.cjs +112 -0
- package/dist/src/services/readTool/index.cjs.map +1 -0
- package/dist/{services → src/services}/readTool/index.d.cts +1 -1
- package/dist/src/services/readTool/index.d.cts.map +1 -0
- package/dist/src/services/readTool/index.d.mts.map +1 -0
- package/dist/src/services/readTool/index.mjs +107 -0
- package/dist/src/services/readTool/index.mjs.map +1 -0
- package/package.json +21 -14
- package/dist/constants/package.cjs +0 -2
- package/dist/constants/package.cjs.map +0 -1
- package/dist/constants/package.mjs +0 -2
- package/dist/constants/package.mjs.map +0 -1
- package/dist/schemas/apiContracts.cjs +0 -2
- package/dist/schemas/apiContracts.cjs.map +0 -1
- package/dist/schemas/apiContracts.mjs +0 -2
- package/dist/schemas/apiContracts.mjs.map +0 -1
- package/dist/schemas/readTool.cjs +0 -2
- package/dist/schemas/readTool.cjs.map +0 -1
- package/dist/schemas/readTool.d.cts.map +0 -1
- package/dist/schemas/readTool.d.mts.map +0 -1
- package/dist/schemas/readTool.mjs +0 -2
- package/dist/schemas/readTool.mjs.map +0 -1
- package/dist/services/piReadImage/index.cjs +0 -2
- package/dist/services/piReadImage/index.cjs.map +0 -1
- package/dist/services/piReadImage/index.mjs +0 -2
- package/dist/services/piReadImage/index.mjs.map +0 -1
- package/dist/services/readImage/index.cjs +0 -2
- package/dist/services/readImage/index.cjs.map +0 -1
- package/dist/services/readImage/index.d.cts.map +0 -1
- package/dist/services/readImage/index.d.mts.map +0 -1
- package/dist/services/readImage/index.mjs +0 -2
- package/dist/services/readImage/index.mjs.map +0 -1
- package/dist/services/readTool/index.cjs +0 -3
- package/dist/services/readTool/index.cjs.map +0 -1
- package/dist/services/readTool/index.d.cts.map +0 -1
- package/dist/services/readTool/index.d.mts.map +0 -1
- package/dist/services/readTool/index.mjs +0 -3
- package/dist/services/readTool/index.mjs.map +0 -1
- package/dist/tools/piRead.cjs +0 -2
- package/dist/tools/piRead.cjs.map +0 -1
- package/dist/tools/piRead.d.cts +0 -9
- package/dist/tools/piRead.d.cts.map +0 -1
- package/dist/tools/piRead.d.mts +0 -9
- package/dist/tools/piRead.d.mts.map +0 -1
- package/dist/tools/piRead.mjs +0 -2
- package/dist/tools/piRead.mjs.map +0 -1
- package/src/extensions/web.ts +0 -14
- package/src/web/components/ReadToolMessage.tsx +0 -116
- package/src/web/lib/readToolView.ts +0 -24
- package/src/web/tsconfig.json +0 -23
- /package/dist/{schemas → src/schemas}/apiContracts.d.cts +0 -0
- /package/dist/{schemas → src/schemas}/apiContracts.d.mts +0 -0
- /package/dist/{schemas → src/schemas}/readTool.d.cts +0 -0
- /package/dist/{schemas → src/schemas}/readTool.d.mts +0 -0
- /package/dist/{services → src/services}/readImage/index.d.cts +0 -0
- /package/dist/{services → src/services}/readImage/index.d.mts +0 -0
- /package/dist/{services → src/services}/readTool/index.d.mts +0 -0
package/dist/api-contracts.cjs
CHANGED
|
@@ -1 +1,7 @@
|
|
|
1
|
-
Object.defineProperties(exports,{
|
|
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;
|
package/dist/api-contracts.d.cts
CHANGED
|
@@ -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 };
|
package/dist/api-contracts.d.mts
CHANGED
|
@@ -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 };
|
package/dist/api-contracts.mjs
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
import{apiContracts
|
|
1
|
+
import { apiContracts } from "./src/schemas/apiContracts.mjs";
|
|
2
|
+
export { apiContracts, apiContracts as default };
|
package/dist/extensions/pi.cjs
CHANGED
|
@@ -1,2 +1,19 @@
|
|
|
1
|
-
Object.defineProperties(exports,
|
|
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","
|
|
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"}
|
package/dist/extensions/pi.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
//#region
|
|
2
|
-
export declare const
|
|
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 {
|
|
4
|
+
export { extension as default };
|
|
5
5
|
//# sourceMappingURL=pi.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pi.d.cts","names":[],"sources":["../../
|
|
1
|
+
{"version":3,"file":"pi.d.cts","names":[],"sources":["../../generated/pi.ts"],"mappings":";qBAiBa,iEAAS"}
|
package/dist/extensions/pi.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
//#region
|
|
2
|
-
export declare const
|
|
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 {
|
|
4
|
+
export { extension as default };
|
|
5
5
|
//# sourceMappingURL=pi.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pi.d.mts","names":[],"sources":["../../
|
|
1
|
+
{"version":3,"file":"pi.d.mts","names":[],"sources":["../../generated/pi.ts"],"mappings":";qBAiBa,iEAAS"}
|
package/dist/extensions/pi.mjs
CHANGED
|
@@ -1,2 +1,14 @@
|
|
|
1
|
-
import
|
|
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":["../../
|
|
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,
|
|
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","
|
|
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
|
|
2
|
-
export declare const
|
|
1
|
+
//#region generated/server.d.ts
|
|
2
|
+
export declare const facet: import("@agimon-ai/doompi-core/server-facet").DoomServerFacet;
|
|
3
3
|
//#endregion
|
|
4
|
-
export {
|
|
4
|
+
export { facet as default };
|
|
5
5
|
//# sourceMappingURL=server.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.cts","names":[],"sources":["../../
|
|
1
|
+
{"version":3,"file":"server.d.cts","names":[],"sources":["../../generated/server.ts"],"mappings":";qBAUa,qDAAK"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
//#region
|
|
2
|
-
export declare const
|
|
1
|
+
//#region generated/server.d.ts
|
|
2
|
+
export declare const facet: import("@agimon-ai/doompi-core/server-facet").DoomServerFacet;
|
|
3
3
|
//#endregion
|
|
4
|
-
export {
|
|
4
|
+
export { facet as default };
|
|
5
5
|
//# sourceMappingURL=server.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.mts","names":[],"sources":["../../
|
|
1
|
+
{"version":3,"file":"server.d.mts","names":[],"sources":["../../generated/server.ts"],"mappings":";qBAUa,qDAAK"}
|
|
@@ -1,2 +1,18 @@
|
|
|
1
|
-
import
|
|
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":["../../
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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"}
|