@oh-hai/cli 0.1.0-beta.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 (110) hide show
  1. package/README.md +154 -0
  2. package/dist/auth/file-backend.d.ts +16 -0
  3. package/dist/auth/file-backend.js +98 -0
  4. package/dist/auth/file-backend.js.map +1 -0
  5. package/dist/auth/keychain.d.ts +54 -0
  6. package/dist/auth/keychain.js +232 -0
  7. package/dist/auth/keychain.js.map +1 -0
  8. package/dist/auth/resolve-token.d.ts +34 -0
  9. package/dist/auth/resolve-token.js +91 -0
  10. package/dist/auth/resolve-token.js.map +1 -0
  11. package/dist/auth/secure-write.d.ts +2 -0
  12. package/dist/auth/secure-write.js +30 -0
  13. package/dist/auth/secure-write.js.map +1 -0
  14. package/dist/auth/token-store.d.ts +104 -0
  15. package/dist/auth/token-store.js +208 -0
  16. package/dist/auth/token-store.js.map +1 -0
  17. package/dist/cli.d.ts +16 -0
  18. package/dist/cli.js +238 -0
  19. package/dist/cli.js.map +1 -0
  20. package/dist/commands/agents.d.ts +2 -0
  21. package/dist/commands/agents.js +370 -0
  22. package/dist/commands/agents.js.map +1 -0
  23. package/dist/commands/ask.d.ts +2 -0
  24. package/dist/commands/ask.js +246 -0
  25. package/dist/commands/ask.js.map +1 -0
  26. package/dist/commands/context.d.ts +72 -0
  27. package/dist/commands/context.js +7 -0
  28. package/dist/commands/context.js.map +1 -0
  29. package/dist/commands/doctor.d.ts +2 -0
  30. package/dist/commands/doctor.js +237 -0
  31. package/dist/commands/doctor.js.map +1 -0
  32. package/dist/commands/flags.d.ts +25 -0
  33. package/dist/commands/flags.js +100 -0
  34. package/dist/commands/flags.js.map +1 -0
  35. package/dist/commands/handlers.d.ts +2 -0
  36. package/dist/commands/handlers.js +26 -0
  37. package/dist/commands/handlers.js.map +1 -0
  38. package/dist/commands/http.d.ts +8 -0
  39. package/dist/commands/http.js +19 -0
  40. package/dist/commands/http.js.map +1 -0
  41. package/dist/commands/inbox.d.ts +2 -0
  42. package/dist/commands/inbox.js +111 -0
  43. package/dist/commands/inbox.js.map +1 -0
  44. package/dist/commands/login.d.ts +2 -0
  45. package/dist/commands/login.js +272 -0
  46. package/dist/commands/login.js.map +1 -0
  47. package/dist/commands/logout.d.ts +2 -0
  48. package/dist/commands/logout.js +35 -0
  49. package/dist/commands/logout.js.map +1 -0
  50. package/dist/commands/messaging/await.d.ts +43 -0
  51. package/dist/commands/messaging/await.js +125 -0
  52. package/dist/commands/messaging/await.js.map +1 -0
  53. package/dist/commands/messaging/build.d.ts +46 -0
  54. package/dist/commands/messaging/build.js +66 -0
  55. package/dist/commands/messaging/build.js.map +1 -0
  56. package/dist/commands/messaging/http.d.ts +22 -0
  57. package/dist/commands/messaging/http.js +270 -0
  58. package/dist/commands/messaging/http.js.map +1 -0
  59. package/dist/commands/messaging/identity.d.ts +29 -0
  60. package/dist/commands/messaging/identity.js +63 -0
  61. package/dist/commands/messaging/identity.js.map +1 -0
  62. package/dist/commands/messaging/shared.d.ts +53 -0
  63. package/dist/commands/messaging/shared.js +135 -0
  64. package/dist/commands/messaging/shared.js.map +1 -0
  65. package/dist/commands/messaging/state.d.ts +26 -0
  66. package/dist/commands/messaging/state.js +82 -0
  67. package/dist/commands/messaging/state.js.map +1 -0
  68. package/dist/commands/messaging/validate.d.ts +40 -0
  69. package/dist/commands/messaging/validate.js +193 -0
  70. package/dist/commands/messaging/validate.js.map +1 -0
  71. package/dist/commands/messaging/wire.d.ts +133 -0
  72. package/dist/commands/messaging/wire.js +16 -0
  73. package/dist/commands/messaging/wire.js.map +1 -0
  74. package/dist/commands/notify.d.ts +2 -0
  75. package/dist/commands/notify.js +68 -0
  76. package/dist/commands/notify.js.map +1 -0
  77. package/dist/commands/registry.d.ts +14 -0
  78. package/dist/commands/registry.js +144 -0
  79. package/dist/commands/registry.js.map +1 -0
  80. package/dist/commands/stub.d.ts +1 -0
  81. package/dist/commands/stub.js +9 -0
  82. package/dist/commands/stub.js.map +1 -0
  83. package/dist/commands/task.d.ts +2 -0
  84. package/dist/commands/task.js +223 -0
  85. package/dist/commands/task.js.map +1 -0
  86. package/dist/commands/whoami.d.ts +6 -0
  87. package/dist/commands/whoami.js +90 -0
  88. package/dist/commands/whoami.js.map +1 -0
  89. package/dist/config-file.d.ts +38 -0
  90. package/dist/config-file.js +233 -0
  91. package/dist/config-file.js.map +1 -0
  92. package/dist/config.d.ts +64 -0
  93. package/dist/config.js +97 -0
  94. package/dist/config.js.map +1 -0
  95. package/dist/envelope.d.ts +25 -0
  96. package/dist/envelope.js +41 -0
  97. package/dist/envelope.js.map +1 -0
  98. package/dist/exit-codes.d.ts +51 -0
  99. package/dist/exit-codes.js +57 -0
  100. package/dist/exit-codes.js.map +1 -0
  101. package/dist/help.d.ts +1 -0
  102. package/dist/help.js +17 -0
  103. package/dist/help.js.map +1 -0
  104. package/dist/terminal.d.ts +5 -0
  105. package/dist/terminal.js +18 -0
  106. package/dist/terminal.js.map +1 -0
  107. package/dist/version.d.ts +8 -0
  108. package/dist/version.js +23 -0
  109. package/dist/version.js.map +1 -0
  110. package/package.json +38 -0
