@markusylisiurunen/tau 0.3.17 → 0.3.18

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 (101) hide show
  1. package/README.md +24 -24
  2. package/dist/core/cli.js +2 -2
  3. package/dist/core/cli.js.map +1 -1
  4. package/dist/core/commands/registry.js +1 -1
  5. package/dist/core/commands/registry.js.map +1 -1
  6. package/dist/core/config/builtin_themes.js +31 -0
  7. package/dist/core/config/builtin_themes.js.map +1 -1
  8. package/dist/core/models/catalog.js +14 -1
  9. package/dist/core/models/catalog.js.map +1 -1
  10. package/dist/core/nook/cli.js +52 -1
  11. package/dist/core/nook/cli.js.map +1 -1
  12. package/dist/core/nook/client.js +113 -2
  13. package/dist/core/nook/client.js.map +1 -1
  14. package/dist/core/nook/deploy.js +27 -8
  15. package/dist/core/nook/deploy.js.map +1 -1
  16. package/dist/core/nook/index.js +2 -2
  17. package/dist/core/nook/index.js.map +1 -1
  18. package/dist/core/nook/validation.js +25 -10
  19. package/dist/core/nook/validation.js.map +1 -1
  20. package/dist/core/personas.js +8 -8
  21. package/dist/core/personas.js.map +1 -1
  22. package/dist/core/runtime/chat_runtime.js +3 -0
  23. package/dist/core/runtime/chat_runtime.js.map +1 -1
  24. package/dist/core/runtime/conversation_turn_runtime.js +7 -0
  25. package/dist/core/runtime/conversation_turn_runtime.js.map +1 -1
  26. package/dist/core/telegram/adapter.js +21 -10
  27. package/dist/core/telegram/adapter.js.map +1 -1
  28. package/dist/core/telegram/cli.js +0 -25
  29. package/dist/core/telegram/cli.js.map +1 -1
  30. package/dist/core/telegram/runtime.js +6 -1
  31. package/dist/core/telegram/runtime.js.map +1 -1
  32. package/dist/core/telegram/session_manager.js +255 -20
  33. package/dist/core/telegram/session_manager.js.map +1 -1
  34. package/dist/core/telegram/workspace.js +55 -32
  35. package/dist/core/telegram/workspace.js.map +1 -1
  36. package/dist/core/tools/execution_backend.js +12 -0
  37. package/dist/core/tools/execution_backend.js.map +1 -1
  38. package/dist/core/tools/nook.js +56 -4
  39. package/dist/core/tools/nook.js.map +1 -1
  40. package/dist/core/types.js +1 -0
  41. package/dist/core/types.js.map +1 -1
  42. package/dist/core/utils/model_stream.js +2 -1
  43. package/dist/core/utils/model_stream.js.map +1 -1
  44. package/dist/core/version.js +1 -1
  45. package/dist/execution/cloudflare_sandbox_execution_environment.js +8 -0
  46. package/dist/execution/cloudflare_sandbox_execution_environment.js.map +1 -1
  47. package/dist/execution/fly_sprite_execution_environment.js +8 -0
  48. package/dist/execution/fly_sprite_execution_environment.js.map +1 -1
  49. package/dist/host/local_session_host.js +18 -2
  50. package/dist/host/local_session_host.js.map +1 -1
  51. package/dist/host/session_protocol_handler.js +132 -34
  52. package/dist/host/session_protocol_handler.js.map +1 -1
  53. package/dist/nook/README.md +20 -0
  54. package/dist/nook/worker/index.js +277 -17
  55. package/dist/nook/worker/index.js.map +1 -1
  56. package/dist/protocol/index.d.ts +2 -2
  57. package/dist/protocol/index.js +1 -1
  58. package/dist/protocol/index.js.map +1 -1
  59. package/dist/protocol/session_protocol.d.ts +52 -7
  60. package/dist/protocol/session_protocol.js +120 -3
  61. package/dist/protocol/session_protocol.js.map +1 -1
  62. package/dist/sdk/index.d.ts +3 -3
  63. package/dist/sdk/index.js.map +1 -1
  64. package/dist/sdk/session.js +72 -10
  65. package/dist/sdk/session.js.map +1 -1
  66. package/dist/sdk/types.d.ts +11 -3
  67. package/dist/transport/in_process_session_transport.js +15 -1
  68. package/dist/transport/in_process_session_transport.js.map +1 -1
  69. package/dist/transport/index.d.ts +1 -1
  70. package/dist/transport/index.js.map +1 -1
  71. package/dist/transport/session_protocol_transport_helpers.js +14 -0
  72. package/dist/transport/session_protocol_transport_helpers.js.map +1 -1
  73. package/dist/transport/session_transport.d.ts +3 -1
  74. package/dist/transport/stdio_session_transport.d.ts +3 -1
  75. package/dist/transport/stdio_session_transport.js +15 -1
  76. package/dist/transport/stdio_session_transport.js.map +1 -1
  77. package/dist/transport/websocket_session_transport.d.ts +3 -1
  78. package/dist/transport/websocket_session_transport.js +15 -1
  79. package/dist/transport/websocket_session_transport.js.map +1 -1
  80. package/dist/tui/chat_view.js +9 -10
  81. package/dist/tui/chat_view.js.map +1 -1
  82. package/dist/tui/session_chat_app.js +0 -3
  83. package/dist/tui/session_chat_app.js.map +1 -1
  84. package/dist/tui/session_chat_controller.js +47 -78
  85. package/dist/tui/session_chat_controller.js.map +1 -1
  86. package/dist/tui/session_tool_execution_backend.js +9 -4
  87. package/dist/tui/session_tool_execution_backend.js.map +1 -1
  88. package/dist/tui/ui/custom_editor.js +0 -12
  89. package/dist/tui/ui/custom_editor.js.map +1 -1
  90. package/dist/tui/ui/{queued_messages.js → pending_messages.js} +14 -11
  91. package/dist/tui/ui/pending_messages.js.map +1 -0
  92. package/dist/tui/ui/subagent_panel.js +0 -7
  93. package/dist/tui/ui/subagent_panel.js.map +1 -1
  94. package/dist/tui/ui/theme/palette.js +1 -0
  95. package/dist/tui/ui/theme/palette.js.map +1 -1
  96. package/dist/tui/ui/theme/theme.js +2 -0
  97. package/dist/tui/ui/theme/theme.js.map +1 -1
  98. package/package.json +3 -3
  99. package/dist/tui/chat_controller/queued_user_messages.js +0 -80
  100. package/dist/tui/chat_controller/queued_user_messages.js.map +0 -1
  101. package/dist/tui/ui/queued_messages.js.map +0 -1
