@premsan/cli 0.0.0-stage → 0.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/README.md CHANGED
@@ -1,3 +1,29 @@
1
- # Temporary Holding Version
1
+ # @premsan/cli
2
+
3
+ Every Premsan assistant in your terminal: your conversations in each product, where you work.
4
+
5
+ ```sh
6
+ npm install -g @premsan/cli
7
+ premsan login resumical # opens the browser; approve the code it shows
8
+ premsan # your conversations in every product you signed in to
9
+ premsan logout resumical
10
+ ```
11
+
12
+ `premsan --help` lists the commands. It speaks the language your locale names.
13
+
14
+ ## For agents and scripts
15
+
16
+ Every tool a product offers its assistant's agents is a command, its result printed as JSON:
17
+
18
+ ```sh
19
+ export PAPERINGO_KEY=paperingo_... # a developer key, from the web app's Settings, Account
20
+ premsan products # every product, its API host and its key's variable
21
+ premsan paperingo tools # what the product offers
22
+ premsan paperingo new_paper "A review of urban heat islands"
23
+ premsan paperingo read_conversation document/papers/<id> --wait
24
+ premsan skill .claude/skills # teach a coding agent all of this
25
+ ```
26
+
27
+ A refusal ends with its own exit code: 3 not signed in, 4 the assistant not yet allowed, 5 the plan, 6 too many turns this
28
+ hour, 7 the API not reached. In a sandbox, allow the product's API host in its network settings.
2
29
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ import { createRequire as __premsanRequire } from "node:module";
3
+ const require = __premsanRequire(import.meta.url);
4
+ import{a as r}from"./chunk-PVZCOI2H.mjs";r();var d="2026-07-28",l=["2025-11-25","2025-06-18","2025-03-26"],w=[d,...l];var _={protocolVersion:"io.modelcontextprotocol/protocolVersion",clientCapabilities:"io.modelcontextprotocol/clientCapabilities",clientInfo:"io.modelcontextprotocol/clientInfo",serverInfo:"io.modelcontextprotocol/serverInfo"},T={protocolVersion:"mcp-protocol-version",method:"mcp-method",name:"mcp-name"};var m="ui://conversation/view";var n={ui:{resourceUri:m}},e={list:"list_conversations",send:"send_message",read:"read_conversation",answer:"answer_question",decide:"decide_proposal",stop:"stop_run",artifact:"show_artifact"},s={readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},i={readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!1},h={readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},u={...i,idempotentHint:!0},p=2**5,g=2**2,o={type:"string",description:"The conversation's id, from list_conversations."},t=(c,a=[])=>({type:"object",properties:c,...a.length>0?{required:a}:{},additionalProperties:!1}),S=[{name:e.list,description:"List the user's conversations with the assistant, newest first: each one's id, what it is about, and whether a run is going. The product's own assistant, id conversation, comes first where there is one; new work starts there. query searches them; pass next as cursor for more.",inputSchema:t({query:{type:"string",description:"Words to search the conversations for."},cursor:{type:"string",description:"The next value of the previous page."}}),annotations:s},{name:e.send,_meta:n,description:`Send the assistant a message in a conversation and wait up to ${p} seconds for its reply. A run that takes longer keeps going; read_conversation with wait picks it up. A message sent while a run is going joins that run.`,inputSchema:t({conversation:o,message:{type:"string",description:"What to tell the assistant."}},["conversation","message"]),annotations:i},{name:e.read,_meta:n,description:`Read a conversation's last ${g} runs: what was asked, the assistant's reply, the question it is waiting on, and the proposals waiting for a decision. With wait, first waits up to ${p} seconds for a going run to end.`,inputSchema:t({conversation:o,wait:{type:"boolean",description:"Wait for a going run to end first."}},["conversation"]),annotations:s},{name:e.answer,_meta:n,description:"Answer the question the assistant is waiting on, each answer by its question's id: one or more of its options' labels, or the user's own words where it takes them. Ask the user rather than guess. The run resumes and its reply is waited for as send_message does.",inputSchema:t({conversation:o,answers:{type:"array",items:t({id:{type:"string",description:"The question's id."},answers:{type:"array",items:{type:"string"}}},["id","answers"])}},["conversation","answers"]),annotations:i},{name:e.decide,description:"Apply or discard a proposal the assistant made. Applying changes the user's data as the proposal says, so ask the user first.",inputSchema:t({conversation:o,proposal:{type:"string",description:"The proposal's id, from read_conversation."},apply:{type:"boolean",description:"true applies it, false discards it."}},["conversation","proposal","apply"]),annotations:h},{name:e.stop,description:"Stop the run going in a conversation; what it already did stays.",inputSchema:t({conversation:o},["conversation"]),annotations:u}],v={name:e.artifact,description:"Show what a conversation is making as it stands now, as an image: a page of a paper or a resume, a canvas of a design. page counts from 1.",inputSchema:t({conversation:o,page:{type:"integer",minimum:1,description:"Which page or canvas, from 1."}},["conversation"]),annotations:s,_meta:n};export{d as a,_ as b,T as c,s as d,i as e,h as f};