pinecall 0.6.0 → 0.8.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 (144) hide show
  1. package/README.md +17 -9
  2. package/dist/agent/agent.d.ts +9 -38
  3. package/dist/agent/agent.d.ts.map +1 -1
  4. package/dist/agent/agent.js +17 -18
  5. package/dist/agent/agent.js.map +1 -1
  6. package/dist/agent/knowledge.d.ts +9 -0
  7. package/dist/agent/knowledge.d.ts.map +1 -0
  8. package/dist/agent/knowledge.js +3 -0
  9. package/dist/agent/knowledge.js.map +1 -0
  10. package/dist/agent/searching.d.ts +8 -0
  11. package/dist/agent/searching.d.ts.map +1 -0
  12. package/dist/agent/searching.js +38 -0
  13. package/dist/agent/searching.js.map +1 -0
  14. package/dist/call/call.d.ts +20 -1
  15. package/dist/call/call.d.ts.map +1 -1
  16. package/dist/call/call.js +15 -1
  17. package/dist/call/call.js.map +1 -1
  18. package/dist/cli/agent-knowledge.d.ts +19 -0
  19. package/dist/cli/agent-knowledge.d.ts.map +1 -0
  20. package/dist/cli/agent-knowledge.js +79 -0
  21. package/dist/cli/agent-knowledge.js.map +1 -0
  22. package/dist/cli/agent-lines.d.ts +5 -1
  23. package/dist/cli/agent-lines.d.ts.map +1 -1
  24. package/dist/cli/agent-lines.js +24 -3
  25. package/dist/cli/agent-lines.js.map +1 -1
  26. package/dist/cli/agent-processes.js +1 -1
  27. package/dist/cli/agent-processes.js.map +1 -1
  28. package/dist/cli/agent.d.ts +3 -0
  29. package/dist/cli/agent.d.ts.map +1 -1
  30. package/dist/cli/agent.js +15 -6
  31. package/dist/cli/agent.js.map +1 -1
  32. package/dist/cli/docs-attach.d.ts +23 -0
  33. package/dist/cli/docs-attach.d.ts.map +1 -0
  34. package/dist/cli/docs-attach.js +90 -0
  35. package/dist/cli/docs-attach.js.map +1 -0
  36. package/dist/cli/{knowledge.d.ts → docs.d.ts} +2 -4
  37. package/dist/cli/docs.d.ts.map +1 -0
  38. package/dist/cli/{knowledge.js → docs.js} +69 -36
  39. package/dist/cli/docs.js.map +1 -0
  40. package/dist/cli/groups.js +1 -1
  41. package/dist/cli/groups.js.map +1 -1
  42. package/dist/cli/home.d.ts +23 -18
  43. package/dist/cli/home.d.ts.map +1 -1
  44. package/dist/cli/home.js +21 -30
  45. package/dist/cli/home.js.map +1 -1
  46. package/dist/cli/index.d.ts.map +1 -1
  47. package/dist/cli/index.js +9 -8
  48. package/dist/cli/index.js.map +1 -1
  49. package/dist/cli/lexicon.js +1 -1
  50. package/dist/cli/lexicon.js.map +1 -1
  51. package/dist/cli/load.d.ts +5 -5
  52. package/dist/cli/load.d.ts.map +1 -1
  53. package/dist/cli/load.js +19 -26
  54. package/dist/cli/load.js.map +1 -1
  55. package/dist/cli/memory-policy.js +1 -1
  56. package/dist/cli/memory-policy.js.map +1 -1
  57. package/dist/cli/memory.d.ts +0 -1
  58. package/dist/cli/memory.d.ts.map +1 -1
  59. package/dist/cli/memory.js +1 -4
  60. package/dist/cli/memory.js.map +1 -1
  61. package/dist/cli/pipeline.d.ts +3 -13
  62. package/dist/cli/pipeline.d.ts.map +1 -1
  63. package/dist/cli/pipeline.js +10 -16
  64. package/dist/cli/pipeline.js.map +1 -1
  65. package/dist/cli/remember.d.ts +2 -2
  66. package/dist/cli/remember.d.ts.map +1 -1
  67. package/dist/cli/remember.js +1 -1
  68. package/dist/cli/remember.js.map +1 -1
  69. package/dist/cli/start.d.ts.map +1 -1
  70. package/dist/cli/start.js +3 -6
  71. package/dist/cli/start.js.map +1 -1
  72. package/dist/cli/test.js +1 -1
  73. package/dist/cli/test.js.map +1 -1
  74. package/dist/cli/testing/goldens.d.ts.map +1 -1
  75. package/dist/cli/testing/goldens.js +7 -1
  76. package/dist/cli/testing/goldens.js.map +1 -1
  77. package/dist/cli/testing/models.d.ts +5 -0
  78. package/dist/cli/testing/models.d.ts.map +1 -0
  79. package/dist/cli/testing/models.js +18 -0
  80. package/dist/cli/testing/models.js.map +1 -0
  81. package/dist/cli/ui/console/assets/index-CD-PwWV5.css +1 -0
  82. package/dist/cli/ui/console/assets/{index-aGyMCQUH.js → index-D-Om2adY.js} +25 -14
  83. package/dist/cli/ui/console/index.html +2 -2
  84. package/dist/cli/ui/knowing.d.ts +3 -3
  85. package/dist/cli/ui/knowing.d.ts.map +1 -1
  86. package/dist/cli/ui/knowing.js +8 -12
  87. package/dist/cli/ui/knowing.js.map +1 -1
  88. package/dist/cli/ui/remembering.d.ts +1 -1
  89. package/dist/cli/ui/remembering.d.ts.map +1 -1
  90. package/dist/cli/ui/remembering.js +5 -5
  91. package/dist/cli/ui/remembering.js.map +1 -1
  92. package/dist/cli/ui/testing.d.ts +1 -1
  93. package/dist/cli/ui/testing.d.ts.map +1 -1
  94. package/dist/cli/ui/testing.js +1 -1
  95. package/dist/cli/ui/testing.js.map +1 -1
  96. package/dist/cli/world.d.ts +12 -6
  97. package/dist/cli/world.d.ts.map +1 -1
  98. package/dist/cli/world.js +14 -12
  99. package/dist/cli/world.js.map +1 -1
  100. package/dist/client/client.d.ts +13 -1
  101. package/dist/client/client.d.ts.map +1 -1
  102. package/dist/client/client.js +29 -0
  103. package/dist/client/client.js.map +1 -1
  104. package/dist/client/endpoints.d.ts +2 -0
  105. package/dist/client/endpoints.d.ts.map +1 -1
  106. package/dist/client/endpoints.js +5 -1
  107. package/dist/client/endpoints.js.map +1 -1
  108. package/dist/client/index.d.ts +2 -2
  109. package/dist/client/index.d.ts.map +1 -1
  110. package/dist/client/index.js +1 -1
  111. package/dist/client/index.js.map +1 -1
  112. package/dist/client/testing/gateway.d.ts +16 -0
  113. package/dist/client/testing/gateway.d.ts.map +1 -1
  114. package/dist/client/testing/gateway.js +43 -9
  115. package/dist/client/testing/gateway.js.map +1 -1
  116. package/dist/client/testing/index.d.ts +1 -1
  117. package/dist/client/testing/index.d.ts.map +1 -1
  118. package/dist/index.d.ts +1 -0
  119. package/dist/index.d.ts.map +1 -1
  120. package/dist/index.js +1 -0
  121. package/dist/index.js.map +1 -1
  122. package/dist/runtime/connect.d.ts +8 -9
  123. package/dist/runtime/connect.d.ts.map +1 -1
  124. package/dist/runtime/connect.js +19 -122
  125. package/dist/runtime/connect.js.map +1 -1
  126. package/dist/runtime/environment.d.ts +7 -0
  127. package/dist/runtime/environment.d.ts.map +1 -0
  128. package/dist/runtime/environment.js +30 -0
  129. package/dist/runtime/environment.js.map +1 -0
  130. package/dist/views/layout.d.ts.map +1 -1
  131. package/dist/views/layout.js +4 -5
  132. package/dist/views/layout.js.map +1 -1
  133. package/package.json +2 -2
  134. package/dist/cli/knowledge.d.ts.map +0 -1
  135. package/dist/cli/knowledge.js.map +0 -1
  136. package/dist/cli/tuned.d.ts +0 -8
  137. package/dist/cli/tuned.d.ts.map +0 -1
  138. package/dist/cli/tuned.js +0 -66
  139. package/dist/cli/tuned.js.map +0 -1
  140. package/dist/cli/ui/console/assets/index-DmN15Axn.css +0 -1
  141. package/dist/runtime/grounding.d.ts +0 -15
  142. package/dist/runtime/grounding.d.ts.map +0 -1
  143. package/dist/runtime/grounding.js +0 -72
  144. package/dist/runtime/grounding.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  /** How `pinecall agent` says the three corners on one page, and the door it reads them from. */
