primethink-cli 1.3.3__tar.gz → 1.4.0__tar.gz

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.
Files changed (45) hide show
  1. {primethink_cli-1.3.3 → primethink_cli-1.4.0}/MANIFEST.in +2 -0
  2. {primethink_cli-1.3.3/primethink_cli.egg-info → primethink_cli-1.4.0}/PKG-INFO +52 -11
  3. {primethink_cli-1.3.3 → primethink_cli-1.4.0}/README.md +49 -8
  4. {primethink_cli-1.3.3 → primethink_cli-1.4.0}/SPECS.md +95 -4
  5. {primethink_cli-1.3.3 → primethink_cli-1.4.0}/USER_GUIDE.md +389 -5
  6. {primethink_cli-1.3.3 → primethink_cli-1.4.0}/docs/cli-reference.md +1161 -31
  7. {primethink_cli-1.3.3 → primethink_cli-1.4.0}/primethink.py +1779 -139
  8. {primethink_cli-1.3.3 → primethink_cli-1.4.0/primethink_cli.egg-info}/PKG-INFO +52 -11
  9. {primethink_cli-1.3.3 → primethink_cli-1.4.0}/primethink_cli.egg-info/SOURCES.txt +0 -1
  10. {primethink_cli-1.3.3 → primethink_cli-1.4.0}/primethink_cli.egg-info/requires.txt +2 -2
  11. primethink_cli-1.4.0/primethink_mcp.py +1865 -0
  12. {primethink_cli-1.3.3 → primethink_cli-1.4.0}/pyproject.toml +5 -3
  13. primethink_cli-1.4.0/skills/primethink-cli/SKILL.md +464 -0
  14. {primethink_cli-1.3.3 → primethink_cli-1.4.0}/tests/test_agent_commands.py +17 -0
  15. {primethink_cli-1.3.3 → primethink_cli-1.4.0}/tests/test_cli.py +1531 -170
  16. primethink_cli-1.4.0/tests/test_mcp_server.py +1075 -0
  17. {primethink_cli-1.3.3 → primethink_cli-1.4.0}/tests/test_project_workflows.py +15 -134
  18. {primethink_cli-1.3.3 → primethink_cli-1.4.0}/tests/test_search_commands.py +20 -0
  19. {primethink_cli-1.3.3 → primethink_cli-1.4.0}/tests/test_task_commands.py +28 -0
  20. primethink_cli-1.3.3/docs/superpowers/specs/2026-08-16-install-attached-skills-design.md +0 -184
  21. primethink_cli-1.3.3/primethink_mcp.py +0 -773
  22. primethink_cli-1.3.3/skills/primethink-cli/SKILL.md +0 -190
  23. primethink_cli-1.3.3/tests/test_mcp_server.py +0 -283
  24. {primethink_cli-1.3.3 → primethink_cli-1.4.0}/DEVELOPER.md +0 -0
  25. {primethink_cli-1.3.3 → primethink_cli-1.4.0}/LICENSE +0 -0
  26. {primethink_cli-1.3.3 → primethink_cli-1.4.0}/docs/install.md +0 -0
  27. {primethink_cli-1.3.3 → primethink_cli-1.4.0}/docs/primethink_help_llms.txt +0 -0
  28. {primethink_cli-1.3.3 → primethink_cli-1.4.0}/install/homebrew/primethink-cli.rb +0 -0
  29. {primethink_cli-1.3.3 → primethink_cli-1.4.0}/install/install.cmd +0 -0
  30. {primethink_cli-1.3.3 → primethink_cli-1.4.0}/install/install.ps1 +0 -0
  31. {primethink_cli-1.3.3 → primethink_cli-1.4.0}/install/install.sh +0 -0
  32. {primethink_cli-1.3.3 → primethink_cli-1.4.0}/primethink_cli.egg-info/dependency_links.txt +0 -0
  33. {primethink_cli-1.3.3 → primethink_cli-1.4.0}/primethink_cli.egg-info/entry_points.txt +0 -0
  34. {primethink_cli-1.3.3 → primethink_cli-1.4.0}/primethink_cli.egg-info/top_level.txt +0 -0
  35. {primethink_cli-1.3.3 → primethink_cli-1.4.0}/scripts/build.sh +0 -0
  36. {primethink_cli-1.3.3 → primethink_cli-1.4.0}/scripts/deploy.sh +0 -0
  37. {primethink_cli-1.3.3 → primethink_cli-1.4.0}/scripts/publish.sh +0 -0
  38. {primethink_cli-1.3.3 → primethink_cli-1.4.0}/setup.cfg +0 -0
  39. {primethink_cli-1.3.3 → primethink_cli-1.4.0}/setup.py +0 -0
  40. {primethink_cli-1.3.3 → primethink_cli-1.4.0}/skills/__init__.py +0 -0
  41. {primethink_cli-1.3.3 → primethink_cli-1.4.0}/tests/test_env_config.py +0 -0
  42. {primethink_cli-1.3.3 → primethink_cli-1.4.0}/tests/test_install_developer_skill.py +0 -0
  43. {primethink_cli-1.3.3 → primethink_cli-1.4.0}/tests/test_install_skill.py +0 -0
  44. {primethink_cli-1.3.3 → primethink_cli-1.4.0}/tests/test_live_app.py +0 -0
  45. {primethink_cli-1.3.3 → primethink_cli-1.4.0}/tests/test_whoami.py +0 -0
