appduct 0.9.0 → 0.11.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 (230) hide show
  1. package/README.md +122 -52
  2. package/dist/artifact-inspect.d.ts +5 -4
  3. package/dist/bin.d.ts +0 -1
  4. package/dist/bin.js +1250 -2
  5. package/dist/cli/command-options.d.ts +8 -1
  6. package/dist/cli/create-cli.d.ts +0 -1
  7. package/dist/cli/dispatch.d.ts +10 -1
  8. package/dist/cli/envelope.d.ts +19 -0
  9. package/dist/cli/global-flags.d.ts +30 -0
  10. package/dist/cli/open-target.d.ts +25 -8
  11. package/dist/cli/result-types.d.ts +30 -5
  12. package/dist/cli/router.d.ts +78 -0
  13. package/dist/cli/routes/daemon/index.d.ts +9 -0
  14. package/dist/cli/routes/daemon/index.js +848 -0
  15. package/dist/cli/routes/daemon/run.d.ts +3 -0
  16. package/dist/cli/routes/daemon/run.js +3246 -0
  17. package/dist/cli/routes/daemon/start.d.ts +3 -0
  18. package/dist/cli/routes/daemon/start.js +1668 -0
  19. package/dist/cli/routes/daemon/status.d.ts +4 -0
  20. package/dist/cli/routes/daemon/status.js +1676 -0
  21. package/dist/cli/routes/daemon/stop.d.ts +4 -0
  22. package/dist/cli/routes/daemon/stop.js +1646 -0
  23. package/dist/cli/routes/doctor.d.ts +3 -0
  24. package/dist/cli/routes/doctor.js +1075 -0
  25. package/dist/cli/routes/events.d.ts +3 -0
  26. package/dist/cli/routes/events.js +1906 -0
  27. package/dist/cli/routes/init.d.ts +3 -0
  28. package/dist/cli/routes/init.js +1486 -0
  29. package/dist/cli/routes/invoke.d.ts +3 -0
  30. package/dist/cli/routes/invoke.js +1884 -0
  31. package/dist/cli/routes/keygen.d.ts +3 -0
  32. package/dist/cli/routes/keygen.js +928 -0
  33. package/dist/cli/routes/link.d.ts +3 -0
  34. package/dist/cli/routes/link.js +2705 -0
  35. package/dist/cli/routes/ls.d.ts +3 -0
  36. package/dist/cli/routes/ls.js +1659 -0
  37. package/dist/cli/routes/mcp.d.ts +5 -0
  38. package/dist/cli/routes/mcp.js +3917 -0
  39. package/dist/cli/routes/revoke.d.ts +3 -0
  40. package/dist/cli/routes/revoke.js +1675 -0
  41. package/dist/cli/routes/tools.d.ts +3 -0
  42. package/dist/cli/routes/tools.js +1851 -0
  43. package/dist/cli/runner.d.ts +3 -11
  44. package/dist/cli/types.d.ts +9 -6
  45. package/dist/cli/version-guard.d.ts +20 -0
  46. package/dist/cli.d.ts +0 -1
  47. package/dist/client/app-client.d.ts +0 -1
  48. package/dist/client/bootstrap.d.ts +4 -4
  49. package/dist/client/connect.d.ts +0 -1
  50. package/dist/client/errors.d.ts +0 -1
  51. package/dist/client/index.d.ts +0 -1
  52. package/dist/client/index.js +2379 -16
  53. package/dist/commands/daemon/context.d.ts +14 -0
  54. package/dist/commands/daemon/run.d.ts +11 -0
  55. package/dist/commands/daemon/start.d.ts +5 -0
  56. package/dist/commands/daemon/status.d.ts +5 -0
  57. package/dist/commands/daemon/stop.d.ts +5 -0
  58. package/dist/commands/doctor.d.ts +0 -1
  59. package/dist/commands/events.d.ts +0 -1
  60. package/dist/commands/init.d.ts +17 -4
  61. package/dist/commands/invoke.d.ts +0 -1
  62. package/dist/commands/keygen.d.ts +0 -1
  63. package/dist/commands/link.d.ts +1 -2
  64. package/dist/commands/ls.d.ts +0 -1
  65. package/dist/commands/mcp.d.ts +2 -4
  66. package/dist/commands/revoke.d.ts +0 -1
  67. package/dist/commands/tools.d.ts +19 -3
  68. package/dist/daemon/address.d.ts +0 -1
  69. package/dist/daemon/audit.d.ts +6 -11
  70. package/dist/daemon/calls.d.ts +0 -1
  71. package/dist/daemon/config.d.ts +13 -16
  72. package/dist/daemon/daemon.d.ts +0 -1
  73. package/dist/daemon/event-bus.d.ts +0 -1
  74. package/dist/daemon/links.d.ts +0 -1
  75. package/dist/daemon/listener.d.ts +0 -1
  76. package/dist/daemon/log-rotation.d.ts +0 -1
  77. package/dist/daemon/pidfile.d.ts +14 -8
  78. package/dist/daemon/policy.d.ts +0 -1
  79. package/dist/daemon/registry.d.ts +0 -1
  80. package/dist/daemon/rpc-errors.d.ts +16 -0
  81. package/dist/daemon/rpc-server.d.ts +0 -11
  82. package/dist/daemon/sessions.d.ts +0 -1
  83. package/dist/daemon/socket-probe.d.ts +0 -1
  84. package/dist/daemon/state-dir.d.ts +0 -1
  85. package/dist/daemon/timers.d.ts +0 -1
  86. package/dist/daemon/tls.d.ts +0 -1
  87. package/dist/errors.d.ts +0 -1
  88. package/dist/host-certificate.d.ts +0 -1
  89. package/dist/index.d.ts +0 -1
  90. package/dist/index.js +1307 -3
  91. package/dist/key-material.d.ts +0 -1
  92. package/dist/link.d.ts +8 -7
  93. package/dist/mcp/app-tools.d.ts +153 -0
  94. package/dist/mcp/connect-tool.d.ts +14 -8
  95. package/dist/mcp/daemon-tools.d.ts +2 -11
  96. package/dist/mcp/events-tool.d.ts +0 -1
  97. package/dist/mcp/server.d.ts +33 -14
  98. package/dist/native-scheme.d.ts +0 -1
  99. package/dist/output.d.ts +8 -11
  100. package/dist/package-root.d.ts +11 -0
  101. package/dist/package-version.d.ts +0 -1
  102. package/dist/qr-terminal.d.ts +0 -1
  103. package/dist/rpc/client.d.ts +0 -1
  104. package/dist/scheme.d.ts +60 -2
  105. package/dist/spki-pin.d.ts +0 -1
  106. package/package.json +4 -3
  107. package/dist/artifact-inspect.d.ts.map +0 -1
  108. package/dist/artifact-inspect.js +0 -315
  109. package/dist/bin.d.ts.map +0 -1
  110. package/dist/cli/command-options.d.ts.map +0 -1
  111. package/dist/cli/command-options.js +0 -95
  112. package/dist/cli/create-cli.d.ts.map +0 -1
  113. package/dist/cli/create-cli.js +0 -56
  114. package/dist/cli/dispatch.d.ts.map +0 -1
  115. package/dist/cli/dispatch.js +0 -275
  116. package/dist/cli/open-target.d.ts.map +0 -1
  117. package/dist/cli/open-target.js +0 -438
  118. package/dist/cli/result-types.d.ts.map +0 -1
  119. package/dist/cli/result-types.js +0 -6
  120. package/dist/cli/runner.d.ts.map +0 -1
  121. package/dist/cli/runner.js +0 -111
  122. package/dist/cli/types.d.ts.map +0 -1
  123. package/dist/cli/types.js +0 -10
  124. package/dist/cli.d.ts.map +0 -1
  125. package/dist/cli.js +0 -2
  126. package/dist/client/app-client.d.ts.map +0 -1
  127. package/dist/client/app-client.js +0 -223
  128. package/dist/client/bootstrap.d.ts.map +0 -1
  129. package/dist/client/bootstrap.js +0 -108
  130. package/dist/client/connect.d.ts.map +0 -1
  131. package/dist/client/connect.js +0 -38
  132. package/dist/client/errors.d.ts.map +0 -1
  133. package/dist/client/errors.js +0 -40
  134. package/dist/client/index.d.ts.map +0 -1
  135. package/dist/commands/daemon.d.ts +0 -22
  136. package/dist/commands/daemon.d.ts.map +0 -1
  137. package/dist/commands/daemon.js +0 -128
  138. package/dist/commands/doctor.d.ts.map +0 -1
  139. package/dist/commands/doctor.js +0 -42
  140. package/dist/commands/events.d.ts.map +0 -1
  141. package/dist/commands/events.js +0 -76
  142. package/dist/commands/init.d.ts.map +0 -1
  143. package/dist/commands/init.js +0 -231
  144. package/dist/commands/invoke.d.ts.map +0 -1
  145. package/dist/commands/invoke.js +0 -54
  146. package/dist/commands/keygen.d.ts.map +0 -1
  147. package/dist/commands/keygen.js +0 -46
  148. package/dist/commands/link.d.ts.map +0 -1
  149. package/dist/commands/link.js +0 -43
  150. package/dist/commands/ls.d.ts.map +0 -1
  151. package/dist/commands/ls.js +0 -7
  152. package/dist/commands/mcp.d.ts.map +0 -1
  153. package/dist/commands/mcp.js +0 -98
  154. package/dist/commands/revoke.d.ts.map +0 -1
  155. package/dist/commands/revoke.js +0 -7
  156. package/dist/commands/tools.d.ts.map +0 -1
  157. package/dist/commands/tools.js +0 -52
  158. package/dist/daemon/address.d.ts.map +0 -1
  159. package/dist/daemon/address.js +0 -71
  160. package/dist/daemon/audit.d.ts.map +0 -1
  161. package/dist/daemon/audit.js +0 -237
  162. package/dist/daemon/calls.d.ts.map +0 -1
  163. package/dist/daemon/calls.js +0 -158
  164. package/dist/daemon/config.d.ts.map +0 -1
  165. package/dist/daemon/config.js +0 -170
  166. package/dist/daemon/daemon.d.ts.map +0 -1
  167. package/dist/daemon/daemon.js +0 -560
  168. package/dist/daemon/event-bus.d.ts.map +0 -1
  169. package/dist/daemon/event-bus.js +0 -111
  170. package/dist/daemon/links.d.ts.map +0 -1
  171. package/dist/daemon/links.js +0 -118
  172. package/dist/daemon/listener.d.ts.map +0 -1
  173. package/dist/daemon/listener.js +0 -132
  174. package/dist/daemon/log-rotation.d.ts.map +0 -1
  175. package/dist/daemon/log-rotation.js +0 -136
  176. package/dist/daemon/pidfile.d.ts.map +0 -1
  177. package/dist/daemon/pidfile.js +0 -90
  178. package/dist/daemon/policy.d.ts.map +0 -1
  179. package/dist/daemon/policy.js +0 -24
  180. package/dist/daemon/registry.d.ts.map +0 -1
  181. package/dist/daemon/registry.js +0 -31
  182. package/dist/daemon/rpc-server.d.ts.map +0 -1
  183. package/dist/daemon/rpc-server.js +0 -203
  184. package/dist/daemon/sessions.d.ts.map +0 -1
  185. package/dist/daemon/sessions.js +0 -429
  186. package/dist/daemon/socket-probe.d.ts.map +0 -1
  187. package/dist/daemon/socket-probe.js +0 -28
  188. package/dist/daemon/state-dir.d.ts.map +0 -1
  189. package/dist/daemon/state-dir.js +0 -43
  190. package/dist/daemon/timers.d.ts.map +0 -1
  191. package/dist/daemon/timers.js +0 -12
  192. package/dist/daemon/tls.d.ts.map +0 -1
  193. package/dist/daemon/tls.js +0 -79
  194. package/dist/errors.d.ts.map +0 -1
  195. package/dist/errors.js +0 -162
  196. package/dist/host-certificate.d.ts.map +0 -1
  197. package/dist/host-certificate.js +0 -111
  198. package/dist/index.d.ts.map +0 -1
  199. package/dist/key-material.d.ts.map +0 -1
  200. package/dist/key-material.js +0 -42
  201. package/dist/link.d.ts.map +0 -1
  202. package/dist/link.js +0 -117
  203. package/dist/mcp/connect-tool.d.ts.map +0 -1
  204. package/dist/mcp/connect-tool.js +0 -396
  205. package/dist/mcp/daemon-tools.d.ts.map +0 -1
  206. package/dist/mcp/daemon-tools.js +0 -29
  207. package/dist/mcp/events-tool.d.ts.map +0 -1
  208. package/dist/mcp/events-tool.js +0 -322
  209. package/dist/mcp/server.d.ts.map +0 -1
  210. package/dist/mcp/server.js +0 -538
  211. package/dist/mcp/tool-mapping.d.ts +0 -58
  212. package/dist/mcp/tool-mapping.d.ts.map +0 -1
  213. package/dist/mcp/tool-mapping.js +0 -143
  214. package/dist/mcp/tool-namespace.d.ts +0 -40
  215. package/dist/mcp/tool-namespace.d.ts.map +0 -1
  216. package/dist/mcp/tool-namespace.js +0 -65
  217. package/dist/native-scheme.d.ts.map +0 -1
  218. package/dist/native-scheme.js +0 -465
  219. package/dist/output.d.ts.map +0 -1
  220. package/dist/output.js +0 -342
  221. package/dist/package-version.d.ts.map +0 -1
  222. package/dist/package-version.js +0 -47
  223. package/dist/qr-terminal.d.ts.map +0 -1
  224. package/dist/qr-terminal.js +0 -45
  225. package/dist/rpc/client.d.ts.map +0 -1
  226. package/dist/rpc/client.js +0 -819
  227. package/dist/scheme.d.ts.map +0 -1
  228. package/dist/scheme.js +0 -321
  229. package/dist/spki-pin.d.ts.map +0 -1
  230. package/dist/spki-pin.js +0 -14
