@tangle-network/chatgpt-agents-kit 0.1.1 → 0.1.2

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/CARDS.md CHANGED
@@ -4,8 +4,8 @@ Cards let people open an existing agent, submit a prompt, check the same task, a
4
4
  They use the kit’s existing tools and OAuth scopes.
5
5
  No browser token, task store, native client, or extra backend is introduced.
6
6
 
7
- The cards entry is additive and unpublished until the next authorized kit release.
8
- For local adoption, build and install this checkout’s npm tarball.
7
+ The optional cards entry is available in the published kit.
8
+ This revision adds named discovery and a new versioned UI resource; release it before updating hosted consumers.
9
9
 
10
10
  ```ts
11
11
  import { createAgentsHandler } from '@tangle-network/chatgpt-agents-kit'
@@ -28,7 +28,9 @@ The optional entry bundles all JavaScript and CSS; the widget makes no direct ne
28
28
 
29
29
  ## Contract
30
30
 
31
- The existing `list_my_agents`, `connect_my_agent`, `prompt_agent`, and `get_task` tools receive `_meta.ui.resourceUri` when cards are enabled.
31
+ The existing agent and task tools receive `_meta.ui.resourceUri` when cards are enabled.
32
+ The renderer uses `ui://tangle-agents/cards-v2.html` so hosts do not reuse the earlier cached interface.
33
+ Optional `list_my_threads` and `list_my_tasks` tools use the same resource.
32
34
  The same authenticated handler serves `resources/list` and `resources/read` with `text/html;profile=mcp-app`.
33
35
  Resource CSP declares no network or external asset domains.
34
36
  Text and structured tool results remain available to clients that do not render UI.
@@ -40,10 +42,13 @@ Only tools granted in the current native binding are offered as actions.
40
42
  A read-only grant does not expose a prompt form, even when the model can discover a consent-upgrade tool.
41
43
  Hosts without tool-call support display results and direct users back to chat.
42
44
 
43
- Current GTM discovery returns workspace IDs without conversation IDs.
44
- For those rows, cards require an existing conversation ID supplied by the user.
45
- They do not invent a thread, create a conversation, or expose unsupported thread discovery.
46
- Opening a card from a known `connect_my_agent` or `get_task` result skips that input.
45
+ Hosts can supply `NativeServices.listThreads` and `listTasks` to expose named conversations and recent work.
46
+ Thread discovery requires the existing list and connect grants; task discovery requires list and task grants.
47
+ The kit checks visible workspaces, each returned target, and the live grant before returning bounded summaries.
48
+ Task discovery supports optional workspace and conversation filters, search, cursors, and pages of at most ten results.
49
+ Cards search and paginate actual native results without creating or restarting work.
50
+ Hosts without discovery retain an advanced reference field and an app link when the host supports opening links.
51
+ No conversation title, target, or app route is invented.
47
52
 
48
53
  Submission requires an explicit click and includes the connected agent’s native `contextVersion` and a fresh `turnId`.
49
54
  A lost response offers a read of that same task; it never automatically resubmits.
@@ -64,7 +69,15 @@ It never sends output text as instructions or starts a follow-up model turn.
64
69
  The UI displays native states without fabricated percentages.
65
70
  “Completed” requires `completionVerified: true` from the kit.
66
71
  Unverified outputs stay unavailable, and failed refreshes clear previously displayed results.
67
- Results render as text, retaining whitespace, file revision, and SHA-256 evidence.
72
+ Markdown results use the maintained Tangle UI sanitizer; other text retains whitespace.
73
+ Images make no external requests, and supported external links open through the host bridge.
74
+ File revisions and SHA-256 evidence remain in collapsed source details.
75
+ Downloads appear only when the host advertises `downloadFile` and export the exact retained bytes through that bridge.
76
+ The card does not implement a direct iframe download fallback.
77
+ “Revise result” reconnects the same native target and opens an editable request; only explicit submission starts another task.
78
+ The revision includes the original execution and response hash or file revisions, preserving the reviewed result.
79
+ Settled failed or input-required responses remain readable when verified, without claiming completion.
80
+ A missing or changed partial file does not discard that verified non-completion response.
68
81
  Cancellation, approval, provisioning, and messaging remain in the existing conversational tools; cards add no automatic actions.
69
82
 
70
83
  ## Installed example and verification
@@ -78,6 +91,7 @@ npm run test:cards --workspace @tangle-network/chatgpt-agents-kit
78
91
  npx playwright install chromium
79
92
  npm run proof:cards --workspace @tangle-network/chatgpt-agents-kit
80
93
  npm run proof:cards:lifecycle --workspace @tangle-network/chatgpt-agents-kit
