@hasna/instructions 0.4.16 → 0.4.17
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 +29 -9
- package/dist/cli/index.js +100 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +99 -1
- package/dist/lib/codewith-shared-todos-storage-standard.d.ts +7 -0
- package/dist/lib/codewith-shared-todos-storage-standard.d.ts.map +1 -0
- package/dist/lib/codewith-shared-todos-storage-standard.test.d.ts +2 -0
- package/dist/lib/codewith-shared-todos-storage-standard.test.d.ts.map +1 -0
- package/dist/lib/session-apply.d.ts.map +1 -1
- package/dist/lib/session-render.d.ts +11 -0
- package/dist/lib/session-render.d.ts.map +1 -1
- package/dist/mcp/index.js +49 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
# @hasna/instructions
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
share all your AI coding configs and instruction sources. CLI + MCP + HTTP API
|
|
8
|
-
(`instructions-serve`) + generated SDK + Dashboard.
|
|
3
|
+
`@hasna/instructions` stores, versions, renders, and applies configuration and
|
|
4
|
+
instruction sources for developers and platform teams operating AI coding
|
|
5
|
+
agents. Install the CLI with `bun add --global @hasna/instructions`; the package
|
|
6
|
+
also provides MCP, HTTP API, and SDK surfaces.
|
|
9
7
|
|
|
10
8
|
[](https://www.npmjs.com/package/@hasna/instructions)
|
|
11
9
|
[](LICENSE)
|
|
@@ -13,9 +11,24 @@ share all your AI coding configs and instruction sources. CLI + MCP + HTTP API
|
|
|
13
11
|
## Install
|
|
14
12
|
|
|
15
13
|
```bash
|
|
16
|
-
|
|
14
|
+
bun add --global @hasna/instructions
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Quick start
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
instructions --help
|
|
21
|
+
instructions init
|
|
22
|
+
instructions list
|
|
23
|
+
instructions profile resolve
|
|
17
24
|
```
|
|
18
25
|
|
|
26
|
+
## Migrating from `@hasna/configs`
|
|
27
|
+
|
|
28
|
+
This package was formerly `@hasna/configs`. The `configs` CLI alias and
|
|
29
|
+
`configs-mcp` alias remain available for existing integrations; new usage can
|
|
30
|
+
use the `instructions` names.
|
|
31
|
+
|
|
19
32
|
## CLI Usage
|
|
20
33
|
|
|
21
34
|
```bash
|
|
@@ -286,14 +299,21 @@ push safety, no brittle hardcoding when source-of-truth or reusable abstractions
|
|
|
286
299
|
exist, autonomous repair, Hasna CLI source-of-truth usage, conversation surface
|
|
287
300
|
routing, and unbudgeted Codewith goals unless a user asks for budgets.
|
|
288
301
|
|
|
289
|
-
They also seed `dangerous-operation-guard-standard`, the managed
|
|
290
|
-
|
|
302
|
+
They also seed `dangerous-operation-guard-standard`, the managed guard source
|
|
303
|
+
for risky shell commands, edits, git operations, package installs, and
|
|
291
304
|
secret-adjacent access. The guard excludes Gemini CLI, requires Codewith/Codex
|
|
292
305
|
`PreToolUse` to hard-deny or inject context rather than ask for approval, uses
|
|
293
306
|
`PermissionRequest` for Codewith/Codex approvals, records that Qwen `QWEN.md`
|
|
294
307
|
is policy context only, and records native hook or wrapper/plugin fallback
|
|
295
308
|
expectations for Claude, Qwen, OpenCode, Cursor, and Antigravity.
|
|
296
309
|
|
|
310
|
+
The Codewith-only `codewith-shared-todos-storage-standard` requires every
|
|
311
|
+
operational repository, work or research project, coordinator, worker, and loop
|
|
312
|
+
to use the managed shared Todos route. On-box SQLite or file Todos storage is limited
|
|
313
|
+
to disposable repository tests. Projects linkage and sanitized server-route
|
|
314
|
+
verification are required before mutation; unavailable routing fails closed,
|
|
315
|
+
and prior on-box-only evidence must be explicitly reconciled before use.
|
|
316
|
+
|
|
297
317
|
## Machine-aware Profiles
|
|
298
318
|
|
|
299
319
|
`instructions init` seeds two platform profiles:
|
package/dist/cli/index.js
CHANGED
|
@@ -3412,6 +3412,86 @@ var init_global_agent_rules_standard = __esm(() => {
|
|
|
3412
3412
|
`;
|
|
3413
3413
|
});
|
|
3414
3414
|
|
|
3415
|
+
// src/lib/codewith-shared-todos-storage-standard.ts
|
|
3416
|
+
async function ensureCodewithSharedTodosStorageStandardConfig(store = resolveConfigStore()) {
|
|
3417
|
+
const input = {
|
|
3418
|
+
name: "Codewith Shared Todos Storage Standard",
|
|
3419
|
+
category: "rules",
|
|
3420
|
+
agent: "codewith",
|
|
3421
|
+
format: "markdown",
|
|
3422
|
+
content: CODEWITH_SHARED_TODOS_STORAGE_STANDARD_CONTENT,
|
|
3423
|
+
kind: "reference",
|
|
3424
|
+
description: "Managed fail-closed shared Todos routing policy for all operational Codewith work",
|
|
3425
|
+
tags: [
|
|
3426
|
+
"codewith",
|
|
3427
|
+
"shared-todos-storage",
|
|
3428
|
+
"server-backed",
|
|
3429
|
+
"projects-linkage",
|
|
3430
|
+
"operational-routing"
|
|
3431
|
+
]
|
|
3432
|
+
};
|
|
3433
|
+
let config;
|
|
3434
|
+
try {
|
|
3435
|
+
const existing = await store.getConfig(CODEWITH_SHARED_TODOS_STORAGE_STANDARD_SLUG);
|
|
3436
|
+
if (existing.content !== input.content || existing.description !== input.description || existing.category !== input.category || existing.agent !== input.agent || existing.format !== input.format || existing.kind !== input.kind || JSON.stringify(existing.tags) !== JSON.stringify(input.tags)) {
|
|
3437
|
+
config = await store.updateConfig(existing.id, input);
|
|
3438
|
+
} else {
|
|
3439
|
+
config = existing;
|
|
3440
|
+
}
|
|
3441
|
+
} catch {
|
|
3442
|
+
config = await store.createConfig(input);
|
|
3443
|
+
}
|
|
3444
|
+
for (const profile of await store.listProfiles()) {
|
|
3445
|
+
await store.addConfigToProfile(profile.id, config.id);
|
|
3446
|
+
}
|
|
3447
|
+
return config;
|
|
3448
|
+
}
|
|
3449
|
+
var CODEWITH_SHARED_TODOS_STORAGE_STANDARD_SLUG = "codewith-shared-todos-storage-standard", CODEWITH_SHARED_TODOS_STORAGE_POLICY_REFERENCE = "codewith/shared-todos-storage/v1", CODEWITH_SHARED_TODOS_STORAGE_STANDARD_CONTENT;
|
|
3450
|
+
var init_codewith_shared_todos_storage_standard = __esm(() => {
|
|
3451
|
+
init_config_store();
|
|
3452
|
+
CODEWITH_SHARED_TODOS_STORAGE_STANDARD_CONTENT = `# Codewith Shared Todos Storage Standard
|
|
3453
|
+
|
|
3454
|
+
Policy reference: \`${CODEWITH_SHARED_TODOS_STORAGE_POLICY_REFERENCE}\`
|
|
3455
|
+
|
|
3456
|
+
## Scope
|
|
3457
|
+
|
|
3458
|
+
- This policy applies to all operational Codewith work: repositories of every
|
|
3459
|
+
name, work projects, research projects, coordinators, delegated workers, and
|
|
3460
|
+
native scheduled or recurring loops. It is not limited to \`open-*\` or
|
|
3461
|
+
\`iapp-*\` repositories.
|
|
3462
|
+
|
|
3463
|
+
## Authoritative Storage
|
|
3464
|
+
|
|
3465
|
+
- Operational Todos state must use the managed shared Todos service.
|
|
3466
|
+
On-box SQLite or file storage is permitted only inside disposable,
|
|
3467
|
+
repository-owned tests using isolated test-controlled paths.
|
|
3468
|
+
- On-box SQLite or file storage must never hold operational tasks, plans, locks or claims,
|
|
3469
|
+
comments, verification evidence, dispatch state, or handoff state. Never
|
|
3470
|
+
fall back to on-box-only storage to keep operational work moving.
|
|
3471
|
+
|
|
3472
|
+
## Pre-Mutation Gate
|
|
3473
|
+
|
|
3474
|
+
- Before any operational Todos mutation, require authoritative Projects
|
|
3475
|
+
linkage and verify from sanitized status or route metadata that Todos resolves
|
|
3476
|
+
to the managed server-backed route. Verification may identify the route class,
|
|
3477
|
+
backend class, and linked project identifiers, but must omit credentials,
|
|
3478
|
+
tokens, DSNs, and full endpoint URLs.
|
|
3479
|
+
- If Projects linkage or server-backed route verification is missing, ambiguous,
|
|
3480
|
+
unavailable, or reports an on-box SQLite or file route, fail closed: do not mutate Todos.
|
|
3481
|
+
Diagnose and repair the owning configuration or service route, re-run the
|
|
3482
|
+
sanitized verification, and report the blockage or repair on the approved
|
|
3483
|
+
operational surface without exposing secrets.
|
|
3484
|
+
|
|
3485
|
+
## Reconciliation
|
|
3486
|
+
|
|
3487
|
+
- Prior on-box-only tasks, plans, comments, locks, verification, dispatch, or
|
|
3488
|
+
handoff evidence are not authoritative. Explicitly reconcile each required
|
|
3489
|
+
record into the Projects-linked shared Todos record, retain bounded provenance
|
|
3490
|
+
identifiers, and independently verify the shared result before treating it as
|
|
3491
|
+
authoritative. Never silently copy, discard, or bless on-box-only evidence.
|
|
3492
|
+
`;
|
|
3493
|
+
});
|
|
3494
|
+
|
|
3415
3495
|
// node_modules/zod/v3/helpers/util.js
|
|
3416
3496
|
var util, objectUtil, ZodParsedType, getParsedType = (data) => {
|
|
3417
3497
|
const t = typeof data;
|
|
@@ -10991,6 +11071,7 @@ function planSessionRender(input) {
|
|
|
10991
11071
|
writable: !blocked,
|
|
10992
11072
|
blocked,
|
|
10993
11073
|
blockers,
|
|
11074
|
+
allowEmptySources,
|
|
10994
11075
|
env,
|
|
10995
11076
|
files,
|
|
10996
11077
|
manifest,
|
|
@@ -11013,6 +11094,7 @@ function sourceFromFilePath(path, content, order = 0) {
|
|
|
11013
11094
|
}
|
|
11014
11095
|
function sourceFromConfig(config, order = 0, layer) {
|
|
11015
11096
|
const isAgentOperatingRules = config.slug === GLOBAL_AGENT_RULES_STANDARD_SLUG;
|
|
11097
|
+
const isNonOverridableManagedPolicy = isAgentOperatingRules || config.slug === CODEWITH_SHARED_TODOS_STORAGE_STANDARD_SLUG;
|
|
11016
11098
|
const rules = isAgentOperatingRules ? resolveAgentOperatingRulesPayload(config.content) : null;
|
|
11017
11099
|
return {
|
|
11018
11100
|
id: config.slug,
|
|
@@ -11031,7 +11113,7 @@ function sourceFromConfig(config, order = 0, layer) {
|
|
|
11031
11113
|
configAgent: config.agent
|
|
11032
11114
|
},
|
|
11033
11115
|
metadata: rules ? { ...rules.metadata } : null,
|
|
11034
|
-
nonOverridable:
|
|
11116
|
+
nonOverridable: isNonOverridableManagedPolicy
|
|
11035
11117
|
};
|
|
11036
11118
|
}
|
|
11037
11119
|
function sourcesFromIdentityExport(value, options = {}) {
|
|
@@ -11321,6 +11403,7 @@ function asStringArray(value) {
|
|
|
11321
11403
|
var RAW_STORE_ROOT_ENV = "HASNA_CONFIGS_HOME", ANTIGRAVITY_RULE_FILE_CHAR_LIMIT = 12000, SESSION_RENDERER_OWNER_ID = "instructions-session-renderer", SESSION_RENDER_TOOLS, SESSION_RENDER_PROFILE_ENTRYPOINTS, SESSION_RENDER_OWNED_CONFIG_TARGETS, CODEWITH_FLATTENED_ADAPTER, CODEWITH_NATIVE_ADAPTER, SESSION_TOOL_ADAPTERS, SESSION_RENDER_MANAGED_DIRS, SESSION_RENDER_SHARED_MANAGED_DIRS, SESSION_RENDER_EXCLUSIVE_MANAGED_PATHS, SESSION_LAYER_RANK, CANONICAL_IDENTITY_EXPORT_PACKAGES;
|
|
11322
11404
|
var init_session_render = __esm(() => {
|
|
11323
11405
|
init_global_agent_rules_standard();
|
|
11406
|
+
init_codewith_shared_todos_storage_standard();
|
|
11324
11407
|
init_project_context();
|
|
11325
11408
|
init_config_agents();
|
|
11326
11409
|
init_transforms();
|
|
@@ -13865,6 +13948,7 @@ function applySessionRenderUnlocked(plan, options, coordination) {
|
|
|
13865
13948
|
...files.map((file) => planFileResult(plan, file, targetHome, previousHashes, previousManifest, options)),
|
|
13866
13949
|
...planStaleFileResults(plan, targetHome, previousManifest, currentRelativePaths, options)
|
|
13867
13950
|
];
|
|
13951
|
+
assertNotSilentManagedWipeout(plan, results);
|
|
13868
13952
|
const conflicts = results.filter((result) => result.action === "conflict");
|
|
13869
13953
|
if (conflicts.length > 0) {
|
|
13870
13954
|
return {
|
|
@@ -14437,6 +14521,19 @@ function planFileResult(plan, file, targetHome, previousHashes, previousManifest
|
|
|
14437
14521
|
reason: "existing unmanaged file differs; pass force to overwrite"
|
|
14438
14522
|
};
|
|
14439
14523
|
}
|
|
14524
|
+
function assertNotSilentManagedWipeout(plan, results) {
|
|
14525
|
+
if (plan.allowEmptySources)
|
|
14526
|
+
return;
|
|
14527
|
+
const managedDir = plan.adapter.managedDir;
|
|
14528
|
+
const underManagedDir = (relativePath) => relativePath === managedDir || relativePath.startsWith(`${managedDir}/`);
|
|
14529
|
+
const staleDeletions = results.filter((result) => result.action === "delete" && underManagedDir(result.relativePath));
|
|
14530
|
+
if (staleDeletions.length === 0)
|
|
14531
|
+
return;
|
|
14532
|
+
const managedRetained = results.some((result) => result.action !== "delete" && underManagedDir(result.relativePath));
|
|
14533
|
+
if (managedRetained)
|
|
14534
|
+
return;
|
|
14535
|
+
throw new SessionApplyError(`Session render plan for ${plan.tool} (${plan.adapter.mode}) would delete ${staleDeletions.length} ` + `previously managed file(s) under "${managedDir}" and create or update none there: ` + `${staleDeletions.map((result) => result.relativePath).join(", ")}. ` + "Pass --allow-empty-sources only for explicit empty renders.");
|
|
14536
|
+
}
|
|
14440
14537
|
function planStaleFileResults(plan, targetHome, previousManifest, currentRelativePaths, options) {
|
|
14441
14538
|
if (!previousManifest)
|
|
14442
14539
|
return [];
|
|
@@ -14974,6 +15071,7 @@ async function ensureDangerousOperationGuardStandardConfig(store = resolveConfig
|
|
|
14974
15071
|
}
|
|
14975
15072
|
|
|
14976
15073
|
// src/cli/index.tsx
|
|
15074
|
+
init_codewith_shared_todos_storage_standard();
|
|
14977
15075
|
init_project_context();
|
|
14978
15076
|
|
|
14979
15077
|
// src/status.ts
|
|
@@ -16431,6 +16529,7 @@ Keys: ANTHROPIC_API_KEY, OPENAI_API_KEY, EXA_API_KEY, NPM_TOKEN, GITHUB_TOKEN`,
|
|
|
16431
16529
|
}
|
|
16432
16530
|
await ensureGlobalAgentRulesStandardConfig(store);
|
|
16433
16531
|
await ensureDangerousOperationGuardStandardConfig(store);
|
|
16532
|
+
await ensureCodewithSharedTodosStorageStandardConfig(store);
|
|
16434
16533
|
await ensureProjectDashboardStandardConfig(store);
|
|
16435
16534
|
try {
|
|
16436
16535
|
await store.getProfile("my-setup");
|
package/dist/index.d.ts
CHANGED
|
@@ -22,6 +22,7 @@ export { PLATFORM_PROFILE_PRESETS, ensurePlatformProfiles } from "./lib/platform
|
|
|
22
22
|
export { PROJECT_DASHBOARD_PROFILE_VARIABLES, PROJECT_DASHBOARD_STANDARD_CONTENT, PROJECT_DASHBOARD_STANDARD_SLUG, ensureProjectDashboardStandardConfig, } from "./lib/project-dashboard-standard.js";
|
|
23
23
|
export { AGENT_OPERATING_RULES_SEMANTIC_POLICY_KEY, AGENT_OPERATING_RULES_SENTINEL_PATTERN, GLOBAL_AGENT_RULES_STANDARD_CONTENT, GLOBAL_AGENT_RULES_STANDARD_SLUG, compareAgentOperatingRulesVersions, ensureGlobalAgentRulesStandardConfig, parseAgentOperatingRulesVersion, resolveAgentOperatingRulesPayload, type AgentOperatingRulesPayload, type AgentOperatingRulesPayloadIntegrity, type AgentOperatingRulesPayloadOrigin, } from "./lib/global-agent-rules-standard.js";
|
|
24
24
|
export { DANGEROUS_OPERATION_GUARD_STANDARD_CONTENT, DANGEROUS_OPERATION_GUARD_STANDARD_SLUG, ensureDangerousOperationGuardStandardConfig, } from "./lib/dangerous-operation-guard-standard.js";
|
|
25
|
+
export { CODEWITH_SHARED_TODOS_STORAGE_POLICY_REFERENCE, CODEWITH_SHARED_TODOS_STORAGE_STANDARD_CONTENT, CODEWITH_SHARED_TODOS_STORAGE_STANDARD_SLUG, ensureCodewithSharedTodosStorageStandardConfig, } from "./lib/codewith-shared-todos-storage-standard.js";
|
|
25
26
|
export { syncKnown, syncToDisk, syncProject, diffConfig, detectCategory, detectAgent, detectFormat, KNOWN_CONFIGS, PROJECT_CONFIG_FILES } from "./lib/sync.js";
|
|
26
27
|
export { syncFromDir, syncToDir } from "./lib/sync-dir.js";
|
|
27
28
|
export type { SyncKnownOptions, SyncToDiskOptions, SyncProjectOptions, KnownConfig } from "./lib/sync.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1336,6 +1336,84 @@ async function ensureGlobalAgentRulesStandardConfig(store = resolveConfigStore()
|
|
|
1336
1336
|
return existing;
|
|
1337
1337
|
}
|
|
1338
1338
|
|
|
1339
|
+
// src/lib/codewith-shared-todos-storage-standard.ts
|
|
1340
|
+
var CODEWITH_SHARED_TODOS_STORAGE_STANDARD_SLUG = "codewith-shared-todos-storage-standard";
|
|
1341
|
+
var CODEWITH_SHARED_TODOS_STORAGE_POLICY_REFERENCE = "codewith/shared-todos-storage/v1";
|
|
1342
|
+
var CODEWITH_SHARED_TODOS_STORAGE_STANDARD_CONTENT = `# Codewith Shared Todos Storage Standard
|
|
1343
|
+
|
|
1344
|
+
Policy reference: \`${CODEWITH_SHARED_TODOS_STORAGE_POLICY_REFERENCE}\`
|
|
1345
|
+
|
|
1346
|
+
## Scope
|
|
1347
|
+
|
|
1348
|
+
- This policy applies to all operational Codewith work: repositories of every
|
|
1349
|
+
name, work projects, research projects, coordinators, delegated workers, and
|
|
1350
|
+
native scheduled or recurring loops. It is not limited to \`open-*\` or
|
|
1351
|
+
\`iapp-*\` repositories.
|
|
1352
|
+
|
|
1353
|
+
## Authoritative Storage
|
|
1354
|
+
|
|
1355
|
+
- Operational Todos state must use the managed shared Todos service.
|
|
1356
|
+
On-box SQLite or file storage is permitted only inside disposable,
|
|
1357
|
+
repository-owned tests using isolated test-controlled paths.
|
|
1358
|
+
- On-box SQLite or file storage must never hold operational tasks, plans, locks or claims,
|
|
1359
|
+
comments, verification evidence, dispatch state, or handoff state. Never
|
|
1360
|
+
fall back to on-box-only storage to keep operational work moving.
|
|
1361
|
+
|
|
1362
|
+
## Pre-Mutation Gate
|
|
1363
|
+
|
|
1364
|
+
- Before any operational Todos mutation, require authoritative Projects
|
|
1365
|
+
linkage and verify from sanitized status or route metadata that Todos resolves
|
|
1366
|
+
to the managed server-backed route. Verification may identify the route class,
|
|
1367
|
+
backend class, and linked project identifiers, but must omit credentials,
|
|
1368
|
+
tokens, DSNs, and full endpoint URLs.
|
|
1369
|
+
- If Projects linkage or server-backed route verification is missing, ambiguous,
|
|
1370
|
+
unavailable, or reports an on-box SQLite or file route, fail closed: do not mutate Todos.
|
|
1371
|
+
Diagnose and repair the owning configuration or service route, re-run the
|
|
1372
|
+
sanitized verification, and report the blockage or repair on the approved
|
|
1373
|
+
operational surface without exposing secrets.
|
|
1374
|
+
|
|
1375
|
+
## Reconciliation
|
|
1376
|
+
|
|
1377
|
+
- Prior on-box-only tasks, plans, comments, locks, verification, dispatch, or
|
|
1378
|
+
handoff evidence are not authoritative. Explicitly reconcile each required
|
|
1379
|
+
record into the Projects-linked shared Todos record, retain bounded provenance
|
|
1380
|
+
identifiers, and independently verify the shared result before treating it as
|
|
1381
|
+
authoritative. Never silently copy, discard, or bless on-box-only evidence.
|
|
1382
|
+
`;
|
|
1383
|
+
async function ensureCodewithSharedTodosStorageStandardConfig(store = resolveConfigStore()) {
|
|
1384
|
+
const input = {
|
|
1385
|
+
name: "Codewith Shared Todos Storage Standard",
|
|
1386
|
+
category: "rules",
|
|
1387
|
+
agent: "codewith",
|
|
1388
|
+
format: "markdown",
|
|
1389
|
+
content: CODEWITH_SHARED_TODOS_STORAGE_STANDARD_CONTENT,
|
|
1390
|
+
kind: "reference",
|
|
1391
|
+
description: "Managed fail-closed shared Todos routing policy for all operational Codewith work",
|
|
1392
|
+
tags: [
|
|
1393
|
+
"codewith",
|
|
1394
|
+
"shared-todos-storage",
|
|
1395
|
+
"server-backed",
|
|
1396
|
+
"projects-linkage",
|
|
1397
|
+
"operational-routing"
|
|
1398
|
+
]
|
|
1399
|
+
};
|
|
1400
|
+
let config;
|
|
1401
|
+
try {
|
|
1402
|
+
const existing = await store.getConfig(CODEWITH_SHARED_TODOS_STORAGE_STANDARD_SLUG);
|
|
1403
|
+
if (existing.content !== input.content || existing.description !== input.description || existing.category !== input.category || existing.agent !== input.agent || existing.format !== input.format || existing.kind !== input.kind || JSON.stringify(existing.tags) !== JSON.stringify(input.tags)) {
|
|
1404
|
+
config = await store.updateConfig(existing.id, input);
|
|
1405
|
+
} else {
|
|
1406
|
+
config = existing;
|
|
1407
|
+
}
|
|
1408
|
+
} catch {
|
|
1409
|
+
config = await store.createConfig(input);
|
|
1410
|
+
}
|
|
1411
|
+
for (const profile of await store.listProfiles()) {
|
|
1412
|
+
await store.addConfigToProfile(profile.id, config.id);
|
|
1413
|
+
}
|
|
1414
|
+
return config;
|
|
1415
|
+
}
|
|
1416
|
+
|
|
1339
1417
|
// src/lib/project-context.ts
|
|
1340
1418
|
import { createHash as createHash2, randomUUID as randomUUID3 } from "crypto";
|
|
1341
1419
|
import { execFileSync } from "child_process";
|
|
@@ -9064,6 +9142,7 @@ function planSessionRender(input) {
|
|
|
9064
9142
|
writable: !blocked,
|
|
9065
9143
|
blocked,
|
|
9066
9144
|
blockers,
|
|
9145
|
+
allowEmptySources,
|
|
9067
9146
|
env,
|
|
9068
9147
|
files,
|
|
9069
9148
|
manifest,
|
|
@@ -9086,6 +9165,7 @@ function sourceFromFilePath(path, content, order = 0) {
|
|
|
9086
9165
|
}
|
|
9087
9166
|
function sourceFromConfig(config, order = 0, layer) {
|
|
9088
9167
|
const isAgentOperatingRules = config.slug === GLOBAL_AGENT_RULES_STANDARD_SLUG;
|
|
9168
|
+
const isNonOverridableManagedPolicy = isAgentOperatingRules || config.slug === CODEWITH_SHARED_TODOS_STORAGE_STANDARD_SLUG;
|
|
9089
9169
|
const rules = isAgentOperatingRules ? resolveAgentOperatingRulesPayload(config.content) : null;
|
|
9090
9170
|
return {
|
|
9091
9171
|
id: config.slug,
|
|
@@ -9104,7 +9184,7 @@ function sourceFromConfig(config, order = 0, layer) {
|
|
|
9104
9184
|
configAgent: config.agent
|
|
9105
9185
|
},
|
|
9106
9186
|
metadata: rules ? { ...rules.metadata } : null,
|
|
9107
|
-
nonOverridable:
|
|
9187
|
+
nonOverridable: isNonOverridableManagedPolicy
|
|
9108
9188
|
};
|
|
9109
9189
|
}
|
|
9110
9190
|
function selectProfileConfigsForSessionRender(configs, tool) {
|
|
@@ -10237,6 +10317,7 @@ function applySessionRenderUnlocked(plan, options, coordination) {
|
|
|
10237
10317
|
...files.map((file) => planFileResult(plan, file, targetHome, previousHashes, previousManifest, options)),
|
|
10238
10318
|
...planStaleFileResults(plan, targetHome, previousManifest, currentRelativePaths, options)
|
|
10239
10319
|
];
|
|
10320
|
+
assertNotSilentManagedWipeout(plan, results);
|
|
10240
10321
|
const conflicts = results.filter((result) => result.action === "conflict");
|
|
10241
10322
|
if (conflicts.length > 0) {
|
|
10242
10323
|
return {
|
|
@@ -10809,6 +10890,19 @@ function planFileResult(plan, file, targetHome, previousHashes, previousManifest
|
|
|
10809
10890
|
reason: "existing unmanaged file differs; pass force to overwrite"
|
|
10810
10891
|
};
|
|
10811
10892
|
}
|
|
10893
|
+
function assertNotSilentManagedWipeout(plan, results) {
|
|
10894
|
+
if (plan.allowEmptySources)
|
|
10895
|
+
return;
|
|
10896
|
+
const managedDir = plan.adapter.managedDir;
|
|
10897
|
+
const underManagedDir = (relativePath) => relativePath === managedDir || relativePath.startsWith(`${managedDir}/`);
|
|
10898
|
+
const staleDeletions = results.filter((result) => result.action === "delete" && underManagedDir(result.relativePath));
|
|
10899
|
+
if (staleDeletions.length === 0)
|
|
10900
|
+
return;
|
|
10901
|
+
const managedRetained = results.some((result) => result.action !== "delete" && underManagedDir(result.relativePath));
|
|
10902
|
+
if (managedRetained)
|
|
10903
|
+
return;
|
|
10904
|
+
throw new SessionApplyError(`Session render plan for ${plan.tool} (${plan.adapter.mode}) would delete ${staleDeletions.length} ` + `previously managed file(s) under "${managedDir}" and create or update none there: ` + `${staleDeletions.map((result) => result.relativePath).join(", ")}. ` + "Pass --allow-empty-sources only for explicit empty renders.");
|
|
10905
|
+
}
|
|
10812
10906
|
function planStaleFileResults(plan, targetHome, previousManifest, currentRelativePaths, options) {
|
|
10813
10907
|
if (!previousManifest)
|
|
10814
10908
|
return [];
|
|
@@ -12454,6 +12548,7 @@ export {
|
|
|
12454
12548
|
ensurePlatformProfiles,
|
|
12455
12549
|
ensureGlobalAgentRulesStandardConfig,
|
|
12456
12550
|
ensureDangerousOperationGuardStandardConfig,
|
|
12551
|
+
ensureCodewithSharedTodosStorageStandardConfig,
|
|
12457
12552
|
diffConfig,
|
|
12458
12553
|
detectMachineContext,
|
|
12459
12554
|
detectFormat,
|
|
@@ -12519,6 +12614,9 @@ export {
|
|
|
12519
12614
|
CONFIG_FORMATS,
|
|
12520
12615
|
CONFIG_CATEGORIES,
|
|
12521
12616
|
CONFIG_AGENTS,
|
|
12617
|
+
CODEWITH_SHARED_TODOS_STORAGE_STANDARD_SLUG,
|
|
12618
|
+
CODEWITH_SHARED_TODOS_STORAGE_STANDARD_CONTENT,
|
|
12619
|
+
CODEWITH_SHARED_TODOS_STORAGE_POLICY_REFERENCE,
|
|
12522
12620
|
CODEWITH_NATIVE_IMPORTS_ENV,
|
|
12523
12621
|
AGENT_OPERATING_RULES_SENTINEL_PATTERN,
|
|
12524
12622
|
AGENT_OPERATING_RULES_SEMANTIC_POLICY_KEY
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Config } from "../types/index.js";
|
|
2
|
+
import { type ConfigStore } from "../data/config-store.js";
|
|
3
|
+
export declare const CODEWITH_SHARED_TODOS_STORAGE_STANDARD_SLUG = "codewith-shared-todos-storage-standard";
|
|
4
|
+
export declare const CODEWITH_SHARED_TODOS_STORAGE_POLICY_REFERENCE = "codewith/shared-todos-storage/v1";
|
|
5
|
+
export declare const CODEWITH_SHARED_TODOS_STORAGE_STANDARD_CONTENT = "# Codewith Shared Todos Storage Standard\n\nPolicy reference: `codewith/shared-todos-storage/v1`\n\n## Scope\n\n- This policy applies to all operational Codewith work: repositories of every\n name, work projects, research projects, coordinators, delegated workers, and\n native scheduled or recurring loops. It is not limited to `open-*` or\n `iapp-*` repositories.\n\n## Authoritative Storage\n\n- Operational Todos state must use the managed shared Todos service.\n On-box SQLite or file storage is permitted only inside disposable,\n repository-owned tests using isolated test-controlled paths.\n- On-box SQLite or file storage must never hold operational tasks, plans, locks or claims,\n comments, verification evidence, dispatch state, or handoff state. Never\n fall back to on-box-only storage to keep operational work moving.\n\n## Pre-Mutation Gate\n\n- Before any operational Todos mutation, require authoritative Projects\n linkage and verify from sanitized status or route metadata that Todos resolves\n to the managed server-backed route. Verification may identify the route class,\n backend class, and linked project identifiers, but must omit credentials,\n tokens, DSNs, and full endpoint URLs.\n- If Projects linkage or server-backed route verification is missing, ambiguous,\n unavailable, or reports an on-box SQLite or file route, fail closed: do not mutate Todos.\n Diagnose and repair the owning configuration or service route, re-run the\n sanitized verification, and report the blockage or repair on the approved\n operational surface without exposing secrets.\n\n## Reconciliation\n\n- Prior on-box-only tasks, plans, comments, locks, verification, dispatch, or\n handoff evidence are not authoritative. Explicitly reconcile each required\n record into the Projects-linked shared Todos record, retain bounded provenance\n identifiers, and independently verify the shared result before treating it as\n authoritative. Never silently copy, discard, or bless on-box-only evidence.\n";
|
|
6
|
+
export declare function ensureCodewithSharedTodosStorageStandardConfig(store?: ConfigStore): Promise<Config>;
|
|
7
|
+
//# sourceMappingURL=codewith-shared-todos-storage-standard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codewith-shared-todos-storage-standard.d.ts","sourceRoot":"","sources":["../../src/lib/codewith-shared-todos-storage-standard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE/E,eAAO,MAAM,2CAA2C,2CAA2C,CAAC;AACpG,eAAO,MAAM,8CAA8C,qCAAqC,CAAC;AAEjG,eAAO,MAAM,8CAA8C,2+DAwC1D,CAAC;AAEF,wBAAsB,8CAA8C,CAClE,KAAK,GAAE,WAAkC,GACxC,OAAO,CAAC,MAAM,CAAC,CA4CjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codewith-shared-todos-storage-standard.test.d.ts","sourceRoot":"","sources":["../../src/lib/codewith-shared-todos-storage-standard.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-apply.d.ts","sourceRoot":"","sources":["../../src/lib/session-apply.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"session-apply.d.ts","sourceRoot":"","sources":["../../src/lib/session-apply.ts"],"names":[],"mappings":"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"}
|
|
@@ -199,6 +199,17 @@ export interface SessionRenderPlan {
|
|
|
199
199
|
writable: boolean;
|
|
200
200
|
blocked: boolean;
|
|
201
201
|
blockers: string[];
|
|
202
|
+
/**
|
|
203
|
+
* Carries the caller's --allow-empty-sources choice from plan-build time into
|
|
204
|
+
* apply time. Apply-time emptiness (a plan that deletes every previously
|
|
205
|
+
* managed file under the adapter's managed directory while creating or
|
|
206
|
+
* updating none — see planStaleFileResults in session-apply.ts) cannot be
|
|
207
|
+
* detected here, because it depends on the previous manifest on disk, which
|
|
208
|
+
* this function never reads. It can only be detected once the stale-file
|
|
209
|
+
* diff is computed in applySessionRenderUnlocked, so the flag has to travel
|
|
210
|
+
* on the plan rather than being re-decided there.
|
|
211
|
+
*/
|
|
212
|
+
allowEmptySources: boolean;
|
|
202
213
|
env: Record<string, string>;
|
|
203
214
|
files: SessionRenderFile[];
|
|
204
215
|
manifest: SessionRenderManifest;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-render.d.ts","sourceRoot":"","sources":["../../src/lib/session-render.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"session-render.d.ts","sourceRoot":"","sources":["../../src/lib/session-render.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/index.js
CHANGED
|
@@ -1196,6 +1196,53 @@ var init_global_agent_rules_standard = __esm(() => {
|
|
|
1196
1196
|
`;
|
|
1197
1197
|
});
|
|
1198
1198
|
|
|
1199
|
+
// src/lib/codewith-shared-todos-storage-standard.ts
|
|
1200
|
+
var CODEWITH_SHARED_TODOS_STORAGE_POLICY_REFERENCE = "codewith/shared-todos-storage/v1", CODEWITH_SHARED_TODOS_STORAGE_STANDARD_CONTENT;
|
|
1201
|
+
var init_codewith_shared_todos_storage_standard = __esm(() => {
|
|
1202
|
+
init_config_store();
|
|
1203
|
+
CODEWITH_SHARED_TODOS_STORAGE_STANDARD_CONTENT = `# Codewith Shared Todos Storage Standard
|
|
1204
|
+
|
|
1205
|
+
Policy reference: \`${CODEWITH_SHARED_TODOS_STORAGE_POLICY_REFERENCE}\`
|
|
1206
|
+
|
|
1207
|
+
## Scope
|
|
1208
|
+
|
|
1209
|
+
- This policy applies to all operational Codewith work: repositories of every
|
|
1210
|
+
name, work projects, research projects, coordinators, delegated workers, and
|
|
1211
|
+
native scheduled or recurring loops. It is not limited to \`open-*\` or
|
|
1212
|
+
\`iapp-*\` repositories.
|
|
1213
|
+
|
|
1214
|
+
## Authoritative Storage
|
|
1215
|
+
|
|
1216
|
+
- Operational Todos state must use the managed shared Todos service.
|
|
1217
|
+
On-box SQLite or file storage is permitted only inside disposable,
|
|
1218
|
+
repository-owned tests using isolated test-controlled paths.
|
|
1219
|
+
- On-box SQLite or file storage must never hold operational tasks, plans, locks or claims,
|
|
1220
|
+
comments, verification evidence, dispatch state, or handoff state. Never
|
|
1221
|
+
fall back to on-box-only storage to keep operational work moving.
|
|
1222
|
+
|
|
1223
|
+
## Pre-Mutation Gate
|
|
1224
|
+
|
|
1225
|
+
- Before any operational Todos mutation, require authoritative Projects
|
|
1226
|
+
linkage and verify from sanitized status or route metadata that Todos resolves
|
|
1227
|
+
to the managed server-backed route. Verification may identify the route class,
|
|
1228
|
+
backend class, and linked project identifiers, but must omit credentials,
|
|
1229
|
+
tokens, DSNs, and full endpoint URLs.
|
|
1230
|
+
- If Projects linkage or server-backed route verification is missing, ambiguous,
|
|
1231
|
+
unavailable, or reports an on-box SQLite or file route, fail closed: do not mutate Todos.
|
|
1232
|
+
Diagnose and repair the owning configuration or service route, re-run the
|
|
1233
|
+
sanitized verification, and report the blockage or repair on the approved
|
|
1234
|
+
operational surface without exposing secrets.
|
|
1235
|
+
|
|
1236
|
+
## Reconciliation
|
|
1237
|
+
|
|
1238
|
+
- Prior on-box-only tasks, plans, comments, locks, verification, dispatch, or
|
|
1239
|
+
handoff evidence are not authoritative. Explicitly reconcile each required
|
|
1240
|
+
record into the Projects-linked shared Todos record, retain bounded provenance
|
|
1241
|
+
identifiers, and independently verify the shared result before treating it as
|
|
1242
|
+
authoritative. Never silently copy, discard, or bless on-box-only evidence.
|
|
1243
|
+
`;
|
|
1244
|
+
});
|
|
1245
|
+
|
|
1199
1246
|
// node_modules/zod/v3/helpers/util.js
|
|
1200
1247
|
var util, objectUtil, ZodParsedType, getParsedType = (data) => {
|
|
1201
1248
|
const t = typeof data;
|
|
@@ -5662,6 +5709,7 @@ var init_transforms = () => {};
|
|
|
5662
5709
|
var ANTIGRAVITY_RULE_FILE_CHAR_LIMIT = 12000, SESSION_RENDERER_OWNER_ID = "instructions-session-renderer", SESSION_RENDER_PROFILE_ENTRYPOINTS, SESSION_RENDER_OWNED_CONFIG_TARGETS, CODEWITH_FLATTENED_ADAPTER, CODEWITH_NATIVE_ADAPTER, SESSION_TOOL_ADAPTERS, SESSION_RENDER_MANAGED_DIRS, SESSION_RENDER_SHARED_MANAGED_DIRS, SESSION_RENDER_EXCLUSIVE_MANAGED_PATHS, CANONICAL_IDENTITY_EXPORT_PACKAGES;
|
|
5663
5710
|
var init_session_render = __esm(() => {
|
|
5664
5711
|
init_global_agent_rules_standard();
|
|
5712
|
+
init_codewith_shared_todos_storage_standard();
|
|
5665
5713
|
init_project_context();
|
|
5666
5714
|
init_config_agents();
|
|
5667
5715
|
init_transforms();
|
|
@@ -6909,7 +6957,7 @@ var init_sync_dir = __esm(() => {
|
|
|
6909
6957
|
var require_package = __commonJS((exports, module) => {
|
|
6910
6958
|
module.exports = {
|
|
6911
6959
|
name: "@hasna/instructions",
|
|
6912
|
-
version: "0.4.
|
|
6960
|
+
version: "0.4.17",
|
|
6913
6961
|
description: "AI coding agent instruction & configuration manager \u2014 store, version, apply, and share all your AI coding configs. CLI + MCP + HTTP API (instructions-serve) + generated SDK + Dashboard.",
|
|
6914
6962
|
type: "module",
|
|
6915
6963
|
main: "dist/index.js",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hasna/instructions",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.17",
|
|
4
4
|
"description": "AI coding agent instruction & configuration manager \u2014 store, version, apply, and share all your AI coding configs. CLI + MCP + HTTP API (instructions-serve) + generated SDK + Dashboard.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|