ticlawk 0.1.16-dev.8 → 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.
- package/README.md +15 -3
- package/bin/ticlawk.mjs +208 -26
- package/package.json +1 -1
- package/src/adapters/ticlawk/api.mjs +283 -48
- package/src/adapters/ticlawk/credentials.mjs +41 -1
- package/src/adapters/ticlawk/index.mjs +126 -121
- package/src/adapters/ticlawk/wake-client.mjs +1 -1
- package/src/cli/agent-commands.mjs +560 -36
- package/src/core/agent-cli-handlers.mjs +435 -18
- package/src/core/agent-home.mjs +81 -1
- package/src/core/argv.mjs +11 -1
- package/src/core/events/worker-events.mjs +32 -36
- package/src/core/http.mjs +119 -0
- package/src/core/runtime-contract.mjs +0 -1
- package/src/core/runtime-env.mjs +7 -0
- package/src/core/runtime-support.mjs +108 -77
- package/src/runtimes/_shared/agent-handbook.mjs +45 -0
- package/src/runtimes/_shared/brand.mjs +2 -0
- package/src/runtimes/_shared/goal-task-protocol.mjs +50 -0
- package/src/runtimes/_shared/handbook/BASICS.md +27 -0
- package/src/runtimes/_shared/handbook/COLLABORATION.md +37 -0
- package/src/runtimes/_shared/handbook/COMMUNICATION.md +55 -0
- package/src/runtimes/_shared/handbook/DM_SCOPE.md +13 -0
- package/src/runtimes/_shared/handbook/GOAL_AUTHORITY.md +46 -0
- package/src/runtimes/_shared/handbook/GOAL_TASK_CORE.md +43 -0
- package/src/runtimes/_shared/handbook/GROUP_ADMIN_SCOPE.md +21 -0
- package/src/runtimes/_shared/handbook/GROUP_MEMBER_SCOPE.md +15 -0
- package/src/runtimes/_shared/handbook/SURFACES.md +41 -0
- package/src/runtimes/_shared/handbook/TASK_WORKER.md +14 -0
- package/src/runtimes/_shared/standing-prompt.mjs +134 -275
- package/src/runtimes/_shared/wake-prompt.mjs +261 -0
- package/src/runtimes/claude-code/index.mjs +19 -46
- package/src/runtimes/claude-code/session.mjs +2 -7
- package/src/runtimes/codex/index.mjs +115 -63
- package/src/runtimes/codex/session.mjs +2 -12
- package/src/runtimes/openclaw/index.mjs +11 -24
- package/src/runtimes/opencode/index.mjs +38 -60
- package/src/runtimes/opencode/session.mjs +12 -12
- package/src/runtimes/pi/index.mjs +38 -60
- package/src/runtimes/pi/session.mjs +9 -6
- 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>
|
|
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
|
-
|
|
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
|
@@ -30,9 +30,27 @@ import { getInstallDaemonHelp, runInstallDaemon } from '../src/core/daemon-insta
|
|
|
30
30
|
import { runSetupReadiness } from '../src/core/setup-readiness.mjs';
|
|
31
31
|
import {
|
|
32
32
|
AGENT_COMMAND_HELP,
|
|
33
|
-
runAttachmentUploadCommand,
|
|
34
33
|
runAttachmentViewCommand,
|
|
35
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,
|
|
36
54
|
runGroupMembersAddCommand,
|
|
37
55
|
runGroupMembersCommand,
|
|
38
56
|
runGroupMembersRemoveCommand,
|
|
@@ -93,12 +111,16 @@ Usage:
|
|
|
93
111
|
ticlawk version
|
|
94
112
|
|
|
95
113
|
Agent CLI (run inside an agent runtime; requires TICLAWK_RUNTIME_AGENT_ID):
|
|
96
|
-
ticlawk message send --target <t>
|
|
114
|
+
ticlawk message send --target <t> --phase progress|final # body on stdin
|
|
97
115
|
ticlawk message read --target <t> [opts]
|
|
98
116
|
ticlawk task claim --message-id <id>
|
|
99
117
|
ticlawk task update --task-id <id> --status <s>
|
|
100
|
-
ticlawk task list [--target <t>]
|
|
118
|
+
ticlawk task list [--target <t>] # group admins see the full task board
|
|
119
|
+
ticlawk charter get --target <t>
|
|
101
120
|
ticlawk group members --target <t>
|
|
121
|
+
ticlawk group list
|
|
122
|
+
ticlawk agent list
|
|
123
|
+
ticlawk dashboard get --conversation-id <id>
|
|
102
124
|
ticlawk server info [--refresh]
|
|
103
125
|
|
|
104
126
|
Commands:
|
|
@@ -107,7 +129,15 @@ Commands:
|
|
|
107
129
|
profile list or switch saved local identities
|
|
108
130
|
message send/read chat messages (agent CLI surface)
|
|
109
131
|
task claim/update/list tasks (agent CLI surface)
|
|
110
|
-
|
|
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)
|
|
111
141
|
server server-info introspection (agent CLI surface)
|
|
112
142
|
install-daemon install or refresh the background daemon
|
|
113
143
|
update update the npm package and refresh the daemon
|
|
@@ -179,6 +209,10 @@ function printHelp(helpPath, args = {}) {
|
|
|
179
209
|
console.log(getInstallDaemonHelp());
|
|
180
210
|
return;
|
|
181
211
|
}
|
|
212
|
+
if (AGENT_COMMAND_HELP[head]) {
|
|
213
|
+
console.log(AGENT_COMMAND_HELP[head]);
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
182
216
|
printUsage();
|
|
183
217
|
}
|
|
184
218
|
|
|
@@ -358,24 +392,6 @@ async function main() {
|
|
|
358
392
|
process.exit(1);
|
|
359
393
|
}
|
|
360
394
|
|
|
361
|
-
if (command === 'profile') {
|
|
362
|
-
const sub = args._[1];
|
|
363
|
-
if (args.help || args.h || !sub) {
|
|
364
|
-
console.log(AGENT_COMMAND_HELP.profile);
|
|
365
|
-
return;
|
|
366
|
-
}
|
|
367
|
-
if (sub === 'show') {
|
|
368
|
-
process.exitCode = await runProfileShowCommand(args);
|
|
369
|
-
return;
|
|
370
|
-
}
|
|
371
|
-
if (sub === 'update') {
|
|
372
|
-
process.exitCode = await runProfileUpdateCommand(args);
|
|
373
|
-
return;
|
|
374
|
-
}
|
|
375
|
-
console.error(`unknown profile subcommand: ${sub}`);
|
|
376
|
-
process.exit(1);
|
|
377
|
-
}
|
|
378
|
-
|
|
379
395
|
if (command === 'reminder') {
|
|
380
396
|
const sub = args._[1];
|
|
381
397
|
if (args.help || args.h || !sub) {
|
|
@@ -416,10 +432,6 @@ async function main() {
|
|
|
416
432
|
console.log(AGENT_COMMAND_HELP.attachment);
|
|
417
433
|
return;
|
|
418
434
|
}
|
|
419
|
-
if (sub === 'upload') {
|
|
420
|
-
process.exitCode = await runAttachmentUploadCommand(args);
|
|
421
|
-
return;
|
|
422
|
-
}
|
|
423
435
|
if (sub === 'view') {
|
|
424
436
|
process.exitCode = await runAttachmentViewCommand(args);
|
|
425
437
|
return;
|
|
@@ -458,6 +470,147 @@ async function main() {
|
|
|
458
470
|
process.exit(1);
|
|
459
471
|
}
|
|
460
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
|
+
|
|
461
614
|
if (command === 'group') {
|
|
462
615
|
const sub = args._[1];
|
|
463
616
|
if (args.help || args.h || !sub) {
|
|
@@ -468,6 +621,27 @@ async function main() {
|
|
|
468
621
|
process.exitCode = await runGroupCreateCommand(args);
|
|
469
622
|
return;
|
|
470
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
|
+
}
|
|
471
645
|
if (sub === 'members') {
|
|
472
646
|
// Same subcommand handles list / add / remove based on flags.
|
|
473
647
|
if (args.add) {
|
|
@@ -610,6 +784,14 @@ async function main() {
|
|
|
610
784
|
console.log('Restart ticlawk for the daemon to use the selected profile.');
|
|
611
785
|
return;
|
|
612
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
|
+
}
|
|
613
795
|
console.error(`unknown profile subcommand: ${subcommand}`);
|
|
614
796
|
process.exit(1);
|
|
615
797
|
}
|
package/package.json
CHANGED