94
+ node plugins/agents/cards/proof-ux.mjs
81
95
  ```
82
96
 
83
97
  The browser proof packs the compiled kit and installs it outside the checkout.
@@ -89,10 +103,13 @@ The lifecycle proof recreates the iframe after an accepted admission with a lost
89
103
  It checks the same task UUID, one native admission, renewed-account recovery, different-account denial, context changes, and partial theme updates.
90
104
  The installed package test imports both the root and `/cards` exports with install scripts disabled.
91
105
 
92
- The proof captures matching tool-only and rendered desktop/mobile images, light/dark themes, original interaction videos, keyboard use, and accessibility checks.
106
+ The proof captures tool-only and rendered desktop/mobile images, light/dark themes, original interaction videos, keyboard use, and accessibility checks.
93
107
  It also checks an empty list, a read-only grant, changed output revisions, and revoked access after a successful result.
94
108
  Artifacts are written under `plugins/agents/receipts/cards/` and excluded from the published package.
95
109
 
110
+ The document proof checks initial host-driven directory search, pagination, exact download bytes, an explicit revision, and reopening the original result.
111
+ Its document is deterministic fixture content, not model output or customer research.
112
+
96
113
  To keep the example running for manual inspection:
97
114
 
98
115
  ```sh
package/README.md CHANGED
@@ -81,26 +81,25 @@ engine, provider connection or billing ledger is implemented here.
81
81
  direct GTM route exposes file handoff or every generic action.
82
82
  The chat config follows a GTM source lane and is not hosted acceptance.
83
83
 
84
- ## Readiness: what this PR does and does not prove
85
-
86
- The generator produces portable plugin packages. The adapter authenticates every
87
- protected request, discovers only available/permitted native operations, retains
88
- native target IDs, and refuses to verify success without execution-linked output
89
- revisions and retrieved bytes. The GTM adapter implements the reviewed
90
- workspace/thread/vault mappings, including create-only/update preconditions and
91
- partial creation receipts. Text files are supported; binary upload is not.
92
-
93
- **GTM is not yet a usable hosted OAuth plugin at the inspected revision.**
94
- `gtm-agent/src/lib/.server/auth-utils.ts` routes every Authorization header to
95
- `authenticateOperatorApi`; that verifier accepts the native `gak_` store, not
96
- resource-bound OAuth. Its current Hub OAuth scopes also do not grant GTM's
97
- `operator:*` scopes. Pointing ChatGPT at these endpoints or forwarding a Hub
98
- access token would be wrong. This PR does neither. A real GTM mount still needs
99
- an existing-identity OAuth/native authorization binding and persisted turn
100
- admission/observation ports. These are explicit host inputs, **not implemented
101
- backend services hidden behind stubs**. The second configuration likewise needs
102
- its real host binding. No hosted endpoint, OAuth login, ChatGPT installation,
103
- native GTM task, second product task, or provider delivery was executed.
84
+ ## Verified release and remaining acceptance
85
+
86
+ On October 2, 2026, `@tangle-network/chatgpt-agents-kit@0.1.1` was publicly available from npm.
87
+ A fresh external consumer installed that release, used its compiled CLI, and generated a plugin with the registered app connection.
88
+ The generated GTM plugin was installed in ChatGPT and completed one authorized task in an existing workspace and conversation.
89
+ After reload and reconnect, it returned the same retained output and native execution references.
90
+ That fixed-response task establishes transport and continuity, not the quality of useful customer work.
91
+
92
+ This evidence applies to that GTM connection and release.
93
+ It does not establish Creative activation, ordinary Builder agents, phone continuity, or hosted result-card behavior.
94
+ Those flows need their own acceptance through the deployed app.
95
+ The current source skills guide discovery by name, useful deliverables, revision, and returning later.
96
+ Install the release containing those changes before evaluating their hosted behavior.
97
+ Their meaningful-work acceptance remains separate from source, package, and fixture checks.
98
+
99
+ Every adopting app still owns its OAuth binding, native admission, authorization, and retained outputs.
100
+ The generator creates a package; it neither implements missing host services nor grants capabilities.
101
+ The adapter requires execution-linked output evidence before verifying completion.
102
+ Text file support, when exposed by the host, handles UTF-8 content rather than binary uploads.
104
103
 
105
104
  The tests use the **unmodified, hash-verified maintained agent-app MCP envelope**
106
105
  and a test-only SQLite contract fixture. That fixture genuinely reads randomized
@@ -116,15 +115,15 @@ OAuth MCP endpoint; the app keeps its native account, agent profile, workspace,
116
115
  thread, task state, permissions and execution evidence. Package generation does
117
116
  not provision an agent or add capabilities to the endpoint.
118
117
 
119
- Before the first approved npm release, install an actual built kit tarball in
120
- your app directory. No checkout or TypeScript loader is needed by the adopter:
118
+ Install this release in your app directory:
121
119
 
