@code-yeongyu/senpi-agent-core 2026.8.14 → 2026.8.17

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 (73) hide show
  1. package/dist/agent-loop.d.ts.map +1 -1
  2. package/dist/agent-loop.js +59 -17
  3. package/dist/agent-loop.js.map +1 -1
  4. package/dist/agent.d.ts +14 -0
  5. package/dist/agent.d.ts.map +1 -1
  6. package/dist/agent.js +14 -0
  7. package/dist/agent.js.map +1 -1
  8. package/dist/harness/env/nodejs.d.ts +25 -0
  9. package/dist/harness/env/nodejs.d.ts.map +1 -1
  10. package/dist/harness/env/nodejs.js +77 -12
  11. package/dist/harness/env/nodejs.js.map +1 -1
  12. package/dist/harness/events.d.ts +43 -0
  13. package/dist/harness/events.d.ts.map +1 -0
  14. package/dist/harness/events.js +67 -0
  15. package/dist/harness/events.js.map +1 -0
  16. package/dist/harness/session/jsonl/codec.d.ts +4 -2
  17. package/dist/harness/session/jsonl/codec.d.ts.map +1 -1
  18. package/dist/harness/session/jsonl/codec.js +127 -88
  19. package/dist/harness/session/jsonl/codec.js.map +1 -1
  20. package/dist/harness/session/jsonl/errors.d.ts +5 -1
  21. package/dist/harness/session/jsonl/errors.d.ts.map +1 -1
  22. package/dist/harness/session/jsonl/errors.js +9 -2
  23. package/dist/harness/session/jsonl/errors.js.map +1 -1
  24. package/dist/harness/session/jsonl/repo.d.ts +12 -3
  25. package/dist/harness/session/jsonl/repo.d.ts.map +1 -1
  26. package/dist/harness/session/jsonl/repo.js +88 -45
  27. package/dist/harness/session/jsonl/repo.js.map +1 -1
  28. package/dist/harness/session/jsonl/storage.d.ts +1 -1
  29. package/dist/harness/session/jsonl/storage.d.ts.map +1 -1
  30. package/dist/harness/session/jsonl/storage.js +28 -19
  31. package/dist/harness/session/jsonl/storage.js.map +1 -1
  32. package/dist/harness/session/jsonl/types.d.ts +1 -1
  33. package/dist/harness/session/jsonl/types.d.ts.map +1 -1
  34. package/dist/harness/session/jsonl/types.js.map +1 -1
  35. package/dist/harness/session/memory.d.ts +1 -1
  36. package/dist/harness/session/memory.d.ts.map +1 -1
  37. package/dist/harness/session/memory.js.map +1 -1
  38. package/dist/harness/session/session.d.ts +6 -1
  39. package/dist/harness/session/session.d.ts.map +1 -1
  40. package/dist/harness/session/session.js +7 -2
  41. package/dist/harness/session/session.js.map +1 -1
  42. package/dist/harness/session/state.d.ts +1 -1
  43. package/dist/harness/session/state.d.ts.map +1 -1
  44. package/dist/harness/session/state.js.map +1 -1
  45. package/dist/harness/session/testing/conformance.d.ts.map +1 -1
  46. package/dist/harness/session/testing/conformance.js +19 -0
  47. package/dist/harness/session/testing/conformance.js.map +1 -1
  48. package/dist/harness/session/types.d.ts +18 -5
  49. package/dist/harness/session/types.d.ts.map +1 -1
  50. package/dist/harness/session/types.js.map +1 -1
  51. package/dist/index.d.ts +1 -1
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +1 -1
  54. package/dist/index.js.map +1 -1
  55. package/dist/proxy.d.ts +4 -1
  56. package/dist/proxy.d.ts.map +1 -1
  57. package/dist/proxy.js.map +1 -1
  58. package/dist/search/index.d.ts +21 -0
  59. package/dist/search/index.d.ts.map +1 -0
  60. package/dist/search/index.js +2 -0
  61. package/dist/search/index.js.map +1 -0
  62. package/dist/search/scanning.d.ts +29 -0
  63. package/dist/search/scanning.d.ts.map +1 -0
  64. package/dist/search/scanning.js +103 -0
  65. package/dist/search/scanning.js.map +1 -0
  66. package/dist/types.d.ts +12 -1
  67. package/dist/types.d.ts.map +1 -1
  68. package/dist/types.js.map +1 -1
  69. package/package.json +3 -3
  70. package/dist/harness/session/search.d.ts +0 -19
  71. package/dist/harness/session/search.d.ts.map +0 -1
  72. package/dist/harness/session/search.js +0 -41
  73. package/dist/harness/session/search.js.map +0 -1