2
- import { dayAndTime } from "./knowledge.js";
2
+ import { dayAndTime } from "./docs.js";
3
3
  import { asked } from "./testing/gateway.js";
4
4
  /** The settings door of one agent, spelled once for every verb that knocks at it. */
5
5
  export function settingsPath(agent) {
@@ -9,8 +9,24 @@ export function settingsPath(agent) {
9
9
  export async function readSettings(door, agent) {
10
10
  return await asked(door, settingsPath(agent));
11
11
  }
12
+ // The gateway writes the org's own corner when the request asks for it (`--team`) OR when the key
13
+ // holds no corner of its own: a production token, a person acting in production, a CI key. A write
14
+ // that read `yours` in that case would send the WHOLE set built on an EMPTY row and take the
15
+ // corner's other fields out — in production `agent set --voice` erased the knowledge and the base,
16
+ // silently (2026-09-19, the simulated team on the box). The read has to name the same corner the
17
+ // door will write, and `pull` already did: this is that line, once, for every verb that writes.
18
+ /** The row a write lands on: the team's when asked for it or when this key has no corner. */
19
+ export function theCornerWritten(standing, team) {
20
+ return team ? standing.team : (standing.yours ?? standing.team);
21
+ }
22
+ /** What to call the corner a write lands on, so the line a person reads is the corner written. */
23
+ export function theCornerCalled(standing, team) {
24
+ if (standing.world === "production")
25
+ return "production";
26
+ return team || standing.yours === null ? "the team's corner" : "your corner";
27
+ }
12
28
  /** The fields on the page, in the order a person reads them, under the names a person types. */
13
- export const FIELDS = ["voice", "tts", "tts-model", "stt", "llm", "greeting", "hangup", "turn", "memory", "knowledge"];
29
+ export const FIELDS = ["voice", "tts", "tts-model", "stt", "llm", "greeting", "hangup", "turn", "memory", "knowledge", "bases"];
14
30
  /** The name a person types, as the wire spells it. */
15
31
  export const WIRE = {
16
32
  voice: "voice",
@@ -23,6 +39,7 @@ export const WIRE = {
23
39
  turn: "turn",
24
40
  memory: "memory",
25
41
  knowledge: "knowledge",
42
+ bases: "bases",
26
43
  };
27
44
  // A cell is one line, however the field is shaped: the words of an opening in quotes, a turn's
28
45
  // two numbers, a memory policy as two counts, the bases by name. Long words are cut, because a
@@ -62,7 +79,11 @@ export function shown(config, field) {
62
79
  return `remember ${memory.remember?.length ?? 0} · forget ${memory.forget?.length ?? 0}`;
63
80
  }
64
81
  if (field === "knowledge") {
65
- const bases = config.knowledge ?? undefined;
82
+ const text = config.knowledge ?? undefined;
83
+ return text === undefined ? undefined : `${text.length.toLocaleString("en-US")} chars`;
84
+ }
85
+ if (field === "bases") {
86
+ const bases = config.bases ?? undefined;
66
87
  if (bases === undefined || bases.length === 0)
67
88
  return undefined;
68
89
  return bases.map((one) => `${one.base}${one.k === undefined || one.k === null ? "" : ` (k ${one.k})`}`).join(" · ");
@@ -1 +1 @@
1
- {"version":3,"file":"agent-lines.js","sourceRoot":"","sources":["../../src/cli/agent-lines.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-lines.js","sourceRoot":"","sources":["../../src/cli/agent-lines.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ export async function listed(door, out) {
16
16
  * instead of dialling back. A supervisor that restarts whatever exits starts it again.
17
17
  */
18
18
  export async function stopped(door, app, out, err) {
19
- if (app === undefined) {
19
+ if (app === undefined || app === "") {
20
20
  err.write("usage: pinecall agent stop <app> — the app is the first column of `pinecall agent list`\n");
21
21
  return 2;
22
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agent-processes.js","sourceRoot":"","sources":["../../src/cli/agent-processes.ts"],"names":[],"mappings":"AAAA,uHAAuH;AAIvH,OAAO,EAAE,KAAK,EAAa,MAAM,sBAAsB,CAAC;AAExD,oGAAoG;AACpG,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAU,EAAE,GAA0B;IACjE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,KAAK,CAAU,IAAI,EAAE,UAAU,CAAC,CAAC;IACxD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,GAAG,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;QACnF,OAAO,CAAC,CAAC;IACX,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,IAAI;QAAE,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtD,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAU,EAAE,GAAuB,EAAE,GAA0B,EAAE,GAA0B;IACvH,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,GAAG,CAAC,KAAK,CAAC,2FAA2F,CAAC,CAAC;QACvG,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAa,IAAI,EAAE,YAAY,kBAAkB,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7G,GAAG,CAAC,KAAK,CAAC,WAAW,MAAM,CAAC,GAAG,wFAAwF,CAAC,CAAC;IACzH,OAAO,CAAC,CAAC;AACX,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,MAAM,CAAC,GAAe;IACpC,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IAC/F,MAAM,KAAK,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,iBAAiB,GAAG,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC;IACnG,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7F,OAAO,GAAG,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,cAAc,KAAK,KAAK,MAAM,KAAK,MAAM,GAAG,CAAC,GAAG,IAAI,gBAAgB,YAAY,KAAK,EAAE,CAAC;AACzI,CAAC"}
1
+ {"version":3,"file":"agent-processes.js","sourceRoot":"","sources":["../../src/cli/agent-processes.ts"],"names":[],"mappings":"AAAA,uHAAuH;AAIvH,OAAO,EAAE,KAAK,EAAa,MAAM,sBAAsB,CAAC;AAExD,oGAAoG;AACpG,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAU,EAAE,GAA0B;IACjE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,KAAK,CAAU,IAAI,EAAE,UAAU,CAAC,CAAC;IACxD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,GAAG,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;QACnF,OAAO,CAAC,CAAC;IACX,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,IAAI;QAAE,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtD,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAU,EAAE,GAAuB,EAAE,GAA0B,EAAE,GAA0B;IACvH,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;QACpC,GAAG,CAAC,KAAK,CAAC,2FAA2F,CAAC,CAAC;QACvG,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAa,IAAI,EAAE,YAAY,kBAAkB,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7G,GAAG,CAAC,KAAK,CAAC,WAAW,MAAM,CAAC,GAAG,wFAAwF,CAAC,CAAC;IACzH,OAAO,CAAC,CAAC;AACX,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,MAAM,CAAC,GAAe;IACpC,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IAC/F,MAAM,KAAK,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,iBAAiB,GAAG,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC;IACnG,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7F,OAAO,GAAG,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,cAAc,KAAK,KAAK,MAAM,KAAK,MAAM,GAAG,CAAC,GAAG,IAAI,gBAAgB,YAAY,KAAK,EAAE,CAAC;AACzI,CAAC"}
@@ -1,6 +1,7 @@
1
1
  /** `pinecall agent`: what the org set over the class — yours, the team's, production's — setting it, and the processes that hold it. */
2
2
  import { parseArgs } from "node:util";
3
3
  import type { TuningBody } from "@pinecall/protocol";
4
+ import type { Editor } from "./agent-knowledge.js";
4
5
  import type { Group } from "./groups.js";
5
6
  export declare const group: Group;
6
7
  /** What the verb can be told besides the argv: where to print, and which environment. Tests only. */
@@ -8,6 +9,8 @@ export interface Setting {
8
9
  out?: NodeJS.WritableStream;
9
10
  err?: NodeJS.WritableStream;
10
11
  env?: NodeJS.ProcessEnv;
12
+ /** What `knowledge edit` opens the text in: $EDITOR, or what a test answers instead. */
13
+ editor?: Editor;
11
14
  }
12
15
  /** Every flag the sub-verbs take, declared once: parseArgs is strict, and one table is one seam. */
13
16
  export declare const OPTIONS: {
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/cli/agent.ts"],"names":[],"mappings":"AAAA,wIAAwI;AAExI,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,KAAK,EAAgB,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAOnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAgBzC,eAAO,MAAM,KAAK,EAAE,KA8BnB,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,oGAAoG;AACpG,eAAO,MAAM,OAAO;aAClB,KAAK;iBAAI,IAAI,EAAE,QAAQ;;aACvB,IAAI;iBAAI,IAAI,EAAE,SAAS;iBAAE,OAAO;;aAChC,IAAI;iBAAI,IAAI,EAAE,SAAS;iBAAE,OAAO;;aAChC,IAAI;iBAAI,IAAI,EAAE,QAAQ;;aACtB,KAAK;iBAAI,IAAI,EAAE,QAAQ;;aACvB,GAAG;iBAAI,IAAI,EAAE,QAAQ;;aACrB,WAAW;iBAAI,IAAI,EAAE,QAAQ;;aAC7B,GAAG;iBAAI,IAAI,EAAE,QAAQ;;aACrB,GAAG;iBAAI,IAAI,EAAE,QAAQ;;aACrB,QAAQ;iBAAI,IAAI,EAAE,QAAQ;;aAC1B,KAAK;iBAAI,IAAI,EAAE,QAAQ;;aACvB,MAAM;iBAAI,IAAI,EAAE,QAAQ;;aACxB,gBAAgB;iBAAI,IAAI,EAAE,QAAQ;;aAClC,wBAAwB;iBAAI,IAAI,EAAE,QAAQ;;aAC1C,QAAQ;iBAAI,IAAI,EAAE,QAAQ;iBAAE,QAAQ;;aACpC,MAAM;iBAAI,IAAI,EAAE,QAAQ;iBAAE,QAAQ;;aAClC,OAAO;iBAAI,IAAI,EAAE,QAAQ;;CACjB,CAAC;AAEX,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC;IAAE,OAAO,EAAE,OAAO,OAAO,CAAC;IAAC,gBAAgB,EAAE,IAAI,CAAA;CAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AAEhH,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,GAAE,OAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAmC5E;AA8BD,mGAAmG;AACnG,wBAAgB,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAuB9E"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/cli/agent.ts"],"names":[],"mappings":"AAAA,wIAAwI;AAExI,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,KAAK,EAAgB,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAOnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAiBzC,eAAO,MAAM,KAAK,EAAE,KAmCnB,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;IACxB,wFAAwF;IACxF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,oGAAoG;AACpG,eAAO,MAAM,OAAO;aAClB,KAAK;iBAAI,IAAI,EAAE,QAAQ;;aACvB,IAAI;iBAAI,IAAI,EAAE,SAAS;iBAAE,OAAO;;aAChC,IAAI;iBAAI,IAAI,EAAE,SAAS;iBAAE,OAAO;;aAChC,IAAI;iBAAI,IAAI,EAAE,QAAQ;;aACtB,KAAK;iBAAI,IAAI,EAAE,QAAQ;;aACvB,GAAG;iBAAI,IAAI,EAAE,QAAQ;;aACrB,WAAW;iBAAI,IAAI,EAAE,QAAQ;;aAC7B,GAAG;iBAAI,IAAI,EAAE,QAAQ;;aACrB,GAAG;iBAAI,IAAI,EAAE,QAAQ;;aACrB,QAAQ;iBAAI,IAAI,EAAE,QAAQ;;aAC1B,KAAK;iBAAI,IAAI,EAAE,QAAQ;;aACvB,MAAM;iBAAI,IAAI,EAAE,QAAQ;;aACxB,gBAAgB;iBAAI,IAAI,EAAE,QAAQ;;aAClC,wBAAwB;iBAAI,IAAI,EAAE,QAAQ;;aAC1C,QAAQ;iBAAI,IAAI,EAAE,QAAQ;iBAAE,QAAQ;;aACpC,MAAM;iBAAI,IAAI,EAAE,QAAQ;iBAAE,QAAQ;;aAClC,OAAO;iBAAI,IAAI,EAAE,QAAQ;;CACjB,CAAC;AAEX,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC;IAAE,OAAO,EAAE,OAAO,OAAO,CAAC;IAAC,gBAAgB,EAAE,IAAI,CAAA;CAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AAEhH,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,GAAE,OAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAoC5E;AA8BD,mGAAmG;AACnG,wBAAgB,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAuB9E"}
package/dist/cli/agent.js CHANGED
@@ -1,7 +1,8 @@
1
1
  /** `pinecall agent`: what the org set over the class — yours, the team's, production's — setting it, and the processes that hold it. */
2
2
  import { parseArgs } from "node:util";
3
- import { FIELDS, linesOf, readSettings, settingsPath, WIRE } from "./agent-lines.js";
3
+ import { FIELDS, linesOf, readSettings, settingsPath, theCornerWritten, WIRE } from "./agent-lines.js";
4
4
  import { filesRun } from "./agent-files.js";
5
+ import { knowledgeRun } from "./agent-knowledge.js";
5
6
  import { listed, stopped } from "./agent-processes.js";
6
7
  import { versionsRun } from "./agent-versions.js";
7
8
  import { theDoor } from "./env.js";
@@ -14,7 +15,8 @@ const USAGE = [
14
15
  " pinecall agent set [--voice x] [--tts x] [--tts-model x] [--stt x] [--llm x] [--greeting '…' | --reply '…']",
15
16
  " [--hangup '…'] [--endpointing-ms n] [--min-interruption-words n]",
16
17
  " [--remember '…' …] [--forget '…' …] [--team] [--note '…']",
17
- " pinecall agent clear [voice|tts|tts-model|stt|llm|greeting|hangup|turn|memory|knowledge …] [--team]",
18
+ " pinecall agent knowledge [--team] · knowledge edit [--team] [--note '…']",
19
+ " pinecall agent clear [voice|tts|tts-model|stt|llm|greeting|hangup|turn|memory|knowledge|bases …] [--team]",
18
20
  " pinecall agent history [--team] · diff [--against team|production] · rollback <version> [--team]",
19
21
  " pinecall agent pull [--team] · push <file> [--team]",
20
22
  ].join("\n");
@@ -35,8 +37,13 @@ export const group = {
35
37
  the call opens; --reply what the model reads before it finds its own. --remember and --forget
36
38
  replace those lists whole. A field nobody names is left as it stands.
37
39
 
38
- clear takes fields out of the corner's own row, so what the class declared — or the runtime's
39
- default — stands for them again; with no name, every field. There is no blank value.
40
+ knowledge is what the agent knows by heart — the business as the org describes it, in Markdown,
41
+ read whole on every call. Alone it prints the corner's text; \`edit\` opens it in $EDITOR and
42
+ saves what you wrote as the next version (an empty file takes it out). It is not the RAG: the
43
+ documents a turn searches are \`pinecall docs\`, attached as \`bases\`.
44
+
45
+ clear takes fields out of the corner's own row, so the runtime's default stands for them again;
46
+ with no name, every field. There is no blank value.
40
47
 
41
48
  history, diff and rollback are the versions: every one kept, who set it and why; this corner
42
49
  against the team's or production's; one version back as the next one — with --prod, production's.
@@ -103,6 +110,8 @@ export async function run(argv, how = {}) {
103
110
  }
104
111
  if (verb === "pull" || verb === "push")
105
112
  return await filesRun(door, agent, verb, rest, values, out, err);
113
+ if (verb === "knowledge")
114
+ return await knowledgeRun(door, agent, rest[0], values, out, err, how.editor);
106
115
  }
107
116
  catch (refused) {
108
117
  // The gateway's own sentence: it knows this build's vendors, the corner's version, and which
@@ -119,7 +128,7 @@ export async function run(argv, how = {}) {
119
128
  // take the voice out of the row. The corner written is yours, or the team's with --team.
120
129
  async function set(door, agent, values) {
121
130
  const standing = await readSettings(door, agent);
122
- const row = values.team === true ? standing.team : standing.yours;
131
+ const row = theCornerWritten(standing, values.team === true);
123
132
  const config = { ...(row?.config ?? {}), ...typed(values, row?.config ?? {}) };
124
133
  return await asked(door, settingsPath(agent), {
125
134
  method: "PUT",
@@ -131,7 +140,7 @@ async function clear(door, agent, named, team) {
131
140
  if (unknown.length > 0)
132
141
  throw new Error(`no field called ${unknown.join(", ")}: ${FIELDS.join(" · ")}`);
133
142
  const standing = await readSettings(door, agent);
134
- const row = team ? standing.team : standing.yours;
143
+ const row = theCornerWritten(standing, team);
135
144
  const config = named.length === 0 ? {} : { ...(row?.config ?? {}) };
136
145
  for (const name of named)
137
146
  delete config[WIRE[name]];
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/cli/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/cli/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /** `pinecall docs attach | detach | attached`: which bases an agent reads, per world and corner. */
2
+ import type { DocsConfig } from "@pinecall/protocol";
3
+ import { type Door } from "./testing/gateway.js";
4
+ /** How the base is attached: how a turn reads it, how many chunks, and under what score. */
5
+ export interface Attaching {
6
+ k?: number;
7
+ mode?: DocsConfig["mode"];
8
+ minScore?: number;
9
+ }
10
+ export declare const NOT_ATTACHED: (agent: string, base: string) => string;
11
+ /** The base attached to the agent in this corner, as the next version; a base already there is replaced. */
12
+ export declare function attach(door: Door, agent: string, base: string, how: Attaching, team: boolean, out: NodeJS.WritableStream): Promise<number>;
13
+ /** The base taken out of the agent's list in this corner, as the next version. */
14
+ export declare function detach(door: Door, agent: string, base: string, team: boolean, out: NodeJS.WritableStream, err: NodeJS.WritableStream): Promise<number>;
15
+ /** Every base any agent of the org reads in the key's world, and which agents read it. */
16
+ export declare function attached(door: Door, out: NodeJS.WritableStream): Promise<number>;
17
+ /** `k`, `mode` and `min-score` as typed, checked: a number that is not one is refused by name. */
18
+ export declare function attachingOf(values: {
19
+ k?: string;
20
+ mode?: string;
21
+ "min-score"?: string;
22
+ }): Attaching;
23
+ //# sourceMappingURL=docs-attach.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs-attach.d.ts","sourceRoot":"","sources":["../../src/cli/docs-attach.ts"],"names":[],"mappings":"AAAA,oGAAoG;AAEpG,OAAO,KAAK,EAAE,UAAU,EAA+B,MAAM,oBAAoB,CAAC;AAGlF,OAAO,EAAS,KAAK,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAExD,4FAA4F;AAC5F,MAAM,WAAW,SAAS;IACxB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAOD,eAAO,MAAM,YAAY,UAAW,MAAM,QAAQ,MAAM,KAAG,MAA+C,CAAC;AAK3G,4GAA4G;AAC5G,wBAAsB,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAchJ;AAED,kFAAkF;AAClF,wBAAsB,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,cAAc,EAAE,GAAG,EAAE,MAAM,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAiB5J;AAED,0FAA0F;AAC1F,wBAAsB,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAQtF;AAED,kGAAkG;AAClG,wBAAgB,WAAW,CAAC,MAAM,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAiBlG"}
@@ -0,0 +1,90 @@
1
+ /** `pinecall docs attach | detach | attached`: which bases an agent reads, per world and corner. */
2
+ import { readSettings, settingsPath, theCornerCalled, theCornerWritten } from "./agent-lines.js";
3
+ import { asked } from "./testing/gateway.js";
4
+ /** What `attach` and `detach` print: the agent, the base, and the corner's new version. */
5
+ const ATTACHED = (agent, base, answer, team) => `${agent} · ${base} attached · ${cornerLine(answer, team)}`;
6
+ const DETACHED = (agent, base, answer, team) => `${agent} · ${base} detached · ${cornerLine(answer, team)}`;
7
+ export const NOT_ATTACHED = (agent, base) => `${base} is not attached to ${agent}`;
8
+ // Attaching is a settings write: the bases an agent reads are one field of its settings
9
+ // (`bases`), so this is `pinecall agent set` for that one field — the corner's whole row read
10
+ // back and sent again with the version it was read at, the base added or taken out of the list.
11
+ /** The base attached to the agent in this corner, as the next version; a base already there is replaced. */
12
+ export async function attach(door, agent, base, how, team, out) {
13
+ const standing = await readSettings(door, agent);
14
+ const row = theCornerWritten(standing, team);
15
+ const kept = (row?.config.bases ?? []).filter((one) => one.base !== base);
16
+ const docs = { base };
17
+ if (how.k !== undefined)
18
+ docs.k = how.k;
19
+ if (how.mode !== undefined)
20
+ docs.mode = how.mode;
21
+ if (how.minScore !== undefined)
22
+ docs.min_score = how.minScore;
23
+ const answer = await asked(door, settingsPath(agent), {
24
+ method: "PUT",
25
+ body: { config: { ...(row?.config ?? {}), bases: [...kept, docs] }, if_version: row?.version ?? null, note: `attached ${base}`, team },
26
+ });
27
+ out.write(`${ATTACHED(agent, base, answer, team)}\n`);
28
+ return 0;
29
+ }
30
+ /** The base taken out of the agent's list in this corner, as the next version. */
31
+ export async function detach(door, agent, base, team, out, err) {
32
+ const standing = await readSettings(door, agent);
33
+ const row = theCornerWritten(standing, team);
34
+ const bases = row?.config.bases ?? [];
35
+ if (!bases.some((one) => one.base === base)) {
36
+ err.write(`${NOT_ATTACHED(agent, base)}\n`);
37
+ return 1;
38
+ }
39
+ const { bases: _was, ...rest } = row.config;
40
+ const left = bases.filter((one) => one.base !== base);
41
+ const config = left.length === 0 ? rest : { ...rest, bases: left };
42
+ const answer = await asked(door, settingsPath(agent), {
43
+ method: "PUT",
44
+ body: { config, if_version: row.version, note: `detached ${base}`, team },
45
+ });
46
+ out.write(`${DETACHED(agent, base, answer, team)}\n`);
47
+ return 0;
48
+ }
49
+ /** Every base any agent of the org reads in the key's world, and which agents read it. */
50
+ export async function attached(door, out) {
51
+ const uses = await asked(door, "/v1/knowledge/attached");
52
+ if (uses.bases.length === 0) {
53
+ out.write("no agent reads a base here: `pinecall docs attach <base>` gives one its base\n");
54
+ return 0;
55
+ }
56
+ for (const one of uses.bases)
57
+ out.write(`${one.base} · read by ${one.agents.join(", ")}\n`);
58
+ return 0;
59
+ }
60
+ /** `k`, `mode` and `min-score` as typed, checked: a number that is not one is refused by name. */
61
+ export function attachingOf(values) {
62
+ const how = {};
63
+ if (values.k !== undefined) {
64
+ const k = Number(values.k);
65
+ if (!Number.isInteger(k) || k < 1)
66
+ throw new Error(`--k takes a whole number of chunks, not ${values.k}`);
67
+ how.k = k;
68
+ }
69
+ if (values.mode !== undefined) {
70
+ if (values.mode !== "retrieved" && values.mode !== "tool")
71
+ throw new Error(`--mode is retrieved or tool, not ${values.mode}`);
72
+ how.mode = values.mode;
73
+ }
74
+ if (values["min-score"] !== undefined) {
75
+ const score = Number(values["min-score"]);
76
+ if (!Number.isFinite(score) || score < 0)
77
+ throw new Error(`--min-score takes a score of zero or more, not ${values["min-score"]}`);
78
+ how.minScore = score;
79
+ }
80
+ return how;
81
+ }
82
+ // The corner the GATEWAY wrote, not the one the flag asked for: a key with no corner of its own
83
+ // writes the org's own, and a line that called it "your corner v?" was naming a row that is not
84
+ // where the base landed.
85
+ function cornerLine(answer, team) {
86
+ const row = theCornerWritten(answer, team);
87
+ const corner = theCornerCalled(answer, team);
88
+ return row === null ? corner : `${corner} v${row.version}`;
89
+ }
90
+ //# sourceMappingURL=docs-attach.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs-attach.js","sourceRoot":"","sources":["../../src/cli/docs-attach.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** `pinecall knowledge push | list | drop | eval`: the base the agent answers from, and what a golden says of it. */
1
+ /** `pinecall docs push | list | drop | eval | attach | detach | attached`: the bases the agent searches, and which agent reads which. */
2
2
  import type { KnowledgeFile, KnowledgePushed, KnowledgeScore } from "@pinecall/protocol";
3
3
  import type { Group } from "./groups.js";
4
4
  import { type Door } from "./testing/gateway.js";
@@ -7,8 +7,6 @@ export declare const NO_DIRECTORY: (directory: string) => string;
7
7
  export declare const NO_MARKDOWN: (directory: string) => string;
8
8
  export declare const NO_GOLDEN: (golden: string) => string;
9
9
  export declare const AN_EMPTY_GOLDEN: (golden: string) => string;
10
- export declare const DEFAULT_GOLDEN = "knowledge/golden.json";
11
- export declare const DEFAULT_DIR = "knowledge/docs";
12
10
  export declare const group: Group;
13
11
  /** What the verb can be told besides the argv: where to print, and which environment. Tests only. */
14
12
  export interface Pushing {
@@ -32,4 +30,4 @@ export declare function pushedLine(pushed: KnowledgePushed, files: number): stri
32
30
  export declare function markdownUnder(directory: string): KnowledgeFile[];
33
31
  /** Unix seconds as a person reads them: the day and the minute, in UTC, no fractions. */
34
32
  export declare function dayAndTime(seconds: number): string;
35
- //# sourceMappingURL=knowledge.d.ts.map
33
+ //# sourceMappingURL=docs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/cli/docs.ts"],"names":[],"mappings":"AAAA,yIAAyI;AAMzI,OAAO,KAAK,EAAE,aAAa,EAAiB,eAAe,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIxG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAIzC,OAAO,EAAS,KAAK,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAYxD,yFAAyF;AACzF,eAAO,MAAM,YAAY,cAAe,MAAM,KAAG,MAAkD,CAAC;AACpG,eAAO,MAAM,WAAW,cAAe,MAAM,KAAG,MAAuD,CAAC;AACxG,eAAO,MAAM,SAAS,WAAY,MAAM,KAAG,MAAkE,CAAC;AAC9G,eAAO,MAAM,eAAe,WAAY,MAAM,KAAG,MAC2B,CAAC;AAE7E,eAAO,MAAM,KAAK,EAAE,KAuBnB,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,iGAAiG;AACjG,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,GAAE,OAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAwE5E;AA2ED,mGAAmG;AACnG,wBAAsB,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAKzG;AAED,+FAA+F;AAC/F,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,OAAO,EAAE,EACpB,CAAC,EAAE,MAAM,GAAG,SAAS,GACpB,OAAO,CAAC,cAAc,CAAC,CAKzB;AAED,+EAA+E;AAC/E,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,IAAI,CAG/D;AAED,mGAAmG;AACnG,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,EAAE,CAW1D;AAED,iGAAiG;AACjG,wBAAgB,UAAU,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED,+IAA+I;AAC/I,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,EAAE,CAQhE;AAED,yFAAyF;AACzF,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAElD"}
@@ -1,41 +1,49 @@
1
- /** `pinecall knowledge push | list | drop | eval`: the base the agent answers from, and what a golden says of it. */
1
+ /** `pinecall docs push | list | drop | eval | attach | detach | attached`: the bases the agent searches, and which agent reads which. */
2
2
  import { existsSync, readdirSync, readFileSync, statSync } from "node:fs";
3
- import { dirname, join, relative, resolve, sep } from "node:path";
3
+ import { join, relative, resolve, sep } from "node:path";
4
4
  import { parseArgs } from "node:util";
5
5
  import { slugOf } from "../runtime/connect.js";
6
6
  import { theDoor } from "./env.js";
7
- import { load } from "./load.js";
8
- import { AGENT_FLAG, homesFor, oneHome } from "./home.js";
7
+ import { attach, attached, attachingOf, detach } from "./docs-attach.js";
8
+ import { agentOfThisDirectory, load, notASlug } from "./load.js";
9
+ import { AGENT_FLAG, homeOf, homesFor, oneHome } from "./home.js";
9
10
  import { asked } from "./testing/gateway.js";
10
11
  import { refusal } from "./whoami.js";
11
- const USAGE = `usage: pinecall knowledge push [dir] [--base <name>] [--agent <name>] [--file agent.tsx]
12
- pinecall knowledge list
13
- pinecall knowledge drop <base>
14
- pinecall knowledge eval [golden.json] [--base <name>] [--k <n>] [--agent <name>] [--file agent.tsx]`;
12
+ const USAGE = `usage: pinecall docs push [dir] [--base <name>] [--agent <name>] [--file agent.tsx]
13
+ pinecall docs list
14
+ pinecall docs drop <base>
15
+ pinecall docs eval [docs.json] [--base <name>] [--k <n>] [--agent <name>] [--file agent.tsx]
16
+ pinecall docs attach <base> [--k <n>] [--mode retrieved|tool] [--min-score <x>] [--agent <slug>] [--team]
17
+ pinecall docs detach <base> [--agent <slug>] [--team]
18
+ pinecall docs attached
19
+ … and any of them with --prod, in production`;
15
20
  /** Where a base is refused before a byte is sent: the three sentences both doors say. */
16
- export const NO_DIRECTORY = (directory) => `no knowledge directory at ${directory}`;
21
+ export const NO_DIRECTORY = (directory) => `no documents directory at ${directory}`;
17
22
  export const NO_MARKDOWN = (directory) => `no *.md under ${directory}: nothing to push`;
18
23
  export const NO_GOLDEN = (golden) => `no golden at ${golden}: a JSON list of {asks, expects}`;
19
24
  export const AN_EMPTY_GOLDEN = (golden) => `${golden} holds no questions: a golden is a JSON list of {asks, expects}`;
20
- // The golden beside the documents it asks about: the questions the base is held to, and the chunk
21
- // each should have found. `knowledge/golden.json` is where `eval` looks when nobody says.
22
- export const DEFAULT_GOLDEN = "knowledge/golden.json";
23
- // Where a tenant keeps what is retrieved per turn, beside the agent file: the layout every
24
- // example has, and the one `docs = "<base>"` on the class was pushed from.
25
- export const DEFAULT_DIR = "knowledge/docs";
26
25
  export const group = {
27
- purpose: "push | list | drop the knowledge base the agent answers from",
26
+ purpose: "the documents the agent searches: pushed as a base, listed, dropped, held to a golden, attached",
28
27
  usage: `${USAGE}
29
28
 
30
- push reads every *.md under the directory (./knowledge/docs beside the agent file when none
31
- is named) and sends the folder whole to PUT /v1/knowledge/<base>: the base is replaced, never
32
- merged. The base is the agent's slug unless --base says otherwise, and the class names it with
33
- \`docs = "<base>"\`. list prints every base this org has pushed; drop removes one.
29
+ push reads every *.md under the directory (docs/<name>/ of the project when none is named) and
30
+ sends the folder whole to PUT /v1/knowledge/<base>: the base is replaced, never merged. The base
31
+ is the agent's slug unless --base says otherwise. list prints every base this org has pushed in
32
+ the world asked; drop removes one. These are the documents a turn SEARCHES — the RAG. What the
33
+ agent knows by heart is not a document: it is its settings' knowledge (\`pinecall agent
34
+ knowledge\`), read whole on every call.
34
35
 
35
- eval asks the base every question of a golden — a JSON list of {asks, expects}, where expects is
36
- the heading path the answer should carry — and prints recall@k and nDCG@10, computed by code with
37
- no model in the loop, plus every question it missed and what came back instead. A golden is fixed
38
- and the index is the variable: never soften a question so a change can pass.`,
36
+ attach says an agent reads a base — in your own corner, or the team's with --team, or in
37
+ production with --prod — with how a turn reads it: --k chunks, --mode (retrieved: the platform
38
+ searches before the turn; tool: the model decides when), --min-score. It is one field of the
39
+ agent's settings (\`pinecall agent\`), written as the next version. detach takes it out;
40
+ attached prints which agents read which base in the world asked.
41
+
42
+ eval asks the base every question of a golden — test/<name>/goldens/docs.json, a JSON list of
43
+ {asks, expects}, where expects is the heading path the answer should carry — and prints
44
+ recall@k and nDCG@10, computed by code with no model in the loop, plus every question it
45
+ missed and what came back instead. A golden is fixed and the index is the variable: never
46
+ soften a question so a change can pass.`,
39
47
  run,
40
48
  };
41
49
  /** Read the sub-verb and do it: the folder to the gateway, the list off it, or one base gone. */
@@ -45,13 +53,38 @@ export async function run(argv, how = {}) {
45
53
  const { values, positionals } = parseArgs({
46
54
  args: argv,
47
55
  allowPositionals: true,
48
- options: { base: { type: "string" }, file: { type: "string" }, k: { type: "string" }, ...AGENT_FLAG },
56
+ options: {
57
+ base: { type: "string" },
58
+ file: { type: "string" },
59
+ k: { type: "string" },
60
+ mode: { type: "string" },
61
+ "min-score": { type: "string" },
62
+ team: { type: "boolean", default: false },
63
+ ...AGENT_FLAG,
64
+ },
49
65
  });
50
66
  const [verb, ...rest] = positionals;
51
67
  const door = theDoor(how.env ?? process.env, err);
52
68
  if (door === undefined)
53
69
  return 2;
54
70
  try {
71
+ if (verb === "attached")
72
+ return await attached(door, out);
73
+ if ((verb === "attach" || verb === "detach") && rest[0] !== undefined) {
74
+ const aFile = notASlug(values.agent);
75
+ if (aFile !== undefined) {
76
+ err.write(`${aFile}\n`);
77
+ return 2;
78
+ }
79
+ const agent = values.agent ?? (await agentOfThisDirectory());
80
+ if (agent === null || agent === undefined) {
81
+ err.write(`${USAGE}\n name the agent, or run this beside an agent file\n`);
82
+ return 2;
83
+ }
84
+ if (verb === "attach")
85
+ return await attach(door, agent, rest[0], attachingOf(values), values.team, out);
86
+ return await detach(door, agent, rest[0], values.team, out, err);
87
+ }
55
88
  if (verb === "push" || verb === "eval") {
56
89
  // A dir, a golden or a base typed is about one agent; nothing typed, at a project's root, is
57
90
  // every agent that has documents (push) or a golden (eval).
@@ -60,9 +93,9 @@ export async function run(argv, how = {}) {
60
93
  if (homes.length > 1) {
61
94
  let worst = 0;
62
95
  for (const home of homes) {
63
- const has = verb === "push" ? existsSync(home.docs) : existsSync(home.knowledgeGolden);
96
+ const has = verb === "push" ? existsSync(home.docs) : existsSync(home.docsGolden);
64
97
  if (!has) {
65
- out.write(`${home.name} · no ${verb === "push" ? `documents at ${home.docs}` : `golden at ${home.knowledgeGolden}`}\n`);
98
+ out.write(`${home.name} · no ${verb === "push" ? `documents at ${home.docs}` : `golden at ${home.docsGolden}`}\n`);
66
99
  continue;
67
100
  }
68
101
  worst = Math.max(worst, verb === "push" ? await pushHome(door, home, out, err) : await evaluateHome(door, home, values.k, out, err));
@@ -75,7 +108,7 @@ export async function run(argv, how = {}) {
75
108
  }
76
109
  // A directory or a golden typed beside --agent is still that agent's: its slug is the base.
77
110
  // The class is only needed when no base was typed, so the agent is resolved only then.
78
- const theFile = async () => values.base !== undefined && rest[0] !== undefined ? values.file : (await oneHome(`knowledge ${verb}`, values.file, values.agent)).file;
111
+ const theFile = async () => values.base !== undefined && rest[0] !== undefined ? values.file : (await oneHome(`docs ${verb}`, values.file, values.agent)).file;
79
112
  if (verb === "push")
80
113
  return await push(door, rest[0], values.base, await theFile(), out, err);
81
114
  if (verb === "list")
@@ -94,12 +127,12 @@ export async function run(argv, how = {}) {
94
127
  err.write(`${USAGE}\n`);
95
128
  return 2;
96
129
  }
97
- // The folder as of now, whole. The directory and the base default to what the agent file says —
98
- // `./knowledge/docs` beside it and its slug — and the class is loaded only when one of the two is
99
- // missing, so a push that names both costs no TypeScript loader.
130
+ // The folder as of now, whole. The directory and the base default to the agent's home — its
131
+ // `docs/<name>/` and its slug — and the class is loaded only when one of the two is missing, so a
132
+ // push that names both costs no TypeScript loader.
100
133
  async function push(door, dir, base, agent, out, err) {
101
134
  const loaded = dir === undefined || base === undefined ? await load(agent) : undefined;
102
- const directory = resolve(dir ?? join(dirname(loaded.file), DEFAULT_DIR));
135
+ const directory = resolve(dir ?? homeOf(loaded.file).docs);
103
136
  const name = base ?? slugOf(loaded.ctor);
104
137
  if (!existsSync(directory) || !statSync(directory).isDirectory()) {
105
138
  err.write(`${NO_DIRECTORY(directory)}\n`);
@@ -116,7 +149,7 @@ async function push(door, dir, base, agent, out, err) {
116
149
  async function list(door, out) {
117
150
  const answered = await asked(door, "/v1/knowledge");
118
151
  if (answered.bases.length === 0) {
119
- out.write(`no knowledge base pushed yet: pinecall knowledge push ./knowledge/docs --base <slug>\n`);
152
+ out.write(`no base pushed yet: pinecall docs push sends docs/<name>/ under the agent's slug\n`);
120
153
  return 0;
121
154
  }
122
155
  for (const base of answered.bases) {
@@ -133,7 +166,7 @@ async function drop(door, base, out) {
133
166
  // caller's clock — so it reads its questions off the disk and asks them one at a time.
134
167
  async function evaluate(door, file, base, k, agent, out, err) {
135
168
  const loaded = file === undefined || base === undefined ? await load(agent) : undefined;
136
- const golden = resolve(file ?? join(dirname(loaded.file), DEFAULT_GOLDEN));
169
+ const golden = resolve(file ?? homeOf(loaded.file).docsGolden);
137
170
  const name = base ?? slugOf(loaded.ctor);
138
171
  if (!existsSync(golden)) {
139
172
  err.write(`${NO_GOLDEN(golden)}\n`);
@@ -204,6 +237,6 @@ async function pushHome(door, home, out, err) {
204
237
  /** One agent's golden against its base. */
205
238
  async function evaluateHome(door, home, k, out, err) {
206
239
  const loaded = await load(home.file);
207
- return await evaluate(door, home.knowledgeGolden, slugOf(loaded.ctor), k, home.file, out, err);
240
+ return await evaluate(door, home.docsGolden, slugOf(loaded.ctor), k, home.file, out, err);
208
241
  }
209
- //# sourceMappingURL=knowledge.js.map
242
+ //# sourceMappingURL=docs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/cli/docs.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ export function helpFor(name, group) {
12
12
  // is still a design. A verb leaves it in the commit that writes it.
13
13
  /** What each group the design declares is for, for the ones this tree has not written yet. */
14
14
  export const PLANNED = {
15
- new: "scaffold an app: agent.tsx, knowledge, lib, test, .env",
15
+ new: "scaffold a project: agents/<name>/agent.tsx, lib, docs, test, .env",
16
16
  g: "generate a tool, a component, a golden, a persona, a channel",
17
17
  observe: "the agent log as it happens, with a persistent cursor",
18
18
  costs: "what the calls cost, by agent, model or channel",