@ap3x/browser-agent 0.1.0

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 (74) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +34 -0
  3. package/dist/agent/agent.d.ts +160 -0
  4. package/dist/agent/agent.d.ts.map +1 -0
  5. package/dist/agent/backend.d.ts +38 -0
  6. package/dist/agent/backend.d.ts.map +1 -0
  7. package/dist/agent/captcha-watchdog.d.ts +31 -0
  8. package/dist/agent/captcha-watchdog.d.ts.map +1 -0
  9. package/dist/agent/context-builder.d.ts +24 -0
  10. package/dist/agent/context-builder.d.ts.map +1 -0
  11. package/dist/agent/event-stream.d.ts +104 -0
  12. package/dist/agent/event-stream.d.ts.map +1 -0
  13. package/dist/agent/executor.d.ts +37 -0
  14. package/dist/agent/executor.d.ts.map +1 -0
  15. package/dist/agent/gif.d.ts +23 -0
  16. package/dist/agent/gif.d.ts.map +1 -0
  17. package/dist/agent/history.d.ts +89 -0
  18. package/dist/agent/history.d.ts.map +1 -0
  19. package/dist/agent/judge.d.ts +36 -0
  20. package/dist/agent/judge.d.ts.map +1 -0
  21. package/dist/agent/message-manager.d.ts +94 -0
  22. package/dist/agent/message-manager.d.ts.map +1 -0
  23. package/dist/agent/output-schema.d.ts +26 -0
  24. package/dist/agent/output-schema.d.ts.map +1 -0
  25. package/dist/agent/png-decode.d.ts +9 -0
  26. package/dist/agent/png-decode.d.ts.map +1 -0
  27. package/dist/agent/rematch.d.ts +26 -0
  28. package/dist/agent/rematch.d.ts.map +1 -0
  29. package/dist/agent/replay.d.ts +155 -0
  30. package/dist/agent/replay.d.ts.map +1 -0
  31. package/dist/agent/step-loop.d.ts +124 -0
  32. package/dist/agent/step-loop.d.ts.map +1 -0
  33. package/dist/agent/variable-detector.d.ts +19 -0
  34. package/dist/agent/variable-detector.d.ts.map +1 -0
  35. package/dist/agent/video.d.ts +12 -0
  36. package/dist/agent/video.d.ts.map +1 -0
  37. package/dist/chunk-32HNRAQS.js +82 -0
  38. package/dist/chunk-UZALZUEE.js +2907 -0
  39. package/dist/filesystem/external-read.d.ts +18 -0
  40. package/dist/filesystem/external-read.d.ts.map +1 -0
  41. package/dist/filesystem/file-system.d.ts +61 -0
  42. package/dist/filesystem/file-system.d.ts.map +1 -0
  43. package/dist/index.d.ts +37 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/index.js +1070 -0
  46. package/dist/mcp/bin.d.ts +3 -0
  47. package/dist/mcp/bin.d.ts.map +1 -0
  48. package/dist/mcp/bin.js +19 -0
  49. package/dist/mcp/client.d.ts +45 -0
  50. package/dist/mcp/client.d.ts.map +1 -0
  51. package/dist/mcp/index.d.ts +3 -0
  52. package/dist/mcp/index.d.ts.map +1 -0
  53. package/dist/mcp/log.d.ts +6 -0
  54. package/dist/mcp/log.d.ts.map +1 -0
  55. package/dist/mcp/server.d.ts +36 -0
  56. package/dist/mcp/server.d.ts.map +1 -0
  57. package/dist/observability/logger.d.ts +25 -0
  58. package/dist/observability/logger.d.ts.map +1 -0
  59. package/dist/testing.d.ts +37 -0
  60. package/dist/testing.d.ts.map +1 -0
  61. package/dist/testing.js +18 -0
  62. package/dist/tools/actions.d.ts +9 -0
  63. package/dist/tools/actions.d.ts.map +1 -0
  64. package/dist/tools/registry.d.ts +125 -0
  65. package/dist/tools/registry.d.ts.map +1 -0
  66. package/dist/tools/sensitive.d.ts +59 -0
  67. package/dist/tools/sensitive.d.ts.map +1 -0
  68. package/dist/tools/types.d.ts +117 -0
  69. package/dist/tools/types.d.ts.map +1 -0
  70. package/dist/types.d.ts +2 -0
  71. package/dist/types.d.ts.map +1 -0
  72. package/dist/usage/ledger.d.ts +27 -0
  73. package/dist/usage/ledger.d.ts.map +1 -0
  74. package/package.json +50 -0