@@ -1,15 +1,48 @@
1
+ import { randomUUID } from "node:crypto";
1
2
  import { formatSteeringUserMessage } from "../core/runtime/steering.js";
2
- import { createSessionProtocolErrorResponse, createSessionProtocolReadyMessage, createSessionProtocolSuccessResponse, SESSION_PROTOCOL_ERROR_CODES, SESSION_PROTOCOL_METHODS, SESSION_PROTOCOL_VERSION, } from "../protocol/session_protocol.js";
3
+ import { createSessionProtocolErrorResponse, createSessionProtocolPendingUserMessagesMessage, createSessionProtocolReadyMessage, createSessionProtocolSuccessResponse, SESSION_PROTOCOL_ERROR_CODES, SESSION_PROTOCOL_METHODS, SESSION_PROTOCOL_VERSION, } from "../protocol/session_protocol.js";
3
4
  const sessionMutationQueues = new WeakMap();
4
5
  const sessionLiveStates = new WeakMap();
5
6
  function getSessionLiveState(session) {
6
7
  let state = sessionLiveStates.get(session);
7
8
  if (!state) {
8
- state = { pendingSteeringSubmits: [], pendingQueuedSubmits: [] };
9
+ state = {
10
+ revision: 1,
11
+ pendingSteeringSubmits: [],
12
+ pendingQueuedSubmits: [],
13
+ listeners: new Set(),
14
+ };
9
15
  sessionLiveStates.set(session, state);
10
16
  }
11
17
  return state;
12
18
  }