@@ -7,6 +7,8 @@ recursive-include docs *.md *.txt
7
7
  recursive-include install *.sh *.ps1 *.cmd *.rb
8
8
  recursive-include scripts *.sh
9
9
  recursive-include skills *.md
10
+ # Internal design/spec artifacts live under docs/ but must not ship in the sdist.
11
+ prune docs/superpowers
10
12
  global-exclude __pycache__
11
13
  global-exclude *.py[co]
12
14
  global-exclude .DS_Store
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: primethink-cli
3
- Version: 1.3.3
3
+ Version: 1.4.0
4
4
  Summary: PrimeThink CLI - A powerful tool for interacting with PrimeThink AI API
5
5
  Author-email: PrimeThink <support@primethink.ai>
6
6
  License-Expression: MIT
@@ -25,11 +25,11 @@ License-File: LICENSE
25
25
  Requires-Dist: click>=8.0.0
26
26
  Requires-Dist: requests>=2.25.0
27
27
  Provides-Extra: mcp
28
- Requires-Dist: mcp>=1.2.0; extra == "mcp"
28
+ Requires-Dist: mcp<2,>=1.2.0; extra == "mcp"
29
29
  Provides-Extra: dev
30
30
  Requires-Dist: pytest>=7.0.0; extra == "dev"
31
31
  Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
32
- Requires-Dist: mcp>=1.2.0; python_version >= "3.10" and extra == "dev"
32
+ Requires-Dist: mcp<2,>=1.2.0; python_version >= "3.10" and extra == "dev"
33
33
  Dynamic: license-file
34
34
 
35
35
  # PrimeThink CLI
@@ -73,7 +73,6 @@ pt chat send --agent AGENT_ID --message "your message"
73
73
  | `pt live-app new` | Scaffold a React or HTML Live App from a GitHub template catalog |
74
74
  | `pt live-app publish` | Create/update a Live App task and sync its flat artifact |
75
75
  | `pt live-app test` | Sync a Live App into a new or existing chat |
76
- | `pt live-app test-ui` | Run Kiro/Playwright tests against an existing Live App chat |
77
76
  | `pt profile add` | Configure an API token for a profile |
78
77
  | `pt profile use` | Switch the active profile |
79
78
  | `pt profile list` | List configured profiles |
@@ -90,26 +89,66 @@ pt chat send --agent AGENT_ID --message "your message"
90
89
  | `pt chat list-files` | List files and directories in a chat |
91
90
  | `pt chat upload-files` | Upload local files to a chat |
92
91
  | `pt chat download-file` | Download a file from a chat |
92
+ | `pt chat delete-file` | Delete a file from a chat by document ID (asks for confirmation) |
93
+ | `pt chat upload-text` | Create a chat document from raw text (no local file) |
94
+ | `pt chat list-users` | List a chat's members |
95
+ | `pt chat invite-members` / `pt chat remove-members` | Invite / remove users and agents in a chat |
96
+ | `pt chat edit-message` / `delete-message` / `clear-messages` / `retry-message` | Edit, delete, clear, or retry chat messages |
97
+ | `pt chat export-message` / `save-as-task` | Export a message (md/docx/pdf) or save a chat as a task |
93
98
  | `pt chat sync-to` | Sync a local directory into a chat |
94
99
  | `pt chat sync-from` | Sync a chat's files to a local directory |
95
100
  | `pt chat sync` | Two-way sync between a chat folder and a local directory |
101
+ | `pt chatdb init` | Initialize a chat's ChatDB (Live App data) store |
102
+ | `pt chatdb list` | List entities in a chat's ChatDB store |
103
+ | `pt chatdb get` | Get one ChatDB entity by ID |
104
+ | `pt chatdb add` | Add one or more rows to a ChatDB entity |
105
+ | `pt chatdb update` | Update ChatDB entities (single or bulk) |
106
+ | `pt chatdb delete` | Delete ChatDB entities (asks for confirmation) |
96
107
  | `pt collection list` | List collections (paginated, searchable) |
108
+ | `pt collection create` | Create a collection |
109
+ | `pt collection get` | Fetch a collection's details as JSON |
110
+ | `pt collection update` | Update a collection's fields (name, indexing, …) |
111
+ | `pt collection reindex` | Trigger a reindex of a collection |
112
+ | `pt collection copy` | Duplicate a collection (by UUID) |
113
+ | `pt collection delete` | Delete a collection (asks for confirmation; `--yes` to skip) |
97
114
  | `pt collection list-files` | List files and directories in a collection |
98
115
  | `pt collection upload-files` | Upload local files to a collection |
116
+ | `pt collection upload-text` | Create a collection document from raw text (no local file) |
117
+ | `pt collection delete-file` | Delete files from a collection by document ID (asks for confirmation) |
99
118
  | `pt collection download-file` | Download a file from a collection |
100
119
  | `pt collection sync-to` | Sync a local directory into a collection |
101
120
  | `pt collection sync-from` | Sync a collection's files to a local directory |
102
- | `pt agent list` | List agents (virtual assistants), filterable by name/type/status |
121
+ | `pt agent list` | List agents (virtual assistants), filterable by name/type/status (`--summary` trims heavy config) |
103
122
  | `pt agent get` | Fetch an agent's details as JSON |