@@ -1,6 +1,6 @@
1
1
  import type { CliResult } from "./result-types.js";
2
2
  import { type RenderOptions } from "../output.js";
3
- import { type Clock, type CliIoWriters } from "./types.js";
3
+ import type { CliEnv } from "./types.js";
4
4
  /**
5
5
  * Long-lived command result shape shared by any CLI command that keeps a process alive
6
6
  * until completion/cancellation (e.g. a foreground daemon run). Not tied to any specific
@@ -22,14 +22,6 @@ export type HostedCommandReporter = {
22
22
  onEvent: (event: unknown) => void | Promise<void>;
23
23
  dispose: () => void;
24
24
  };
25
- export declare const executeCommand: (command: string, handler: () => CliResult<unknown> | Promise<CliResult<unknown>>, options: CliIoWriters & Pick<RenderOptions, "json" | "color"> & Partial<Pick<RenderOptions, "qr" | "full">> & {
26
- clock: Clock;
27
- }) => Promise<number>;
28
- export declare const executeHostedCommand: (command: string, handler: () => Promise<HostedCommandResult>, options: CliIoWriters & {
29
- json: boolean;
30
- color: boolean;
31
- clock: Clock;
32
- reporter?: HostedCommandReporter;
33
- }) => Promise<number>;
25
+ export declare const executeCommand: (command: string, handler: () => CliResult<unknown> | Promise<CliResult<unknown>>, env: CliEnv, render?: Partial<Pick<RenderOptions, "qr" | "full">>) => Promise<number>;
26
+ export declare const executeHostedCommand: (command: string, handler: () => Promise<HostedCommandResult>, env: CliEnv, reporter?: HostedCommandReporter) => Promise<number>;
34
27
  export {};
35
- //# sourceMappingURL=runner.d.ts.map
@@ -1,20 +1,23 @@
1
- import type { CommandMeta } from "./result-types.js";
1
+ import type { GlobalFlags } from "./global-flags.js";
2
2
  export type Clock = {
3
3
  now: () => Date;
4
4
  };
5
5
  export declare const systemClock: Clock;
6
- export declare const createCommandMeta: (command: string, startedAt: Date, finishedAt: Date) => CommandMeta;
7
6
  export type RunCliOptions = {
8
7
  stdout?: Pick<typeof process.stdout, "write" | "isTTY">;
9
8
  stderr?: Pick<typeof process.stderr, "write">;
10
9
  clock?: Clock;
11
10
  };
12
11
  export type CliIoWriters = Required<Pick<RunCliOptions, "stdout" | "stderr">>;
13
- export type CliRenderContext = {
14
- json: boolean;
15
- color: boolean;
12
+ /**
13
+ * Everything a route's handler needs about how to behave and where to write, in one object:
14
+ * the resolved global flags plus the writers and clock. A future global flag is added to
15
+ * `global-flags.ts`'s table and becomes available as `env.flags.<name>` everywhere this is
16
+ * threaded, with no other plumbing change.
17
+ */
18
+ export type CliEnv = {
19
+ flags: GlobalFlags;
16
20
  stdout: CliIoWriters["stdout"];
17
21
  stderr: CliIoWriters["stderr"];
18
22
  clock: Clock;
19
23
  };