@@ -0,0 +1,18 @@
1
+ // Terminal-output safety. Any string that originated from the Hub — a `user_code`, a verification
2
+ // URL, or a stored `agent id` the Hub chose during device-code login — must be stripped of control
3
+ // characters before it is echoed to the user's terminal, so a malicious/compromised Hub cannot
4
+ // inject ANSI/escape sequences. Shared by `login` (prompts) and `whoami` (a discovered agent id).
5
+ /** Strip terminal control characters (C0/C1 + DEL) from a server-supplied string before echoing it.
6
+ * Built by code point to avoid a control-char regex literal. The raw value is kept for lookups and
7
+ * the `--json` envelope (JSON.stringify escapes control characters) — only terminal output is
8
+ * sanitized. */
9
+ export function sanitizeForTerminal(value) {
10
+ let out = "";
11
+ for (const ch of value) {
12
+ const code = ch.codePointAt(0) ?? 0;
13
+ if (code > 0x1f && code !== 0x7f && !(code >= 0x80 && code <= 0x9f))
14
+ out += ch;
15
+ }
16
+ return out;
17
+ }
18
+ //# sourceMappingURL=terminal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../src/terminal.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,mGAAmG;AACnG,+FAA+F;AAC/F,kGAAkG;AAElG;;;iBAGiB;AACjB,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC;YAAE,GAAG,IAAI,EAAE,CAAC;IACjF,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,8 @@
1
+ /** The MA2H wire protocol version this CLI targets (docs/specs/cli.md §3). */
2
+ export declare const MA2H_WIRE_VERSION = "v0.3";
3
+ /**
4
+ * The CLI's own version, read from package.json relative to this module. Works both when
5
+ * run from `dist/version.js` and from `src/version.ts` via tsx — both sit one level under
6
+ * the package root, so `../package.json` resolves to the manifest either way.
7
+ */
8
+ export declare function cliVersion(): string;
@@ -0,0 +1,23 @@
1
+ // CLI version (read from the package manifest at runtime) and the MA2H wire version
2
+ // the tool speaks. Kept separate so `--version` works without pulling in the command layer.
3
+ import { readFileSync } from "node:fs";
4
+ import { fileURLToPath } from "node:url";
5
+ /** The MA2H wire protocol version this CLI targets (docs/specs/cli.md §3). */
6
+ export const MA2H_WIRE_VERSION = "v0.3";
7
+ /**
8
+ * The CLI's own version, read from package.json relative to this module. Works both when
9
+ * run from `dist/version.js` and from `src/version.ts` via tsx — both sit one level under
10
+ * the package root, so `../package.json` resolves to the manifest either way.
11
+ */
12
+ export function cliVersion() {
13
+ try {
14
+ const manifestUrl = new URL("../package.json", import.meta.url);
15
+ const raw = readFileSync(fileURLToPath(manifestUrl), "utf8");
16
+ const parsed = JSON.parse(raw);
17
+ return typeof parsed.version === "string" ? parsed.version : "0.0.0";
18
+ }
19
+ catch {
20
+ return "0.0.0";
21
+ }
22
+ }
23
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,4FAA4F;AAE5F,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,8EAA8E;AAC9E,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAExC;;;;GAIG;AACH,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChE,MAAM,GAAG,GAAG,YAAY,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA0B,CAAC;QACxD,OAAO,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC"}
package/package.json ADDED
@@ -0,0 +1,38 @@
1
+ {
2
+ "name": "@oh-hai/cli",
3
+ "version": "0.1.0-beta.0",
4
+ "description": "OH HAI — the `oh-hai` CLI: reach a human from your agent through an MA2H Hub (notify / ask / task). Placement + machine contract; command bodies land in #106–#108.",
5
+ "license": "UNLICENSED",
6
+ "type": "module",
7
+ "bin": {
8
+ "oh-hai": "dist/cli.js"
9
+ },
10
+ "exports": {
11
+ ".": "./dist/cli.js"
12
+ },
13
+ "types": "./dist/cli.d.ts",
14
+ "files": [
15
+ "dist",
16
+ "README.md"
17
+ ],
18
+ "engines": {
19
+ "node": ">=24"
20
+ },
21
+ "publishConfig": {
22
+ "access": "public"
23
+ },
24
+ "dependencies": {
25
+ "@oh-hai/ma2h-core": "0.1.0"
26
+ },
27
+ "devDependencies": {
28
+ "@types/node": "^26.1.0",
29
+ "tsx": "^4.19.2",
30
+ "typescript": "^6.0.3"
31
+ },
32
+ "scripts": {
33
+ "typecheck": "tsc --noEmit",
34
+ "build": "tsc -p tsconfig.build.json",
35
+ "start": "node --import tsx --disable-warning=ExperimentalWarning src/cli.ts",
36
+ "test": "node --import tsx --disable-warning=ExperimentalWarning --test-concurrency=4 --test \"test/**/*.test.ts\""
37
+ }
38
+ }