104
123
  | `pt agent create` | Create an agent |
105
124
  | `pt agent update` | Update fields on an existing agent |
106
125
  | `pt agent delete` | Delete an agent (asks for confirmation; `--yes` to skip) |
107
126
  | `pt agent types` | List available agent types |
127
+ | `pt agent list-docs` | List documents in an agent's knowledge base |
128
+ | `pt agent upload-docs` | Upload files to an agent's knowledge base |
129
+ | `pt agent attach-collections` / `pt agent detach-collection` | Attach / detach collections for agent RAG |
130
+ | `pt capability list` / `create` / `update` / `delete` | Manage agent capabilities |
131
+ | `pt capability archive` / `unarchive` / `duplicate` | Archive, unarchive, or duplicate a capability |
132
+ | `pt models list` / `pt models embeddings` | Discover LLM / embedding models from the catalog |
133
+ | `pt scheduled-job list` / `create` / `update` | Manage scheduled jobs (prompts on a schedule) in a chat |
134
+ | `pt scheduled-job set-status` / `delete` | Pause/resume or delete a scheduled job |
135
+ | `pt {chat,collection,task,agent} mkdir` / `rmdir` | Create / delete a folder in a chat, collection, task, or agent |
136
+ | `pt {chat,collection,task,agent} move-dir` / `rename-dir` | Move / rename a folder |
137
+ | `pt {chat,collection,task} list-versions` / `new-version` / `new-text-version` | Manage a document's versions |
138
+ | `pt {chat,collection,task} set-production-version` / `delete-version` | Promote or delete a document version |
139
+ | `pt workspace list` / `create` / `rename` / `set-goal` / `delete` | Manage chat workspaces |
140
+ | `pt workspace archive` / `pin` / `add-chat` / `remove-chat` | Organize chats within workspaces |
141
+ | `pt tag list` / `create` / `assign` | List, create, and assign tags (task/agent/capability/collection) |
142
+ | `pt group list` / `get` / `create` / `update` / `delete` | Manage groups (organizations) |
143
+ | `pt group members` / `remove-member` / `invite` / `add-agent` | Manage group members, invites, and agents |
144
+ | `pt task list` | List tasks, filterable by name/type/status and paginated |
108
145
  | `pt task actions` | List available task actions |
109
146
  | `pt task execute` | Execute a task action with a message and optional files |
110
147
  | `pt task create` | Create a task (supports schedules, canvases, and more) |
111
148
  | `pt task update` | Update fields on an existing task |
112
149
  | `pt task get` | Fetch a task's details as JSON |
150
+ | `pt task upload-text` | Create a task document from raw text (no local file) |
151
+ | `pt task add-docs` / `pt task delete-docs` | Add / delete task knowledge documents |
113
152
  | `pt task delete` | Delete a task (asks for confirmation; `--yes` to skip) |
114
153
  | `pt task duplicate` | Duplicate a task |
115
154
  | `pt task set-public` / `pt task set-private` | Make a task public / private |
@@ -123,10 +162,15 @@ pt chat send --agent AGENT_ID --message "your message"
123
162
  | `pt search chat` | Semantic search within a chat |
124
163
  | `pt search collection` | Semantic search within a collection |
125
164
  | `pt search messages` | Semantic search across chat messages |
165
+ | `pt search images` | Search a collection's images by example image and/or text |
126
166
  | `pt image generate` | Generate an AI image and save it locally |
167
+ | `pt voice stt` / `tts` / `diarize` / `translate` | Transcribe, synthesize, diarize, or translate audio |
168
+ | `pt video analyze` | Analyze a video file |
127
169
 
128
170
  Every command that calls the API also accepts `--profile` (use a specific profile for one request) and `--api-url`/`-u` (override the API URL for one request). See the [full CLI reference](docs/cli-reference.md) for every option and example.
129
171
 
172
+ `--help` works in either position: `pt chat send --help`, `pt chat --help send`, and `pt --help chat send` all print the same page.
173
+
130
174
  > **Tip:** `-p` is the short flag for `--profile` in the `pt task`, `pt agent`, and `pt search` groups, `pt image generate`, and `pt whoami`, but in the `pt chat` and `pt collection` groups there is no `-p` for profile — there `-p` means `--path` (a directory inside the chat/collection) on the file commands. Use the long form `--profile` when in doubt.
131
175
 
132
176
  ## Configuration
@@ -341,14 +385,11 @@ pt live-app test ./my-live-app --chat-id EXISTING_CHAT_ID
341
385
  # Change any chat's renderer explicitly
342
386
  pt chat type EXISTING_CHAT_ID live-app
343
387
  pt chat type EXISTING_CHAT_ID chat
