ticlawk 0.1.16-dev.9 → 0.1.16

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 (41) hide show
  1. package/README.md +15 -3
  2. package/bin/ticlawk.mjs +208 -21
  3. package/package.json +1 -1
  4. package/src/adapters/ticlawk/api.mjs +283 -48
  5. package/src/adapters/ticlawk/credentials.mjs +41 -1
  6. package/src/adapters/ticlawk/index.mjs +126 -121
  7. package/src/adapters/ticlawk/wake-client.mjs +1 -1
  8. package/src/cli/agent-commands.mjs +557 -18
  9. package/src/core/agent-cli-handlers.mjs +435 -18
  10. package/src/core/agent-home.mjs +81 -1
  11. package/src/core/argv.mjs +11 -1
  12. package/src/core/events/worker-events.mjs +32 -36
  13. package/src/core/http.mjs +119 -0
  14. package/src/core/runtime-contract.mjs +0 -1
  15. package/src/core/runtime-env.mjs +7 -0
  16. package/src/core/runtime-support.mjs +108 -77
  17. package/src/runtimes/_shared/agent-handbook.mjs +45 -0
  18. package/src/runtimes/_shared/brand.mjs +2 -0
  19. package/src/runtimes/_shared/goal-task-protocol.mjs +50 -0
  20. package/src/runtimes/_shared/handbook/BASICS.md +27 -0
  21. package/src/runtimes/_shared/handbook/COLLABORATION.md +37 -0
  22. package/src/runtimes/_shared/handbook/COMMUNICATION.md +55 -0
  23. package/src/runtimes/_shared/handbook/DM_SCOPE.md +13 -0
  24. package/src/runtimes/_shared/handbook/GOAL_AUTHORITY.md +46 -0
  25. package/src/runtimes/_shared/handbook/GOAL_TASK_CORE.md +43 -0
  26. package/src/runtimes/_shared/handbook/GROUP_ADMIN_SCOPE.md +21 -0
  27. package/src/runtimes/_shared/handbook/GROUP_MEMBER_SCOPE.md +15 -0
  28. package/src/runtimes/_shared/handbook/SURFACES.md +41 -0
  29. package/src/runtimes/_shared/handbook/TASK_WORKER.md +14 -0
  30. package/src/runtimes/_shared/standing-prompt.mjs +134 -278
  31. package/src/runtimes/_shared/wake-prompt.mjs +261 -0
  32. package/src/runtimes/claude-code/index.mjs +19 -46
  33. package/src/runtimes/claude-code/session.mjs +2 -7
  34. package/src/runtimes/codex/index.mjs +115 -63
  35. package/src/runtimes/codex/session.mjs +2 -12
  36. package/src/runtimes/openclaw/index.mjs +11 -24
  37. package/src/runtimes/opencode/index.mjs +38 -60
  38. package/src/runtimes/opencode/session.mjs +12 -12
  39. package/src/runtimes/pi/index.mjs +38 -60
  40. package/src/runtimes/pi/session.mjs +9 -6
  41. package/ticlawk.mjs +0 -30
package/README.md CHANGED
@@ -212,12 +212,16 @@ Usage:
212
212
  ticlawk version
213
213
 
214
214
  Agent CLI (run inside an agent runtime; requires TICLAWK_RUNTIME_AGENT_ID):
215
- ticlawk message send --target <t> # body on stdin
215
+ ticlawk message send --target <t> --phase progress|final # body on stdin
216
216
  ticlawk message read --target <t> [opts]
217
217
  ticlawk task claim --message-id <id>
218
218
  ticlawk task update --task-id <id> --status <s>
219
- ticlawk task list [--target <t>]
219
+ ticlawk task list [--target <t>] # group admins see the full task board
220
+ ticlawk charter get --target <t>
220
221
  ticlawk group members --target <t>
222
+ ticlawk group list
223
+ ticlawk agent list
224
+ ticlawk dashboard get --conversation-id <id>
221
225
  ticlawk server info [--refresh]
222
226
 
223
227
  Commands:
@@ -226,7 +230,15 @@ Commands:
226
230
  profile list or switch saved local identities
227
231
  message send/read chat messages (agent CLI surface)
228
232
  task claim/update/list tasks (agent CLI surface)
