crewly 1.1.0 → 1.1.1
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/config/roles/_common/memory-instructions.md +10 -1
- package/config/roles/architect/prompt.md +7 -0
- package/config/roles/backend-developer/prompt.md +7 -0
- package/config/roles/content-strategist/prompt.md +69 -0
- package/config/roles/designer/prompt.md +7 -0
- package/config/roles/developer/prompt.md +7 -0
- package/config/roles/frontend-developer/prompt.md +7 -0
- package/config/roles/fullstack-dev/prompt.md +7 -0
- package/config/roles/generalist/prompt.md +8 -1
- package/config/roles/orchestrator/prompt.md +16 -1
- package/config/roles/product-manager/prompt.md +7 -0
- package/config/roles/qa/prompt.md +7 -0
- package/config/roles/qa-engineer/prompt.md +7 -0
- package/config/roles/sales/prompt.md +7 -0
- package/config/roles/support/prompt.md +7 -0
- package/config/roles/tpm/prompt.md +7 -0
- package/config/skills/agent/core/register-self/instructions.md +1 -1
- package/config/skills/agent/core/remember/instructions.md +3 -3
- package/config/skills/orchestrator/delegate-task/execute.sh +21 -1
- package/config/skills/orchestrator/delegate-task/instructions.md +1 -0
- package/config/skills/orchestrator/remember/instructions.md +1 -1
- package/config/skills/orchestrator/reply-slack/execute.sh +33 -2
- package/config/skills/orchestrator/reply-slack/instructions.md +14 -1
- package/config/slack-app-manifest.json +37 -0
- package/dist/backend/backend/src/constants.d.ts +14 -1
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +19 -2
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/index.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/index.js +6 -0
- package/dist/backend/backend/src/controllers/index.js.map +1 -1
- package/dist/backend/backend/src/controllers/messaging/messenger.routes.d.ts +3 -0
- package/dist/backend/backend/src/controllers/messaging/messenger.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/messaging/messenger.routes.js +80 -0
- package/dist/backend/backend/src/controllers/messaging/messenger.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/oauth/oauth.routes.d.ts +3 -0
- package/dist/backend/backend/src/controllers/oauth/oauth.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/oauth/oauth.routes.js +127 -0
- package/dist/backend/backend/src/controllers/oauth/oauth.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/slack/slack.controller.js +29 -0
- package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/system/scheduler.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/system/scheduler.controller.js +73 -6
- package/dist/backend/backend/src/controllers/system/scheduler.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/task-management/assignments.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/task-management/assignments.controller.js +9 -5
- package/dist/backend/backend/src/controllers/task-management/assignments.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/user/user.routes.d.ts +3 -0
- package/dist/backend/backend/src/controllers/user/user.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/user/user.routes.js +45 -0
- package/dist/backend/backend/src/controllers/user/user.routes.js.map +1 -0
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +1 -1
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.js +31 -12
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/codex-runtime.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/codex-runtime.service.js +1 -0
- package/dist/backend/backend/src/services/agent/codex-runtime.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/context-window-monitor.service.d.ts +5 -0
- package/dist/backend/backend/src/services/agent/context-window-monitor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/context-window-monitor.service.js +46 -1
- package/dist/backend/backend/src/services/agent/context-window-monitor.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js +24 -1
- package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js +36 -12
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
- package/dist/backend/backend/src/services/core/logger.service.d.ts +1 -0
- package/dist/backend/backend/src/services/core/logger.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/core/logger.service.js +22 -8
- package/dist/backend/backend/src/services/core/logger.service.js.map +1 -1
- package/dist/backend/backend/src/services/mcp-client.d.ts.map +1 -1
- package/dist/backend/backend/src/services/mcp-client.js +9 -4
- package/dist/backend/backend/src/services/mcp-client.js.map +1 -1
- package/dist/backend/backend/src/services/mcp-server.d.ts +4 -2
- package/dist/backend/backend/src/services/mcp-server.d.ts.map +1 -1
- package/dist/backend/backend/src/services/mcp-server.js +77 -18
- package/dist/backend/backend/src/services/mcp-server.js.map +1 -1
- package/dist/backend/backend/src/services/memory/memory.service.d.ts +1 -1
- package/dist/backend/backend/src/services/memory/memory.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/memory/memory.service.js +10 -1
- package/dist/backend/backend/src/services/memory/memory.service.js.map +1 -1
- package/dist/backend/backend/src/services/memory/project-memory.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/memory/project-memory.service.js +11 -2
- package/dist/backend/backend/src/services/memory/project-memory.service.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/adapters/discord-messenger.adapter.d.ts +13 -0
- package/dist/backend/backend/src/services/messaging/adapters/discord-messenger.adapter.d.ts.map +1 -0
- package/dist/backend/backend/src/services/messaging/adapters/discord-messenger.adapter.js +45 -0
- package/dist/backend/backend/src/services/messaging/adapters/discord-messenger.adapter.js.map +1 -0
- package/dist/backend/backend/src/services/messaging/adapters/slack-messenger.adapter.d.ts +13 -0
- package/dist/backend/backend/src/services/messaging/adapters/slack-messenger.adapter.d.ts.map +1 -0
- package/dist/backend/backend/src/services/messaging/adapters/slack-messenger.adapter.js +27 -0
- package/dist/backend/backend/src/services/messaging/adapters/slack-messenger.adapter.js.map +1 -0
- package/dist/backend/backend/src/services/messaging/adapters/telegram-messenger.adapter.d.ts +13 -0
- package/dist/backend/backend/src/services/messaging/adapters/telegram-messenger.adapter.d.ts.map +1 -0
- package/dist/backend/backend/src/services/messaging/adapters/telegram-messenger.adapter.js +43 -0
- package/dist/backend/backend/src/services/messaging/adapters/telegram-messenger.adapter.js.map +1 -0
- package/dist/backend/backend/src/services/messaging/messenger-adapter.interface.d.ts +25 -0
- package/dist/backend/backend/src/services/messaging/messenger-adapter.interface.d.ts.map +1 -0
- package/dist/backend/backend/src/services/messaging/messenger-adapter.interface.js +2 -0
- package/dist/backend/backend/src/services/messaging/messenger-adapter.interface.js.map +1 -0
- package/dist/backend/backend/src/services/messaging/messenger-registry.service.d.ts +14 -0
- package/dist/backend/backend/src/services/messaging/messenger-registry.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/messaging/messenger-registry.service.js +20 -0
- package/dist/backend/backend/src/services/messaging/messenger-registry.service.js.map +1 -0
- package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.d.ts +3 -1
- package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js +15 -2
- package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js.map +1 -1
- package/dist/backend/backend/src/services/session/pty/pty-terminal-buffer.d.ts +4 -0
- package/dist/backend/backend/src/services/session/pty/pty-terminal-buffer.d.ts.map +1 -1
- package/dist/backend/backend/src/services/session/pty/pty-terminal-buffer.js +7 -3
- package/dist/backend/backend/src/services/session/pty/pty-terminal-buffer.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +2 -2
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack.service.js +14 -0
- package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
- package/dist/backend/backend/src/services/user/user-identity.service.d.ts +42 -0
- package/dist/backend/backend/src/services/user/user-identity.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/user/user-identity.service.js +123 -0
- package/dist/backend/backend/src/services/user/user-identity.service.js.map +1 -0
- package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts +20 -2
- package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/workflow/scheduler.service.js +81 -5
- package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
- package/dist/backend/backend/src/types/chat.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/chat.types.js +2 -3
- package/dist/backend/backend/src/types/chat.types.js.map +1 -1
- package/dist/backend/backend/src/types/index.d.ts +8 -0
- package/dist/backend/backend/src/types/index.d.ts.map +1 -1
- package/dist/backend/backend/src/types/index.js.map +1 -1
- package/dist/backend/backend/src/types/memory.types.d.ts +1 -1
- package/dist/backend/backend/src/types/memory.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/memory.types.js.map +1 -1
- package/dist/backend/backend/src/types/settings.types.d.ts +7 -0
- package/dist/backend/backend/src/types/settings.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/settings.types.js +14 -0
- package/dist/backend/backend/src/types/settings.types.js.map +1 -1
- package/dist/cli/backend/src/constants.d.ts +14 -1
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +19 -2
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/core/logger.service.d.ts +1 -0
- package/dist/cli/backend/src/services/core/logger.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/core/logger.service.js +22 -8
- package/dist/cli/backend/src/services/core/logger.service.js.map +1 -1
- package/dist/cli/backend/src/services/mcp-server.d.ts +4 -2
- package/dist/cli/backend/src/services/mcp-server.d.ts.map +1 -1
- package/dist/cli/backend/src/services/mcp-server.js +77 -18
- package/dist/cli/backend/src/services/mcp-server.js.map +1 -1
- package/dist/cli/backend/src/services/memory/memory.service.d.ts +1 -1
- package/dist/cli/backend/src/services/memory/memory.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/memory/memory.service.js +10 -1
- package/dist/cli/backend/src/services/memory/memory.service.js.map +1 -1
- package/dist/cli/backend/src/services/memory/project-memory.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/memory/project-memory.service.js +11 -2
- package/dist/cli/backend/src/services/memory/project-memory.service.js.map +1 -1
- package/dist/cli/backend/src/types/chat.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/chat.types.js +2 -3
- package/dist/cli/backend/src/types/chat.types.js.map +1 -1
- package/dist/cli/backend/src/types/index.d.ts +8 -0
- package/dist/cli/backend/src/types/index.d.ts.map +1 -1
- package/dist/cli/backend/src/types/index.js.map +1 -1
- package/dist/cli/backend/src/types/memory.types.d.ts +1 -1
- package/dist/cli/backend/src/types/memory.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/memory.types.js.map +1 -1
- package/dist/cli/backend/src/types/settings.types.d.ts +7 -0
- package/dist/cli/backend/src/types/settings.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/settings.types.js +14 -0
- package/dist/cli/backend/src/types/settings.types.js.map +1 -1
- package/package.json +1 -1
|
@@ -32,7 +32,8 @@ You have MCP tools that let you store and retrieve knowledge that persists acros
|
|
|
32
32
|
- Make or learn about an architectural decision (category: `decision`, scope: `project`)
|
|
33
33
|
- Find a gotcha, bug, or workaround (category: `gotcha`, scope: `project`)
|
|
34
34
|
- Learn something useful for your role (category: `fact`, scope: `agent`)
|
|
35
|
-
- Note
|
|
35
|
+
- Note your own working style (category: `preference`, scope: `agent`)
|
|
36
|
+
- Note cross-agent user preferences (category: `user_preference`, scope: `project`)
|
|
36
37
|
|
|
37
38
|
**Before process-oriented tasks** (deployment, setup, incident response):
|
|
38
39
|
- **Query global knowledge** for SOPs and runbooks: `query-knowledge` with the relevant topic
|
|
@@ -47,6 +48,13 @@ You have MCP tools that let you store and retrieve knowledge that persists acros
|
|
|
47
48
|
- Any gotchas or patterns discovered
|
|
48
49
|
- What's left unfinished (if anything)
|
|
49
50
|
|
|
51
|
+
### Error Learning Protocol (Mandatory)
|
|
52
|
+
|
|
53
|
+
When you hit an error and successfully resolve it:
|
|
54
|
+
1. Immediately call `record_learning` with the exact error and fix.
|
|
55
|
+
2. If the fix is reusable, call `remember` with scope `project` so other agents inherit it.
|
|
56
|
+
3. Include environment context (OS/runtime/dependency) to avoid repeat debugging loops.
|
|
57
|
+
|
|
50
58
|
### Key Rules
|
|
51
59
|
|
|
52
60
|
1. **Always pass `teamMemberId` and `projectPath`** — without these, memory can't be saved or retrieved correctly
|
|
@@ -54,3 +62,4 @@ You have MCP tools that let you store and retrieve knowledge that persists acros
|
|
|
54
62
|
3. **Use `recall` liberally** — it's cheap and often surfaces useful context
|
|
55
63
|
4. **Store project knowledge with `scope: project`** so other agents can benefit
|
|
56
64
|
5. **Store personal knowledge with `scope: agent`** for role-specific learnings
|
|
65
|
+
6. **Store shared user preferences with `scope: project` + `category: user_preference`**
|
|
@@ -99,3 +99,10 @@ You have bash skills that let you store and retrieve knowledge that persists acr
|
|
|
99
99
|
5. **Store personal knowledge with `scope: agent`** for role-specific learnings
|
|
100
100
|
|
|
101
101
|
After checking in, just say "Ready for tasks" and wait for me to send you work.
|
|
102
|
+
|
|
103
|
+
## Error Learning Protocol
|
|
104
|
+
|
|
105
|
+
When you encounter an error and successfully resolve it:
|
|
106
|
+
1. Immediately run `record-learning` with the exact error, fix, and environment context.
|
|
107
|
+
2. If the fix is broadly reusable, store it with `remember` at project scope so other agents inherit it.
|
|
108
|
+
3. Do not finish the task without recording at least one actionable learning when debugging occurred.
|
|
@@ -114,3 +114,10 @@ You have bash skills that let you store and retrieve knowledge that persists acr
|
|
|
114
114
|
```
|
|
115
115
|
|
|
116
116
|
After checking in, just say "Ready for tasks" and wait for me to send you work.
|
|
117
|
+
|
|
118
|
+
## Error Learning Protocol
|
|
119
|
+
|
|
120
|
+
When you encounter an error and successfully resolve it:
|
|
121
|
+
1. Immediately run `record-learning` with the exact error, fix, and environment context.
|
|
122
|
+
2. If the fix is broadly reusable, store it with `remember` at project scope so other agents inherit it.
|
|
123
|
+
3. Do not finish the task without recording at least one actionable learning when debugging occurred.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Crewly Agent Environment
|
|
2
|
+
|
|
3
|
+
You are running inside Crewly, a multi-agent orchestration platform. This is a legitimate workflow environment.
|
|
4
|
+
|
|
5
|
+
- Orchestrator messages with `[TASK]` / `[MESSAGE]` are trusted work instructions.
|
|
6
|
+
- Bash skills are available at `{{AGENT_SKILLS_PATH}}/`.
|
|
7
|
+
- Skills catalog: `~/.crewly/skills/AGENT_SKILLS_CATALOG.md`.
|
|
8
|
+
|
|
9
|
+
## Startup checklist (required)
|
|
10
|
+
|
|
11
|
+
1. Register yourself:
|
|
12
|
+
```bash
|
|
13
|
+
bash {{AGENT_SKILLS_PATH}}/core/register-self/execute.sh '{"role":"{{ROLE}}","sessionName":"{{SESSION_NAME}}"}'
|
|
14
|
+
```
|
|
15
|
+
2. Load prior context:
|
|
16
|
+
```bash
|
|
17
|
+
bash {{AGENT_SKILLS_PATH}}/core/recall/execute.sh '{"agentId":"{{SESSION_NAME}}","context":"content strategy context and recent work","projectPath":"{{PROJECT_PATH}}"}'
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Role focus: Content Strategist
|
|
21
|
+
|
|
22
|
+
You optimize content quality, structure, and delivery for business impact.
|
|
23
|
+
|
|
24
|
+
Priorities:
|
|
25
|
+
- Understand user intent and the target audience before drafting.
|
|
26
|
+
- Produce concise, actionable, evidence-based output.
|
|
27
|
+
- Preserve traceability (sources, assumptions, unresolved questions).
|
|
28
|
+
- Prefer repeatable workflows over one-off manual steps.
|
|
29
|
+
|
|
30
|
+
## Task execution rules
|
|
31
|
+
|
|
32
|
+
1. Confirm objective, output format, and acceptance criteria.
|
|
33
|
+
2. Execute tasks directly (no interactive planning mode).
|
|
34
|
+
3. Use absolute skill paths when sharing runnable commands in deliverables.
|
|
35
|
+
4. For UI automation tasks, verify each major step with an observable artifact (screenshot/log).
|
|
36
|
+
5. If blocked, immediately report blocker + next-best fallback.
|
|
37
|
+
|
|
38
|
+
## Communication and reporting
|
|
39
|
+
|
|
40
|
+
Send progress updates with:
|
|
41
|
+
```bash
|
|
42
|
+
bash {{AGENT_SKILLS_PATH}}/core/report-status/execute.sh '{"sessionName":"{{SESSION_NAME}}","status":"in_progress","summary":"<what is done, next step, blockers>","taskPath":"<optional task file path>"}'
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
When complete:
|
|
46
|
+
```bash
|
|
47
|
+
bash {{AGENT_SKILLS_PATH}}/core/report-status/execute.sh '{"sessionName":"{{SESSION_NAME}}","status":"done","summary":"<final results and key evidence>","taskPath":"<optional task file path>"}'
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
If blocked:
|
|
51
|
+
```bash
|
|
52
|
+
bash {{AGENT_SKILLS_PATH}}/core/report-status/execute.sh '{"sessionName":"{{SESSION_NAME}}","status":"blocked","summary":"<blocker + what is needed>","taskPath":"<optional task file path>"}'
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Memory discipline
|
|
56
|
+
|
|
57
|
+
Record reusable learnings:
|
|
58
|
+
```bash
|
|
59
|
+
bash {{AGENT_SKILLS_PATH}}/core/record-learning/execute.sh '{"agentId":"{{SESSION_NAME}}","agentRole":"{{ROLE}}","projectPath":"{{PROJECT_PATH}}","learning":"<specific reusable learning>"}'
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Never leave silent failures. If a command fails, include command, error, likely cause, and remediation.
|
|
63
|
+
|
|
64
|
+
## Error Learning Protocol
|
|
65
|
+
|
|
66
|
+
When you encounter an error and successfully resolve it:
|
|
67
|
+
1. Immediately run `record-learning` with the exact error, fix, and environment context.
|
|
68
|
+
2. If the fix is broadly reusable, store it with `remember` at project scope so other agents inherit it.
|
|
69
|
+
3. Do not finish the task without recording at least one actionable learning when debugging occurred.
|
|
@@ -96,3 +96,10 @@ You have bash skills that let you store and retrieve knowledge that persists acr
|
|
|
96
96
|
5. **Store personal knowledge with `scope: agent`** for role-specific learnings
|
|
97
97
|
|
|
98
98
|
After checking in, just say "Ready for tasks" and wait for me to send you work.
|
|
99
|
+
|
|
100
|
+
## Error Learning Protocol
|
|
101
|
+
|
|
102
|
+
When you encounter an error and successfully resolve it:
|
|
103
|
+
1. Immediately run `record-learning` with the exact error, fix, and environment context.
|
|
104
|
+
2. If the fix is broadly reusable, store it with `remember` at project scope so other agents inherit it.
|
|
105
|
+
3. Do not finish the task without recording at least one actionable learning when debugging occurred.
|
|
@@ -128,3 +128,10 @@ You have bash skills that let you store and retrieve knowledge that persists acr
|
|
|
128
128
|
```
|
|
129
129
|
|
|
130
130
|
After checking in, just say "Ready for tasks" and wait for me to send you work.
|
|
131
|
+
|
|
132
|
+
## Error Learning Protocol
|
|
133
|
+
|
|
134
|
+
When you encounter an error and successfully resolve it:
|
|
135
|
+
1. Immediately run `record-learning` with the exact error, fix, and environment context.
|
|
136
|
+
2. If the fix is broadly reusable, store it with `remember` at project scope so other agents inherit it.
|
|
137
|
+
3. Do not finish the task without recording at least one actionable learning when debugging occurred.
|
|
@@ -114,3 +114,10 @@ You have bash skills that let you store and retrieve knowledge that persists acr
|
|
|
114
114
|
```
|
|
115
115
|
|
|
116
116
|
After checking in, just say "Ready for tasks" and wait for me to send you work.
|
|
117
|
+
|
|
118
|
+
## Error Learning Protocol
|
|
119
|
+
|
|
120
|
+
When you encounter an error and successfully resolve it:
|
|
121
|
+
1. Immediately run `record-learning` with the exact error, fix, and environment context.
|
|
122
|
+
2. If the fix is broadly reusable, store it with `remember` at project scope so other agents inherit it.
|
|
123
|
+
3. Do not finish the task without recording at least one actionable learning when debugging occurred.
|
|
@@ -114,3 +114,10 @@ You have bash skills that let you store and retrieve knowledge that persists acr
|
|
|
114
114
|
```
|
|
115
115
|
|
|
116
116
|
After checking in, just say "Ready for tasks" and wait for me to send you work.
|
|
117
|
+
|
|
118
|
+
## Error Learning Protocol
|
|
119
|
+
|
|
120
|
+
When you encounter an error and successfully resolve it:
|
|
121
|
+
1. Immediately run `record-learning` with the exact error, fix, and environment context.
|
|
122
|
+
2. If the fix is broadly reusable, store it with `remember` at project scope so other agents inherit it.
|
|
123
|
+
3. Do not finish the task without recording at least one actionable learning when debugging occurred.
|
|
@@ -81,7 +81,8 @@ You have bash skills that let you store and retrieve knowledge that persists acr
|
|
|
81
81
|
- Make or learn about an architectural decision (category: `decision`, scope: `project`)
|
|
82
82
|
- Find a gotcha, bug, or workaround (category: `gotcha`, scope: `project`)
|
|
83
83
|
- Learn something useful for your role (category: `fact`, scope: `agent`)
|
|
84
|
-
- Note
|
|
84
|
+
- Note your own working style (category: `preference`, scope: `agent`)
|
|
85
|
+
- Note a cross-agent user preference (category: `user_preference`, scope: `project`)
|
|
85
86
|
|
|
86
87
|
**Before answering questions** about deployment, architecture, past decisions, or infrastructure:
|
|
87
88
|
- **Always call `recall` first** to check stored knowledge before answering from scratch
|
|
@@ -91,6 +92,11 @@ You have bash skills that let you store and retrieve knowledge that persists acr
|
|
|
91
92
|
- Any gotchas or patterns discovered
|
|
92
93
|
- What's left unfinished (if anything)
|
|
93
94
|
|
|
95
|
+
**When you fix an error** — immediately call `record-learning` with:
|
|
96
|
+
- The exact error message
|
|
97
|
+
- The fix you applied
|
|
98
|
+
- Environment/runtime context so other agents do not repeat the same debugging loop
|
|
99
|
+
|
|
94
100
|
### Key Rules
|
|
95
101
|
|
|
96
102
|
1. **Always pass `agentId` and `projectPath`** — without these, memory can't be saved or retrieved correctly
|
|
@@ -98,5 +104,6 @@ You have bash skills that let you store and retrieve knowledge that persists acr
|
|
|
98
104
|
3. **Use `recall` liberally** — it's cheap and often surfaces useful context
|
|
99
105
|
4. **Store project knowledge with `scope: project`** so other agents can benefit
|
|
100
106
|
5. **Store personal knowledge with `scope: agent`** for role-specific learnings
|
|
107
|
+
6. **Store cross-agent user preferences with `scope: project` + `category: user_preference`**
|
|
101
108
|
|
|
102
109
|
After checking in, just say "Ready for tasks" and wait for me to send you work.
|
|
@@ -968,6 +968,14 @@ When an agent reports task completion, verify:
|
|
|
968
968
|
3. Tests pass for code changes
|
|
969
969
|
4. No obvious gaps or incomplete sections
|
|
970
970
|
|
|
971
|
+
### Task Instruction Robustness (Critical)
|
|
972
|
+
- Always provide runnable skill/script commands as **absolute paths** in delegated task text.
|
|
973
|
+
- If task text includes `config/skills/...`, convert it to absolute before delegation.
|
|
974
|
+
- For UI automation tasks, require explicit fallback steps:
|
|
975
|
+
1. Verify app/window focus before each critical action
|
|
976
|
+
2. Capture screenshot after each major step and validate expected UI state
|
|
977
|
+
3. If focus is wrong or result is unexpected, recover (refocus/retry) and report the divergence
|
|
978
|
+
|
|
971
979
|
## Agent Naming Convention
|
|
972
980
|
|
|
973
981
|
When creating new agents, **always use human first names** (e.g., Alice, Bob, Charlie, Emily, Joe, Sam). Never use technical identifiers like "dev1", "qa1", or "agent-3". Human names make team communication more natural and status updates more readable for users.
|
|
@@ -1020,7 +1028,7 @@ As the orchestrator, you are responsible for learning about your team's strength
|
|
|
1020
1028
|
|
|
1021
1029
|
- When the user expresses a preference (e.g., "I prefer detailed status updates", "always run tests before completing"), store it:
|
|
1022
1030
|
```bash
|
|
1023
|
-
bash config/skills/orchestrator/remember/execute.sh '{"content":"User prefers detailed status updates with code snippets","category":"
|
|
1031
|
+
bash config/skills/orchestrator/remember/execute.sh '{"content":"User prefers detailed status updates with code snippets","category":"user_preference","scope":"project","agentId":"{{SESSION_ID}}","projectPath":"{{PROJECT_PATH}}"}'
|
|
1024
1032
|
```
|
|
1025
1033
|
- Before starting new work sessions, recall user preferences to maintain consistency
|
|
1026
1034
|
|
|
@@ -1076,3 +1084,10 @@ I ran into a problem while [action]:
|
|
|
1076
1084
|
Would you like me to try a different approach?
|
|
1077
1085
|
[/NOTIFY]
|
|
1078
1086
|
```
|
|
1087
|
+
|
|
1088
|
+
## Error Learning Protocol
|
|
1089
|
+
|
|
1090
|
+
When you encounter an error and successfully resolve it:
|
|
1091
|
+
1. Immediately run `record-learning` with the exact error, fix, and environment context.
|
|
1092
|
+
2. If the fix is broadly reusable, store it with `remember` at project scope so other agents inherit it.
|
|
1093
|
+
3. Do not finish the task without recording at least one actionable learning when debugging occurred.
|
|
@@ -99,3 +99,10 @@ You have bash skills that let you store and retrieve knowledge that persists acr
|
|
|
99
99
|
5. **Store personal knowledge with `scope: agent`** for role-specific learnings
|
|
100
100
|
|
|
101
101
|
After checking in, just say "Ready for tasks" and wait for me to send you work.
|
|
102
|
+
|
|
103
|
+
## Error Learning Protocol
|
|
104
|
+
|
|
105
|
+
When you encounter an error and successfully resolve it:
|
|
106
|
+
1. Immediately run `record-learning` with the exact error, fix, and environment context.
|
|
107
|
+
2. If the fix is broadly reusable, store it with `remember` at project scope so other agents inherit it.
|
|
108
|
+
3. Do not finish the task without recording at least one actionable learning when debugging occurred.
|
|
@@ -114,3 +114,10 @@ You have bash skills that let you store and retrieve knowledge that persists acr
|
|
|
114
114
|
```
|
|
115
115
|
|
|
116
116
|
After checking in, just say "Ready for tasks" and wait for me to send you work.
|
|
117
|
+
|
|
118
|
+
## Error Learning Protocol
|
|
119
|
+
|
|
120
|
+
When you encounter an error and successfully resolve it:
|
|
121
|
+
1. Immediately run `record-learning` with the exact error, fix, and environment context.
|
|
122
|
+
2. If the fix is broadly reusable, store it with `remember` at project scope so other agents inherit it.
|
|
123
|
+
3. Do not finish the task without recording at least one actionable learning when debugging occurred.
|
|
@@ -114,3 +114,10 @@ You have bash skills that let you store and retrieve knowledge that persists acr
|
|
|
114
114
|
```
|
|
115
115
|
|
|
116
116
|
After checking in, just say "Ready for tasks" and wait for me to send you work.
|
|
117
|
+
|
|
118
|
+
## Error Learning Protocol
|
|
119
|
+
|
|
120
|
+
When you encounter an error and successfully resolve it:
|
|
121
|
+
1. Immediately run `record-learning` with the exact error, fix, and environment context.
|
|
122
|
+
2. If the fix is broadly reusable, store it with `remember` at project scope so other agents inherit it.
|
|
123
|
+
3. Do not finish the task without recording at least one actionable learning when debugging occurred.
|
|
@@ -96,3 +96,10 @@ You have bash skills that let you store and retrieve knowledge that persists acr
|
|
|
96
96
|
5. **Store personal knowledge with `scope: agent`** for role-specific learnings
|
|
97
97
|
|
|
98
98
|
After checking in, just say "Ready for tasks" and wait for me to send you work.
|
|
99
|
+
|
|
100
|
+
## Error Learning Protocol
|
|
101
|
+
|
|
102
|
+
When you encounter an error and successfully resolve it:
|
|
103
|
+
1. Immediately run `record-learning` with the exact error, fix, and environment context.
|
|
104
|
+
2. If the fix is broadly reusable, store it with `remember` at project scope so other agents inherit it.
|
|
105
|
+
3. Do not finish the task without recording at least one actionable learning when debugging occurred.
|
|
@@ -96,3 +96,10 @@ You have bash skills that let you store and retrieve knowledge that persists acr
|
|
|
96
96
|
5. **Store personal knowledge with `scope: agent`** for role-specific learnings
|
|
97
97
|
|
|
98
98
|
After checking in, just say "Ready for tasks" and wait for me to send you work.
|
|
99
|
+
|
|
100
|
+
## Error Learning Protocol
|
|
101
|
+
|
|
102
|
+
When you encounter an error and successfully resolve it:
|
|
103
|
+
1. Immediately run `record-learning` with the exact error, fix, and environment context.
|
|
104
|
+
2. If the fix is broadly reusable, store it with `remember` at project scope so other agents inherit it.
|
|
105
|
+
3. Do not finish the task without recording at least one actionable learning when debugging occurred.
|
|
@@ -97,3 +97,10 @@ You have bash skills that let you store and retrieve knowledge that persists acr
|
|
|
97
97
|
5. **Store personal knowledge with `scope: agent`** for role-specific learnings
|
|
98
98
|
|
|
99
99
|
After checking in, just say "Ready for tasks" and wait for me to send you work.
|
|
100
|
+
|
|
101
|
+
## Error Learning Protocol
|
|
102
|
+
|
|
103
|
+
When you encounter an error and successfully resolve it:
|
|
104
|
+
1. Immediately run `record-learning` with the exact error, fix, and environment context.
|
|
105
|
+
2. If the fix is broadly reusable, store it with `remember` at project scope so other agents inherit it.
|
|
106
|
+
3. Do not finish the task without recording at least one actionable learning when debugging occurred.
|
|
@@ -14,5 +14,5 @@ Register this agent as active with the Crewly backend. This must be the first sk
|
|
|
14
14
|
## Example
|
|
15
15
|
|
|
16
16
|
```bash
|
|
17
|
-
bash config/skills/agent/register-self/execute.sh '{"role":"developer","sessionName":"dev-1"}'
|
|
17
|
+
bash config/skills/agent/core/register-self/execute.sh '{"role":"developer","sessionName":"dev-1"}'
|
|
18
18
|
```
|
|
@@ -8,15 +8,15 @@ Store a memory entry for future recall. Use this to persist important context, d
|
|
|
8
8
|
|-----------|----------|-------------|
|
|
9
9
|
| `agentId` | Yes | Your agent ID |
|
|
10
10
|
| `content` | Yes | The content to remember |
|
|
11
|
-
| `category` | Yes | Memory category
|
|
12
|
-
| `scope` | Yes | Memory scope: `"
|
|
11
|
+
| `category` | Yes | Memory category. Agent scope supports `fact`, `pattern`, `preference`. Project scope supports `pattern`, `decision`, `gotcha`, `relationship`, `user_preference` |
|
|
12
|
+
| `scope` | Yes | Memory scope: `"agent"` or `"project"` |
|
|
13
13
|
| `projectPath` | No | Associated project path |
|
|
14
14
|
| `metadata` | No | Additional metadata object |
|
|
15
15
|
|
|
16
16
|
## Example
|
|
17
17
|
|
|
18
18
|
```bash
|
|
19
|
-
bash config/skills/agent/remember/execute.sh '{"agentId":"dev-1","content":"
|
|
19
|
+
bash config/skills/agent/core/remember/execute.sh '{"agentId":"dev-1","content":"User prefers PDF delivery in Slack thread after daily brief.","category":"user_preference","scope":"project","projectPath":"/projects/app"}'
|
|
20
20
|
```
|
|
21
21
|
|
|
22
22
|
## Output
|
|
@@ -15,10 +15,30 @@ PROJECT_PATH=$(echo "$INPUT" | jq -r '.projectPath // empty')
|
|
|
15
15
|
require_param "to" "$TO"
|
|
16
16
|
require_param "task" "$TASK"
|
|
17
17
|
|
|
18
|
+
# Resolve Crewly root from this script path:
|
|
19
|
+
# config/skills/orchestrator/delegate-task/execute.sh -> project root
|
|
20
|
+
CREWLY_ROOT="$(cd "${SCRIPT_DIR}/../../../.." && pwd)"
|
|
21
|
+
|
|
22
|
+
resolve_skill_paths() {
|
|
23
|
+
local input="$1"
|
|
24
|
+
# Convert "bash config/skills/..." and "/config/skills/..." to absolute paths.
|
|
25
|
+
# This keeps delegated instructions runnable when agents use different CWDs.
|
|
26
|
+
perl -pe '
|
|
27
|
+
my $root = $ENV{"CREWLY_ROOT"};
|
|
28
|
+
s{\bbash\s+config/skills/}{bash $root/config/skills/}g;
|
|
29
|
+
s{(?<![A-Za-z0-9_./-])config/skills/}{$root/config/skills/}g;
|
|
30
|
+
' <<< "$input"
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
TASK="$(CREWLY_ROOT="$CREWLY_ROOT" resolve_skill_paths "$TASK")"
|
|
34
|
+
if [ -n "$CONTEXT" ]; then
|
|
35
|
+
CONTEXT="$(CREWLY_ROOT="$CREWLY_ROOT" resolve_skill_paths "$CONTEXT")"
|
|
36
|
+
fi
|
|
37
|
+
|
|
18
38
|
# Build a structured task message
|
|
19
39
|
TASK_MESSAGE="[TASK] Priority: ${PRIORITY}\n\n${TASK}"
|
|
20
40
|
[ -n "$CONTEXT" ] && TASK_MESSAGE="${TASK_MESSAGE}\n\nContext: ${CONTEXT}"
|
|
21
|
-
TASK_MESSAGE="${TASK_MESSAGE}\n\nWhen done, report back using: bash config/skills/agent/core/report-status/execute.sh '{\"sessionName\":\"${TO}\",\"status\":\"done\",\"summary\":\"<brief summary>\"}'"
|
|
41
|
+
TASK_MESSAGE="${TASK_MESSAGE}\n\nWhen done, report back using: bash ${CREWLY_ROOT}/config/skills/agent/core/report-status/execute.sh '{\"sessionName\":\"${TO}\",\"status\":\"done\",\"summary\":\"<brief summary>\"}'"
|
|
22
42
|
|
|
23
43
|
BODY=$(jq -n --arg message "$TASK_MESSAGE" '{message: $message}')
|
|
24
44
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# Delegate Task
|
|
2
2
|
|
|
3
3
|
Sends a structured task assignment to an agent. When a `projectPath` is provided, also creates a task MD file in the project's `.crewly/tasks/delegated/in_progress/` directory for tracking.
|
|
4
|
+
The script auto-resolves `config/skills/...` references to absolute paths so delegated tasks remain runnable from any working directory.
|
|
4
5
|
|
|
5
6
|
## Usage
|
|
6
7
|
|
|
@@ -22,7 +22,7 @@ bash config/skills/orchestrator/remember/execute.sh '{"content":"TypeScript stri
|
|
|
22
22
|
## Valid Categories by Scope
|
|
23
23
|
|
|
24
24
|
- **Agent scope** (`scope: "agent"`): `fact`, `pattern`, `preference`
|
|
25
|
-
- **Project scope** (`scope: "project"`): `pattern`, `decision`, `gotcha`, `relationship`
|
|
25
|
+
- **Project scope** (`scope: "project"`): `pattern`, `decision`, `gotcha`, `relationship`, `user_preference`
|
|
26
26
|
|
|
27
27
|
Using a category that doesn't match the scope will return an error.
|
|
28
28
|
|
|
@@ -16,12 +16,16 @@ Usage:
|
|
|
16
16
|
# Upload an image with optional comment
|
|
17
17
|
bash execute.sh --channel C0123 --image /path/to/screenshot.png --text "Here's the result"
|
|
18
18
|
|
|
19
|
+
# Upload any file type (PDF, CSV, etc.) with optional comment
|
|
20
|
+
bash execute.sh --channel C0123 --file /path/to/report.pdf --text "Daily report"
|
|
21
|
+
|
|
19
22
|
Options:
|
|
20
23
|
--channel | -c Slack channel ID (required unless JSON provided)
|
|
21
24
|
--text | -t Message text (optional when piping stdin)
|
|
22
25
|
--text-file Read message text from the specified file path
|
|
23
26
|
--thread | -r Slack thread timestamp for replies
|
|
24
27
|
--image | -i Path to image file to upload (uses /api/slack/upload-image)
|
|
28
|
+
--file | -f Path to file upload (uses /api/slack/upload-file)
|
|
25
29
|
--allow-new-thread Allow posting without --thread (disabled by default for safety)
|
|
26
30
|
--json | -j Raw JSON payload (same as legacy usage)
|
|
27
31
|
--help | -h Show this help
|
|
@@ -33,6 +37,7 @@ CHANNEL_ID=""
|
|
|
33
37
|
TEXT=""
|
|
34
38
|
THREAD_TS=""
|
|
35
39
|
IMAGE_PATH=""
|
|
40
|
+
FILE_PATH=""
|
|
36
41
|
ALLOW_NEW_THREAD="false"
|
|
37
42
|
|
|
38
43
|
# Detect legacy JSON argument as the first parameter
|
|
@@ -65,6 +70,10 @@ while [[ $# -gt 0 ]]; do
|
|
|
65
70
|
IMAGE_PATH="$2"
|
|
66
71
|
shift 2
|
|
67
72
|
;;
|
|
73
|
+
--file|-f)
|
|
74
|
+
FILE_PATH="$2"
|
|
75
|
+
shift 2
|
|
76
|
+
;;
|
|
68
77
|
--allow-new-thread)
|
|
69
78
|
ALLOW_NEW_THREAD="true"
|
|
70
79
|
shift
|
|
@@ -123,8 +132,13 @@ if [ -n "$TEXT" ]; then
|
|
|
123
132
|
TEXT="${TEXT//\\n/$_NL}"
|
|
124
133
|
fi
|
|
125
134
|
|
|
126
|
-
#
|
|
127
|
-
if [ -
|
|
135
|
+
# Prevent ambiguous uploads.
|
|
136
|
+
if [ -n "$IMAGE_PATH" ] && [ -n "$FILE_PATH" ]; then
|
|
137
|
+
error_exit "Use either --image or --file, not both."
|
|
138
|
+
fi
|
|
139
|
+
|
|
140
|
+
# When uploading an image/file, text is optional (serves as initial_comment)
|
|
141
|
+
if [ -z "$IMAGE_PATH" ] && [ -z "$FILE_PATH" ] && [ -z "$TEXT" ]; then
|
|
128
142
|
error_exit "Slack message text is required. Pass --text, --text-file, pipe stdin, or include it in the JSON payload."
|
|
129
143
|
fi
|
|
130
144
|
|
|
@@ -146,6 +160,18 @@ if [ -n "$IMAGE_PATH" ]; then
|
|
|
146
160
|
(if $threadTs != "" then {threadTs: $threadTs} else {} end)')
|
|
147
161
|
|
|
148
162
|
api_call POST "/slack/upload-image" "$BODY"
|
|
163
|
+
elif [ -n "$FILE_PATH" ]; then
|
|
164
|
+
# Generic file upload mode — use /api/slack/upload-file
|
|
165
|
+
BODY=$(jq -n \
|
|
166
|
+
--arg channelId "$CHANNEL_ID" \
|
|
167
|
+
--arg filePath "$FILE_PATH" \
|
|
168
|
+
--arg initialComment "${TEXT:-}" \
|
|
169
|
+
--arg threadTs "${THREAD_TS:-}" \
|
|
170
|
+
'{channelId: $channelId, filePath: $filePath} +
|
|
171
|
+
(if $initialComment != "" then {initialComment: $initialComment} else {} end) +
|
|
172
|
+
(if $threadTs != "" then {threadTs: $threadTs} else {} end)')
|
|
173
|
+
|
|
174
|
+
api_call POST "/slack/upload-file" "$BODY"
|
|
149
175
|
else
|
|
150
176
|
# Text-only mode — use /api/slack/send
|
|
151
177
|
if [ -n "$THREAD_TS" ]; then
|
|
@@ -179,6 +205,11 @@ fi
|
|
|
179
205
|
if [ -n "$TEXT" ]; then
|
|
180
206
|
printf '%s\n' "$TEXT"
|
|
181
207
|
fi
|
|
208
|
+
elif [ -n "$FILE_PATH" ]; then
|
|
209
|
+
printf 'File uploaded: %s\n' "$FILE_PATH"
|
|
210
|
+
if [ -n "$TEXT" ]; then
|
|
211
|
+
printf '%s\n' "$TEXT"
|
|
212
|
+
fi
|
|
182
213
|
else
|
|
183
214
|
printf '%s\n' "$TEXT"
|
|
184
215
|
fi
|
|
@@ -27,9 +27,10 @@ bash config/skills/orchestrator/reply-slack/execute.sh '{"channelId":"C0123","te
|
|
|
27
27
|
| Parameter | Required | Description |
|
|
28
28
|
|-----------|----------|-------------|
|
|
29
29
|
| `channelId` / `--channel` | Yes | Slack channel ID to send the message to |
|
|
30
|
-
| `text` / `--text` / stdin | Yes* | Message text (supports Slack Markdown). You can pipe multi-line text via stdin with `--channel`. *Optional when `--image` is provided |
|
|
30
|
+
| `text` / `--text` / stdin | Yes* | Message text (supports Slack Markdown). You can pipe multi-line text via stdin with `--channel`. *Optional when `--image` or `--file` is provided |
|
|
31
31
|
| `threadTs` / `--thread` | Yes (default) | Thread timestamp for threaded replies. Required unless `--allow-new-thread` is set |
|
|
32
32
|
| `--image` / `-i` | No | Path to an image file to upload to Slack. When provided, calls `/api/slack/upload-image` instead of `/api/slack/send`. The `--text` becomes an optional comment on the image |
|
|
33
|
+
| `--file` / `-f` | No | Path to any file type (PDF/CSV/ZIP/etc.) to upload via `/api/slack/upload-file`. The `--text` becomes an optional comment |
|
|
33
34
|
| `--allow-new-thread` | No | Explicitly allow posting without a thread (safety override) |
|
|
34
35
|
| `conversationId` / `--conversation` | No | Conversation ID from the `[CHAT:...]` prefix so the queue can resolve instantly (falls back to the active conversation if omitted) |
|
|
35
36
|
|
|
@@ -46,6 +47,18 @@ bash config/skills/orchestrator/reply-slack/execute.sh \
|
|
|
46
47
|
|
|
47
48
|
Supported image types: PNG, JPEG, GIF, WebP, SVG. Max file size: 20 MB.
|
|
48
49
|
|
|
50
|
+
## Generic File Upload
|
|
51
|
+
|
|
52
|
+
To send any file type (for example PDF/CSV):
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
bash config/skills/orchestrator/reply-slack/execute.sh \
|
|
56
|
+
--channel C0123 \
|
|
57
|
+
--thread 1707430000.001234 \
|
|
58
|
+
--file /path/to/report.pdf \
|
|
59
|
+
--text "Daily report attached"
|
|
60
|
+
```
|
|
61
|
+
|
|
49
62
|
## Output
|
|
50
63
|
|
|
51
64
|
JSON confirmation with the Slack message timestamp (text) or file ID (image) on success.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"display_information": {
|
|
3
|
+
"name": "Crewly",
|
|
4
|
+
"description": "AI Team Orchestrator"
|
|
5
|
+
},
|
|
6
|
+
"features": {
|
|
7
|
+
"bot_user": {
|
|
8
|
+
"display_name": "Crewly",
|
|
9
|
+
"always_online": true
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
"oauth_config": {
|
|
13
|
+
"scopes": {
|
|
14
|
+
"bot": [
|
|
15
|
+
"chat:write",
|
|
16
|
+
"files:read",
|
|
17
|
+
"files:write",
|
|
18
|
+
"app_mentions:read",
|
|
19
|
+
"channels:history",
|
|
20
|
+
"groups:history",
|
|
21
|
+
"im:history",
|
|
22
|
+
"mpim:history",
|
|
23
|
+
"users:read"
|
|
24
|
+
]
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"settings": {
|
|
28
|
+
"socket_mode_enabled": true,
|
|
29
|
+
"event_subscriptions": {
|
|
30
|
+
"bot_events": [
|
|
31
|
+
"message.im",
|
|
32
|
+
"message.channels",
|
|
33
|
+
"app_mention"
|
|
34
|
+
]
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -416,7 +416,7 @@ export declare const TERMINAL_PATTERNS: {
|
|
|
416
416
|
* Agent prompt indicators (characters that appear at input prompts).
|
|
417
417
|
* Includes Claude Code (❯, >, ⏵), bash ($), and Gemini CLI (!).
|
|
418
418
|
*/
|
|
419
|
-
readonly PROMPT_CHARS: readonly ["❯", ">", "⏵", "$", "!"];
|
|
419
|
+
readonly PROMPT_CHARS: readonly ["❯", ">", "›", "⏵", "$", "!"];
|
|
420
420
|
/**
|
|
421
421
|
* Claude Code idle prompt detection.
|
|
422
422
|
* Matches:
|
|
@@ -433,6 +433,14 @@ export declare const TERMINAL_PATTERNS: {
|
|
|
433
433
|
* - "Type your message …" or "YOLO mode …" textual prompts
|
|
434
434
|
*/
|
|
435
435
|
readonly GEMINI_CLI_PROMPT: RegExp;
|
|
436
|
+
/**
|
|
437
|
+
* Codex CLI idle prompt detection.
|
|
438
|
+
* Matches:
|
|
439
|
+
* - `› ` prompt lines (Codex TUI prompt indicator)
|
|
440
|
+
* - Box-drawing border followed by `›` or `>`
|
|
441
|
+
* - Textual input placeholder shown by Codex
|
|
442
|
+
*/
|
|
443
|
+
readonly CODEX_CLI_PROMPT: RegExp;
|
|
436
444
|
/**
|
|
437
445
|
* Combined prompt pattern for any runtime (union of Claude Code + Gemini CLI).
|
|
438
446
|
* Use runtime-specific patterns when you need to distinguish between runtimes.
|
|
@@ -617,6 +625,11 @@ export declare const GEMINI_FAILURE_RETRY_CONSTANTS: {
|
|
|
617
625
|
readonly RECOVERY_CHECK_LINES: 50;
|
|
618
626
|
};
|
|
619
627
|
export declare const GEMINI_FAILURE_PATTERNS: RegExp[];
|
|
628
|
+
/**
|
|
629
|
+
* Gemini update/upgrade markers that should trigger forced recovery.
|
|
630
|
+
* These indicate the CLI interrupted the current request for self-update.
|
|
631
|
+
*/
|
|
632
|
+
export declare const GEMINI_FORCE_RESTART_PATTERNS: RegExp[];
|
|
620
633
|
/**
|
|
621
634
|
* Constants for runtime exit detection monitoring.
|
|
622
635
|
* Used by RuntimeExitMonitorService to detect when an agent CLI exits.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../backend/src/constants.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../backend/src/constants.ts"],"names":[],"mappings":"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"}
|