344
-
345
- # Run the agentic Playwright guide against that exact chat
346
- pt live-app test-ui ./my-live-app EXISTING_CHAT_ID \
347
- --guide ./AGENTIC_UI_TESTING.md \
348
- --instructions "Verify create, edit, and delete"
349
388
  ```
350
389
 
351
- Project metadata follows the reference-script conventions: `.name.config`, `.description.config`, `GOAL.md`, and optional `INITIAL_PROMPT.md`; `.image.png` is uploaded when publishing a Live App. Existing same-named app documents receive a new `Production` version, while identical content is reported as unchanged. `test-ui` reuses an authenticated browser session, trusts only browser interaction/inspection tools by default, captures Kiro's final Markdown response, and writes the required report itself; `--trust-all-tools` is an explicit opt-in for reviewed guides that need broader access.
390
+ Project metadata follows the reference-script conventions: `.name.config`, `.description.config`, `GOAL.md`, and optional `INITIAL_PROMPT.md`; `.image.png` is uploaded when publishing a Live App. Existing same-named app documents receive a new `Production` version, while identical content is reported as unchanged.
391
+
392
+ Automated Live App UI testing is no longer a `pt` command. It now lives in the `primethink-developer` skill as a deterministic, plan-driven workflow: the skill authors a reviewable `tests/test_plan.yaml`, runs it with a bundled Playwright runner (no LLM in the execution loop), reads the structured results, and heals failing selectors before re-running. Install it with `pt install-developer-skill`.
352
393
 
353
394
  ## MCP Server
354
395
 
@@ -39,7 +39,6 @@ pt chat send --agent AGENT_ID --message "your message"
39
39
  | `pt live-app new` | Scaffold a React or HTML Live App from a GitHub template catalog |
40
40
  | `pt live-app publish` | Create/update a Live App task and sync its flat artifact |
41
41
  | `pt live-app test` | Sync a Live App into a new or existing chat |
42
- | `pt live-app test-ui` | Run Kiro/Playwright tests against an existing Live App chat |
43
42
  | `pt profile add` | Configure an API token for a profile |
44
43
  | `pt profile use` | Switch the active profile |
45
44
  | `pt profile list` | List configured profiles |
@@ -56,26 +55,66 @@ pt chat send --agent AGENT_ID --message "your message"
56
55
  | `pt chat list-files` | List files and directories in a chat |
57
56
  | `pt chat upload-files` | Upload local files to a chat |
58
57
  | `pt chat download-file` | Download a file from a chat |
58
+ | `pt chat delete-file` | Delete a file from a chat by document ID (asks for confirmation) |
59
+ | `pt chat upload-text` | Create a chat document from raw text (no local file) |
60
+ | `pt chat list-users` | List a chat's members |
61
+ | `pt chat invite-members` / `pt chat remove-members` | Invite / remove users and agents in a chat |
62
+ | `pt chat edit-message` / `delete-message` / `clear-messages` / `retry-message` | Edit, delete, clear, or retry chat messages |
63
+ | `pt chat export-message` / `save-as-task` | Export a message (md/docx/pdf) or save a chat as a task |
59
64
  | `pt chat sync-to` | Sync a local directory into a chat |
60
65
  | `pt chat sync-from` | Sync a chat's files to a local directory |
61
66
  | `pt chat sync` | Two-way sync between a chat folder and a local directory |
67
+ | `pt chatdb init` | Initialize a chat's ChatDB (Live App data) store |
68
+ | `pt chatdb list` | List entities in a chat's ChatDB store |
69
+ | `pt chatdb get` | Get one ChatDB entity by ID |
70
+ | `pt chatdb add` | Add one or more rows to a ChatDB entity |
71
+ | `pt chatdb update` | Update ChatDB entities (single or bulk) |
72
+ | `pt chatdb delete` | Delete ChatDB entities (asks for confirmation) |
62
73
  | `pt collection list` | List collections (paginated, searchable) |
74
+ | `pt collection create` | Create a collection |
75
+ | `pt collection get` | Fetch a collection's details as JSON |
76
+ | `pt collection update` | Update a collection's fields (name, indexing, …) |
77
+ | `pt collection reindex` | Trigger a reindex of a collection |
78
+ | `pt collection copy` | Duplicate a collection (by UUID) |
79
+ | `pt collection delete` | Delete a collection (asks for confirmation; `--yes` to skip) |
63
80
  | `pt collection list-files` | List files and directories in a collection |
64
81
  | `pt collection upload-files` | Upload local files to a collection |
82
+ | `pt collection upload-text` | Create a collection document from raw text (no local file) |
83
+ | `pt collection delete-file` | Delete files from a collection by document ID (asks for confirmation) |
65
84
  | `pt collection download-file` | Download a file from a collection |
66
85
  | `pt collection sync-to` | Sync a local directory into a collection |
67
86
  | `pt collection sync-from` | Sync a collection's files to a local directory |
68
- | `pt agent list` | List agents (virtual assistants), filterable by name/type/status |
87
+ | `pt agent list` | List agents (virtual assistants), filterable by name/type/status (`--summary` trims heavy config) |
69
88
  | `pt agent get` | Fetch an agent's details as JSON |
70
89
  | `pt agent create` | Create an agent |
71
90
  | `pt agent update` | Update fields on an existing agent |
72
91
  | `pt agent delete` | Delete an agent (asks for confirmation; `--yes` to skip) |
73
92
  | `pt agent types` | List available agent types |
93
+ | `pt agent list-docs` | List documents in an agent's knowledge base |
94
+ | `pt agent upload-docs` | Upload files to an agent's knowledge base |
95
+ | `pt agent attach-collections` / `pt agent detach-collection` | Attach / detach collections for agent RAG |
96
+ | `pt capability list` / `create` / `update` / `delete` | Manage agent capabilities |
97
+ | `pt capability archive` / `unarchive` / `duplicate` | Archive, unarchive, or duplicate a capability |
98
+ | `pt models list` / `pt models embeddings` | Discover LLM / embedding models from the catalog |
99
+ | `pt scheduled-job list` / `create` / `update` | Manage scheduled jobs (prompts on a schedule) in a chat |
100
+ | `pt scheduled-job set-status` / `delete` | Pause/resume or delete a scheduled job |
101
+ | `pt {chat,collection,task,agent} mkdir` / `rmdir` | Create / delete a folder in a chat, collection, task, or agent |
102
+ | `pt {chat,collection,task,agent} move-dir` / `rename-dir` | Move / rename a folder |
103
+ | `pt {chat,collection,task} list-versions` / `new-version` / `new-text-version` | Manage a document's versions |
104
+ | `pt {chat,collection,task} set-production-version` / `delete-version` | Promote or delete a document version |
105
+ | `pt workspace list` / `create` / `rename` / `set-goal` / `delete` | Manage chat workspaces |
106
+ | `pt workspace archive` / `pin` / `add-chat` / `remove-chat` | Organize chats within workspaces |
107
+ | `pt tag list` / `create` / `assign` | List, create, and assign tags (task/agent/capability/collection) |
108
+ | `pt group list` / `get` / `create` / `update` / `delete` | Manage groups (organizations) |
109
+ | `pt group members` / `remove-member` / `invite` / `add-agent` | Manage group members, invites, and agents |
110
+ | `pt task list` | List tasks, filterable by name/type/status and paginated |
74
111
  | `pt task actions` | List available task actions |
75
112
  | `pt task execute` | Execute a task action with a message and optional files |
76
113
  | `pt task create` | Create a task (supports schedules, canvases, and more) |
77
114
  | `pt task update` | Update fields on an existing task |
78
115
  | `pt task get` | Fetch a task's details as JSON |
116
+ | `pt task upload-text` | Create a task document from raw text (no local file) |
117
+ | `pt task add-docs` / `pt task delete-docs` | Add / delete task knowledge documents |
79
118
  | `pt task delete` | Delete a task (asks for confirmation; `--yes` to skip) |
80
119
  | `pt task duplicate` | Duplicate a task |
81
120
  | `pt task set-public` / `pt task set-private` | Make a task public / private |
@@ -89,10 +128,15 @@ pt chat send --agent AGENT_ID --message "your message"
89
128
  | `pt search chat` | Semantic search within a chat |
90
129
  | `pt search collection` | Semantic search within a collection |
91
130
  | `pt search messages` | Semantic search across chat messages |
131
+ | `pt search images` | Search a collection's images by example image and/or text |
92
132
  | `pt image generate` | Generate an AI image and save it locally |
133
+ | `pt voice stt` / `tts` / `diarize` / `translate` | Transcribe, synthesize, diarize, or translate audio |
134
+ | `pt video analyze` | Analyze a video file |
93
135
 
94
136
  Every command that calls the API also accepts `--profile` (use a specific profile for one request) and `--api-url`/`-u` (override the API URL for one request). See the [full CLI reference](docs/cli-reference.md) for every option and example.
95
137
 
138
+ `--help` works in either position: `pt chat send --help`, `pt chat --help send`, and `pt --help chat send` all print the same page.
139
+
96
140
  > **Tip:** `-p` is the short flag for `--profile` in the `pt task`, `pt agent`, and `pt search` groups, `pt image generate`, and `pt whoami`, but in the `pt chat` and `pt collection` groups there is no `-p` for profile — there `-p` means `--path` (a directory inside the chat/collection) on the file commands. Use the long form `--profile` when in doubt.
97
141
 
98
142
  ## Configuration
@@ -307,14 +351,11 @@ pt live-app test ./my-live-app --chat-id EXISTING_CHAT_ID
307
351
  # Change any chat's renderer explicitly
308
352
  pt chat type EXISTING_CHAT_ID live-app
309
353
  pt chat type EXISTING_CHAT_ID chat
310
-
311
- # Run the agentic Playwright guide against that exact chat
312
- pt live-app test-ui ./my-live-app EXISTING_CHAT_ID \
313
- --guide ./AGENTIC_UI_TESTING.md \
314
- --instructions "Verify create, edit, and delete"
315
354
  ```
