pinecall 0.4.0 → 0.6.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 (213) hide show
  1. package/README.md +14 -6
  2. package/dist/cli/agent-files.d.ts +6 -0
  3. package/dist/cli/agent-files.d.ts.map +1 -0
  4. package/dist/cli/agent-files.js +40 -0
  5. package/dist/cli/agent-files.js.map +1 -0
  6. package/dist/cli/agent-lines.d.ts +23 -0
  7. package/dist/cli/agent-lines.d.ts.map +1 -0
  8. package/dist/cli/agent-lines.js +109 -0
  9. package/dist/cli/agent-lines.js.map +1 -0
  10. package/dist/cli/agent-processes.d.ts +13 -0
  11. package/dist/cli/agent-processes.d.ts.map +1 -0
  12. package/dist/cli/agent-processes.js +34 -0
  13. package/dist/cli/agent-processes.js.map +1 -0
  14. package/dist/cli/agent-versions.d.ts +12 -0
  15. package/dist/cli/agent-versions.d.ts.map +1 -0
  16. package/dist/cli/agent-versions.js +70 -0
  17. package/dist/cli/agent-versions.js.map +1 -0
  18. package/dist/cli/agent.d.ts +77 -0
  19. package/dist/cli/agent.d.ts.map +1 -0
  20. package/dist/cli/agent.js +186 -0
  21. package/dist/cli/agent.js.map +1 -0
  22. package/dist/cli/chat.d.ts +2 -2
  23. package/dist/cli/chat.d.ts.map +1 -1
  24. package/dist/cli/chat.js +12 -24
  25. package/dist/cli/chat.js.map +1 -1
  26. package/dist/cli/client-for.d.ts +6 -0
  27. package/dist/cli/client-for.d.ts.map +1 -0
  28. package/dist/cli/client-for.js +7 -0
  29. package/dist/cli/client-for.js.map +1 -0
  30. package/dist/cli/connected.d.ts +4 -4
  31. package/dist/cli/connected.d.ts.map +1 -1
  32. package/dist/cli/connected.js +2 -2
  33. package/dist/cli/connected.js.map +1 -1
  34. package/dist/cli/dotenv.d.ts +24 -0
  35. package/dist/cli/dotenv.d.ts.map +1 -0
  36. package/dist/cli/dotenv.js +69 -0
  37. package/dist/cli/dotenv.js.map +1 -0
  38. package/dist/cli/env.d.ts +21 -37
  39. package/dist/cli/env.d.ts.map +1 -1
  40. package/dist/cli/env.js +35 -68
  41. package/dist/cli/env.js.map +1 -1
  42. package/dist/cli/eval.d.ts +2 -1
  43. package/dist/cli/eval.d.ts.map +1 -1
  44. package/dist/cli/eval.js +5 -4
  45. package/dist/cli/eval.js.map +1 -1
  46. package/dist/cli/groups.d.ts.map +1 -1
  47. package/dist/cli/groups.js +0 -1
  48. package/dist/cli/groups.js.map +1 -1
  49. package/dist/cli/index.d.ts.map +1 -1
  50. package/dist/cli/index.js +25 -30
  51. package/dist/cli/index.js.map +1 -1
  52. package/dist/cli/lexicon.d.ts +14 -0
  53. package/dist/cli/lexicon.d.ts.map +1 -0
  54. package/dist/cli/lexicon.js +123 -0
  55. package/dist/cli/lexicon.js.map +1 -0
  56. package/dist/cli/line.js +6 -6
  57. package/dist/cli/line.js.map +1 -1
  58. package/dist/cli/linking.d.ts +13 -0
  59. package/dist/cli/linking.d.ts.map +1 -0
  60. package/dist/cli/linking.js +103 -0
  61. package/dist/cli/linking.js.map +1 -0
  62. package/dist/cli/load.js +1 -1
  63. package/dist/cli/load.js.map +1 -1
  64. package/dist/cli/login.d.ts +5 -11
  65. package/dist/cli/login.d.ts.map +1 -1
  66. package/dist/cli/login.js +31 -140
  67. package/dist/cli/login.js.map +1 -1
  68. package/dist/cli/memory-policy.d.ts +9 -0
  69. package/dist/cli/memory-policy.d.ts.map +1 -0
  70. package/dist/cli/memory-policy.js +79 -0
  71. package/dist/cli/memory-policy.js.map +1 -0
  72. package/dist/cli/memory.d.ts.map +1 -1
  73. package/dist/cli/memory.js +9 -1
  74. package/dist/cli/memory.js.map +1 -1
  75. package/dist/cli/pipeline.d.ts +2 -0
  76. package/dist/cli/pipeline.d.ts.map +1 -1
  77. package/dist/cli/pipeline.js +18 -76
  78. package/dist/cli/pipeline.js.map +1 -1
  79. package/dist/cli/serve/server.d.ts +1 -1
  80. package/dist/cli/serve/server.d.ts.map +1 -1
  81. package/dist/cli/serve/server.js +3 -2
  82. package/dist/cli/serve/server.js.map +1 -1
  83. package/dist/cli/serve/sidecar.js +1 -1
  84. package/dist/cli/serve/sidecar.js.map +1 -1
  85. package/dist/cli/serve.d.ts +1 -1
  86. package/dist/cli/serve.d.ts.map +1 -1
  87. package/dist/cli/serve.js +5 -5
  88. package/dist/cli/serve.js.map +1 -1
  89. package/dist/cli/signed-in.d.ts +36 -0
  90. package/dist/cli/signed-in.d.ts.map +1 -0
  91. package/dist/cli/signed-in.js +60 -0
  92. package/dist/cli/signed-in.js.map +1 -0
  93. package/dist/cli/simulate.d.ts.map +1 -1
  94. package/dist/cli/simulate.js +7 -6
  95. package/dist/cli/simulate.js.map +1 -1
  96. package/dist/cli/{run-console.d.ts → start-console.d.ts} +2 -2
  97. package/dist/cli/start-console.d.ts.map +1 -0
  98. package/dist/cli/{run-console.js → start-console.js} +3 -3
  99. package/dist/cli/start-console.js.map +1 -0
  100. package/dist/cli/{run-screens.d.ts → start-screens.d.ts} +2 -2
  101. package/dist/cli/start-screens.d.ts.map +1 -0
  102. package/dist/cli/{run-screens.js → start-screens.js} +24 -5
  103. package/dist/cli/start-screens.js.map +1 -0
  104. package/dist/cli/{run.d.ts → start.d.ts} +3 -3
  105. package/dist/cli/start.d.ts.map +1 -0
  106. package/dist/cli/{run.js → start.js} +31 -35
  107. package/dist/cli/start.js.map +1 -0
  108. package/dist/cli/supervise.d.ts +1 -1
  109. package/dist/cli/supervise.d.ts.map +1 -1
  110. package/dist/cli/supervise.js +1 -1
  111. package/dist/cli/supervise.js.map +1 -1
  112. package/dist/cli/testing/gateway.d.ts +3 -0
  113. package/dist/cli/testing/gateway.d.ts.map +1 -1
  114. package/dist/cli/testing/gateway.js +2 -4
  115. package/dist/cli/testing/gateway.js.map +1 -1
  116. package/dist/cli/tuned.d.ts +8 -0
  117. package/dist/cli/tuned.d.ts.map +1 -0
  118. package/dist/cli/tuned.js +66 -0
  119. package/dist/cli/tuned.js.map +1 -0
  120. package/dist/cli/ui/chatting.d.ts +1 -1
  121. package/dist/cli/ui/chatting.d.ts.map +1 -1
  122. package/dist/cli/ui/chatting.js +11 -10
  123. package/dist/cli/ui/chatting.js.map +1 -1
  124. package/dist/cli/ui/console/assets/index-DmN15Axn.css +1 -0
  125. package/dist/cli/ui/console/assets/index-aGyMCQUH.js +106 -0
  126. package/dist/cli/ui/console/index.html +2 -2
  127. package/dist/cli/ui/doors.d.ts +2 -2
  128. package/dist/cli/ui/doors.d.ts.map +1 -1
  129. package/dist/cli/ui/doors.js +2 -2
  130. package/dist/cli/ui/doors.js.map +1 -1
  131. package/dist/cli/ui/drifting.d.ts +1 -1
  132. package/dist/cli/ui/drifting.js +1 -1
  133. package/dist/cli/ui/knowing.d.ts +1 -1
  134. package/dist/cli/ui/knowing.js +3 -3
  135. package/dist/cli/ui/knowing.js.map +1 -1
  136. package/dist/cli/ui/promoting.d.ts +1 -1
  137. package/dist/cli/ui/promoting.js +1 -1
  138. package/dist/cli/ui/remembering.d.ts +1 -1
  139. package/dist/cli/ui/remembering.js +3 -3
  140. package/dist/cli/ui/remembering.js.map +1 -1
  141. package/dist/cli/ui/reproducing.d.ts +1 -1
  142. package/dist/cli/ui/reproducing.js +1 -1
  143. package/dist/cli/ui/simulating.d.ts +1 -1
  144. package/dist/cli/ui/simulating.js +4 -4
  145. package/dist/cli/ui/simulating.js.map +1 -1
  146. package/dist/cli/ui/testing.d.ts +1 -1
  147. package/dist/cli/ui/testing.js +3 -3
  148. package/dist/cli/ui/testing.js.map +1 -1
  149. package/dist/cli/whoami.d.ts +6 -2
  150. package/dist/cli/whoami.d.ts.map +1 -1
  151. package/dist/cli/whoami.js +6 -5
  152. package/dist/cli/whoami.js.map +1 -1
  153. package/dist/cli/world.d.ts +14 -24
  154. package/dist/cli/world.d.ts.map +1 -1
  155. package/dist/cli/world.js +21 -36
  156. package/dist/cli/world.js.map +1 -1
  157. package/dist/client/agent.d.ts +2 -1
  158. package/dist/client/agent.d.ts.map +1 -1
  159. package/dist/client/agent.js +3 -2
  160. package/dist/client/agent.js.map +1 -1
  161. package/dist/client/client.d.ts +17 -2
  162. package/dist/client/client.d.ts.map +1 -1
  163. package/dist/client/client.js +44 -2
  164. package/dist/client/client.js.map +1 -1
  165. package/dist/client/connection.d.ts +3 -0
  166. package/dist/client/connection.d.ts.map +1 -1
  167. package/dist/client/connection.js +2 -1
  168. package/dist/client/connection.js.map +1 -1
  169. package/dist/client/index.d.ts +1 -0
  170. package/dist/client/index.d.ts.map +1 -1
  171. package/dist/client/observe.d.ts +3 -0
  172. package/dist/client/observe.d.ts.map +1 -1
  173. package/dist/client/observe.js +2 -1
  174. package/dist/client/observe.js.map +1 -1
  175. package/dist/client/signed.d.ts +15 -0
  176. package/dist/client/signed.d.ts.map +1 -0
  177. package/dist/client/signed.js +19 -0
  178. package/dist/client/signed.js.map +1 -0
  179. package/dist/client/testing/gateway.d.ts +5 -0
  180. package/dist/client/testing/gateway.d.ts.map +1 -1
  181. package/dist/client/testing/gateway.js +10 -0
  182. package/dist/client/testing/gateway.js.map +1 -1
  183. package/dist/views/render.d.ts +1 -1
  184. package/dist/views/render.js +1 -1
  185. package/package.json +2 -2
  186. package/dist/cli/config.d.ts +0 -16
  187. package/dist/cli/config.d.ts.map +0 -1
  188. package/dist/cli/config.js +0 -125
  189. package/dist/cli/config.js.map +0 -1
  190. package/dist/cli/credentials.d.ts +0 -41
  191. package/dist/cli/credentials.d.ts.map +0 -1
  192. package/dist/cli/credentials.js +0 -98
  193. package/dist/cli/credentials.js.map +0 -1
  194. package/dist/cli/gateway.d.ts +0 -12
  195. package/dist/cli/gateway.d.ts.map +0 -1
  196. package/dist/cli/gateway.js +0 -67
  197. package/dist/cli/gateway.js.map +0 -1
  198. package/dist/cli/keys.d.ts +0 -28
  199. package/dist/cli/keys.d.ts.map +0 -1
  200. package/dist/cli/keys.js +0 -137
  201. package/dist/cli/keys.js.map +0 -1
  202. package/dist/cli/profiles.d.ts +0 -122
  203. package/dist/cli/profiles.d.ts.map +0 -1
  204. package/dist/cli/profiles.js +0 -312
  205. package/dist/cli/profiles.js.map +0 -1
  206. package/dist/cli/run-console.d.ts.map +0 -1
  207. package/dist/cli/run-console.js.map +0 -1
  208. package/dist/cli/run-screens.d.ts.map +0 -1
  209. package/dist/cli/run-screens.js.map +0 -1
  210. package/dist/cli/run.d.ts.map +0 -1
  211. package/dist/cli/run.js.map +0 -1
  212. package/dist/cli/ui/console/assets/index-DhcpHPdk.js +0 -102
  213. package/dist/cli/ui/console/assets/index-iylvEP0_.css +0 -1