@@ -0,0 +1,18 @@
1
+ /** A pdf/docx file could not be parsed (corrupt, password-protected, not really that type). */
2
+ export declare class FileParseError extends Error {
3
+ readonly path: string;
4
+ readonly name = "FileParseError";
5
+ constructor(path: string, message: string, options?: {
6
+ cause?: unknown;
7
+ });
8
+ }
9
+ /**
10
+ * Read a whitelisted external file, dispatching on extension: `.pdf` and
11
+ * `.docx` are parsed to plain text; everything else is read as UTF-8 text
12
+ * (the pre-M11 behavior). Throws {@link FileParseError} for a malformed
13
+ * pdf/docx; a plain `fs` error (e.g. ENOENT) for a missing/unreadable path
14
+ * either way — both are caught at the `read_file` action boundary and turned
15
+ * into an `ActionResult.error`. The returned text is capped at {@link MAX_CHARS}.
16
+ */
17
+ export declare function readExternalFile(path: string): Promise<string>;
18
+ //# sourceMappingURL=external-read.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-read.d.ts","sourceRoot":"","sources":["../../src/filesystem/external-read.ts"],"names":[],"mappings":"AAkDA,+FAA+F;AAC/F,qBAAa,cAAe,SAAQ,KAAK;IAGrC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAFvB,SAAkB,IAAI,oBAAoB;gBAE/B,IAAI,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAIhC;AAyFD;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAKpE"}
@@ -0,0 +1,61 @@
1
+ /** Serialized form for checkpoint/resume. */
2
+ export interface FileSystemState {
3
+ files: Record<string, {
4
+ type: string;
5
+ data: string;
6
+ }>;
7
+ baseDir: string;
8
+ extractedContentCount: number;
9
+ }
10
+ /**
11
+ * Sanitize a full filename (static, matches the goldens): basename first (kills
12
+ * `../` traversal), stem repaired, extension lowercased. A stem that sanitizes to
13
+ * nothing becomes `file`.
14
+ */
15
+ export declare function sanitizeFilename(name: string): string;
16
+ export declare class FileSystem {
17
+ private readonly files;
18
+ private extractedContentCount;
19
+ readonly baseDir: string;
20
+ readonly dataDir: string;
21
+ private constructor();
22
+ /** Create a fresh filesystem. The data dir is wiped and recreated. */
23
+ static create(baseDir: string, options?: {
24
+ createDefaultFiles?: boolean;
25
+ }): Promise<FileSystem>;
26
+ /** Restore from a checkpoint at the same base dir; unknown types skipped. */
27
+ static fromState(state: FileSystemState): Promise<FileSystem>;
28
+ /** Serialize for checkpoint. */
29
+ getState(): FileSystemState;
30
+ getAllowedExtensions(): readonly string[];
31
+ getDir(): string;
32
+ listFiles(): string[];
33
+ /** Raw content of a managed file, or undefined. */
34
+ getFile(name: string): string | undefined;
35
+ /** The always-present todo.md content. */
36
+ getTodoContents(): string;
37
+ /** Write (replacing) a managed file. Returns an LLM-facing message. */
38
+ writeFile(name: string, content: string): Promise<string>;
39
+ /** Append to a managed file (creating it if new). */
40
+ appendFile(name: string, content: string): Promise<string>;
41
+ /** Targeted string replace — the todo.md checkbox-update primitive. */
42
+ replaceFileStr(name: string, oldStr: string, newStr: string): Promise<string>;
43
+ /** Read a managed file; formatted message. */
44
+ readFile(name: string): string;
45
+ /** Raw content for done attachments. */
46
+ displayFile(name: string): string | undefined;
47
+ /** Save extracted content to an auto-numbered file; returns the filename. */
48
+ saveExtractedContent(content: string): Promise<string>;
49
+ /** Remove the data dir from disk (in-memory state untouched). */
50
+ nuke(): Promise<void>;
51
+ /**
52
+ * Prompt-friendly listing of every file EXCEPT todo.md (which is surfaced whole
53
+ * elsewhere). Small files shown whole; large files previewed head+tail.
54
+ */
55
+ describe(): string;
56
+ private preview;
57
+ /** Validate + sanitize a target name, or return an LLM-facing error. */
58
+ private resolve;
59
+ private syncFile;
60
+ }
61
+ //# sourceMappingURL=file-system.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-system.d.ts","sourceRoot":"","sources":["../../src/filesystem/file-system.ts"],"names":[],"mappings":"AAsCA,6CAA6C;AAC7C,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAwBD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIrD;AAmED,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgC;IACtD,OAAO,CAAC,qBAAqB,CAAK;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,OAAO;IAKP,sEAAsE;WACzD,MAAM,CACjB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QAAE,kBAAkB,CAAC,EAAE,OAAO,CAAA;KAAO,GAC7C,OAAO,CAAC,UAAU,CAAC;IAWtB,6EAA6E;WAChE,SAAS,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC;IAenE,gCAAgC;IAChC,QAAQ,IAAI,eAAe;IAM3B,oBAAoB,IAAI,SAAS,MAAM,EAAE;IAIzC,MAAM,IAAI,MAAM;IAIhB,SAAS,IAAI,MAAM,EAAE;IAIrB,mDAAmD;IACnD,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIzC,0CAA0C;IAC1C,eAAe,IAAI,MAAM;IAIzB,uEAAuE;IACjE,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAS/D,qDAAqD;IAC/C,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUhE,uEAAuE;IACjE,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUnF,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAO9B,wCAAwC;IACxC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI7C,6EAA6E;IACvE,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQ5D,iEAAiE;IAC3D,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAclB,OAAO,CAAC,OAAO;IAQf,wEAAwE;IACxE,OAAO,CAAC,OAAO;YA+BD,QAAQ;CAKvB"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @ap3x/browser-agent — the agent (loop, actions, history) that drives a
3
+ * browser over @ap3x/browser using @ap3x/ai for reasoning. M4 shipped the action
4
+ * registry + `defineAction`, the built-in actions, the sensitive-data pipeline,
5
+ * and the FileSystem workspace. M5 adds the agent step loop: the AgentOutput
6
+ * schema, the 3-slot message manager, context/nudge assembly, the multi-action
7
+ * executor, run history, the usage ledger, and the public `Agent`.
8
+ */
9
+ export declare const PACKAGE = "@ap3x/browser-agent";
10
+ export declare const VERSION = "0.1.0";
11
+ export * from "./types";
12
+ export * from "./tools/registry";
13
+ export * from "./tools/actions";
14
+ export * from "./tools/sensitive";
15
+ export * from "./filesystem/file-system";
16
+ export * from "./filesystem/external-read";
17
+ export * from "./agent/output-schema";
18
+ export * from "./agent/message-manager";
19
+ export * from "./agent/context-builder";
20
+ export * from "./agent/executor";
21
+ export * from "./agent/history";
22
+ export * from "./agent/step-loop";
23
+ export * from "./agent/agent";
24
+ export * from "./usage/ledger";
25
+ export * from "./agent/event-stream";
26
+ export { BrowserAgentBackend } from "./agent/backend";
27
+ export * from "./observability/logger";
28
+ export * from "./mcp";
29
+ export * from "./agent/rematch";
30
+ export * from "./agent/variable-detector";
31
+ export * from "./agent/replay";
32
+ export * from "./agent/gif";
33
+ export * from "./agent/judge";
34
+ export * from "./agent/captcha-watchdog";
35
+ export * from "./agent/video";
36
+ export * from "./testing";
37
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO,wBAAwB,CAAC;AAC7C,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AAEzC,cAAc,4BAA4B,CAAC;AAG3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,cAAc,wBAAwB,CAAC;AACvC,cAAc,OAAO,CAAC;AAGtB,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAI/B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAG9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC"}