316
355
 
317
- Project metadata follows the reference-script conventions: `.name.config`, `.description.config`, `GOAL.md`, and optional `INITIAL_PROMPT.md`; `.image.png` is uploaded when publishing a Live App. Existing same-named app documents receive a new `Production` version, while identical content is reported as unchanged. `test-ui` reuses an authenticated browser session, trusts only browser interaction/inspection tools by default, captures Kiro's final Markdown response, and writes the required report itself; `--trust-all-tools` is an explicit opt-in for reviewed guides that need broader access.
356
+ Project metadata follows the reference-script conventions: `.name.config`, `.description.config`, `GOAL.md`, and optional `INITIAL_PROMPT.md`; `.image.png` is uploaded when publishing a Live App. Existing same-named app documents receive a new `Production` version, while identical content is reported as unchanged.
357
+
358
+ Automated Live App UI testing is no longer a `pt` command. It now lives in the `primethink-developer` skill as a deterministic, plan-driven workflow: the skill authors a reviewable `tests/test_plan.yaml`, runs it with a bundled Playwright runner (no LLM in the execution loop), reads the structured results, and heals failing selectors before re-running. Install it with `pt install-developer-skill`.
318
359
 
319
360
  ## MCP Server
320
361
 
@@ -34,7 +34,7 @@ To obtain an API key, go to `Settings > API Keys` in the PrimeThink app and gene
34
34
  | CLI command | Method & endpoint |