122
120
  ```sh
123
- npm install --ignore-scripts /absolute/path/tangle-network-chatgpt-agents-kit-0.1.0.tgz
121
+ npm install --save-exact --ignore-scripts @tangle-network/chatgpt-agents-kit@0.1.2
124
122
  ```
125
123
 
126
- After publication, an approved exact registry version can replace the tarball.
127
- Neither this command nor the generator publishes anything.
124
+ Use the approved exact version when adopting a later release.
125
+ No repository checkout or TypeScript loader is required.
126
+ Neither installation nor package generation publishes anything.
128
127
  Create `app.json` using your own application origin and display metadata (the
129
128
  `.example` origin below is a placeholder, not a deployed service):
130
129
 
@@ -184,33 +183,13 @@ import { createAgentsHandler, type NativeBinding } from '@tangle-network/chatgpt
184
183
  import { createGtmBinding } from '@tangle-network/chatgpt-agents-kit/gtm'
185
184
  ```
186
185
 
187
- The source repository remains private. Packaging and a local install do not
188
- publish the kit or make a hosted ChatGPT connection available. After an approved
189
- release, consumers can pin `@tangle-network/chatgpt-agents-kit@0.1.0` from npmjs.
190
- A Tangle npm organization owner must bootstrap `0.1.0` from the reviewed merged
191
- source. They must authenticate to npmjs, inspect the full organization package
192
- inventory with owner access, and stop if the name already exists as restricted.
193
- These CLI checks help confirm the account and status:
186
+ The public npm package is available independently of source repository access.
187
+ Installing it does not deploy the app's endpoint or register a ChatGPT connection.
188
+ Follow [installed-kit setup](./SETUP.md) for registration, generation, and the customer journey.
194
189
 
195
- ```sh
196
- npm whoami --registry=https://registry.npmjs.org/
197
- npm view @tangle-network/chatgpt-agents-kit name version --json --registry=https://registry.npmjs.org/
198
- npm access get status @tangle-network/chatgpt-agents-kit --json --registry=https://registry.npmjs.org/
199
- ```
200
-
201
- An `E404` from `npm view` can mean absent or inaccessible. `npm access get status`
202
- reports `private` even for an absent name. Neither result proves absence. Once
203
- the owner confirms the name is absent, they can run this from the merged source:
204
-
205
- ```sh
206
- npm publish --workspace @tangle-network/chatgpt-agents-kit --ignore-scripts --access public --registry=https://registry.npmjs.org/
207
- ```
208
-
209
- The manual `Publish Agents kit` workflow handles later versions only after the
210
- package is public. It requires a repository-owned `NPM_PUBLISH_TOKEN` with
211
- publish access to the Tangle npm scope. The workflow passes no access override
212
- and stops unless the package is already public. It does not deploy an MCP
213
- endpoint or install a ChatGPT plugin.
190
+ Maintainers publish a reviewed version through the repository's `Publish Agents kit` workflow or its authorized release path.
191
+ The workflow requires an existing public package and repository-owned npm publication credentials.
192
+ Publication does not establish hosted app acceptance.
214
193
 
215
194
  For development, a GTM pnpm consumer can also install a commit-pinned Git
216
195
  subdirectory without copying this package:
@@ -274,8 +253,9 @@ No process-global inspection credential is retained.
274
253
 
275
254
  `createGtmBinding` in `src/gtm.ts` maps normal native routes. It has **no API-key
276
255
  parameter**. Its `request` callback must already be authorized as the resolved
277
- native identity; the current GTM source does not provide a turnkey OAuth-native
278
- request dispatcher. The `turns` ports must use the persisted agent-app chat
256
+ native identity through the app's existing authorization path.
257
+ The adapter does not supply an OAuth-native request dispatcher.
258
+ The `turns` ports must use the persisted agent-app chat
279
259
  vertical, saved profile, native turn UUID admission/deduplication, retained
280
260
  terminal state and execution-linked file revisions. HTTP 200 or an open stream
281
261
  is not an admission or completion implementation. Missing ports hide delegation
@@ -299,12 +279,12 @@ substitute for `hosted-agent/application` continuation of the existing agent.
299
279
 
300
280
  ## Consumer workflow and receipts
301
281
 
302
- The skill offers **Connect my agent**, and offers **Create an agent** only when
303
- native discovery advertises it. It requires review of the exact brief/files,
304
- preserves workspace/thread/profile, treats files as data rather than new
305
- instructions, handles pending native decisions as delegated responses, and
306
- requires explicit review before messaging. No `approved: true` field is treated
307
- as proof that a human approved an operation.
282
+ The skills find existing work by name through discovered tools and present its actual result.
283
+ They retain native references internally for review, revisions, and returning later.
284
+ Creation is offered only when requested and supported.
285
+ Clear user instructions authorize their stated effects; ambiguous or new effects need clarification.
286
+ File contents remain data, and native permission and approval controls still apply.
287
+ No `approved: true` field proves that a human approved an operation.
308
288
 
309
289
  Handoff receipts distinguish the input hash from stored-byte verification.
310
290
  Acceptance rereads the stored input. Completion receipts require the retained
package/SETUP.md CHANGED
@@ -8,16 +8,16 @@ missing. Start with the app's reviewed endpoint, not a GTM connection ID.
8
8
 
9
9
  ## 1. Install the reviewed kit
10
10
 
11
- Use Node >=22.16 and npm >=10. Until an approved public release is available, get
12
- the built tarball from the release owner and install it in your own app project:
11
+ Use Node >=22.16 and npm >=10.
12
+ Install this release in your own app project:
13
13
 
14
14
  ```sh