@@ -1,19 +0,0 @@
1
- import type { FileError, Result } from "../types.ts";
2
- import { type SessionCreateOptions, type SessionMetadata, type SessionRepo } from "./types.ts";
3
- export interface SessionSearchOptions {
4
- text: string;
5
- cwd?: string;
6
- }
7
- export interface SessionSearchHit<TMetadata extends SessionMetadata = SessionMetadata> {
8
- metadata: TMetadata;
9
- entryId: string;
10
- timestamp: string;
11
- snippet?: string;
12
- score?: number;
13
- }
14
- export interface SessionSearch<TMetadata extends SessionMetadata = SessionMetadata> {
15
- search(options: SessionSearchOptions): Promise<SessionSearchHit<TMetadata>[]>;
16
- }
17
- export declare function getFileSystemResultOrThrow<TValue>(result: Result<TValue, FileError>, message: string): TValue;
18
- export declare function createScanningSessionSearch<TMetadata extends SessionMetadata, TCreateOptions extends SessionCreateOptions, TListOptions>(source: Pick<SessionRepo<TMetadata, TCreateOptions, TListOptions>, "list" | "open">): SessionSearch<TMetadata>;
19
- //# sourceMappingURL=search.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/harness/session/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAE,KAAK,oBAAoB,EAAgB,KAAK,eAAe,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAE7G,MAAM,WAAW,oBAAoB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,gBAAgB,CAAC,SAAS,SAAS,eAAe,GAAG,eAAe;IACpF,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa,CAAC,SAAS,SAAS,eAAe,GAAG,eAAe;IACjF,MAAM,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;CAC9E;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAM7G;AAqCD,wBAAgB,2BAA2B,CAC1C,SAAS,SAAS,eAAe,EACjC,cAAc,SAAS,oBAAoB,EAC3C,YAAY,EACX,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,cAAc,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,CAE/G"}
@@ -1,41 +0,0 @@
1
- import { SessionError } from "./types.js";
2
- export function getFileSystemResultOrThrow(result, message) {
3
- if (!result.ok) {
4
- const code = result.error.code === "not_found" ? "not_found" : "storage";
5
- throw new SessionError(code, `${message}: ${result.error.message}`, result.error);
6
- }
7
- return result.value;
8
- }
9
- class ScanningSessionSearch {
10
- constructor(source) {
11
- this.source = source;
12
- }
13
- async search(options) {
14
- const normalizedText = options.text.trim().toLowerCase();
15
- if (!normalizedText)
16
- return [];
17
- const hits = [];
18
- for (const metadata of await this.source.list()) {
19
- const cwd = metadata.cwd;
20
- if (options.cwd !== undefined && cwd !== options.cwd)
21
- continue;
22
- const session = await this.source.open(metadata);
23
- for (const entry of await session.findEntries({ order: "oldestFirst" })) {
24
- const payload = JSON.stringify(entry);
25
- if (!payload.toLowerCase().includes(normalizedText))
26
- continue;
27
- hits.push({
28
- metadata,
29
- entryId: entry.id,
30
- timestamp: new Date(entry.timestamp).toISOString(),
31
- snippet: payload,
32
- });
33
- }
34
- }
35
- return hits;
36
- }
37
- }
38
- export function createScanningSessionSearch(source) {
39
- return new ScanningSessionSearch(source);
40
- }
41
- //# sourceMappingURL=search.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/harness/session/search.ts"],"names":[],"mappings":"AAEA,OAAO,EAA6B,YAAY,EAA0C,MAAM,YAAY,CAAC;AAmB7G,MAAM,UAAU,0BAA0B,CAAS,MAAiC,EAAE,OAAe;IACpG,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QAChB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;QACzE,MAAM,IAAI,YAAY,CAAC,IAAI,EAAE,GAAG,OAAO,KAAK,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACnF,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC;AACrB,CAAC;AAOD,MAAM,qBAAqB;IAG1B,YAAY,MAA8C;QACzD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAA6B;QACzC,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACzD,IAAI,CAAC,cAAc;YAAE,OAAO,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAkC,EAAE,CAAC;QAC/C,KAAK,MAAM,QAAQ,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YACjD,MAAM,GAAG,GAAI,QAA8B,CAAC,GAAG,CAAC;YAChD,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,OAAO,CAAC,GAAG;gBAAE,SAAS;YAC/D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjD,KAAK,MAAM,KAAK,IAAI,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;gBACzE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBACtC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;oBAAE,SAAS;gBAC9D,IAAI,CAAC,IAAI,CAAC;oBACT,QAAQ;oBACR,OAAO,EAAE,KAAK,CAAC,EAAE;oBACjB,SAAS,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;oBAClD,OAAO,EAAE,OAAO;iBAChB,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD;AAED,MAAM,UAAU,2BAA2B,CAIzC,MAAmF;IACpF,OAAO,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC","sourcesContent":["import type { FileError, Result } from \"../types.ts\";\nimport type { Session } from \"./session.ts\";\nimport { type SessionCreateOptions, SessionError, type SessionMetadata, type SessionRepo } from \"./types.ts\";\n\nexport interface SessionSearchOptions {\n\ttext: string;\n\tcwd?: string;\n}\n\nexport interface SessionSearchHit<TMetadata extends SessionMetadata = SessionMetadata> {\n\tmetadata: TMetadata;\n\tentryId: string;\n\ttimestamp: string;\n\tsnippet?: string;\n\tscore?: number;\n}\n\nexport interface SessionSearch<TMetadata extends SessionMetadata = SessionMetadata> {\n\tsearch(options: SessionSearchOptions): Promise<SessionSearchHit<TMetadata>[]>;\n}\n\nexport function getFileSystemResultOrThrow<TValue>(result: Result<TValue, FileError>, message: string): TValue {\n\tif (!result.ok) {\n\t\tconst code = result.error.code === \"not_found\" ? \"not_found\" : \"storage\";\n\t\tthrow new SessionError(code, `${message}: ${result.error.message}`, result.error);\n\t}\n\treturn result.value;\n}\n\ntype ScanningSessionSearchSource<TMetadata extends SessionMetadata> = {\n\tlist(): Promise<TMetadata[]>;\n\topen(metadata: TMetadata): Promise<Session<TMetadata>>;\n};\n\nclass ScanningSessionSearch<TMetadata extends SessionMetadata = SessionMetadata> implements SessionSearch<TMetadata> {\n\tprivate readonly source: ScanningSessionSearchSource<TMetadata>;\n\n\tconstructor(source: ScanningSessionSearchSource<TMetadata>) {\n\t\tthis.source = source;\n\t}\n\n\tasync search(options: SessionSearchOptions): Promise<SessionSearchHit<TMetadata>[]> {\n\t\tconst normalizedText = options.text.trim().toLowerCase();\n\t\tif (!normalizedText) return [];\n\t\tconst hits: SessionSearchHit<TMetadata>[] = [];\n\t\tfor (const metadata of await this.source.list()) {\n\t\t\tconst cwd = (metadata as { cwd?: unknown }).cwd;\n\t\t\tif (options.cwd !== undefined && cwd !== options.cwd) continue;\n\t\t\tconst session = await this.source.open(metadata);\n\t\t\tfor (const entry of await session.findEntries({ order: \"oldestFirst\" })) {\n\t\t\t\tconst payload = JSON.stringify(entry);\n\t\t\t\tif (!payload.toLowerCase().includes(normalizedText)) continue;\n\t\t\t\thits.push({\n\t\t\t\t\tmetadata,\n\t\t\t\t\tentryId: entry.id,\n\t\t\t\t\ttimestamp: new Date(entry.timestamp).toISOString(),\n\t\t\t\t\tsnippet: payload,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\treturn hits;\n\t}\n}\n\nexport function createScanningSessionSearch<\n\tTMetadata extends SessionMetadata,\n\tTCreateOptions extends SessionCreateOptions,\n\tTListOptions,\n>(source: Pick<SessionRepo<TMetadata, TCreateOptions, TListOptions>, \"list\" | \"open\">): SessionSearch<TMetadata> {\n\treturn new ScanningSessionSearch(source);\n}\n"]}