tascan-mcp 3.14.0 → 3.14.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 +4 -0
- package/index.js +1 -1
- package/package.json +1 -1
- package/tools.cjs +2 -0
package/README.md
CHANGED
|
@@ -268,6 +268,10 @@ API keys are scoped to your organization and support rate limiting (60 requests/
|
|
|
268
268
|
|
|
269
269
|
## Changelog
|
|
270
270
|
|
|
271
|
+
### v3.14.1 — 2026-09-18
|
|
272
|
+
- `tascan_create_cycle`: new optional `repo` argument — which codebase on the executor the build runs in, an alias from the executor's allowlist (`tascan-agent/repos.json`; default `tascan`). `artifact_paths` are relative to that repo. An unknown alias is refused by the executor (`repo_unknown`) and the cycle parks — the protocol can now build, review and gate work in any project the executor lists, not only TaScan itself (migration 161).
|
|
273
|
+
- 78 tools.
|
|
274
|
+
|
|
271
275
|
### v3.14.0 — 2026-09-18
|
|
272
276
|
- **Coordination layer live** (migration 155): `tascan_create_cycle`, `tascan_get_cycle_report`, `tascan_get_build`, `tascan_get_build_file`, `tascan_post_message` now run against the released schema — build → independent review → one human decision → integrate, with signed receipts at every step.
|
|
273
277
|
- **Scheduled SMS** (migration 157): `tascan_schedule_sms` (full tier), `tascan_list_scheduled_sms` (read), `tascan_cancel_scheduled_sms` (full) — TaScan's own 5-minute scheduler sends through the same guarded lane as `tascan_send_sms`; nothing outside TaScan has to stay awake.
|
package/index.js
CHANGED
|
@@ -46,7 +46,7 @@ async function api(method, path, body) {
|
|
|
46
46
|
api.key = API_KEY; // raw-fetch tools read the key from here (S99: those functions now require auth)
|
|
47
47
|
|
|
48
48
|
const server = new Server(
|
|
49
|
-
{ name: 'tascan', version: '3.14.
|
|
49
|
+
{ name: 'tascan', version: '3.14.1' },
|
|
50
50
|
{ capabilities: { tools: {} } }
|
|
51
51
|
);
|
|
52
52
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tascan-mcp",
|
|
3
|
-
"version": "3.14.
|
|
3
|
+
"version": "3.14.1",
|
|
4
4
|
"mcpName": "io.github.snowbikemike/tascan-mcp",
|
|
5
5
|
"description": "TaScan MCP Server — Closed-loop autonomous operations protocol. 70 tools for projects, tasks, workers, QR codes, NFC tags, worker marketplace with consented SMS invites, geofenced zones with rules (work site / hazard + AI-verified PPE checkpoints / containment / restricted, breach alerts, zone compliance audit), AI condition assessment, worker passports, verification-gated gig payments, client invoicing from verified work (overtime / day rate / per diem / expenses), shareable report links (completion, client service report, project, evidence pack), signed Action Receipts (Ed25519 JWS), cross-entity search, duplicate-worker detection, worker identity merge, AI issue analysis, and autonomous remediation dispatch. 15 patents filed (470+ claims). Task. Scan. Done.",
|
|
6
6
|
"type": "module",
|
package/tools.cjs
CHANGED
|
@@ -2004,6 +2004,7 @@ const TOOLS = [
|
|
|
2004
2004
|
task_type: { type: 'string', enum: ['CODE', 'SHELL'], description: 'T1 prefix (default CODE).' },
|
|
2005
2005
|
max_revisions: { type: 'integer', description: 'Revision cap (default 3): at most max_revisions + 1 builds and reviews.' },
|
|
2006
2006
|
max_questions: { type: 'integer', description: 'Questions a runner may ask per task before the attempt fails (default 3).' },
|
|
2007
|
+
repo: { type: 'string', description: 'Which codebase on the executor the build runs in — an alias from the executor\'s allowlist (tascan-agent/repos.json), e.g. "tascan" (default), "merchskipper", "inkskipper", "rangerlizzy", "cardvault", "take1", "fitcheck", "safegrid", "eternity", "maniacs". artifact_paths are relative to that repo. An unknown alias is refused by the executor (repo_unknown) and the cycle parks.' },
|
|
2007
2008
|
max_cost_micro_usd: { type: 'integer', description: 'Per-cycle spend cap summed over every attempt, in micro-USD (default 5000000 = USD 5). A claim that could overrun it is refused (budget_exhausted).' },
|
|
2008
2009
|
preview_url: { type: 'string', description: 'Optional https preview link shown on the Decision task.' },
|
|
2009
2010
|
checkpoint_title: { type: 'string', description: 'Optional title template for the Decision task (default "Decision: <title>").' },
|
|
@@ -2019,6 +2020,7 @@ const TOOLS = [
|
|
|
2019
2020
|
const paths = Array.isArray(args.artifact_paths) ? args.artifact_paths : (typeof args.artifact_paths === 'string' ? [args.artifact_paths] : []);
|
|
2020
2021
|
if (!paths.length) throw new Error('artifact_paths is required (1-64 repo-relative paths)');
|
|
2021
2022
|
const options = {};
|
|
2023
|
+
if (args.repo) options.repo = String(args.repo);
|
|
2022
2024
|
for (const k of ['task_type', 'max_revisions', 'max_questions', 'max_cost_micro_usd', 'preview_url']) if (args[k] != null && args[k] !== '') options[k] = args[k];
|
|
2023
2025
|
const templates = {};
|
|
2024
2026
|
if (args.checkpoint_title || args.checkpoint_description) templates.checkpoint = { ...(args.checkpoint_title ? { title: args.checkpoint_title } : {}), ...(args.checkpoint_description ? { description: args.checkpoint_description } : {}) };
|