35
35
  |---|---|
36
36
  | `pt task actions` | `GET /api/v1/tasks/available_task_actions` |
37
- | `pt task execute` | `POST /api/v1/tasks/execute_task_action` |
37
+ | `pt task execute` | `POST /api/v1/tasks/{action_name}/execute` |
38
38
  | `pt chat send CHAT_ID` | `POST /api/v1/chats/{chat_id_or_mention}/messages` |
39
39
  | `pt chat send --agent ID` | `POST /api/v1/virtual-assistants/{agent_id}/messages` |
40
40
  | `pt chat list` | `GET /api/v1/chats` |
@@ -48,8 +48,38 @@ To obtain an API key, go to `Settings > API Keys` in the PrimeThink app and gene
48
48
  | `pt chat list-files` | `GET /api/v1/chats/{chat_id}/directories` |
49
49
  | `pt chat upload-files` / `sync-to` | `POST /api/v1/chats/{chat_id}/documents` |
50
50
  | `pt chat download-file` (filename lookup, then download below) | `GET /api/v1/chats/{chat_id}/document/{document_id}` |
51
+ | `pt chat delete-file` | `DELETE /api/v1/chats/{chat_id}/document/{document_id}` |
52
+ | `pt chat upload-text` | `POST /api/v1/chats/{chat_id}/texts` (bare array; `path` is a query param) |
53
+ | `pt chat list-users` | `GET /api/v1/chats/{chat_id}/users` |
54
+ | `pt chat invite-members` | `POST /api/v1/chats/{chat_id}/members` (`{user_ids, vas_ids}`) |
55
+ | `pt chat remove-members` | `DELETE /api/v1/chats/{chat_id}/members` (`{user_ids, vas_ids}`) |
56
+ | `pt chat edit-message` | `PUT /api/v1/chats/update_message_text/{message_id}` (`{message}`) |
57
+ | `pt chat delete-message` | `DELETE /api/v1/chats/{chat_id}/messages/{message_id}` |
58
+ | `pt chat clear-messages` | `POST /api/v1/chats/{chat_id}/messages/clear` |
59
+ | `pt chat retry-message` | `POST /api/v1/chats/messages/{message_id}/retry` |
60
+ | `pt chat export-message` | `GET /api/v1/chats/{chat_id}/save-as-{md\|docx\|pdf}-file/{msg_id}` |
61
+ | `pt chat save-as-task` | `POST /api/v1/chats/{chat_id}/save-as-task` |
62
+ | `pt scheduled-job list` | `GET /api/v1/scheduled_jobs/scheduled_jobs_in_chat/{chat_id}` |
63
+ | `pt scheduled-job create` | `POST /api/v1/scheduled_jobs/scheduled_job_in_chat` |
64
+ | `pt scheduled-job update` | `PUT /api/v1/scheduled_jobs/scheduled_job_in_chat/{job_id}` |
65
+ | `pt scheduled-job set-status` | `PATCH /api/v1/scheduled_jobs/scheduled_job_in_chat/{job_id}/status?status=Active\|Paused` |
66
+ | `pt scheduled-job delete` | `DELETE /api/v1/scheduled_jobs/scheduled_job_in_chat/{job_id}` |
51
67
  | document download (used by `download-file` and `sync-from`) | `GET /api/v1/documents/{document_id}/download` |
68
+ | `pt chatdb init` | `POST /api/v1/chats/{chat_id}/chatdb/init` |
69
+ | `pt chatdb list` | `POST /api/v1/chats/{chat_id}/chatdb/list` |
70
+ | `pt chatdb get` | `GET /api/v1/chats/{chat_id}/chatdb/entities/{entity_id}` |
71
+ | `pt chatdb add` | `POST /api/v1/chats/{chat_id}/chatdb/entities` |
72
+ | `pt chatdb update` | `PATCH /api/v1/chats/{chat_id}/chatdb/entities` |
73
+ | `pt chatdb delete` | `DELETE /api/v1/chats/{chat_id}/chatdb/entities` |
52
74
  | `pt collection list` | `GET /api/v1/collections` |
75
+ | `pt collection create` | `POST /api/v1/collections` (params: `name`, `description`, `type`, `public`) |
76
+ | `pt collection get` | `GET /api/v1/collections/{collection_id}` |
77
+ | `pt collection update` | `PATCH /api/v1/collections/{collection_id}` |
78
+ | `pt collection reindex` | `POST /api/v1/collections/{collection_id}/reindex` |
79
+ | `pt collection copy` | `POST /api/v1/collections/{collection_uuid}/copy` |
80
+ | `pt collection upload-text` | `POST /api/v1/collections/{collection_id}/texts` (`{texts, path}` body) |
81
+ | `pt collection delete` | `DELETE /api/v1/collections/{collection_id}` |
82
+ | `pt collection delete-file` | `DELETE /api/v1/collections/{collection_id}/documents` (body: array of document IDs) |
53
83
  | `pt collection list-files` | `GET /api/v1/collections/{collection_id}/directories` |