package/dist/cli/env.d.ts CHANGED
@@ -1,56 +1,40 @@
1
1
  /** Where the CLI is pointed and what opens the door: the one place that decides both, for every verb. */
2
- import { type ProjectOrg, type World } from "./profiles.js";
3
- /** Pinecall's own cloud: where every verb goes until `pinecall gateway <url>` says otherwise. */
2
+ import type { World } from "../client/signed.js";
3
+ /** Pinecall's own cloud: where every verb goes when nothing names another gateway. */
4
4
  export declare const CLOUD_URL = "https://box.pinecall.io";
5
- /** The gateway a developer runs on their own machine: what `pinecall gateway` is for. */
6
- export declare const OWN_BOX_URL = "http://localhost:8080";
7
- /** Where the key came from, so a verb can say it and a person can check it without grepping. */
8
- export type Source = "profile" | "none";
9
- /** What the resolution found: the gateway, the key if there is one, and where the key came from. */
5
+ /** The key a verb knocks with and the gateway it knocks at: the project's, as any app reads its own. */
6
+ export declare const KEY_VARIABLE = "PINECALL_KEY";
7
+ export declare const URL_VARIABLE = "PINECALL_URL";
8
+ /** What the resolution found: the gateway, the key if there is one, where it was read, the world asked. */
10
9
  export interface Found {
11
10
  url: string;
12
11
  apiKey: string | undefined;
13
- source: Source;
14
- /** The package.json that chose the profile, when one did: printed, so nobody wonders why. */
15
- project?: ProjectOrg;
16
- /** The profile's name, when a project chose it. */
17
- profile?: string;
18
- /** `production` when `--prod` asked for that world's key for this one command. */
12
+ /** Where the key was read: `the environment`, or the `.env` it came from, as a path from here. */
13
+ source: string;
14
+ /** `production` when `--prod` named that world for this one command. */
19
15
  world?: World;
20
16
  }
