From 06cf3385b9d6e3904871f38c6cb677d8a3451345 Mon Sep 17 00:00:00 2001 From: SentienceDEV Date: Sun, 15 Feb 2026 11:48:25 -0800 Subject: [PATCH] update org and npm package --- .github/workflows/release.yml | 10 ++++---- CHANGELOG.md | 6 ++--- README.md | 26 ++++++++++++-------- examples/agent-runtime-captcha-strategies.ts | 4 +-- examples/lang-chain/README.md | 2 +- examples/lang-chain/sentience-tools-demo.ts | 2 +- package-lock.json | 8 +++--- package.json | 2 +- src/visual-agent.ts | 2 +- 9 files changed, 34 insertions(+), 28 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5f3aeec..07b906b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -23,7 +23,7 @@ jobs: with: node-version: '20' registry-url: 'https://registry.npmjs.org' - scope: '@predicate' + scope: '@predicatesystems' always-auth: true - name: Extract version from tag or input @@ -158,11 +158,11 @@ jobs: echo "=== Auth ===" npm whoami --registry https://registry.npmjs.org echo "" - echo "=== Scope access (@predicate) ===" + echo "=== Scope access (@predicatesystems) ===" # npm v10 syntax: # - `npm access list packages ` checks whether the user can see/publish packages in that scope # - if you are not a member/owner of the npm org, this typically fails (403/404) which is what we want surfaced - npm access list packages @predicate --registry https://registry.npmjs.org --json + npm access list packages @predicatesystems --registry https://registry.npmjs.org --json echo "" echo "=== Sanity: packages visible to current user ===" npm access list packages "$(npm whoami --registry https://registry.npmjs.org)" --registry https://registry.npmjs.org --json @@ -180,11 +180,11 @@ jobs: tag_name: v${{ steps.version.outputs.version }} name: Release v${{ steps.version.outputs.version }} body: | - Release v${{ steps.version.outputs.version }} of @predicate/sdk + Release v${{ steps.version.outputs.version }} of @predicatesystems/sdk ## Installation ```bash - npm install @predicate/sdk@${{ steps.version.outputs.version }} + npm install @predicatesystems/sdk@${{ steps.version.outputs.version }} ``` draft: false prerelease: false diff --git a/CHANGELOG.md b/CHANGELOG.md index 8669c95..efbf6b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -All notable changes to `@predicate/sdk` will be documented in this file. +All notable changes to `@predicatesystems/sdk` will be documented in this file. ## Unreleased @@ -24,7 +24,7 @@ import { PredicateBrowserAgent, type RuntimeStep, LocalLLMProvider, // or OpenAIProvider / AnthropicProvider / DeepInfraProvider -} from '@predicate/sdk'; +} from '@predicatesystems/sdk'; const runtime = new AgentRuntime(browserLike, page, tracer); const llm = new LocalLLMProvider({ model: 'qwen2.5:7b', baseUrl: 'http://localhost:11434/v1' }); @@ -65,7 +65,7 @@ const agent = new PredicateBrowserAgent({ If you set `captcha.policy="callback"`, you must provide a handler. The SDK does **not** include a public CAPTCHA solver. ```ts -import { HumanHandoffSolver } from '@predicate/sdk'; +import { HumanHandoffSolver } from '@predicatesystems/sdk'; const agent = new PredicateBrowserAgent({ runtime, diff --git a/README.md b/README.md index 38faa9c..b4920a4 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ The core loop is: ## Install ```bash -npm install @predicate/sdk +npm install @predicatesystems/sdk npx playwright install chromium ``` @@ -51,9 +51,9 @@ Use the new `Predicate*` class names for all new code: ## Quickstart: a verification-first loop ```ts -import { PredicateBrowser, AgentRuntime } from '@predicate/sdk'; -import { JsonlTraceSink, Tracer } from '@predicate/sdk'; -import { exists, urlContains } from '@predicate/sdk'; +import { PredicateBrowser, AgentRuntime } from '@predicatesystems/sdk'; +import { JsonlTraceSink, Tracer } from '@predicatesystems/sdk'; +import { exists, urlContains } from '@predicatesystems/sdk'; import type { Page } from 'playwright'; async function main(): Promise { @@ -96,7 +96,13 @@ Key idea: your agent still executes actions — Predicate **snapshots and verifi ```ts import type { Page } from 'playwright'; -import { PredicateDebugger, Tracer, JsonlTraceSink, exists, urlContains } from '@predicate/sdk'; +import { + PredicateDebugger, + Tracer, + JsonlTraceSink, + exists, + urlContains, +} from '@predicatesystems/sdk'; async function runExistingAgent(page: Page): Promise { const tracer = new Tracer('run-123', new JsonlTraceSink('trace.jsonl')); @@ -123,7 +129,7 @@ async function runExistingAgent(page: Page): Promise { If you want Predicate to drive the loop end-to-end, you can use the SDK primitives directly: take a snapshot, select elements, act, then verify. ```ts -import { PredicateBrowser, snapshot, find, typeText, click, waitFor } from '@predicate/sdk'; +import { PredicateBrowser, snapshot, find, typeText, click, waitFor } from '@predicatesystems/sdk'; async function loginExample(): Promise { const browser = new PredicateBrowser(); @@ -201,7 +207,7 @@ if (!ok) { ## ToolRegistry (LLM-callable tools) ```ts -import { ToolRegistry, registerDefaultTools } from '@predicate/sdk'; +import { ToolRegistry, registerDefaultTools } from '@predicatesystems/sdk'; const registry = new ToolRegistry(); registerDefaultTools(registry); @@ -213,8 +219,8 @@ const toolsForLLM = registry.llmTools(); Chrome permission prompts are outside the DOM and can be invisible to snapshots. Prefer setting a policy **before navigation**. ```ts -import { PredicateBrowser } from '@predicate/sdk'; -import type { PermissionPolicy } from '@predicate/sdk'; +import { PredicateBrowser } from '@predicatesystems/sdk'; +import type { PermissionPolicy } from '@predicatesystems/sdk'; const policy: PermissionPolicy = { default: 'clear', @@ -248,7 +254,7 @@ If your backend supports it, you can also use ToolRegistry permission tools (`gr ## Downloads (verification predicate) ```ts -import { downloadCompleted } from '@predicate/sdk'; +import { downloadCompleted } from '@predicatesystems/sdk'; runtime.assert(downloadCompleted('report.csv'), 'download_ok', true); ``` diff --git a/examples/agent-runtime-captcha-strategies.ts b/examples/agent-runtime-captcha-strategies.ts index 6824b65..62b966c 100644 --- a/examples/agent-runtime-captcha-strategies.ts +++ b/examples/agent-runtime-captcha-strategies.ts @@ -5,8 +5,8 @@ import { HumanHandoffSolver, SentienceBrowser, VisionSolver, -} from '@predicate/sdk'; -import { createTracer } from '@predicate/sdk'; +} from '@predicatesystems/sdk'; +import { createTracer } from '@predicatesystems/sdk'; async function notifyWebhook(ctx: any): Promise { console.log(`[captcha] external resolver notified: url=${ctx.url} run_id=${ctx.runId}`); diff --git a/examples/lang-chain/README.md b/examples/lang-chain/README.md index 42c03c4..41a7812 100644 --- a/examples/lang-chain/README.md +++ b/examples/lang-chain/README.md @@ -5,7 +5,7 @@ These examples show how to wrap Sentience TS SDK primitives as LangChain JS tool Install (example): ```bash -npm install @predicate/sdk @langchain/core zod +npm install @predicatesystems/sdk @langchain/core zod ``` Run: diff --git a/examples/lang-chain/sentience-tools-demo.ts b/examples/lang-chain/sentience-tools-demo.ts index 5a4d0ff..4060927 100644 --- a/examples/lang-chain/sentience-tools-demo.ts +++ b/examples/lang-chain/sentience-tools-demo.ts @@ -2,7 +2,7 @@ * Example: Wrap Sentience TS SDK primitives as LangChain JS tools. * * Install (example): - * npm install @predicate/sdk @langchain/core zod + * npm install @predicatesystems/sdk @langchain/core zod * * Run: * npx ts-node examples/lang-chain/sentience-tools-demo.ts diff --git a/package-lock.json b/package-lock.json index e9d2393..54a02e3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { - "name": "@predicate/sdk", - "version": "1.0.5", + "name": "@predicatesystems/sdk", + "version": "1.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "@predicate/sdk", - "version": "1.0.5", + "name": "@predicatesystems/sdk", + "version": "1.1.0", "license": "(MIT OR Apache-2.0)", "dependencies": { "canvas": "^3.2.1", diff --git a/package.json b/package.json index f2a4e34..75d5552 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "@predicate/sdk", + "name": "@predicatesystems/sdk", "version": "1.1.0", "description": "TypeScript SDK for Sentience AI Agent Browser Automation", "main": "dist/index.js", diff --git a/src/visual-agent.ts b/src/visual-agent.ts index d1c5ff0..93c548e 100644 --- a/src/visual-agent.ts +++ b/src/visual-agent.ts @@ -675,7 +675,7 @@ Return ONLY the integer ID number from the label, nothing else.`; playgroundPath = path.join(cwd, 'playground', 'images'); } else { // Check if we're in a playground context via module path - const modulePaths = require.resolve.paths('@predicate/sdk') || []; + const modulePaths = require.resolve.paths('@predicatesystems/sdk') || []; for (const modulePath of modulePaths) { const potentialPlayground = path.join(modulePath, '..', 'playground', 'images'); if (fs.existsSync(path.dirname(potentialPlayground))) {