19
+ function buildPendingUserMessagesState(state) {
20
+ return {
21
+ revision: state.revision,
22
+ messages: [
23
+ ...state.pendingSteeringSubmits.map((pending) => ({
24
+ id: pending.id,
25
+ mode: "steer",
26
+ text: pending.request.params.text,
27
+ })),
28
+ ...state.pendingQueuedSubmits.map((pending) => ({
29
+ id: pending.id,
30
+ mode: "queue",
31
+ text: pending.request.params.text,
32
+ })),
33
+ ],
34
+ };
35
+ }
36
+ function publishPendingUserMessages(session, state) {
37
+ state.revision += 1;
38
+ const message = createSessionProtocolPendingUserMessagesMessage({
39
+ sessionId: session.sessionId,
40
+ state: buildPendingUserMessagesState(state),
41
+ });
42
+ for (const listener of [...state.listeners]) {
43
+ listener(message);
44
+ }
45
+ }
13
46
  function getSessionMutationQueueState(session) {
14
47
  let state = sessionMutationQueues.get(session);
15
48
  if (!state) {
@@ -63,6 +96,9 @@ export class SessionProtocolHandler {
63
96
  case "session.steer":
64
97
  await this.handleSteer(request);
65
98
  return;
99
+ case "session.cancelPendingMessages":
100
+ await this.handleCancelPendingMessages(request);
101
+ return;
66
102
  case "session.retry":
67
103
  await this.handleRetry(request);
68
104
  return;
@@ -137,7 +173,7 @@ export class SessionProtocolHandler {
137
173
  const interruptActiveTurns = mode === "interrupt" || shutdownHost;
138
174
  const states = [...this.sessionStates.values()];
139
175
  for (const state of states) {
140
- this.unsubscribeDeltaListener(state);
176
+ this.unsubscribeSessionListeners(state);
141
177
  if (interruptActiveTurns && (state.live.activeSubmit || state.session.isTurnRunning)) {
142
178
  state.session.interruptTurn();
143
179
  }
@@ -233,7 +269,8 @@ export class SessionProtocolHandler {
233
269
  }
234
270
  const startedSubmit = await this.enqueueMutation(state, () => {
235
271
  if (state.live.activeSubmit || state.session.isTurnRunning || state.live.activeBash) {
236
- state.live.pendingQueuedSubmits.push({ handler: this, request });
272
+ state.live.pendingQueuedSubmits.push({ id: randomUUID(), handler: this, request });
273
+ publishPendingUserMessages(state.session, state.live);
237
274
  return undefined;
238
275
  }
239
276
  return this.startUserMessageTurn(state, request);
@@ -267,7 +304,8 @@ export class SessionProtocolHandler {
267
304
  const startedSubmit = await this.enqueueMutation(state, () => {
268
305
  const hasActiveSessionWork = state.live.activeSubmit || state.session.isTurnRunning || state.live.activeBash;
269
306
  if (state.live.pendingSteeringSubmits.length > 0 || hasActiveSessionWork) {
270
- state.live.pendingSteeringSubmits.push({ handler: this, request });
307
+ state.live.pendingSteeringSubmits.push({ id: randomUUID(), handler: this, request });
308
+ publishPendingUserMessages(state.session, state.live);
271
309
  if (hasActiveSessionWork) {
272
310
  state.session.requestTurnBoundaryStop();
273
311
  }
@@ -291,6 +329,35 @@ export class SessionProtocolHandler {
291
329
  this.schedulePendingSubmitDrains(state);
292
330
  }
293
331
  }
332
+ async handleCancelPendingMessages(request) {
333
+ const state = await this.getSessionState(request.params.sessionId);
334
+ if (!state) {
335
+ this.sendSessionNotFound(request.id, request.params.sessionId);
336
+ return;
337
+ }
338
+ const cancelled = await this.enqueueMutation(state, () => {
339
+ const pending = [
340
+ ...state.live.pendingSteeringSubmits.splice(0),
341
+ ...state.live.pendingQueuedSubmits.splice(0),
342
+ ];
343
+ if (pending.length === 0) {
344
+ return [];
345
+ }
346
+ state.session.cancelTurnBoundaryStop();
347
+ publishPendingUserMessages(state.session, state.live);
348
+ for (const item of pending) {
349
+ item.handler.sendMessage(createSessionProtocolErrorResponse(item.request.id, SESSION_PROTOCOL_ERROR_CODES.cancelled, "pending user message was cancelled"));
350
+ }
351
+ return pending.map((item) => ({
352
+ id: item.id,
353
+ mode: item.request.method === "session.steer" ? "steer" : "queue",
354
+ text: item.request.params.text,
355
+ }));
356
+ });
357
+ this.sendMessage(createSessionProtocolSuccessResponse(request.id, "session.cancelPendingMessages", {
358
+ cancelled,
359
+ }));
360
+ }
294
361
  async handleExec(request) {
295
362
  const state = await this.getSessionState(request.params.sessionId);
296
363
  if (!state) {
@@ -353,8 +420,9 @@ export class SessionProtocolHandler {
353
420
  await session.dispose();
354
421
  return;
355
422
  }
356
- this.registerSession(session);
357
- this.sendMessage(createSessionProtocolSuccessResponse(request.id, "session.create", await session.snapshot()));
423
+ this.sendMessage(createSessionProtocolSuccessResponse(request.id, "session.create", {
424
+ sessionId: session.sessionId,
425
+ }));
358
426
  }
359
427
  async handleList(request) {
360
428
  const result = {
@@ -364,30 +432,33 @@ export class SessionProtocolHandler {
364
432
  }
365
433
  async handleAttach(request) {
366
434
  const wasObserved = this.sessionStates.has(request.params.sessionId);
367
- const state = await this.getSessionState(request.params.sessionId, {
368
- bufferInitialDeltas: !wasObserved,
369
- });
435
+ const state = await this.getSessionState(request.params.sessionId);
370
436
  if (!state) {
371
437
  this.sendMessage(createSessionProtocolErrorResponse(request.id, SESSION_PROTOCOL_ERROR_CODES.notFound, "session not found", { sessionId: request.params.sessionId }));
372
438
  return;
373
439
  }
374
- if (!wasObserved && !state.bufferedDeltas) {
375
- state.bufferedDeltas = [];
376
- }
440
+ state.bufferedDeltas ??= [];
441
+ state.bufferedPendingUserMessages ??= [];
377
442
  let observed = false;
378
443
  try {
379
444
  const snapshot = await state.session.snapshot();
380
- this.sendMessage(createSessionProtocolSuccessResponse(request.id, "session.observe", snapshot));
445
+ const pendingUserMessages = buildPendingUserMessagesState(state.live);
446
+ this.sendMessage(createSessionProtocolSuccessResponse(request.id, "session.observe", {
447
+ snapshot,
448
+ pendingUserMessages,
449
+ }));
381
450
  observed = true;
382
451
  this.flushBufferedDeltasAfterSnapshot(state, snapshot.revision);
452
+ this.flushBufferedPendingUserMessagesAfter(state, pendingUserMessages.revision);
383
453
  }
384
454
  finally {
385
455
  if (!observed && !wasObserved) {
386
- this.unsubscribeDeltaListener(state);
456
+ this.unsubscribeSessionListeners(state);
387
457
  this.sessionStates.delete(request.params.sessionId);
388
458
  }
389
459
  else if (!observed) {
390
460
  this.flushBufferedDeltasAfterSnapshot(state, 0);
461
+ this.flushBufferedPendingUserMessagesAfter(state, 0);
391
462
  }
392
463
  }
393
464
  }
@@ -397,7 +468,7 @@ export class SessionProtocolHandler {
397
468
  this.sendSessionNotFound(request.id, request.params.sessionId);
398
469
  return;
399
470
  }
400
- this.unsubscribeDeltaListener(state);
471
+ this.unsubscribeSessionListeners(state);
401
472
  this.sessionStates.delete(request.params.sessionId);
402
473
  const result = {
403
474
  unobserved: true,
@@ -478,6 +549,7 @@ export class SessionProtocolHandler {
478
549
  return undefined;
479
550
  }
480
551
  const requests = state.live.pendingSteeringSubmits.splice(0);
552
+ publishPendingUserMessages(state.session, state.live);
481
553
  const primaryRequest = requests[0];
482
554
  const preferredHistoryEntryId = requests.length === 1 ? primaryRequest.request.params.historyEntryId : undefined;
483
555
  let userHistoryEntryId;
@@ -522,6 +594,7 @@ export class SessionProtocolHandler {
522
594
  return undefined;
523
595
  }
524
596
  const pending = state.live.pendingQueuedSubmits.shift();
597
+ publishPendingUserMessages(state.session, state.live);
525
598
  try {
526
599
  return await pending.handler.startUserMessageTurn(state, pending.request);
527
600
  }
@@ -549,6 +622,9 @@ export class SessionProtocolHandler {
549
622
  const pending = method === "session.steer"
550
623
  ? state.live.pendingSteeringSubmits.splice(0)
551
624
  : state.live.pendingQueuedSubmits.splice(0);
625
+ if (pending.length > 0) {
626
+ publishPendingUserMessages(state.session, state.live);
627
+ }
552
628
  this.sendUserMessageDrainFailure(pending, error);
553
629
  }
554
630
  sendUserMessageDrainFailure(requests, error) {
@@ -793,17 +869,24 @@ export class SessionProtocolHandler {
793
869
  }
794
870
  rejectPendingSteeringSubmits(state, message) {
795
871
  const requests = state.live.pendingSteeringSubmits.splice(0);
872
+ if (requests.length > 0) {
873
+ state.session.cancelTurnBoundaryStop();
874
+ publishPendingUserMessages(state.session, state.live);
875
+ }
796
876
  for (const { handler, request } of requests) {
797
877
  handler.sendMessage(createSessionProtocolErrorResponse(request.id, SESSION_PROTOCOL_ERROR_CODES.invalidRequest, message));
798
878
  }
799
879
  }
800
880
  rejectPendingQueuedSubmits(state, message) {
801
881
  const requests = state.live.pendingQueuedSubmits.splice(0);
882
+ if (requests.length > 0) {
883
+ publishPendingUserMessages(state.session, state.live);
884
+ }
802
885
  for (const { handler, request } of requests) {
803
886
  handler.sendMessage(createSessionProtocolErrorResponse(request.id, SESSION_PROTOCOL_ERROR_CODES.invalidRequest, message));
804
887
  }
805
888
  }
806
- registerSession(session, options = {}) {
889
+ registerSession(session) {
807
890
  const existing = this.sessionStates.get(session.sessionId);
808
891
  if (existing) {
809
892
  return existing;
@@ -811,7 +894,6 @@ export class SessionProtocolHandler {
811
894
  const state = {
812
895
  session,
813
896
  live: getSessionLiveState(session),
814
- ...(options.bufferInitialDeltas ? { bufferedDeltas: [] } : {}),
815
897
  };
816
898
  state.unsubscribeDelta = session.onDelta((delta) => {
817
899
  if (this.closed || !this.sessionStates.has(session.sessionId)) {
@@ -829,6 +911,18 @@ export class SessionProtocolHandler {
829
911
  }
830
912
  this.sendMessage(message);
831
913
  });
914
+ const pendingUserMessagesListener = (message) => {
915
+ if (this.closed || !this.sessionStates.has(session.sessionId)) {
916
+ return;
917
+ }
918
+ if (state.bufferedPendingUserMessages) {
919
+ state.bufferedPendingUserMessages.push(message);
920
+ return;
921
+ }
922
+ this.sendMessage(message);
923
+ };
924
+ state.live.listeners.add(pendingUserMessagesListener);
925
+ state.unsubscribePendingUserMessages = () => state.live.listeners.delete(pendingUserMessagesListener);
832
926
  this.sessionStates.set(session.sessionId, state);
833
927
  try {
834
928
  this.clientToolRegistration?.attachSession(session.sessionId);
@@ -840,7 +934,7 @@ export class SessionProtocolHandler {
840
934
  }
841
935
  return state;
842
936
  }
843
- async getSessionState(sessionId, options = {}) {
937
+ async getSessionState(sessionId) {
844
938
  const existing = this.sessionStates.get(sessionId);
845
939
  if (existing) {
846
940
  if (existing.session.isDisposed || existing.session.sessionId !== sessionId) {
@@ -851,7 +945,7 @@ export class SessionProtocolHandler {
851
945
  return existing;
852
946
  }
853
947
  const session = await this.host.observeSession(sessionId);
854
- return session ? this.registerSession(session, options) : undefined;
948
+ return session ? this.registerSession(session) : undefined;
855
949
  }
856
950
  flushBufferedDeltasAfterSnapshot(state, snapshotRevision) {
857
951
  const bufferedDeltas = state.bufferedDeltas;
@@ -865,6 +959,18 @@ export class SessionProtocolHandler {
865
959
  }
866
960
  }
867
961
  }
962
+ flushBufferedPendingUserMessagesAfter(state, pendingRevision) {
963
+ const bufferedPendingUserMessages = state.bufferedPendingUserMessages;
964
+ if (!bufferedPendingUserMessages) {
965
+ return;
966
+ }
967
+ state.bufferedPendingUserMessages = undefined;
968
+ for (const message of bufferedPendingUserMessages) {
969
+ if (message.state.revision > pendingRevision) {
970
+ this.sendMessage(message);
971
+ }
972
+ }
973
+ }
868
974
  sendSessionNotFound(id, sessionId) {
869
975
  this.sendMessage(createSessionProtocolErrorResponse(id, SESSION_PROTOCOL_ERROR_CODES.notFound, "session not found", { sessionId }));
870
976
  }
@@ -919,22 +1025,14 @@ export class SessionProtocolHandler {
919
1025
  // ignore bash failure while finishing active mutation
920
1026
  }
921
1027
  }
922
- unsubscribeDeltaListener(state) {
923
- this.unsubscribeSessionListeners(state);
924
- }
925
1028
  unsubscribeSessionListeners(state) {
926
1029
  this.clientToolRegistration?.detachSession(state.session.sessionId);
927
- if (!state.unsubscribeDelta) {
928
- // continue to ephemeral cleanup below
929
- }
930
- else {
931
- state.unsubscribeDelta();
932
- state.unsubscribeDelta = undefined;
933
- }
934
- if (state.unsubscribeEphemeral) {
935
- state.unsubscribeEphemeral();
936
- state.unsubscribeEphemeral = undefined;
937
- }
1030
+ state.unsubscribeDelta?.();
1031
+ state.unsubscribeDelta = undefined;
1032
+ state.unsubscribeEphemeral?.();
1033
+ state.unsubscribeEphemeral = undefined;
1034
+ state.unsubscribePendingUserMessages?.();
1035
+ state.unsubscribePendingUserMessages = undefined;
938
1036
  }
939
1037
  sendMessage(message) {
940
1038
  if (this.closed) {
@@ -1 +1 @@
1
- {"version":3,"file":"session_protocol_handler.js","sourceRoot":"","sources":["../../src/host/session_protocol_handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session_protocol_handler.js","sourceRoot":"","sources":["../../src/host/session_protocol_handler.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ V0 scope is intentionally narrow:
6
6
 
7
7
  - Cloudflare only: one Worker, R2 assets, a global Registry Durable Object, and one Site Durable Object per site.
8
8
  - Static assets only. Build locally first, then deploy the output directory.
9
+ - Templates are Nook-hosted editable directories. Copy them locally, modify/build normally, then deploy explicitly.
9
10
  - Sites live at `https://<nook-domain>/<site>/`; there are no wildcard subdomain app URLs or `workers.dev` fallback.
10
11
  - Deploys are private by default. `--public` makes the active deployment public; omitting it on the next deploy makes the active deployment private again.
11
12
  - Browser KV is per-site JSON state. It survives redeploys and is public-writable when the active deployment is public.
@@ -70,6 +71,21 @@ Deploy requirements:
70
71
  - Each site can have at most three non-expired pending deploy sessions.
71
72
  - Deployed asset URLs remain stable across deploys, so responses require cache revalidation.
72
73
 
74
+ ## templates
75
+
76
+ Templates are reusable directory snapshots stored in the configured Nook backend. They are not deployed directly and do not perform variable substitution or builds.
77
+
78
+ ```sh
79
+ tau nook template list
80
+ tau nook template save starter ./app
81
+ tau nook template copy starter ./next-app
82
+ tau nook template delete starter
83
+ ```
84
+
85
+ `save` creates or replaces the named template from a local directory. `copy` requires the destination directory to already exist and be empty, then writes the template there so you can edit it locally, install dependencies, build, and deploy the resulting static output with `tau nook deploy`.
86
+
87
+ Template files use the same safety rules as deploy artifacts: hidden files/directories, symlinks, reserved `/__nook/*` paths, and invalid paths are rejected. Unlike deploys, templates do not need a root `index.html`.
88
+
73
89
  ## browser SDK
74
90
 
75
91
  The Worker injects `/<site>/__nook/client.js` just after the opening HTML body tag. If your code runs from the document head, wait for `DOMContentLoaded` (or otherwise run after the page has loaded) before using `window.nook`:
@@ -91,6 +107,10 @@ KV values must be JSON-serializable. Keys and total site KV storage have fixed g
91
107
  tau nook skill
92
108
  tau nook list
93
109
  tau nook delete demo
110
+ tau nook template list
111
+ tau nook template copy starter ./app
112
+ tau nook template save starter ./app
113
+ tau nook template delete starter
94
114
  tau nook kv get demo settings
95
115
  tau nook kv put demo settings '{"theme":"dark"}'
96
116
  tau nook kv delete demo settings