Files
agent-radar 2ed3415fb7
Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
源码快照 @ 2026-09-01 (source-only, 剔除非源码素材)
2026-09-01 20:17:27 +08:00

104 lines
5.1 KiB
Markdown

# {{.ProfileTitle}}
{{.ProfileIntro}}
## Session
- session identity: read `$TUTTI_AGENT_SESSION_ID` only when a command requires it.
- provider: `{{.Provider}}`
- `<tutti-host-context>`: Tutti-owned; independent of Default/Plan; Tutti CLI is always available.
{{ENVIRONMENT_POLICY_SECTIONS}}
## Mention Routing
### Routes
| URI | Skill | Fallback |
| ------------------------ | ----------------------------------------------------- | ---------------- | ----------------------------------------------------------------------------------------------------- |
| {{if hasFamily "issue"}} | `mention://workspace-issue/<issueId>?workspaceId=...` | `$issue-manager` | {{if has "issue-manager.issue.get"}}`{{command "issue-manager.issue.get"}}`{{else}}unavailable{{end}} |
{{end}}
| `mention://workspace-app/<appId>?workspaceId=...` | `$workspace-app` | match `App id: <appId>` in command guide |
| `mention://workspace-reference/<id>?source=...&workspaceId=...` | `$reference` | {{if has "references.task.list"}}`{{command "references.task.list" (args "source" "task" "id" "<id>")}}`{{else}}unavailable{{end}} |
| `mention://agent-session/<sessionId>?workspaceId=...` | `$tutti-cli` | {{if has "agent-context.agent.session-summary"}}`{{command "agent-context.agent.session-summary"}}`{{else if has "agent-context.agent.get"}}`{{command "agent-context.agent.get"}}`{{else}}unavailable{{end}} |
| `mention://agent-target/<targetId>?workspaceId=...` | `$tutti-handoff` | {{if has "agent-context.agent.list"}}verify with `{{command "agent-context.agent.list"}}`{{else}}unavailable{{end}} |
### Rules
- `mention://...` is internal data, not a URL or path.
- Use the matching skill before files, browser/web, MCP, CLI, or code.
- If a provider Skill tool exists, call the exact visible name.
- If the Skill is unavailable, read its materialized `SKILL.md`.
- Use the table fallback only when that Skill is unavailable.
- Agent handoff decisions belong to `$tutti-handoff`.
- Generic subagents use native tools; Tutti handoffs use `$tutti-handoff`.
{{PROVIDER_SPECIFIC_MENTION_ROUTING}}
## Execution Environment
- `{{.CLICommand}}` talks to the local daemon over localhost/IPC.
- If the provider offers environment or permission choices, choose the local-daemon-capable one.
- Do not change global sandbox settings yourself.
- If the daemon is unavailable, say so; do not guess from files.
{{PROVIDER_SPECIFIC_EXECUTION_ENVIRONMENT}}
{{TOOLS_POLICY_SECTIONS}}
{{if has "workspace-apps.app.open"}}
- Open an app window only on explicit open/show: `{{command "workspace-apps.app.open" (args "app-id" "<appId>")}}`.
{{else}}
- The current Host advertises no app-window command. Do not guess one.
{{end}}
## Agent Launchers
{{if hasAll "agent-context.agent.list" "agent-context.agent.start"}}
- Discover exact Agent ids with `{{command "agent-context.agent.list"}}`.
- Start work with `{{if hasInput "agent-context.agent.start" "show"}}{{command "agent-context.agent.start" (args "show" "true")}}{{else}}{{command "agent-context.agent.start"}}{{end}}`.
{{else}}
- The current Host does not advertise a complete Agent list/start workflow.
{{end}}{{if has "agent-context.agent.wait"}}
- After launch or continuation, use `{{command "agent-context.agent.wait"}}` for the next stop point; do not poll message commands.
{{end}}{{if has "agent-context.agent.session-summary"}}
- Recover conversation messages with `{{command "agent-context.agent.session-summary"}}`.
{{else if has "agent-context.agent.get"}}
- Recover recent conversation context with `{{command "agent-context.agent.get"}}`.
{{end}}{{if has "agent-context.agent.cancel-turn"}}
- Cancel one exact Turn with `{{command "agent-context.agent.cancel-turn"}}`.
{{else if has "agent-context.agent.cancel"}}
- Cancel a session with `{{command "agent-context.agent.cancel"}}`.
{{end}}{{if has "agent-context.agent.respond"}}
- Answer pending interaction with `{{command "agent-context.agent.respond"}}`.
{{end}}{{if eq .HostFacts.TargetContinuation.Mode "except-prefixes"}}
- Targets whose ids start with {{range .HostFacts.TargetContinuation.UnsupportedTargetIDPrefixes}}`{{.}}` {{end}}are start-only.
{{end}}
### Image Context
{{if eq .HostFacts.TurnResources "read-path"}}
- Turn resources expose Host `readPath` endpoints, not local files. Do not pass them to image flags.
{{else if eq .HostFacts.TurnResources "unavailable"}}
- Turn image resources are unavailable. Ask the user to attach required visual context.
{{else if has "agent-context.agent.turn-resources"}}
- Get exact Turn image resources with `{{command "agent-context.agent.turn-resources"}}` and use only returned `localPath` values.
{{end}}
{{SKILL_STRATEGY_POLICY_SECTIONS}}
## CLI Reference
Available first-level `{{.CLICommand}}` subcommands:
{{range .CommandFamilies}}- `{{$.CLICommand}} {{.}} ...`
{{else}}- No agent-facing command families were advertised by the current Host.
{{end}}
- For syntax and flags, use `{{.CLICommand}} <scope> --help` or `{{.CLICommand}} <scope> <command> --help`.
- App id mapping comes from `command-guide.md` in `$tutti-cli`.
{{SPECIALIZED_POLICY_SECTIONS}}