20
- //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,20 @@
1
+ /**
2
+ * The daemon version check as a route sees it (ARCHITECTURE.md §4 "Version drift"). Lives on the
3
+ * route side of the eager/route bundle boundary on purpose: the check throws
4
+ * `DaemonVersionMismatchError` instances, and they must be created by the same copy of
5
+ * `rpc/client.ts` that the route's `runner.ts` classifies them with (see `RouteContext`).
6
+ */
7
+ import type { RouteContext } from "./router.js";
8
+ import { type VersionCheckOptions } from "../rpc/client.js";
9
+ /** The check's options for a route, with the drift notice going to `onWarning` (default: the
10
+ * context's `warn`). `mcp` passes its own writer: stderr is that server's only log channel. */
11
+ export declare const versionCheckOptions: (context: RouteContext, onWarning?: (message: string) => void) => Promise<VersionCheckOptions>;
12
+ /**
13
+ * Wraps a command handler so the daemon's version is verified once, before the command's first
14
+ * RPC. `autoSpawn: false`: with nothing listening there is no drift to find, and any daemon this
15
+ * process spawns afterwards is its own build. Applied to every command that talks to the daemon
16
+ * except `daemon run` (it *is* the daemon), `daemon status` (warns instead — see
17
+ * `commands/daemon/status.ts`) and `daemon stop` (already the remedy); `keygen`/`doctor` never
18
+ * open a daemon connection at all.
19
+ */
20
+ export declare const guarded: (context: RouteContext) => <T>(handler: () => T | Promise<T>) => (() => Promise<T>);
package/dist/cli.d.ts CHANGED
@@ -1,4 +1,3 @@
1
1
  export { createCli } from "./cli/create-cli.js";