21
17
  /** A gateway with the key in hand: what a verb holds after `theDoor` answered. */
22
18
  export interface Open {
23
19
  url: string;
24
20
  apiKey: string;
25
- source: Source;
26
- project?: ProjectOrg;
27
- profile?: string;
21
+ source: string;
28
22
  world?: World;
29
23
  }
30
24
  /**
31
- * Which gateway and which key: one profile, and there is nothing else.
25
+ * Which gateway and which key: the project's, the way every app reads its own secrets.
32
26
  *
33
- * There used to be four files and three variables answering these two questions, in an order
34
- * nobody was ever told — and the one that won was the one you had not chosen. `pinecall login`
35
- * kept a key, an export from another project beat it, and a verb registered into another org in
36
- * another world with every line reading exactly the same.
37
- *
38
- * Now: the profile `--profile` names; else, inside a project whose package.json says
39
- * `"pinecall": { "org": "<slug>" }`, that org's profile; else the active one. `pinecall config`
40
- * prints which. A
41
- * machine with no browser writes one off stdin — `pinecall login --key-stdin` — so a key is never
42
- * in an environment every child process and every `ps` can read. `PINECALL_HOME` says where the
43
- * file is, and that is the only variable this file knows about.
27
+ * `PINECALL_KEY` and `PINECALL_URL` from the process's environment — a server's secrets, a CI job's
28
+ * — else from the nearest `.env` up from where the verb runs, which `pinecall link` wrote: each
29
+ * project folder is the org it was linked to, and nothing is switched. The gateway is the cloud's
30
+ * unless one of the two names another. v1's `PINECALL_API_KEY` is never read: a name another CLI on
31
+ * the same machine exports was how a key of the wrong org was once handed over in silence.
44
32
  */
45
- export declare function doorFrom(env?: NodeJS.ProcessEnv, home?: string, profile?: string | undefined, from?: string, world?: World | undefined): Found;
33
+ export declare function doorFrom(env?: NodeJS.ProcessEnv, from?: string, world?: World | undefined): Found;
46
34
  /** The gateway a verb knocks at, or nothing once it has said why it cannot: every verb's first act. */
47
- export declare function theDoor(env?: NodeJS.ProcessEnv, err?: NodeJS.WritableStream): Open | undefined;
48
- /** What to say when this machine holds no key: the verb that fixes it, and where it would go. */
49
- export declare function noKey(url: string): string;
50
- /** What to say when the project names an org this machine holds no profile of. */
51
- export declare function notThisOrg(project: ProjectOrg): string;
52
- /** What to say when `--prod` asked a profile for a production key it does not hold. */
53
- export declare function noProductionKey(profile: string): string;
54
- /** The first line a verb that connects prints: which gateway, and where its key was found. */
35
+ export declare function theDoor(env?: NodeJS.ProcessEnv, err?: NodeJS.WritableStream, from?: string): Open | undefined;
36
+ /** What to say when there is no key here: the verb that writes one. */
37
+ export declare const NO_KEY = "no PINECALL_KEY here: `pinecall link` in the project's folder writes it to .env (a server keeps it in its secrets)";
38
+ /** The first line a verb that connects prints: which gateway, where its key was read, and the world asked. */
55
39
  export declare function doorLine(door: Open): string;