54
84
  | `pt collection upload-files` / `sync-to` | `POST /api/v1/collections/{collection_id}/documents` |
55
85
  | `pt collection download-file` (filename lookup, then download above) | `GET /api/v1/collections/{collection_id}` |
@@ -59,9 +89,25 @@ To obtain an API key, go to `Settings > API Keys` in the PrimeThink app and gene
59
89
  | `pt agent update` | `PATCH /api/v1/virtual-assistants/{va_id}` |
60
90
  | `pt agent delete` | `DELETE /api/v1/virtual-assistants/{va_id}` |
61
91
  | `pt agent types` | `GET /api/v1/virtual-assistants/types` |
92
+ | `pt agent list-docs` | `GET /api/v1/virtual-assistants/{va_id}/documents` |
93
+ | `pt agent upload-docs` | `POST /api/v1/virtual-assistants/{va_id}/documents` (multipart) |
94
+ | `pt agent attach-collections` | `POST /api/v1/virtual-assistants/{va_id}/collections/attach` |
95
+ | `pt agent detach-collection` | `DELETE /api/v1/virtual-assistants/{va_id}/collections/{collection_id}` |
96
+ | `pt capability list` | `GET /api/v1/virtual-assistants/capabilities` |
97
+ | `pt capability create` | `POST /api/v1/virtual-assistants/capabilities` |
98
+ | `pt capability update` | `PATCH /api/v1/virtual-assistants/capabilities/{capability_id}` |
99
+ | `pt capability delete` | `DELETE /api/v1/virtual-assistants/capabilities/{capability_id}` |
100
+ | `pt capability archive` / `unarchive` | `PUT /api/v1/virtual-assistants/capabilities/{capability_id}/archived?archived=true\|false` |
101
+ | `pt capability duplicate` | `POST /api/v1/virtual-assistants/capabilities/{capability_id}/duplicate` |
102
+ | `pt models list` | `GET /api/v1/catalog/llm/models` |
103
+ | `pt models embeddings` | `GET /api/v1/catalog/embeddings/models` |
104
+ | `pt task list` | `GET /api/v1/tasks/` |
62
105
  | `pt task create` | `POST /api/v1/tasks/` |
63
106
  | `pt task update` | `PATCH /api/v1/tasks/{task_id}` |
64
107
  | `pt task get` | `GET /api/v1/tasks/{task_id}` |
108
+ | `pt task upload-text` | `POST /api/v1/tasks/{task_id}/texts` (bare array; `path` is a query param) |
109
+ | `pt task add-docs` | `POST /api/v1/tasks/{task_id}/documents` (multipart) |
110
+ | `pt task delete-docs` | `DELETE /api/v1/tasks/{task_id}/documents` (`{document_ids}`) |
65
111
  | `pt task delete` | `DELETE /api/v1/tasks/{task_id}` |
66
112
  | `pt task duplicate` | `POST /api/v1/tasks/{task_id}/duplicate` |
67
113
  | `pt task set-public` / `set-private` | `PATCH /api/v1/tasks/{task_id}/public-status?task_type=public\|private` |
@@ -69,7 +115,6 @@ To obtain an API key, go to `Settings > API Keys` in the PrimeThink app and gene
69
115
  | `pt task test` | `POST /api/v1/chats` (new only), `PUT /api/v1/chats/{chat_id}/page_type` (existing only), `PUT /api/v1/chats/{chat_id}/goal` |
70
116
  | `pt live-app publish` | task create/update + task version + task directory/document/version endpoints |
71
117
  | `pt live-app test` | chat create/page-type/goal + chat directory/document/version endpoints |
72
- | `pt live-app test-ui` | Local `kiro-cli` process; no PrimeThink API request by this command |
73
118
  | `pt task export` | `GET /api/v1/tasks/{task_id}` (portable fields filtered client-side) |
74
119
  | `pt task import` | `POST /api/v1/tasks/` |
75
120
  | `pt task create-version` | `POST /api/v1/tasks/{task_id}/versions` |
@@ -78,8 +123,51 @@ To obtain an API key, go to `Settings > API Keys` in the PrimeThink app and gene
78
123
  | `pt search chat` | `GET /api/v1/chats/{chat_id}/semantic_search` |
79
124
  | `pt search collection` | `POST /api/v1/collections/{collection_id}/search` |
80
125
  | `pt search messages` | `GET /api/v1/chats/chat_semantic_search_messages` |
126
+ | `pt search images` | `POST /api/v1/collections/{collection_id}/search/images` (multipart `image`, form `query`) |
81
127
  | `pt image generate` | `POST /api/v1/images/tti` |
128
+ | `pt voice stt` | `POST /api/v1/voice/stt` (multipart `file`) |
129
+ | `pt voice tts` | `POST /api/v1/voice/tts` (JSON; returns audio or JSON) |
130
+ | `pt voice diarize` | `POST /api/v1/voice/diarize` (multipart `file`[, `speaker_file`]) |
131
+ | `pt voice translate` | `POST /api/v1/voice/translate` (multipart `file`) |
132
+ | `pt video analyze` | `POST /api/v1/video/analyze` (multipart `file`) |
82
133
  | `pt whoami` | `GET /api/v1/users/me` + `GET /api/v1/users/me/groups` |
