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.
- package/README.md +15 -3
- package/bin/ticlawk.mjs +208 -21
- 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 +557 -18
- 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 -278
- 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
|
@@ -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>
|
|
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
|
-
|
|
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