@xrkseek/harness 0.4.6 → 0.4.8
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/node_modules/@xrkseek/a2a/README.md +3 -3
- package/node_modules/@xrkseek/a2a/dist/inbound-frame.d.ts +13 -0
- package/node_modules/@xrkseek/a2a/dist/inbound-frame.d.ts.map +1 -0
- package/node_modules/@xrkseek/a2a/dist/inbound-frame.js +32 -0
- package/node_modules/@xrkseek/a2a/dist/inbound-frame.js.map +1 -0
- package/node_modules/@xrkseek/a2a/dist/inbound.d.ts +2 -2
- package/node_modules/@xrkseek/a2a/dist/index.d.ts +1 -0
- package/node_modules/@xrkseek/a2a/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/a2a/dist/index.js +1 -0
- package/node_modules/@xrkseek/a2a/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/attachment/dist/error.d.ts +1 -1
- package/node_modules/@xrkseek/attachment/dist/error.d.ts.map +1 -1
- package/node_modules/@xrkseek/attachment/dist/error.js.map +1 -1
- package/node_modules/@xrkseek/attachment/dist/image-region.d.ts +45 -0
- package/node_modules/@xrkseek/attachment/dist/image-region.d.ts.map +1 -0
- package/node_modules/@xrkseek/attachment/dist/image-region.js +64 -0
- package/node_modules/@xrkseek/attachment/dist/image-region.js.map +1 -0
- package/node_modules/@xrkseek/attachment/dist/index.d.ts +1 -0
- package/node_modules/@xrkseek/attachment/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/attachment/dist/index.js +1 -0
- package/node_modules/@xrkseek/attachment/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/attachment/dist/store.d.ts +7 -0
- package/node_modules/@xrkseek/attachment/dist/store.d.ts.map +1 -1
- package/node_modules/@xrkseek/attachment-local/dist/crop-region.d.ts +10 -0
- package/node_modules/@xrkseek/attachment-local/dist/crop-region.d.ts.map +1 -0
- package/node_modules/@xrkseek/attachment-local/dist/crop-region.js +53 -0
- package/node_modules/@xrkseek/attachment-local/dist/crop-region.js.map +1 -0
- package/node_modules/@xrkseek/attachment-local/dist/index.d.ts +1 -0
- package/node_modules/@xrkseek/attachment-local/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/attachment-local/dist/index.js +3 -0
- package/node_modules/@xrkseek/attachment-local/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/core-agent-loop/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-agent-loop/dist/index.js +13 -5
- package/node_modules/@xrkseek/core-agent-loop/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/exec-fs/dist/index.d.ts +1 -0
- package/node_modules/@xrkseek/exec-fs/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-fs/dist/index.js +3 -0
- package/node_modules/@xrkseek/exec-fs/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/exec-fs/dist/present-deliverable.d.ts +25 -0
- package/node_modules/@xrkseek/exec-fs/dist/present-deliverable.d.ts.map +1 -0
- package/node_modules/@xrkseek/exec-fs/dist/present-deliverable.js +107 -0
- package/node_modules/@xrkseek/exec-fs/dist/present-deliverable.js.map +1 -0
- package/node_modules/@xrkseek/exec-fs/dist/read-image.d.ts +5 -0
- package/node_modules/@xrkseek/exec-fs/dist/read-image.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-fs/dist/read-image.js +55 -7
- package/node_modules/@xrkseek/exec-fs/dist/read-image.js.map +1 -1
- package/node_modules/@xrkseek/exec-image-gen/README.md +3 -3
- package/node_modules/@xrkseek/exec-memory/dist/http.d.ts +4 -4
- package/node_modules/@xrkseek/exec-memory/dist/http.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-memory/dist/http.js +9 -10
- package/node_modules/@xrkseek/exec-memory/dist/http.js.map +1 -1
- package/node_modules/@xrkseek/exec-memory/dist/resolve.d.ts +2 -10
- package/node_modules/@xrkseek/exec-memory/dist/resolve.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-memory/dist/resolve.js +2 -7
- package/node_modules/@xrkseek/exec-memory/dist/resolve.js.map +1 -1
- package/node_modules/@xrkseek/exec-ssh/README.md +3 -0
- package/node_modules/@xrkseek/exec-ssh/dist/index.d.ts +2 -1
- package/node_modules/@xrkseek/exec-ssh/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-ssh/dist/index.js +2 -1
- package/node_modules/@xrkseek/exec-ssh/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/exec-ssh/dist/probe.d.ts +26 -0
- package/node_modules/@xrkseek/exec-ssh/dist/probe.d.ts.map +1 -0
- package/node_modules/@xrkseek/exec-ssh/dist/probe.js +50 -0
- package/node_modules/@xrkseek/exec-ssh/dist/probe.js.map +1 -0
- package/node_modules/@xrkseek/exec-ssh/dist/providers.d.ts +8 -0
- package/node_modules/@xrkseek/exec-ssh/dist/providers.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-ssh/dist/providers.js +25 -0
- package/node_modules/@xrkseek/exec-ssh/dist/providers.js.map +1 -1
- package/node_modules/@xrkseek/exec-video-analyze/README.md +11 -0
- package/node_modules/@xrkseek/exec-video-analyze/dist/format.d.ts +3 -0
- package/node_modules/@xrkseek/exec-video-analyze/dist/format.d.ts.map +1 -0
- package/node_modules/@xrkseek/exec-video-analyze/dist/format.js +10 -0
- package/node_modules/@xrkseek/exec-video-analyze/dist/format.js.map +1 -0
- package/node_modules/@xrkseek/exec-video-analyze/dist/index.d.ts +39 -0
- package/node_modules/@xrkseek/exec-video-analyze/dist/index.d.ts.map +1 -0
- package/node_modules/@xrkseek/exec-video-analyze/dist/index.js +64 -0
- package/node_modules/@xrkseek/exec-video-analyze/dist/index.js.map +1 -0
- package/node_modules/@xrkseek/exec-video-analyze/dist/materialize.d.ts +22 -0
- package/node_modules/@xrkseek/exec-video-analyze/dist/materialize.d.ts.map +1 -0
- package/node_modules/@xrkseek/exec-video-analyze/dist/materialize.js +70 -0
- package/node_modules/@xrkseek/exec-video-analyze/dist/materialize.js.map +1 -0
- package/node_modules/@xrkseek/exec-video-analyze/dist/memory.d.ts +8 -0
- package/node_modules/@xrkseek/exec-video-analyze/dist/memory.d.ts.map +1 -0
- package/node_modules/@xrkseek/exec-video-analyze/dist/memory.js +21 -0
- package/node_modules/@xrkseek/exec-video-analyze/dist/memory.js.map +1 -0
- package/node_modules/@xrkseek/exec-video-analyze/dist/mime.d.ts +13 -0
- package/node_modules/@xrkseek/exec-video-analyze/dist/mime.d.ts.map +1 -0
- package/node_modules/@xrkseek/exec-video-analyze/dist/mime.js +44 -0
- package/node_modules/@xrkseek/exec-video-analyze/dist/mime.js.map +1 -0
- package/node_modules/@xrkseek/exec-video-analyze/dist/openai-http.d.ts +15 -0
- package/node_modules/@xrkseek/exec-video-analyze/dist/openai-http.d.ts.map +1 -0
- package/node_modules/@xrkseek/exec-video-analyze/dist/openai-http.js +102 -0
- package/node_modules/@xrkseek/exec-video-analyze/dist/openai-http.js.map +1 -0
- package/node_modules/@xrkseek/exec-video-analyze/dist/tools.d.ts +24 -0
- package/node_modules/@xrkseek/exec-video-analyze/dist/tools.d.ts.map +1 -0
- package/node_modules/@xrkseek/exec-video-analyze/dist/tools.js +120 -0
- package/node_modules/@xrkseek/exec-video-analyze/dist/tools.js.map +1 -0
- package/node_modules/@xrkseek/exec-video-analyze/dist/types.d.ts +30 -0
- package/node_modules/@xrkseek/exec-video-analyze/dist/types.d.ts.map +1 -0
- package/node_modules/@xrkseek/exec-video-analyze/dist/types.js +16 -0
- package/node_modules/@xrkseek/exec-video-analyze/dist/types.js.map +1 -0
- package/node_modules/@xrkseek/exec-video-analyze/package.json +26 -0
- package/node_modules/@xrkseek/exec-video-gen/README.md +3 -4
- package/node_modules/@xrkseek/im-gateway-contract/dist/index.d.ts +7 -0
- package/node_modules/@xrkseek/im-gateway-contract/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/im-gateway-contract/dist/index.js +29 -0
- package/node_modules/@xrkseek/im-gateway-contract/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/preset-harness/dist/preset.d.ts +14 -0
- package/node_modules/@xrkseek/preset-harness/dist/preset.d.ts.map +1 -1
- package/node_modules/@xrkseek/preset-harness/dist/preset.js +38 -2
- package/node_modules/@xrkseek/preset-harness/dist/preset.js.map +1 -1
- package/node_modules/@xrkseek/preset-harness/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@xrkseek/preset-harness/package.json +1 -0
- package/node_modules/@xrkseek/preset-minimal/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@xrkseek/preset-server/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@xrkseek/protocol/dist/index.d.ts +1 -1
- package/node_modules/@xrkseek/protocol/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/protocol/dist/index.js +1 -1
- package/node_modules/@xrkseek/protocol/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/protocol/dist/json-schema.d.ts +12 -0
- package/node_modules/@xrkseek/protocol/dist/json-schema.d.ts.map +1 -1
- package/node_modules/@xrkseek/protocol/dist/json-schema.js +23 -0
- package/node_modules/@xrkseek/protocol/dist/json-schema.js.map +1 -1
- package/node_modules/@xrkseek/protocol/dist/session-events.d.ts +24 -1
- package/node_modules/@xrkseek/protocol/dist/session-events.d.ts.map +1 -1
- package/node_modules/@xrkseek/protocol/dist/session-events.js +12 -0
- package/node_modules/@xrkseek/protocol/dist/session-events.js.map +1 -1
- package/node_modules/@xrkseek/protocol/dist/validate.d.ts.map +1 -1
- package/node_modules/@xrkseek/protocol/dist/validate.js +32 -0
- package/node_modules/@xrkseek/protocol/dist/validate.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/adapt/tool-view.d.ts +6 -0
- package/node_modules/@xrkseek/server-face/dist/adapt/tool-view.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/adapt/tool-view.js +8 -0
- package/node_modules/@xrkseek/server-face/dist/adapt/tool-view.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/adapt/wire-event.d.ts +1 -0
- package/node_modules/@xrkseek/server-face/dist/adapt/wire-event.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/adapt/wire-event.js +15 -0
- package/node_modules/@xrkseek/server-face/dist/adapt/wire-event.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/adapt/wire-ids.d.ts +6 -0
- package/node_modules/@xrkseek/server-face/dist/adapt/wire-ids.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/adapt/wire-ids.js +16 -0
- package/node_modules/@xrkseek/server-face/dist/adapt/wire-ids.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/approval-category.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/approval-category.js +2 -1
- package/node_modules/@xrkseek/server-face/dist/approval-category.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/cost-meter-store.d.ts +2 -0
- package/node_modules/@xrkseek/server-face/dist/cost-meter-store.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/cost-meter-store.js +4 -0
- package/node_modules/@xrkseek/server-face/dist/cost-meter-store.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/index.d.ts +2 -2
- package/node_modules/@xrkseek/server-face/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/index.js +2 -2
- package/node_modules/@xrkseek/server-face/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/process-channels.d.ts +10 -2
- package/node_modules/@xrkseek/server-face/dist/process-channels.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/process-channels.js +14 -9
- package/node_modules/@xrkseek/server-face/dist/process-channels.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/runtime.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/runtime.js +7 -2
- package/node_modules/@xrkseek/server-face/dist/runtime.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-export.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-export.js +12 -0
- package/node_modules/@xrkseek/server-face/dist/session-export.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-status.d.ts +30 -2
- package/node_modules/@xrkseek/server-face/dist/session-status.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-status.js +82 -24
- package/node_modules/@xrkseek/server-face/dist/session-status.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/settings-credentials.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/settings-credentials.js +5 -0
- package/node_modules/@xrkseek/server-face/dist/settings-credentials.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/settings-document.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/settings-document.js +4 -0
- package/node_modules/@xrkseek/server-face/dist/settings-document.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/settings-schemas.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/settings-schemas.js +35 -0
- package/node_modules/@xrkseek/server-face/dist/settings-schemas.js.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/a2a-inbound-public.d.ts +38 -1
- package/node_modules/@xrkseek/server-host/dist/a2a-inbound-public.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/a2a-inbound-public.js +121 -9
- package/node_modules/@xrkseek/server-host/dist/a2a-inbound-public.js.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/index.d.ts +12 -2
- package/node_modules/@xrkseek/server-host/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/index.js +75 -5
- package/node_modules/@xrkseek/server-host/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/server-host/package.json +1 -0
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/auto-review-classifier.d.ts +21 -0
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/auto-review-classifier.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/auto-review-classifier.js +44 -0
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/auto-review-classifier.js.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/im-gateway-sidecar.d.ts +2 -3
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/im-gateway-sidecar.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/im-gateway-sidecar.js +2 -28
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/im-gateway-sidecar.js.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/index.d.ts +2 -2
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/index.js +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/index.js.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/index.d.ts +1 -1
- package/node_modules/@xrkseek/server-http/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/index.js +1 -1
- package/node_modules/@xrkseek/server-http/dist/index.js.map +1 -1
- package/package.json +3 -1
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
Text-to-image / image-to-image Provider seam for the model tool surface.
|
|
4
4
|
|
|
5
|
+
**Product path**: Settings → Plugins → Image generation (Face ns `image-gen`). Credentials hold `XRK_IMAGE_GEN_OPENAI_KEY`. Env (`XRK_IMAGE_GEN=memory` / `=1`) is CI / headless bypass only — see [docs/image-gen.md](../../../docs/image-gen.md).
|
|
6
|
+
|
|
5
7
|
- **Definition**: `ImageGenService.generate` + optional `capabilities()`
|
|
6
8
|
- **Provider**: `createMemoryImageGenProvider` · `createOpenAiImageGenProvider` (generations + edits)
|
|
7
9
|
- **Consumer**: `createImageGenTools` → `image_generate` (schema rebuilt from capabilities)
|
|
8
10
|
|
|
9
11
|
Edit args (`image_url` · `reference_image_urls` · `reference_attachment_ids`) appear only when the Provider advertises image modalities.
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
See [docs/image-gen.md](../../../docs/image-gen.md) · [docs/seams.md](../../../docs/seams.md).
|
|
13
|
+
See also [docs/seams.md](../../../docs/seams.md).
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
* - `POST /v1/curated/{memory|user}/ops` → write-result JSON
|
|
8
8
|
* body: `{ operations: CuratedMemoryOperation[] }` (same shape as the `memory` tool)
|
|
9
9
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
10
|
+
* Frozen prompt starts empty (no sync network I/O — keeps `resolveMemoryProvider` sync).
|
|
11
|
+
* Live reads/writes hit the sidecar; writes are async (`Promise`).
|
|
12
12
|
*/
|
|
13
13
|
import type { MemoryProvider } from "./provider.js";
|
|
14
14
|
export interface HttpMemoryProviderOptions {
|
|
@@ -32,9 +32,9 @@ export declare class HttpMemoryProviderError extends Error {
|
|
|
32
32
|
}
|
|
33
33
|
/**
|
|
34
34
|
* Build a {@link MemoryProvider} over an HTTP curated-memory sidecar.
|
|
35
|
-
*
|
|
35
|
+
* Sync construct (empty freeze); probe with {@link probeHttpMemoryProvider} if needed.
|
|
36
36
|
*/
|
|
37
|
-
export declare function createHttpMemoryProvider(options: HttpMemoryProviderOptions):
|
|
37
|
+
export declare function createHttpMemoryProvider(options: HttpMemoryProviderOptions): MemoryProvider;
|
|
38
38
|
/**
|
|
39
39
|
* Probe `/health` without constructing a full store.
|
|
40
40
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAaH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAQpD,MAAM,WAAW,yBAAyB;IACxC,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,yDAAyD;IACzD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IAClC;;;OAGG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAgCD,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;gBAEb,OAAO,EAAE,MAAM,EAAE,IAAI,SAAgB,EAAE,MAAM,CAAC,EAAE,MAAM;CAMnE;AAED;;;GAGG;AACH,
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAaH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAQpD,MAAM,WAAW,yBAAyB;IACxC,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,yDAAyD;IACzD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IAClC;;;OAGG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAgCD,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;gBAEb,OAAO,EAAE,MAAM,EAAE,IAAI,SAAgB,EAAE,MAAM,CAAC,EAAE,MAAM;CAMnE;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,yBAAyB,GACjC,cAAc,CAqKhB;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,IAAI,CACX,yBAAyB,EACzB,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,WAAW,CAChD,GACA,OAAO,CAAC,OAAO,CAAC,CAyBlB"}
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
* - `POST /v1/curated/{memory|user}/ops` → write-result JSON
|
|
8
8
|
* body: `{ operations: CuratedMemoryOperation[] }` (same shape as the `memory` tool)
|
|
9
9
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
10
|
+
* Frozen prompt starts empty (no sync network I/O — keeps `resolveMemoryProvider` sync).
|
|
11
|
+
* Live reads/writes hit the sidecar; writes are async (`Promise`).
|
|
12
12
|
*/
|
|
13
13
|
import { ENTRY_DELIMITER, MEMORY_CHAR_LIMIT, USER_CHAR_LIMIT, } from "./store.js";
|
|
14
14
|
const HEADERS = {
|
|
@@ -52,9 +52,9 @@ export class HttpMemoryProviderError extends Error {
|
|
|
52
52
|
}
|
|
53
53
|
/**
|
|
54
54
|
* Build a {@link MemoryProvider} over an HTTP curated-memory sidecar.
|
|
55
|
-
*
|
|
55
|
+
* Sync construct (empty freeze); probe with {@link probeHttpMemoryProvider} if needed.
|
|
56
56
|
*/
|
|
57
|
-
export
|
|
57
|
+
export function createHttpMemoryProvider(options) {
|
|
58
58
|
const baseUrl = options.baseUrl.trim().replace(/\/+$/, "");
|
|
59
59
|
if (!baseUrl) {
|
|
60
60
|
throw new HttpMemoryProviderError("http memory provider needs a non-empty baseUrl", "MEMORY_HTTP_CONFIG");
|
|
@@ -101,13 +101,12 @@ export async function createHttpMemoryProvider(options) {
|
|
|
101
101
|
const json = (await request("GET", `/v1/curated/${target}`));
|
|
102
102
|
return asEntries(json?.entries);
|
|
103
103
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
]);
|
|
104
|
+
/** Empty at construct — no sync network; live ops refresh `liveCache`. */
|
|
105
|
+
const memoryFrozen = [];
|
|
106
|
+
const userFrozen = [];
|
|
108
107
|
const liveCache = {
|
|
109
|
-
memory: [
|
|
110
|
-
user: [
|
|
108
|
+
memory: [],
|
|
109
|
+
user: [],
|
|
111
110
|
};
|
|
112
111
|
const dir = options.dir?.trim() || `${baseUrl}/curated`;
|
|
113
112
|
async function runOps(target, operations) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAQH,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,eAAe,GAChB,MAAM,YAAY,CAAC;AAGpB,MAAM,OAAO,GAAG;IACd,MAAM,EACJ,mFAAmF;IACrF,IAAI,EAAE,gCAAgC;CAC9B,CAAC;AAiBX,SAAS,OAAO,CAAC,IAAY,EAAE,IAAY;IACzC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;AACnE,CAAC;AAED,SAAS,QAAQ,CAAC,MAA2B;IAC3C,OAAO,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,iBAAiB,CAAC;AACjE,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe,EAAE,KAAa;IAC9C,MAAM,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,OAAO,GAAG,GAAG,OAAO,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC;AAC/F,CAAC;AAED,SAAS,WAAW,CAClB,MAA2B,EAC3B,OAA0B;IAE1B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3B,OAAO,GAAG,GAAG,KAAK,OAAO,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,KAAK,OAAO,EAAE,CAAC;AAC1G,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;SACtC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IACvC,IAAI,CAAS;IACb,MAAM,CAAU;IAEzB,YAAY,OAAe,EAAE,IAAI,GAAG,aAAa,EAAE,MAAe;QAChE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,MAAM,KAAK,SAAS;YAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACjD,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
|
|
3
2
|
* Resolve which curated MemoryProvider to use (file default · HTTP · sqlite).
|
|
4
|
-
|
|
5
3
|
* Mirrors Hermes `memory.provider` single-select; curated file remains default.
|
|
6
|
-
|
|
7
4
|
*/
|
|
8
5
|
import { type CreateCuratedMemoryStoreOptions } from "./store.js";
|
|
9
6
|
import { type HttpMemoryProviderOptions } from "./http.js";
|
|
@@ -15,22 +12,17 @@ export interface ResolveMemoryProviderOptions {
|
|
|
15
12
|
readonly http?: Partial<HttpMemoryProviderOptions>;
|
|
16
13
|
readonly sqlite?: SqliteMemoryProviderOptions;
|
|
17
14
|
/**
|
|
18
|
-
|
|
19
15
|
* Force provider kind. When omitted, reads `XRK_MEMORY_PROVIDER`
|
|
20
|
-
|
|
21
16
|
* (`file` | `http` | `sqlite`; default `file`).
|
|
22
|
-
|
|
23
17
|
*/
|
|
24
18
|
readonly kind?: "file" | "http" | "sqlite";
|
|
25
19
|
}
|
|
26
20
|
/** Wrap the disk store as a named {@link MemoryProvider}. */
|
|
27
21
|
export declare function createFileMemoryProvider(options?: CreateCuratedMemoryStoreOptions): MemoryProvider;
|
|
28
22
|
/**
|
|
29
|
-
|
|
30
23
|
* Pick file (default), HTTP, or sqlite curated provider.
|
|
31
|
-
|
|
32
24
|
* HTTP requires `XRK_MEMORY_HTTP_URL` (or `options.http.baseUrl`).
|
|
33
|
-
|
|
25
|
+
* Sync — sample backends construct without I/O awaits.
|
|
34
26
|
*/
|
|
35
|
-
export declare function resolveMemoryProvider(options?: ResolveMemoryProviderOptions):
|
|
27
|
+
export declare function resolveMemoryProvider(options?: ResolveMemoryProviderOptions): MemoryProvider;
|
|
36
28
|
//# sourceMappingURL=resolve.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAA4B,KAAK,+BAA+B,EAAE,MAAM,YAAY,CAAC;AAC5F,OAAO,EAA4B,KAAK,yBAAyB,EAAE,MAAM,WAAW,CAAC;AACrF,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,+BAA+B,CAAC;IAChD,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACnD,QAAQ,CAAC,MAAM,CAAC,EAAE,2BAA2B,CAAC;IAC9C;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;CAC5C;AAED,6DAA6D;AAC7D,wBAAgB,wBAAwB,CACtC,OAAO,CAAC,EAAE,+BAA+B,GACxC,cAAc,CAOhB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,GAAE,4BAAiC,GACzC,cAAc,CAmChB"}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
|
|
3
2
|
* Resolve which curated MemoryProvider to use (file default · HTTP · sqlite).
|
|
4
|
-
|
|
5
3
|
* Mirrors Hermes `memory.provider` single-select; curated file remains default.
|
|
6
|
-
|
|
7
4
|
*/
|
|
8
5
|
import { createCuratedMemoryStore } from "./store.js";
|
|
9
6
|
import { createHttpMemoryProvider } from "./http.js";
|
|
@@ -18,13 +15,11 @@ export function createFileMemoryProvider(options) {
|
|
|
18
15
|
};
|
|
19
16
|
}
|
|
20
17
|
/**
|
|
21
|
-
|
|
22
18
|
* Pick file (default), HTTP, or sqlite curated provider.
|
|
23
|
-
|
|
24
19
|
* HTTP requires `XRK_MEMORY_HTTP_URL` (or `options.http.baseUrl`).
|
|
25
|
-
|
|
20
|
+
* Sync — sample backends construct without I/O awaits.
|
|
26
21
|
*/
|
|
27
|
-
export
|
|
22
|
+
export function resolveMemoryProvider(options = {}) {
|
|
28
23
|
const env = options.env ?? process.env;
|
|
29
24
|
const kindRaw = (options.kind ??
|
|
30
25
|
String(env.XRK_MEMORY_PROVIDER ?? "file").trim().toLowerCase());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,wBAAwB,EAAwC,MAAM,YAAY,CAAC;AAC5F,OAAO,EAAE,wBAAwB,EAAkC,MAAM,WAAW,CAAC;AACrF,OAAO,EACL,0BAA0B,GAE3B,MAAM,aAAa,CAAC;AAerB,6DAA6D;AAC7D,MAAM,UAAU,wBAAwB,CACtC,OAAyC;IAEzC,MAAM,KAAK,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAChD,OAAO;QACL,GAAG,KAAK;QACR,YAAY,EAAE,MAAM;QACpB,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI;KACxB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACnC,UAAwC,EAAE;IAE1C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACvC,MAAM,OAAO,GAAG,CACd,OAAO,CAAC,IAAI;QACZ,MAAM,CAAC,GAAG,CAAC,mBAAmB,IAAI,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAC/D,CAAC;IACF,MAAM,IAAI,GACR,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;IACzE,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,MAAM,OAAO,GACX,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;YAC7B,MAAM,CAAC,GAAG,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,yEAAyE,CAC1E,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,GACT,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;YAC3B,MAAM,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;YAC9C,SAAS,CAAC;QACZ,OAAO,wBAAwB,CAAC;YAC9B,OAAO;YACP,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,KAAK,SAAS;gBACvC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE;gBACvC,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;IACL,CAAC;IACD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,OAAO,0BAA0B,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,wBAAwB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAChD,CAAC"}
|
|
@@ -12,5 +12,8 @@ When Settings General → Remote (`ssh-remote`) or `XRK_SSH_HOST` + `XRK_SSH_WOR
|
|
|
12
12
|
| `XRK_SSH_PORT` | Optional port (default OpenSSH) |
|
|
13
13
|
| `XRK_SSH_KEY` | Optional identity file |
|
|
14
14
|
| `XRK_SSH_NODE` | Remote Node for `run_code` (default `node`) |
|
|
15
|
+
| `XRK_SSH_SKIP_PROBE` | `1` skips Host BatchMode connect probe (CI mocks) |
|
|
16
|
+
|
|
17
|
+
Host probes with remote `true` before serving when SSH is on (`createSshExecutionWorldReady`). `xrkh doctor` reports `ssh-remote`. Cloud tasks / Codex Noise exec-server are **not** in this package.
|
|
15
18
|
|
|
16
19
|
See `docs/seams.md` · `docs/configuration.md`.
|
|
@@ -3,8 +3,9 @@ export { createSshCodeRuntime, } from "./code.js";
|
|
|
3
3
|
export { createFsSshProvider, type FsSshOptions, } from "./fs.js";
|
|
4
4
|
export { createSshDirectory, listSshDirectory, type SshDirectoryEntry, type SshDirectoryListing, } from "./directory.js";
|
|
5
5
|
export { isRemotelyInside, normalizeRemoteAbs, resolveWithinRemoteRoot, } from "./paths.js";
|
|
6
|
-
export { createSshExecutionWorld, type CreateSshExecutionWorldOptions, type SshExecutionWorld, } from "./providers.js";
|
|
6
|
+
export { createSshExecutionWorld, createSshExecutionWorldReady, type CreateSshExecutionWorldOptions, type SshExecutionWorld, } from "./providers.js";
|
|
7
7
|
export { shJoin, shQuote } from "./quote.js";
|
|
8
8
|
export { createSshSession, type CreateSshSessionOptions, type SshExecOptions, type SshSession, } from "./session.js";
|
|
9
|
+
export { probeSshTarget, type ProbeSshTargetOptions, type SshProbeResult, } from "./probe.js";
|
|
9
10
|
export { createSshSubprocess } from "./subprocess.js";
|
|
10
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,uBAAuB,EACvB,KAAK,MAAM,EACX,KAAK,eAAe,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,oBAAoB,GACrB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,mBAAmB,EACnB,KAAK,YAAY,GAClB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,uBAAuB,EACvB,KAAK,8BAA8B,EACnC,KAAK,iBAAiB,GACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,cAAc,EACnB,KAAK,UAAU,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,uBAAuB,EACvB,KAAK,MAAM,EACX,KAAK,eAAe,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,oBAAoB,GACrB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,mBAAmB,EACnB,KAAK,YAAY,GAClB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,uBAAuB,EACvB,4BAA4B,EAC5B,KAAK,8BAA8B,EACnC,KAAK,iBAAiB,GACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,cAAc,EACnB,KAAK,UAAU,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,cAAc,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -3,8 +3,9 @@ export { createSshCodeRuntime, } from "./code.js";
|
|
|
3
3
|
export { createFsSshProvider, } from "./fs.js";
|
|
4
4
|
export { createSshDirectory, listSshDirectory, } from "./directory.js";
|
|
5
5
|
export { isRemotelyInside, normalizeRemoteAbs, resolveWithinRemoteRoot, } from "./paths.js";
|
|
6
|
-
export { createSshExecutionWorld, } from "./providers.js";
|
|
6
|
+
export { createSshExecutionWorld, createSshExecutionWorldReady, } from "./providers.js";
|
|
7
7
|
export { shJoin, shQuote } from "./quote.js";
|
|
8
8
|
export { createSshSession, } from "./session.js";
|
|
9
|
+
export { probeSshTarget, } from "./probe.js";
|
|
9
10
|
export { createSshSubprocess } from "./subprocess.js";
|
|
10
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,uBAAuB,GAGxB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,oBAAoB,GACrB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,mBAAmB,GAEpB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,GAGjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,uBAAuB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,uBAAuB,GAGxB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,oBAAoB,GACrB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,mBAAmB,GAEpB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,GAGjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,uBAAuB,EACvB,4BAA4B,GAG7B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EACL,gBAAgB,GAIjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,cAAc,GAGf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SSH target connectivity probe (Hermes `_establish_connection` subset).
|
|
3
|
+
* One BatchMode `true` over OpenSSH — no remote helper install.
|
|
4
|
+
*/
|
|
5
|
+
import type { SubprocessService } from "@xrkseek/exec-subprocess";
|
|
6
|
+
import type { SshTargetConfig } from "./config.js";
|
|
7
|
+
import { type CreateSshSessionOptions } from "./session.js";
|
|
8
|
+
export interface SshProbeResult {
|
|
9
|
+
readonly ok: boolean;
|
|
10
|
+
readonly target: string;
|
|
11
|
+
readonly detail: string;
|
|
12
|
+
readonly exitCode?: number;
|
|
13
|
+
readonly stderr?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface ProbeSshTargetOptions extends Omit<CreateSshSessionOptions, "config"> {
|
|
16
|
+
readonly config: SshTargetConfig;
|
|
17
|
+
/** Default 15s (matches session ConnectTimeout floor). */
|
|
18
|
+
readonly timeoutMs?: number;
|
|
19
|
+
readonly local?: SubprocessService;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Probe that OpenSSH can run a trivial remote command in BatchMode.
|
|
23
|
+
* Always disposes the ephemeral session (doctor / CLI).
|
|
24
|
+
*/
|
|
25
|
+
export declare function probeSshTarget(options: ProbeSshTargetOptions): Promise<SshProbeResult>;
|
|
26
|
+
//# sourceMappingURL=probe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"probe.d.ts","sourceRoot":"","sources":["../src/probe.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAoB,KAAK,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAE9E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,qBACf,SAAQ,IAAI,CAAC,uBAAuB,EAAE,QAAQ,CAAC;IAC/C,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,0DAA0D;IAC1D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC;CACpC;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,cAAc,CAAC,CAsCzB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SSH target connectivity probe (Hermes `_establish_connection` subset).
|
|
3
|
+
* One BatchMode `true` over OpenSSH — no remote helper install.
|
|
4
|
+
*/
|
|
5
|
+
import { createSshSession } from "./session.js";
|
|
6
|
+
/**
|
|
7
|
+
* Probe that OpenSSH can run a trivial remote command in BatchMode.
|
|
8
|
+
* Always disposes the ephemeral session (doctor / CLI).
|
|
9
|
+
*/
|
|
10
|
+
export async function probeSshTarget(options) {
|
|
11
|
+
const timeoutMs = Math.max(1_000, options.timeoutMs ?? 15_000);
|
|
12
|
+
const session = createSshSession({
|
|
13
|
+
config: options.config,
|
|
14
|
+
...(options.local ? { local: options.local } : {}),
|
|
15
|
+
...(options.platform ? { platform: options.platform } : {}),
|
|
16
|
+
});
|
|
17
|
+
try {
|
|
18
|
+
const result = await session.exec("true", { timeoutMs });
|
|
19
|
+
if (result.exitCode === 0) {
|
|
20
|
+
return {
|
|
21
|
+
ok: true,
|
|
22
|
+
target: session.target,
|
|
23
|
+
detail: `ssh ${session.target} · BatchMode ok · workspace ${options.config.workspace}`,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
const stderr = (result.stderr ?? "").trim();
|
|
27
|
+
return {
|
|
28
|
+
ok: false,
|
|
29
|
+
target: session.target,
|
|
30
|
+
detail: stderr ||
|
|
31
|
+
`ssh ${session.target} exited ${result.exitCode ?? "?"} (BatchMode)`,
|
|
32
|
+
...(typeof result.exitCode === "number"
|
|
33
|
+
? { exitCode: result.exitCode }
|
|
34
|
+
: {}),
|
|
35
|
+
...(stderr ? { stderr } : {}),
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
40
|
+
return {
|
|
41
|
+
ok: false,
|
|
42
|
+
target: session.target,
|
|
43
|
+
detail: `ssh ${session.target}: ${message}`,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
finally {
|
|
47
|
+
session.dispose();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=probe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"probe.js","sourceRoot":"","sources":["../src/probe.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,gBAAgB,EAAgC,MAAM,cAAc,CAAC;AAkB9E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAA8B;IAE9B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,gBAAgB,CAAC;QAC/B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5D,CAAC,CAAC;IACH,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QACzD,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,MAAM,EAAE,OAAO,OAAO,CAAC,MAAM,+BAA+B,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE;aACvF,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5C,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM,EACJ,MAAM;gBACN,OAAO,OAAO,CAAC,MAAM,WAAW,MAAM,CAAC,QAAQ,IAAI,GAAG,cAAc;YACtE,GAAG,CAAC,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;gBACrC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE;gBAC/B,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9B,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM,EAAE,OAAO,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE;SAC5C,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC;AACH,CAAC"}
|
|
@@ -16,4 +16,12 @@ export interface CreateSshExecutionWorldOptions extends Omit<CreateSshSessionOpt
|
|
|
16
16
|
}
|
|
17
17
|
/** Build fs + subprocess + code providers for one SSH target. */
|
|
18
18
|
export declare function createSshExecutionWorld(options: CreateSshExecutionWorldOptions): SshExecutionWorld;
|
|
19
|
+
/**
|
|
20
|
+
* Create the SSH world and fail fast if BatchMode cannot run `true`
|
|
21
|
+
* (Hermes establish-before-use). Set `XRK_SSH_SKIP_PROBE=1` to skip (CI mocks).
|
|
22
|
+
*/
|
|
23
|
+
export declare function createSshExecutionWorldReady(options: CreateSshExecutionWorldOptions & {
|
|
24
|
+
readonly probeTimeoutMs?: number;
|
|
25
|
+
readonly skipProbe?: boolean;
|
|
26
|
+
}): Promise<SshExecutionWorld>;
|
|
19
27
|
//# sourceMappingURL=providers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGnD,OAAO,EAAoB,KAAK,uBAAuB,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/F,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,8BACf,SAAQ,IAAI,CAAC,uBAAuB,EAAE,QAAQ,CAAC;IAC/C,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;CAClC;AAED,iEAAiE;AACjE,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,8BAA8B,GACtC,iBAAiB,CAenB"}
|
|
1
|
+
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGnD,OAAO,EAAoB,KAAK,uBAAuB,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/F,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,8BACf,SAAQ,IAAI,CAAC,uBAAuB,EAAE,QAAQ,CAAC;IAC/C,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;CAClC;AAED,iEAAiE;AACjE,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,8BAA8B,GACtC,iBAAiB,CAenB;AAED;;;GAGG;AACH,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,8BAA8B,GAAG;IACxC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B,GACA,OAAO,CAAC,iBAAiB,CAAC,CAuB5B"}
|
|
@@ -19,4 +19,29 @@ export function createSshExecutionWorld(options) {
|
|
|
19
19
|
},
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* Create the SSH world and fail fast if BatchMode cannot run `true`
|
|
24
|
+
* (Hermes establish-before-use). Set `XRK_SSH_SKIP_PROBE=1` to skip (CI mocks).
|
|
25
|
+
*/
|
|
26
|
+
export async function createSshExecutionWorldReady(options) {
|
|
27
|
+
const world = createSshExecutionWorld(options);
|
|
28
|
+
const skip = options.skipProbe === true ||
|
|
29
|
+
String(process.env.XRK_SSH_SKIP_PROBE ?? "").trim() === "1";
|
|
30
|
+
if (skip)
|
|
31
|
+
return world;
|
|
32
|
+
const timeoutMs = Math.max(1_000, options.probeTimeoutMs ?? 15_000);
|
|
33
|
+
try {
|
|
34
|
+
const result = await world.session.exec("true", { timeoutMs });
|
|
35
|
+
if (result.exitCode === 0)
|
|
36
|
+
return world;
|
|
37
|
+
const stderr = (result.stderr ?? "").trim();
|
|
38
|
+
throw new Error(stderr ||
|
|
39
|
+
`ssh ${world.session.target} exited ${result.exitCode ?? "?"} (BatchMode probe)`);
|
|
40
|
+
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
world.dispose();
|
|
43
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
44
|
+
throw new Error(`SSH probe failed for ${world.session.target}: ${message}`, { cause: err });
|
|
45
|
+
}
|
|
46
|
+
}
|
|
22
47
|
//# sourceMappingURL=providers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAiD,MAAM,cAAc,CAAC;AAC/F,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAgBtD,iEAAiE;AACjE,MAAM,UAAU,uBAAuB,CACrC,OAAuC;IAEvC,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,EAAE,GAAG,mBAAmB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAClD,OAAO;QACL,OAAO;QACP,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS;QACvC,EAAE;QACF,UAAU;QACV,WAAW;QACX,OAAO;YACL,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAiD,MAAM,cAAc,CAAC;AAC/F,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAgBtD,iEAAiE;AACjE,MAAM,UAAU,uBAAuB,CACrC,OAAuC;IAEvC,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,EAAE,GAAG,mBAAmB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAClD,OAAO;QACL,OAAO;QACP,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS;QACvC,EAAE;QACF,UAAU;QACV,WAAW;QACX,OAAO;YACL,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,OAGC;IAED,MAAM,KAAK,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,IAAI,GACR,OAAO,CAAC,SAAS,KAAK,IAAI;QAC1B,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC;IAC9D,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IACvB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,cAAc,IAAI,MAAM,CAAC,CAAC;IACpE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QAC/D,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACxC,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CACb,MAAM;YACJ,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,WAAW,MAAM,CAAC,QAAQ,IAAI,GAAG,oBAAoB,CACnF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,MAAM,IAAI,KAAK,CACb,wBAAwB,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE,EAC1D,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# `@xrkseek/exec-video-analyze`
|
|
2
|
+
|
|
3
|
+
Hermes-style **video understanding** tool (`video_analyze`).
|
|
4
|
+
|
|
5
|
+
- **In**: video URL or workspace path + question
|
|
6
|
+
- **Out**: JSON `{ success, analysis, … }` text (whole-clip multimodal LLM — not frame extraction)
|
|
7
|
+
- **Not**: `browser_vision` (live page screenshot) · `video_generate` (create video) · `read_image` (stills)
|
|
8
|
+
|
|
9
|
+
Providers: `memory` (CI) · OpenAI-compatible chat with `video_url` part (needs a video-capable model such as Gemini).
|
|
10
|
+
|
|
11
|
+
See [docs/video-analyze.md](../../../docs/video-analyze.md).
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAE7E,eAAO,MAAM,yBAAyB,QAO5B,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** System-prompt fragment for video_analyze (boundary vs browser_vision). */
|
|
2
|
+
export const VIDEO_ANALYZE_PROMPT_TEXT = [
|
|
3
|
+
"## Video analysis",
|
|
4
|
+
"Use `video_analyze` for video files or video URLs (mp4/webm/mov/…). ",
|
|
5
|
+
"It sends the whole clip to a video-capable multimodal model and returns a text analysis — not frame extraction. ",
|
|
6
|
+
"Do **not** use it for live browser pages (use `browser_vision`) or static images (use `read_image`). ",
|
|
7
|
+
"Do **not** use `video_generate` here — that tool creates videos, it does not understand them. ",
|
|
8
|
+
"Large clips (>20 MB) may be slow; hard limit ~50 MB.",
|
|
9
|
+
].join("");
|
|
10
|
+
//# sourceMappingURL=format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAE7E,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,mBAAmB;IACnB,sEAAsE;IACtE,kHAAkH;IAClH,uGAAuG;IACvG,gGAAgG;IAChG,sDAAsD;CACvD,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { VideoAnalyzeService } from "./types.js";
|
|
2
|
+
export { VideoAnalyzeError, isVideoAnalyzeError, type VideoAnalyzeErrorCode, type VideoAnalyzeRequest, type VideoAnalyzeResult, type VideoAnalyzeService, type VideoMediaType, } from "./types.js";
|
|
3
|
+
export { MAX_VIDEO_BYTES, VIDEO_MIME_BY_EXT, VIDEO_SIZE_WARN_BYTES, assertVideoByteBudget, unsupportedVideoFormatMessage, videoMimeForPath, wrapVideoAnalyzePrompt, } from "./mime.js";
|
|
4
|
+
export { materializeVideo, type MaterializedVideo, type VideoAnalyzeFs, } from "./materialize.js";
|
|
5
|
+
export { VIDEO_ANALYZE_PROMPT_TEXT } from "./format.js";
|
|
6
|
+
export { createMemoryVideoAnalyzeProvider, type MemoryVideoAnalyzeOptions, } from "./memory.js";
|
|
7
|
+
export { createOpenAiVideoAnalyzeProvider, type OpenAiVideoAnalyzeOptions, } from "./openai-http.js";
|
|
8
|
+
export { createVideoAnalyzeTools, videoAnalyzeUnavailableMessage, type CreateVideoAnalyzeToolsOptions, } from "./tools.js";
|
|
9
|
+
/** Face `video-analyze` product modes (Settings SoT). `memory` stays env-only. */
|
|
10
|
+
export type VideoAnalyzeProductMode = "off" | "openai";
|
|
11
|
+
/** Face `video-analyze` product shape. */
|
|
12
|
+
export interface VideoAnalyzeProductConfig {
|
|
13
|
+
readonly mode: VideoAnalyzeProductMode;
|
|
14
|
+
readonly baseUrl?: string;
|
|
15
|
+
readonly model?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface DefaultVideoAnalyzeAccessOptions {
|
|
18
|
+
readonly env?: NodeJS.ProcessEnv;
|
|
19
|
+
/**
|
|
20
|
+
* Face Settings product. Used when `XRK_VIDEO_ANALYZE` is unset
|
|
21
|
+
* (env remains the CI bypass).
|
|
22
|
+
*/
|
|
23
|
+
readonly product?: VideoAnalyzeProductConfig;
|
|
24
|
+
readonly service?: VideoAnalyzeService;
|
|
25
|
+
readonly fetchImpl?: typeof fetch;
|
|
26
|
+
}
|
|
27
|
+
export interface DefaultVideoAnalyzeAccess {
|
|
28
|
+
readonly service?: VideoAnalyzeService;
|
|
29
|
+
readonly unavailableMessage: string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Resolve a video-analyze Provider.
|
|
33
|
+
* - Injected `service` wins.
|
|
34
|
+
* - Non-empty `XRK_VIDEO_ANALYZE` is CI bypass over Face `product`.
|
|
35
|
+
* - Product / env: `off` · `openai` (`1`) · `memory` (env-only).
|
|
36
|
+
* - Else no service; tools stay registered and fail honestly.
|
|
37
|
+
*/
|
|
38
|
+
export declare function createDefaultVideoAnalyzeAccess(options?: DefaultVideoAnalyzeAccessOptions): DefaultVideoAnalyzeAccess;
|
|
39
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGtD,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,cAAc,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,6BAA6B,EAC7B,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,gBAAgB,EAChB,KAAK,iBAAiB,EACtB,KAAK,cAAc,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EACL,gCAAgC,EAChC,KAAK,yBAAyB,GAC/B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,gCAAgC,EAChC,KAAK,yBAAyB,GAC/B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,uBAAuB,EACvB,8BAA8B,EAC9B,KAAK,8BAA8B,GACpC,MAAM,YAAY,CAAC;AAEpB,kFAAkF;AAClF,MAAM,MAAM,uBAAuB,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEvD,0CAA0C;AAC1C,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC;IACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACjC;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,yBAAyB,CAAC;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CACnC;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;CACrC;AASD;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,GAAE,gCAAqC,GAC7C,yBAAyB,CAyC3B"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { createMemoryVideoAnalyzeProvider } from "./memory.js";
|
|
2
|
+
import { createOpenAiVideoAnalyzeProvider } from "./openai-http.js";
|
|
3
|
+
import { videoAnalyzeUnavailableMessage } from "./tools.js";
|
|
4
|
+
export { VideoAnalyzeError, isVideoAnalyzeError, } from "./types.js";
|
|
5
|
+
export { MAX_VIDEO_BYTES, VIDEO_MIME_BY_EXT, VIDEO_SIZE_WARN_BYTES, assertVideoByteBudget, unsupportedVideoFormatMessage, videoMimeForPath, wrapVideoAnalyzePrompt, } from "./mime.js";
|
|
6
|
+
export { materializeVideo, } from "./materialize.js";
|
|
7
|
+
export { VIDEO_ANALYZE_PROMPT_TEXT } from "./format.js";
|
|
8
|
+
export { createMemoryVideoAnalyzeProvider, } from "./memory.js";
|
|
9
|
+
export { createOpenAiVideoAnalyzeProvider, } from "./openai-http.js";
|
|
10
|
+
export { createVideoAnalyzeTools, videoAnalyzeUnavailableMessage, } from "./tools.js";
|
|
11
|
+
function resolveApiKey(env) {
|
|
12
|
+
const a = String(env.XRK_VIDEO_ANALYZE_OPENAI_KEY ?? "").trim();
|
|
13
|
+
if (a)
|
|
14
|
+
return a;
|
|
15
|
+
const b = String(env.OPENAI_API_KEY ?? "").trim();
|
|
16
|
+
return b || undefined;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Resolve a video-analyze Provider.
|
|
20
|
+
* - Injected `service` wins.
|
|
21
|
+
* - Non-empty `XRK_VIDEO_ANALYZE` is CI bypass over Face `product`.
|
|
22
|
+
* - Product / env: `off` · `openai` (`1`) · `memory` (env-only).
|
|
23
|
+
* - Else no service; tools stay registered and fail honestly.
|
|
24
|
+
*/
|
|
25
|
+
export function createDefaultVideoAnalyzeAccess(options = {}) {
|
|
26
|
+
const env = options.env ?? process.env;
|
|
27
|
+
const unavailableMessage = videoAnalyzeUnavailableMessage(env, options.product);
|
|
28
|
+
if (options.service) {
|
|
29
|
+
return { service: options.service, unavailableMessage };
|
|
30
|
+
}
|
|
31
|
+
const envRaw = String(env.XRK_VIDEO_ANALYZE ?? "").trim();
|
|
32
|
+
const flag = envRaw !== ""
|
|
33
|
+
? envRaw.toLowerCase()
|
|
34
|
+
: options.product?.mode === "openai"
|
|
35
|
+
? "1"
|
|
36
|
+
: "";
|
|
37
|
+
if (flag === "memory") {
|
|
38
|
+
return {
|
|
39
|
+
service: createMemoryVideoAnalyzeProvider(),
|
|
40
|
+
unavailableMessage,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
if (flag === "1" || flag === "openai") {
|
|
44
|
+
const apiKey = resolveApiKey(env);
|
|
45
|
+
if (!apiKey) {
|
|
46
|
+
return { unavailableMessage };
|
|
47
|
+
}
|
|
48
|
+
const baseUrl = options.product?.baseUrl?.trim() ||
|
|
49
|
+
String(env.XRK_VIDEO_ANALYZE_BASE_URL ?? "").trim();
|
|
50
|
+
const model = options.product?.model?.trim() ||
|
|
51
|
+
String(env.XRK_VIDEO_ANALYZE_MODEL ?? "").trim();
|
|
52
|
+
return {
|
|
53
|
+
service: createOpenAiVideoAnalyzeProvider({
|
|
54
|
+
apiKey,
|
|
55
|
+
...(baseUrl ? { baseUrl } : {}),
|
|
56
|
+
...(model ? { model } : {}),
|
|
57
|
+
...(options.fetchImpl ? { fetchImpl: options.fetchImpl } : {}),
|
|
58
|
+
}),
|
|
59
|
+
unavailableMessage,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
return { unavailableMessage };
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface VideoAnalyzeFs {
|
|
2
|
+
stat(userPath: string): Promise<{
|
|
3
|
+
readonly isFile: boolean;
|
|
4
|
+
}>;
|
|
5
|
+
readBytes(userPath: string, maxBytes?: number): Promise<Uint8Array>;
|
|
6
|
+
}
|
|
7
|
+
export interface MaterializedVideo {
|
|
8
|
+
readonly data: Uint8Array;
|
|
9
|
+
readonly mediaType: string;
|
|
10
|
+
readonly source: "url" | "path";
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Load video bytes for analysis.
|
|
14
|
+
* - http(s): download with Accept video/*, capped at MAX_VIDEO_BYTES
|
|
15
|
+
* - else: workspace path via injected Fs (same world as read_image)
|
|
16
|
+
*/
|
|
17
|
+
export declare function materializeVideo(videoUrl: string, options?: {
|
|
18
|
+
readonly fs?: VideoAnalyzeFs;
|
|
19
|
+
readonly fetchImpl?: typeof fetch;
|
|
20
|
+
readonly signal?: AbortSignal;
|
|
21
|
+
}): Promise<MaterializedVideo>;
|
|
22
|
+
//# sourceMappingURL=materialize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"materialize.d.ts","sourceRoot":"","sources":["../src/materialize.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC9D,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CACrE;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;CACjC;AAOD;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IACP,QAAQ,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC1B,GACL,OAAO,CAAC,iBAAiB,CAAC,CA0E5B"}
|