229
- group list members of a group conversation (agent CLI surface)
233
+ charter get/set conversation goal and role spec (agent CLI surface)
234
+ group create/list/delete groups, manage charters/members (agent CLI surface)
235
+ dashboard set/get conversation dashboards (agent CLI surface)
236
+ briefing publish/get owner briefings (agent CLI surface)
237
+ agent list/create/delete owned agent slots (agent CLI surface)
238
+ service publish/list/call shared services (agent CLI surface)
239
+ credential request owner-filled credentials (agent CLI surface)
240
+ reminder schedule/list/snooze/cancel reminders (agent CLI surface)
241
+ attachment view private chat assets (agent CLI surface)
230
242
  server server-info introspection (agent CLI surface)
231
243
  install-daemon install or refresh the background daemon
232
244
  update update the npm package and refresh the daemon
package/bin/ticlawk.mjs CHANGED
@@ -32,6 +32,25 @@ import {
32
32
  AGENT_COMMAND_HELP,
33
33
  runAttachmentViewCommand,
34
34
  runGroupCreateCommand,
35
+ runWorkstreamCharterGetCommand,
36
+ runWorkstreamCharterSetCommand,
37
+ runWorkstreamCreateCommand,
38
+ runWorkstreamDeleteCommand,
39
+ runWorkstreamListCommand,
40
+ runAgentListCommand,
41
+ runAgentCreateCommand,
42
+ runAgentDeleteCommand,
43
+ runDashboardSetCommand,
44
+ runDashboardGetCommand,
45
+ runCredentialRequestCommand,
46
+ runBriefingPublishCommand,
47
+ runBriefingGetCommand,
48
+ runServiceCreateCommand,
49
+ runServiceUpdateCommand,
50
+ runServiceDeleteCommand,
51
+ runServiceListCommand,
52
+ runServiceInfoCommand,
53
+ runServiceCallCommand,
35
54
  runGroupMembersAddCommand,
36
55
  runGroupMembersCommand,
37
56
  runGroupMembersRemoveCommand,
@@ -92,12 +111,16 @@ Usage:
92
111
  ticlawk version
93
112
 
94
113
  Agent CLI (run inside an agent runtime; requires TICLAWK_RUNTIME_AGENT_ID):
95
- ticlawk message send --target <t> # body on stdin
114
+ ticlawk message send --target <t> --phase progress|final # body on stdin
96
115
  ticlawk message read --target <t> [opts]
97
116
  ticlawk task claim --message-id <id>
98
117
  ticlawk task update --task-id <id> --status <s>
99
- ticlawk task list [--target <t>]
118
+ ticlawk task list [--target <t>] # group admins see the full task board
119
+ ticlawk charter get --target <t>
100
120
  ticlawk group members --target <t>
121
+ ticlawk group list
122
+ ticlawk agent list
123
+ ticlawk dashboard get --conversation-id <id>
101
124
  ticlawk server info [--refresh]
102
125
 
103
126
  Commands:
@@ -106,7 +129,15 @@ Commands:
106
129
  profile list or switch saved local identities
107
130
  message send/read chat messages (agent CLI surface)
108
131
  task claim/update/list tasks (agent CLI surface)
109
- group list members of a group conversation (agent CLI surface)
132
+ charter get/set conversation goal and role spec (agent CLI surface)
133
+ group create/list/delete groups, manage charters/members (agent CLI surface)
134
+ dashboard set/get conversation dashboards (agent CLI surface)
135
+ briefing publish/get owner briefings (agent CLI surface)
136
+ agent list/create/delete owned agent slots (agent CLI surface)
137
+ service publish/list/call shared services (agent CLI surface)
138
+ credential request owner-filled credentials (agent CLI surface)
139
+ reminder schedule/list/snooze/cancel reminders (agent CLI surface)
140
+ attachment view private chat assets (agent CLI surface)
110
141
  server server-info introspection (agent CLI surface)
111
142
  install-daemon install or refresh the background daemon
112
143
  update update the npm package and refresh the daemon
@@ -178,6 +209,10 @@ function printHelp(helpPath, args = {}) {
178
209
  console.log(getInstallDaemonHelp());
179
210
  return;
180
211
  }
212
+ if (AGENT_COMMAND_HELP[head]) {
213
+ console.log(AGENT_COMMAND_HELP[head]);
214
+ return;
215
+ }
181
216
  printUsage();
182
217
  }
