agent-office 0.6.23 → 0.7.0
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/AGENTS.md +0 -0
- package/CONTEXT.md +77 -0
- package/README.md +87 -6
- package/dist/commands/cron-requests.d.ts +5 -5
- package/dist/commands/cron-requests.d.ts.map +1 -1
- package/dist/commands/cron-requests.js +9 -14
- package/dist/commands/cron-requests.js.map +1 -1
- package/dist/commands/crons.d.ts +9 -9
- package/dist/commands/crons.d.ts.map +1 -1
- package/dist/commands/crons.js +17 -27
- package/dist/commands/crons.js.map +1 -1
- package/dist/commands/messages.d.ts +6 -6
- package/dist/commands/messages.d.ts.map +1 -1
- package/dist/commands/messages.js +11 -18
- package/dist/commands/messages.js.map +1 -1
- package/dist/commands/sessions.d.ts +5 -5
- package/dist/commands/sessions.d.ts.map +1 -1
- package/dist/commands/sessions.js +10 -16
- package/dist/commands/sessions.js.map +1 -1
- package/dist/commands/task-columns.d.ts +1 -1
- package/dist/commands/task-columns.d.ts.map +1 -1
- package/dist/commands/task-columns.js +2 -4
- package/dist/commands/task-columns.js.map +1 -1
- package/dist/commands/tasks.d.ts +10 -10
- package/dist/commands/tasks.d.ts.map +1 -1
- package/dist/commands/tasks.js +20 -31
- package/dist/commands/tasks.js.map +1 -1
- package/dist/contracts/commands.d.ts +38 -0
- package/dist/contracts/commands.d.ts.map +1 -0
- package/dist/contracts/commands.js +469 -0
- package/dist/contracts/commands.js.map +1 -0
- package/dist/index.js +1062 -160
- package/dist/index.js.map +1 -1
- package/dist/lib/input.d.ts +7 -0
- package/dist/lib/input.d.ts.map +1 -0
- package/dist/lib/input.js +94 -0
- package/dist/lib/input.js.map +1 -0
- package/dist/lib/mcp.d.ts +36 -0
- package/dist/lib/mcp.d.ts.map +1 -0
- package/dist/lib/mcp.js +150 -0
- package/dist/lib/mcp.js.map +1 -0
- package/dist/lib/output.d.ts +9 -1
- package/dist/lib/output.d.ts.map +1 -1
- package/dist/lib/output.js +59 -4
- package/dist/lib/output.js.map +1 -1
- package/dist/lib/schema.d.ts +35 -0
- package/dist/lib/schema.d.ts.map +1 -0
- package/dist/lib/schema.js +441 -0
- package/dist/lib/schema.js.map +1 -0
- package/dist/lib/validation.d.ts +15 -0
- package/dist/lib/validation.d.ts.map +1 -0
- package/dist/lib/validation.js +140 -0
- package/dist/lib/validation.js.map +1 -0
- package/package.json +5 -2
- package/skills/SKILL-create-coworker.md +51 -0
- package/skills/SKILL-cron-jobs.md +106 -0
- package/skills/SKILL-send-message.md +56 -0
- package/skills/SKILL-task-management.md +86 -0
package/AGENTS.md
ADDED
|
Binary file
|
package/CONTEXT.md
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Context Window Discipline
|
|
2
|
+
|
|
3
|
+
This CLI is frequently invoked by AI/LLM agents with limited context windows. Always apply these patterns to avoid overwhelming your context.
|
|
4
|
+
|
|
5
|
+
## ALWAYS Use Field Masks
|
|
6
|
+
|
|
7
|
+
**Workspace APIs return massive JSON blobs. ALWAYS use field masks when listing or getting resources by appending `--fields "id,name,status"` to avoid overwhelming your context window.**
|
|
8
|
+
|
|
9
|
+
### Bad (Returns all fields)
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
agent-office --sqlite ./data.db list-coworkers
|
|
13
|
+
agent-office --sqlite ./data.db list-tasks
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
### Good (Returns only needed fields)
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
agent-office --sqlite ./data.db list-coworkers --fields name,status
|
|
20
|
+
agent-office --sqlite ./data.db list-tasks --fields id,title,column,assignee
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Use NDJSON for Large Lists
|
|
24
|
+
|
|
25
|
+
When processing large datasets, use NDJSON format to stream results without buffering:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
agent-office --sqlite ./data.db list-tasks --output ndjson
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
This emits one JSON object per line, allowing incremental processing instead of loading a massive top-level array.
|
|
32
|
+
|
|
33
|
+
## Combine Filters with Field Masks
|
|
34
|
+
|
|
35
|
+
Maximize efficiency by filtering AND field masking:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
# Best - filter by assignee then field mask
|
|
39
|
+
agent-office --sqlite ./data.db list-tasks \
|
|
40
|
+
--assignee "Alice" \
|
|
41
|
+
--fields id,title,column
|
|
42
|
+
|
|
43
|
+
# Get specific coworker info
|
|
44
|
+
agent-office --sqlite ./data.db get-coworker-info \
|
|
45
|
+
--name "Alice" \
|
|
46
|
+
--fields name,status,description
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Schema Introspection
|
|
50
|
+
|
|
51
|
+
Use schema introspection to understand what fields are available:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
# List all commands
|
|
55
|
+
agent-office schema
|
|
56
|
+
|
|
57
|
+
# Show specific command schema
|
|
58
|
+
agent-office schema list-tasks
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Default Output Format
|
|
62
|
+
|
|
63
|
+
- **TTY (interactive terminal)**: TOON format (compact, human-readable)
|
|
64
|
+
- **Non-TTY (pipes, scripts)**: JSON format automatically
|
|
65
|
+
|
|
66
|
+
Override with `--output <format>` or `AGENT_OFFICE_OUTPUT_FORMAT` env var.
|
|
67
|
+
|
|
68
|
+
## Summary Checklist
|
|
69
|
+
|
|
70
|
+
Before every command, ask:
|
|
71
|
+
|
|
72
|
+
- [ ] Can I filter the results first?
|
|
73
|
+
- [ ] Can I use `--fields` to limit returned data?
|
|
74
|
+
- [ ] Is NDJSON better for this large dataset?
|
|
75
|
+
- [ ] Do I need all this data in my context?
|
|
76
|
+
|
|
77
|
+
**Remember: Every token counts. Be ruthless about limiting response size.**
|
package/README.md
CHANGED
|
@@ -9,9 +9,12 @@ A multi-agent office management system CLI for coordinating AI coworkers, messag
|
|
|
9
9
|
- **Cron Jobs**: Schedule automated messages with cron expressions (with optional approval workflow)
|
|
10
10
|
- **Task Board**: Kanban-style task management with columns, assignments, and dependencies
|
|
11
11
|
- **TOON Format**: All output encoded in TOON (Token-Oriented Object Notation) by default for compact, LLM-friendly output
|
|
12
|
-
- **JSON
|
|
12
|
+
- **JSON Output**: Use `--output json` or `AGENT_OFFICE_OUTPUT_FORMAT` env var for JSON
|
|
13
|
+
- **JSON Input**: Use `--json '{"key": "value"}'` for full JSON payloads instead of individual flags
|
|
14
|
+
- **Schema Introspection**: Use `schema` or `describe` commands for runtime command discovery
|
|
13
15
|
- **Multiple Storage Backends**: SQLite or PostgreSQL support
|
|
14
|
-
- **
|
|
16
|
+
- **MCP Server**: Run as Model Context Protocol server with `agent-office mcp`
|
|
17
|
+
- **Comprehensive Testing**: 154 tests with full coverage
|
|
15
18
|
|
|
16
19
|
## Installation
|
|
17
20
|
|
|
@@ -57,7 +60,10 @@ npm run build
|
|
|
57
60
|
|
|
58
61
|
- `--sqlite <path>` - SQLite database file path (env: `AGENT_OFFICE_SQLITE`)
|
|
59
62
|
- `--postgresql <url>` - PostgreSQL connection URL (env: `AGENT_OFFICE_POSTGRESQL`)
|
|
60
|
-
- `--
|
|
63
|
+
- `--output <format>` - Output format: `json`, `ndjson`, `toon`, or `auto` (env: `AGENT_OFFICE_OUTPUT_FORMAT`)
|
|
64
|
+
- `--fields <fields>` - Comma-separated list of fields to include in output
|
|
65
|
+
- `--dry-run` - Validate commands without executing mutating operations
|
|
66
|
+
- `--json <payload>` - Full JSON payload to replace individual flags (per-command)
|
|
61
67
|
- `-V, --version` - Show version
|
|
62
68
|
- `-h, --help` - Show help
|
|
63
69
|
|
|
@@ -74,12 +80,12 @@ $ npx agent-office --sqlite ./data.db list-coworkers
|
|
|
74
80
|
Bob,gpt-4,available,null,2024-01-15T10:25:00.000Z
|
|
75
81
|
```
|
|
76
82
|
|
|
77
|
-
### JSON
|
|
83
|
+
### JSON Output
|
|
78
84
|
|
|
79
|
-
Use `--json`
|
|
85
|
+
Use `--output json` or set `AGENT_OFFICE_OUTPUT_FORMAT=json` for traditional JSON output:
|
|
80
86
|
|
|
81
87
|
```bash
|
|
82
|
-
$ npx agent-office --sqlite ./data.db --json list-coworkers
|
|
88
|
+
$ npx agent-office --sqlite ./data.db --output json list-coworkers
|
|
83
89
|
[
|
|
84
90
|
{
|
|
85
91
|
"name": "Alice",
|
|
@@ -91,6 +97,81 @@ $ npx agent-office --sqlite ./data.db --json list-coworkers
|
|
|
91
97
|
]
|
|
92
98
|
```
|
|
93
99
|
|
|
100
|
+
### JSON Input (Agent-First)
|
|
101
|
+
|
|
102
|
+
Pass full JSON payloads instead of individual flags. This is the **agent-first** approach recommended for AI agents:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
$ npx agent-office --sqlite ./data.db create-coworker --json '{"name": "Alice", "coworkerType": "assistant"}'
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### NDJSON
|
|
109
|
+
|
|
110
|
+
For streaming large datasets, use NDJSON format:
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
$ npx agent-office --sqlite ./data.db --output ndjson list-coworkers
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## Schema Introspection
|
|
117
|
+
|
|
118
|
+
Query the CLI itself for available commands and their parameters. This eliminates the need for agents to "google the docs":
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
# List all commands
|
|
122
|
+
$ npx agent-office schema
|
|
123
|
+
|
|
124
|
+
# Show schema for specific command
|
|
125
|
+
$ npx agent-office schema create-coworker
|
|
126
|
+
|
|
127
|
+
# Alias: describe
|
|
128
|
+
$ npx agent-office describe
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## Field Filtering (Context Window Discipline)
|
|
132
|
+
|
|
133
|
+
Limit response fields to protect your context window:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
$ npx agent-office --sqlite ./data.db list-coworkers --fields name,status
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## Dry-Run Mode
|
|
140
|
+
|
|
141
|
+
Validate mutating commands without executing:
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
$ npx agent-office --sqlite ./data.db delete-coworker --name Alice --dry-run
|
|
145
|
+
[DRY-RUN] Would execute: delete-coworker
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
## MCP Server (Model Context Protocol)
|
|
149
|
+
|
|
150
|
+
Run as an MCP server for JSON-RPC tool access:
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
$ npx agent-office mcp
|
|
154
|
+
# Then send JSON-RPC messages via stdin
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## Agent Skills & Documentation
|
|
158
|
+
|
|
159
|
+
The CLI ships with markdown-based skill files that provide agent-specific guidance:
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
# List available skills
|
|
163
|
+
$ npx agent-office list-skills
|
|
164
|
+
|
|
165
|
+
# View a specific skill
|
|
166
|
+
$ npx agent-office get-skill --name create-coworker
|
|
167
|
+
|
|
168
|
+
# View context window discipline guidelines
|
|
169
|
+
$ npx agent-office context
|
|
170
|
+
|
|
171
|
+
# View agent security guidelines
|
|
172
|
+
$ npx agent-office agents
|
|
173
|
+
```
|
|
174
|
+
|
|
94
175
|
## Commands
|
|
95
176
|
|
|
96
177
|
### Coworker Management
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AgentOfficeStorage } from '../db/index.js';
|
|
2
|
-
export declare function listCronRequests(storage: AgentOfficeStorage
|
|
3
|
-
export declare function getCronRequest(storage: AgentOfficeStorage, id: number
|
|
4
|
-
export declare function approveCronRequest(storage: AgentOfficeStorage, id: number, reviewedBy: string, reviewerNotes: string | undefined
|
|
5
|
-
export declare function rejectCronRequest(storage: AgentOfficeStorage, id: number, reviewedBy: string, reviewerNotes: string | undefined
|
|
6
|
-
export declare function deleteCronRequest(storage: AgentOfficeStorage, id: number
|
|
2
|
+
export declare function listCronRequests(storage: AgentOfficeStorage): Promise<unknown>;
|
|
3
|
+
export declare function getCronRequest(storage: AgentOfficeStorage, id: number): Promise<unknown>;
|
|
4
|
+
export declare function approveCronRequest(storage: AgentOfficeStorage, id: number, reviewedBy: string, reviewerNotes: string | undefined): Promise<unknown>;
|
|
5
|
+
export declare function rejectCronRequest(storage: AgentOfficeStorage, id: number, reviewedBy: string, reviewerNotes: string | undefined): Promise<unknown>;
|
|
6
|
+
export declare function deleteCronRequest(storage: AgentOfficeStorage, id: number): Promise<void>;
|
|
7
7
|
//# sourceMappingURL=cron-requests.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cron-requests.d.ts","sourceRoot":"","sources":["../../src/commands/cron-requests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"cron-requests.d.ts","sourceRoot":"","sources":["../../src/commands/cron-requests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAGnD,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAGpF;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO9F;AAED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,kBAAkB,EAC3B,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,GAAG,SAAS,GAChC,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,kBAAkB,EAC3B,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,GAAG,SAAS,GAChC,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG9F"}
|
|
@@ -1,31 +1,26 @@
|
|
|
1
1
|
import { CronService } from '../services/index.js';
|
|
2
|
-
|
|
3
|
-
export async function listCronRequests(storage, useJson) {
|
|
2
|
+
export async function listCronRequests(storage) {
|
|
4
3
|
const service = new CronService(storage);
|
|
5
|
-
|
|
6
|
-
console.log(formatOutput(requests, useJson));
|
|
4
|
+
return await service.listCronRequests();
|
|
7
5
|
}
|
|
8
|
-
export async function getCronRequest(storage, id
|
|
6
|
+
export async function getCronRequest(storage, id) {
|
|
9
7
|
const service = new CronService(storage);
|
|
10
8
|
const request = await service.getCronRequestById(id);
|
|
11
9
|
if (!request) {
|
|
12
10
|
throw new Error(`Cron request ${id} not found`);
|
|
13
11
|
}
|
|
14
|
-
|
|
12
|
+
return request;
|
|
15
13
|
}
|
|
16
|
-
export async function approveCronRequest(storage, id, reviewedBy, reviewerNotes
|
|
14
|
+
export async function approveCronRequest(storage, id, reviewedBy, reviewerNotes) {
|
|
17
15
|
const service = new CronService(storage);
|
|
18
|
-
|
|
19
|
-
console.log(formatOutput(request, useJson));
|
|
16
|
+
return await service.approveCronRequest(id, reviewedBy, reviewerNotes);
|
|
20
17
|
}
|
|
21
|
-
export async function rejectCronRequest(storage, id, reviewedBy, reviewerNotes
|
|
18
|
+
export async function rejectCronRequest(storage, id, reviewedBy, reviewerNotes) {
|
|
22
19
|
const service = new CronService(storage);
|
|
23
|
-
|
|
24
|
-
console.log(formatOutput(request, useJson));
|
|
20
|
+
return await service.rejectCronRequest(id, reviewedBy, reviewerNotes);
|
|
25
21
|
}
|
|
26
|
-
export async function deleteCronRequest(storage, id
|
|
22
|
+
export async function deleteCronRequest(storage, id) {
|
|
27
23
|
const service = new CronService(storage);
|
|
28
24
|
await service.deleteCronRequest(id);
|
|
29
|
-
console.log(formatOutput({ success: true, deleted: id }, useJson));
|
|
30
25
|
}
|
|
31
26
|
//# sourceMappingURL=cron-requests.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cron-requests.js","sourceRoot":"","sources":["../../src/commands/cron-requests.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"cron-requests.js","sourceRoot":"","sources":["../../src/commands/cron-requests.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAA2B;IAChE,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAA;IACxC,OAAO,MAAM,OAAO,CAAC,gBAAgB,EAAE,CAAA;AACzC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAA2B,EAAE,EAAU;IAC1E,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAA;IACxC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAA;IACpD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAA;IACjD,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAA2B,EAC3B,EAAU,EACV,UAAkB,EAClB,aAAiC;IAEjC,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAA;IACxC,OAAO,MAAM,OAAO,CAAC,kBAAkB,CAAC,EAAE,EAAE,UAAU,EAAE,aAAa,CAAC,CAAA;AACxE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAA2B,EAC3B,EAAU,EACV,UAAkB,EAClB,aAAiC;IAEjC,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAA;IACxC,OAAO,MAAM,OAAO,CAAC,iBAAiB,CAAC,EAAE,EAAE,UAAU,EAAE,aAAa,CAAC,CAAA;AACvE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAA2B,EAAE,EAAU;IAC7E,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAA;IACxC,MAAM,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAA;AACrC,CAAC"}
|
package/dist/commands/crons.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { AgentOfficeStorage } from '../db/index.js';
|
|
2
|
-
export declare function listCrons(storage: AgentOfficeStorage, coworkerName: string
|
|
3
|
-
export declare function deleteCron(storage: AgentOfficeStorage, id: number
|
|
4
|
-
export declare function enableCron(storage: AgentOfficeStorage, id: number
|
|
5
|
-
export declare function disableCron(storage: AgentOfficeStorage, id: number
|
|
6
|
-
export declare function cronHistory(storage: AgentOfficeStorage, id: number, limit: number
|
|
7
|
-
export declare function requestCron(storage: AgentOfficeStorage, name: string, coworkerName: string, schedule: string, message: string, timezone: string
|
|
8
|
-
export declare function createCron(storage: AgentOfficeStorage, name: string, coworkerName: string, schedule: string, message: string, timezone: string
|
|
9
|
-
export declare function checkCronJobs(storage: AgentOfficeStorage, coworkerName: string
|
|
10
|
-
export declare function listActiveCronJobs(storage: AgentOfficeStorage, coworkerName: string
|
|
2
|
+
export declare function listCrons(storage: AgentOfficeStorage, coworkerName: string): Promise<unknown>;
|
|
3
|
+
export declare function deleteCron(storage: AgentOfficeStorage, id: number): Promise<void>;
|
|
4
|
+
export declare function enableCron(storage: AgentOfficeStorage, id: number): Promise<unknown>;
|
|
5
|
+
export declare function disableCron(storage: AgentOfficeStorage, id: number): Promise<unknown>;
|
|
6
|
+
export declare function cronHistory(storage: AgentOfficeStorage, id: number, limit: number): Promise<unknown>;
|
|
7
|
+
export declare function requestCron(storage: AgentOfficeStorage, name: string, coworkerName: string, schedule: string, message: string, timezone: string): Promise<unknown>;
|
|
8
|
+
export declare function createCron(storage: AgentOfficeStorage, name: string, coworkerName: string, schedule: string, message: string, timezone: string): Promise<unknown>;
|
|
9
|
+
export declare function checkCronJobs(storage: AgentOfficeStorage, coworkerName: string): Promise<unknown>;
|
|
10
|
+
export declare function listActiveCronJobs(storage: AgentOfficeStorage, coworkerName: string): Promise<unknown>;
|
|
11
11
|
//# sourceMappingURL=crons.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crons.d.ts","sourceRoot":"","sources":["../../src/commands/crons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"crons.d.ts","sourceRoot":"","sources":["../../src/commands/crons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAGnD,wBAAsB,SAAS,CAAC,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGnG;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvF;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAI1F;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAI3F;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG1G;AAED,wBAAsB,WAAW,CAC/B,OAAO,EAAE,kBAAkB,EAC3B,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED,wBAAsB,UAAU,CAC9B,OAAO,EAAE,kBAAkB,EAC3B,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAYvG;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAa5G"}
|
package/dist/commands/crons.js
CHANGED
|
@@ -1,65 +1,55 @@
|
|
|
1
1
|
import { CronService } from '../services/index.js';
|
|
2
|
-
|
|
3
|
-
export async function listCrons(storage, coworkerName, useJson) {
|
|
2
|
+
export async function listCrons(storage, coworkerName) {
|
|
4
3
|
const service = new CronService(storage);
|
|
5
|
-
|
|
6
|
-
console.log(formatOutput(crons, useJson));
|
|
4
|
+
return await service.listCronJobsForSession(coworkerName);
|
|
7
5
|
}
|
|
8
|
-
export async function deleteCron(storage, id
|
|
6
|
+
export async function deleteCron(storage, id) {
|
|
9
7
|
const service = new CronService(storage);
|
|
10
8
|
await service.deleteCronJob(id);
|
|
11
|
-
console.log(formatOutput({ success: true, deleted: id }, useJson));
|
|
12
9
|
}
|
|
13
|
-
export async function enableCron(storage, id
|
|
10
|
+
export async function enableCron(storage, id) {
|
|
14
11
|
const service = new CronService(storage);
|
|
15
12
|
await service.enableCronJob(id);
|
|
16
|
-
|
|
17
|
-
console.log(formatOutput(job, useJson));
|
|
13
|
+
return await service.getCronJobById(id);
|
|
18
14
|
}
|
|
19
|
-
export async function disableCron(storage, id
|
|
15
|
+
export async function disableCron(storage, id) {
|
|
20
16
|
const service = new CronService(storage);
|
|
21
17
|
await service.disableCronJob(id);
|
|
22
|
-
|
|
23
|
-
console.log(formatOutput(job, useJson));
|
|
18
|
+
return await service.getCronJobById(id);
|
|
24
19
|
}
|
|
25
|
-
export async function cronHistory(storage, id, limit
|
|
20
|
+
export async function cronHistory(storage, id, limit) {
|
|
26
21
|
const service = new CronService(storage);
|
|
27
|
-
|
|
28
|
-
console.log(formatOutput(history, useJson));
|
|
22
|
+
return await service.getCronHistory(id, limit);
|
|
29
23
|
}
|
|
30
|
-
export async function requestCron(storage, name, coworkerName, schedule, message, timezone
|
|
24
|
+
export async function requestCron(storage, name, coworkerName, schedule, message, timezone) {
|
|
31
25
|
const service = new CronService(storage);
|
|
32
|
-
|
|
33
|
-
console.log(formatOutput(request, useJson));
|
|
26
|
+
return await service.createCronRequest(name, coworkerName, schedule, timezone, message);
|
|
34
27
|
}
|
|
35
|
-
export async function createCron(storage, name, coworkerName, schedule, message, timezone
|
|
28
|
+
export async function createCron(storage, name, coworkerName, schedule, message, timezone) {
|
|
36
29
|
const service = new CronService(storage);
|
|
37
|
-
|
|
38
|
-
console.log(formatOutput(job, useJson));
|
|
30
|
+
return await service.createCronJob(name, coworkerName, schedule, timezone, message);
|
|
39
31
|
}
|
|
40
|
-
export async function checkCronJobs(storage, coworkerName
|
|
32
|
+
export async function checkCronJobs(storage, coworkerName) {
|
|
41
33
|
const service = new CronService(storage);
|
|
42
34
|
const activeJobs = await service.getActiveCronJobs();
|
|
43
35
|
// Filter by coworker
|
|
44
36
|
const coworkerJobs = activeJobs.filter(job => job.session_name === coworkerName);
|
|
45
37
|
// Return count similar to check-unread-messages
|
|
46
|
-
|
|
38
|
+
return {
|
|
47
39
|
hasActive: coworkerJobs.length > 0,
|
|
48
40
|
count: coworkerJobs.length,
|
|
49
41
|
};
|
|
50
|
-
console.log(formatOutput(result, useJson));
|
|
51
42
|
}
|
|
52
|
-
export async function listActiveCronJobs(storage, coworkerName
|
|
43
|
+
export async function listActiveCronJobs(storage, coworkerName) {
|
|
53
44
|
const service = new CronService(storage);
|
|
54
45
|
let activeJobs = await service.getActiveCronJobs();
|
|
55
46
|
// Filter by coworker
|
|
56
47
|
activeJobs = activeJobs.filter(job => job.session_name === coworkerName);
|
|
57
48
|
// Map to return id, action (message), and timezone
|
|
58
|
-
|
|
49
|
+
return activeJobs.map(job => ({
|
|
59
50
|
id: job.id,
|
|
60
51
|
action: job.message,
|
|
61
52
|
timezone: job.timezone,
|
|
62
53
|
}));
|
|
63
|
-
console.log(formatOutput(actions, useJson));
|
|
64
54
|
}
|
|
65
55
|
//# sourceMappingURL=crons.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crons.js","sourceRoot":"","sources":["../../src/commands/crons.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"crons.js","sourceRoot":"","sources":["../../src/commands/crons.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAA2B,EAAE,YAAoB;IAC/E,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAA;IACxC,OAAO,MAAM,OAAO,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAA;AAC3D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAA2B,EAAE,EAAU;IACtE,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAA;IACxC,MAAM,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;AACjC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAA2B,EAAE,EAAU;IACtE,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAA;IACxC,MAAM,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;IAC/B,OAAO,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;AACzC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAA2B,EAAE,EAAU;IACvE,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAA;IACxC,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;IAChC,OAAO,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;AACzC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAA2B,EAAE,EAAU,EAAE,KAAa;IACtF,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAA;IACxC,OAAO,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAA2B,EAC3B,IAAY,EACZ,YAAoB,EACpB,QAAgB,EAChB,OAAe,EACf,QAAgB;IAEhB,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAA;IACxC,OAAO,MAAM,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;AACzF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAA2B,EAC3B,IAAY,EACZ,YAAoB,EACpB,QAAgB,EAChB,OAAe,EACf,QAAgB;IAEhB,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAA;IACxC,OAAO,MAAM,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;AACrF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAA2B,EAAE,YAAoB;IACnF,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAA;IACxC,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,iBAAiB,EAAE,CAAA;IAEpD,qBAAqB;IACrB,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,YAAY,CAAC,CAAA;IAEhF,gDAAgD;IAChD,OAAO;QACL,SAAS,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC;QAClC,KAAK,EAAE,YAAY,CAAC,MAAM;KAC3B,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAA2B,EAAE,YAAoB;IACxF,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAA;IACxC,IAAI,UAAU,GAAG,MAAM,OAAO,CAAC,iBAAiB,EAAE,CAAA;IAElD,qBAAqB;IACrB,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,YAAY,CAAC,CAAA;IAExE,mDAAmD;IACnD,OAAO,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5B,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,MAAM,EAAE,GAAG,CAAC,OAAO;QACnB,QAAQ,EAAE,GAAG,CAAC,QAAQ;KACvB,CAAC,CAAC,CAAA;AACL,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { AgentOfficeStorage } from '../db/index.js';
|
|
2
|
-
export declare function sendMessage(storage: AgentOfficeStorage, from: string, recipients: string[], body: string
|
|
3
|
-
export declare function checkUnreadMail(storage: AgentOfficeStorage, coworkerName: string
|
|
4
|
-
export declare function getUnreadMail(storage: AgentOfficeStorage, coworkerName: string
|
|
5
|
-
export declare function listMessagesBetween(storage: AgentOfficeStorage, coworker1: string, coworker2: string, startTimeIso: string | undefined, endTimeIso: string | undefined
|
|
6
|
-
export declare function listMessagesToNotify(storage: AgentOfficeStorage, coworkerName: string, hours: number
|
|
7
|
-
export declare function markMessagesAsNotified(storage: AgentOfficeStorage, ids: number[]
|
|
2
|
+
export declare function sendMessage(storage: AgentOfficeStorage, from: string, recipients: string[], body: string): Promise<unknown>;
|
|
3
|
+
export declare function checkUnreadMail(storage: AgentOfficeStorage, coworkerName: string): Promise<unknown>;
|
|
4
|
+
export declare function getUnreadMail(storage: AgentOfficeStorage, coworkerName: string): Promise<unknown>;
|
|
5
|
+
export declare function listMessagesBetween(storage: AgentOfficeStorage, coworker1: string, coworker2: string, startTimeIso: string | undefined, endTimeIso: string | undefined): Promise<unknown>;
|
|
6
|
+
export declare function listMessagesToNotify(storage: AgentOfficeStorage, coworkerName: string, hours: number): Promise<unknown>;
|
|
7
|
+
export declare function markMessagesAsNotified(storage: AgentOfficeStorage, ids: number[]): Promise<void>;
|
|
8
8
|
//# sourceMappingURL=messages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/commands/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/commands/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAGnD,wBAAsB,WAAW,CAC/B,OAAO,EAAE,kBAAkB,EAC3B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAAE,EACpB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAoBzG;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGvG;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,kBAAkB,EAC3B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,UAAU,EAAE,MAAM,GAAG,SAAS,GAC7B,OAAO,CAAC,OAAO,CAAC,CAKlB;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,kBAAkB,EAC3B,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC,CAMlB;AAED,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtG"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { MessageService } from '../services/index.js';
|
|
2
|
-
|
|
3
|
-
export async function sendMessage(storage, from, recipients, body, useJson) {
|
|
2
|
+
export async function sendMessage(storage, from, recipients, body) {
|
|
4
3
|
const service = new MessageService(storage);
|
|
5
|
-
|
|
6
|
-
console.log(formatOutput(messages, useJson));
|
|
4
|
+
return await service.sendMessage(from, recipients, body);
|
|
7
5
|
}
|
|
8
|
-
export async function checkUnreadMail(storage, coworkerName
|
|
6
|
+
export async function checkUnreadMail(storage, coworkerName) {
|
|
9
7
|
const service = new MessageService(storage);
|
|
10
8
|
const unreadCounts = await service.countUnreadBySender(coworkerName);
|
|
11
9
|
// Convert Map to object for JSON serialization
|
|
@@ -18,35 +16,30 @@ export async function checkUnreadMail(storage, coworkerName, useJson) {
|
|
|
18
16
|
}
|
|
19
17
|
}
|
|
20
18
|
// Unix philosophy: return 0 on success, include both backward-compatible hasUnread and new counts
|
|
21
|
-
|
|
19
|
+
return {
|
|
22
20
|
hasUnread: totalUnread > 0,
|
|
23
21
|
total: totalUnread,
|
|
24
22
|
counts: counts,
|
|
25
23
|
};
|
|
26
|
-
console.log(formatOutput(result, useJson));
|
|
27
24
|
}
|
|
28
|
-
export async function getUnreadMail(storage, coworkerName
|
|
25
|
+
export async function getUnreadMail(storage, coworkerName) {
|
|
29
26
|
const service = new MessageService(storage);
|
|
30
|
-
|
|
31
|
-
console.log(formatOutput(messages, useJson));
|
|
27
|
+
return await service.getUnreadMail(coworkerName);
|
|
32
28
|
}
|
|
33
|
-
export async function listMessagesBetween(storage, coworker1, coworker2, startTimeIso, endTimeIso
|
|
29
|
+
export async function listMessagesBetween(storage, coworker1, coworker2, startTimeIso, endTimeIso) {
|
|
34
30
|
const service = new MessageService(storage);
|
|
35
31
|
const startTime = startTimeIso ? new Date(startTimeIso) : undefined;
|
|
36
32
|
const endTime = endTimeIso ? new Date(endTimeIso) : undefined;
|
|
37
|
-
|
|
38
|
-
console.log(formatOutput(messages, useJson));
|
|
33
|
+
return await service.listMessagesBetween(coworker1, coworker2, startTime, endTime);
|
|
39
34
|
}
|
|
40
|
-
export async function listMessagesToNotify(storage, coworkerName, hours
|
|
41
|
-
|
|
35
|
+
export async function listMessagesToNotify(storage, coworkerName, hours) {
|
|
36
|
+
return await storage.listMessagesForRecipient(coworkerName, {
|
|
42
37
|
unread: true,
|
|
43
38
|
olderThanHours: hours,
|
|
44
39
|
notified: false,
|
|
45
40
|
});
|
|
46
|
-
console.log(formatOutput(messages, useJson));
|
|
47
41
|
}
|
|
48
|
-
export async function markMessagesAsNotified(storage, ids
|
|
42
|
+
export async function markMessagesAsNotified(storage, ids) {
|
|
49
43
|
await storage.markMessagesAsNotified(ids);
|
|
50
|
-
console.log(formatOutput({ success: true, count: ids.length }, useJson));
|
|
51
44
|
}
|
|
52
45
|
//# sourceMappingURL=messages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/commands/messages.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/commands/messages.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAA2B,EAC3B,IAAY,EACZ,UAAoB,EACpB,IAAY;IAEZ,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,CAAA;IAC3C,OAAO,MAAM,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;AAC1D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAA2B,EAAE,YAAoB;IACrF,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,CAAA;IAC3C,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAA;IAEpE,+CAA+C;IAC/C,MAAM,MAAM,GAA2B,EAAE,CAAA;IACzC,IAAI,WAAW,GAAG,CAAC,CAAA;IACnB,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,YAAY,EAAE,CAAC;QAC3C,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,CAAA;YACtB,WAAW,IAAI,KAAK,CAAA;QACtB,CAAC;IACH,CAAC;IAED,kGAAkG;IAClG,OAAO;QACL,SAAS,EAAE,WAAW,GAAG,CAAC;QAC1B,KAAK,EAAE,WAAW;QAClB,MAAM,EAAE,MAAM;KACf,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAA2B,EAAE,YAAoB;IACnF,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,CAAA;IAC3C,OAAO,MAAM,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAA;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAA2B,EAC3B,SAAiB,EACjB,SAAiB,EACjB,YAAgC,EAChC,UAA8B;IAE9B,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,CAAA;IAC3C,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACnE,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC7D,OAAO,MAAM,OAAO,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;AACpF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAA2B,EAC3B,YAAoB,EACpB,KAAa;IAEb,OAAO,MAAM,OAAO,CAAC,wBAAwB,CAAC,YAAY,EAAE;QAC1D,MAAM,EAAE,IAAI;QACZ,cAAc,EAAE,KAAK;QACrB,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,OAA2B,EAAE,GAAa;IACrF,MAAM,OAAO,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAA;AAC3C,CAAC"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { AgentOfficeStorage } from '../db/index.js';
|
|
2
|
-
export declare function listCoworkers(storage: AgentOfficeStorage
|
|
3
|
-
export declare function getCoworkerInfo(storage: AgentOfficeStorage, name: string
|
|
2
|
+
export declare function listCoworkers(storage: AgentOfficeStorage): Promise<unknown>;
|
|
3
|
+
export declare function getCoworkerInfo(storage: AgentOfficeStorage, name: string): Promise<unknown>;
|
|
4
4
|
export declare function updateCoworker(storage: AgentOfficeStorage, name: string, updates: {
|
|
5
5
|
coworkerType?: string | null;
|
|
6
6
|
status?: string | null;
|
|
7
7
|
description?: string | null;
|
|
8
8
|
philosophy?: string | null;
|
|
9
9
|
visualDescription?: string | null;
|
|
10
|
-
}
|
|
11
|
-
export declare function createSession(storage: AgentOfficeStorage, name: string, coworkerType: string
|
|
12
|
-
export declare function deleteCoworker(storage: AgentOfficeStorage, name: string
|
|
10
|
+
}): Promise<unknown>;
|
|
11
|
+
export declare function createSession(storage: AgentOfficeStorage, name: string, coworkerType: string): Promise<unknown>;
|
|
12
|
+
export declare function deleteCoworker(storage: AgentOfficeStorage, name: string): Promise<void>;
|
|
13
13
|
//# sourceMappingURL=sessions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/commands/sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/commands/sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAGnD,wBAAsB,aAAa,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAGjF;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGjG;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,kBAAkB,EAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;IACP,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAClC,GACA,OAAO,CAAC,OAAO,CAAC,CAalB;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGrH;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgC7F"}
|
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
import { SessionService } from '../services/index.js';
|
|
2
|
-
|
|
3
|
-
export async function listCoworkers(storage, useJson) {
|
|
2
|
+
export async function listCoworkers(storage) {
|
|
4
3
|
const service = new SessionService(storage);
|
|
5
|
-
|
|
6
|
-
console.log(formatOutput(coworkers, useJson));
|
|
4
|
+
return await service.listCoworkers();
|
|
7
5
|
}
|
|
8
|
-
export async function getCoworkerInfo(storage, name
|
|
6
|
+
export async function getCoworkerInfo(storage, name) {
|
|
9
7
|
const service = new SessionService(storage);
|
|
10
|
-
|
|
11
|
-
console.log(formatOutput(coworker, useJson));
|
|
8
|
+
return await service.getCoworkerInfo(name);
|
|
12
9
|
}
|
|
13
|
-
export async function updateCoworker(storage, name, updates
|
|
10
|
+
export async function updateCoworker(storage, name, updates) {
|
|
14
11
|
const service = new SessionService(storage);
|
|
15
12
|
await service.updateCoworker(name, {
|
|
16
13
|
...(updates.coworkerType !== undefined && updates.coworkerType !== null
|
|
@@ -21,16 +18,14 @@ export async function updateCoworker(storage, name, updates, useJson) {
|
|
|
21
18
|
philosophy: updates.philosophy,
|
|
22
19
|
visual_description: updates.visualDescription,
|
|
23
20
|
});
|
|
24
|
-
//
|
|
25
|
-
|
|
26
|
-
console.log(formatOutput(coworker, useJson));
|
|
21
|
+
// Return the updated coworker info
|
|
22
|
+
return await service.getCoworkerInfo(name);
|
|
27
23
|
}
|
|
28
|
-
export async function createSession(storage, name, coworkerType
|
|
24
|
+
export async function createSession(storage, name, coworkerType) {
|
|
29
25
|
const service = new SessionService(storage);
|
|
30
|
-
|
|
31
|
-
console.log(formatOutput(session, useJson));
|
|
26
|
+
return await service.createSession(name, coworkerType);
|
|
32
27
|
}
|
|
33
|
-
export async function deleteCoworker(storage, name
|
|
28
|
+
export async function deleteCoworker(storage, name) {
|
|
34
29
|
const service = new SessionService(storage);
|
|
35
30
|
const session = await service.getSessionByName(name);
|
|
36
31
|
if (!session) {
|
|
@@ -57,6 +52,5 @@ export async function deleteCoworker(storage, name, useJson) {
|
|
|
57
52
|
// Finally, delete the coworker session
|
|
58
53
|
await tx.deleteSession(session.id);
|
|
59
54
|
});
|
|
60
|
-
console.log(formatOutput({ success: true, message: `Coworker ${name} deleted` }, useJson));
|
|
61
55
|
}
|
|
62
56
|
//# sourceMappingURL=sessions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/commands/sessions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/commands/sessions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function listTaskColumns(
|
|
1
|
+
export declare function listTaskColumns(): unknown;
|
|
2
2
|
//# sourceMappingURL=task-columns.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-columns.d.ts","sourceRoot":"","sources":["../../src/commands/task-columns.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"task-columns.d.ts","sourceRoot":"","sources":["../../src/commands/task-columns.ts"],"names":[],"mappings":"AAAA,wBAAgB,eAAe,IAAI,OAAO,CASzC"}
|