56
40
  //# sourceMappingURL=env.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/cli/env.ts"],"names":[],"mappings":"AAAA,yGAAyG;AAGzG,OAAO,EAAuE,KAAK,UAAU,EAAE,KAAK,KAAK,EAAE,MAAM,eAAe,CAAC;AAEjI,iGAAiG;AACjG,eAAO,MAAM,SAAS,4BAA4B,CAAC;AAEnD,yFAAyF;AACzF,eAAO,MAAM,WAAW,0BAA0B,CAAC;AAEnD,gGAAgG;AAChG,MAAM,MAAM,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;AAExC,oGAAoG;AACpG,MAAM,WAAW,KAAK;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,6FAA6F;IAC7F,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kFAAkF;IAClF,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,kFAAkF;AAClF,MAAM,WAAW,IAAI;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,QAAQ,CACtB,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,IAAI,GAAE,MAA0B,EAChC,OAAO,GAAE,MAAM,GAAG,SAA8B,EAChD,IAAI,GAAE,MAAsB,EAC5B,KAAK,GAAE,KAAK,GAAG,SAA4B,GAC1C,KAAK,CAqBP;AAOD,uGAAuG;AACvG,wBAAgB,OAAO,CACrB,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,GAAG,GAAE,MAAM,CAAC,cAA+B,GAC1C,IAAI,GAAG,SAAS,CAYlB;AAED,iGAAiG;AACjG,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKzC;AAED,kFAAkF;AAClF,wBAAgB,UAAU,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAMtD;AAED,uFAAuF;AACvF,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,8FAA8F;AAC9F,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAM3C"}
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/cli/env.ts"],"names":[],"mappings":"AAAA,yGAAyG;AAIzG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAIjD,sFAAsF;AACtF,eAAO,MAAM,SAAS,4BAA4B,CAAC;AAEnD,wGAAwG;AACxG,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAC3C,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAE3C,2GAA2G;AAC3G,MAAM,WAAW,KAAK;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,kGAAkG;IAClG,MAAM,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,kFAAkF;AAClF,MAAM,WAAW,IAAI;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CACtB,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,IAAI,GAAE,MAAsB,EAC5B,KAAK,GAAE,KAAK,GAAG,SAA4B,GAC1C,KAAK,CAgBP;AAED,uGAAuG;AACvG,wBAAgB,OAAO,CACrB,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,GAAG,GAAE,MAAM,CAAC,cAA+B,EAC3C,IAAI,GAAE,MAAsB,GAC3B,IAAI,GAAG,SAAS,CAQlB;AAED,uEAAuE;AACvE,eAAO,MAAM,MAAM,uHACmG,CAAC;AAEvH,8GAA8G;AAC9G,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAG3C"}
package/dist/cli/env.js CHANGED
@@ -1,87 +1,54 @@
1
1
  /** Where the CLI is pointed and what opens the door: the one place that decides both, for every verb. */
2
- import { pinecallHome } from "./credentials.js";
3
- import { choose, chosenGateway, readConfig, theChosenProfile, theChosenWorld } from "./profiles.js";
4
- /** Pinecall's own cloud: where every verb goes until `pinecall gateway <url>` says otherwise. */
2
+ import { relative } from "node:path";
3
+ import { nearestDotenv, readDotenv } from "./dotenv.js";
4
+ import { theChosenWorld } from "./world.js";
5
+ /** Pinecall's own cloud: where every verb goes when nothing names another gateway. */
5
6
  export const CLOUD_URL = "https://box.pinecall.io";
6
- /** The gateway a developer runs on their own machine: what `pinecall gateway` is for. */
7
- export const OWN_BOX_URL = "http://localhost:8080";
7
+ /** The key a verb knocks with and the gateway it knocks at: the project's, as any app reads its own. */
8
+ export const KEY_VARIABLE = "PINECALL_KEY";
9
+ export const URL_VARIABLE = "PINECALL_URL";
8
10
  /**
9
- * Which gateway and which key: one profile, and there is nothing else.
11
+ * Which gateway and which key: the project's, the way every app reads its own secrets.
10
12
  *
11
- * There used to be four files and three variables answering these two questions, in an order
12
- * nobody was ever told — and the one that won was the one you had not chosen. `pinecall login`
13
- * kept a key, an export from another project beat it, and a verb registered into another org in
14
- * another world with every line reading exactly the same.
15
- *
16
- * Now: the profile `--profile` names; else, inside a project whose package.json says
17
- * `"pinecall": { "org": "<slug>" }`, that org's profile; else the active one. `pinecall config`
18
- * prints which. A
19
- * machine with no browser writes one off stdin — `pinecall login --key-stdin` — so a key is never
20
- * in an environment every child process and every `ps` can read. `PINECALL_HOME` says where the
21
- * file is, and that is the only variable this file knows about.
13
+ * `PINECALL_KEY` and `PINECALL_URL` from the process's environment — a server's secrets, a CI job's
14
+ * — else from the nearest `.env` up from where the verb runs, which `pinecall link` wrote: each
15
+ * project folder is the org it was linked to, and nothing is switched. The gateway is the cloud's
16
+ * unless one of the two names another. v1's `PINECALL_API_KEY` is never read: a name another CLI on
17
+ * the same machine exports was how a key of the wrong org was once handed over in silence.
22
18
  */