134
+ | `pt workspace list` | `GET /api/v1/chat-workspaces` |
135
+ | `pt workspace create` | `POST /api/v1/chat-workspaces` |
136
+ | `pt workspace rename` | `PUT /api/v1/chat-workspaces/{id}/name` |
137
+ | `pt workspace set-goal` | `PUT /api/v1/chat-workspaces/{id}/goal` |
138
+ | `pt workspace archive` / `unarchive` | `POST /api/v1/chat-workspaces/{id}/archive/{true\|false}` |
139
+ | `pt workspace pin` / `unpin` | `POST /api/v1/chat-workspaces/{id}/pin/{true\|false}` |
140
+ | `pt workspace add-chat` | `POST /api/v1/chat-workspaces/{id}/add-chat/{chat_id}` |
141
+ | `pt workspace remove-chat` | `DELETE /api/v1/chat-workspaces/remove-chat/{chat_id}` |
142
+ | `pt workspace delete` | `DELETE /api/v1/chat-workspaces/{id}?delete_chats_in_workspace=` |
143
+ | `pt tag list` | `GET /api/v1/tags?model=` |
144
+ | `pt tag create` | `POST /api/v1/tags` (`{model, name, tag_category}`) |
145
+ | `pt tag assign` | `PUT /api/v1/tags/assignments` (`{model, owner_id, tag_ids}`) |
146
+ | `pt group list` | `GET /api/v1/groups/` |
147
+ | `pt group get` | `GET /api/v1/groups/{group_id}` |
148
+ | `pt group create` | `POST /api/v1/groups/` |
149
+ | `pt group update` | `PUT /api/v1/groups/{group_id}` |
150
+ | `pt group delete` | `DELETE /api/v1/groups/{group_id}` |
151
+ | `pt group members` | `GET /api/v1/groups/{group_id}/members` |
152
+ | `pt group remove-member` | `DELETE /api/v1/groups/{group_id}/members/` (`[user_ids]`) |
153
+ | `pt group invite` | `POST /api/v1/groups/invite/?email=&role_id=` |
154
+ | `pt group add-agent` / `remove-agent` | `POST /api/v1/groups/{group_id}/add_vas` / `DELETE .../remove_vas` (`[vas_ids]`) |
155
+ | `pt {chat,collection,task,agent} mkdir` | `POST /api/v1/{owner}/{id}/directories?path=…` |
156
+ | `pt {chat,collection,task,agent} rmdir` | `DELETE /api/v1/{owner}/{id}/directories/delete` (`{dir_path, delete_recursively}`) |
157
+ | `pt {chat,collection,task,agent} move-dir` | `POST /api/v1/{owner}/{id}/directories/move` (`{src_dir, dest_parent, merge_dirs}`) |
158
+ | `pt {chat,collection,task,agent} rename-dir` | `PUT /api/v1/{owner}/{id}/directories/rename` (`{src_dir_path, new_dir_name}`) |
159
+
160
+ `{owner}` is `chats`, `collections`, `tasks`, or `virtual-assistants`; the MCP `create_directory`/`delete_directory`/`move_directory`/`rename_directory` tools select it via an `owner_type` of `chat`/`collection`/`task`/`agent`.
161
+
162
+ | Command (under `pt chat` / `pt collection` / `pt task`) | Endpoint (`{owner}` = `chats`/`collections`/`tasks`) |
163
+ |---|---|
164
+ | `list-versions` | `GET /api/v1/{owner}/{id}/documents/{document_id}/versions` |
165
+ | `new-version` | `POST /api/v1/{owner}/{id}/documents/{document_id}/create_new_version?version_name=…` (multipart `document`) |
166
+ | `new-text-version` | `POST /api/v1/{owner}/{id}/documents/{document_id}/create_new_text_version?version_name=…` (`TextWithName` body) |
167
+ | `set-production-version` | `POST /api/v1/{owner}/{id}/documents/{document_id}/set_production_version?version_number=…` |
168
+ | `delete-version` | `DELETE /api/v1/{owner}/{id}/documents/{document_id}/delete_version/{version_number}` |
169
+
170
+ The MCP `list_document_versions`/`create_document_version`/`create_document_text_version`/`set_production_version`/`delete_document_version` tools select the owner via an `owner_type` of `chat`/`collection`/`task`.
83
171
 
84
172
  ---
85
173
 
@@ -104,12 +192,15 @@ pt task actions [--profile PROFILE_NAME] [--api-url API_URL]
104
192
 
105
193
  Execute a specific task action with a message and optional files.
106
194
 
107
- **Endpoint**: `POST /api/v1/tasks/execute_task_action`
195
+ **Endpoint**: `POST /api/v1/tasks/{task_id_or_action_name}/execute`
196
+
197
+ The action name (or task ID) is URL-encoded into the path — there is no
198
+ generic `/tasks/execute_task_action` route.
108
199
 
109
200
  **Content-Type**: `multipart/form-data`
110
201
 
111
202
  **Parameters**:
112
- - `task_action_name` (string, required): Name of the task action to execute
203
+ - `{task_id_or_action_name}` (path, required): Name of the task action to execute (or a task ID)
113
204
  - `message_input` (string, required): Input message for the task
114
205
  - `files` (file, optional): Files to attach (can be multiple)
115
206
  - `return_original_message` (boolean, optional): Whether to return the original message