@markusylisiurunen/tau 0.3.69 → 0.3.70
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/dist/core/history/cli.js +8 -1
- package/dist/core/history/cli.js.map +1 -1
- package/dist/core/history/migrations.js +0 -55
- package/dist/core/history/migrations.js.map +1 -1
- package/dist/core/history/remote_history_client.js +14 -2
- package/dist/core/history/remote_history_client.js.map +1 -1
- package/dist/core/history/replication.js +1 -1
- package/dist/core/history/replication.js.map +1 -1
- package/dist/core/history/setup.js +31 -4
- package/dist/core/history/setup.js.map +1 -1
- package/dist/core/static/code_mode/history/documentation.md +3 -1
- package/dist/core/static/tau_docs/history.md +28 -6
- package/dist/core/static/tau_docs/prompts-and-project-context.md +8 -0
- package/dist/core/static/tau_docs/telegram.md +4 -3
- package/dist/core/static/tau_docs/tui.md +1 -1
- package/dist/core/telegram/adapter.js +117 -3
- package/dist/core/telegram/adapter.js.map +1 -1
- package/dist/core/telegram/config.js +1 -1
- package/dist/core/telegram/session_manager.js +26 -0
- package/dist/core/telegram/session_manager.js.map +1 -1
- package/dist/core/tools/history.js +1 -0
- package/dist/core/tools/history.js.map +1 -1
- package/dist/core/version.js +2 -2
- package/dist/diff_tool/app/dist/assets/{angular-html-GYtPR4ZN.js → angular-html-TGVKIbXA.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{angular-ts-CP8tBFCL.js → angular-ts-BR1Ck4xw.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{apl-DlYjD5SW.js → apl-DX86sScC.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{astro-D8wjxID2.js → astro-CPBmHrtV.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{blade-DwY1HngW.js → blade-CxhONptb.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{c-CAILAMk6.js → c-DGLPRsse.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{chapel-VXP46g0K.js → chapel-RThVDyb2.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{cobol-BwAQKs_L.js → cobol-DdmfL9_4.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{coffee-DeNZ8VRy.js → coffee-Cc3rH_kQ.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{cpp-CF9ADHZh.js → cpp-ByIB1X9N.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{crystal-Dlr9u7o6.js → crystal-D4oyx0-U.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{css-DqAHzxWB.js → css-D8nErU8j.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{edge-ds7vvsur.js → edge-CwM1llxP.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{elixir-Es7Jrt6x.js → elixir-CH1xxWSt.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{elm-D11ntXWx.js → elm-DIHxLa6c.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{erb-BqfIFYyn.js → erb-Cm1nGJ0q.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{git-rebase-BNJHcUvp.js → git-rebase-XqH6cLrF.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{glimmer-js-DNpIS5IN.js → glimmer-js-BqGQt95b.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{glimmer-ts-Bv4OLkK5.js → glimmer-ts-C9m18ZbT.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{glsl-BrwGmSBp.js → glsl-F8r7-2qc.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{graphql-BNCK5rQk.js → graphql-HRIQ08tp.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{hack-DuFQc5W0.js → hack-b2OBFgba.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{haml-DfSIBmXD.js → haml-BMiBYzBg.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{handlebars-97zL-LWI.js → handlebars-DekHln92.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{html-5cQu52Yo.js → html-0sl00AVS.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{html-derivative-BtDKJ__D.js → html-derivative-olhhIOfr.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{http-DDVZeUrK.js → http-DHDcde9F.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{hurl-jYWcmpTH.js → hurl-DDYRhecJ.js} +1 -1
- package/dist/diff_tool/app/dist/assets/index-C-CAr6eO.js +1559 -0
- package/dist/diff_tool/app/dist/assets/{java-DztsnWnX.js → java-HX7ZmFma.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{javascript-B9237BHu.js → javascript-B46p6LUW.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{jinja-8JSK8Y6a.js → jinja-0oRZFwZT.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{jison-B5IknAGj.js → jison-Bsqd8yEw.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{json-DRnIZCq8.js → json-1uKHLwRn.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{jsx-CFiWn8fZ.js → jsx-D2laGlc4.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{julia-BtFBdMTG.js → julia-B7CzN7W2.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{just-C14ODGGY.js → just-Duoo4Aa7.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{latex-DeaaLUFy.js → latex-yy-UOrbw.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{liquid-HEBlYFrk.js → liquid-DGliSu2Y.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{lua-CR87cBpR.js → lua-MFb4H6uH.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{marko-Eh01TuqB.js → marko-DO4tJoIQ.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{mdc-B6RhKbU2.js → mdc-B_h-aRcg.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{nginx-VWZdkDqr.js → nginx-ZW7yrLH6.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{nim-CHz86e8d.js → nim-DTOMK7Zk.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{org-VhIfCSLb.js → org-BRx006Oj.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{perl-aD0uyR3K.js → perl-CzcNKD-6.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{php-DgAIzA1E.js → php-BiSrGF6V.js} +1 -1
- package/dist/diff_tool/app/dist/assets/pierre-dark-CpLgRqie.js +1 -0
- package/dist/diff_tool/app/dist/assets/pierre-dark-protanopia-deuteranopia-B35FxJx-.js +1 -0
- package/dist/diff_tool/app/dist/assets/pierre-dark-soft-kZQmAZld.js +1 -0
- package/dist/diff_tool/app/dist/assets/pierre-dark-tritanopia-CpjhbsIL.js +1 -0
- package/dist/diff_tool/app/dist/assets/pierre-dark-vibrant-CpQYzh95.js +1 -0
- package/dist/diff_tool/app/dist/assets/pierre-light-CoaEpmwp.js +1 -0
- package/dist/diff_tool/app/dist/assets/pierre-light-protanopia-deuteranopia-0fSaH845.js +1 -0
- package/dist/diff_tool/app/dist/assets/pierre-light-soft-lWLdNTOI.js +1 -0
- package/dist/diff_tool/app/dist/assets/pierre-light-tritanopia-CEbqgOJL.js +1 -0
- package/dist/diff_tool/app/dist/assets/pierre-light-vibrant-D80Fkn33.js +1 -0
- package/dist/diff_tool/app/dist/assets/{pug-DrOOTekJ.js → pug-CYv51GYY.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{qml-CBowC-In.js → qml-0pTrG3lk.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{r-BDVQ17do.js → r-B0zy4_qi.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{razor-3Cui7XJA.js → razor-BMuOnZCw.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{regexp-CGlnek7r.js → regexp-D4sf8V9F.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{rst-BJ8-NYKF.js → rst-B-dJoZuq.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{ruby-CYg2GUU3.js → ruby-B9dG1g9M.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{sas-DfcBvB-I.js → sas-jS1VjXDD.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{scss-S7r2xNkU.js → scss-DaEAH7JG.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{shellscript-U4EOW3nV.js → shellscript-D26VaoMD.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{shellsession-DYrNCgPk.js → shellsession-BrDdB3Ze.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{soy-B25GTE01.js → soy-Dw-L8Pu_.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{sql-CrqkYif6.js → sql-C81_P4zv.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{stata-CMX2LAnU.js → stata-CvjhiEWy.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{surrealql-DDFKL5G0.js → surrealql-zH2wPEcX.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{svelte-CLZCBtO7.js → svelte-DkxiJRsu.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{templ-BKLVAgyX.js → templ-iHivH4zC.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{tex-DbqBQGS7.js → tex-tmkUHMpX.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{ts-tags-B9kA6WQP.js → ts-tags-Co_nt4ji.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{tsx-CxQG0405.js → tsx-Bq4h6cEE.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{twig-0z1Xause.js → twig-BrgfE6ee.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{typescript-R3tpeET4.js → typescript-DXeIJyMP.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{typst-DiHSix3p.js → typst-BDxuPNyd.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{vue-C-Pb_COm.js → vue-DpegOn40.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{vue-html-CA18u2Ne.js → vue-html-9jsGeHE2.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{vue-vine-CMnXmPqz.js → vue-vine-Di2kBUqf.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{xml-5qEjbdVg.js → xml-DAh0wZod.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{xsl-CeJj5xD1.js → xsl-CAKtuHsO.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{yaml-C2k4Cqy8.js → yaml-G84U_K-l.js} +1 -1
- package/dist/diff_tool/app/dist/index.html +1 -1
- package/dist/history/worker/index.js +369 -35
- package/dist/history/worker/index.js.map +1 -1
- package/dist/history/worker/migrations/0001_initial.sql +54 -0
- package/dist/history/worker/viewer.css +72 -0
- package/dist/history/worker/viewer.js +116 -0
- package/dist/host/local_session_host.js +0 -1
- package/dist/host/local_session_host.js.map +1 -1
- package/dist/host/session_protocol_handler.js +2 -1
- package/dist/host/session_protocol_handler.js.map +1 -1
- package/dist/protocol/session_protocol.js +46 -0
- package/dist/protocol/session_protocol.js.map +1 -1
- package/dist/tui/chat_view.js +4 -4
- package/dist/tui/chat_view.js.map +1 -1
- package/dist/tui/session_chat_controller.js +3 -1
- package/dist/tui/session_chat_controller.js.map +1 -1
- package/dist/tui/tool_ui_router.js +1 -1
- package/dist/tui/tool_ui_router.js.map +1 -1
- package/dist/tui/ui/chat_container.js +24 -19
- package/dist/tui/ui/chat_container.js.map +1 -1
- package/package.json +14 -9
- package/dist/diff_tool/app/dist/assets/index-B1D38aHD.js +0 -1559
- package/dist/diff_tool/app/dist/assets/theming-B5HubD5i.js +0 -1
- package/dist/diff_tool/app/dist/assets/theming-BTK0wyKj.js +0 -1
- package/dist/diff_tool/app/dist/assets/theming-BTUlzJFw.js +0 -1
- package/dist/diff_tool/app/dist/assets/theming-BURFlYfV.js +0 -1
- package/dist/diff_tool/app/dist/assets/theming-BVZjihoZ.js +0 -1
- package/dist/diff_tool/app/dist/assets/theming-BWSkzMBn.js +0 -1
- package/dist/diff_tool/app/dist/assets/theming-BchIqPOb.js +0 -1
- package/dist/diff_tool/app/dist/assets/theming-CeLfRn2P.js +0 -1
- package/dist/diff_tool/app/dist/assets/theming-DMjwMSwU.js +0 -1
- package/dist/diff_tool/app/dist/assets/theming-QWGGdlwd.js +0 -1
package/dist/core/history/cli.js
CHANGED
|
@@ -8,7 +8,7 @@ export class HistoryCliError extends Error {
|
|
|
8
8
|
export function printHistoryHelp(log = console.log) {
|
|
9
9
|
log([
|
|
10
10
|
"usage:",
|
|
11
|
-
" tau history setup --domain <domain> --zone-name <zone> [--api-key <key>] # Workers Paid",
|
|
11
|
+
" tau history setup --domain <domain> --zone-name <zone> [--api-key <key>] [--viewer-password <password>] # Workers Paid",
|
|
12
12
|
" tau history destroy --yes",
|
|
13
13
|
].join("\n"));
|
|
14
14
|
}
|
|
@@ -24,6 +24,7 @@ export async function runHistoryCommand(argv, options = {}) {
|
|
|
24
24
|
let domain = options.env?.TAU_HISTORY_DOMAIN;
|
|
25
25
|
let zoneName = options.env?.TAU_HISTORY_ZONE_NAME;
|
|
26
26
|
let apiKey;
|
|
27
|
+
let viewerPassword;
|
|
27
28
|
for (let index = 0; index < args.length; index += 1) {
|
|
28
29
|
const argument = args[index];
|
|
29
30
|
if (argument === "--domain" || argument.startsWith("--domain=")) {
|
|
@@ -41,6 +42,11 @@ export async function runHistoryCommand(argv, options = {}) {
|
|
|
41
42
|
apiKey = parsed.value;
|
|
42
43
|
index = parsed.nextIndex;
|
|
43
44
|
}
|
|
45
|
+
else if (argument === "--viewer-password" || argument.startsWith("--viewer-password=")) {
|
|
46
|
+
const parsed = parseValue(argument, args, index);
|
|
47
|
+
viewerPassword = parsed.value;
|
|
48
|
+
index = parsed.nextIndex;
|
|
49
|
+
}
|
|
44
50
|
else {
|
|
45
51
|
throw new Error(`unknown option: ${argument}`);
|
|
46
52
|
}
|
|
@@ -52,6 +58,7 @@ export async function runHistoryCommand(argv, options = {}) {
|
|
|
52
58
|
domain,
|
|
53
59
|
zoneName,
|
|
54
60
|
...(apiKey ? { apiKey } : {}),
|
|
61
|
+
...(viewerPassword ? { viewerPassword } : {}),
|
|
55
62
|
env: options.env,
|
|
56
63
|
stdout,
|
|
57
64
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/core/history/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAExE,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAG,GAA2B,OAAO,CAAC,GAAG;IACxE,GAAG,CACD;QACE,QAAQ;QACR,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/core/history/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,57 +1,2 @@
|
|
|
1
1
|
export const HISTORY_INITIAL_MIGRATION_NAME = "0001_initial.sql";
|
|
2
|
-
export const HISTORY_INITIAL_MIGRATION_SQL = `CREATE TABLE IF NOT EXISTS sessions (
|
|
3
|
-
session_id TEXT PRIMARY KEY,
|
|
4
|
-
attributes_json TEXT NOT NULL,
|
|
5
|
-
created_at INTEGER NOT NULL,
|
|
6
|
-
updated_at INTEGER NOT NULL,
|
|
7
|
-
transcript_revision INTEGER NOT NULL DEFAULT 0,
|
|
8
|
-
digest_title TEXT,
|
|
9
|
-
digest_summary TEXT,
|
|
10
|
-
digest_through_entry_id TEXT,
|
|
11
|
-
digest_failure_count INTEGER NOT NULL DEFAULT 0,
|
|
12
|
-
digest_next_attempt_at INTEGER,
|
|
13
|
-
digest_last_attempt_at INTEGER,
|
|
14
|
-
digest_last_success_at INTEGER,
|
|
15
|
-
digest_last_error TEXT
|
|
16
|
-
);
|
|
17
|
-
CREATE TABLE IF NOT EXISTS attributes (
|
|
18
|
-
session_id TEXT NOT NULL,
|
|
19
|
-
key TEXT NOT NULL,
|
|
20
|
-
value TEXT NOT NULL,
|
|
21
|
-
PRIMARY KEY (session_id, key)
|
|
22
|
-
);
|
|
23
|
-
CREATE INDEX IF NOT EXISTS attributes_lookup ON attributes(key, value, session_id);
|
|
24
|
-
CREATE TABLE IF NOT EXISTS entries (
|
|
25
|
-
session_id TEXT NOT NULL,
|
|
26
|
-
position INTEGER NOT NULL,
|
|
27
|
-
entry_id TEXT NOT NULL,
|
|
28
|
-
timestamp INTEGER NOT NULL,
|
|
29
|
-
payload_json TEXT NOT NULL,
|
|
30
|
-
search_text TEXT NOT NULL,
|
|
31
|
-
PRIMARY KEY (session_id, entry_id),
|
|
32
|
-
UNIQUE (session_id, position)
|
|
33
|
-
);
|
|
34
|
-
CREATE INDEX IF NOT EXISTS entries_order ON entries(session_id, position);
|
|
35
|
-
CREATE VIRTUAL TABLE IF NOT EXISTS entries_fts USING fts5(
|
|
36
|
-
session_id UNINDEXED,
|
|
37
|
-
entry_id UNINDEXED,
|
|
38
|
-
position UNINDEXED,
|
|
39
|
-
text
|
|
40
|
-
);
|
|
41
|
-
CREATE VIRTUAL TABLE IF NOT EXISTS sessions_fts USING fts5(
|
|
42
|
-
session_id UNINDEXED,
|
|
43
|
-
title,
|
|
44
|
-
summary
|
|
45
|
-
);
|
|
46
|
-
CREATE TABLE IF NOT EXISTS operations (
|
|
47
|
-
operation_id TEXT PRIMARY KEY,
|
|
48
|
-
session_id TEXT NOT NULL,
|
|
49
|
-
applied_at INTEGER NOT NULL
|
|
50
|
-
);
|
|
51
|
-
CREATE TABLE IF NOT EXISTS digest_worker_lease (
|
|
52
|
-
singleton INTEGER PRIMARY KEY CHECK (singleton = 1),
|
|
53
|
-
claimed_at INTEGER
|
|
54
|
-
);
|
|
55
|
-
INSERT OR IGNORE INTO digest_worker_lease (singleton, claimed_at) VALUES (1, NULL);
|
|
56
|
-
`;
|
|
57
2
|
//# sourceMappingURL=migrations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../../src/core/history/migrations.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,8BAA8B,GAAG,kBAAkB,CAAC
|
|
1
|
+
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../../src/core/history/migrations.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,8BAA8B,GAAG,kBAAkB,CAAC"}
|
|
@@ -26,6 +26,7 @@ const descriptorSchema = z
|
|
|
26
26
|
attributes: z.record(z.string(), z.string()),
|
|
27
27
|
createdAt: z.number(),
|
|
28
28
|
updatedAt: z.number(),
|
|
29
|
+
webUrl: z.url(),
|
|
29
30
|
digest: digestSchema.optional(),
|
|
30
31
|
snippets: z.array(z.string()),
|
|
31
32
|
})
|
|
@@ -43,9 +44,20 @@ const entryBaseSchema = z.object({
|
|
|
43
44
|
sourceIds: z.array(z.string()),
|
|
44
45
|
timestamp: z.number(),
|
|
45
46
|
});
|
|
47
|
+
const userContentSchema = z.union([
|
|
48
|
+
z.string(),
|
|
49
|
+
z.array(z.discriminatedUnion("type", [
|
|
50
|
+
z
|
|
51
|
+
.object({ type: z.literal("text"), text: z.string(), textSignature: z.string().optional() })
|
|
52
|
+
.strict(),
|
|
53
|
+
z
|
|
54
|
+
.object({ type: z.literal("image"), data: z.string(), mimeType: z.string().min(1) })
|
|
55
|
+
.strict(),
|
|
56
|
+
])),
|
|
57
|
+
]);
|
|
46
58
|
const entrySchema = z.discriminatedUnion("type", [
|
|
47
|
-
entryBaseSchema.extend({ type: z.literal("user"), content:
|
|
48
|
-
entryBaseSchema.extend({ type: z.literal("assistant"), content:
|
|
59
|
+
entryBaseSchema.extend({ type: z.literal("user"), content: userContentSchema }).strict(),
|
|
60
|
+
entryBaseSchema.extend({ type: z.literal("assistant"), content: z.string() }).strict(),
|
|
49
61
|
entryBaseSchema
|
|
50
62
|
.extend({
|
|
51
63
|
type: z.literal("tool"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote_history_client.js","sourceRoot":"","sources":["../../../src/core/history/remote_history_client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAWjD,MAAM,kBAAkB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAC5C,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACjC,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAErC,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAEhC,MAAM;IACN,IAAI;IAFf,YACW,MAAc,EACd,IAAwB,EACjC,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;sBAJN,MAAM;oBACN,IAAI;QAIb,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,MAAM,YAAY,GAAG,CAAC;KACnB,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE;CAClC,CAAC;KACD,MAAM,EAAE,CAAC;AACZ,MAAM,gBAAgB,GAAG,CAAC;KACvB,MAAM,CAAC;IACN,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;IAC5C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE;IAC/B,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAC9B,CAAC;KACD,MAAM,EAAE,CAAC;AACZ,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC;IAC9B,CAAC,CAAC,IAAI,EAAE;IACR,CAAC,CAAC,OAAO,EAAE;IACX,CAAC,CAAC,MAAM,EAAE;IACV,CAAC,CAAC,MAAM,EAAE;IACV,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;CAClC,CAAC,CAAC;AACH,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC9B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC;AACH,MAAM,WAAW,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAC/C,eAAe,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"remote_history_client.js","sourceRoot":"","sources":["../../../src/core/history/remote_history_client.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ export function projectHistoryEntryForRemote(entry) {
|
|
|
10
10
|
}
|
|
11
11
|
if (entry.type !== "tool") {
|
|
12
12
|
const base = { ...entry, content: "" };
|
|
13
|
-
const content = projectRemoteValue(entry.content, HISTORY_REMOTE_ENTRY_MAX_BYTES - serializedBytes(base) - PAYLOAD_SIZE_ALLOWANCE);
|
|
13
|
+
const content = projectRemoteValue(typeof entry.content === "string" ? entry.content : JSON.stringify(entry.content), HISTORY_REMOTE_ENTRY_MAX_BYTES - serializedBytes(base) - PAYLOAD_SIZE_ALLOWANCE);
|
|
14
14
|
return { ...entry, content };
|
|
15
15
|
}
|
|
16
16
|
const base = { ...entry, arguments: "", result: "" };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replication.js","sourceRoot":"","sources":["../../../src/core/history/replication.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,MAAM,CAAC,MAAM,8BAA8B,GAAG,IAAI,GAAG,IAAI,CAAC;AAC1D,MAAM,CAAC,MAAM,uCAAuC,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAEvE,MAAM,uBAAuB,GAAG,EAAE,CAAC;AACnC,MAAM,2BAA2B,GAAG,GAAG,CAAC;AACxC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AAEpC,MAAM,UAAU,4BAA4B,CAAC,KAAmB;IAC9D,IAAI,eAAe,CAAC,KAAK,CAAC,IAAI,8BAA8B,EAAE,CAAC;QAC7D,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,kBAAkB,CAChC,KAAK,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"replication.js","sourceRoot":"","sources":["../../../src/core/history/replication.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { tmpdir } from "node:os";
|
|
|
4
4
|
import { dirname, join } from "node:path";
|
|
5
5
|
import { fileURLToPath } from "node:url";
|
|
6
6
|
import { spawnWithCapture } from "../utils/spawn_capture.js";
|
|
7
|
-
import { HISTORY_INITIAL_MIGRATION_NAME
|
|
7
|
+
import { HISTORY_INITIAL_MIGRATION_NAME } from "./migrations.js";
|
|
8
8
|
const WORKER_NAME = "tau-history";
|
|
9
9
|
const DATABASE_NAME = "tau-history";
|
|
10
10
|
const MAX_CAPTURE_BYTES = 1024 * 1024;
|
|
@@ -17,7 +17,12 @@ export async function setupHistoryService(options) {
|
|
|
17
17
|
if (!zoneName)
|
|
18
18
|
throw new Error("zone name is required");
|
|
19
19
|
const suppliedApiKey = options.apiKey?.trim() || env.TAU_HISTORY_API_KEY?.trim();
|
|
20
|
-
const
|
|
20
|
+
const suppliedViewerPassword = options.viewerPassword?.trim() || env.TAU_HISTORY_VIEWER_PASSWORD?.trim();
|
|
21
|
+
const apiKey = suppliedApiKey || generateSecret();
|
|
22
|
+
const viewerPassword = suppliedViewerPassword || generateSecret();
|
|
23
|
+
if (apiKey === viewerPassword) {
|
|
24
|
+
throw new Error("history API key and viewer password must be different");
|
|
25
|
+
}
|
|
21
26
|
const databaseId = await ensureDatabase(env, stdout);
|
|
22
27
|
const temporaryDirectory = mkdtempSync(join(tmpdir(), "tau-history-"));
|
|
23
28
|
try {
|
|
@@ -30,6 +35,11 @@ export async function setupHistoryService(options) {
|
|
|
30
35
|
env,
|
|
31
36
|
input: `${apiKey}\n`,
|
|
32
37
|
});
|
|
38
|
+
await runWrangler(["secret", "put", "VIEWER_PASSWORD"], {
|
|
39
|
+
cwd: temporaryDirectory,
|
|
40
|
+
env,
|
|
41
|
+
input: `${viewerPassword}\n`,
|
|
42
|
+
});
|
|
33
43
|
stdout(`deployed Worker ${WORKER_NAME}`);
|
|
34
44
|
stdout("");
|
|
35
45
|
stdout("The shared history service requires the Cloudflare Workers Paid plan.");
|
|
@@ -49,6 +59,15 @@ export async function setupHistoryService(options) {
|
|
|
49
59
|
stdout("Set TAU_HISTORY_API_KEY to:");
|
|
50
60
|
stdout(apiKey);
|
|
51
61
|
}
|
|
62
|
+
stdout("");
|
|
63
|
+
stdout(`Open the private history viewer at https://${domain}/`);
|
|
64
|
+
if (suppliedViewerPassword) {
|
|
65
|
+
stdout("Sign in with username tau and the viewer password supplied for this deployment.");
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
stdout("Sign in with username tau and this viewer password:");
|
|
69
|
+
stdout(viewerPassword);
|
|
70
|
+
}
|
|
52
71
|
}
|
|
53
72
|
finally {
|
|
54
73
|
rmSync(temporaryDirectory, { recursive: true, force: true });
|
|
@@ -135,9 +154,13 @@ async function applyHistoryMigrations(directory, env, stdout) {
|
|
|
135
154
|
stdout(`applied D1 migrations for ${DATABASE_NAME}`);
|
|
136
155
|
}
|
|
137
156
|
function writeHistoryMigration(directory) {
|
|
157
|
+
const source = fileURLToPath(new URL(`../../history/worker/migrations/${HISTORY_INITIAL_MIGRATION_NAME}`, import.meta.url));
|
|
158
|
+
if (!existsSync(source)) {
|
|
159
|
+
throw new Error(`bundled history migration is missing at ${source}; rebuild or reinstall Tau`);
|
|
160
|
+
}
|
|
138
161
|
const migrationsDirectory = join(directory, "migrations");
|
|
139
162
|
mkdirSync(migrationsDirectory, { recursive: true });
|
|
140
|
-
|
|
163
|
+
copyFileSync(source, join(migrationsDirectory, HISTORY_INITIAL_MIGRATION_NAME));
|
|
141
164
|
}
|
|
142
165
|
function writeWorkerProject(directory, options) {
|
|
143
166
|
const workerPath = fileURLToPath(new URL("../../history/worker/index.js", import.meta.url));
|
|
@@ -147,10 +170,14 @@ function writeWorkerProject(directory, options) {
|
|
|
147
170
|
const destination = join(directory, "worker", "index.js");
|
|
148
171
|
mkdirSync(dirname(destination), { recursive: true });
|
|
149
172
|
copyFileSync(workerPath, destination);
|
|
173
|
+
for (const name of ["viewer.css", "viewer.js"]) {
|
|
174
|
+
copyFileSync(join(dirname(workerPath), name), join(dirname(destination), name));
|
|
175
|
+
}
|
|
150
176
|
writeHistoryMigration(directory);
|
|
151
177
|
writeFileSync(join(directory, "wrangler.json"), JSON.stringify({
|
|
152
178
|
name: WORKER_NAME,
|
|
153
179
|
main: "worker/index.js",
|
|
180
|
+
rules: [{ type: "Text", globs: ["**/viewer.css", "**/viewer.js"], fallthrough: false }],
|
|
154
181
|
compatibility_date: "2026-08-01",
|
|
155
182
|
workers_dev: false,
|
|
156
183
|
routes: [{ pattern: `${options.domain}/*`, zone_name: options.zoneName }],
|
|
@@ -199,7 +226,7 @@ function requireCloudflareAuth(env) {
|
|
|
199
226
|
throw new Error("CLOUDFLARE_API_TOKEN is required for non-interactive Wrangler auth");
|
|
200
227
|
}
|
|
201
228
|
}
|
|
202
|
-
function
|
|
229
|
+
function generateSecret() {
|
|
203
230
|
return randomBytes(32).toString("base64url");
|
|
204
231
|
}
|
|
205
232
|
//# sourceMappingURL=setup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/core/history/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClG,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,8BAA8B,EAAE,
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/core/history/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@ for (const session of page.sessions) {
|
|
|
12
12
|
console.log(
|
|
13
13
|
`${session.sessionId} | ${new Date(session.updatedAt).toISOString()} | ${session.digest?.title ?? "untitled"}`,
|
|
14
14
|
);
|
|
15
|
+
if (session.webUrl) console.log(` ${session.webUrl}`);
|
|
15
16
|
if (session.digest?.summary) console.log(` ${session.digest.summary}`);
|
|
16
17
|
for (const snippet of session.snippets) console.log(` ${snippet}`);
|
|
17
18
|
}
|
|
@@ -36,6 +37,7 @@ Search returns:
|
|
|
36
37
|
attributes: Record<string, string>,
|
|
37
38
|
createdAt: number,
|
|
38
39
|
updatedAt: number,
|
|
40
|
+
webUrl?: string,
|
|
39
41
|
digest?: {
|
|
40
42
|
title: string,
|
|
41
43
|
summary: string,
|
|
@@ -47,7 +49,7 @@ Search returns:
|
|
|
47
49
|
}
|
|
48
50
|
```
|
|
49
51
|
|
|
50
|
-
`createdAt` and `updatedAt` are Unix timestamps in milliseconds. Snippets are bounded transcript excerpts. Digests are intentionally compact generated metadata; print a relevant digest whole rather than mechanically truncating it. A digest may be absent or stale, and `updatedThroughEntryId` identifies the latest transcript entry it covers.
|
|
52
|
+
`createdAt` and `updatedAt` are Unix timestamps in milliseconds. `webUrl` is present for sessions returned by the remote history service and links to its private browser view; return it directly when the user asks for a conversation URL. Local-only history has no browser URL. Snippets are bounded transcript excerpts. Digests are intentionally compact generated metadata; print a relevant digest whole rather than mechanically truncating it. A digest may be absent or stale, and `updatedThroughEntryId` identifies the latest transcript entry it covers.
|
|
51
53
|
|
|
52
54
|
Two optional conventional attributes are common:
|
|
53
55
|
|
|
@@ -16,8 +16,8 @@ The path belongs to the **host home**. An attached TUI and a remote execution en
|
|
|
16
16
|
|
|
17
17
|
For each session, history stores its immutable creation attributes and an ordered active transcript containing:
|
|
18
18
|
|
|
19
|
-
- committed user content, after Tau's internal metadata is removed
|
|
20
|
-
- assistant text segments, including committed preambles and responses, but not thinking
|
|
19
|
+
- committed user content as a string or an array of text and image blocks, after Tau's internal metadata is removed
|
|
20
|
+
- assistant text segments as strings, including committed preambles and responses, but not thinking
|
|
21
21
|
- completed tool calls with the tool name, arguments, result, and terminal outcome
|
|
22
22
|
|
|
23
23
|
Leading model-facing `<system>...</system>` blocks in user messages remain in history. Tool arguments and results can contain file contents, command output, or other sensitive data. Treat the database as private user data. Tau creates its history directory and database with private permissions, but the host user and machine administrators can still access them. Do not copy the database into a repository or expose it through a shared artifact.
|
|
@@ -74,7 +74,7 @@ The setup command requires:
|
|
|
74
74
|
- Wrangler installed and available on `PATH`
|
|
75
75
|
- a Cloudflare zone containing the chosen history hostname
|
|
76
76
|
- `CLOUDFLARE_API_TOKEN` available to the command for non-interactive Wrangler authentication
|
|
77
|
-
- a history API key supplied securely, or permission for setup to generate
|
|
77
|
+
- a history API key and separate viewer password supplied securely, or permission for setup to generate them
|
|
78
78
|
|
|
79
79
|
Run setup on an operator machine with Cloudflare access:
|
|
80
80
|
|
|
@@ -84,9 +84,29 @@ tau history setup \
|
|
|
84
84
|
--zone-name example.net
|
|
85
85
|
```
|
|
86
86
|
|
|
87
|
-
`TAU_HISTORY_DOMAIN` and `TAU_HISTORY_ZONE_NAME` can provide the two values instead. Setup creates or reuses the `tau-history` D1 database, applies the bundled migrations, deploys the `tau-history` Worker route, and installs the history API key as
|
|
87
|
+
`TAU_HISTORY_DOMAIN` and `TAU_HISTORY_ZONE_NAME` can provide the two values instead. Setup creates or reuses the `tau-history` D1 database, applies the bundled migrations, deploys the `tau-history` Worker route, and installs the history API key and viewer password as separate Worker secrets.
|
|
88
88
|
|
|
89
|
-
For the API key used during setup, `--api-key` takes precedence over `TAU_HISTORY_API_KEY`; otherwise setup generates a new key. Prefer a secret manager or protected process environment over
|
|
89
|
+
For the API key used during setup, `--api-key` takes precedence over `TAU_HISTORY_API_KEY`; otherwise setup generates a new key. For the viewer password, `--viewer-password` takes precedence over `TAU_HISTORY_VIEWER_PASSWORD`; otherwise setup generates one. The API key and viewer password must differ. Prefer a secret manager or protected process environment over command-line values, which may enter shell history. Do not paste either credential into a session transcript.
|
|
90
|
+
|
|
91
|
+
## Browse remote conversations
|
|
92
|
+
|
|
93
|
+
Open the configured service origin, for example `https://history.example.net/`, to browse the private read-only history collection. HTTP Basic authentication uses the fixed username `tau` and the viewer password installed by setup. Setup prints generated viewer passwords but does not echo supplied credentials. External HTTP viewer requests redirect to HTTPS before authentication; loopback HTTP remains available for local development. The credential is never placed in a URL, and browser responses are not cached. Keep the viewer password private because it grants read access to transcripts, attributes, tool arguments, and tool results across every host using that service.
|
|
94
|
+
|
|
95
|
+
The index lists recently updated sessions with generated titles, summaries, timestamps, attributes, and a server-rendered search form. Repository and source inputs filter metadata by case-sensitive substring match; both filters combine with text search and remain active across pages. The Older sessions button loads the next index page; the index never advances automatically. A digest can be pending or stale while the underlying transcript is already available. Session pages initially show an empty transcript, then automatically fetch bounded batches and append them in chronological order without scrolling or pagination controls. The Copy conversation button at the top stays disabled until the full transcript has loaded. Failed loads show a retry button and keep copying disabled. API reads remain paginated. Tool entries are collapsed by default. Text and metadata are escaped rather than interpreted as HTML or Markdown. Valid PNG, JPEG, GIF, and WebP content blocks render as inline images; other structured content falls back to escaped text.
|
|
96
|
+
|
|
97
|
+
Remote history search and read results include a stable `webUrl` for each session. The `history` tool can return this URL when asked for a conversation link. The URL alone does not grant access; the browser still needs the viewer credential. Local-only history has no web URL.
|
|
98
|
+
|
|
99
|
+
## Develop the browser view locally
|
|
100
|
+
|
|
101
|
+
From a source checkout with dependencies installed, run:
|
|
102
|
+
|
|
103
|
+
```sh
|
|
104
|
+
npm run history:dev
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
The command applies the canonical Worker migration to a local-only `tau-history-dev` D1 database, loads an idempotent fixture conversation, and starts the TypeScript Worker with Wrangler. Open the local URL printed by Wrangler and use username `tau` with password `tau-history-dev-password`. The local API key is `tau-history-dev-api-key`.
|
|
108
|
+
|
|
109
|
+
The checked-in development configuration does not contain a production route or remote D1 database identifier. Wrangler keeps its local state under `src/history/worker/.wrangler/`; rerunning the command preserves that local database and safely reapplies the migration and fixture.
|
|
90
110
|
|
|
91
111
|
## Configure hosts to replicate
|
|
92
112
|
|
|
@@ -138,7 +158,7 @@ Verify the owning boundary rather than inspecting credentials or dumping transcr
|
|
|
138
158
|
4. Explicitly ask the agent to search history for that session, following the history tool's `docs` step.
|
|
139
159
|
5. If using several hosts, repeat from another host and allow for asynchronous replication and digest generation.
|
|
140
160
|
|
|
141
|
-
A transcript can become remotely searchable before its generated digest appears. Search results without a digest are not evidence of a failed import.
|
|
161
|
+
A transcript can become remotely searchable before its generated digest appears. Search results without a digest are not evidence of a failed import. Open the service URL and sign in to the browser view to confirm the session card and transcript are available.
|
|
142
162
|
|
|
143
163
|
Cloudflare operational failures are visible through normal Worker logs, Cron Events, and D1 diagnostics. The service has no separate Tau administration dashboard or status endpoint.
|
|
144
164
|
|
|
@@ -148,6 +168,8 @@ Cloudflare operational failures are visible through normal Worker logs, Cron Eve
|
|
|
148
168
|
|
|
149
169
|
**The history tool returns a service error while the session still works.** Remote queries and asynchronous replication can fail independently of session execution. Check endpoint reachability and Worker logs without printing the bearer key. Local capture should continue unless the session also contains a `history unavailable` warning.
|
|
150
170
|
|
|
171
|
+
**The browser view repeatedly asks for credentials.** Use the fixed username `tau` and the viewer password installed by the latest setup. The history API key is a bearer credential for hosts and does not authenticate the browser.
|
|
172
|
+
|
|
151
173
|
**A session does not appear in remote search.** Confirm that the host was restarted with the global remote config, that the session was opened while that target was active, and that later history activity has had a chance to flush the durable outbox. Check host logs for `history_replication_failed`; a quarantined failure affects only the named session, while an unquarantined endpoint failure remains retryable. Do not assume remote digests are immediate.
|
|
152
174
|
|
|
153
175
|
**Local history became unavailable.** Check host-side filesystem access, free space, and ownership for `~/.config/tau`. Restarting is required to reopen a manager disabled by an earlier local failure.
|
|
@@ -56,6 +56,14 @@ The session catalog stores only prompt metadata. Tau loads the body lazily from
|
|
|
56
56
|
|
|
57
57
|
If the file is missing or invalid when Tau resolves it, invocation fails instead of using a stale body. Remote clients ask the host to resolve the prompt from the session's execution environment; they do not read a same-named file on the client machine.
|
|
58
58
|
|
|
59
|
+
### Telegram prompt picker
|
|
60
|
+
|
|
61
|
+
In [Telegram](telegram.md), `/prompt` lists the active session’s saved prompts, with pages for larger catalogs. Selecting a prompt resolves its current body through the session and records it as a committed user message. Selection is allowed only while the session is idle; otherwise wait for Tau to finish or use `/interrupt` first.
|
|
62
|
+
|
|
63
|
+
After recording succeeds, the picker becomes non-actionable and shows the prompt text, continued in additional messages when needed. Send a normal message (for example, details or “go”) to start the next turn with the prompt in context. In groups, that message must mention the bot as usual. Selecting another prompt appends another message rather than replacing the previous one. Recorded prompts survive session recovery.
|
|
64
|
+
|
|
65
|
+
Only the newest picker in a chat is active. Pickers are bound to the session that opened them and expire after selection, session replacement, or runner restart. Duplicate taps do not record the same picker twice. Prompt selection does not consume pending attachments or group context.
|
|
66
|
+
|
|
59
67
|
### Install starter prompts
|
|
60
68
|
|
|
61
69
|
Use `tau install` to copy Tau's starter content:
|
|
@@ -83,7 +83,7 @@ Use both lists for a private bot. `allowedUserIds` controls who can trigger work
|
|
|
83
83
|
|
|
84
84
|
A bot sees only `allowedProjectIds`. If that field is omitted, it sees every configured project. A sole allowed project is selected automatically; otherwise a chat needs `defaultProjectId` or an explicit `/use_<project>` preference before `/new`.
|
|
85
85
|
|
|
86
|
-
|
|
86
|
+
Telegram’s 100-command limit permits eleven built-ins and up to 89 `/use_<projectId>` commands.
|
|
87
87
|
|
|
88
88
|
## Project IDs and common fields
|
|
89
89
|
|
|
@@ -237,12 +237,13 @@ The runner's speech-to-text provider is loaded from normal Tau config at runner
|
|
|
237
237
|
| `/effort_medium` | Selects medium reasoning for later independent turns. |
|
|
238
238
|
| `/effort_high` | Selects high reasoning for later independent turns. |
|
|
239
239
|
| `/effort_xhigh` | Selects xhigh reasoning for later independent turns. |
|
|
240
|
+
| `/prompt` | [Records a saved prompt](prompts-and-project-context.md#telegram-prompt-picker) while idle, without starting a turn. |
|
|
240
241
|
| `/compact` | Runs summary-only manual compaction while the session is idle. |
|
|
241
242
|
| `/interrupt` | Interrupts the active Tau turn. |
|
|
242
243
|
| `/tts_on` | Enables a Gemini-generated voice note after each final assistant response. |
|
|
243
244
|
| `/tts_off` | Disables voice responses. |
|
|
244
245
|
|
|
245
|
-
Preferences
|
|
246
|
+
Preferences persist per bot and chat across restarts, projects, and sessions. Project changes apply to `/new`, not the active session.
|
|
246
247
|
|
|
247
248
|
In groups, commands must explicitly mention the bot. Accepted forms include:
|
|
248
249
|
|
|
@@ -252,7 +253,7 @@ In groups, commands must explicitly mention the bot. Accepted forms include:
|
|
|
252
253
|
@tau_engineering_bot /status
|
|
253
254
|
```
|
|
254
255
|
|
|
255
|
-
|
|
256
|
+
Commands addressed to other bots are ignored.
|
|
256
257
|
|
|
257
258
|
## DMs, groups, and active work
|
|
258
259
|
|
|
@@ -51,7 +51,7 @@ When Tau is idle, Enter and Ctrl+Enter both start a normal turn. While a turn is
|
|
|
51
51
|
|
|
52
52
|
Pending input is session state shared by attached clients while the host remains alive. It is not durable across host restart or session recovery. A queued turn captures the persona, reasoning, tools, and model settings when that turn actually starts. Steering remains part of the active logical turn and keeps the settings captured when that turn began.
|
|
53
53
|
|
|
54
|
-
Escape interrupts foreground client work or the main session’s active work. If a local diff review, recording, or speech playback task owns the foreground, Escape stops that task first; otherwise it requests main-session interruption from the host. It does not stop independently running supervised subagents; select one with Alt+Down and use Ctrl+G. Press Escape twice to clear the current editor text.
|
|
54
|
+
Escape interrupts foreground client work or the main session’s active work. If a local diff review, recording, or speech playback task owns the foreground, Escape stops that task first; otherwise it requests main-session interruption from the host, including cancellation of a running manual compaction. Once compaction has replaced model context, a late interruption does not undo it or turn successful persistence into a failure. It does not stop independently running supervised subagents; select one with Alt+Down and use Ctrl+G. Press Escape twice to clear the current editor text.
|
|
55
55
|
|
|
56
56
|
Press Enter twice on an empty editor to retry from the current session history. Retry does not rewind or duplicate the last user message. Goal-controlled turns cannot be retried; resume a blocked goal instead.
|
|
57
57
|
|