23
- export function doorFrom(env = process.env, home = pinecallHome(env), profile = theChosenProfile(), from = process.cwd(), world = theChosenWorld()) {
24
- const config = readConfig(home);
25
- const choice = choose(profile, config, from, world);
26
- const held = choice.name === undefined ? undefined : config.profiles[choice.name];
27
- // `--prod` takes the production key the login kept beside the sandbox one, for this command
28
- // only: the profile's key in hand is not touched, so the next command is in the sandbox again.
29
- const chosen = held === undefined || world === undefined ? held : { ...held, key: keyIn(held, world) };
30
- // A project that names an org this machine holds no profile of is refused, never handed the
31
- // active profile: that one is another org's, and running there is the accident this prevents.
32
- if (chosen === undefined && choice.project !== undefined) {
33
- return { url: chosenGateway(home) ?? CLOUD_URL, apiKey: undefined, source: "none", project: choice.project };
34
- }
35
- // No profile yet: the gateway is whichever this machine was pointed at, and the cloud until
36
- // somebody points it elsewhere. A localhost default sent every first verb at a box that is not
37
- // running, and the refusal read as the CLI being broken.
38
- if (chosen === undefined)
39
- return { url: chosenGateway(home) ?? CLOUD_URL, apiKey: undefined, source: "none" };
40
- const asked = world === undefined ? {} : { world, profile: choice.name };
41
- if (choice.project !== undefined) {
42
- return { url: chosen.url, apiKey: chosen.key, source: "profile", project: choice.project, ...asked, profile: choice.name };
19
+ export function doorFrom(env = process.env, from = process.cwd(), world = theChosenWorld()) {
20
+ const asked = world === undefined ? {} : { world };
21
+ const exported = env[KEY_VARIABLE];
22
+ if (exported !== undefined && exported !== "") {
23
+ return { url: env[URL_VARIABLE] ?? CLOUD_URL, apiKey: exported, source: "the environment", ...asked };
43
24
  }
44
- return { url: chosen.url, apiKey: chosen.key, source: "profile", ...asked };
45
- }
46
- /** A profile's key in one world: the one the login kept, or the one in hand when it opens that world. */
47
- function keyIn(profile, world) {
48
- return profile.keys?.[world] ?? (profile.env === world ? profile.key : "");
25
+ const file = nearestDotenv(from);
26
+ if (file === undefined)
27
+ return { url: env[URL_VARIABLE] ?? CLOUD_URL, apiKey: undefined, source: "nowhere", ...asked };
28
+ const values = readDotenv(file);
29
+ const key = values[KEY_VARIABLE];
30
+ return {
31
+ url: env[URL_VARIABLE] ?? values[URL_VARIABLE] ?? CLOUD_URL,
32
+ apiKey: key === "" ? undefined : key,
33
+ source: relative(from, file) || file,
34
+ ...asked,
35
+ };
49
36
  }
50
37
  /** The gateway a verb knocks at, or nothing once it has said why it cannot: every verb's first act. */
51
- export function theDoor(env = process.env, err = process.stderr) {
52
- const found = doorFrom(env);
38
+ export function theDoor(env = process.env, err = process.stderr, from = process.cwd()) {
39
+ const found = doorFrom(env, from);
53
40
  if (found.apiKey === undefined) {
54
- err.write(`${found.project === undefined ? noKey(found.url) : notThisOrg(found.project)}\n`);
55
- return undefined;
56
- }
57
- if (found.apiKey === "") {
58
- err.write(`${noProductionKey(found.profile ?? "this profile")}\n`);
41
+ err.write(`${NO_KEY}\n`);
59
42
  return undefined;
60
43
  }
61
44
  const { apiKey, ...rest } = found;
62
45
  return { ...rest, apiKey };
63
46
  }
64
- /** What to say when this machine holds no key: the verb that fixes it, and where it would go. */
65
- export function noKey(url) {
66
- return (`not signed in to ${url}: \`pinecall login\`, \`pinecall gateway <url>\` for another gateway,`
67
- + " or `pinecall use <profile>` for one already kept (`pinecall config` lists them)");
68
- }
69
- /** What to say when the project names an org this machine holds no profile of. */
70
- export function notThisOrg(project) {
71
- return (`this project is org ${project.org} (${project.file}), and this machine holds no profile of it:`
72
- + ` \`pinecall login\` as a member of ${project.org}, or \`--profile <name>\` for one already kept`
73
- + " (`pinecall config` lists them)");
74
- }
75
- /** What to say when `--prod` asked a profile for a production key it does not hold. */
76
- export function noProductionKey(profile) {
77
- return `--prod asks for ${profile}'s production key, and it holds none: \`pinecall login\` again keeps both worlds' keys`;
78
- }
79
- /** The first line a verb that connects prints: which gateway, and where its key was found. */
47
+ /** What to say when there is no key here: the verb that writes one. */
48
+ export const NO_KEY = "no PINECALL_KEY here: `pinecall link` in the project's folder writes it to .env (a server keeps it in its secrets)";
49
+ /** The first line a verb that connects prints: which gateway, where its key was read, and the world asked. */
80
50
  export function doorLine(door) {
81
51
  const world = door.world === undefined ? "" : ` · ${door.world} (--prod)`;
82
- if (door.project !== undefined) {
83
- return `gateway ${door.url} · key from profile ${door.profile ?? door.project.org} · org ${door.project.org} from ${door.project.file}${world}`;
84
- }
85
52
  return `gateway ${door.url} · key from ${door.source}${world}`;
86
53
  }
87
54
  //# sourceMappingURL=env.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/cli/env.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/cli/env.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  /** `pinecall eval <call-id>`: ring 3 — one real call, re-evaluated by the runtime's code checks. */
2
2
  import type { Group } from "./groups.js";
3
+ import type { Door } from "./testing/gateway.js";
3
4
  /** One check's answer, as `POST /v1/evals/replay/{call}` writes it: three strings, no nesting. */
4
5
  export interface Verdict {
5
6
  check: string;
@@ -29,7 +30,7 @@ export declare function run(argv: string[], out?: NodeJS.WritableStream): Promis
29
30
  * every turn, which is why the request lives here rather than inside this verb's own argument
30
31
  * parsing: one door, one sentence when it refuses.
31
32
  */
32
- export declare function replayed(base: string, apiKey: string, call: string, said: Case): Promise<Answer>;
33
+ export declare function replayed(door: Door, call: string, said: Case): Promise<Answer>;
33
34
  /** The door this verb knocks at: the gateway's HTTP address and the call, nothing in a query. */
34
35
  export declare function replayUrl(base: string, call: string): string;
35
36
  /** The case as a person reads it: the call on top, then a line per check, aligned by name. */
@@ -1 +1 @@
1
- {"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../../src/cli/eval.ts"],"names":[],"mappings":"AAAA,oGAAoG;AAMpG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,kGAAkG;AAClG,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,4FAA4F;AAC5F,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,8FAA8F;AAC9F,MAAM,WAAW,IAAI;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,eAAO,MAAM,KAAK,EAAE,KAanB,CAAC;AAEF;;;GAGG;AACH,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,GAAE,MAAM,CAAC,cAA+B,GAAG,OAAO,CAAC,MAAM,CAAC,CAsBtG;AAED;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAStG;AAED,iGAAiG;AACjG,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,8FAA8F;AAC9F,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAQhD"}
1
+ {"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../../src/cli/eval.ts"],"names":[],"mappings":"AAAA,oGAAoG;AAOpG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAEjD,kGAAkG;AAClG,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,4FAA4F;AAC5F,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,8FAA8F;AAC9F,MAAM,WAAW,IAAI;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,eAAO,MAAM,KAAK,EAAE,KAanB,CAAC;AAEF;;;GAGG;AACH,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,GAAE,MAAM,CAAC,cAA+B,GAAG,OAAO,CAAC,MAAM,CAAC,CAsBtG;AAED;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CASpF;AAED,iGAAiG;AACjG,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,8FAA8F;AAC9F,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAQhD"}
package/dist/cli/eval.js CHANGED
@@ -1,6 +1,7 @@
1
1
  /** `pinecall eval <call-id>`: ring 3 — one real call, re-evaluated by the runtime's code checks. */
2
2
  import { readFile } from "node:fs/promises";
3
3
  import { parseArgs } from "node:util";
4
+ import { signed } from "../client/signed.js";
4
5
  import { theDoor } from "./env.js";
5
6
  export const group = {
6
7
  purpose: "ring 3: one real call, re-evaluated",
@@ -36,7 +37,7 @@ export async function run(argv, out = process.stdout) {
36
37
  return 2;
37
38
  let answer;
38
39
  try {
39
- answer = await replayed(door.url, door.apiKey, call, await theCase(values.policy));
40
+ answer = await replayed(door, call, await theCase(values.policy));
40
41
  }
41
42
  catch (refused) {
42
43
  process.stderr.write(`${refused instanceof Error ? refused.message : String(refused)}\n`);
@@ -50,10 +51,10 @@ export async function run(argv, out = process.stdout) {
50
51
  * every turn, which is why the request lives here rather than inside this verb's own argument
51
52
  * parsing: one door, one sentence when it refuses.
52
53
  */
53
- export async function replayed(base, apiKey, call, said) {
54
- const answered = await fetch(replayUrl(base, call), {
54
+ export async function replayed(door, call, said) {
55
+ const answered = await fetch(replayUrl(door.url, call), {
55
56
  method: "POST",
56
- headers: { authorization: `Bearer ${apiKey}`, "content-type": "application/json" },
57
+ headers: { ...signed(door.apiKey, door.world), "content-type": "application/json" },
57
58
  body: JSON.stringify(said),
58
59
  });
59
60
  const body = await answered.text();
@@ -1 +1 @@
1
- {"version":3,"file":"eval.js","sourceRoot":"","sources":["../../src/cli/eval.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eval.js","sourceRoot":"","sources":["../../src/cli/eval.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"groups.d.ts","sourceRoot":"","sources":["../../src/cli/groups.ts"],"names":[],"mappings":"AAAA,mGAAmG;AAEnG,2FAA2F;AAC3F,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,2FAA2F;IAC3F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;CAC/C;AAED,2FAA2F;AAC3F,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAI1D;AAMD,8FAA8F;AAC9F,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAS1C,CAAC;AAEF,gGAAgG;AAChG,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,yFAAyF;AACzF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,cAAc,GAAG,KAAK,CAQ7F"}
1
+ {"version":3,"file":"groups.d.ts","sourceRoot":"","sources":["../../src/cli/groups.ts"],"names":[],"mappings":"AAAA,mGAAmG;AAEnG,2FAA2F;AAC3F,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,2FAA2F;IAC3F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;CAC/C;AAED,2FAA2F;AAC3F,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAI1D;AAMD,8FAA8F;AAC9F,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAQ1C,CAAC;AAEF,gGAAgG;AAChG,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,yFAAyF;AACzF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,cAAc,GAAG,KAAK,CAQ7F"}
@@ -18,7 +18,6 @@ export const PLANNED = {
18
18
  costs: "what the calls cost, by agent, model or channel",
19
19
  call: "the agent dials a number, for real",
20
20
  tokens: "mint a browser token for a web call",
21
- agents: "list | show the agents this org has registered",
22
21
  deploy: "put this app on a box and keep it there",
23
22
  };
24
23
  /** The line a planned group prints instead of doing anything: the verb, and what it will be. */
@@ -1 +1 @@
1
- {"version":3,"file":"groups.js","sourceRoot":"","sources":["../../src/cli/groups.ts"],"names":[],"mappings":"AAAA,mGAAmG;AAUnG,2FAA2F;AAC3F,MAAM,UAAU,OAAO,CAAC,IAAY,EAAE,KAAY;IAChD,MAAM,IAAI,GAAG,CAAC,YAAY,IAAI,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACrD,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;QAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACpE,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAChC,CAAC;AAED,iGAAiG;AACjG,+FAA+F;AAC/F,gGAAgG;AAChG,oEAAoE;AACpE,8FAA8F;AAC9F,MAAM,CAAC,MAAM,OAAO,GAA2B;IAC7C,GAAG,EAAE,wDAAwD;IAC7D,CAAC,EAAE,8DAA8D;IACjE,OAAO,EAAE,uDAAuD;IAChE,KAAK,EAAE,iDAAiD;IACxD,IAAI,EAAE,oCAAoC;IAC1C,MAAM,EAAE,qCAAqC;IAC7C,MAAM,EAAE,gDAAgD;IACxD,MAAM,EAAE,yCAAyC;CAClD,CAAC;AAEF,gGAAgG;AAChG,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,OAAe;IACvD,OAAO,GAAG,IAAI,sBAAsB,OAAO,EAAE,CAAC;AAChD,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,OAAe,EAAE,GAA0B;IACpF,OAAO;QACL,OAAO;QACP,GAAG;YACD,GAAG,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YAC7C,OAAO,CAAC,CAAC;QACX,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"groups.js","sourceRoot":"","sources":["../../src/cli/groups.ts"],"names":[],"mappings":"AAAA,mGAAmG;AAUnG,2FAA2F;AAC3F,MAAM,UAAU,OAAO,CAAC,IAAY,EAAE,KAAY;IAChD,MAAM,IAAI,GAAG,CAAC,YAAY,IAAI,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACrD,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;QAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACpE,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAChC,CAAC;AAED,iGAAiG;AACjG,+FAA+F;AAC/F,gGAAgG;AAChG,oEAAoE;AACpE,8FAA8F;AAC9F,MAAM,CAAC,MAAM,OAAO,GAA2B;IAC7C,GAAG,EAAE,wDAAwD;IAC7D,CAAC,EAAE,8DAA8D;IACjE,OAAO,EAAE,uDAAuD;IAChE,KAAK,EAAE,iDAAiD;IACxD,IAAI,EAAE,oCAAoC;IAC1C,MAAM,EAAE,qCAAqC;IAC7C,MAAM,EAAE,yCAAyC;CAClD,CAAC;AAEF,gGAAgG;AAChG,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,OAAe;IACvD,OAAO,GAAG,IAAI,sBAAsB,OAAO,EAAE,CAAC;AAChD,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,OAAe,EAAE,GAA0B;IACpF,OAAO;QACL,OAAO;QACP,GAAG;YACD,GAAG,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YAC7C,OAAO,CAAC,CAAC;QACX,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA,gGAAgG;AAKhG,OAAO,EAAkC,KAAK,KAAK,EAAE,MAAM,aAAa,CAAC;AAQzE,gGAAgG;AAChG,wBAAgB,UAAU,IAAI,MAAM,EAAE,CAErC;AAED,4FAA4F;AAC5F,wBAAgB,UAAU,IAAI,MAAM,EAAE,CAErC;AAED;;;GAGG;AACH,wBAAsB,IAAI,CACxB,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,GAAE,MAAM,CAAC,cAA+B,EAC3C,GAAG,GAAE,MAAM,CAAC,cAA+B,GAC1C,OAAO,CAAC,MAAM,CAAC,CA6BjB;AAID,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,cAA+B,GAAG,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,CAiCpH;AAED,qGAAqG;AACrG,wBAAgB,KAAK,IAAI,MAAM,CAmC9B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA,gGAAgG;AAKhG,OAAO,EAAkC,KAAK,KAAK,EAAE,MAAM,aAAa,CAAC;AAQzE,gGAAgG;AAChG,wBAAgB,UAAU,IAAI,MAAM,EAAE,CAErC;AAED,4FAA4F;AAC5F,wBAAgB,UAAU,IAAI,MAAM,EAAE,CAErC;AAED;;;GAGG;AACH,wBAAsB,IAAI,CACxB,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,GAAE,MAAM,CAAC,cAA+B,EAC3C,GAAG,GAAE,MAAM,CAAC,cAA+B,GAC1C,OAAO,CAAC,MAAM,CAAC,CA6BjB;AAID,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,cAA+B,GAAG,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,CA2BpH;AAED,qGAAqG;AACrG,wBAAgB,KAAK,IAAI,MAAM,CAoC9B"}
package/dist/cli/index.js CHANGED
@@ -3,11 +3,11 @@
3
3
  import { realpathSync } from "node:fs";
4
4
  import { pathToFileURL } from "node:url";
5
5
  import { helpFor, PLANNED, plannedGroup } from "./groups.js";
6
- import { withoutTheProfileFlag } from "./profiles.js";
7
- // The order this table is written is the order the help prints: run and chat first, because
8
- // they are what a person types on the first day, and the planned groups after, in the design's
9
- // order. run is rails server and chat is rails console — see docs/decisions/tenant-cli.md.
10
- const BUILT = ["run", "serve", "chat", "prompt", "test", "simulate", "eval", "sessions", "runs", "pipeline", "line", "numbers", "personas", "knowledge", "memory", "remember", "supervise", "keys", "providers", "callbacks", "login", "whoami", "gateway", "config", "use"];
6
+ import { withoutTheWorldFlag } from "./world.js";
7
+ // The order this table is written is the order the help prints: link, start and chat first,
8
+ // because they are what a person types on the first day, and the planned groups after, in the
9
+ // design's order. start is rails server and chat is rails console — see docs/decisions/tenant-cli.md.
10
+ const BUILT = ["link", "start", "serve", "chat", "prompt", "test", "simulate", "eval", "sessions", "runs", "agent", "lexicon", "pipeline", "line", "numbers", "personas", "knowledge", "memory", "remember", "supervise", "providers", "callbacks", "login", "whoami"];
11
11
  /** Everything `pinecall` answers to, built and planned alike, in the order help prints them. */
12
12
  export function groupNames() {
13
13
  return [...BUILT, ...Object.keys(PLANNED)];
@@ -21,9 +21,9 @@ export function builtNames() {
21
21
  * so a new group is one import and one line, never a branch inside a growing parser.
22
22
  */
23
23
  export async function main(argv, out = process.stdout, err = process.stderr) {
24
- // `--profile <name>` belongs to no group: it says which gateway this one command goes to, and
25
- // every group would otherwise have to parse it. Out of argv here, before anybody sees it.
26
- const [name, ...rest] = withoutTheProfileFlag(argv);
24
+ // `--prod` belongs to no group: it says which world this one command runs in, and every group
25
+ // would otherwise have to parse it. Out of argv here, before anybody sees it.
26
+ const [name, ...rest] = withoutTheWorldFlag(argv);
27
27
  if (name === undefined || name === "--help" || name === "-h" || name === "help") {
28
28
  out.write(usage());
29
29
  return name === undefined ? 2 : 0;
@@ -52,10 +52,12 @@ export async function main(argv, out = process.stdout, err = process.stderr) {
52
52
  }
53
53
  }
54
54
  // A built group is imported only when it is asked for: `pinecall prompt` must not pay for the
55
- // websocket client that `run` needs, and a stub must not pay for anything at all.
55
+ // websocket client that `start` needs, and a stub must not pay for anything at all.
56
56
  export async function groupFor(name, out = process.stdout) {
57
- if (name === "run")
58
- return (await import("./run.js")).group;
57
+ if (name === "link")
58
+ return (await import("./linking.js")).group;
59
+ if (name === "start")
60
+ return (await import("./start.js")).group;
59
61
  if (name === "serve")
60
62
  return (await import("./serve.js")).group;
61
63
  if (name === "chat")
@@ -70,6 +72,10 @@ export async function groupFor(name, out = process.stdout) {
70
72
  return (await import("./eval.js")).group;
71
73
  if (name === "runs")
72
74
  return (await import("./runs/index.js")).group;
75
+ if (name === "agent")
76
+ return (await import("./agent.js")).group;
77
+ if (name === "lexicon")
78
+ return (await import("./lexicon.js")).group;
73
79
  if (name === "pipeline")
74
80
  return (await import("./pipeline.js")).group;
75
81
  if (name === "line")
@@ -86,8 +92,6 @@ export async function groupFor(name, out = process.stdout) {
86
92
  return (await import("./supervise.js")).group;
87
93
  if (name === "sessions")
88
94
  return (await import("./sessions.js")).group;
89
- if (name === "keys")
90
- return (await import("./keys.js")).group;
91
95
  if (name === "numbers")
92
96
  return (await import("./numbers.js")).group;
93
97
  if (name === "providers")
@@ -96,18 +100,8 @@ export async function groupFor(name, out = process.stdout) {
96
100
  return (await import("./callbacks.js")).group;
97
101
  if (name === "login")
98
102
  return (await import("./login.js")).group;
99
- if (name === "gateway")
100
- return (await import("./gateway.js")).group;
101
103
  if (name === "whoami")
102
104
  return (await import("./whoami.js")).group;
103
- if (name === "config")
104
- return (await import("./config.js")).group;
105
- // The same module under the word a person reaches for. `use` is `config <name>` and nothing
106
- // else — two verbs would be two places deciding what a profile is.
107
- if (name === "use") {
108
- const config = await import("./config.js");
109
- return { ...config.group, run: config.use };
110
- }
111
105
  const planned = PLANNED[name];
112
106
  return planned === undefined ? undefined : plannedGroup(name, planned, out);
113
107
  }
@@ -116,7 +110,8 @@ export function usage() {
116
110
  const lines = [
117
111
  "usage: pinecall <group> [args]",
118
112
  "",
119
- " run the app and its doors: the process you deploy",
113
+ " link this project's folder to one of your orgs: your key, in its .env",
114
+ " start the app and its doors: the process you deploy (--prod for production)",
120
115
  " serve the sandbox's console on this machine: your copies, http://localhost:4100",
121
116
  " chat the app in this terminal's own process, and a prompt against it",
122
117
  " prompt the exact prompt a state would produce, offline",
@@ -125,6 +120,8 @@ export function usage() {
125
120
  " eval ring 3: one real call, re-evaluated by the runtime's code checks",
126
121
  " sessions list | show a call's log, with what it cost and how it was judged",
127
122
  " runs list | show | diff the suites, promote a call, and watch the drift",
123
+ " agent what the org set over the class — yours, the team's, production's — set, history, rollback",
124
+ " lexicon the org's words: how the voice says them and what the ears must know",
128
125
  " pipeline what the agent hears, decides and speaks with, and the knobs over it",
129
126
  " line which phone is yours, and whose terminal anybody else's call rings in",
130
127
  " numbers list | import | move | drop the numbers the org answers at",
@@ -133,14 +130,12 @@ export function usage() {
133
130
  " memory what memory kept about a contact, forget it, and hold recall to a golden",
134
131
  " remember the goldens memory.remember is held to: what a call teaches, and what it never keeps",
135
132
  " supervise listen in on a live call: whisper, say, take the line, give it back, end",
136
- " keys issue | list | revoke the API keys this org's machines run on",
137
133
  " providers add | rm | list the provider keys this org brought of its own",
138
134
  " callbacks the numbers people left when every seat was taken: who to call back",
139
- " login sign in once; the key is kept as a profile in ~/.pinecall",
140
- " gateway which gateway this machine talks to: box.pinecall.io until you point it elsewhere",
141
- " config the gateways this machine knows, and which one the next verb goes to",
142
- " use another org of yours, or its other world: `pinecall use clinica production`",
143
- " whoami which gateway, which org, which world, and where this terminal's key came from",
135
+ " login sign this machine in through a browser; `link` asks for it when it is needed",
136
+ " whoami which gateway, which org, whether you act in production, and where the key came from",
137
+ "",
138
+ " --prod on any verb runs it in production, if your org lets you act there.",
144
139
  "",
145
140
  ];
146
141
  for (const [name, purpose] of Object.entries(PLANNED)) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA,gGAAgG;AAEhG,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAc,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD,4FAA4F;AAC5F,+FAA+F;AAC/F,2FAA2F;AAC3F,MAAM,KAAK,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAU,CAAC;AAEtR,gGAAgG;AAChG,MAAM,UAAU,UAAU;IACxB,OAAO,CAAC,GAAG,KAAK,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,UAAU;IACxB,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;AACpB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CACxB,IAAc,EACd,GAAG,GAA0B,OAAO,CAAC,MAAM,EAC3C,GAAG,GAA0B,OAAO,CAAC,MAAM;IAE3C,8FAA8F;IAC9F,0FAA0F;IAC1F,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACpD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QAChF,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QACnB,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACxC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,GAAG,CAAC,KAAK,CAAC,4BAA4B,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,CAAC;IACX,CAAC;IACD,6FAA6F;IAC7F,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC7C,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QAChC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,iGAAiG;IACjG,iGAAiG;IACjG,8FAA8F;IAC9F,4FAA4F;IAC5F,2FAA2F;IAC3F,IAAI,CAAC;QACH,OAAO,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,GAAG,CAAC,KAAK,CAAC,aAAa,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACtF,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,8FAA8F;AAC9F,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAY,EAAE,GAAG,GAA0B,OAAO,CAAC,MAAM;IACtF,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;IAC5D,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC;IAChE,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9D,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC;IAClE,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9D,IAAI,IAAI,KAAK,UAAU;QAAE,OAAO,CAAC,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC;IACtE,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9D,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,CAAC,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC;IACpE,IAAI,IAAI,KAAK,UAAU;QAAE,OAAO,CAAC,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC;IACtE,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9D,IAAI,IAAI,KAAK,UAAU;QAAE,OAAO,CAAC,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC;IACtE,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,CAAC,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC;IACxE,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC;IAClE,IAAI,IAAI,KAAK,UAAU;QAAE,OAAO,CAAC,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC;IACtE,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,CAAC,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC;IACxE,IAAI,IAAI,KAAK,UAAU;QAAE,OAAO,CAAC,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC;IACtE,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9D,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC;IACpE,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,CAAC,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC;IACxE,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,CAAC,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC;IACxE,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC;IAChE,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC;IACpE,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC;IAClE,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC;IAClE,4FAA4F;IAC5F,mEAAmE;IACnE,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAC3C,OAAO,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;IAC9C,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;AAC9E,CAAC;AAED,qGAAqG;AACrG,MAAM,UAAU,KAAK;IACnB,MAAM,KAAK,GAAG;QACZ,gCAAgC;QAChC,EAAE;QACF,2DAA2D;QAC3D,uFAAuF;QACvF,6EAA6E;QAC7E,6DAA6D;QAC7D,iFAAiF;QACjF,uFAAuF;QACvF,8EAA8E;QAC9E,+EAA+E;QAC/E,gFAAgF;QAChF,kFAAkF;QAClF,mFAAmF;QACnF,wEAAwE;QACxE,sEAAsE;QACtE,0EAA0E;QAC1E,sFAAsF;QACtF,kGAAkG;QAClG,sFAAsF;QACtF,2EAA2E;QAC3E,2EAA2E;QAC3E,iFAAiF;QACjF,uEAAuE;QACvE,+FAA+F;QAC/F,kFAAkF;QAClF,yFAAyF;QACzF,4FAA4F;QAC5F,EAAE;KACH,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACtD,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,OAAO,kBAAkB,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,CAAC;AAED;;;;;GAKG;AACH,SAAS,OAAO;IACd,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,CAAC;QACH,OAAO,OAAO,IAAI,CAAC,GAAG,KAAK,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACrE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,+FAA+F;AAC/F,IAAI,OAAO,EAAE,EAAE,CAAC;IACd,OAAO,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /** `pinecall lexicon`: the org's words — how the voice says them, what the ears must know — versioned. */
2
+ import type { LexiconAnswer } from "@pinecall/protocol";
3
+ import type { Group } from "./groups.js";
4
+ export declare const group: Group;
5
+ /** What the verb can be told besides the argv: where to print, and which environment. Tests only. */
6
+ export interface Wording {
7
+ out?: NodeJS.WritableStream;
8
+ err?: NodeJS.WritableStream;
9
+ env?: NodeJS.ProcessEnv;
10
+ }
11
+ export declare function run(argv: string[], how?: Wording): Promise<number>;
12
+ /** The page: what the corner reads, then which version each corner is at. */
13
+ export declare function linesOf(answer: LexiconAnswer): string[];
14
+ //# sourceMappingURL=lexicon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lexicon.d.ts","sourceRoot":"","sources":["../../src/cli/lexicon.ts"],"names":[],"mappings":"AAAA,0GAA0G;AAI1G,OAAO,KAAK,EAAE,aAAa,EAA2C,MAAM,oBAAoB,CAAC;AAGjG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAezC,eAAO,MAAM,KAAK,EAAE,KAcnB,CAAC;AAEF,qGAAqG;AACrG,MAAM,WAAW,OAAO;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAED,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,GAAE,OAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CA0C5E;AA6CD,6EAA6E;AAC7E,wBAAgB,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE,CAavD"}