@getpochi/cli 0.5.66 → 0.5.67

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 (2) hide show
  1. package/dist/cli.js +107 -92
  2. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -104731,8 +104731,8 @@ var require_connection = __commonJS((exports, module) => {
104731
104731
  return;
104732
104732
  }
104733
104733
  const secWSAccept = response.headersList.get("Sec-WebSocket-Accept");
104734
- const digest = crypto7.createHash("sha1").update(keyValue + uid).digest("base64");
104735
- if (secWSAccept !== digest) {
104734
+ const digest2 = crypto7.createHash("sha1").update(keyValue + uid).digest("base64");
104735
+ if (secWSAccept !== digest2) {
104736
104736
  failWebsocketConnection(handler2, 1002, "Incorrect hash received in Sec-WebSocket-Accept header.");
104737
104737
  return;
104738
104738
  }
@@ -109298,8 +109298,8 @@ var require_websocket2 = __commonJS((exports, module) => {
109298
109298
  abortHandshake(websocket, socket, "Invalid Upgrade header");
109299
109299
  return;
109300
109300
  }
109301
- const digest = createHash5("sha1").update(key2 + GUID).digest("base64");
109302
- if (res.headers["sec-websocket-accept"] !== digest) {
109301
+ const digest2 = createHash5("sha1").update(key2 + GUID).digest("base64");
109302
+ if (res.headers["sec-websocket-accept"] !== digest2) {
109303
109303
  abortHandshake(websocket, socket, "Invalid Sec-WebSocket-Accept header");
109304
109304
  return;
109305
109305
  }
@@ -109879,12 +109879,12 @@ var require_websocket_server = __commonJS((exports, module) => {
109879
109879
  }
109880
109880
  if (this._state > RUNNING)
109881
109881
  return abortHandshake(socket, 503);
109882
- const digest = createHash5("sha1").update(key2 + GUID).digest("base64");
109882
+ const digest2 = createHash5("sha1").update(key2 + GUID).digest("base64");
109883
109883
  const headers = [
109884
109884
  "HTTP/1.1 101 Switching Protocols",
109885
109885
  "Upgrade: websocket",
109886
109886
  "Connection: Upgrade",
109887
- `Sec-WebSocket-Accept: ${digest}`
109887
+ `Sec-WebSocket-Accept: ${digest2}`
109888
109888
  ];
109889
109889
  const ws = new this.options.WebSocket(null, undefined, this.options);
109890
109890
  if (protocols.size) {
@@ -113615,8 +113615,8 @@ var require_websocket3 = __commonJS((exports, module) => {
113615
113615
  abortHandshake(websocket, socket, "Invalid Upgrade header");
113616
113616
  return;
113617
113617
  }
113618
- const digest = createHash5("sha1").update(key2 + GUID).digest("base64");
113619
- if (res.headers["sec-websocket-accept"] !== digest) {
113618
+ const digest2 = createHash5("sha1").update(key2 + GUID).digest("base64");
113619
+ if (res.headers["sec-websocket-accept"] !== digest2) {
113620
113620
  abortHandshake(websocket, socket, "Invalid Sec-WebSocket-Accept header");
113621
113621
  return;
113622
113622
  }
@@ -114196,12 +114196,12 @@ var require_websocket_server2 = __commonJS((exports, module) => {
114196
114196
  }
114197
114197
  if (this._state > RUNNING)
114198
114198
  return abortHandshake(socket, 503);
114199
- const digest = createHash5("sha1").update(key2 + GUID).digest("base64");
114199
+ const digest2 = createHash5("sha1").update(key2 + GUID).digest("base64");
114200
114200
  const headers = [
114201
114201
  "HTTP/1.1 101 Switching Protocols",
114202
114202
  "Upgrade: websocket",
114203
114203
  "Connection: Upgrade",
114204
- `Sec-WebSocket-Accept: ${digest}`
114204
+ `Sec-WebSocket-Accept: ${digest2}`
114205
114205
  ];
114206
114206
  const ws = new this.options.WebSocket(null, undefined, this.options);
114207
114207
  if (protocols.size) {
@@ -287061,7 +287061,7 @@ var require_previous_map = __commonJS((exports, module) => {
287061
287061
  var { existsSync: existsSync4, readFileSync: readFileSync3 } = __require("fs");
287062
287062
  var { dirname: dirname8, join: join18 } = __require("path");
287063
287063
  var { SourceMapConsumer, SourceMapGenerator } = require_source_map();
287064
- function fromBase64(str) {
287064
+ function fromBase642(str) {
287065
287065
  if (Buffer) {
287066
287066
  return Buffer.from(str, "base64").toString();
287067
287067
  } else {
@@ -287102,7 +287102,7 @@ var require_previous_map = __commonJS((exports, module) => {
287102
287102
  }
287103
287103
  let baseUriMatch = text19.match(baseCharsetUri) || text19.match(baseUri);
287104
287104
  if (baseUriMatch) {
287105
- return fromBase64(text19.substr(baseUriMatch[0].length));
287105
+ return fromBase642(text19.substr(baseUriMatch[0].length));
287106
287106
  }
287107
287107
  let encoding = text19.match(/data:application\/json;([^,]+),/)[1];
287108
287108
  throw new Error("Unsupported source map encoding " + encoding);
@@ -321597,8 +321597,8 @@ Error: ${e$1.message}`);
321597
321597
  abortHandshake$1(websocket, socket, "Invalid Upgrade header");
321598
321598
  return;
321599
321599
  }
321600
- const digest = createHash$1("sha1").update(key2 + GUID$1).digest("base64");
321601
- if (res.headers["sec-websocket-accept"] !== digest) {
321600
+ const digest2 = createHash$1("sha1").update(key2 + GUID$1).digest("base64");
321601
+ if (res.headers["sec-websocket-accept"] !== digest2) {
321602
321602
  abortHandshake$1(websocket, socket, "Invalid Sec-WebSocket-Accept header");
321603
321603
  return;
321604
321604
  }
@@ -375096,7 +375096,7 @@ var {
375096
375096
  // package.json
375097
375097
  var package_default = {
375098
375098
  name: "@getpochi/cli",
375099
- version: "0.5.66",
375099
+ version: "0.5.67",
375100
375100
  type: "module",
375101
375101
  bin: {
375102
375102
  pochi: "src/cli.ts"
@@ -388882,6 +388882,92 @@ var makeBlobQuery = (checksum) => queryDb(() => tables.blobs.where("checksum", "
388882
388882
  label: "blobs",
388883
388883
  deps: [checksum]
388884
388884
  });
388885
+ // ../livekit/src/store-blob.ts
388886
+ async function processContentOutput(store, output2, signal2) {
388887
+ const parsed = ContentOutput.safeParse(output2);
388888
+ if (parsed.success) {
388889
+ const content3 = parsed.data.content.map(async (item) => {
388890
+ if (item.type === "text") {
388891
+ return item;
388892
+ }
388893
+ if (item.type === "image") {
388894
+ return {
388895
+ type: "image",
388896
+ mimeType: item.mimeType,
388897
+ data: await findBlobUrl(store, item.mimeType, item.data, signal2)
388898
+ };
388899
+ }
388900
+ return item;
388901
+ });
388902
+ return {
388903
+ ...parsed.data,
388904
+ content: await Promise.all(content3)
388905
+ };
388906
+ }
388907
+ return output2;
388908
+ }
388909
+ var ContentOutput = zod_default.object({
388910
+ content: zod_default.array(zod_default.discriminatedUnion("type", [
388911
+ zod_default.object({
388912
+ type: zod_default.literal("text"),
388913
+ text: zod_default.string()
388914
+ }),
388915
+ zod_default.object({
388916
+ type: zod_default.literal("image"),
388917
+ mimeType: zod_default.string(),
388918
+ data: zod_default.string()
388919
+ })
388920
+ ]))
388921
+ });
388922
+ async function fileToUri(store, file5, signal2) {
388923
+ if (typeof process === "undefined") {
388924
+ return fileToRemoteUri(file5, signal2);
388925
+ }
388926
+ const data = new Uint8Array(await file5.arrayBuffer());
388927
+ const checksum = await digest(data);
388928
+ const blob3 = store.query(makeBlobQuery(checksum));
388929
+ const url3 = `${StoreBlobProtocol}${checksum}`;
388930
+ if (blob3) {
388931
+ return url3;
388932
+ }
388933
+ store.commit(events.blobInserted({
388934
+ checksum,
388935
+ data,
388936
+ createdAt: new Date,
388937
+ mimeType: file5.type
388938
+ }));
388939
+ return url3;
388940
+ }
388941
+ async function findBlobUrl(store, mimeType, base643, signal2) {
388942
+ const file5 = new File([fromBase64(base643)], "file", {
388943
+ type: mimeType
388944
+ });
388945
+ return fileToUri(store, file5, signal2);
388946
+ }
388947
+ var fromBase64 = (base643) => Uint8Array.from(atob(base643), (v2) => v2.charCodeAt(0));
388948
+ async function digest(data) {
388949
+ const hashBuffer = await crypto.subtle.digest("SHA-256", data);
388950
+ const hashArray = Array.from(new Uint8Array(hashBuffer));
388951
+ return hashArray.map((b2) => b2.toString(16).padStart(2, "0")).join("");
388952
+ }
388953
+ async function fileToRemoteUri(file5, signal2) {
388954
+ const formData4 = new FormData;
388955
+ formData4.append("file", file5);
388956
+ const response = await fetch(`${getServerBaseUrl()}/api/upload`, {
388957
+ method: "POST",
388958
+ body: formData4,
388959
+ signal: signal2
388960
+ });
388961
+ if (!response.ok) {
388962
+ throw new Error(`Upload failed: ${response.statusText}`);
388963
+ }
388964
+ const data = await response.json();
388965
+ if (!data.url) {
388966
+ throw new Error("Failed to upload attachment");
388967
+ }
388968
+ return data.url;
388969
+ }
388970
+
388885
388971
  // ../livekit/src/index.ts
388886
388972
  var StoreBlobProtocol = "store-blob:";
388887
388973
 
@@ -414275,8 +414361,8 @@ function findTodos(message) {
414275
414361
  return todos;
414276
414362
  }
414277
414363
  // ../../node_modules/eventemitter3/index.mjs
414278
- var import__5 = __toESM(require_eventemitter3(), 1);
414279
- var eventemitter3_default = import__5.default;
414364
+ var import__6 = __toESM(require_eventemitter3(), 1);
414365
+ var eventemitter3_default = import__6.default;
414280
414366
 
414281
414367
  // ../../node_modules/colorette/index.js
414282
414368
  import * as tty3 from "tty";
@@ -416821,79 +416907,6 @@ async function process16({
416821
416907
  }));
416822
416908
  }
416823
416909
  }
416824
- // ../livekit/src/chat/chat-with-hook.ts
416825
- function makeChatWithHookClass(store, chatClass) {
416826
- const chatWithHook = class extends chatClass {
416827
- constructor(...args2) {
416828
- super(...args2);
416829
- const addToolResult = this.addToolResult.bind(this);
416830
- this.addToolResult = async (options6) => {
416831
- const parsed = ContentOutput.safeParse(options6.output);
416832
- if (parsed.success) {
416833
- const content3 = parsed.data.content.map(async (item) => {
416834
- if (item.type === "text") {
416835
- return item;
416836
- }
416837
- if (item.type === "image") {
416838
- return {
416839
- type: "image",
416840
- mimeType: item.mimeType,
416841
- data: await findBlobUrl(store, item.mimeType, item.data)
416842
- };
416843
- }
416844
- return item;
416845
- });
416846
- const output2 = {
416847
- ...options6.output,
416848
- content: await Promise.all(content3)
416849
- };
416850
- return addToolResult({
416851
- ...options6,
416852
- output: output2
416853
- });
416854
- }
416855
- return addToolResult(options6);
416856
- };
416857
- }
416858
- };
416859
- return chatWithHook;
416860
- }
416861
- var ContentOutput = zod_default.object({
416862
- content: zod_default.array(zod_default.discriminatedUnion("type", [
416863
- zod_default.object({
416864
- type: zod_default.literal("text"),
416865
- text: zod_default.string()
416866
- }),
416867
- zod_default.object({
416868
- type: zod_default.literal("image"),
416869
- mimeType: zod_default.string(),
416870
- data: zod_default.string()
416871
- })
416872
- ]))
416873
- });
416874
- async function findBlobUrl(store, mimeType, base643) {
416875
- const data = fromBase64(base643);
416876
- const checksum = await digest(data);
416877
- const blob3 = store.query(makeBlobQuery(checksum));
416878
- const url3 = `${StoreBlobProtocol}${checksum}`;
416879
- if (blob3) {
416880
- return url3;
416881
- }
416882
- store.commit(events.blobInserted({
416883
- checksum,
416884
- data,
416885
- createdAt: new Date,
416886
- mimeType
416887
- }));
416888
- return url3;
416889
- }
416890
- var fromBase64 = (base643) => Uint8Array.from(atob(base643), (v11) => v11.charCodeAt(0));
416891
- async function digest(data) {
416892
- const hashBuffer = await crypto.subtle.digest("SHA-256", data);
416893
- const hashArray = Array.from(new Uint8Array(hashBuffer));
416894
- return hashArray.map((b11) => b11.toString(16).padStart(2, "0")).join("");
416895
- }
416896
-
416897
416910
  // ../livekit/src/chat/llm/repair-tool-call.ts
416898
416911
  var makeRepairToolCall = (taskId, model2) => async ({ toolCall, inputSchema: inputSchema2, error: error46 }) => {
416899
416912
  if (NoSuchToolError.isInstance(error46)) {
@@ -418212,7 +418225,7 @@ class LiveChatKit {
418212
418225
  customAgent,
418213
418226
  outputSchema: outputSchema2
418214
418227
  });
418215
- this.chat = new (makeChatWithHookClass(store, chatClass))({
418228
+ this.chat = new chatClass({
418216
418229
  ...chatInit,
418217
418230
  id: taskId,
418218
418231
  messages: this.messages,
@@ -419014,6 +419027,7 @@ async function executeToolCall(tool2, options6, cwd2, abortSignal) {
419014
419027
  var logger26 = getLogger("TaskRunner");
419015
419028
 
419016
419029
  class TaskRunner {
419030
+ store;
419017
419031
  cwd;
419018
419032
  toolCallOptions;
419019
419033
  stepCount;
@@ -419045,6 +419059,7 @@ class TaskRunner {
419045
419059
  }
419046
419060
  };
419047
419061
  this.stepCount = new StepCount(options6.maxSteps, options6.maxRetries);
419062
+ this.store = options6.store;
419048
419063
  this.chatKit = new LiveChatKit({
419049
419064
  taskId: options6.uid,
419050
419065
  store: options6.store,
@@ -419181,7 +419196,7 @@ class TaskRunner {
419181
419196
  continue;
419182
419197
  const toolName = getToolName(toolCall);
419183
419198
  logger26.trace(`Found tool call: ${toolName} with args: ${JSON.stringify(toolCall.input)}`);
419184
- const toolResult = await executeToolCall(toolCall, this.toolCallOptions, this.cwd);
419199
+ const toolResult = await processContentOutput(this.store, await executeToolCall(toolCall, this.toolCallOptions, this.cwd));
419185
419200
  await this.chatKit.chat.addToolResult({
419186
419201
  tool: toolName,
419187
419202
  toolCallId: toolCall.toolCallId,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getpochi/cli",
3
- "version": "0.5.66",
3
+ "version": "0.5.67",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "pochi": "dist/cli.js"