183
218
 
@@ -357,24 +392,6 @@ async function main() {
357
392
  process.exit(1);
358
393
  }
359
394
 
360
- if (command === 'profile') {
361
- const sub = args._[1];
362
- if (args.help || args.h || !sub) {
363
- console.log(AGENT_COMMAND_HELP.profile);
364
- return;
365
- }
366
- if (sub === 'show') {
367
- process.exitCode = await runProfileShowCommand(args);
368
- return;
369
- }
370
- if (sub === 'update') {
371
- process.exitCode = await runProfileUpdateCommand(args);
372
- return;
373
- }
374
- console.error(`unknown profile subcommand: ${sub}`);
375
- process.exit(1);
376
- }
377
-
378
395
  if (command === 'reminder') {
379
396
  const sub = args._[1];
380
397
  if (args.help || args.h || !sub) {
@@ -453,6 +470,147 @@ async function main() {
453
470
  process.exit(1);
454
471
  }
455
472
 
473
+ if (command === 'workstream') {
474
+ const sub = args._[1];
475
+ if (args.help || args.h || !sub) {
476
+ console.log(AGENT_COMMAND_HELP.workstream);
477
+ return;
478
+ }
479
+ if (sub === 'create') {
480
+ process.exitCode = await runWorkstreamCreateCommand(args);
481
+ return;
482
+ }
483
+ if (sub === 'delete') {
484
+ process.exitCode = await runWorkstreamDeleteCommand(args);
485
+ return;
486
+ }
487
+ if (sub === 'list') {
488
+ process.exitCode = await runWorkstreamListCommand(args);
489
+ return;
490
+ }
491
+ if (sub === 'charter') {
492
+ const op = args._[2];
493
+ if (op === 'get') {
494
+ process.exitCode = await runWorkstreamCharterGetCommand(args);
495
+ return;
496
+ }
497
+ if (op === 'set') {
498
+ process.exitCode = await runWorkstreamCharterSetCommand(args);
499
+ return;
500
+ }
501
+ console.error(`unknown workstream charter op: ${op}`);
502
+ process.exit(1);
503
+ }
504
+ console.error(`unknown workstream subcommand: ${sub}`);
505
+ process.exit(1);
506
+ }
507
+
508
+ if (command === 'agent') {
509
+ const sub = args._[1];
510
+ if (args.help || args.h || !sub) {
511
+ console.log(AGENT_COMMAND_HELP.agent);
512
+ return;
513
+ }
514
+ if (sub === 'list') {
515
+ process.exitCode = await runAgentListCommand(args);
516
+ return;
517
+ }
518
+ if (sub === 'create') {
519
+ process.exitCode = await runAgentCreateCommand(args);
520
+ return;
521
+ }
522
+ if (sub === 'delete') {
523
+ process.exitCode = await runAgentDeleteCommand(args);
524
+ return;
525
+ }
526
+ console.error(`unknown agent subcommand: ${sub}`);
527
+ process.exit(1);
528
+ }
529
+
530
+ if (command === 'service') {
531
+ const sub = args._[1];
532
+ if (args.help || args.h || !sub) {
533
+ console.log(AGENT_COMMAND_HELP.service);
534
+ return;
535
+ }
536
+ if (sub === 'create') { process.exitCode = await runServiceCreateCommand(args); return; }
537
+ if (sub === 'update') { process.exitCode = await runServiceUpdateCommand(args); return; }
538
+ if (sub === 'delete') { process.exitCode = await runServiceDeleteCommand(args); return; }
539
+ if (sub === 'list') { process.exitCode = await runServiceListCommand(args); return; }
540
+ if (sub === 'info') { process.exitCode = await runServiceInfoCommand(args); return; }
541
+ if (sub === 'call') { process.exitCode = await runServiceCallCommand(args); return; }
542
+ console.error(`unknown service subcommand: ${sub}`);
543
+ process.exit(1);
544
+ }
545
+
546
+ if (command === 'briefing') {
547
+ const sub = args._[1];
548
+ if (args.help || args.h || !sub) {
549
+ console.log(AGENT_COMMAND_HELP.briefing);
550
+ return;
551
+ }
552
+ if (sub === 'publish') {
553
+ process.exitCode = await runBriefingPublishCommand(args);
554
+ return;
555
+ }
556
+ if (sub === 'get') {
557
+ process.exitCode = await runBriefingGetCommand(args);
558
+ return;
559
+ }
560
+ console.error(`unknown briefing subcommand: ${sub}`);
561
+ process.exit(1);
562
+ }
563
+
564
+ if (command === 'credential') {
565
+ const sub = args._[1];
566
+ if (args.help || args.h || !sub) {
567
+ console.log(AGENT_COMMAND_HELP.credential);
568
+ return;
569
+ }
570
+ if (sub === 'request') {
571
+ process.exitCode = await runCredentialRequestCommand(args);
572
+ return;
573
+ }
574
+ console.error(`unknown credential subcommand: ${sub}`);
575
+ process.exit(1);
576
+ }
577
+
578
+ if (command === 'dashboard') {
579
+ const sub = args._[1];
580
+ if (args.help || args.h || !sub) {
581
+ console.log(AGENT_COMMAND_HELP.dashboard);
582
+ return;
583
+ }
584
+ if (sub === 'set') {
585
+ process.exitCode = await runDashboardSetCommand(args);
586
+ return;
587
+ }
588
+ if (sub === 'get') {
589
+ process.exitCode = await runDashboardGetCommand(args);
590
+ return;
591
+ }
592
+ console.error(`unknown dashboard subcommand: ${sub}`);
593
+ process.exit(1);
594
+ }
595
+
596
+ if (command === 'charter') {
597
+ const sub = args._[1];
598
+ if (args.help || args.h || !sub) {
599
+ console.log(AGENT_COMMAND_HELP.charter);
600
+ return;
601
+ }
602
+ if (sub === 'get') {
603
+ process.exitCode = await runWorkstreamCharterGetCommand(args);
604
+ return;
605
+ }
606
+ if (sub === 'set') {
607
+ process.exitCode = await runWorkstreamCharterSetCommand(args);
608
+ return;
609
+ }
610
+ console.error(`unknown charter subcommand: ${sub}`);
611
+ process.exit(1);
612
+ }
613
+
456
614
  if (command === 'group') {
457
615
  const sub = args._[1];
458
616
  if (args.help || args.h || !sub) {
@@ -463,6 +621,27 @@ async function main() {
463
621
  process.exitCode = await runGroupCreateCommand(args);
464
622
  return;
465
623
  }
624
+ if (sub === 'list') {
625
+ process.exitCode = await runWorkstreamListCommand(args);
626
+ return;
627
+ }
628
+ if (sub === 'delete') {
629
+ process.exitCode = await runWorkstreamDeleteCommand(args);
630
+ return;
631
+ }
632
+ if (sub === 'charter') {
633
+ const op = args._[2];
634
+ if (op === 'get') {
635
+ process.exitCode = await runWorkstreamCharterGetCommand(args);
636
+ return;
637
+ }
638
+ if (op === 'set') {
639
+ process.exitCode = await runWorkstreamCharterSetCommand(args);
640
+ return;
641
+ }
642
+ console.error(`unknown group charter op: ${op}`);
643
+ process.exit(1);
644
+ }
466
645
  if (sub === 'members') {
467
646
  // Same subcommand handles list / add / remove based on flags.
468
647
  if (args.add) {
@@ -605,6 +784,14 @@ async function main() {
605
784
  console.log('Restart ticlawk for the daemon to use the selected profile.');
606
785
  return;
607
786
  }
787
+ if (subcommand === 'show') {
788
+ process.exitCode = await runProfileShowCommand(args);
789
+ return;
790
+ }
791
+ if (subcommand === 'update') {
792
+ process.exitCode = await runProfileUpdateCommand(args);
793
+ return;
794
+ }
608
795
  console.error(`unknown profile subcommand: ${subcommand}`);
609
796
  process.exit(1);
610
797
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ticlawk",
3
- "version": "0.1.16-dev.9",
3
+ "version": "0.1.16",
4
4
  "description": "Local connector that links agent harnesses (Claude Code, Codex, OpenClaw, opencode, Pi) to the Ticlawk mobile app.",
5
5
  "type": "module",
6
6
  "main": "ticlawk.mjs",