2
2
  export { runCli } from "./cli/dispatch.js";
3
3
  export type { RunCliOptions } from "./cli/types.js";
4
- //# sourceMappingURL=cli.d.ts.map
@@ -123,4 +123,3 @@ export type AppClient<TTools = ToolMap> = {
123
123
  export declare const transportTimeoutForToolCall: (timeoutMs: number | undefined) => number;
124
124
  export declare const makeAppClient: <TTools = ToolMap>(stream: DaemonStream, sessionId: string) => AppClient<TTools>;
125
125
  export {};
126
- //# sourceMappingURL=app-client.d.ts.map
@@ -13,9 +13,10 @@ export type LinkOptions = {
13
13
  target?: OpenTarget;
14
14
  /** `--device` equivalent: an adb serial, a simulator udid, or a paired-device udid. */
15
15
  device?: string;
16
- /** `--bundle-id` equivalent; only valid with `target: "ios-device"`, where it overrides
17
- * `config.json`'s `iosBundleId`. */
18
- bundleId?: string;
16
+ /** `--app-id` equivalent: the installed app's id, required (via this, or the project
17
+ * `.appduct/config.json`'s `appId.<platform>`) with `target: "android"` or `target:
18
+ * "ios-device"`. */
19
+ appId?: string;
19
20
  /** `--relaunch` equivalent; only valid with `target: "ios-device"`. */
20
21
  relaunch?: boolean;
21
22
  /** Highest-precedence scheme source, ahead of `APPDUCT_SCHEME`, a project
@@ -45,4 +46,3 @@ export type WaitForSessionOptions = {
45
46
  /** Waits for `sessionId` (from {@link link}) to be claimed by a device, then returns a connected
46
47
  * {@link AppClient} for it — resolves immediately if it's already claimed. */
47
48
  export declare const waitForSession: <TTools = ToolMap>(sessionId: string, options?: WaitForSessionOptions) => Promise<AppClient<TTools>>;
48
- //# sourceMappingURL=bootstrap.d.ts.map
@@ -14,4 +14,3 @@ export type ConnectOptions = {
14
14
  };
15
15
  /** Opens a persistent connection to the daemon and resolves `options.selector` to one session. */
16
16
  export declare const connect: <TTools = ToolMap>(options?: ConnectOptions) => Promise<AppClient<TTools>>;
17
- //# sourceMappingURL=connect.d.ts.map
@@ -23,4 +23,3 @@ export declare class AppductError extends Error {
23
23
  /** Converts any error thrown by the RPC layer into a {@link AppductError}, preserving the wire
24
24
  * `data.type` verbatim when present. Idempotent on an already-converted error. */
25
25
  export declare const toAppductError: (error: unknown) => AppductError;
26
- //# sourceMappingURL=errors.d.ts.map
@@ -16,4 +16,3 @@ export { link, waitForSession, type LinkOptions, type LinkResult, type WaitForSe
16
16
  export { AppductError, type AppductErrorType } from "./errors.js";
17
17
  export type { AppClient, AppEvent, CallOptions, EventsOptions, EventsResult, ToolMap, WaitForEventOptions, } from "./app-client.js";
18
18
  export type { AgentEndpoint, ErrorType, ToolDescriptor } from "@appduct/shared";
19
- //# sourceMappingURL=index.d.ts.map