pinecall 0.3.1 → 0.5.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.
- package/README.md +14 -6
- package/dist/cli/agent-files.d.ts +6 -0
- package/dist/cli/agent-files.d.ts.map +1 -0
- package/dist/cli/agent-files.js +40 -0
- package/dist/cli/agent-files.js.map +1 -0
- package/dist/cli/agent-lines.d.ts +23 -0
- package/dist/cli/agent-lines.d.ts.map +1 -0
- package/dist/cli/agent-lines.js +109 -0
- package/dist/cli/agent-lines.js.map +1 -0
- package/dist/cli/agent-versions.d.ts +12 -0
- package/dist/cli/agent-versions.d.ts.map +1 -0
- package/dist/cli/agent-versions.js +70 -0
- package/dist/cli/agent-versions.js.map +1 -0
- package/dist/cli/agent.d.ts +77 -0
- package/dist/cli/agent.d.ts.map +1 -0
- package/dist/cli/agent.js +192 -0
- package/dist/cli/agent.js.map +1 -0
- package/dist/cli/chat.d.ts +2 -2
- package/dist/cli/chat.d.ts.map +1 -1
- package/dist/cli/chat.js +12 -24
- package/dist/cli/chat.js.map +1 -1
- package/dist/cli/client-for.d.ts +6 -0
- package/dist/cli/client-for.d.ts.map +1 -0
- package/dist/cli/client-for.js +7 -0
- package/dist/cli/client-for.js.map +1 -0
- package/dist/cli/connected.d.ts +4 -4
- package/dist/cli/connected.d.ts.map +1 -1
- package/dist/cli/connected.js +2 -2
- package/dist/cli/connected.js.map +1 -1
- package/dist/cli/dotenv.d.ts +24 -0
- package/dist/cli/dotenv.d.ts.map +1 -0
- package/dist/cli/dotenv.js +69 -0
- package/dist/cli/dotenv.js.map +1 -0
- package/dist/cli/env.d.ts +23 -23
- package/dist/cli/env.d.ts.map +1 -1
- package/dist/cli/env.js +40 -34
- package/dist/cli/env.js.map +1 -1
- package/dist/cli/eval.d.ts +2 -1
- package/dist/cli/eval.d.ts.map +1 -1
- package/dist/cli/eval.js +5 -4
- package/dist/cli/eval.js.map +1 -1
- package/dist/cli/groups.d.ts.map +1 -1
- package/dist/cli/groups.js +0 -1
- package/dist/cli/groups.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +25 -33
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/lexicon.d.ts +14 -0
- package/dist/cli/lexicon.d.ts.map +1 -0
- package/dist/cli/lexicon.js +123 -0
- package/dist/cli/lexicon.js.map +1 -0
- package/dist/cli/line.js +6 -6
- package/dist/cli/line.js.map +1 -1
- package/dist/cli/linking.d.ts +13 -0
- package/dist/cli/linking.d.ts.map +1 -0
- package/dist/cli/linking.js +103 -0
- package/dist/cli/linking.js.map +1 -0
- package/dist/cli/load.js +1 -1
- package/dist/cli/load.js.map +1 -1
- package/dist/cli/login.d.ts +5 -11
- package/dist/cli/login.d.ts.map +1 -1
- package/dist/cli/login.js +31 -140
- package/dist/cli/login.js.map +1 -1
- package/dist/cli/memory-policy.d.ts +9 -0
- package/dist/cli/memory-policy.d.ts.map +1 -0
- package/dist/cli/memory-policy.js +79 -0
- package/dist/cli/memory-policy.js.map +1 -0
- package/dist/cli/memory.d.ts.map +1 -1
- package/dist/cli/memory.js +9 -1
- package/dist/cli/memory.js.map +1 -1
- package/dist/cli/pipeline.d.ts +2 -0
- package/dist/cli/pipeline.d.ts.map +1 -1
- package/dist/cli/pipeline.js +18 -76
- package/dist/cli/pipeline.js.map +1 -1
- package/dist/cli/serve/server.d.ts +1 -1
- package/dist/cli/serve/server.d.ts.map +1 -1
- package/dist/cli/serve/server.js +3 -2
- package/dist/cli/serve/server.js.map +1 -1
- package/dist/cli/serve/sidecar.js +1 -1
- package/dist/cli/serve/sidecar.js.map +1 -1
- package/dist/cli/serve.d.ts +1 -1
- package/dist/cli/serve.d.ts.map +1 -1
- package/dist/cli/serve.js +5 -5
- package/dist/cli/serve.js.map +1 -1
- package/dist/cli/signed-in.d.ts +36 -0
- package/dist/cli/signed-in.d.ts.map +1 -0
- package/dist/cli/signed-in.js +60 -0
- package/dist/cli/signed-in.js.map +1 -0
- package/dist/cli/simulate.d.ts.map +1 -1
- package/dist/cli/simulate.js +7 -6
- package/dist/cli/simulate.js.map +1 -1
- package/dist/cli/{run-console.d.ts → start-console.d.ts} +2 -2
- package/dist/cli/start-console.d.ts.map +1 -0
- package/dist/cli/{run-console.js → start-console.js} +3 -3
- package/dist/cli/start-console.js.map +1 -0
- package/dist/cli/{run-screens.d.ts → start-screens.d.ts} +2 -2
- package/dist/cli/start-screens.d.ts.map +1 -0
- package/dist/cli/{run-screens.js → start-screens.js} +3 -3
- package/dist/cli/start-screens.js.map +1 -0
- package/dist/cli/{run.d.ts → start.d.ts} +3 -3
- package/dist/cli/start.d.ts.map +1 -0
- package/dist/cli/{run.js → start.js} +31 -35
- package/dist/cli/start.js.map +1 -0
- package/dist/cli/supervise.d.ts +1 -1
- package/dist/cli/supervise.d.ts.map +1 -1
- package/dist/cli/supervise.js +1 -1
- package/dist/cli/supervise.js.map +1 -1
- package/dist/cli/testing/gateway.d.ts +3 -0
- package/dist/cli/testing/gateway.d.ts.map +1 -1
- package/dist/cli/testing/gateway.js +2 -4
- package/dist/cli/testing/gateway.js.map +1 -1
- package/dist/cli/tuned.d.ts +8 -0
- package/dist/cli/tuned.d.ts.map +1 -0
- package/dist/cli/tuned.js +66 -0
- package/dist/cli/tuned.js.map +1 -0
- package/dist/cli/ui/chatting.d.ts +1 -1
- package/dist/cli/ui/chatting.d.ts.map +1 -1
- package/dist/cli/ui/chatting.js +11 -10
- package/dist/cli/ui/chatting.js.map +1 -1
- package/dist/cli/ui/console/assets/{index-DTMBzpRG.js → index--8qx-Pi4.js} +16 -12
- package/dist/cli/ui/console/assets/index-DmN15Axn.css +1 -0
- package/dist/cli/ui/console/index.html +2 -2
- package/dist/cli/ui/console/pinecall-logo.png +0 -0
- package/dist/cli/ui/console/pinecall-mark.png +0 -0
- package/dist/cli/ui/doors.d.ts +2 -2
- package/dist/cli/ui/doors.d.ts.map +1 -1
- package/dist/cli/ui/doors.js +2 -2
- package/dist/cli/ui/doors.js.map +1 -1
- package/dist/cli/ui/drifting.d.ts +1 -1
- package/dist/cli/ui/drifting.js +1 -1
- package/dist/cli/ui/knowing.d.ts +1 -1
- package/dist/cli/ui/knowing.js +3 -3
- package/dist/cli/ui/knowing.js.map +1 -1
- package/dist/cli/ui/promoting.d.ts +1 -1
- package/dist/cli/ui/promoting.js +1 -1
- package/dist/cli/ui/remembering.d.ts +1 -1
- package/dist/cli/ui/remembering.js +3 -3
- package/dist/cli/ui/remembering.js.map +1 -1
- package/dist/cli/ui/reproducing.d.ts +1 -1
- package/dist/cli/ui/reproducing.js +1 -1
- package/dist/cli/ui/simulating.d.ts +1 -1
- package/dist/cli/ui/simulating.js +4 -4
- package/dist/cli/ui/simulating.js.map +1 -1
- package/dist/cli/ui/testing.d.ts +1 -1
- package/dist/cli/ui/testing.js +3 -3
- package/dist/cli/ui/testing.js.map +1 -1
- package/dist/cli/whoami.d.ts +6 -2
- package/dist/cli/whoami.d.ts.map +1 -1
- package/dist/cli/whoami.js +6 -5
- package/dist/cli/whoami.js.map +1 -1
- package/dist/cli/world.d.ts +14 -24
- package/dist/cli/world.d.ts.map +1 -1
- package/dist/cli/world.js +21 -35
- package/dist/cli/world.js.map +1 -1
- package/dist/client/agent.d.ts +1 -1
- package/dist/client/agent.js +2 -2
- package/dist/client/agent.js.map +1 -1
- package/dist/client/client.d.ts +9 -1
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/client.js +5 -2
- package/dist/client/client.js.map +1 -1
- package/dist/client/connection.d.ts +3 -0
- package/dist/client/connection.d.ts.map +1 -1
- package/dist/client/connection.js +2 -1
- package/dist/client/connection.js.map +1 -1
- package/dist/client/index.d.ts +1 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/observe.d.ts +3 -0
- package/dist/client/observe.d.ts.map +1 -1
- package/dist/client/observe.js +2 -1
- package/dist/client/observe.js.map +1 -1
- package/dist/client/signed.d.ts +15 -0
- package/dist/client/signed.d.ts.map +1 -0
- package/dist/client/signed.js +19 -0
- package/dist/client/signed.js.map +1 -0
- package/dist/views/render.d.ts +1 -1
- package/dist/views/render.js +1 -1
- package/package.json +2 -2
- package/dist/cli/config.d.ts +0 -16
- package/dist/cli/config.d.ts.map +0 -1
- package/dist/cli/config.js +0 -117
- package/dist/cli/config.js.map +0 -1
- package/dist/cli/credentials.d.ts +0 -41
- package/dist/cli/credentials.d.ts.map +0 -1
- package/dist/cli/credentials.js +0 -98
- package/dist/cli/credentials.js.map +0 -1
- package/dist/cli/gateway.d.ts +0 -12
- package/dist/cli/gateway.d.ts.map +0 -1
- package/dist/cli/gateway.js +0 -63
- package/dist/cli/gateway.js.map +0 -1
- package/dist/cli/keys.d.ts +0 -28
- package/dist/cli/keys.d.ts.map +0 -1
- package/dist/cli/keys.js +0 -137
- package/dist/cli/keys.js.map +0 -1
- package/dist/cli/profiles.d.ts +0 -92
- package/dist/cli/profiles.d.ts.map +0 -1
- package/dist/cli/profiles.js +0 -246
- package/dist/cli/profiles.js.map +0 -1
- package/dist/cli/run-console.d.ts.map +0 -1
- package/dist/cli/run-console.js.map +0 -1
- package/dist/cli/run-screens.d.ts.map +0 -1
- package/dist/cli/run-screens.js.map +0 -1
- package/dist/cli/run.d.ts.map +0 -1
- package/dist/cli/run.js.map +0 -1
- package/dist/cli/signup.d.ts +0 -25
- package/dist/cli/signup.d.ts.map +0 -1
- package/dist/cli/signup.js +0 -126
- package/dist/cli/signup.js.map +0 -1
- package/dist/cli/ui/admin/assets/index-BlHXSYVz.css +0 -1
- package/dist/cli/ui/admin/assets/index-BpdIOuyO.js +0 -58
- package/dist/cli/ui/admin/index.html +0 -20
- package/dist/cli/ui/browser.d.ts +0 -10
- package/dist/cli/ui/browser.d.ts.map +0 -1
- package/dist/cli/ui/browser.js +0 -30
- package/dist/cli/ui/browser.js.map +0 -1
- package/dist/cli/ui/console/assets/index-C7LdwphQ.css +0 -1
- package/dist/cli/ui/index.d.ts +0 -15
- package/dist/cli/ui/index.d.ts.map +0 -1
- package/dist/cli/ui/index.js +0 -117
- package/dist/cli/ui/index.js.map +0 -1
- package/dist/cli/ui/refused.d.ts +0 -8
- package/dist/cli/ui/refused.d.ts.map +0 -1
- package/dist/cli/ui/refused.js +0 -11
- package/dist/cli/ui/refused.js.map +0 -1
- package/dist/cli/ui/server.d.ts +0 -22
- package/dist/cli/ui/server.d.ts.map +0 -1
- package/dist/cli/ui/server.js +0 -211
- package/dist/cli/ui/server.js.map +0 -1
package/dist/cli/eval.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eval.js","sourceRoot":"","sources":["../../src/cli/eval.ts"],"names":[],"mappings":"AAAA,oGAAoG;AAEpG,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"eval.js","sourceRoot":"","sources":["../../src/cli/eval.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/groups.d.ts.map
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/cli/groups.js
CHANGED
|
@@ -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. */
|
package/dist/cli/groups.js.map
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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 {
|
|
7
|
-
// The order this table is written is the order the help prints:
|
|
8
|
-
// they are what a person types on the first day, and the planned groups after, in the
|
|
9
|
-
// order.
|
|
10
|
-
const BUILT = ["
|
|
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
|
-
// `--
|
|
25
|
-
//
|
|
26
|
-
const [name, ...rest] =
|
|
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 `
|
|
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 === "
|
|
58
|
-
return (await import("./
|
|
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,30 +92,16 @@ 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")
|
|
94
98
|
return (await import("./providers.js")).group;
|
|
95
99
|
if (name === "callbacks")
|
|
96
100
|
return (await import("./callbacks.js")).group;
|
|
97
|
-
if (name === "signup")
|
|
98
|
-
return (await import("./signup.js")).group;
|
|
99
101
|
if (name === "login")
|
|
100
102
|
return (await import("./login.js")).group;
|
|
101
|
-
if (name === "gateway")
|
|
102
|
-
return (await import("./gateway.js")).group;
|
|
103
103
|
if (name === "whoami")
|
|
104
104
|
return (await import("./whoami.js")).group;
|
|
105
|
-
if (name === "config")
|
|
106
|
-
return (await import("./config.js")).group;
|
|
107
|
-
// The same module under the word a person reaches for. `use` is `config <name>` and nothing
|
|
108
|
-
// else — two verbs would be two places deciding what a profile is.
|
|
109
|
-
if (name === "use") {
|
|
110
|
-
const config = await import("./config.js");
|
|
111
|
-
return { ...config.group, run: config.use };
|
|
112
|
-
}
|
|
113
105
|
const planned = PLANNED[name];
|
|
114
106
|
return planned === undefined ? undefined : plannedGroup(name, planned, out);
|
|
115
107
|
}
|
|
@@ -118,7 +110,8 @@ export function usage() {
|
|
|
118
110
|
const lines = [
|
|
119
111
|
"usage: pinecall <group> [args]",
|
|
120
112
|
"",
|
|
121
|
-
"
|
|
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)",
|
|
122
115
|
" serve the sandbox's console on this machine: your copies, http://localhost:4100",
|
|
123
116
|
" chat the app in this terminal's own process, and a prompt against it",
|
|
124
117
|
" prompt the exact prompt a state would produce, offline",
|
|
@@ -127,6 +120,8 @@ export function usage() {
|
|
|
127
120
|
" eval ring 3: one real call, re-evaluated by the runtime's code checks",
|
|
128
121
|
" sessions list | show a call's log, with what it cost and how it was judged",
|
|
129
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",
|
|
130
125
|
" pipeline what the agent hears, decides and speaks with, and the knobs over it",
|
|
131
126
|
" line which phone is yours, and whose terminal anybody else's call rings in",
|
|
132
127
|
" numbers list | import | move | drop the numbers the org answers at",
|
|
@@ -135,15 +130,12 @@ export function usage() {
|
|
|
135
130
|
" memory what memory kept about a contact, forget it, and hold recall to a golden",
|
|
136
131
|
" remember the goldens memory.remember is held to: what a call teaches, and what it never keeps",
|
|
137
132
|
" supervise listen in on a live call: whisper, say, take the line, give it back, end",
|
|
138
|
-
" keys issue | list | revoke the API keys this org's machines run on",
|
|
139
133
|
" providers add | rm | list the provider keys this org brought of its own",
|
|
140
134
|
" callbacks the numbers people left when every seat was taken: who to call back",
|
|
141
|
-
"
|
|
142
|
-
"
|
|
143
|
-
"
|
|
144
|
-
"
|
|
145
|
-
" use another org of yours, or its other world: `pinecall use clinica production`",
|
|
146
|
-
" 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.",
|
|
147
139
|
"",
|
|
148
140
|
];
|
|
149
141
|
for (const [name, purpose] of Object.entries(PLANNED)) {
|
package/dist/cli/index.js.map
CHANGED
|
@@ -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,
|
|
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"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/** `pinecall lexicon`: the org's words — how the voice says them, what the ears must know — versioned. */
|
|
2
|
+
import { parseArgs } from "node:util";
|
|
3
|
+
import { theDoor } from "./env.js";
|
|
4
|
+
import { dayAndTime } from "./knowledge.js";
|
|
5
|
+
import { asked } from "./testing/gateway.js";
|
|
6
|
+
import { refusal } from "./whoami.js";
|
|
7
|
+
const USAGE = [
|
|
8
|
+
"usage: pinecall lexicon [--json]",
|
|
9
|
+
" pinecall lexicon add <word> --say '…' [--team] [--note '…']",
|
|
10
|
+
" pinecall lexicon hear <word> [<word> …] [--team] [--note '…']",
|
|
11
|
+
" pinecall lexicon rm <word> [<word> …] [--team]",
|
|
12
|
+
" pinecall lexicon history [--team]",
|
|
13
|
+
].join("\n");
|
|
14
|
+
const LEXICON = "/v1/lexicon";
|
|
15
|
+
export const group = {
|
|
16
|
+
purpose: "the org's words: how the voice says them and what the ears must know, shared by every agent",
|
|
17
|
+
usage: `${USAGE}
|
|
18
|
+
|
|
19
|
+
The lexicon is the org's and not one agent's: a brand, a surname, an acronym is the same word
|
|
20
|
+
whichever agent says it, and it is laid over every agent's own says and hears — the org's word
|
|
21
|
+
wins where both say the same one. add says how a word is spoken; hear names the words the ears
|
|
22
|
+
must know; rm takes words out of both. Whole and versioned like the settings: the corner is
|
|
23
|
+
yours (--team: the org's own), and a save over a corner that moved is told so.
|
|
24
|
+
|
|
25
|
+
A supervisor's or a manager's key opens this door: the person who hears a word said wrong forty
|
|
26
|
+
times a day fixes it, without a developer and without a deploy — with --prod, in production,
|
|
27
|
+
when their org lets them act there.`,
|
|
28
|
+
run,
|
|
29
|
+
};
|
|
30
|
+
export async function run(argv, how = {}) {
|
|
31
|
+
const out = how.out ?? process.stdout;
|
|
32
|
+
const err = how.err ?? process.stderr;
|
|
33
|
+
const { values, positionals } = parseArgs({
|
|
34
|
+
args: argv,
|
|
35
|
+
allowPositionals: true,
|
|
36
|
+
options: {
|
|
37
|
+
json: { type: "boolean", default: false },
|
|
38
|
+
team: { type: "boolean", default: false },
|
|
39
|
+
say: { type: "string" },
|
|
40
|
+
note: { type: "string" },
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
const door = theDoor(how.env ?? process.env, err);
|
|
44
|
+
if (door === undefined)
|
|
45
|
+
return 2;
|
|
46
|
+
const [verb, ...words] = positionals;
|
|
47
|
+
const team = values.team === true;
|
|
48
|
+
try {
|
|
49
|
+
if (verb === undefined)
|
|
50
|
+
return said(await asked(door, LEXICON), values.json === true, out);
|
|
51
|
+
if (verb === "add" && words[0] !== undefined && values.say !== undefined) {
|
|
52
|
+
return said(await changed(door, team, values.note, (words_) => ({ ...words_, said: { ...words_.said, [words[0]]: values.say } })), values.json === true, out);
|
|
53
|
+
}
|
|
54
|
+
if (verb === "hear" && words.length > 0) {
|
|
55
|
+
return said(await changed(door, team, values.note, (words_) => ({ ...words_, heard: [...new Set([...words_.heard, ...words])] })), values.json === true, out);
|
|
56
|
+
}
|
|
57
|
+
if (verb === "rm" && words.length > 0) {
|
|
58
|
+
return said(await changed(door, team, values.note, (words_) => ({
|
|
59
|
+
said: Object.fromEntries(Object.entries(words_.said).filter(([word]) => !words.includes(word))),
|
|
60
|
+
heard: words_.heard.filter((word) => !words.includes(word)),
|
|
61
|
+
})), values.json === true, out);
|
|
62
|
+
}
|
|
63
|
+
if (verb === "history")
|
|
64
|
+
return await history(door, team, out);
|
|
65
|
+
}
|
|
66
|
+
catch (refused) {
|
|
67
|
+
err.write(`${refusal(refused)}\n`);
|
|
68
|
+
return 1;
|
|
69
|
+
}
|
|
70
|
+
err.write(`${USAGE}\n`);
|
|
71
|
+
return 2;
|
|
72
|
+
}
|
|
73
|
+
function wordsOf(body) {
|
|
74
|
+
return { said: Object.fromEntries((body?.said ?? []).map((one) => [one.word, one.spoken])), heard: [...(body?.heard ?? [])] };
|
|
75
|
+
}
|
|
76
|
+
function bodyOf(words) {
|
|
77
|
+
return { said: Object.entries(words.said).map(([word, spoken]) => ({ word, spoken })), heard: words.heard };
|
|
78
|
+
}
|
|
79
|
+
// Read the corner's own row, change it, and send it whole with the version it was read at.
|
|
80
|
+
async function changed(door, team, note, change) {
|
|
81
|
+
const standing = await asked(door, LEXICON);
|
|
82
|
+
const row = team ? standing.team : (standing.yours ?? standing.team);
|
|
83
|
+
return await asked(door, LEXICON, {
|
|
84
|
+
method: "PUT",
|
|
85
|
+
body: { lexicon: bodyOf(change(wordsOf(row?.lexicon))), if_version: team ? (standing.team?.version ?? null) : (standing.yours?.version ?? null), note: note ?? null, team },
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
async function history(door, team, out) {
|
|
89
|
+
const kept = await asked(door, `${LEXICON}/history?team=${team}`);
|
|
90
|
+
out.write(`lexicon · ${kept.world} · ${kept.holder === "" ? "the org's own corner" : `corner ${kept.holder}`}\n`);
|
|
91
|
+
if (kept.rows.length === 0)
|
|
92
|
+
out.write(" nothing set yet\n");
|
|
93
|
+
for (const row of kept.rows)
|
|
94
|
+
out.write(` ${rowLine(row)} said ${row.lexicon.said.length} · heard ${row.lexicon.heard.length}\n`);
|
|
95
|
+
return 0;
|
|
96
|
+
}
|
|
97
|
+
function rowLine(row) {
|
|
98
|
+
const said = [`v${row.version}`, row.author, dayAndTime(row.set_at)];
|
|
99
|
+
if (row.note !== null)
|
|
100
|
+
said.push(`"${row.note}"`);
|
|
101
|
+
return said.join(" · ");
|
|
102
|
+
}
|
|
103
|
+
function said(answer, asJson, out) {
|
|
104
|
+
out.write(asJson ? `${JSON.stringify(answer)}\n` : `${linesOf(answer).join("\n")}\n`);
|
|
105
|
+
return 0;
|
|
106
|
+
}
|
|
107
|
+
/** The page: what the corner reads, then which version each corner is at. */
|
|
108
|
+
export function linesOf(answer) {
|
|
109
|
+
const read = answer.yours ?? answer.team;
|
|
110
|
+
const lines = [`lexicon · ${answer.world}${answer.yours === null ? "" : " · your corner"}`];
|
|
111
|
+
if (read === null)
|
|
112
|
+
lines.push(" nothing set: every agent says its own words");
|
|
113
|
+
else {
|
|
114
|
+
const spoken = read.lexicon.said.map((one) => `${one.word} → "${one.spoken}"`).join(" · ");
|
|
115
|
+
lines.push(` said ${spoken || "—"}`);
|
|
116
|
+
lines.push(` heard ${read.lexicon.heard.join(" · ") || "—"}`);
|
|
117
|
+
}
|
|
118
|
+
lines.push("");
|
|
119
|
+
const corners = [["yours", answer.yours], ["team", answer.team], ["production", answer.production]];
|
|
120
|
+
lines.push(` ${corners.map(([name, row]) => `${name}: ${row === null ? "nothing set" : rowLine(row)}`).join(" · ")}`);
|
|
121
|
+
return lines;
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=lexicon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lexicon.js","sourceRoot":"","sources":["../../src/cli/lexicon.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/line.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** `pinecall line`: whose terminal a call at this agent's number rings in, and the claim that takes it. */
|
|
2
|
-
import {
|
|
2
|
+
import { keepCalling } from "./signed-in.js";
|
|
3
3
|
import { theDoor } from "./env.js";
|
|
4
4
|
import { load } from "./load.js";
|
|
5
5
|
import { oneHome } from "./home.js";
|
|
@@ -9,7 +9,7 @@ const USAGE = "usage: pinecall line [from <+number> | forget | claim | release]
|
|
|
9
9
|
// A number exists once in a world, so it rings in one place. In production that place is the box
|
|
10
10
|
// and there is nothing to decide; in the sandbox an org shares ONE number and three developers
|
|
11
11
|
// may be running the same agent, so which terminal it rings in is claimed out loud. Alone nobody
|
|
12
|
-
// claims anything — the first `pinecall
|
|
12
|
+
// claims anything — the first `pinecall start` takes it. See the runtime's docs/protocol/gateway-api.md.
|
|
13
13
|
export const group = {
|
|
14
14
|
purpose: "which phone is yours, and whose terminal anybody else's call rings in",
|
|
15
15
|
usage: `${USAGE}
|
|
@@ -21,7 +21,7 @@ export const group = {
|
|
|
21
21
|
reaches your own agent — on the number your customers call, in production, as much as on a
|
|
22
22
|
sandbox one: while you are running the agent your phone reaches your copy, and everybody else
|
|
23
23
|
reaches production. No claim, no coordination, three of you testing at the same time. It is
|
|
24
|
-
remembered for this gateway and re-sent by every \`pinecall
|
|
24
|
+
remembered for this gateway and re-sent by every \`pinecall start\`, each time it connects.
|
|
25
25
|
\`forget\` undoes it.
|
|
26
26
|
|
|
27
27
|
\`claim\` and \`release\` are the fallback, for a call from a number nobody said was theirs — a
|
|
@@ -47,13 +47,13 @@ export async function run(argv, out = process.stdout) {
|
|
|
47
47
|
return 2;
|
|
48
48
|
}
|
|
49
49
|
const said = await callsFrom(door, number);
|
|
50
|
-
|
|
50
|
+
keepCalling(door.url, number);
|
|
51
51
|
out.write(`${calling(said.calling)}\n`);
|
|
52
52
|
return 0;
|
|
53
53
|
}
|
|
54
54
|
if (verb === "forget") {
|
|
55
55
|
const said = await forgetCallsFrom(door);
|
|
56
|
-
|
|
56
|
+
keepCalling(door.url, undefined);
|
|
57
57
|
out.write(`${forgotten(said.forgot)}\n`);
|
|
58
58
|
return 0;
|
|
59
59
|
}
|
|
@@ -118,7 +118,7 @@ const FROM = "/v1/line/from";
|
|
|
118
118
|
*/
|
|
119
119
|
export function describing(said) {
|
|
120
120
|
if (!said.held)
|
|
121
|
-
return `nobody is answering ${said.agent}:
|
|
121
|
+
return `nobody is answering ${said.agent}: run \`pinecall start\``;
|
|
122
122
|
// Yours by number beats yours by line, and is said first: it is the one that needs no upkeep.
|
|
123
123
|
const mine = said.calling.length > 0 ? `your calls from ${said.calling.join(", ")}` : undefined;
|
|
124
124
|
if (said.yours) {
|
package/dist/cli/line.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"line.js","sourceRoot":"","sources":["../../src/cli/line.ts"],"names":[],"mappings":"AAAA,2GAA2G;AAI3G,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"line.js","sourceRoot":"","sources":["../../src/cli/line.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** `pinecall link`: this project's folder tied to one of your orgs — your key for it, written to its `.env`. */
|
|
2
|
+
import type { Group } from "./groups.js";
|
|
3
|
+
import { type Signing } from "./login.js";
|
|
4
|
+
export declare const group: Group;
|
|
5
|
+
/** What link can be told besides the argv. Tests only: where it writes, and how it asks. */
|
|
6
|
+
export interface Linking extends Signing {
|
|
7
|
+
from?: string;
|
|
8
|
+
/** Which of these orgs, when there are several and nobody said. A test answers instead of a person. */
|
|
9
|
+
choose?: (slugs: string[]) => Promise<string | undefined>;
|
|
10
|
+
}
|
|
11
|
+
/** Sign in if needed, pick the org, mint the key there, and write it into the project's `.env`. */
|
|
12
|
+
export declare function link(argv: string[], how?: Linking): Promise<number>;
|
|
13
|
+
//# sourceMappingURL=linking.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"linking.d.ts","sourceRoot":"","sources":["../../src/cli/linking.ts"],"names":[],"mappings":"AAAA,gHAAgH;AAQhH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAmB,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAO3D,eAAO,MAAM,KAAK,EAAE,KAgBnB,CAAC;AAWF,4FAA4F;AAC5F,MAAM,WAAW,OAAQ,SAAQ,OAAO;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uGAAuG;IACvG,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC3D;AAED,mGAAmG;AACnG,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,GAAE,OAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CA2C7E"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/** `pinecall link`: this project's folder tied to one of your orgs — your key for it, written to its `.env`. */
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { createInterface } from "node:readline/promises";
|
|
4
|
+
import { parseArgs } from "node:util";
|
|
5
|
+
import { DOTENV, ignoredByGit, writeDotenv } from "./dotenv.js";
|
|
6
|
+
import { CLOUD_URL, KEY_VARIABLE, URL_VARIABLE } from "./env.js";
|
|
7
|
+
import { signedInThrough } from "./login.js";
|
|
8
|
+
import { pinecallHome, signedIn } from "./signed-in.js";
|
|
9
|
+
import { asked } from "./testing/gateway.js";
|
|
10
|
+
import { refusal } from "./whoami.js";
|
|
11
|
+
const USAGE = "usage: pinecall link [--org <slug>] [--gateway <url>]";
|
|
12
|
+
export const group = {
|
|
13
|
+
purpose: "this project's folder to one of your orgs: your key, in its .env",
|
|
14
|
+
usage: `${USAGE}
|
|
15
|
+
|
|
16
|
+
Run in the project's folder. Signs this machine in through a browser when it is not, asks
|
|
17
|
+
which of your orgs this project is — --org names it — and writes your key for that org into
|
|
18
|
+
./.env as PINECALL_KEY (and PINECALL_URL when the gateway is not ${CLOUD_URL}). Every verb run
|
|
19
|
+
in this folder, or under it, reads it from there: a project of another org is another folder
|
|
20
|
+
with its own .env, and nothing is ever switched.
|
|
21
|
+
|
|
22
|
+
The key is yours: your role decides what it may do, and --prod reaches production while your
|
|
23
|
+
org lets you act there. A server does not link: a server's token from Tokens, in its secrets.
|
|
24
|
+
|
|
25
|
+
--org <slug> which org, when you belong to several and do not want to be asked
|
|
26
|
+
--gateway <url> another gateway than the one this machine last signed in to`,
|
|
27
|
+
run: link,
|
|
28
|
+
};
|
|
29
|
+
/** Sign in if needed, pick the org, mint the key there, and write it into the project's `.env`. */
|
|
30
|
+
export async function link(argv, how = {}) {
|
|
31
|
+
const out = how.out ?? process.stdout;
|
|
32
|
+
const err = how.err ?? process.stderr;
|
|
33
|
+
const { values } = parseArgs({
|
|
34
|
+
args: argv,
|
|
35
|
+
options: { org: { type: "string" }, gateway: { type: "string" } },
|
|
36
|
+
});
|
|
37
|
+
const home = pinecallHome(how.env ?? process.env);
|
|
38
|
+
const session = signedIn(values.gateway, home);
|
|
39
|
+
const url = session?.url ?? values.gateway ?? CLOUD_URL;
|
|
40
|
+
const key = session?.key ?? (await signedInThrough(url, how, out, err));
|
|
41
|
+
if (key === null)
|
|
42
|
+
return 1;
|
|
43
|
+
const door = { url, apiKey: key };
|
|
44
|
+
let orgs;
|
|
45
|
+
try {
|
|
46
|
+
orgs = (await asked(door, "/v1/login/orgs")).orgs.filter((org) => org.member !== false);
|
|
47
|
+
}
|
|
48
|
+
catch (refused) {
|
|
49
|
+
err.write(`${refusal(refused)}\n`);
|
|
50
|
+
return 1;
|
|
51
|
+
}
|
|
52
|
+
const chosen = await theOrg(orgs, values.org, how);
|
|
53
|
+
if (chosen === undefined) {
|
|
54
|
+
const slugs = orgs.map(slugOf);
|
|
55
|
+
err.write(`${values.org === undefined ? "which org is this project?" : `you are no member of ${values.org}:`} --org ${slugs.join(" | ")}\n`);
|
|
56
|
+
return 2;
|
|
57
|
+
}
|
|
58
|
+
let theirs;
|
|
59
|
+
try {
|
|
60
|
+
theirs = chosen.here ? key : (await asked(door, "/v1/login/org", { method: "POST", body: { org: chosen.org } })).key;
|
|
61
|
+
}
|
|
62
|
+
catch (refused) {
|
|
63
|
+
err.write(`${refusal(refused)}\n`);
|
|
64
|
+
return 1;
|
|
65
|
+
}
|
|
66
|
+
const file = join(how.from ?? process.cwd(), DOTENV);
|
|
67
|
+
const written = { [KEY_VARIABLE]: theirs };
|
|
68
|
+
if (url !== CLOUD_URL)
|
|
69
|
+
written[URL_VARIABLE] = url;
|
|
70
|
+
writeDotenv(file, written);
|
|
71
|
+
out.write(`▸ ${slugOf(chosen)} · ${Object.keys(written).join(" and ")} written to ${DOTENV}\n`);
|
|
72
|
+
// A key committed is a key published: said every time, until the project's .gitignore says so.
|
|
73
|
+
if (!ignoredByGit(file))
|
|
74
|
+
err.write(`git would commit ${DOTENV}: add it to .gitignore before a commit carries your key\n`);
|
|
75
|
+
return 0;
|
|
76
|
+
}
|
|
77
|
+
/** The org named, the only one there is, or the one the person picks; undefined when none fits. */
|
|
78
|
+
async function theOrg(orgs, named, how) {
|
|
79
|
+
if (named !== undefined)
|
|
80
|
+
return orgs.find((org) => org.slug === named || org.org === named);
|
|
81
|
+
if (orgs.length <= 1)
|
|
82
|
+
return orgs[0];
|
|
83
|
+
const picked = await (how.choose ?? askTheTerminal)(orgs.map(slugOf));
|
|
84
|
+
return orgs.find((org) => slugOf(org) === picked);
|
|
85
|
+
}
|
|
86
|
+
/** A numbered list on a terminal; nothing picked when there is no terminal to ask. */
|
|
87
|
+
async function askTheTerminal(slugs) {
|
|
88
|
+
if (process.stdin.isTTY !== true)
|
|
89
|
+
return undefined;
|
|
90
|
+
const asking = createInterface({ input: process.stdin, output: process.stdout });
|
|
91
|
+
try {
|
|
92
|
+
slugs.forEach((slug, at) => process.stdout.write(` ${at + 1}. ${slug}\n`));
|
|
93
|
+
const answer = (await asking.question("which org is this project? ")).trim();
|
|
94
|
+
return slugs[Number(answer) - 1] ?? slugs.find((slug) => slug === answer);
|
|
95
|
+
}
|
|
96
|
+
finally {
|
|
97
|
+
asking.close();
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
function slugOf(org) {
|
|
101
|
+
return org.slug ?? org.org;
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=linking.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"linking.js","sourceRoot":"","sources":["../../src/cli/linking.ts"],"names":[],"mappings":"AAAA,gHAAgH;AAEhH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAEjE,OAAO,EAAE,eAAe,EAAgB,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAa,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,MAAM,KAAK,GAAG,uDAAuD,CAAC;AAEtE,MAAM,CAAC,MAAM,KAAK,GAAU;IAC1B,OAAO,EAAE,kEAAkE;IAC3E,KAAK,EAAE,GAAG,KAAK;;;;qEAIoD,SAAS;;;;;;;;+EAQC;IAC7E,GAAG,EAAE,IAAI;CACV,CAAC;AAkBF,mGAAmG;AACnG,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAc,EAAE,GAAG,GAAY,EAAE;IAC1D,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;IACtC,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;IACtC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;QAC3B,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;KAClE,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,OAAO,EAAE,GAAG,IAAI,MAAM,CAAC,OAAO,IAAI,SAAS,CAAC;IACxD,MAAM,GAAG,GAAG,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACxE,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC;IAC3B,MAAM,IAAI,GAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IAExC,IAAI,IAAc,CAAC;IACnB,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,KAAK,CAAqB,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;IAC9G,CAAC;IAAC,OAAO,OAAO,EAAE,CAAC;QACjB,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACnD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/B,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,wBAAwB,MAAM,CAAC,GAAG,GAAG,UAAU,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7I,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAkB,IAAI,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IACxI,CAAC;IAAC,OAAO,OAAO,EAAE,CAAC;QACjB,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;IACrD,MAAM,OAAO,GAA2B,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACnE,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC;IACnD,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3B,GAAG,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,MAAM,IAAI,CAAC,CAAC;IAChG,+FAA+F;IAC/F,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;QAAE,GAAG,CAAC,KAAK,CAAC,oBAAoB,MAAM,2DAA2D,CAAC,CAAC;IAC1H,OAAO,CAAC,CAAC;AACX,CAAC;AAED,mGAAmG;AACnG,KAAK,UAAU,MAAM,CAAC,IAAc,EAAE,KAAyB,EAAE,GAAY;IAC3E,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,GAAG,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC;IAC5F,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACtE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,CAAC;AACpD,CAAC;AAED,sFAAsF;AACtF,KAAK,UAAU,cAAc,CAAC,KAAe;IAC3C,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IACnD,MAAM,MAAM,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACjF,IAAI,CAAC;QACH,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7E,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IAC5E,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;AACH,CAAC;AAED,SAAS,MAAM,CAAC,GAAW;IACzB,OAAO,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC;AAC7B,CAAC"}
|
package/dist/cli/load.js
CHANGED
|
@@ -15,7 +15,7 @@ import { groundingOf } from "../runtime/grounding.js";
|
|
|
15
15
|
export const DEFAULT_AGENTS = ["agent.tsx", "agent.ts"];
|
|
16
16
|
let registered = false;
|
|
17
17
|
/** Register tsx, once per process: the tenant writes .ts and .tsx and never a build step. */
|
|
18
|
-
// `pinecall
|
|
18
|
+
// `pinecall start` on a fresh clone must work with `pnpm i` and nothing else. Registering is done
|
|
19
19
|
// once per process and only when a tenant's file is actually loaded, so `pinecall <planned group>`
|
|
20
20
|
// pays nothing for it. Exported because a persona is a tenant's .ts file too — cli/testing/caller.ts.
|
|
21
21
|
export async function useTypeScript() {
|
package/dist/cli/load.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/cli/load.ts"],"names":[],"mappings":"AAAA,wGAAwG;AAExG,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAqB,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAStD;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,WAAW,EAAE,UAAU,CAAU,CAAC;AAEjE,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,6FAA6F;AAC7F,
|
|
1
|
+
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/cli/load.ts"],"names":[],"mappings":"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"}
|