15
- npm install --ignore-scripts --no-audit --no-fund /absolute/path/tangle-network-chatgpt-agents-kit-0.1.0.tgz
15
+ npm install --save-exact --ignore-scripts --no-audit --no-fund @tangle-network/chatgpt-agents-kit@0.1.2
16
16
  npm ci --ignore-scripts --strict-peer-deps --no-audit --no-fund
17
17
  npm exec --no -- tangle-agents-plugin --help
18
18
  ```
19
19
 
20
- Use the approved exact version after publication, not an assumed npm release.
20
+ Use the approved exact version when adopting a later release.
21
21
  `npm exec --no` uses the installed binary without fetching a replacement. Neither
22
22
  these commands nor the generator publishes anything. No repository checkout,
23
23
  workspace link, TypeScript loader or install hook is required by the consumer.
@@ -149,7 +149,43 @@ test in a new chat. A package import is separate from hosted tool calls. A local
149
149
  marketplace is optional and is not written into your home directory by this CLI.
150
150
  Public directory submission/review is a separate release-owner operation.
151
151
 
152
- ## 5. Prove continuation, not just import
152
+ ## Refresh tools and update skills
153
+
154
+ The registered app connection and generated plugin package have separate update paths.
155
+ After deploying changed server tools, refresh the registered app's tool catalog.
156
+ In the ChatGPT plugin UI checked on October 3, 2026 UTC:
157
+
158
+ 1. Open the registered app, such as Tangle GTM Agent.
159
+ 2. Choose **More actions → Manage → Manage app → Refresh tools**.
160
+ 3. Wait for refresh to finish, then reload the app details and inspect its tools.
161
+ 4. Open a new chat and make a read-only request using the changed tools.
162
+ Confirm the expected tools appear in the tool activity.
163
+
164
+ A live `agent_capabilities` response can describe new tools while ChatGPT still holds the previous callable catalog.
165
+ After refreshing, verify the callable tools in a new chat while keeping the same agent and workspace.
166
+
167
+ For changed skills or package metadata, generate a new archive with the same plugin name.
168
+ On the generated plugin, choose **More actions → Upload new version** and upload that archive.
169
+ Then test the updated skills in a new chat.
170
+ Uploading the package and refreshing server tools are distinct checks; neither proves task execution or completed work.
171
+
172
+ ## 5. Prove a useful customer journey
173
+
174
+ Start with ordinary requests in the installed plugin:
175
+
176
+ 1. “Show my agents and help me choose what to work on.”
177
+ 2. “In [existing project], draft [a concrete useful deliverable] using [selected context].”
178
+ 3. “Change [a specific part] and keep [the correct facts or constraints].”
179
+ 4. In a new conversation, “Find my work on [project or task name] and show where we left off.”
180
+
181
+ The customer should choose recognizable names and receive the actual work.
182
+ Use supported discovery to resolve technical references internally.
183
+ When discovery is unavailable or ambiguous, state what is missing and ask for a recognizable choice or existing-work link.
184
+ Keep identifiers, hashes, and revisions in the acceptance receipt instead of the default customer response.
185
+ Evaluate usefulness, preserved facts, requested changes, and whether the customer can return without operator assistance.
186
+ A fixed response proves transport, not this journey's value.
187
+
188
+ For the technical acceptance receipt:
153
189
 
154
190
  In the actual installed plugin, call `agent_profile` and `agent_capabilities` and
155
191
  inspect the real available tools. Connect to the same existing agent, workspace
@@ -207,5 +243,5 @@ to `receipts/agents-packaged-generator.json` by the existing harness.
207
243
  This is **installed package and local anonymous HTTP proof**, not hosted OAuth,
208
244
  ChatGPT import/calls, native task execution, output retrieval, reconnect,
209
245
  messaging delivery or authenticated foreign-customer denial. Publication,
210
- Native50 OAuth, Native60 admission, Builder/ADC release changes and Creative
211
- feature flags remain their owners' work; this flow changes none of them.
246
+ OAuth, native admission, app deployments, and feature activation remain each host's responsibility.
247
+ This setup flow changes none of them.